:root{--bg:#f6f7fb;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--primary:#2563eb;--primary2:#1d4ed8;--softok:#dcfce7;--softbad:#fee2e2;--soft:#f1f5f9;--shadow:0 10px 30px rgba(2,6,23,.08);--r:16px;--rs:12px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary2);text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(37,99,235,.4);outline-offset:2px}

.container{max-width:1100px;margin:0 auto;padding:16px}

/* Topbar / menu */
.topbar{position:sticky;top:0;background:rgba(246,247,251,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:10}
.topbar__inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{font-weight:900;color:var(--text)}
.nav{display:flex;flex:1;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-left:14px}
.nav__primary,.nav__account{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.nav__primary{margin-left:auto}
.nav__account{margin-left:0;padding-left:10px;border-left:1px solid var(--border)}
.nav__logout-form{margin:0}
.nav__logout-form .pill{font:inherit;cursor:pointer}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--soft);border:1px solid var(--border);color:var(--text);font-weight:800;line-height:1}
.pill:hover{background:rgba(37,99,235,.08);text-decoration:none;color:var(--text)}
.pill[aria-current="page"]{background:var(--primary);border-color:var(--primary);color:#fff}
.pill--with-badge{position:relative;overflow:visible}
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:900;line-height:18px;box-shadow:0 0 0 2px var(--bg);margin-left:2px}
.mobile-nav{display:none;margin-left:auto;align-items:center;gap:8px}
.mobile-nav__shortcut{min-height:42px;background:var(--primary);border-color:var(--primary);color:#fff}
.mobile-nav__shortcut:hover{background:var(--primary2);border-color:var(--primary2);color:#fff}
.mobile-nav__compact-icon{display:none;font-size:18px}
.mobile-nav__alert{min-height:42px;background:#fff}
.mobile-nav__alert-icon{font-size:16px;line-height:1}
.nav-menu{position:static}
.nav-menu__toggle{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);cursor:pointer;list-style:none}
.nav-menu__toggle::-webkit-details-marker{display:none}
.nav-menu__toggle:hover,.nav-menu[open]>.nav-menu__toggle{border-color:rgba(37,99,235,.35);background:rgba(37,99,235,.08)}
.nav-menu__icon,.nav-menu__icon::before,.nav-menu__icon::after{display:block;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform .15s ease,opacity .15s ease}
.nav-menu__icon{position:relative}
.nav-menu__icon::before,.nav-menu__icon::after{position:absolute;left:0;content:""}
.nav-menu__icon::before{transform:translateY(-6px)}
.nav-menu__icon::after{transform:translateY(6px)}
.nav-menu[open] .nav-menu__icon{background:transparent}
.nav-menu[open] .nav-menu__icon::before{transform:rotate(45deg)}
.nav-menu[open] .nav-menu__icon::after{transform:rotate(-45deg)}
.nav-menu__panel{position:absolute;top:calc(100% - 4px);right:10px;z-index:20;width:min(260px,calc(100vw - 20px));padding:8px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.2)}
.nav-menu__items{display:flex;flex-direction:column;gap:2px}
.nav-menu__item{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:750;text-align:left;cursor:pointer}
.nav-menu__item:hover{background:var(--soft);color:var(--text);text-decoration:none}
.nav-menu__item[aria-current="page"]{background:rgba(37,99,235,.1);color:var(--primary2)}
.nav-menu__item--account{margin-top:6px;border-top:1px solid var(--border);border-radius:0 0 10px 10px;padding-top:14px}
.nav-menu__logout-form{margin:0}
@media (max-width:760px){.nav-badge{min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px}}

/* Cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);margin:16px 0}
.hero{background:linear-gradient(135deg, rgba(37,99,235,.10), rgba(22,163,74,.08));border:1px solid var(--border);border-radius:var(--r);padding:22px;box-shadow:var(--shadow);margin:16px 0}
h1{margin:0 0 10px 0}
.muted{color:var(--muted)}
.lead{color:var(--muted);margin:0 0 14px 0}

/* Flash messages */
.flash{padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:#fff;margin:10px 0;font-weight:800}
.flash--ok{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.12);color:#14532d}
.flash--warn{border-color:rgba(234,179,8,.45);background:rgba(234,179,8,.16);color:#713f12}
.flash--info{border-color:rgba(37,99,235,.35);background:rgba(37,99,235,.12);color:#1e3a8a}
.flash--err{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.12);color:#7f1d1d}

/* Badges */
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;line-height:18px;border:1px solid transparent;vertical-align:middle}
.badge--ok{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.12);color:#14532d}
.badge--warn{border-color:rgba(234,179,8,.45);background:rgba(234,179,8,.16);color:#713f12}
.badge--muted{border-color:rgba(15,23,42,.18);background:rgba(15,23,42,.06);color:#334155}
.badge--link{cursor:pointer}
.badge--link:hover{text-decoration:none;filter:brightness(.97)}
.sport-icon{display:inline-block;margin-right:.25rem;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",system-ui,sans-serif;line-height:1}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;border:1px solid rgba(37,99,235,.35);background:var(--primary);color:#fff;font-weight:900;cursor:pointer}
.btn:hover{background:var(--primary2);text-decoration:none;color:#fff}
.btn--ghost{background:#fff;color:var(--primary)}
.btn--ghost:hover{background:rgba(37,99,235,.08)}
.btn--sm{padding:8px 10px;border-radius:10px;font-size:13px}
.btn--disabled{background:#cbd5e1;border-color:rgba(15,23,42,.18);color:#0f172a}
.btn--disabled:hover{background:#cbd5e1;color:#0f172a;text-decoration:none}

.btn--danger{background:#b91c1c;border-color:#b91c1c;color:#fff}
.btn--danger:hover{background:#991b1b;border-color:#991b1b;color:#fff;text-decoration:none}

/* Forms */
.form{display:flex;flex-direction:column;gap:12px}
.form-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
label{display:flex;flex-direction:column;gap:6px;font-weight:800}
input,textarea,select{padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-size:14px;outline:none;background:#fff}
.form input:not([type=checkbox]):not([type=radio]),.form textarea,.form select{width:100%;max-width:100%}
input:focus,textarea:focus,select:focus{border-color:rgba(37,99,235,.6);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.checkline{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-weight:800;width:max-content;max-width:100%}
.checkline input[type=checkbox]{margin:0;flex:0 0 auto}
.checkline span{line-height:1.25}
.form-help{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.35;font-weight:500}
.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.form-info{margin-top:4px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--soft);font-weight:500;color:#334155}
.form-info h3{margin-top:0;color:var(--text)}
.form-info ul{margin-bottom:0}

select{cursor:pointer}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:760px){.grid2{grid-template-columns:1fr}}

/* Season detail */
.season-intro{padding:16px}
.season-intro__content{font-size:1.02rem;line-height:1.55}
.season-intro__content p{margin:.5rem 0}

/* Payment block */
.pay{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
@media (max-width:900px){.pay{grid-template-columns:1fr}}

.table.kv th{width:140px;white-space:nowrap;color:#334155;font-weight:700}
.table.kv td{color:#0f172a}

.payqr{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:14px;display:flex;flex-direction:column;align-items:center;gap:10px}
.payqr img{max-width:100%;height:auto;border-radius:10px;background:#fff}
.payqr__title{font-weight:800;color:#0f172a}
.payqr__hint{font-size:.92rem;text-align:center}

.spdcode{word-break:break-all;display:block;padding:.6rem;border:1px dashed #e5e7eb;border-radius:12px;background:#fff}

/* Tables */
.tablewrap{overflow:auto;border-radius:var(--rs);border:1px solid var(--border)}
.table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.table th{background:rgba(241,245,249,.85);position:sticky;top:0}
.center{text-align:center !important}
.best{background:var(--softok)}
.worst{background:var(--softbad)}

.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
.ta-right{text-align:right !important}
.nowrap{white-space:nowrap}
.mono{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}
.code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fbfdff}

/* Footer */
.footer{margin:30px 0 10px 0;color:var(--muted);font-size:13px}

@media (max-width:640px){.container{padding:12px} .table{min-width:620px}}

/* Rich text editor (minimal, no deps) */
.rte{border:1px solid var(--border); border-radius:12px; overflow:hidden; background:#fff}
.rte__toolbar{display:flex; gap:8px; flex-wrap:wrap; padding:8px; border-bottom:1px solid var(--border); background:rgba(241,245,249,.85)}
.rte__toolbar .sep{width:1px; background:rgba(0,0,0,.12); margin:0 4px}
.rte__toolbar button{padding:6px 10px; border-radius:10px; border:1px solid var(--border); background:#fff; color:inherit; cursor:pointer}
.rte__toolbar button:hover{background:rgba(2,6,23,.04)}
.rte__editor{min-height:320px; padding:10px; outline:none}
.rte__editor:focus{box-shadow:0 0 0 3px rgba(37,99,235,.15) inset}


.rte__editor--tall{min-height:320px;}

.row-actions{margin:10px 0;}


/* Admin helpers */
.chk{display:flex;gap:10px;align-items:center;margin:10px 0;font-weight:600}
.admin-team-filters{margin-bottom:16px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--soft)}
.admin-team-filters__grid{display:grid;grid-template-columns:minmax(200px,1.4fr) repeat(3,minmax(150px,1fr));gap:12px;align-items:start}
@media (max-width:900px){.admin-team-filters__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.admin-team-filters__grid{grid-template-columns:1fr}}

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

.footer .container{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;}
.footer__link{padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2);text-decoration:none;}
.footer__link:hover{background:rgba(255,255,255,.08);}


/* Breadcrumbs / heading navigation */
.breadcrumb { font-size: 1.25rem; font-weight: 800; line-height: 1.25; }
.breadcrumb a { color: inherit; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb .sep { opacity: .5; margin: 0 .4rem; font-weight: 700; }
.stats-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 900px){ .stats-grid { grid-template-columns: 1fr; } }
.pie { width: 160px; height: 160px; border-radius: 999px; background: #e5e7eb; position: relative; }
.pie::after { content:""; position:absolute; inset: 38px; background: white; border-radius: 999px; }
.legend { margin: 0; padding-left: 1rem; }
.kpis { display:flex; gap: .75rem; flex-wrap: wrap; }
.kpi { padding:.5rem .75rem; border: 1px solid #e5e7eb; border-radius: .75rem; background: #fff; }
.kpi .v { font-weight: 800; font-size: 1.1rem; }
.muted { opacity: 1; }

/* Match team stats */
.match-preview{display:flex;flex-direction:column;gap:14px}
.match-preview__sport{margin-bottom:2px}
.team-stats-grid,.stats-tables-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:900px){.team-stats-grid,.stats-tables-grid{grid-template-columns:1fr}}
.team-stat{border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px}
.team-stat h3,.match-preview h3{margin:.1rem 0 .55rem}
.team-stat__numbers{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fff}
.team-stat__label,.team-stat__value{padding:8px 6px;background:#f8fafc;border-right:1px solid #e5e7eb;min-width:0}
.team-stat__label:nth-child(6),.team-stat__value:nth-child(12){border-right:0}
.team-stat__label{color:var(--muted);font-size:11px;line-height:1.2;border-bottom:1px solid #e5e7eb}
.team-stat__value{font-weight:900;font-size:1rem;line-height:1.25}
.stats-tablewrap{border-radius:10px}
.stats-table{min-width:0;font-size:13px;table-layout:auto}
.stats-table th,.stats-table td{padding:8px;white-space:normal}
.stats-table th:nth-child(1),.stats-table td:nth-child(1){width:86px;white-space:nowrap}
.stats-table th:nth-child(2),.stats-table td:nth-child(2){width:180px}
.stats-table th:nth-child(3),.stats-table td:nth-child(3){overflow-wrap:anywhere}
.stats-table th:nth-child(4),.stats-table td:nth-child(4){width:72px;white-space:nowrap}
.stats-table th:nth-child(5),.stats-table td:nth-child(5){width:72px;white-space:nowrap}
.match-stats-inline{display:inline-block;position:relative;margin-left:8px;vertical-align:middle}
.match-stats-trigger{background:#eef2ff;border-color:#c7d2fe;color:#1e3a8a}
.match-stats-popover{display:none;position:fixed;z-index:1000;left:var(--popover-left,16px);top:var(--popover-top,16px);width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:34px 14px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 18px 45px rgba(2,6,23,.18);color:var(--text)}
.match-stats-popover__close{position:absolute;top:6px;right:10px;display:block;width:auto;height:auto;border:0;border-radius:0;background:transparent;color:#dc2626;font-size:30px;font-weight:900;line-height:1;cursor:pointer;z-index:1;padding:0 2px}
.match-stats-popover__close:hover,.match-stats-popover__close:focus{background:transparent;color:#b91c1c;outline:2px solid transparent;text-decoration:none}
.match-stats-inline.is-open .match-stats-popover{display:block}
.match-stats-inline.is-closed .match-stats-popover{display:none !important}
.match-insights__loading,.match-insights__error{padding:1rem;text-align:center}
.league-standings__table th,.league-standings__table td{white-space:nowrap;text-align:center}
.league-standings__table th:nth-child(2),.league-standings__table td:nth-child(2){text-align:left}
.league-standings__current{background:#eff6ff}
.league-standings__current>td:first-child{border-left:4px solid var(--accent,#2563eb)}
.league-standings__legend{margin:.5rem 0 0}
.league-standings-tabs__nav{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}
.league-standings-tabs [role="tabpanel"][hidden]{display:none}
.match-preview--compact{gap:10px}
.match-preview--compact .team-stats-grid,.match-preview--compact .stats-tables-grid{grid-template-columns:1fr}
.match-preview--compact .team-stat__numbers{grid-template-columns:repeat(6,minmax(0,1fr))}
.match-preview--compact .stats-table{min-width:0;font-size:12px}
.match-preview--compact .stats-table th,.match-preview--compact .stats-table td{padding:6px}


/* Table sorting */
.table.js-sortable thead th.js-sortable__th{cursor:pointer; user-select:none;}
.table.js-sortable thead th.js-sortable__th[data-sort-dir="asc"]::after{content:" ▲";}
.table.js-sortable thead th.js-sortable__th[data-sort-dir="desc"]::after{content:" ▼";}

.prediction-count{display:inline-block;margin-left:6px;color:var(--muted);font-size:12px;white-space:nowrap}


.team-form-table th,
.team-form-table td {
	white-space: nowrap;
}

.team-form-table td:first-child,
.team-form-table th:first-child {
	white-space: normal;
	min-width: 140px;
}

.team-form-table__no-games {
	min-width: 220px;
	white-space: normal !important;
}

.stat-diff {
	display: inline-block;
	margin-left: 4px;
	font-size: 0.78em;
	font-weight: 400;
	color: #777;
}

.stat-diff.is-up{
		color: green;
}
.stat-diff.is-down{
		color: red;
}
.stat-diff.is-same {
	color: #777;
}

/* Mobile and narrow-layout fixes */
.brand{display:flex;align-items:center;min-width:0;flex:0 1 auto}
.brand img{display:block;max-width:100%;height:auto;max-height:60px}

/* Default tables should try to fit their container. Horizontal scroll remains only as a fallback. */
.table{min-width:0;table-layout:auto}
.table th,.table td{overflow-wrap:normal;word-break:normal}
.tablewrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Match statistics preview: avoid very narrow half-width tables that break team names by letters. */
.stats-tables-grid{grid-template-columns:1fr}
.stats-table{min-width:0;font-size:12px;table-layout:auto}
.stats-table th,.stats-table td{padding:7px 6px;white-space:normal;word-break:normal;overflow-wrap:normal}
.stats-table th:nth-child(1),.stats-table td:nth-child(1){width:78px;white-space:nowrap}
.stats-table th:nth-child(2),.stats-table td:nth-child(2){width:130px}
.stats-table th:nth-child(3),.stats-table td:nth-child(3){width:auto;min-width:150px;overflow-wrap:normal;word-break:normal}
.stats-table th:nth-child(4),.stats-table td:nth-child(4),
.stats-table th:nth-child(5),.stats-table td:nth-child(5){width:58px;white-space:nowrap;text-align:center}
.team-form-table{font-size:12px}
.team-form-table th,.team-form-table td{padding:8px 7px;white-space:normal}
.team-form-table th:first-child,.team-form-table td:first-child{min-width:120px;white-space:normal}
.stat-diff{display:inline-block;margin-left:3px;font-size:.72em;white-space:nowrap}
.match-cell{white-space:normal}

@media (max-width: 760px){
	.container{padding:10px;max-width:100%}
	.topbar__inner{align-items:center;gap:8px;flex-wrap:nowrap}
	.brand{flex:1 1 auto;max-width:min(48vw,185px)}
	.brand img{max-height:42px}
	.nav--desktop{display:none}
	.mobile-nav{display:flex;flex:0 0 auto}
	.mobile-nav .mobile-nav__shortcut{min-height:42px}
	.pill{padding:8px 10px;font-size:13px;min-height:40px;max-width:none;white-space:nowrap}

	.hero{padding:16px;margin:12px 0}
	.card{padding:12px;margin:12px 0;border-radius:14px}
	h1{font-size:32px;line-height:1.08}
	h2{font-size:23px;line-height:1.12}
	.lead{font-size:16px;line-height:1.35}

	.table{font-size:12px;line-height:1.22}
	.table th,.table td{padding:7px 6px}
	.table .btn,.table .badge{font-size:11px}
	.table--compact-on-mobile{font-size:11px}
	.table--compact-on-mobile th,.table--compact-on-mobile td{padding:6px 4px}

	.stats-table{font-size:11px}
	.stats-table th,.stats-table td{padding:6px 4px}
	.stats-table th:nth-child(1),.stats-table td:nth-child(1){width:68px}
	.stats-table th:nth-child(2),.stats-table td:nth-child(2){display:none}
	.team-form-table td.team-form-table__no-games{display:table-cell;min-width:180px;white-space:normal !important}
	.stats-table th:nth-child(3),.stats-table td:nth-child(3){min-width:120px}
	.stats-table th:nth-child(4),.stats-table td:nth-child(4),
	.stats-table th:nth-child(5),.stats-table td:nth-child(5){width:42px}

	.team-form-table{font-size:10.5px}
	.team-form-table th,.team-form-table td{padding:6px 4px}
	.team-form-table th:first-child,.team-form-table td:first-child{min-width:82px}
	.stat-diff{font-size:.68em;margin-left:1px}

	.user-round-table{font-size:11px}
	.user-round-table .match-cell{min-width:120px}
}

@media (max-width: 430px){
	.brand{max-width:45vw}
	.brand img{max-height:36px}
	.pill{font-size:12px;padding:8px;min-height:40px}
	.mobile-nav--has-alerts{gap:6px}
	.mobile-nav--has-alerts .mobile-nav__shortcut,
	.mobile-nav--has-alerts .mobile-nav__alert{width:42px;min-width:42px;padding:0;justify-content:center}
	.mobile-nav--has-alerts .mobile-nav__shortcut-label,
	.mobile-nav--has-alerts .mobile-nav__alert-label{display:none}
	.mobile-nav--has-alerts .mobile-nav__compact-icon{display:inline}
	.mobile-nav--has-alerts>.pill .nav-badge{position:absolute;top:-5px;right:-5px;margin:0;box-shadow:0 0 0 2px #fff}
	.table{font-size:11px}
	.table th,.table td{padding:6px 4px}
	.team-form-table{font-size:9.8px}
}

/* Mobile page titles and dense prediction tables */
.page-title{
	margin:18px 0 12px;
	font-size:clamp(28px, 5.2vw, 44px);
	line-height:1.08;
	letter-spacing:-.035em;
	overflow-wrap:anywhere;
}
.page-title a{text-decoration:none}
.page-title__link{display:inline-flex;align-items:center;gap:.18em;vertical-align:baseline}
.page-title__sep{opacity:.75;margin:0 .15em}
.page-title .sport-icon{font-size:.92em;line-height:1;vertical-align:-.05em;margin-right:.05em}

.predictions-table{min-width:0;table-layout:auto}
.predictions-table th,.predictions-table td{white-space:normal}
.predictions-table .date-cell{white-space:nowrap}
.predictions-table .match-cell{min-width:160px}
.predictions-table th:nth-child(4),.predictions-table td:nth-child(4),
.predictions-table th:nth-child(5),.predictions-table td:nth-child(5),
.predictions-table th:nth-child(6),.predictions-table td:nth-child(6){white-space:nowrap;text-align:center}

@media (max-width: 760px){
	.topbar{position:relative}
	.topbar__inner{align-items:center}
	.page-title{font-size:clamp(26px, 8.2vw, 34px);line-height:1.08;margin:16px 0 10px;letter-spacing:-.04em}
	.page-title--tips{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.22em;row-gap:.08em}
	.page-title--tips .page-title__link{font-size:.92em;gap:.12em}
	.page-title--tips .page-title__user{font-size:1em}
	.page-title .sport-icon{font-size:.78em}

	.table.kv{min-width:0;font-size:13px}
	.table.kv th{width:45%;padding:8px 7px;white-space:normal}
	.table.kv td{padding:8px 7px}

	.predictions-table{min-width:0;font-size:12px;line-height:1.2}
	.predictions-table th,.predictions-table td{padding:7px 5px}
	.predictions-table .date-cell{white-space:normal;width:74px}
	.predictions-table .match-cell{min-width:118px}
	.predictions-table th:nth-child(1),.predictions-table td:nth-child(1){width:48px}
	.predictions-table th:nth-child(4),.predictions-table td:nth-child(4),
	.predictions-table th:nth-child(5),.predictions-table td:nth-child(5),
	.predictions-table th:nth-child(6),.predictions-table td:nth-child(6){width:42px}
}

@media (max-width: 430px){
	.page-title{font-size:clamp(24px, 7.6vw, 31px)}
	.page-title--tips .page-title__link{font-size:.88em}
	.predictions-table{font-size:11px}
	.predictions-table th,.predictions-table td{padding:6px 4px}
	.predictions-table .match-cell{min-width:108px}
}

/* Mobile typography balance: headings/buttons must not dominate compact tables */
@media (max-width: 760px){
	body{font-size:15px;line-height:1.35}
	.container{padding:10px}
	.card{padding:12px;margin:12px 0}
	.hero{padding:14px;margin:12px 0}

	h1{font-size:26px;line-height:1.12;letter-spacing:-.025em;margin:0 0 10px}
	h2{font-size:21px;line-height:1.15;letter-spacing:-.02em;margin:0 0 12px}
	h3{font-size:18px;line-height:1.2;margin:.25rem 0 .5rem}
	.lead{font-size:15px;line-height:1.35}

	.page-title{font-size:26px;line-height:1.12;margin:14px 0 10px;letter-spacing:-.025em;overflow-wrap:normal;word-break:normal}
	.page-title--tips{display:block}
	.page-title--tips .page-title__link,
	.page-title--tips .page-title__user,
	.page-title__text{font-size:1em}
	.page-title .sport-icon{font-size:.85em;vertical-align:-.04em}

	.breadcrumb{font-size:20px;line-height:1.2;letter-spacing:-.015em}
	.breadcrumb .sport-icon{font-size:.9em}

	.btn{font-size:14px;line-height:1.15;padding:10px 12px;border-radius:11px;min-height:44px}
	.btn--sm{font-size:12.5px;padding:8px 10px;border-radius:10px;min-height:36px}
	.pill{font-size:13px;padding:8px 10px;min-height:40px}
	.badge{font-size:12px;line-height:18px;padding:2px 7px}

	.table{font-size:12.5px;line-height:1.25}
	.table th,.table td{padding:7px 5px}
	.table .btn{font-size:12px;min-height:30px;padding:6px 8px}
	.table .pill{font-size:12px;padding:5px 8px}

	.rounds th,.rounds td{padding:7px 5px}
	.rounds .ta-right{white-space:normal}
	.rounds .ta-right .btn{margin:2px 0}

	.muted{font-size:.95em}
}

@media (max-width: 430px){
	h1{font-size:24px;line-height:1.12}
	h2{font-size:20px;line-height:1.15}
	.page-title{font-size:24px;line-height:1.12}
	.breadcrumb{font-size:19px}

	.btn{font-size:13.5px;padding:10px;min-height:44px}
	.btn--sm{font-size:12px;padding:8px;min-height:36px}

	.table{font-size:12px}
	.table th,.table td{padding:6px 4px}
	.predictions-table{font-size:12px}
	.predictions-table th,.predictions-table td{padding:6px 4px}
}


/* Season progress chart */
.season-progress-card__head{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:1rem;
	flex-wrap:wrap;
}
.season-progress-card__controls{display:flex;gap:.5rem;flex-wrap:wrap}
.season-progress-card__controls .btn.is-active{
	background:#eaf1ff;
	color:#1f4db8;
	border-color:#c7d8ff;
}
.season-progress-chart{margin-top:1rem;position:relative}
.season-progress-chart__viewport{
	overflow-x:auto;
	overflow-y:hidden;
	-webkit-overflow-scrolling:touch;
	border:1px solid #e5e7eb;
	border-radius:16px;
	background:#fbfcfe;
}
.season-progress-chart__svg{display:block;min-width:100%}
.season-progress-chart__bg{fill:transparent}
.season-progress-chart__grid-line{stroke:#e8edf5;stroke-width:1}
.season-progress-chart__grid-line--zero{stroke:#a8b3c4;stroke-width:1.25}
.season-progress-chart__axis{stroke:#cfd8e3;stroke-width:1}
.season-progress-chart__axis-label{
	fill:#7b8794;
	font-size:12px;
	font-weight:400;
}
.season-progress-chart__match-label{cursor:help}
.season-progress-chart__match-hitbox{fill:transparent}
.season-progress-chart__tooltip{
	position:absolute;
	z-index:15;
	display:none;
	min-width:170px;
	max-width:min(280px, calc(100vw - 32px));
	padding:.45rem .55rem;
	border:1px solid #9ca3af;
	border-radius:6px;
	background:#fff;
	color:#111827;
	box-shadow:0 8px 20px rgba(15,23,42,.14);
	font-size:13px;
	line-height:1.32;
	pointer-events:none;
	white-space:normal;
}
.season-progress-chart__tooltip.is-visible{display:block}
.season-progress-chart__tooltip-title{font-weight:600;margin-bottom:.18rem}
.season-progress-chart__line{
	fill:none;
	stroke:var(--line);
	stroke-width:1.65;
	stroke-linecap:round;
	stroke-linejoin:round;
	opacity:.62;
}
.season-progress-chart__line.is-highlighted{stroke-width:2.1;opacity:.95}
.season-progress-chart__line.is-dimmed{opacity:.18}
.season-progress-chart__point{
	fill:#fff;
	stroke:var(--line);
	stroke-width:1.5;
	opacity:.78;
}
.season-progress-chart__point.is-highlighted{stroke-width:2;opacity:1}
.season-progress-chart__point.is-dimmed{opacity:.2}
.season-progress-chart__point-link{cursor:pointer}
.season-progress-chart__legend{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
	gap:.45rem;
	margin-top:.85rem;
}
.season-progress-chart__legend-item{
	display:flex;
	align-items:center;
	gap:.5rem;
	min-width:0;
	padding:.45rem .55rem;
	border:1px solid #e5e7eb;
	border-radius:12px;
	background:#fff;
	color:#273449;
	cursor:pointer;
}
.season-progress-chart__legend-item.is-active{
	border-color:#c7d8ff;
	background:#f5f8ff;
}
.season-progress-chart__legend-item.is-muted{opacity:.55}
.season-progress-chart__legend-swatch{
	width:10px;
	height:10px;
	border-radius:999px;
	background:var(--swatch);
	flex:0 0 auto;
}
.season-progress-chart__legend-name{
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	font-size:12.5px;
	font-weight:400;
}
.season-progress-chart__legend-total{
	margin-left:auto;
	font-size:12px;
	color:#6b7280;
	font-weight:400;
}
.season-progress-chart__foot{margin-top:.7rem;font-size:.95em}

@media (max-width: 760px){
	.season-progress-card__head{gap:.75rem}
	.season-progress-card__controls{width:100%}
	.season-progress-card__controls .btn{flex:1 1 0;justify-content:center}
	.season-progress-chart__viewport{border-radius:14px}
	.season-progress-chart__axis-label{font-size:11px}
	.season-progress-chart__line{stroke-width:1.35;opacity:.58}
	.season-progress-chart__line.is-highlighted{stroke-width:1.9}
	.season-progress-chart__legend{
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:.4rem;
	}
	.season-progress-chart__legend-item{padding:.45rem .5rem;border-radius:11px}
	.season-progress-chart__legend-name{font-size:12px}
	.season-progress-chart__legend-total{font-size:11.5px}
	.season-progress-chart__foot{font-size:.9em}
	.season-progress-chart__tooltip{font-size:12px;max-width:min(250px, calc(100vw - 24px))}
}

@media (max-width: 430px){
	.season-progress-chart__legend{grid-template-columns:1fr}
}

.tournament-stats__grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:.75rem;
	margin-top:.75rem;
}
.tournament-stat{
	border:1px solid #e5e7eb;
	border-radius:14px;
	padding:.8rem .9rem;
	background:#fff;
}
.tournament-stat__label{
	color:#64748b;
	font-size:.9rem;
	margin-bottom:.25rem;
}
.tournament-stat__value{
	color:#0f172a;
	font-size:1.45rem;
	line-height:1.15;
	font-weight:700;
}
.tournament-stat__hint{
	color:#64748b;
	font-size:.84rem;
	margin-top:.25rem;
}
.tournament-stats__highlights{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:.75rem;
	margin-top:.85rem;
}
.tournament-highlight{
	border:1px solid #e5e7eb;
	border-radius:14px;
	padding:.85rem .95rem;
	background:#fff;
}
.tournament-highlight__label{
	color:#64748b;
	font-size:.9rem;
	margin-bottom:.35rem;
}
@media (max-width: 760px){
	.tournament-stats__grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:.55rem}
	.tournament-stats__highlights{grid-template-columns:1fr;gap:.55rem}
	.tournament-stat,.tournament-highlight{padding:.7rem .75rem;border-radius:12px}
	.tournament-stat__value{font-size:1.25rem}
	.tournament-stat__label,.tournament-highlight__label{font-size:.84rem}
	.tournament-stat__hint{font-size:.78rem}
}
@media (max-width: 430px){
	.tournament-stats__grid{grid-template-columns:1fr}
}

/* Season statistics extensions */
.tournament-stats__subgrid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:.75rem;
	margin-top:.9rem;
}
.tournament-stats__subcard{
	border:1px solid #e5e7eb;
	border-radius:14px;
	padding:.9rem;
	background:#fff;
	margin-top:.9rem;
}
.tournament-stats__subcard h3{margin-top:0}
.tournament-stats__subgrid .tournament-stats__subcard{margin-top:0}
.tournament-stats__table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.65rem}
.point-distribution{display:grid;gap:.45rem;margin:.55rem 0 .35rem}
.point-distribution__row{display:grid;grid-template-columns:42px 1fr 54px;align-items:center;gap:.55rem}
.point-distribution__label{font-weight:700;color:#0f172a;text-align:right}
.point-distribution__bar-wrap{height:12px;border-radius:999px;background:#edf2f7;overflow:hidden}
.point-distribution__bar{height:100%;border-radius:999px;background:#c7d8ff}
.point-distribution__count{font-size:.9rem;color:#64748b;white-space:nowrap}
.tournament-mini-table{min-width:0}
.tournament-user-points-table th,.tournament-user-points-table td{text-align:center;white-space:nowrap}
.tournament-user-points-table th:first-child,.tournament-user-points-table td:first-child{text-align:left;min-width:130px}
.tournament-funfacts__grid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:.75rem;
	margin-top:.8rem;
}
.tournament-funfact{
	border:1px solid #edf2f7;
	border-radius:13px;
	padding:.8rem .85rem;
	background:#f8fafc;
}
.tournament-funfact h4{
	margin:0 0 .25rem;
	font-size:1rem;
}
.tournament-funfact p{
	margin:0 0 .65rem;
	color:#64748b;
	font-size:.88rem;
}
.tournament-funfact__list{
	display:grid;
	gap:.42rem;
	margin:0;
	padding:0;
	list-style:none;
}
.tournament-funfact__list li{
	display:grid;
	grid-template-columns:2rem minmax(0, 1fr);
	gap:.2rem .45rem;
	align-items:start;
}
.tournament-funfact__rank{
	font-weight:700;
	color:#64748b;
}
.tournament-funfact__name{
	min-width:0;
}
.tournament-funfact__value{
	grid-column:2;
	color:#0f172a;
	font-size:.9rem;
}

@media (max-width: 760px){
	.tournament-funfacts__grid{grid-template-columns:1fr;gap:.55rem}
	.tournament-funfact{padding:.75rem;border-radius:12px}
}

@media (max-width: 760px){
	.tournament-stats__subgrid{grid-template-columns:1fr;gap:.55rem}
	.tournament-stats__subcard{padding:.75rem;border-radius:12px;margin-top:.75rem}
	.point-distribution__row{grid-template-columns:34px 1fr 48px;gap:.45rem}
	.tournament-user-points-table{font-size:11.5px}
	.tournament-user-points-table th,.tournament-user-points-table td{padding:6px 4px}
}

/* My tips title should visually match other mobile page titles. */
@media (max-width: 760px){
	.page-title--tips .page-title__link{
		font-size:1em;
		line-height:1.12;
	}
}

/* User season statistics on /my?season_id=... and /user?season_id=... */
.my-tips-title{
	margin:0 0 10px 0;
	font-size:clamp(1.35rem, 2.4vw, 1.75rem);
	line-height:1.15;
	letter-spacing:-.02em;
}
.my-tips-title a{text-decoration:none;color:inherit}
.my-tips-title a:hover{text-decoration:underline}
.my-season-stats h2{margin-top:0}
.my-season-stats__charts{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:.75rem;
	margin-top:.9rem;
}
.my-points-pie-wrap{
	display:grid;
	grid-template-columns:180px minmax(0, 1fr);
	gap:1rem;
	align-items:center;
	margin:.55rem 0 .65rem;
}
.my-points-pie{
	width:180px;
	height:180px;
	border-radius:999px;
	border:1px solid #e5e7eb;
	box-shadow:inset 0 0 0 28px #fff;
}
.my-points-pie__legend{display:grid;gap:.35rem}
.my-points-pie__legend-row{
	display:grid;
	grid-template-columns:14px 1fr auto;
	align-items:center;
	gap:.45rem;
	font-size:.92rem;
}
.my-points-pie__swatch{
	display:inline-block;
	width:12px;
	height:12px;
	border-radius:999px;
	border:1px solid rgba(15,23,42,.12);
}
.my-outcome-table{min-width:0}
.my-outcome-table th,.my-outcome-table td{white-space:nowrap}
.my-outcome-table th:first-child{white-space:normal}

@media (max-width: 760px){
	.my-tips-title{
		font-size:1.35rem;
		line-height:1.12;
		letter-spacing:-.025em;
		margin:0 0 10px;
	}
	.my-season-stats__charts{grid-template-columns:1fr;gap:.55rem}
	.my-points-pie-wrap{grid-template-columns:1fr;justify-items:center;text-align:left}
	.my-points-pie{width:156px;height:156px;box-shadow:inset 0 0 0 24px #fff}
	.my-points-pie__legend{width:min(100%, 280px)}
	.my-outcome-table{font-size:12px}
}

/* Odds preview in prediction popover */
.odds-preview-block{margin-top:10px}
.odds-preview-bookmaker{margin:.6rem 0 .3rem;font-weight:900;color:var(--text)}
.odds-preview-tablewrap{margin-top:6px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff;box-shadow:none}
.odds-preview-table{width:100%;min-width:0;table-layout:auto;border-collapse:collapse;background:#fff;font-size:12px;line-height:1.25;margin:0;border:0}
.odds-preview-table th,.odds-preview-table td{padding:6px 8px;border:0;border-bottom:1px solid var(--border);vertical-align:middle;white-space:normal;word-break:normal;overflow-wrap:normal}
.odds-preview-table th{background:rgba(241,245,249,.85);font-weight:900;position:static;color:var(--text)}
.odds-preview-table tbody tr:last-child td{border-bottom:0}
.odds-preview-table--ml th:first-child,.odds-preview-table--ml td:first-child{width:auto;text-align:left;white-space:normal}
.odds-preview-table--ml th:not(:first-child),.odds-preview-table--ml td:not(:first-child){width:86px;text-align:center;white-space:nowrap}
.odds-preview-table--scores{table-layout:fixed}
.odds-preview-table--scores th,.odds-preview-table--scores td{width:33.333%;text-align:left;white-space:nowrap;padding-left:8px;padding-right:8px}
.odds-preview-table--scores .odds-score-pair{display:grid;grid-template-columns:minmax(36px,auto) minmax(44px,1fr);align-items:center;column-gap:12px;width:100%}
.odds-preview-table--scores .odds-score{font-weight:900;color:var(--text)}
.odds-preview-table--scores .odds-value{font-weight:700;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}
.odds-preview-table--scores .muted{display:block;color:var(--muted)}
@media (max-width:640px){
	.odds-preview-table{font-size:11px}
	.odds-preview-table th,.odds-preview-table td{padding:5px 6px}
	.odds-preview-table--ml th:not(:first-child),.odds-preview-table--ml td:not(:first-child){width:58px}
	.odds-preview-table--scores .odds-score-pair{grid-template-columns:minmax(28px,auto) minmax(32px,1fr);column-gap:6px}
}

.alert{padding:.75rem .9rem;border-radius:10px;border:1px solid var(--border);background:#f8fafc;color:var(--text);line-height:1.45}
.alert--info{background:#eff6ff;border-color:#bfdbfe}
.alert--warning{background:#fffbeb;border-color:#fde68a}

/* Malá číselná pole pro zadávání výsledků zápasu v admin/matches.
		Obecné .form input { width:100% } je správné pro běžné formuláře,
		ale skóre domácí/hosté musí zůstat kompaktní. */
.form input.admin-result-score-input{
	width:4.5rem;
	max-width:4.5rem;
	min-width:4.5rem;
	text-align:center;
}

/* Match comments */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.comments-widget{scroll-margin-top:120px}
.comments-group-switch{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:220px}
.comments-group-switch span{font-weight:800;color:var(--muted)}
.comments-status{margin-top:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:12px;background:#fff}
.comments-status[hidden]{display:none}
.comments-status--error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#7f1d1d;opacity:1}
.comments-list{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.comments-empty{padding:10px 0}
.comment-item{position:relative;border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px;scroll-margin-top:120px;transition:box-shadow .2s ease,border-color .2s ease}
.comment-item--reply{background:#fbfdff}
.comment-item--target{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.comment-item__meta{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:13px;margin-bottom:6px;flex-wrap:wrap}
.comment-item__meta strong{color:var(--text)}
.comment-item__edited{font-style:italic;color:var(--muted)}
.comment-item__body{line-height:1.5;overflow-wrap:anywhere}
.comment-item__body p{margin:.35rem 0}
.comment-item__body ul,.comment-item__body ol{margin:.35rem 0 .35rem 1.2rem;padding-left:1rem}
.comment-item__body img[data-content-image]{display:block;max-width:100%;height:auto;margin:.75rem 0;border-radius:12px;background:#f1f5f9}
.comment-item__body img[data-content-image]:not([data-content-image-size="full"]){max-width:min(320px,100%);max-height:240px;object-fit:contain;cursor:zoom-in}
.comment-item__body img[data-content-image]:not([data-content-image-size="full"]).content-image--expanded{max-width:100%;max-height:none;cursor:zoom-out}
.comment-item__actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}

.comment-reactions{display:block;margin-top:8px}
.comment-reactions--picker-only{height:0;margin-top:0}
.comment-reaction-summary{display:flex;gap:6px;flex-wrap:wrap;min-height:0}
.comment-reaction-picker{position:absolute;top:10px;right:10px;display:flex;gap:4px;padding:4px;border:1px solid rgba(148,163,184,.35);border-radius:999px;background:rgba(255,255,255,.96);box-shadow:0 8px 20px rgba(15,23,42,.12);opacity:0;pointer-events:none;transform:translateY(-2px);transition:opacity .15s ease,transform .15s ease;z-index:3}
.comment-item:hover>.comment-reactions .comment-reaction-picker,.comment-item:focus-within>.comment-reactions .comment-reaction-picker{opacity:1;pointer-events:auto;transform:translateY(0)}
.comment-reaction{appearance:none;border:1px solid var(--border);background:#fff;border-radius:999px;padding:2px 8px;min-height:26px;line-height:18px;cursor:pointer;font-size:13px;font-weight:400}
.comment-reaction--picker{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;padding:0;font-size:17px}
.comment-reaction:hover,.comment-reaction.is-active{border-color:rgba(37,99,235,.45);background:rgba(37,99,235,.08)}
.comment-reaction.is-active{font-weight:400;box-shadow:inset 0 0 0 1px rgba(37,99,235,.18)}
.comment-reaction:disabled{opacity:.65;cursor:wait}

.comment-children{display:flex;flex-direction:column;gap:10px;margin:10px 0 0 calc(18px + (var(--comment-level, 0) * 2px));padding-left:14px;border-left:2px solid rgba(148,163,184,.35)}
.comment-item__reply-ref{margin:0 0 8px;padding:7px 9px;border-radius:10px;background:rgba(15,23,42,.035);border:1px solid rgba(148,163,184,.28);font-size:13px;color:var(--muted)}
.comment-item__reply-ref a{font-weight:800;text-decoration:none}
.comment-item__reply-ref span{display:block;margin-top:2px;overflow-wrap:anywhere}
.comments-editor{width:100%;min-height:118px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px 12px;line-height:1.5;outline:none;overflow-wrap:anywhere;font-weight:400;font-style:normal;color:var(--text)}
.comments-editor:focus{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.comments-editor[contenteditable="false"]{background:#f8fafc;color:var(--muted)}
.comments-editor:empty::before{content:attr(data-placeholder);color:var(--muted)}
.comments-editor ul,.comments-editor ol{margin:.35rem 0 .35rem 1.2rem;padding-left:1rem}
.comments-editor strong,.comments-editor b{font-weight:800}
.comments-editor em,.comments-editor i{font-style:italic}
.comments-editor a{color:var(--primary);text-decoration:underline}
.comments-editor p{margin:.35rem 0}
.comments-editor img[data-content-image]{display:block;max-width:100%;max-height:320px;width:auto;height:auto;object-fit:contain;margin:.65rem 0;border-radius:10px;cursor:pointer;background:#f1f5f9}
.comments-editor img[data-content-image]:not([data-content-image-size="full"]){max-width:min(280px,100%);max-height:210px}
.comments-editor img[data-content-image][data-content-image-size="full"]{max-width:100%;max-height:none}
.comments-editor img.content-image--selected{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}
.comments-editor.comments-editor--image-drag{border-color:var(--primary);background:rgba(37,99,235,.06);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.content-image-feedback{margin-top:8px;padding:9px 11px;border:1px solid rgba(37,99,235,.25);border-radius:10px;background:rgba(37,99,235,.06);color:#1e3a8a}
.content-image-feedback[hidden]{display:none}
.content-image-feedback--error{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.09);color:#7f1d1d}
.content-image-feedback__row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.9rem}
.content-image-feedback progress{display:block;width:100%;height:8px;margin-top:7px;accent-color:var(--primary)}
.content-image-feedback progress[hidden]{display:none}
.comments-image-help{margin-top:7px;font-size:.84rem;line-height:1.4}
.comments-inline-form-slot{margin-top:10px}
.comments-inline-form-slot .comments-form{margin-top:10px;border:1px solid rgba(37,99,235,.18);border-radius:12px;background:rgba(37,99,235,.035);padding:12px}
.comments-form{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}
.comments-form--disabled{opacity:.75}
.comments-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.comments-reply-note{margin-bottom:8px;padding:8px 10px;border-radius:10px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.18);font-weight:700;color:#1e3a8a}
.comments-reply-note[hidden]{display:none}
@media (max-width:760px){.comment-children{margin-left:12px;padding-left:10px}.comments-group-switch{width:100%;align-items:stretch}.comments-group-switch select{width:100%}}

.activity-list{display:flex;flex-direction:column;gap:.75rem}
.activity-item{border-bottom:1px solid var(--border);padding-bottom:.65rem}
.activity-item:last-child{border-bottom:0;padding-bottom:0}


/* Prediction form: score inputs should stay compact despite full-width form inputs. */
.prediction-score-cell{white-space:nowrap;text-align:center}
.form input.prediction-score-input{width:3.4rem;max-width:3.4rem;min-width:3.4rem;padding:8px 6px;text-align:center;box-sizing:border-box}
.prediction-score-separator{display:inline-block;margin:0 .25rem;font-weight:900}
@media (max-width:760px){
	.form input.prediction-score-input{width:2.8rem;max-width:2.8rem;min-width:2.8rem;padding:7px 4px}
	.prediction-score-separator{margin:0 .12rem}
}

/* Season detail: joining another group should be collapsed for existing participants. */
.season-join-toggle{margin:10px 0 16px}
.season-join-toggle__summary{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;cursor:pointer;color:var(--primary);font-weight:900;line-height:1.25;list-style:none}
.season-join-toggle__summary:hover{color:var(--primary2);text-decoration:underline}
.season-join-toggle__summary::-webkit-details-marker{display:none}
.season-join-toggle__icon{font-size:18px;line-height:1}
.season-join-toggle[open]{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);margin:16px 0}
.season-join-toggle[open] .season-join-toggle__summary{margin-bottom:12px}
.season-join-toggle__form{margin-top:0}

/* Prediction form: robust fallback by input name for score fields.
		This covers older templates without .prediction-score-input class and wins over generic .form input width:100%. */
.form input.prediction-score-input,
.form input[name^="pred["][name$="][h]"],
.form input[name^="pred["][name$="][a]"]{
	width:3.2rem !important;
	max-width:3.2rem !important;
	min-width:3.2rem !important;
	flex:0 0 3.2rem;
	display:inline-block;
	box-sizing:border-box;
	padding:8px 6px;
	text-align:center;
}

@media (max-width:760px){
	.form input.prediction-score-input,
	.form input[name^="pred["][name$="][h]"],
	.form input[name^="pred["][name$="][a]"]{
		width:2.8rem !important;
		max-width:2.8rem !important;
		min-width:2.8rem !important;
		flex-basis:2.8rem;
		padding:7px 4px;
	}
}

/* Kurzové porovnání a kurzy v detailu zápasu */
.odds-betting-stats .table th,
.odds-betting-stats .table td{white-space:nowrap}
.odds-betting-stats .table th:first-child,
.odds-betting-stats .table td:first-child{white-space:normal}
.odds-score-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}
.odds-score-list .odds-score-pair{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:8px;padding:5px 7px;background:#fff;min-width:0;white-space:nowrap;overflow:hidden;font-size:12px;line-height:1.25}
.odds-score-list .odds-score{font-weight:400;color:var(--text);flex:0 0 auto}
.odds-score-list .odds-value{font-weight:400;color:var(--text);font-variant-numeric:tabular-nums;flex:0 0 auto;min-width:0;text-align:right;margin-left:auto}

.odds-score-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:.75rem}
.odds-score-group{border:1px solid var(--border);border-radius:10px;background:#f8fafc;padding:8px;min-width:0}
.odds-score-group__title{font-weight:900;margin:0 0 7px;color:var(--text)}
.odds-score-list--match{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:6px}
.odds-score-list--match .odds-score-pair{padding:5px 8px}
@media (max-width:760px){
	.odds-score-groups{grid-template-columns:1fr}
	.odds-score-list--match{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
}
@media (max-width:640px){
	.odds-betting-stats .table{font-size:12px}
	.odds-score-list{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}
}

.odds-hit{background:#dcfce7!important;border-color:#86efac!important;color:#14532d!important}
.odds-hit .odds-score,.odds-hit .odds-value{color:#14532d!important}
.odds-debug-details{margin-top:.35rem;font-size:.88rem}
.odds-debug-details summary{cursor:pointer;color:var(--muted);font-weight:700}
.odds-debug-details pre{margin:.4rem 0 0 0;max-height:360px;overflow:auto;background:#f7fafc;border:1px solid var(--border);border-radius:8px;padding:.65rem;white-space:pre-wrap}
.match-odds-preview .odds-preview-block{margin-top:.75rem}
.match-odds-preview .odds-preview-bookmaker{font-size:1.05rem;margin:.9rem 0 .35rem}
.match-odds-preview__subtitle{font-size:1rem;margin:.9rem 0 .35rem}
.match-odds-preview .odds-preview-tablewrap{margin-bottom:.65rem}
.match-odds-preview .odds-preview-table--ml th:first-child,
.match-odds-preview .odds-preview-table--ml td:first-child{text-align:left}
.match-odds-preview .odds-preview-table--ml th:not(:first-child),
.match-odds-preview .odds-preview-table--ml td:not(:first-child){text-align:right}
.match-odds-preview .odds-preview-table--scores td.odds-hit{background:#dcfce7!important}

/* Odds betting comparison on match detail */
.odds-betting-match__layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.odds-betting-match__tablewrap{min-width:0}
.odds-betting-match__table{min-width:760px}
.odds-betting-match__charts{display:flex;flex-direction:column;gap:12px}
.odds-betting-chart{border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px}
.odds-betting-chart h3{margin:.1rem 0 .75rem}
.odds-betting-chart__pie{width:132px;height:132px;flex:0 0 auto}
.odds-betting-chart__pie::after{inset:32px}
.odds-betting-chart__profit{font-size:1.35rem;font-weight:900;margin-bottom:.35rem}
@media (max-width:980px){.odds-betting-match__layout{grid-template-columns:1fr}.odds-betting-match__charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.odds-betting-match__charts{grid-template-columns:1fr}.odds-betting-chart__pie{width:112px;height:112px}.odds-betting-chart__pie::after{inset:28px}}

.table-summary-row th,
.table-summary-row td {
	border-top: 2px solid #d9e2ec;
	font-weight: 700;
	background: #f8fafc;
}
.odds-betting-stats__charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.odds-balance-card--embedded{margin-top:1rem}
.odds-betting-stats .odds-balance-card--embedded{padding-top:.1rem}
@media (max-width:720px){.odds-betting-stats__charts{grid-template-columns:1fr}}

/* Comment mentions and profile notifications */
.comments-edit-note{margin-bottom:8px;padding:8px 10px;border-radius:10px;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.24);font-weight:700;color:#7c2d12}
.comments-edit-note[hidden]{display:none}
.comment-mention{font-weight:800;color:var(--primary);text-decoration:none;background:rgba(37,99,235,.08);border-radius:999px;padding:1px 6px;white-space:nowrap}
.comment-mention:hover{text-decoration:underline;background:rgba(37,99,235,.14)}
.comments-mention-suggest{position:absolute;z-index:50;min-width:220px;max-width:min(360px,90vw);margin-top:4px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:4px}
.comments-mention-suggest[hidden]{display:none}
.comments-mention-suggest__item{appearance:none;border:0;background:transparent;text-align:left;border-radius:9px;padding:8px 10px;font-weight:700;cursor:pointer;color:var(--text)}
.comments-mention-suggest__item:hover,.comments-mention-suggest__item:focus,.comments-mention-suggest__item.is-active{background:rgba(37,99,235,.10);outline:none}
.comment-mention-popup{position:absolute;z-index:80;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:12px;max-width:280px;display:flex;flex-direction:column;gap:8px}
.comment-mention-popup[hidden]{display:none}
.notification-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.notification-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px}
.notification-item--unread{border-color:rgba(37,99,235,.32);background:rgba(37,99,235,.045)}
.notification-item__main{line-height:1.45}
.notification-item__excerpt{margin-top:6px;color:var(--text);overflow-wrap:anywhere}
.badge--accent{border-color:rgba(37,99,235,.35);background:rgba(37,99,235,.12);color:#1e3a8a}
@media (max-width:760px){.notification-item{flex-direction:column}.comments-mention-suggest{left:0;right:0}}
.nav .pill--with-badge{overflow:visible}

/* Profile navigation and mention pagination */
.profile-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.profile-header h1{margin-bottom:0}
.profile-subnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.profile-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.profile-settings-list{display:flex;flex-direction:column;gap:10px}
.profile-settings-item{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}
.profile-settings-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px;cursor:pointer;list-style:none}
.profile-settings-item summary::-webkit-details-marker{display:none}
.profile-settings-item summary:hover{background:var(--soft)}
.profile-settings-item summary>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.profile-settings-item summary small{color:var(--muted);font-weight:500;overflow-wrap:anywhere}
.profile-settings-item__action{color:var(--primary);font-weight:800;white-space:nowrap}
.profile-settings-item__action::after{content:'›';display:inline-block;margin-left:8px;transform:rotate(90deg);transition:transform .15s ease}
.profile-settings-item[open] .profile-settings-item__action::after{transform:rotate(-90deg)}
.profile-settings-item__form{padding:16px;border-top:1px solid var(--border);background:#fbfdff}
@media (max-width:760px){.profile-header{align-items:flex-start}.profile-subnav{width:100%}}

/* Global forum module */
.forum-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0}
.forum-heading h1,.forum-heading p{margin-bottom:4px}
.forum-topic-list{padding:0;overflow:hidden}
.forum-topic-row{display:grid;grid-template-columns:minmax(0,1fr) 185px;gap:18px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border);background:#fff}
.forum-topic-row:last-child{border-bottom:0}
.forum-topic-row--admin{background:linear-gradient(90deg,rgba(37,99,235,.075),#fff 46%);border-left:4px solid var(--primary);padding-left:14px}
.forum-topic-row--unread h2 a{font-weight:950}
.forum-topic-row__main{min-width:0}
.forum-topic-row__main h2{margin:6px 0 5px;font-size:1.15rem;line-height:1.25;overflow-wrap:anywhere}
.forum-topic-row__badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.forum-topic-row__activity{display:grid;grid-template-columns:auto 1fr;column-gap:5px;align-items:baseline;text-align:right}
.forum-topic-row__activity strong{font-size:1.1rem}
.forum-topic-row__activity small{grid-column:1/-1;margin-top:5px;line-height:1.35}
.forum-empty{text-align:center;padding:32px}
.forum-topic-detail{position:relative;scroll-margin-top:120px}
.forum-topic-detail--admin{border-top:4px solid var(--primary);background:linear-gradient(180deg,rgba(37,99,235,.05),#fff 150px)}
.forum-topic-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border)}
.forum-topic-detail__header h1{margin:7px 0 6px;overflow-wrap:anywhere}
.forum-topic-detail__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-topic-detail__body{padding:16px 0 8px;font-size:1.02rem}
.forum-topic-detail:hover>.comment-reactions .comment-reaction-picker,.forum-topic-detail:focus-within>.comment-reactions .comment-reaction-picker{opacity:1;pointer-events:auto;transform:translateY(0)}
.forum-topic-detail>.comment-reactions .comment-reaction-picker{top:auto;bottom:10px}
.forum-comments h2{margin-top:0}
.forum-inline-form{display:inline-flex;margin:0}
.comment-reaction-summary .forum-inline-form,.comment-reaction-picker .forum-inline-form{display:inline-flex}
.forum-post-edit{display:inline-block}
.forum-post-edit>summary{list-style:none}
.forum-post-edit>summary::-webkit-details-marker{display:none}
.forum-post-edit[open]{display:block;width:100%;margin-top:8px}
.forum-edit-form{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid rgba(37,99,235,.18);border-radius:12px;background:rgba(37,99,235,.035)}
.forum-reply-slot{margin-top:10px}
.forum-reply-slot .forum-comment-form{padding:12px;border:1px solid rgba(37,99,235,.18);border-radius:12px;background:rgba(37,99,235,.035)}
.forum-editor-label{position:relative}
.forum-editor-label__text{margin-bottom:6px;font-weight:800}
.forum-editor-wrap{position:relative;font-weight:400}
.forum-editor{min-height:150px}
.forum-comment-form .forum-editor{min-height:118px}
.forum-admin-options{padding:12px 14px;border:1px solid rgba(37,99,235,.2);border-radius:14px;background:rgba(37,99,235,.045)}
.forum-admin-options .chk{flex-direction:row;align-items:flex-start;font-weight:700}
.forum-mention{font-weight:800;color:var(--primary);text-decoration:none;background:rgba(37,99,235,.08);border-radius:999px;padding:1px 6px;white-space:nowrap}
.forum-mention:hover{text-decoration:underline;background:rgba(37,99,235,.14)}
.forum-post{scroll-margin-top:120px}
.post-view-stats{display:inline-block;color:var(--muted)}
.post-view-stats summary{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-weight:800;line-height:1.25;cursor:pointer;list-style:none}
.post-view-stats summary::-webkit-details-marker{display:none}
.post-view-stats summary:hover,.post-view-stats[open] summary{border-color:rgba(37,99,235,.35);background:rgba(37,99,235,.07);color:var(--primary)}
.post-view-stats summary svg{fill:currentColor;flex:0 0 auto}
.post-view-stats[open]{display:block;width:100%}
.post-view-stats__panel{width:min(360px,100%);margin-top:6px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.1);color:var(--text);font-size:13px}
.post-view-stats__panel>strong{display:block;margin-bottom:6px}
.post-view-stats__panel p{margin:0}
.post-view-stats__panel ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.post-view-stats__panel li{display:flex;justify-content:space-between;gap:14px}
.post-view-stats__panel time{color:var(--muted);white-space:nowrap}
.comment-item:has(>.comment-item__meta .post-view-stats[open])>.comment-reactions .comment-reaction-picker,.forum-topic-detail:has(.post-view-stats[open])>.comment-reactions .comment-reaction-picker{opacity:0;pointer-events:none;transform:translateY(-2px)}

@media (max-width:760px){
	.forum-topic-row{grid-template-columns:1fr;padding:14px}
	.forum-topic-row--admin{padding-left:10px}
	.forum-topic-row__activity{display:flex;gap:5px;align-items:baseline;text-align:left;flex-wrap:wrap}
	.forum-topic-row__activity small{width:100%;margin-top:0}
	.forum-topic-detail__header>.form-actions{width:100%}
	.forum-heading>.btn{width:100%}
}

/* Extended external team statistics */
.extended-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.external-stats-table{min-width:0;font-size:12px;table-layout:auto}
.external-stats-table th,.external-stats-table td{padding:7px 6px;white-space:normal;word-break:normal;overflow-wrap:normal;line-height:1.25}
.external-stats-table th:nth-child(1),.external-stats-table td:nth-child(1){width:78px;white-space:nowrap}
.external-stats-table th:nth-child(2),.external-stats-table td:nth-child(2){width:140px;white-space:normal}
.external-stats-table th:nth-child(3),.external-stats-table td:nth-child(3){width:auto;min-width:170px;white-space:normal}
.external-stats-table th:nth-child(4),.external-stats-table td:nth-child(4){width:58px;white-space:nowrap;text-align:center}
.external-stats-table th:nth-child(5),.external-stats-table td:nth-child(5){width:95px;white-space:nowrap}
.check{display:inline-flex;align-items:center;gap:7px;font-weight:700;margin:.4rem 0}
.check input{width:auto!important;margin:0}
.check--inline{margin:0 .35rem;white-space:nowrap}
@media (max-width:980px){.extended-stats-grid{grid-template-columns:1fr}.external-stats-table{min-width:620px}}

/* Odds API bookmaker diagnostics modal */
.odds-bookmaker-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.odds-bookmaker-modal[hidden]{display:none}
.odds-bookmaker-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.odds-bookmaker-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(2px)}
.odds-bookmaker-modal__window{position:relative;z-index:1;width:min(1180px,96vw);max-height:92vh;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.32)}
.odds-bookmaker-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border)}
.odds-bookmaker-modal__header h2{margin:0 0 4px}
.odds-bookmaker-modal__header p{margin:0}
.odds-bookmaker-modal__body{overflow:auto;padding:18px 20px;display:grid;gap:16px}
.odds-bookmaker-modal__filters{align-items:end}
.odds-bookmaker-modal__filter-check{display:flex;align-items:flex-end;min-height:62px}
.odds-bookmaker-modal__actions{margin-top:10px}
.odds-bookmaker-modal__catalog-wrap{max-height:320px;margin-top:10px}
.odds-bookmaker-modal__catalog input[type=checkbox]{width:auto;margin:0}
.odds-bookmaker-modal__selection-summary{margin-top:12px}
.odds-bookmaker-modal__coverage td:last-child{min-width:300px;white-space:normal}
.match-ml-odds-inline{display:flex;flex-direction:column;gap:.05rem;margin-top:.18rem;color:#657084;font-size:.72rem;line-height:1.3}
.match-ml-odds-inline__row{display:block;white-space:nowrap}
.match-ml-odds-inline__bookmaker{font-weight:600}
.match-ml-odds-inline strong{color:inherit;font-weight:700}
.odds-bookmaker-modal__missing{background:#fff7ed}
.odds-modal-open{overflow:hidden}
@media (max-width:720px){
	.odds-bookmaker-field{grid-template-columns:1fr}
	.odds-bookmaker-modal{padding:0}
	.odds-bookmaker-modal__window{width:100vw;max-height:100vh;height:100vh;border-radius:0}
	.odds-bookmaker-modal__header,.odds-bookmaker-modal__body{padding:14px}
	.odds-bookmaker-modal__coverage{min-width:760px}
}

/* Public home: scoring rules and signed-in preview */
.home-rules__base{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 18px}
.home-rule-tile{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fff}
.home-rule-tile__points{display:grid;place-items:center;flex:0 0 48px;min-height:48px;border-radius:12px;background:rgba(37,99,235,.10);color:var(--primary);font-size:1.35rem;font-weight:900}
.home-rule-tile h3{margin:1px 0 5px;font-size:1rem}
.home-rule-tile p{margin:0;color:var(--muted);line-height:1.45}
.home-rules__bonuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 18px}
.home-rules__bonuses>div{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border-radius:12px;background:rgba(15,23,42,.035);border:1px solid rgba(15,23,42,.07)}
.home-rules__bonuses strong{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:3px 7px;border-radius:999px;background:rgba(37,99,235,.10);color:var(--primary)}
.home-rules__bonuses span{line-height:1.45}
.home-rules__examples{margin-top:8px}
.home-rules__notes{display:grid;gap:6px;margin-top:16px;padding:14px;border-left:4px solid var(--primary);border-radius:0 12px 12px 0;background:rgba(37,99,235,.045)}
.home-rules__notes p{margin:0;line-height:1.5}
.home-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-top:16px}
.home-preview{margin:0;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.06)}
.home-preview__media{position:relative;overflow:hidden;border-bottom:1px solid var(--border);background:#eef2f7}
.home-preview__media img{display:block;width:100%;height:auto}
.home-preview__marker{position:absolute;left:var(--x);top:var(--y);display:grid;place-items:center;width:30px;height:30px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:var(--primary);color:#fff;font-weight:900;box-shadow:0 4px 14px rgba(15,23,42,.3)}
.home-preview figcaption{padding:14px}
.home-preview figcaption h3{margin:0 0 10px}
.home-preview__legend{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.home-preview__legend li{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;line-height:1.4}
.home-preview__legend li>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(37,99,235,.10);color:var(--primary);font-weight:900}
@media (max-width:980px){.home-preview-grid{grid-template-columns:1fr 1fr}.home-rules__base{grid-template-columns:1fr}.home-rules__bonuses{grid-template-columns:1fr}}
@media (max-width:680px){.home-preview-grid{grid-template-columns:1fr}.home-preview__marker{width:28px;height:28px}.home-rules__examples .table{min-width:720px}}

/* Home preview gallery */
.home-preview__media{display:block;width:100%;padding:0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:#eef2f7;cursor:zoom-in;text-align:inherit}
.home-preview__media:focus-visible{outline:3px solid rgba(37,99,235,.4);outline-offset:-3px}
.home-preview__media:hover img{transform:scale(1.012)}
.home-preview__media img{transition:transform .18s ease}
.home-preview__legend{counter-reset:preview-item}
.home-preview__legend li{counter-increment:preview-item;grid-template-columns:24px 1fr}
.home-preview__legend li>span{font-size:0}
.home-preview__legend li>span::before{content:counter(preview-item);font-size:13px}
.home-gallery[hidden]{display:none}
.home-gallery{position:fixed;inset:0;z-index:5000;display:grid;grid-template-columns:minmax(48px,8vw) minmax(0,1fr) minmax(48px,8vw);align-items:center;background:rgba(2,6,23,.96);color:#fff;overscroll-behavior:contain}
.home-gallery__figure{grid-column:2;margin:0;display:flex;min-width:0;max-height:100vh;flex-direction:column;align-items:center;justify-content:center;padding:28px 0 20px}
.home-gallery__image{display:block;max-width:100%;max-height:calc(100vh - 92px);object-fit:contain;user-select:none;-webkit-user-drag:none}
.home-gallery__caption{display:flex;gap:12px;align-items:center;justify-content:center;min-height:44px;padding:10px 12px 0;text-align:center}
.home-gallery__caption span{color:rgba(255,255,255,.72);font-size:13px}
.home-gallery__close,.home-gallery__nav{position:absolute;z-index:1;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.home-gallery__close{top:14px;right:16px;width:46px;height:46px;border-radius:50%;font-size:34px;line-height:1}
.home-gallery__nav{top:50%;width:52px;height:72px;transform:translateY(-50%);border-radius:12px;font-size:48px;line-height:1}
.home-gallery__nav--prev{left:16px}
.home-gallery__nav--next{right:16px}
.home-gallery__close:hover,.home-gallery__nav:hover,.home-gallery__close:focus-visible,.home-gallery__nav:focus-visible{background:rgba(255,255,255,.18);outline:2px solid rgba(255,255,255,.6)}
body.has-home-gallery{overflow:hidden}
@media (max-width:680px){.home-gallery{grid-template-columns:44px minmax(0,1fr) 44px}.home-gallery__nav{width:40px;height:58px;font-size:38px}.home-gallery__nav--prev{left:4px}.home-gallery__nav--next{right:4px}.home-gallery__close{top:8px;right:8px}.home-gallery__figure{padding:58px 0 12px}.home-gallery__image{max-height:calc(100vh - 118px)}}

/* Home preview strip */
.home-preview-strip{display:flex;gap:12px;overflow-x:auto;margin-top:16px;padding:2px 2px 10px;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
.home-preview-strip::-webkit-scrollbar{height:8px}
.home-preview-thumb{flex:0 0 clamp(220px,28vw,360px);height:190px;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:#eef2f7;box-shadow:0 8px 24px rgba(15,23,42,.06);cursor:zoom-in;scroll-snap-align:start}
.home-preview-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .18s ease}
.home-preview-thumb:hover img{transform:scale(1.02)}
.home-preview-thumb:focus-visible{outline:3px solid rgba(37,99,235,.4);outline-offset:2px}
.home-gallery__figure{max-width:min(1500px,calc(100vw - 120px))}
.home-gallery__image{max-height:calc(100vh - 190px)}
.home-gallery__caption{width:min(980px,100%);gap:18px;align-items:flex-start;justify-content:space-between;text-align:left}
.home-gallery__caption-main{min-width:0}
.home-gallery__caption-main strong{display:block;font-size:18px;line-height:1.3}
.home-gallery__caption-main p{margin:6px 0 0;color:rgba(255,255,255,.82);line-height:1.5}
.home-gallery__caption>span{flex:0 0 auto;padding-top:3px;white-space:nowrap}
@media (max-width:680px){.home-preview-thumb{flex-basis:82vw;height:160px}.home-gallery__figure{max-width:calc(100vw - 88px)}.home-gallery__image{max-height:calc(100vh - 235px)}.home-gallery__caption{display:block;padding-inline:4px}.home-gallery__caption>span{display:block;margin-top:8px}}

/* Team logos and flag fallback */
.team-label{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;min-width:0}
.team-label__name{min-width:0}
.team-visual{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:-2px;line-height:1}
.team-visual__logo{display:block;max-width:100%;max-height:100%;object-fit:contain}
.team-visual__flag{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.team-visual--16{width:16px;height:16px}
.team-visual--32{width:32px;height:32px}
.team-visual--48{width:48px;height:48px}
.team-visual--64{width:64px;height:64px}
.team-visual--128{width:128px;height:128px}
.team-visual--256{width:256px;height:256px}
.team-logo-preview{display:flex;align-items:center;gap:10px;margin:.5rem 0}
.team-logo-preview__meta{display:flex;flex-direction:column;gap:2px}

/* Přímý odkaz z připomínky na konkrétní tipovaný zápas. */
.prediction-match-row{scroll-margin-top:88px}
.prediction-match-row:target{background:rgba(37,99,235,.10);outline:2px solid rgba(37,99,235,.35);outline-offset:-2px}
.prediction-match-row--locked{background:rgba(15,23,42,.025)}
.prediction-match-close{margin-top:4px;font-size:.88em}

/* Admin dashboard worklist */
.admin-dashboard-worklist>h2,.admin-dashboard-tools>h2{margin:20px 0 10px}
.admin-dashboard-season__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.admin-dashboard-season__title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0}
.admin-dashboard-season__subtitle{margin:6px 0 0}
.admin-dashboard-season__prediction-summary{margin:7px 0 0;font-size:13px;line-height:1.45}
.admin-dashboard-season__actions,.admin-dashboard-round__actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.admin-dashboard-rounds{margin-top:16px}
.admin-dashboard-rounds .table{min-width:900px}
.admin-dashboard-round--overdue td{background:rgba(254,226,226,.55)}
.admin-dashboard-round__name{min-width:130px}
.admin-dashboard-round__detail{margin-top:5px;font-size:12px;line-height:1.4}
.admin-dashboard-tip-status{min-width:150px}
.admin-dashboard-tools>.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.admin-dashboard-tools>.grid>.card{margin:0}
.usage-statistics__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.usage-statistics__head h1{margin-bottom:6px}
.usage-statistics__periods{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}
.usage-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.usage-metric{display:flex;flex-direction:column;gap:5px;margin:0}
.usage-metric span{font-size:13px;color:var(--muted)}
.usage-metric strong{font-size:27px;line-height:1.1}
.usage-metric small{color:var(--muted)}
.usage-statistics__users{margin-top:0}
.usage-statistics__user-table{min-width:1180px}
.usage-statistics__user-table td small{display:block;color:var(--muted);margin-top:3px;white-space:nowrap}
.usage-breakdowns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.usage-breakdowns--user{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.usage-breakdowns>.card{margin:0;min-width:0}
.usage-breakdowns h2{margin-top:0}
.usage-breakdown-table{font-size:13px}
.usage-breakdown-table th,.usage-breakdown-table td{padding:8px 6px}
.usage-statistics__privacy{margin-top:16px}
.usage-statistics__sessions{margin-top:12px}
.usage-statistics__session-table{min-width:1120px}
.usage-statistics__session-table td small{display:block;color:var(--muted);margin-top:3px;white-space:nowrap}
.admin-missing-predictions__heading{align-items:flex-start}
.admin-missing-predictions__heading h1{margin-bottom:4px}
.admin-missing-predictions__heading p{margin:0}
.admin-missing-predictions__filter form{align-items:flex-end}
.admin-missing-predictions__filter label{flex:1 1 280px}
.admin-missing-predictions__summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.admin-missing-predictions__summary .card{display:flex;flex-direction:column;gap:6px;margin:0;box-shadow:none}
.admin-missing-predictions__summary strong{font-size:1.45rem}
.admin-missing-predictions__note{line-height:1.5}
.admin-missing-group__heading{align-items:flex-start}
.admin-missing-group__heading h2{margin:0}
.admin-missing-user{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.admin-missing-user__heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.admin-missing-matches{min-width:700px}
@media (max-width:760px){
	.admin-dashboard-season__head{display:block}
	.admin-dashboard-season__actions{margin-top:12px}
	.admin-dashboard-season__actions .btn{flex:1 1 auto}
	.admin-dashboard-rounds .table{min-width:820px}
	.admin-dashboard-round__actions{min-width:110px}
	.usage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
	.usage-breakdowns{grid-template-columns:1fr}
	.admin-missing-predictions__summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){.admin-missing-predictions__summary{grid-template-columns:1fr}}
@media (max-width:560px){.usage-metrics{grid-template-columns:1fr}.usage-statistics__periods{width:100%}.usage-statistics__periods .btn{flex:1 1 auto}}

/* Team detail */
.team-link{display:inline-flex;align-items:center;color:inherit;text-decoration:none;border-radius:6px}
.team-link:hover .team-label__name,.team-link:focus-visible .team-label__name{text-decoration:underline}
.team-link:focus-visible{outline:3px solid rgba(37,99,235,.3);outline:3px solid color-mix(in srgb,var(--primary) 30%,transparent);outline-offset:2px}
.team-detail-header{display:flex;align-items:center;justify-content:space-between;gap:24px}
.team-detail-header__identity{display:flex;align-items:center;gap:16px;min-width:0}
.team-detail-header__identity h1{margin:0}
.team-detail-header__identity p{margin:.3rem 0 0}
.team-detail-header__scope{max-width:620px;margin:0}
.team-detail-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) auto;align-items:end;gap:12px}
.team-detail-filters label{display:block;margin-bottom:5px;font-weight:700}
.team-detail-filters select{width:100%}
.team-detail-filters__actions{display:flex;gap:8px;flex-wrap:wrap}
.team-detail-section-title{align-items:flex-start;gap:16px;margin-bottom:12px}
.team-detail-section-title h2{margin:0}
.team-detail-section-title p{margin:.35rem 0 0}
.team-detail-table{min-width:960px}
.team-detail-stats-table{min-width:720px}
.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px;flex-wrap:wrap}
.table-pagination[hidden]{display:none}
.table-pagination__status{margin-right:auto}
.team-detail-kpis{margin:16px 0}
@media (max-width:900px){
	.team-detail-header{align-items:flex-start;flex-direction:column}
	.team-detail-header__scope{max-width:none}
	.team-detail-filters{grid-template-columns:1fr 1fr}
	.team-detail-filters__actions{grid-column:1/-1}
}
@media (max-width:600px){
	.team-detail-filters{grid-template-columns:1fr}
	.team-detail-filters__actions{grid-column:auto}
	.team-detail-section-title{display:flex;flex-direction:column}
	.table-pagination{justify-content:space-between}
}


/* Extracted admin matches view styles. */
.btn--preferred-import {
		background:#178a3f !important;
		border-color:#178a3f !important;
		color:#fff !important;
		font-weight:700;
	}
	.btn--preferred-import:hover { filter:brightness(.95); }


/* Extracted profile view styles. */
.password-help {
	margin-top: -6px;
}
.password-help.is-ok {
	color: #167c3a;
}
.password-help.is-warn {
	color: #a15c00;
}


/* Extracted registration view styles. */
.password-help {
	margin-top: -6px;
}
.password-help.is-ok {
	color: #167c3a;
}
.password-help.is-warn {
	color: #a15c00;
}
.my-tipping__heading{align-items:flex-start;gap:1rem}.my-tipping__section>h2{margin-top:0}.my-tipping__list{display:grid;gap:.75rem}.my-tipping-match{display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.3fr) minmax(180px,1fr) auto;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--border,#dfe5ee);border-radius:12px;background:var(--surface,#fff);min-width:0}.my-tipping-match>*{min-width:0}.my-tipping-match__context,.my-tipping-match__time{display:grid;gap:.2rem;font-size:.9rem}.my-tipping-match__context span,.my-tipping-match__time span{color:var(--muted,#64748b)}.my-tipping-match__teams{display:flex;gap:.55rem;align-items:center;justify-content:center;text-align:center}.my-tipping-match__form{display:flex;gap:.4rem;align-items:center;min-width:0}.my-tipping-match__form input{width:4.25rem;text-align:center}.my-tipping-match__save-state{min-width:5rem;font-size:.85rem;color:#15803d}.my-tipping-match__save-state.is-error{color:#b91c1c}.my-tipping-match__links{grid-column:1/-1;display:flex;gap:1rem;justify-content:flex-end;font-size:.9rem}.my-tipping-match__locked{font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.my-tipping-match{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.my-tipping-match__teams{justify-content:flex-start}.my-tipping-match__form{flex-wrap:wrap}.my-tipping-match__links{grid-column:1/-1}}@media(max-width:620px){.my-tipping-match{grid-template-columns:minmax(0,1fr)}.my-tipping-match__links{grid-column:auto;justify-content:flex-start;flex-wrap:wrap}.my-tipping__heading{align-items:flex-start}}
.milestone-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.milestone-grid>div{display:flex;flex-direction:column;gap:.2rem;padding:1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f8fafc)}
.milestone-grid span,.milestone-grid small{color:var(--muted)}
.milestone-grid strong{font-size:1.4rem}
@media (max-width:760px){.milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.my-tipping__filters{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem}
.my-tipping__filters .is-active{box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.admin-form-target{scroll-margin-top:96px}

/* Season team statistics */
.season-team-stats__table{min-width:1180px}
.season-team-toggle{width:2rem;height:2rem;border:1px solid var(--border);border-radius:50%;background:var(--surface,#fff);font-weight:800;cursor:pointer}
.season-team-toggle:disabled{cursor:not-allowed;opacity:.4}
.season-team-toggle:focus-visible{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}
.season-team-balance{font-weight:700}
.season-team-balance--positive{color:#15803d}
.season-team-balance--negative{color:#b91c1c}
.season-team-balance--neutral{color:var(--muted)}
.season-team-detail-content{padding:.75rem 0;min-height:2.5rem}
.season-team-users__table{min-width:1050px;background:var(--surface,#fff)}
.season-team-pagination{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}
.season-team-error{padding:.75rem;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#991b1b}
@media(max-width:600px){.season-team-stats__wrap{margin-inline:-.5rem}.season-team-pagination{justify-content:space-between}}
.player-team-rankings__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.player-team-ranking{min-width:0}
.player-team-ranking h3{margin-top:0}
.player-team-ranking__table{min-width:720px}
@media(max-width:1100px){.player-team-rankings__grid{grid-template-columns:minmax(0,1fr)}}
.detail-tabs{position:sticky;top:var(--topbar-sticky-height,0px);z-index:9;display:flex;gap:.35rem;margin:0 0 1rem;padding:.5rem;background:var(--bg,#f3f4f6);border:1px solid var(--border,#d1d5db);border-radius:0 0 12px 12px;overflow-x:auto;scrollbar-width:thin;backdrop-filter:blur(8px)}
.detail-tabs__tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.55rem .9rem;border-radius:9px;color:inherit;font-weight:700;text-decoration:none;white-space:nowrap}
.detail-tabs__tab:hover{background:var(--surface,#fff);text-decoration:none}
.detail-tabs__tab.is-active{background:var(--primary,#2563eb);color:#fff;box-shadow:0 2px 8px rgba(15,23,42,.16)}
.detail-tabs__panel[aria-busy="true"]{min-height:180px}
.detail-tabs__loading{display:grid;min-height:180px;place-items:center;color:var(--muted,#64748b)}
.detail-tabs__loading::before{content:"";width:28px;height:28px;margin-right:.65rem;border:3px solid #cbd5e1;border-top-color:var(--primary,#2563eb);border-radius:50%;animation:detail-tabs-spin .7s linear infinite}
.detail-tabs__error{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.detail-scroll__section{scroll-margin-top:calc(var(--topbar-sticky-height,0px) + 60px + 1rem)}
.detail-scroll__section+.detail-scroll__section{margin-top:1rem}
.detail-scroll__section[data-state="idle"],.detail-scroll__section[data-state="loading"]{min-height:180px}
.detail-scroll__section[data-state="idle"]{border:1px dashed var(--border,#d1d5db);border-radius:12px}
@keyframes detail-tabs-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.detail-tabs{margin-inline:-.25rem;border-radius:0 0 10px 10px}.detail-tabs__tab{min-height:40px;padding:.5rem .75rem}.detail-tabs__error{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
