/* Responsive composition, using the original Miniliga colours, type and imagery. */
html { scrollbar-gutter:stable; }
.site-nav-caption,.site-nav-icon { display:none; }
.tournament-rail-controls { display:none; }
.tournament-rail-controls[hidden] { display:none; }
.site-body.is-home .tournament-section-heading .home-section-title { margin:0; }
.site-body:is(.is-home,.is-public-inner) .public-hero-card { width:100%; margin-inline:0; max-height:none; }
.site-body.is-public-inner .public-hero-card { min-height:360px; padding:130px 0 32px; }
.site-body.is-public-inner .public-hero-inner { min-height:170px; padding:0; width:var(--page-width); }
.site-body.is-public-inner .hero-copy-block { max-width:920px; padding:0; }
.site-body.is-public-inner .hero-title-inner { max-width:20ch; font-size:clamp(2.5rem,4.8vw,4rem); line-height:1.08; text-wrap:balance; }
.site-body.is-public-inner .hero-text-inner { margin-top:16px; max-width:56ch; font-weight:500; }
.site-body.is-home .public-hero-inner { width:var(--page-width); }
.site-body .hero-title { overflow-wrap:break-word; }
.site-body .home-section-block { margin-top:64px; }
.site-body .home-section-block-first { margin-top:36px; }
.site-body .home-section-title,.site-body .section-title { letter-spacing:-.035em; line-height:1.16; }
.tournament-section-heading { align-items:flex-end; margin-bottom:24px; }
.tournament-section-heading > div { min-width:0; }
.section-description { margin:10px 0 0; max-width:54ch; color:var(--muted); font-size:1rem; line-height:1.6; text-wrap:pretty; }
.section-kicker { margin:0 0 10px; }
.section-link { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; color:var(--navy); font-weight:800; font-size:.9rem; flex-shrink:0; }
.section-link span { transition:transform 180ms ease; }
.section-link:hover span { transform:translateX(4px); }
.section-link:focus-visible { outline:3px solid var(--accent); outline-offset:5px; border-radius:4px; }
.site-body .home-about { display:grid; grid-template-columns:1fr 2fr; gap:44px; align-items:start; padding:36px 0; border-block:1px solid var(--border); }
.site-body .home-about .home-text-card { margin:0; padding:0; border:0; background:none; box-shadow:none; text-align:left; }
.site-body .home-about .home-text-card p { max-width:64ch; font-size:1.15rem; line-height:1.8; margin:0; }
.home-about-heading .section-link { margin-top:12px; }
.site-body .rich-text { max-width:70ch; line-height:1.8; overflow-wrap:anywhere; }
.site-body .rich-text > :first-child { margin-top:0; }
.site-body .rich-text h2,.site-body .rich-text h3 { line-height:1.25; margin-top:1.8em; }
.site-body .rich-text h2 { border:0; padding:0; font-size:1.55rem; }
.site-body .rich-text h3 { border:0; padding:0; background:none; font-size:1.15rem; }
.site-body .content-card-main > .lead-text { max-width:60ch; font-size:1.15rem; line-height:1.65; margin:0 0 28px; }
.site-body .content-card-main > .section-kicker { margin-bottom:16px; }
.tournament-team strong,.team-title,.portal-section-heading h1 { overflow-wrap:anywhere; }
.tournament-content,.tournament-detail,.content-stack { min-width:0; }

/* Let real club names and event copy determine the height of their cards. */
.site-body :is(.page-copy,.tournament-group-table,.event-card,.team-card-copy,.match-card-team-body,.table-team-copy) { min-width:0; }
.site-body :is(.section-title,.event-card h3,.event-location,.team-city,.team-meta-line,.match-card-meta-inline,.table-team-copy,.match-card-team strong) { overflow-wrap:anywhere; }
.table-mobile-copy strong { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; line-height:1.4; }
.tournament-team > strong { min-width:0; }
.tournament-team > .table-team-logo { flex-shrink:0; }
.tournament-team > .muted-small { overflow-wrap:anywhere; }
.match-inline-name { min-width:0; overflow-wrap:anywhere; }
.match-team-mobile-score { display:none; place-items:center; min-width:32px; min-height:32px; padding:4px; border-radius:8px; background:#edf3ff; color:var(--navy); font-size:1.12rem; font-weight:800; font-variant-numeric:tabular-nums; }

/* The bracket is a connected diagram on desktop and a stage-by-stage rail on phones. */
.portal-bracket { gap:36px; padding:4px 2px 16px; scrollbar-width:thin; scrollbar-color:#b9c9e3 transparent; }
.portal-bracket:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:8px; }
.portal-bracket-round { flex:1 0 230px; min-width:0; }
.portal-bracket-round h3 { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0; padding-bottom:18px; border-bottom:1px solid var(--border); font-size:.98rem; }
.portal-bracket-round h3 small { color:var(--muted); font-size:.7rem; font-weight:500; white-space:nowrap; }
.portal-bracket-games { display:flex; gap:0; min-height:calc(var(--bracket-size) * 196px); }
.portal-bracket-slot { position:relative; flex:1; display:flex; align-items:center; padding-block:16px; }
.portal-bracket-round.has-previous-round .portal-bracket-slot::before { content:''; position:absolute; top:50%; left:-18px; width:18px; border-top:2px solid #c7d5e9; }
.portal-bracket-round.has-next-round .portal-bracket-slot:nth-child(odd)::after { content:''; position:absolute; top:50%; right:-19px; width:19px; height:100%; border:2px solid #c7d5e9; border-left:0; border-radius:0 8px 8px 0; }
.portal-bracket-game { width:100%; min-width:0; padding:0; border-radius:14px; box-shadow:0 5px 15px -10px #163c8940; background:#fff; }
.portal-bracket-round .portal-bracket-game::before { display:none; }
.bracket-game-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:11px 12px; color:var(--muted); font-size:.68rem; line-height:1.4; border-bottom:1px solid var(--border); }
.bracket-status { color:var(--navy); font-weight:700; }
.bracket-status.is-live { color:#176348; }
.portal-bracket-game > .bracket-team { padding:10px 12px; gap:12px; align-items:center; font-size:.88rem; min-height:45px; }
.bracket-team-name { display:flex; gap:6px; align-items:center; overflow-wrap:anywhere; }
.bracket-winner { font-size:.7rem; }
.bracket-team strong { display:grid; place-items:center; min-width:27px; height:27px; border-radius:6px; color:var(--navy); background:#f0f4fb; }
.bracket-team.winner strong { background:var(--navy); color:#fff; }
.portal-bracket-game.bracket-final { border-color:#8aabd9; background:linear-gradient(145deg,#eef4ff,#fff 75%); }
.bracket-final .bracket-game-meta { background:var(--navy); color:#ffffffd9; border-radius:13px 13px 0 0; }
.bracket-final .bracket-status { color:#fff; }
.bracket-penalties { margin:0; padding:8px 12px; border-top:1px solid var(--border); font-size:.7rem; color:var(--muted); }
.portal-bracket-round.placement { border:0; padding:0; }
.portal-bracket-round.placement h3 { color:var(--muted); }
.bracket-stage-nav,.bracket-swipe-hint { display:none; }
.bracket-empty { text-align:center; padding:40px 18px; }
.bracket-empty strong { color:var(--navy); font-size:1.2rem; }
.bracket-empty p { margin:10px auto 0; max-width:40ch; line-height:1.6; }

/* Admin navigation remains fully available without JavaScript. */
.admin-navigation-body { display:flex; flex-direction:column; gap:16px; }
.admin-public-link { display:none; }
.admin-menu-toggle[hidden],.bracket-stage-nav[hidden] { display:none; }
.admin-menu-toggle { align-items:center; gap:10px; min-height:44px; padding:10px 14px; color:var(--navy); background:#edf3ff; border:1px solid var(--border); border-radius:12px; font:inherit; font-weight:700; cursor:pointer; }
.portal-mobile-label { display:none; }
.portal-result-teams { display:flex; flex-direction:column; gap:4px; }
.portal-publish-label { display:inline-flex; min-height:44px; min-width:44px; align-items:center; gap:8px; }
.portal-score-inputs label { display:flex; flex-direction:column; min-width:0; gap:6px; }
.portal-score-inputs label > span { display:none; }

@media (hover:hover) and (pointer:fine) {
 .team-card,.home-team-item,.match-card-detailed { transition:transform 200ms ease,box-shadow 200ms ease; }
 .team-card:hover,.home-team-item:hover { transform:translateY(-3px); }
}
@media (prefers-reduced-motion:no-preference) {
 .hero-copy-block { animation:miniliga-enter 550ms cubic-bezier(.2,.65,.3,1) both; }
 .hero-actions { animation:miniliga-enter 550ms 90ms cubic-bezier(.2,.65,.3,1) both; }
}
@keyframes miniliga-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:1100px) {
 .admin-layout { gap:22px; }
 .admin-brand-card { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; }
 .admin-brand-card > .muted,.admin-brand-card > .button { display:none; }
 .admin-brand-card .brand-mark { width:40px; height:48px; }
 .admin-brand-card .brand-copy strong { font-size:1rem; }
 .admin-brand-card .brand-copy > span { font-size:.72rem; }
 .admin-menu-toggle:not([hidden]) { display:inline-flex; }
 .admin-navigation-body[hidden] { display:none; }
 .admin-sidebar { gap:12px; }
 .admin-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .admin-nav-kicker { grid-column:1/-1; }
 .admin-public-link { display:block; grid-column:1/-1; }
 .admin-user-card { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
 .admin-user-card p { margin:0; }
 .admin-user-card .logout-form { margin-left:auto; }
}
@media (max-width:900px) {
 .bracket-stage-nav:not([hidden]) { display:grid; grid-template-columns:repeat(var(--bracket-stages,4),minmax(0,1fr)); gap:6px; padding:0; margin-bottom:20px; overflow:visible; }
 .bracket-stage-nav button { min-width:0; min-height:44px; padding:10px 8px; border:1px solid transparent; border-radius:10px; background:#edf2fa; color:var(--navy); font:inherit; font-size:.8rem; font-weight:800; white-space:normal; cursor:pointer; transition:background 160ms ease,color 160ms ease; }
 .bracket-stage-nav button[aria-pressed="true"] { background:var(--navy); color:#fff; }
 .bracket-stage-nav button:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
 .portal-bracket { gap:18px; scroll-snap-type:x mandatory; scroll-padding:0; padding:2px 0 12px; align-items:flex-start; scrollbar-width:none; overflow-y:hidden; }
 .portal-bracket::-webkit-scrollbar,.tournament-tabs::-webkit-scrollbar { display:none; }
 .portal-bracket-round { flex:0 0 100%; scroll-snap-align:start; scroll-snap-stop:always; }
 .portal-bracket-round h3 { font-size:1rem; padding-bottom:10px; }
 .portal-bracket-games { min-height:0; justify-content:flex-start; gap:12px; padding-top:14px; }
 .portal-bracket-slot { padding:0; flex:0 0 auto; }
 .portal-bracket-slot::before,.portal-bracket-slot::after { display:none; }
 .bracket-game-meta { font-size:.72rem; padding:12px 14px; }
 .portal-bracket-game > .bracket-team { padding:10px 14px; font-size:.92rem; }
 .bracket-swipe-hint { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:8px 0 0; font-size:.75rem; color:var(--muted); line-height:1.6; }
 .bracket-swipe-hint span { font-size:1.3rem; }
}
@media (max-width:760px) {
 /* Controls grow with their labels instead of being clipped by narrow cards. */
 .button { min-width:0; max-width:100%; height:auto; padding-block:12px; white-space:normal; overflow-wrap:anywhere; text-align:center; line-height:1.4; }
 .form-grid,.portal-form-grid { grid-template-columns:minmax(0,1fr); }
 .form-grid > *, .portal-form-grid > *, .field { min-width:0; }
 .admin-body :is(input:not([type=checkbox]):not([type=hidden]),textarea,select) { min-width:0; max-width:100%; }
 .admin-body .ml-select__value { white-space:normal; overflow-wrap:anywhere; }
 .tournament-group-table .standings-info-panel,.tournament-panel-heading { padding:20px; }
 .tournament-group-table .standings-info-panel .section-title { font-size:1.25rem; line-height:1.3; }
 .tournament-group-table .table-mobile-list { padding:8px 12px 12px; }
 .table-mobile-row,.table-mobile-row:last-child { padding:12px 8px; }
 .table-mobile-row.is-leader { margin-inline:0; padding-inline:8px; }
 .table-mobile-main { gap:8px; }
 .table-mobile-teamline { gap:8px; align-items:flex-start; }
 .table-mobile-teamline .table-rank-badge { flex:0 0 22px; min-width:22px; min-height:32px; padding:0; display:grid; place-items:center; }
 .table-mobile-teamline .table-team-logo { flex:0 0 32px; width:32px; height:32px; }
 .table-mobile-copy { padding-block:5px; }
 .table-mobile-points { padding:5px 0 0; min-width:24px; text-align:right; }
 .table-mobile-scoreline,.table-mobile-stats-inline { margin-left:70px; }
 .site-body .ml-select__value { white-space:normal; overflow-wrap:anywhere; }
 .match-inline-item { grid-template-columns:minmax(0,1fr); gap:8px; }
 .match-inline-team,.match-inline-team-away { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:10px; text-align:left; }
 .match-inline-team .result-logo { grid-column:1; grid-row:1; }
 .match-inline-team .match-inline-name { grid-column:2; grid-row:1; white-space:normal; overflow:visible; line-height:1.4; }
 .match-inline-team .match-team-mobile-score { display:grid; grid-column:3; grid-row:1; }
 .match-inline-item .result-score-wrap { grid-row:3; justify-self:start; }
 .match-inline-item .result-score { display:none; }
 .site-body.is-home .home-results-card .result-score-wrap:not(:has(.tournament-penalties)) { display:none; }
 .site-body.is-home .home-results-card .result-logo { width:32px; height:32px; }
 .site-body:is(.is-home,.is-public-inner) { --page-width:calc(100% - 32px); }
 .site-body:is(.is-home,.is-public-inner) .site-header-inner { width:var(--page-width); flex-direction:row; align-items:center; justify-content:space-between; gap:12px; padding-top:12px; }
 .site-body:is(.is-home,.is-public-inner) .site-header-controls { width:auto; flex:0 0 auto; position:static; transform:none; }
 .site-body:is(.is-home,.is-public-inner) .brand { gap:10px; }
 .site-body:is(.is-home,.is-public-inner) .brand-mark { width:42px; height:52px; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-toggle { width:auto; min-height:44px; gap:10px; padding:10px 14px; border-radius:14px; font-size:.85rem; }
 .site-body:is(.is-home,.is-public-inner) .site-nav { top:78px; left:16px; right:16px; width:auto; max-height:calc(100svh - 96px); padding:10px; border-radius:18px; }
 .site-body:is(.is-home,.is-public-inner) .public-hero-card { min-height:0; padding:116px 0 32px; }
 .site-body:is(.is-home,.is-public-inner) .public-hero-inner { width:var(--page-width); min-height:0; padding:0; align-items:flex-end; }
 .site-body:is(.is-home,.is-public-inner) .hero-copy-block { max-width:100%; padding:0; margin:0; }
 .site-body.is-home .public-hero-card { min-height:460px; display:flex; align-items:flex-end; padding-bottom:40px; background-position:60% center; }
 .site-body.is-home .hero-title-home { max-width:18ch; font-size:clamp(2.15rem,8.6vw,3rem); line-height:1.06; }
 .site-body.is-public-inner .hero-title-inner { max-width:22ch; font-size:clamp(1.9rem,7vw,2.65rem); line-height:1.12; }
 .site-body:is(.is-home,.is-public-inner) .hero-text { max-width:36ch; margin:14px 0 0; font-size:1rem; line-height:1.6; font-weight:500; }
 .site-body.is-home .hero-actions { display:flex; flex-wrap:wrap; width:100%; gap:10px; margin-top:24px; }
 .site-body.is-home .hero-actions .button { width:auto; min-height:46px; padding:12px 16px; font-size:.78rem; }
 .site-body.is-public-inner .hero-overlap-section { margin-top:24px; }
 .site-body .home-section-block { margin-top:38px; }
 .site-body .home-section-block-first { margin-top:28px; }
 .site-body .home-section-title,.site-body .section-title { font-size:clamp(1.45rem,6vw,1.9rem); }
 .site-body .home-section-title { padding-left:12px; }
 .tournament-section-heading { gap:10px 16px; align-items:flex-start; margin-bottom:18px; }
 .tournament-section-heading > .section-link { margin-left:12px; min-height:36px; }
 .tournament-overview .tournament-section-heading { display:grid; grid-template-columns:minmax(0,1fr); gap:4px; margin-bottom:16px; }
 .tournament-overview .tournament-section-heading > .section-link { margin-left:10px; min-height:44px; justify-self:start; }
 .section-description { font-size:.92rem; margin-top:9px; }
 .home-section-block .section-description { margin-left:12px; }
 .section-link { font-size:.85rem; }
 .section-kicker { font-size:.68rem; letter-spacing:.1em; margin-bottom:8px; }
 .tournament-overview { padding-top:0; }
 .site-body .home-about { grid-template-columns:1fr; gap:20px; padding:28px 0; }
 .site-body .home-about .home-text-card p { font-size:1rem; line-height:1.8; }
 .home-about-heading .section-link { margin-top:0; margin-left:12px; }
 .site-body .content-card-main > .lead-text { font-size:1.04rem; margin-bottom:24px; }
 .site-body .content-card-main,.site-body .content-card-subsection,.site-body .faq-page-card { padding:22px 18px; }
 .site-body .rich-text { font-size:.96rem; line-height:1.8; }
 .site-body .content-layout-public { gap:20px; }
 .site-body .sidebar-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding:6px; gap:4px; border-radius:14px; }
 .sidebar-nav-kicker { display:none; }
 .sidebar-nav .sidebar-nav-link { min-width:0; white-space:normal; overflow-wrap:anywhere; min-height:44px; padding:12px 14px; font-size:.85rem; }
 .tournament-back-link { margin-bottom:6px; font-size:.8rem; }
 .tournament-picker { padding:14px; margin-bottom:14px; border-radius:16px; }
 .tournament-picker form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
 .tournament-picker label { grid-column:1/-1; font-size:.74rem; }
 .tournament-picker form > .ml-select,.tournament-picker select { width:100%; min-width:0; }
 .tournament-picker .button { width:auto; min-height:48px; padding:10px 12px; font-size:.75rem; max-width:90px; line-height:1.4; }
 .tournament-picker .lead-text { font-size:.8rem; line-height:1.5; }
 .tournament-navigation { padding:0 0 14px; margin-bottom:24px; background:none; border:0; border-bottom:1px solid var(--border); border-radius:0; box-shadow:none; }
 .tournament-tabs { display:flex; flex-direction:row; flex-wrap:wrap; gap:6px; overflow:visible; padding:2px; border-radius:0; }
 .tournament-tabs .match-tab-button { flex:1 1 0; min-width:0; min-height:44px; padding:10px 8px; font-size:.8rem; width:auto; white-space:normal; overflow-wrap:anywhere; text-align:center; line-height:1.4; }
 .tournament-navigation .tournament-note { margin:10px 2px 0; font-size:.74rem; line-height:1.55; }
 .tournament-team { flex-wrap:wrap; gap:10px; }
 .tournament-team .muted-small { flex-basis:100%; margin:0; }
 .match-card-team strong { white-space:normal; overflow-wrap:anywhere; text-overflow:clip; }
 .match-card-team-body { min-width:0; }
 .match-team-logo { flex-shrink:0; }
 .tournament-bracket-shell { padding:16px 12px!important; border-radius:18px; }
 .catalogue-toolbar .lead-text { font-size:.93rem; }
 .site-body .catalogue-season { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
 .catalogue-season label { grid-column:1/-1; }
 .catalogue-season > .ml-select { width:100%; }
 .catalogue-season .button { width:auto; min-height:48px; padding-inline:14px; }
 .catalogue-filters { flex-wrap:wrap; overflow:visible; }
 .catalogue-filters a { flex:1 1 auto; min-width:0; min-height:44px; white-space:normal; overflow-wrap:anywhere; }
 .site-body .season-picker { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
 .site-body .season-picker .button { width:auto; padding-inline:14px; }
 .site-body .season-picker__field { min-width:0; }
 .site-body .matches-toolbar-card,.site-body .standings-toolbar-card { padding:0 0 20px; gap:18px; border:0; border-bottom:1px solid var(--border); border-radius:0; background:none; box-shadow:none; }
 .site-body .matches-toolbar-card .match-tabs { flex-direction:row; padding:4px; border-radius:16px; box-shadow:none; }
 .site-body .matches-toolbar-card .match-tab-button { padding:10px 8px; font-size:.8rem; border-radius:12px; }
 .site-body .matches-toolbar-card .season-picker { padding:0; }
 .site-body .page-toolbar-card .lead-text { font-size:.92rem; margin-top:10px; }
 .portal-steps,.portal-result-filters { scrollbar-width:none; }
 .portal-steps::-webkit-scrollbar,.portal-result-filters::-webkit-scrollbar { display:none; }
 .ml-select__trigger { padding-inline:12px; font-size:16px; }
 .admin-body input:not([type=checkbox]):not([type=hidden]),.admin-body textarea,.admin-body select,.admin-body .ml-select__trigger { font-size:16px; }
 .admin-layout { width:calc(100% - 24px); padding-top:12px; gap:20px; }
 .admin-main { gap:18px; }
 .admin-main .card { min-width:0; }
 .portal-section-heading { gap:14px; }
 .portal-section-heading h1 { font-size:1.65rem; line-height:1.2; }
 .portal-section-heading p { font-size:.88rem; line-height:1.6; }
 .portal-panel { border-radius:18px; }
 .portal-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding:6px; gap:6px; }
 .portal-steps a { min-width:0; min-height:48px; padding:10px; font-size:.78rem; line-height:1.4; white-space:normal; overflow-wrap:anywhere; gap:6px; }
 .portal-steps a::before { width:21px; height:21px; flex-shrink:0; }
 .portal-form,.portal-panel-heading { padding:18px 14px; }
 .portal-result-filters { padding:12px; flex-wrap:wrap; overflow:visible; }
 .portal-result-filters a { display:inline-flex; flex:1 1 104px; min-width:0; align-items:center; justify-content:center; min-height:44px; white-space:normal; overflow-wrap:anywhere; text-align:center; line-height:1.4; }
 .portal-events,.portal-events tbody,.portal-results,.portal-results tbody { display:block; width:100%; }
 .portal-events thead,.portal-results thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .portal-events tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:18px; border-bottom:1px solid var(--border); }
 .portal-events tr:last-child,.portal-results tr:last-child { border-bottom:0; }
 .portal-events td { display:block; padding:0; border:0; min-width:0; }
 .portal-events td:first-child { grid-column:1/-1; font-size:1.05rem; }
 .portal-events td:nth-child(2),.portal-events td:nth-child(3) { grid-column:1/-1; color:var(--muted); font-size:.82rem; }
 .portal-events td:nth-child(4)::before { content:'Zápasy: '; color:var(--muted); }
 .portal-events td:last-child { grid-column:1/-1; border-top:1px solid var(--border); padding-top:6px; }
 .portal-events td:last-child a { display:flex; align-items:center; min-height:44px; }
 .portal-results tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px 12px; padding:18px 14px; border-bottom:8px solid #f0f3f9; }
 .portal-results td { display:block; min-width:0; padding:0; border:0; }
 .portal-results td:nth-child(1),.portal-results td:nth-child(2) { grid-column:1/-1; }
 .portal-results td:nth-child(1) { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:.78rem; }
 .portal-results td:nth-child(1) small { margin:0; }
 .portal-results td:nth-child(2) { font-size:1rem; padding-bottom:12px; border-bottom:1px solid var(--border); }
 .portal-result-teams { flex-direction:row; align-items:center; justify-content:space-between; gap:14px; }
 .portal-result-teams > * { flex:1; overflow-wrap:anywhere; }
 .portal-result-teams > small { font-size:inherit; font-weight:700; color:var(--navy); margin:0; text-align:right; }
 .portal-results td[data-label]::before { content:attr(data-label); display:block; margin-bottom:8px; color:var(--muted); font-size:.74rem; font-weight:700; }
 .portal-results .ml-select { min-width:0; }
 .portal-results td:nth-child(5) { grid-column:1/-1; }
 .portal-results td:last-child { display:flex; justify-content:flex-end; align-items:center; }
 .portal-results td:last-child a { display:inline-flex; align-items:center; min-height:44px; padding-inline:8px; }
 .portal-score-inputs { gap:6px; }
 .portal-score-inputs label { flex:1; }
 .portal-score-inputs label > span { display:block; font-size:.67rem; color:var(--muted); overflow-wrap:anywhere; }
 .portal-results .portal-score-inputs input { width:100%!important; min-width:0; }
 .portal-mobile-label { display:inline; font-size:.8rem; }
 .portal-form-actions.padded { padding:16px 14px; }
 .portal-checkbox { min-height:44px; }
}
@media (max-width:700px) {
 .site-body.is-home .tournament-grid { gap:16px; margin:0; padding:3px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:3px; scrollbar-width:none; overscroll-behavior-x:contain; }
 .site-body.is-home .tournament-grid::-webkit-scrollbar { display:none; }
 .site-body.is-home .tournament-grid:not([data-rail-ready]) { display:grid; grid-template-columns:minmax(0,1fr); overflow:visible; }
 .site-body.is-home .tournament-grid .tournament-card { flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
 .tournament-grid:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:22px; }
 .tournament-rail-controls:not([hidden]) { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:10px; }
 .tournament-rail-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; background:#fff; color:var(--navy); border:1px solid #d5dfef; border-radius:50%; cursor:pointer; transition:background 180ms ease,transform 180ms ease; }
 .tournament-rail-controls button:not([aria-disabled="true"]):hover { background:#e8effb; }
 .tournament-rail-controls button:not([aria-disabled="true"]):active { transform:scale(.94); }
 .tournament-rail-controls button[aria-disabled="true"] { opacity:.35; cursor:default; }
 .tournament-rail-controls button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
 .tournament-rail-controls svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
 .tournament-rail-count { min-width:42px; text-align:center; color:var(--muted); font-size:.8rem; font-weight:700; font-variant-numeric:tabular-nums; }
}
@media (max-width:600px) {
 .bracket-stage-nav:not([hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bracket-stage-nav button:last-child:nth-child(odd) { grid-column:1/-1; }
}
@media (max-width:760px) {
 /* Keep the panel mounted so opening and closing can both interpolate. */
 .site-body:is(.is-home,.is-public-inner) .site-nav-shell .site-nav { display:flex; flex-direction:column; align-items:stretch; gap:5px; padding:16px; border:1px solid #a7bde529; border-radius:24px; background:linear-gradient(145deg,#182c51,#0c1934 75%); box-shadow:0 24px 64px -16px #040c21a6,inset 0 1px 0 #ffffff0d; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-12px) scale(.98); transform-origin:top right; transition:opacity 180ms ease,transform 220ms cubic-bezier(.4,0,1,1),visibility 0s linear 220ms; z-index:60; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-shell.is-open .site-nav { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); transition:opacity 240ms ease,transform 360ms cubic-bezier(.16,1,.3,1),visibility 0s; }
 .site-body .site-nav-shell .site-nav-backdrop { display:block; opacity:0; visibility:hidden; pointer-events:none; background:#050d2180; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); transition:opacity 220ms ease,visibility 0s linear 220ms; z-index:50; }
 .site-body .site-nav-shell.is-open .site-nav-backdrop { opacity:1; visibility:visible; pointer-events:auto; transition:opacity 300ms ease,visibility 0s; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-toggle,.site-body .brand-header { position:relative; z-index:70; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-toggle { justify-content:center; min-width:100px; background:#ffffff10; transition:background 180ms ease,border-color 180ms ease; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-toggle[aria-expanded="true"] { background:#203659; border-color:#88a9da66; }
 .site-nav-toggle-box { position:relative; width:18px; height:16px; display:block; }
 .site-nav-toggle-box span { position:absolute; left:0; width:18px; margin:0; transform-origin:center; transition:transform 260ms cubic-bezier(.2,.7,.2,1),opacity 150ms ease; }
 .site-nav-toggle-box span:nth-child(1) { top:1px; }
 .site-nav-toggle-box span:nth-child(2) { top:7px; }
 .site-nav-toggle-box span:nth-child(3) { top:13px; }
 .site-nav-toggle[aria-expanded="true"] .site-nav-toggle-box span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
 .site-nav-toggle[aria-expanded="true"] .site-nav-toggle-box span:nth-child(2) { opacity:0; transform:scaleX(.4); }
 .site-nav-toggle[aria-expanded="true"] .site-nav-toggle-box span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
 .site-nav-caption { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 4px 8px; padding:0 0 13px; border-bottom:1px solid #ffffff14; color:#a7bcdf; font-size:.62rem; font-weight:800; letter-spacing:.13em; }
 .site-nav-caption span { color:#a7bcdf; font-size:.67rem; font-weight:500; letter-spacing:0; }
 .site-body:is(.is-home,.is-public-inner) .site-nav .nav-pill { display:flex; flex:0 0 auto; align-items:center; gap:14px; min-height:54px; padding:10px 13px; border:1px solid transparent; border-radius:14px; font-size:.96rem; color:#e9f0fc; opacity:0; transform:translateY(-6px); transition:opacity 130ms ease,transform 180ms ease,background-color 150ms ease,border-color 150ms ease; }
 .site-body:is(.is-home,.is-public-inner) .site-nav-shell.is-open .nav-pill { opacity:1; transform:translateY(0); transition:opacity 240ms ease,transform 300ms cubic-bezier(.16,1,.3,1),background-color 150ms ease,border-color 150ms ease; transition-delay:var(--nav-delay,40ms),var(--nav-delay,40ms),0s,0s; }
 .site-body:is(.is-home,.is-public-inner) .site-nav .nav-pill.is-active { background:#3a78d42b; border-color:#82acf245; color:#fff; }
 .site-body:is(.is-home,.is-public-inner) .site-nav .nav-pill:hover { background:#ffffff0c; }
 .site-body:is(.is-home,.is-public-inner) .site-nav .nav-pill:focus-visible { outline:2px solid #8fb9ff; outline-offset:1px; }
 .site-nav-icon { display:grid; place-items:center; width:30px; height:30px; flex:none; color:#a7bcdf; }
 .site-nav-icon svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
 .nav-pill.is-active .site-nav-icon { color:#9ac1ff; }
}
@media (max-width:480px) {
 .tournament-picker form { grid-template-columns:minmax(0,1fr); }
 .tournament-picker .button { width:100%; max-width:none; }
 .site-body .season-picker { grid-template-columns:minmax(0,1fr); }
 .site-body .season-picker .button { width:100%; }
 .tournament-team { display:grid; grid-template-columns:32px minmax(0,1fr); gap:8px 12px; }
 .tournament-team > .muted-small { grid-column:2; margin-left:0; }
 .match-card-stage { grid-template-columns:minmax(0,1fr); gap:12px; }
 .match-card-team-home,.match-card-team-away { justify-items:stretch; text-align:left; }
 .match-card-team-body { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; width:100%; }
 .match-card-team strong { white-space:normal; overflow:visible; line-height:1.4; }
 .match-team-mobile-score { display:grid; }
 .match-score-panel { display:none; grid-row:3; }
 .match-score-panel:has(.tournament-penalties) { display:block; }
 .match-score-panel > :not(.tournament-penalties) { display:none; }
}
@media (max-width:480px) {
 .tournament-tabs:has(> a:nth-child(5)) .match-tab-button { flex-basis:calc((100% - 12px) / 3); }
}
@media (max-width:380px) {
 .site-body.is-home .hero-actions .button { padding:12px 14px; font-size:.72rem; }
 .site-body .tournament-tabs .match-tab-button { padding-inline:8px; }
 .admin-brand-card { padding:10px; gap:8px; }
 .admin-brand-card .brand { gap:8px; }
 .admin-menu-toggle { padding:10px; font-size:.85rem; }
 .team-grid-public { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
 :is(.site-body,.admin-body) *,:is(.site-body,.admin-body) *::before,:is(.site-body,.admin-body) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .hero-copy-block,.hero-actions { animation:none; }
 .section-link span,.bracket-stage-nav button,.team-card,.home-team-item,.match-card-detailed { transition:none; }
 .section-link:hover span,.team-card:hover,.home-team-item:hover { transform:none; }
}
