/* ============================================
   GLP - Grudziądzka Liga Piłkarska
   Design v7.18 — MOBILE-FIRST rewrite
   Base = mobile (≤640px), min-width:641px = tablet, min-width:1025px = desktop
   ============================================ */

/* Czas generowania strony — ukryty (debug) */
.glp-gen-time { display: none; }

/* --- RESET & BAZA --- */
:root {
    /* Marka */
    --glp-blue: #2857a5;
    --glp-blue-light: #3b6fbf;

    /* Kolory rozgrywek */
    --glp-liga1: #e6930a;
    --glp-liga2: #2857a5;
    --glp-puchar: #3b82f6;
    --glp-baraze: #d946a8;

    /* UI */
    --glp-black: #1a1a1a;
    --glp-bg: #f4f4f4;
    --glp-card: #ffffff;
    --glp-text: #1a1a1a;
    --glp-text-secondary: #555555;
    --glp-text-muted: #999999;
    --glp-border: #e5e5e5;
    --glp-border-light: #efefef;
    --glp-accent: #2857a5;
    --glp-accent-hover: #1e4280;
    --glp-red: #dc2626;
    --glp-green: #16a34a;
    --glp-shadow: 0 1px 2px rgba(0,0,0,0.04);
    --glp-radius: 6px;
    --glp-radius-sm: 4px;
}

* { box-sizing: border-box; }

html { font-size: 16px; overflow-x: clip; }

body {
    background-color: var(--glp-bg);
    color: var(--glp-text);
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 1rem;
    margin: 0;
    padding: 0;
    min-width: unset;
    text-shadow: none;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    max-width: 100vw;
}

a {
    color: var(--glp-accent);
    text-decoration: none;
    text-shadow: none;
    font-size: inherit;
    transition: color 0.15s;
}
a:hover { color: var(--glp-accent-hover); }

/* ==========================================
   NAGLOWEK — jasny, styl Premier League
   ========================================== */
#top {
    position: sticky;
    top: 0;
    height: auto;
    width: 100%;
    background: linear-gradient(160deg, #0a1628 0%, #132a52 60%, #1e4280 100%);
    border-bottom: none;
    z-index: 100;
    transition: none;
}
#top-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 14px 20px 10px;
    min-height: auto;
    position: relative;
}

/* --- Logo: centered on mobile --- */
#top-logo {
    width: auto;
    height: auto;
    flex-shrink: 0;
    padding: 0;
    margin-right: 0;
}
img.img-logo {
    height: 36px;
    margin: 0;
    transition: none;
}
img.img-logo:hover {
    filter: none;
    opacity: 0.8;
}
#top-rest { display: contents; }

/* Nazwa ligi — widoczna na mobile (ciemny header) */
#top-rest-up {
    display: flex;
    align-items: center;
    min-width: 0;
    margin-top: 4px;
}
span.glp {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    text-shadow: none;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.1em;
    white-space: normal;
    text-align: center;
}
span.letter {
    font-size: inherit;
    color: #ffffff;
}

/* --- MENU DESKTOP — ukryte na mobile/tablet, widoczne na desktop --- */
#top-rest-down {
    display: none;
    height: auto;
    transition: none;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: 0;
}
div.menubutton {
    width: auto;
    max-width: none;
    font-size: 0.9rem;
    padding: 20px 16px;
    border-radius: 0;
    position: relative;
}
div.menubutton::after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 14px;
    height: 2px;
    background: var(--glp-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
div.menubutton:hover::after {
    transform: scaleX(1);
}
div.menubutton:hover {
    background: transparent;
}
a.menubutton {
    color: var(--glp-text);
    font-weight: 600;
    letter-spacing: 0.04em;
    font-size: 0.9rem;
    text-transform: uppercase;
    transition: color 0.2s ease;
}
a.menubutton:hover {
    color: var(--glp-accent);
}

/* Panel button — wyróżniony w menu dla zalogowanych */
div.menubutton--panel a.menubutton {
    color: var(--glp-accent);
}
div.menubutton--panel::after {
    background: var(--glp-accent);
}

/* --- STARY DROPDOWN (zastąpiony przez v7.18 mobile menu) --- */
.dropdown { display: none !important; }
.dropbtn { display: none; }
.show { display: block; }

/* ==========================================
   HEADER (pod menu, info o zapisach)
   ========================================== */
#center {
    margin-top: 0;
    background-color: transparent;
    min-height: auto;
    margin-bottom: 0;
}
#header {
    height: auto;
    background: transparent;
    border-bottom: none;
    padding: 0;
    text-shadow: none;
}
#header-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    height: auto;
    padding: 0 20px;
}
#header-inner-inner {
    padding: 12px 0 0;
}
div.header-info {
    color: #ffffff;
    font-size: 0.9rem;
    padding: 14px 20px;
    background: var(--glp-accent);
    border-radius: var(--glp-radius);
    margin: 0 0 4px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4em;
}
div.header-info a {
    color: #ffffff;
    text-decoration: underline;
    font-weight: 700;
}

/* ==========================================
   CONTENT AREA
   ========================================== */
#content {
    background-color: var(--glp-bg);
    min-height: calc(100vh - 300px);
}
/* Kill text-shadow globally */
#content *, #content td, #content td a, #content td span, #content th {
    text-shadow: none;
}

/* Base (mobile): block layout, compact padding */
#content-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 12px 8px;
    display: block;
    align-content: flex-start;
    justify-content: center;
}
#content-inner > * { margin-bottom: 12px; }
#content-inner > *:last-child { margin-bottom: 0; }

/* ==========================================
   KARTY / KONTENERY (S, M, L, XL, XS)
   ========================================== */
div.XS, div.S, div.M, div.L, div.XL {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    padding: 0;
    margin: 0;
    overflow: hidden;
    max-width: 100%;
}
/* Mobile: full width for S, M, L, XL */
div.S  { width: 100%; flex-wrap: wrap; }
div.M  { width: 100%; }
div.L  { width: 100%; }
div.XL { width: 100%; }
div.XS { width: calc(50% - 6px); }
div.group-M { width: 100%; gap: 16px; }
div.fill { width: 100%; font-size: 0.9rem; padding: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
div.break { flex-basis: 100%; height: 0; width: 0; overflow: hidden; }

/* ==========================================
   TABELE — czyste, minimalistyczne
   ========================================== */
table {
    border-collapse: collapse;
    width: 100%;
}
/* Base (mobile): compact padding */
th {
    background: var(--glp-black);
    color: #ffffff;
    text-align: left;
    height: auto;
    padding: 8px 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.75rem;
    font-weight: 600;
    border-bottom: none;
    font-family: 'Montserrat', sans-serif;
}
th.tab-S {
    background: var(--glp-black);
    font-size: 0.75rem;
}
td {
    font-size: 0.9rem;
    padding: 6px 8px;
    border-bottom: 1px solid var(--glp-border-light);
    text-align: left;
    height: auto;
    color: var(--glp-text);
    line-height: 1.4;
}
/* Nadpisanie inline font-size z PHP (0.72em, 0.95em) → czytelny rozmiar */
td[style*="font-size"] { font-size: 0.9rem !important; }
/* Wynik meczu (1.2em) — duzy, czytelny */
td[style*="font-size:1.2em"] {
    font-size: 2rem !important;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    line-height: 1.2 !important;
}
td a { color: var(--glp-text); font-weight: 500; font-size: inherit; }
td a:hover { color: var(--glp-accent); }
td a[style*="font-size"] { font-size: inherit !important; }
td.center { text-align: center; }
td.tab-S-liczba { text-align: center; width: 40px; }
td.tab-footer {
    background: #fafafa;
    text-align: center;
    padding: 10px;
    height: auto;
    border-bottom: none;
}
td.tab-footer a {
    color: var(--glp-accent);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
td.tab-S-poz { text-align: center; width: 28px; font-weight: 700; }
tr.header { font-size: 0.85rem; color: var(--glp-text-muted); font-weight: 600; }
tr:nth-child(odd)  { background-color: #ffffff; }
tr:nth-child(even) { background-color: #fafafa; }
tr:hover { background-color: #f5f5f5; }

/* ==========================================
   NADPISANIE INLINE KOLOROW Z PHP
   ========================================== */

/* Tla wynikow — stare ciemne → transparentne */
tr[style*="background-color: #302010"],
tr[style*="background-color: #042010"],
tr[style*="background-color: #401020"],
tr[style*="background-color: #102540"],
tr[style*="background-color: #102845"] {
    background-color: transparent !important;
}

/* Kolory rozgrywek w terminach */
span[style*="color: #FF9900"] { color: var(--glp-liga1) !important; }
span[style*="color: #00E676"] { color: var(--glp-liga2) !important; }
span[style*="color: #38B0DE"] { color: var(--glp-puchar) !important; }
span[style*="color: #f06292"] { color: var(--glp-baraze) !important; }
span[style*="color: #DDDDDD"] { color: var(--glp-text-secondary) !important; }

/* Pozycje w tabeli ligowej */
td span[style*="color: lime"]    { color: var(--glp-green) !important; }
td span[style*="color: #EEEE00"] { color: var(--glp-liga1) !important; }
td span[style*="color: coral"]   { color: #e67e22 !important; }
td span[style*="color: #FF3333"] { color: var(--glp-red) !important; }
td span[style*="color: #CCCCCC"] { color: var(--glp-text-secondary) !important; }

/* Punkty */
td[style*="color: #CCCCCC"] { color: var(--glp-text-secondary) !important; }

/* Puchar header */
th[style*="background-color: #992233"] { background-color: var(--glp-black) !important; color: #ffffff !important; }

/* Faza pucharu */
td[style*="color: lime"] { color: var(--glp-liga2) !important; }

/* Wycofana druzyna */
tr[style*="background-color: #8C1717"] { background-color: #fef2f2 !important; opacity: 0.6; }

/* ==========================================
   NEWSY
   ========================================== */

/* --- Lista newsów (karty news-S) --- */
div.news-S {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    padding: 0;
    margin: 0;
    width: 100%;
    overflow: hidden;
    min-height: 72px;
}
div.news-S[style*="background-color"] { background: var(--glp-card) !important; }

/* Grid: ikona-pasek po lewej, tekst po prawej */
div.news-S > div.fill {
    display: grid;
    grid-template-columns: 4px 1fr;
    min-height: 72px;
}
div.news-S > div.fill > div[class^="newsicon"] {
    grid-column: 1;
    grid-row: 1 / 99;
}
div.news-S > div.fill > div[class^="newstriangle"] { display: none; }
div.news-S > div.fill > div.newstytul { grid-column: 2; }
div.news-S > div.fill > div.newsdata { grid-column: 2; }

/* Gdy jest zdjęcie zamiast ikony — pełna szerokość */
div.news-S > div.fill > div.news-image { grid-column: 1 / -1; }
div.news-S > div.fill > div.news-image img {
    width: 100%; height: 140px; object-fit: cover; display: block;
}
div.news-S > div.fill > div.news-image ~ div.newstytul,
div.news-S > div.fill > div.news-image ~ div.newsdata { grid-column: 1 / -1; }

/* Hover na karcie */
div.news-S:hover { border-color: var(--glp-accent); }

div.newstytul {
    padding: 12px 14px 4px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--glp-text);
    line-height: 1.35;
}
div.newstytul a { color: var(--glp-text) !important; }
div.newstytul a:hover { color: var(--glp-accent) !important; }
div.newsdata {
    padding: 0 14px 12px;
    font-size: 0.75rem;
    color: var(--glp-text-muted);
    font-family: 'Poppins', sans-serif;
}

/* Ikonki kategorii (paski boczne 4px) */
div.newsiconLiga, div.newsiconPuchar, div.newsiconRegulamin, div.newsiconKary, div.newsiconInne {
    width: 4px;
    min-height: 100%;
    overflow: hidden;
}
div.newsiconLiga       { background: var(--glp-accent); }
div.newsiconPuchar     { background: var(--glp-puchar); }
div.newsiconRegulamin  { background: var(--glp-liga2); }
div.newsiconKary       { background: var(--glp-red); }
div.newsiconInne       { background: var(--glp-text-muted); }
img.newsicon { display: none; }
div.newstriangleLiga, div.newstrianglePuchar, div.newstriangleRegulamin, div.newstriangleKary, div.newstriangleInne {
    display: none;
}

/* --- Pojedynczy news (news.php?nr=X) --- */
div.M[style*="background-color"] { background: var(--glp-card) !important; }

div.newsfull {
    width: 100%;
    text-align: center;
    font-family: 'Poppins', sans-serif;
    padding: 24px 20px 12px;
    margin-left: 0;
}
div.newsfull a {
    color: var(--glp-accent) !important;
    font-size: 1.3rem;
    font-weight: 700;
}
div.newsfulltresc {
    padding: 16px 20px;
    width: 100%;
    text-align: left;
    font-family: 'Poppins', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--glp-text);
}
/* Override ciemnych inline kolorów z TinyMCE (stary dark theme) */
div.newsfulltresc span[style*="color"],
div.newsfulltresc p[style*="color"],
div.newsfulltresc font[color] {
    color: var(--glp-text) !important;
}
div.newsfulltresc a { color: var(--glp-accent) !important; }
div.newsfooter {
    letter-spacing: 0.15em;
    font-size: 0.8rem;
    text-align: right;
    padding: 8px 20px 16px;
    width: 100%;
    color: var(--glp-text-muted);
}

/* ==========================================
   KOMUNIKAT
   ========================================== */
div.komunikat {
    background: var(--glp-black);
    color: #ffffff;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9999;
    min-height: 48px;
    font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    text-align: center; padding: 12px 24px;
    border-bottom: none; border-radius: 0;
    animation-name: komunikat; animation-duration: 5s;
}
@keyframes komunikat {
    0%   { opacity: 0; transform: translateY(-100%); }
    10%  { opacity: 1; transform: translateY(0); }
    80%  { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-100%); }
}

/* ==========================================
   STOPKA
   ========================================== */
#footer {
    background: var(--glp-black);
    border-top: none;
    height: auto;
    padding: 28px 0;
    text-shadow: none;
}
#footer-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
}
/* Base (mobile): column layout */
#footer-inner-inner {
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
}
.footer { width: auto; padding: 0; font-size: 0.85rem; color: #999; }
span.footer-head {
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
    display: inline-block;
}
a.footer { color: #999; font-size: 0.88rem; transition: color 0.15s; }
a.footer:hover { color: #ffffff; }
div.social { margin-top: 10px; gap: 10px; }
img.social { width: 32px; border-radius: var(--glp-radius-sm); transition: opacity 0.15s; }
img.social:hover { filter: none; opacity: 0.7; }

/* ==========================================
   NAWIGACJA v7.18 — header login + user + mobile
   ========================================== */

/* --- User area --- */
/* Header link — cały header klikalny na mobile */
.glp-header-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}
/* Hamburger nad linkiem */
.glp-hamburger { z-index: 2; }

#top-user { display: none; align-items: center; gap: 8px; flex-shrink: 0; }

/* --- Login button (desktop) — hidden on mobile/tablet --- */
.glp-login-wrap { position: relative; display: none !important; }
.glp-login-btn {
    background: var(--glp-accent); color: #fff; border: none;
    padding: 8px 20px; border-radius: var(--glp-radius);
    font-family: 'Poppins', sans-serif; font-size: 0.85rem; font-weight: 600;
    cursor: pointer; transition: background 0.15s; white-space: nowrap;
}
.glp-login-btn:hover { background: var(--glp-accent-hover); }

/* --- Login dropdown --- */
.glp-login-dropdown {
    display: none; position: absolute; right: 0; top: calc(100% + 8px);
    background: #fff; border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius); box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 20px; width: 280px; z-index: 200;
}
.glp-login-dropdown.open { display: block; }
.glp-login-dropdown input[type=email],
.glp-login-dropdown input[type=password] { width: 100%; max-width: 100%; margin-bottom: 10px; }
.glp-login-dropdown input[type=submit] { width: 100%; margin-bottom: 12px; }
.glp-login-links { display: flex; justify-content: space-between; font-size: 0.78rem; border-top: 1px solid var(--glp-border-light); padding-top: 10px; }

/* --- User button (zalogowany desktop) — hidden on mobile/tablet --- */
.glp-user-wrap { position: relative; display: none !important; }
.glp-user-btn {
    display: flex; align-items: center; gap: 6px;
    background: none; border: 1px solid var(--glp-border); padding: 6px 14px;
    border-radius: var(--glp-radius); font-family: 'Poppins', sans-serif;
    font-size: 0.85rem; font-weight: 600; color: var(--glp-text);
    cursor: pointer; transition: border-color 0.15s; white-space: nowrap;
}
.glp-user-btn:hover { border-color: var(--glp-accent); }
.glp-user-btn svg { flex-shrink: 0; }

/* --- User dropdown (zalogowany) --- */
.glp-user-dropdown {
    display: none; position: absolute; right: 0; top: calc(100% + 8px);
    background: #fff; border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius); box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 8px 0; min-width: 220px; z-index: 200;
}
.glp-user-dropdown.open { display: block; }
.glp-user-dropdown a {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 16px; font-size: 0.88rem; color: var(--glp-text);
    transition: background 0.15s;
}
.glp-user-dropdown a:hover { background: #f5f5f5; color: var(--glp-text); }
img.glp-dd-icon { width: 18px; height: 18px; opacity: 0.6; }
.glp-dd-divider { height: 1px; background: var(--glp-border-light); margin: 4px 0; }

/* --- User icon (mobile) --- */
.glp-user-icon {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,0.12); transition: background 0.15s; flex-shrink: 0;
}
.glp-user-icon:hover { background: rgba(255,255,255,0.2); }
.glp-user-icon img { width: 18px; height: 18px; filter: brightness(0) invert(1); }

/* --- Hamburger — visible on mobile/tablet, hidden on desktop --- */
.glp-hamburger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 36px; height: 36px; background: none; border: none;
    cursor: pointer; padding: 6px; flex-shrink: 0;
    position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
}
.glp-hamburger span {
    display: block; width: 100%; height: 2px;
    background: rgba(255,255,255,0.8); border-radius: 1px;
    transition: transform 0.3s, opacity 0.3s;
}
.glp-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.glp-hamburger.open span:nth-child(2) { opacity: 0; }
.glp-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Mobile menu panel (base: active on mobile/tablet) --- */
.glp-mobile-menu {
    display: block; max-height: 0; overflow: hidden;
    transition: max-height 0.3s ease;
    background: #0d1628; border-bottom: none;
    position: absolute; top: 100%; left: 0; right: 0; z-index: 99;
}
.glp-mobile-menu.open { max-height: calc(100vh - 60px); overflow-y: auto; }
.glp-mobile-menu a {
    display: block; padding: 14px 24px; font-size: 0.95rem; font-weight: 500;
    color: rgba(255,255,255,0.85); border-top: 1px solid rgba(255,255,255,0.08);
}
.glp-mobile-menu a:first-child { border-top: none; }
.glp-mobile-menu a:hover { background: rgba(255,255,255,0.06); }
.glp-menu-highlight { color: #fbbf24 !important; font-weight: 600 !important; }
.glp-mobile-menu-divider { height: 1px; background: rgba(255,255,255,0.1); margin: 4px 0; }
.glp-mobile-menu-label {
    padding: 10px 24px 2px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.4);
}
.glp-menu-logout { color: var(--glp-red) !important; }

/* --- Visibility helpers (base = mobile) --- */
.glp-mobile-only { display: flex !important; }
.glp-desktop-only { display: none !important; }

/* --- Usunięcie #bottom (legacy) --- */
#bottom { display: none; }

/* ==========================================
   TOOLTIP
   ========================================== */
.tooltip { border-bottom: none; }
.tooltip .tooltiptext {
    background: var(--glp-black); color: #e0e0e0;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--glp-radius-sm);
    font-size: 0.78rem; padding: 4px 8px;
    text-shadow: none;
}
.tooltip .tooltiptext::after { border-color: var(--glp-black) transparent transparent transparent; }

/* ==========================================
   LINKI (a.S, a.M, a.L)
   ========================================== */
a.S { font-size: 0.85rem; color: var(--glp-accent); }
a.M { color: var(--glp-accent); font-size: 0.9rem; font-weight: 600; }
a.L { color: var(--glp-accent); font-size: 1.1rem; font-weight: 600; }
span.S { font-size: 0.85rem; }

/* ==========================================
   FORMULARZE
   ========================================== */
input[type=text], input[type=password], input[type=number], input[type=email], input[type=file] {
    background: #fff; border: 1px solid var(--glp-border);
    color: var(--glp-text); font-size: 14px;
    padding: 8px 12px; border-radius: var(--glp-radius-sm);
    width: 100%; max-width: 100%; transition: border-color 0.15s;
}
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus {
    border-color: var(--glp-accent); outline: none;
    box-shadow: 0 0 0 3px rgba(40,87,165,0.1);
}
input[type=number] { width: 80px; }
input[type=text].foto { max-width: 180px; }
input[type=text].honey { visibility: hidden; position: absolute; left: -9999px; }
input[type=text].honey2 { position: absolute; left: -9999px; }
input[type=submit] {
    background: var(--glp-black); color: #fff;
    border: none; font-size: 14px !important; font-weight: 600;
    padding: 10px 24px; border-radius: var(--glp-radius-sm);
    cursor: pointer; transition: background 0.15s;
    width: auto; text-transform: uppercase; letter-spacing: 0.04em;
    white-space: normal; word-wrap: break-word; max-width: 100%;
}
input[type=submit]:hover { background: #333; }
input[type=submit].foto { width: auto; max-width: 100%; padding: 8px 12px; }
button.foto {
    background: var(--glp-card); border: 1px solid var(--glp-border);
    font-size: 13px; color: var(--glp-text); width: auto; max-width: 100%;
    padding: 6px 12px; border-radius: var(--glp-radius-sm); cursor: pointer;
}
/* Base (mobile): larger touch targets */
select, input, button { min-height: 44px; font-size: 16px !important; }
select { background: #fff; border: 1px solid var(--glp-border); color: var(--glp-text); padding: 6px 10px; border-radius: var(--glp-radius-sm); }
textarea { background: #fff; border: 1px solid var(--glp-border); color: var(--glp-text); border-radius: var(--glp-radius-sm); }
span.hint { color: var(--glp-text-muted); text-shadow: none; }
div.form { font-size: 0.9rem; }

/* ==========================================
   FORMULARZ KONTAKTOWY
   ========================================== */
.glp-kontakt-wrap {
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
}
.glp-kontakt-info {
    margin-bottom: 20px;
    font-size: 0.92rem;
    color: var(--glp-text-secondary);
    line-height: 1.5;
}
.glp-kontakt-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.glp-form-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.glp-form-row label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--glp-text);
    font-family: 'Poppins', sans-serif;
}
.glp-optional {
    font-weight: 400;
    color: var(--glp-text-muted);
}
.glp-input-readonly {
    background: #f4f4f4 !important;
    color: var(--glp-text-muted) !important;
    cursor: not-allowed;
    border-color: var(--glp-border-light) !important;
}
.glp-kontakt-form textarea {
    background: #fff;
    border: 1px solid var(--glp-border);
    color: var(--glp-text);
    font-size: 14px;
    padding: 8px 12px;
    border-radius: var(--glp-radius-sm);
    width: 100%;
    max-width: 100%;
    font-family: 'Poppins', sans-serif;
    resize: vertical;
    transition: border-color 0.15s;
}
.glp-kontakt-form textarea:focus {
    border-color: var(--glp-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(40,87,165,0.1);
}
.glp-kontakt-form select {
    width: 100%;
    max-width: 100%;
}
.glp-kontakt-form input[type=submit] {
    width: 100%;
    max-width: 100%;
    margin-top: 8px;
}

/* --- HIDDEN --- */
.hidden, .hidden2 { display: none; }

/* --- ZDJECIA --- */
img.foto { border: 1px solid var(--glp-border); border-radius: var(--glp-radius); box-shadow: var(--glp-shadow); max-width: 200px; }
div.foto { width: auto; margin: 8px; max-width: 200px; }

/* ==========================================
   MOBILE-SPECIFIC BASE STYLES
   (only relevant at ≤640px, moved from old max-width:640px)
   ========================================== */

/* Submenu: grid 3-kolumnowy na mobile */
div.header-menu {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 6px 0 10px;
}
div.header-title {
    grid-column: 1 / -1;
    text-align: center;
    font-size: 0.95rem;
}
div.submenubutton {
    font-size: 0.72rem;
    padding: 6px 6px;
    text-align: center;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
}
div.submenubutton a.menubutton {
    font-size: 0.72rem;
}

/* v7.69: Badge typu rozgrywek (L1/L2/P/B) - używany w a_kary2.php przy liście kartek */
.glp-rozg-badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    letter-spacing: 0.3px;
    vertical-align: middle;
    margin: 0 2px;
}
.glp-rozg-badge--liga1 { background: #e6930a; }   /* pomarańczowy = 1. liga */
.glp-rozg-badge--liga2 { background: #1a9e3f; }   /* zielony = 2. liga */
.glp-rozg-badge--puchar { background: #3b82f6; }  /* niebieski = puchar */
.glp-rozg-badge--baraze { background: #d946a8; }  /* różowy = baraże */

/* v7.68: ukryj puste kategorie (np. 2. liga w sezonie 2026) na mobile.
   Klasa dodawana z PHP gdy COUNT(*) FROM mecze WHERE rozgrywki=X = 0.
   Tablet/desktop nadal pokazuje (przywracamy display:flex w media queries). */
div.submenubutton.glp-hide-mobile-empty { display: none; }

/* v7.68+v7.72: spójne boksy nawigacji (rozgrywki/wyniki/mecze/stats/users) - mobile-first.
   Aplikowane przez dodanie klasy .glp-rozgrywki-menu na <div class="header-menu glp-rozgrywki-menu">.
   Cel: jedna linia tekstu, ten sam wygląd na całej stronie, ładnie nawet przy dłuższych etykietach. */
.glp-rozgrywki-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    padding: 8px 6px;
}
.glp-rozgrywki-menu div.submenubutton {
    flex: 0 1 auto;
    min-width: 0;
    padding: 8px 12px;
    font-size: 0.7rem;
    line-height: 1.2;
    border-radius: 6px;
    background: #ffffff;
    border: 1px solid #e2e6ec;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.glp-rozgrywki-menu div.submenubutton:hover {
    background: var(--glp-bg);
    border-color: var(--glp-accent);
}
.glp-rozgrywki-menu div.submenubutton a.menubutton {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.2px;
    line-height: 1.2;
    color: var(--glp-text-primary, #1a1a1a);
    text-decoration: none;
    white-space: nowrap;
}
/* Bardzo wąskie ekrany (≤360px): pozwól boksom się zawijać, bez nowrap dla całych tekstów */
@media (max-width: 360px) {
    .glp-rozgrywki-menu div.submenubutton {
        font-size: 0.65rem;
        padding: 7px 10px;
    }
}

/* Widok meczu: mniejsze nazwy druzyn na mobile */
span[style*="font-size:1.8em"] {
    font-size: 1.2rem !important;
}

/* Newsy: 1 kolumna na mobile */
.glp-pl-news { grid-template-columns: 1fr; }
.glp-pl-news-list { border-left: none; border-top: 1px solid var(--glp-border-light); }
.glp-featured { min-height: 200px; }
.glp-featured-title { font-size: 1.2rem; }
.glp-featured-overlay { padding: 30px 16px 16px; }

/* Miniaturki newsow mniejsze */
.glp-news-item-thumb { width: 70px; height: 50px; }
.glp-news-item { padding: 12px 10px; gap: 12px; }

/* Puchar */
.glp-puchar-groups div.S {
    width: 100% !important;
    flex: 1 1 100%;
}
.glp-puchar-groups { gap: 12px; }

/* Ostatnie mecze: scroll na mobile */
.glp-match-card { flex: 0 0 160px; min-width: 140px; }
.glp-recent-results { grid-template-columns: 1fr; }
.glp-result-name { font-size: 0.75rem; }
.glp-result-num { width: 26px; height: 26px; font-size: 0.9rem; }

/* Sponsorzy: 2 w rzedzie na mobile */
.glp-sponsors { gap: 12px; }
.glp-sponsor { min-width: 100px; }
.glp-sponsor-logo { height: 60px; }

/* Logo mniejsze */
.glp-team-logo { width: 24px; height: 24px; font-size: 0.6rem !important; margin-right: 6px; }
.glp-stats-team-logo .glp-team-logo { width: 22px; height: 22px; }

/* Zdjecia zawodnikow mniejsze na mobile */
.glp-player-photo { width: 30px; height: 30px; }
.glp-stats-item { padding: 7px 12px; gap: 8px; }
.glp-stats-name { font-size: 0.82rem; }

/* v7.40: Panel admina — mobile: horizontal scroll + mniejszy font */
div.S, div.M, div.XL { overflow-x: auto; -webkit-overflow-scrolling: touch; }
div.S table, div.M table, div.XL table { font-size: 0.72rem; }
div.S table td, div.M table td, div.XL table td { padding: 4px 5px; white-space: nowrap; }
div.S table th, div.M table th, div.XL table th { padding: 6px 5px; font-size: 0.68rem; }

/* Inputy inline w tabelach — nie rozciagaj na 100% */
td input[type=number] { width: 50px !important; max-width: 60px; }
td input[type=text] { width: auto !important; max-width: 100%; }
td input[type=date] { width: 110px !important; font-size: 12px !important; }
td select { width: auto !important; max-width: 100%; font-size: 13px !important; min-height: 36px; }

/* Selecty z hardcoded width w inline style */
select[style*="width: 160px"], select[style*="width:160px"] { width: 120px !important; }

/* Buttony — zawijanie tekstu */
input[type=submit], button { white-space: normal; word-wrap: break-word; max-width: 100%; }

/* Losowanie — float 33% kolumny na pelna szerokosc */
div[style*="width: 33%"], div[style*="width:33%"] { width: 100% !important; float: none !important; }

/* News — input tytulu */
input[style*="width: 300px"], input[style*="width:300px"] { width: 100% !important; }

/* Kary — szerokie inputy */
input[style*="width: 220px"], input[style*="width:220px"] { width: 100% !important; }
input[style*="width: 230px"], input[style*="width:230px"] { width: 100% !important; max-width: 100%; }

/* Checkbox labels — zawijanie */
label { word-break: break-word; }

/* v7.39: Mobile fix — sezon select */
.glp-sezon-select { min-width: auto; width: 100%; }
.glp-sezon-bar { flex-wrap: wrap; }

/* v7.39: Mobile fix — partner hero padding */
.glp-partner-hero { padding: 32px 16px; }
.glp-partner-hero h1 { font-size: 1.4rem; }
.glp-partner-hero-content { max-width: 100%; }

/* v7.39: Mobile fix — inline form buttons */
form[style*="display:inline"] { display: block !important; margin-top: 6px; }

/* v7.39: Mobile fix — profil mecze tabela */
.glp-profile-team-cell { max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.glp-match-round { font-size: 0.72rem; }
.glp-round-venue { display: none; }

/* v7.39: Mobile fix — upcoming mecze */
.glp-upcoming-referee { font-size: 0.68rem; padding: 4px 10px; }
.glp-upcoming-referee-photo { width: 18px; height: 18px; }
.glp-upcoming-referee-photo img { width: 18px; height: 18px; }

/* Statystyki: 1 kolumna */
.glp-stats-row { grid-template-columns: 1fr; }
.glp-stats-grid { grid-template-columns: 1fr; }
.glp-stats-grid--3 { grid-template-columns: 1fr; }

/* PL Layout: sidebar nad newsami (1 kolumna) */
.glp-pl-layout { grid-template-columns: 1fr; }
.glp-pl-sidebar { max-width: 100%; order: -1; }


/* ==========================================
   RESPONSIVE — TABLET (min-width: 641px)
   ========================================== */
@media (min-width: 641px) {
    /* Content: restore gap-based flex, but still 1-column for cards */
    #content-inner { padding: 12px 8px; gap: 12px; display: flex; flex-wrap: wrap; }
    #content-inner > * { margin-bottom: 0; }

    /* Footer: still column on tablet */
    #footer-inner-inner { flex-direction: column; gap: 16px; }

    /* Nazwa ligi — już widoczna na mobile, tablet kontynuuje */
    #top-rest-up { display: flex; min-width: 0; }

    /* Submenu: mniejsze fonty na tablecie, rowna wysokosc */
    div.submenubutton { font-size: 0.75rem; padding: 6px 10px; }
    div.submenubutton a.menubutton { font-size: 0.75rem; }
    div.header-menu { display: flex; justify-content: center; gap: 4px; align-items: stretch; }
    /* v7.68: na tablet/desktop pokaż również puste kategorie (na mobile są ukryte) */
    div.submenubutton.glp-hide-mobile-empty { display: flex; }
    div.header-title { font-size: 1rem; text-align: center; width: 100%; grid-column: auto; }

    /* Cards: tablet sizes */
    div.S { width: calc(50% - 12px); }
    div.news-S { width: 100%; }

    /* Newsy: zachowaj 2 kolumny na tablecie */
    .glp-featured { min-height: 280px; }
    .glp-featured-title { font-size: 1.6rem; }
    .glp-featured-overlay { padding: 40px 28px 24px; }

    /* Newsy miniaturki — tablet size */
    .glp-news-item-thumb { width: 100px; height: 70px; }
    .glp-news-item { padding: 14px 16px; gap: 14px; }

    /* Puchar grupy: 2 w rzedzie */
    .glp-puchar-groups div.S {
        width: calc(50% - 8px) !important;
        flex: 1 1 calc(50% - 8px);
    }
    .glp-puchar-groups { gap: 16px; }

    /* Ostatnie mecze: mniejsze karty */
    .glp-match-card { flex: 0 0 calc((100% - 36px) / 4); min-width: 150px; }
    .glp-recent-results { grid-template-columns: repeat(2, 1fr); }
    .glp-result-name { font-size: 0.8rem; }
    .glp-result-num { width: 28px; height: 28px; font-size: 1rem; }

    /* Sponsorzy: 3 w rzedzie */
    .glp-sponsor { min-width: 120px; }
    .glp-sponsor-logo { height: 80px; }
    .glp-sponsors { gap: 16px; }

    /* Statystyki: tablet */
    .glp-stats-row { grid-template-columns: 1fr; }
    .glp-stats-grid { grid-template-columns: 1fr; }
    .glp-stats-grid--3 { grid-template-columns: repeat(2, 1fr); }

    /* Logo: tablet size */
    .glp-team-logo { width: 30px; height: 30px; font-size: 0.7rem !important; margin-right: 8px; }
    .glp-stats-team-logo .glp-team-logo { width: 26px; height: 26px; }

    /* Zdjecia zawodnikow — tablet */
    .glp-player-photo { width: 36px; height: 36px; }
    .glp-stats-item { padding: 8px 16px; gap: 10px; }
    .glp-stats-name { font-size: 0.88rem; }

    /* Widok meczu nazwy druzyn — tablet */
    span[style*="font-size:1.8em"] {
        font-size: 1.8em !important;
    }

    /* Panel admina — tablet: restore normal table sizing */
    div.S table, div.M table, div.XL table { font-size: 0.9rem; }
    div.S table td, div.M table td, div.XL table td { padding: 6px 8px; white-space: normal; }
    div.S table th, div.M table th, div.XL table th { padding: 8px 10px; font-size: 0.75rem; }

    /* Tablet: restore inline table input sizes */
    td input[type=number] { width: 80px !important; max-width: 80px; }
    td input[type=text] { width: auto !important; max-width: 100%; }
    td input[type=date] { width: auto !important; font-size: 14px !important; }
    td select { width: auto !important; max-width: 100%; font-size: 14px !important; min-height: 44px; }

    /* Restore inline widths */
    select[style*="width: 160px"], select[style*="width:160px"] { width: 160px !important; }
    div[style*="width: 33%"], div[style*="width:33%"] { width: 33% !important; float: left !important; }
    input[style*="width: 300px"], input[style*="width:300px"] { width: 300px !important; }
    input[style*="width: 220px"], input[style*="width:220px"] { width: 220px !important; }
    input[style*="width: 230px"], input[style*="width:230px"] { width: 230px !important; max-width: 230px; }

    /* v7.39: partner hero — tablet */
    .glp-partner-hero { padding: 56px 40px; }
    .glp-partner-hero h1 { font-size: 2.2rem; }
    .glp-partner-hero-content { max-width: 640px; }

    /* v7.39: sezon select — tablet */
    .glp-sezon-select { min-width: auto; width: auto; }
    .glp-sezon-bar { flex-wrap: nowrap; }

    /* Restore inline form */
    form[style*="display:inline"] { display: inline !important; margin-top: 0; }

    /* Profil — tablet */
    .glp-profile-team-cell { max-width: none; overflow: visible; text-overflow: clip; white-space: normal; }
    .glp-match-round { font-size: inherit; }
    .glp-round-venue { display: inline; }

    /* Upcoming — tablet */
    .glp-upcoming-referee { font-size: inherit; padding: inherit; }
    .glp-upcoming-referee-photo { width: auto; height: auto; }
    .glp-upcoming-referee-photo img { width: auto; height: auto; }

    /* Checkbox labels */
    label { word-break: normal; }

    /* Touch targets: keep large on tablet */
    select, input, button { min-height: 44px; font-size: 16px !important; }
    input[type=submit] { font-size: 14px !important; }
}


/* ==========================================
   RESPONSIVE — DESKTOP (min-width: 1025px)
   ========================================== */
@media (min-width: 1025px) {
    /* Desktop: przywrócenie białego headera z menu poziomym */
    #top {
        background: #ffffff;
        border-bottom: 1px solid var(--glp-border);
    }
    #top-inner {
        flex-direction: row;
        align-items: center;
        padding: 0 20px;
        min-height: 56px;
    }
    #top-logo { margin-right: 24px; }

    /* Nazwa ligi: ukryta na desktop (menu jest widoczne) */
    #top-rest-up { display: none; }

    /* Desktop nav: visible */
    #top-rest-down { display: flex; }

    /* Przywrócenie kolorów tekstu na desktop */
    span.glp { color: var(--glp-text); }
    span.letter { color: var(--glp-accent); }

    /* Hamburger: hidden */
    .glp-hamburger { display: none; }

    /* Header link: hidden on desktop */
    .glp-header-link { display: none; }

    /* Mobile menu: hidden on desktop */
    .glp-mobile-menu { display: none; }

    /* User area: restore on desktop */
    #top-user { display: flex; margin-left: auto; }
    .glp-user-icon { background: #f0f0f0; }
    .glp-user-icon:hover { background: #e0e0e0; }
    .glp-user-icon img { filter: none; }

    /* User area: show desktop login/user */
    .glp-login-wrap { display: block !important; }
    .glp-user-wrap { display: block !important; }
    .glp-mobile-only { display: none !important; }
    .glp-desktop-only { display: flex !important; }

    /* Content: flex layout, desktop padding */
    #content-inner {
        padding: 16px 20px;
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
    }
    #content-inner > * { margin-bottom: 0; }

    /* Footer: row layout */
    #footer-inner-inner { flex-direction: row; gap: 32px; }

    /* Cards: desktop widths */
    div.S  { width: calc(50% - 8px); }
    div.M  { width: 100%; }
    div.L  { width: calc(75% - 12px); }
    div.XL { width: calc(100% - 12px); }
    div.XS { width: calc(16.66% - 12px); }
    div.group-M { width: calc(50% - 8px); }

    /* News cards: 2 columns on desktop */
    div.news-S { width: calc(50% - 8px); }

    /* Tables: desktop padding */
    th { padding: 12px 14px; font-size: 0.85rem; }
    th.tab-S { font-size: 0.85rem; }
    td { padding: 10px 14px; }

    /* Forms: desktop input max-width */
    input[type=text], input[type=password], input[type=email], input[type=file] {
        max-width: 280px;
    }
    input[type=submit] { font-size: 13px !important; }
    input[type=submit].foto { width: 80px; }
    button.foto { width: 150px; }

    /* Touch targets: desktop defaults */
    select, input, button { min-height: auto; font-size: 14px !important; }
    select { font-size: 14px !important; }

    /* Submenu: desktop sizes */
    div.submenubutton { font-size: inherit; padding: inherit; text-align: left; background: transparent; }
    div.submenubutton a.menubutton { font-size: inherit; }
    div.header-menu { display: flex; justify-content: flex-start; gap: inherit; align-items: center; }
    div.header-title { font-size: inherit; text-align: left; width: auto; }

    /* Nazwa ligi span — desktop font */
    span.glp { font-size: 1.3rem; }

    /* Logo druzyn: desktop size */
    .glp-team-logo { width: 30px; height: 30px; font-size: 0.7rem !important; margin-right: 8px; }

    /* PL Layout: 2 columns on desktop */
    .glp-pl-layout { grid-template-columns: 340px 1fr; }
    .glp-pl-sidebar { max-width: none; order: 0; }

    /* Newsy: 2 columns on desktop */
    .glp-pl-news { grid-template-columns: 1fr 1fr; }
    .glp-pl-news-list { border-left: 1px solid var(--glp-border-light); border-top: none; }

    /* Statystyki: desktop */
    .glp-stats-row { grid-template-columns: 1fr 1fr; }
    .glp-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .glp-stats-grid--3 { grid-template-columns: repeat(3, 1fr); }

    /* Puchar grupy: 4 w rzedzie */
    .glp-puchar-groups div.S {
        width: calc(25% - 12px) !important;
        flex: 1 1 calc(25% - 12px);
    }

    /* Ostatnie mecze: desktop */
    .glp-match-card { flex: 0 0 calc((100% - 60px) / 6); min-width: 160px; }
    .glp-recent-results { grid-template-columns: repeat(4, 1fr); }

    /* Sponsorzy: desktop */
    .glp-sponsor { min-width: 140px; }

    /* Panel admina — desktop: normal overflow */
    div.S, div.M, div.XL { overflow-x: visible; -webkit-overflow-scrolling: auto; }
    div.fill { overflow-x: visible; -webkit-overflow-scrolling: auto; }

    /* Featured: desktop */
    .glp-featured { min-height: 280px; }
}
/* ==========================================
   LAYOUT STRONY GLOWNEJ — styl Premier League
   Mobile-first rewrite
   ========================================== */

/* --- GLOWNY LAYOUT: 1 kolumna na mobile --- */
.glp-pl-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    width: 100%;
    align-items: stretch;
    margin-top: 20px;
}

/* --- PRAWA KOLUMNA: Newsy (1 kolumna na mobile) --- */
.glp-pl-news {
    min-width: 0;
    display: grid;
    grid-template-columns: 1fr;
    border-radius: var(--glp-radius);
    overflow: hidden;
    border: 1px solid var(--glp-border);
    background: var(--glp-card);
    box-shadow: var(--glp-shadow);
}

/* News-top musi wypelnic cala kolumne gridu */
.glp-pl-news-top {
    display: flex;
}

/* Featured news — duzy kafelek */
.glp-featured {
    position: relative;
    width: 100%;
    flex: 1;
    min-height: 200px;
    overflow: hidden;
    cursor: pointer;
}
.glp-featured-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.glp-featured-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Gradienty kategorii (jesli brak zdjecia) */
.glp-featured-bg--liga       { background: linear-gradient(135deg, #1a2550 0%, #2857a5 50%, #3b6fbf 100%); }
.glp-featured-bg--puchar     { background: linear-gradient(135deg, #1e2a6e 0%, #1e40af 50%, #3b82f6 100%); }
.glp-featured-bg--regulamin  { background: linear-gradient(135deg, #0f3520 0%, #15803d 50%, #1a9e3f 100%); }
.glp-featured-bg--kary       { background: linear-gradient(135deg, #4a0e0e 0%, #991b1b 50%, #dc2626 100%); }
.glp-featured-bg--inne       { background: linear-gradient(135deg, #1f2937 0%, #374151 50%, #6b7280 100%); }

.glp-featured-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 30px 16px 16px;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, transparent 100%);
    z-index: 1;
}
.glp-featured-cat {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #ffffff;
    background: rgba(255,255,255,0.15);
    padding: 3px 10px;
    border-radius: 3px;
    margin-bottom: 10px;
}
.glp-featured-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 8px;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.glp-featured-title a {
    color: #ffffff !important;
    text-decoration: none !important;
}
.glp-featured-title a:hover { opacity: 0.85; }
.glp-featured-meta {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.6);
}

/* --- Lista newsow --- */
.glp-pl-news-list {
    display: flex;
    flex-direction: column;
    border-left: none;
    border-top: 1px solid var(--glp-border-light);
}
.glp-news-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 10px;
    border-bottom: 1px solid var(--glp-border-light);
    transition: background 0.15s;
    flex: 1;
}
.glp-news-item:hover {
    background: rgba(0,0,0,0.02);
}
.glp-news-item:last-child {
    border-bottom: none;
}
.glp-news-item-text {
    flex: 1;
    min-width: 0;
}
.glp-news-item-title {
    display: block;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--glp-text);
    margin-bottom: 4px;
}
.glp-news-item-title:hover {
    color: var(--glp-accent);
}
.glp-news-item-cat {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--glp-text-muted);
}
.glp-news-item-cat--liga       { color: var(--glp-blue); }
.glp-news-item-cat--puchar     { color: var(--glp-puchar); }
.glp-news-item-cat--regulamin  { color: var(--glp-liga2); }
.glp-news-item-cat--kary       { color: var(--glp-red); }
.glp-news-item-cat--inne       { color: var(--glp-text-muted); }

/* Miniaturka newsa — mobile size */
.glp-news-item-thumb {
    width: 70px;
    height: 50px;
    border-radius: var(--glp-radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e5e7eb;
}
.glp-news-item-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Kolorowe tlo miniaturki (gdy brak zdjecia) */
.glp-news-item-thumb--liga       { background: linear-gradient(135deg, #2857a5, #3b6fbf); }
.glp-news-item-thumb--puchar     { background: linear-gradient(135deg, #1e40af, #3b82f6); }
.glp-news-item-thumb--regulamin  { background: linear-gradient(135deg, #15803d, #1a9e3f); }
.glp-news-item-thumb--kary       { background: linear-gradient(135deg, #991b1b, #dc2626); }
.glp-news-item-thumb--inne       { background: linear-gradient(135deg, #374151, #6b7280); }
.glp-news-item-thumb--liga img,
.glp-news-item-thumb--puchar img,
.glp-news-item-thumb--regulamin img,
.glp-news-item-thumb--kary img,
.glp-news-item-thumb--inne img {
    width: 30px !important;
    height: 30px !important;
    object-fit: contain;
    opacity: 0.5;
    filter: brightness(10);
}

/* --- LEWA KOLUMNA: Sidebar --- */
.glp-pl-sidebar {
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    order: -1;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    overflow: hidden;
    box-shadow: var(--glp-shadow);
    display: flex;
    flex-direction: column;
}

/* Sidebar header — slim, accent stripe */
.glp-sidebar-header {
    background: var(--glp-black);
    padding: 11px 16px;
    text-align: center;
    position: relative;
}
.glp-sidebar-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--glp-accent), var(--glp-blue-light));
}
.glp-sidebar-title {
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Sidebar tabs — clean underline */
.glp-sidebar-tabs {
    display: flex;
    border-bottom: 1px solid var(--glp-border);
    background: #ffffff;
}
.glp-sidebar-tab {
    flex: 1;
    padding: 10px 8px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--glp-text-muted);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    font-family: 'Montserrat', sans-serif;
}
.glp-sidebar-tab:hover {
    color: var(--glp-text);
}
.glp-sidebar-tab.active {
    color: var(--glp-accent);
    border-bottom-color: var(--glp-accent);
}

/* Sidebar panels wrapper */
.glp-sidebar-panels {
    position: relative;
    overflow: hidden;
}

/* Tabela panel: always in document flow */
#panel-tabela {
    position: relative;
    overflow-y: visible;
}
#panel-tabela:not(.active) {
    visibility: hidden;
}

/* Wyniki + Mecze: absolute overlay */
#panel-wyniki,
#panel-mecze {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    background: var(--glp-card);
    transition: opacity 0.15s;
}
#panel-wyniki.active,
#panel-mecze.active {
    opacity: 1;
    visibility: visible;
}
/* Kill ALL text-shadow inside sidebar */
.glp-sidebar-panel,
.glp-sidebar-panel *,
.glp-sidebar-panel td,
.glp-sidebar-panel td a,
.glp-sidebar-panel td span,
.glp-sidebar-panel th {
    text-shadow: none;
    -webkit-text-stroke: 0;
}
.glp-sidebar-panel div.S {
    width: 100%;
    border: none;
    box-shadow: none;
    border-radius: 0;
}
.glp-sidebar-panel td {
    padding: 6px 12px;
    font-size: 0.85rem;
    color: var(--glp-text);
    line-height: 1.3;
}
.glp-sidebar-panel td.center {
    white-space: nowrap;
    padding: 6px 4px;
}
.glp-sidebar-panel td a {
    color: var(--glp-text);
    font-weight: 500;
}
.glp-sidebar-panel td a:hover {
    color: var(--glp-accent);
}
.glp-sidebar-panel th {
    display: none;
}

/* Tabela: show 8 teams, hide rest except footer */
#panel-tabela table tr:nth-child(n+10):not(:last-child) {
    display: none;
}

/* "Zobacz cala tabele" footer */
.glp-sidebar-panel td.tab-footer {
    background: #ffffff;
    border-top: 1px solid var(--glp-border-light);
    border-bottom: none;
    padding: 10px 12px;
    position: sticky;
    bottom: 0;
}
.glp-sidebar-panel td.tab-footer a {
    color: var(--glp-accent);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.glp-sidebar-panel td.tab-footer a::after {
    content: '\2192';
    font-size: 1.1em;
}

/* --- Statystyki pod glownym layoutem --- */
.glp-stats-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    width: 100%;
}
.glp-stats-row div.S {
    width: 100% !important;
}

/* --- Statystyki — nowy styl ze zdjeciami --- */
.glp-stats-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    width: 100%;
}
.glp-stats-grid--3 {
    grid-template-columns: 1fr;
}

/* Zdjecie zawodnika — mobile 30px */
.glp-player-photo {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    flex-shrink: 0;
}

/* Karta statystyk */
.glp-stats-card {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
}
.glp-stats-card-header {
    background: var(--glp-black);
    color: #ffffff;
    padding: 12px 16px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
    gap: 8px;
}
.glp-stats-card-icon {
    font-size: 1rem;
}

/* Lista wierszy — mobile compact */
.glp-stats-list {
    padding: 0;
}
.glp-stats-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--glp-border-light);
    transition: background 0.12s;
    text-decoration: none;
    color: var(--glp-text);
}
.glp-stats-item:hover {
    background: #f5f5f5;
}
.glp-stats-item:last-child {
    border-bottom: none;
}

/* Pozycja (numer) */
.glp-stats-pos {
    width: 22px;
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--glp-text-muted);
    flex-shrink: 0;
}

/* Nazwa zawodnika — mobile size */
.glp-stats-name {
    flex: 1;
    font-size: 0.82rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Wartosc statystyki */
.glp-stats-value {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    flex-shrink: 0;
    min-width: 28px;
    text-align: center;
}
.glp-stats-value--goals {
    color: var(--glp-accent);
}
.glp-stats-value--assists {
    color: var(--glp-liga1);
}
.glp-stats-value--canadian {
    color: #4ade80;
    display: flex;
    align-items: baseline;
    gap: 4px;
}
.glp-stats-sub {
    font-size: 0.65em;
    color: #94a3b8;
    font-weight: 500;
}

/* Wyroznienie 1. miejsca w statystykach */
.glp-stats-item--first {
    background: linear-gradient(135deg, var(--team-color, var(--glp-accent)) 0%, rgba(0,0,0,0.85) 100%) !important;
    color: #ffffff !important;
    padding: 12px 16px;
    border-left: 4px solid var(--team-color, var(--glp-accent));
    position: relative;
}
.glp-stats-item--first:hover {
    background: linear-gradient(135deg, var(--team-color, var(--glp-accent)) 0%, rgba(0,0,0,0.75) 100%) !important;
}
.glp-stats-item--first .glp-stats-pos {
    color: rgba(255,255,255,0.7);
    font-size: 0.95rem;
}
.glp-stats-item--first .glp-stats-name {
    color: #ffffff;
    font-weight: 700;
    font-size: 0.95rem;
}
.glp-stats-item--first .glp-stats-value {
    color: #ffffff !important;
    font-size: 1.2rem;
}
.glp-stats-item--first .glp-player-photo {
    width: 42px;
    height: 42px;
    border: 2px solid rgba(255,255,255,0.4);
}
.glp-stats-item--first .glp-stats-team-logo .glp-team-logo {
    box-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

/* Herb druzyny w statystykach — mobile */
.glp-stats-team-logo {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.glp-stats-team-logo .glp-team-logo {
    width: 22px;
    height: 22px;
    margin-right: 0;
    font-size: 0.6rem !important;
}

/* Footer karty */
.glp-stats-card-footer {
    display: block;
    text-align: center;
    padding: 10px 16px;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--glp-accent);
    background: #fafafa;
    border-top: 1px solid var(--glp-border-light);
    text-decoration: none;
    transition: background 0.15s;
}
.glp-stats-card-footer:hover {
    background: #f0f0f0;
}

/* Puchar: drabinka na pelna szerokosc */
.glp-puchar-bracket {
    width: 100%;
}
.glp-puchar-bracket div.S {
    width: 100% !important;
}

/* Puchar: grupy — mobile 1 kolumna */
.glp-puchar-groups {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}
.glp-puchar-groups div.S {
    width: 100% !important;
    flex: 1 1 100%;
    min-width: 220px;
}

/* --- LOGO DRUZYN (kolka z inicjalami / logo) — mobile size --- */
.glp-team-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #ffffff;
    font-size: 0.6rem !important;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
    vertical-align: middle;
    margin-right: 6px;
    flex-shrink: 0;
    border: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    overflow: hidden;
}
.glp-team-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
/* Logo w naglowkach tabel (th) */
th .glp-team-logo {
    width: 24px;
    height: 24px;
    margin-right: 6px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

/* Biale/jasne loga — ciemny tekst */
.glp-team-logo[style*="ffffff"],
.glp-team-logo[style*="FFFFFF"],
.glp-team-logo[style*="ffff00"],
.glp-team-logo[style*="FFFF00"] {
    color: var(--glp-text) !important;
    text-shadow: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

/* --- HERO BANNER --- */
.glp-banner {
    width: 100%;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%);
    border-radius: var(--glp-radius);
    padding: 40px 32px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
}
.glp-banner::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(59,111,191,0.3) 0%, transparent 70%);
    border-radius: 50%;
}
.glp-banner-content {
    position: relative;
    z-index: 1;
}
.glp-banner h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin: 0 0 6px;
    text-transform: uppercase;
}
.glp-banner p {
    font-size: 0.95rem;
    opacity: 0.8;
    margin: 0;
    font-weight: 400;
}

/* --- NAGLOWKI SEKCJI --- */
.glp-section-header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0 4px;
}
.glp-section-header h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--glp-text-muted);
    margin: 0;
    white-space: nowrap;
}
.glp-section-header::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--glp-border);
}

/* --- REGULAMIN (info.php?co=regulamin) --- */
.glp-regulamin {
    max-width: 900px;
    margin: 0 auto;
    padding: 16px 24px 32px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--glp-text);
}
.glp-regulamin h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--glp-card);
    background: var(--glp-accent);
    padding: 10px 16px;
    border-radius: var(--glp-radius);
    margin: 28px 0 12px;
}
.glp-regulamin ol {
    padding-left: 24px;
    margin: 0 0 8px;
}
.glp-regulamin li {
    margin-bottom: 10px;
    padding-left: 4px;
}
.glp-regulamin ul {
    padding-left: 20px;
    margin: 6px 0;
}
.glp-regulamin ul li {
    margin-bottom: 4px;
}
.glp-regulamin a {
    color: var(--glp-accent);
    text-decoration: underline;
}
.glp-regulamin strong, .glp-regulamin b {
    font-weight: 600;
}
.glp-regulamin p {
    margin: 8px 0;
}
/* Stary styl title_3 */
.title_3 {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    color: var(--glp-card) !important;
    background: var(--glp-accent) !important;
    padding: 10px 16px !important;
    border-radius: var(--glp-radius) !important;
}

/* --- PASEK DRUZYN (strona glowna) --- */
.glp-teams-bar {
    width: 100%;
    padding: 8px 0;
    margin: 4px 0;
}
.glp-teams-bar-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--glp-text-muted);
    margin-bottom: 8px;
    padding-left: 2px;
}
.glp-teams-bar-logos {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
}
.glp-teams-bar-logos::-webkit-scrollbar {
    height: 4px;
}
.glp-teams-bar-logos::-webkit-scrollbar-thumb {
    background: var(--glp-border);
    border-radius: 2px;
}
.glp-teams-bar-item {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 8px;
    border-radius: var(--glp-radius);
    background: var(--glp-card);
    border: 1px solid var(--glp-border-light);
    transition: transform 0.15s, box-shadow 0.15s;
    scroll-snap-align: start;
    flex-shrink: 0;
    width: 64px;
    height: 64px;
}
.glp-teams-bar-item:hover {
    transform: scale(1.06);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.glp-teams-bar-logo {
    max-width: 44px;
    max-height: 44px;
    object-fit: contain;
}
.glp-teams-bar-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: #fff;
}

/* --- WYROWNANIE LOGO W TABELACH --- */
.glp-sidebar-panel td a,
.glp-stats-row td a {
    display: inline-flex;
    align-items: center;
}

/* ==========================================
   PASEK OSTATNICH MECZY
   ========================================== */
.glp-recent-matches {
    display: flex;
    gap: 12px;
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
.glp-recent-matches::-webkit-scrollbar { height: 4px; }
.glp-recent-matches::-webkit-scrollbar-thumb { background: #ccc; border-radius: 2px; }

/* Mobile: scroll cards */
.glp-match-card {
    flex: 0 0 160px;
    min-width: 140px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 14px 12px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: var(--glp-text);
    transition: border-color 0.15s, box-shadow 0.15s;
    scroll-snap-align: start;
    cursor: pointer;
}
.glp-match-card:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 2px 8px rgba(40,87,165,0.1);
    color: var(--glp-text);
}

.glp-match-result {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    width: 100%;
}
.glp-match-team {
    display: flex;
    align-items: center;
    justify-content: center;
}
.glp-match-team .glp-team-logo {
    margin: 0;
    width: 34px;
    height: 34px;
}

.glp-match-score {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    white-space: nowrap;
    color: var(--glp-text);
}

.glp-match-teams {
    display: flex;
    justify-content: space-between;
    width: 100%;
    gap: 4px;
    font-size: 0.72rem;
    color: var(--glp-text-secondary);
    line-height: 1.2;
}
.glp-match-teams span {
    flex: 1;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.glp-match-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    color: var(--glp-text-muted);
}

.glp-match-badge {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 2px 6px;
    border-radius: 3px;
    color: #ffffff;
    line-height: 1;
}
.glp-match-badge--liga1  { background: var(--glp-liga1); }
.glp-match-badge--liga2  { background: var(--glp-liga2); }
.glp-match-badge--puchar { background: var(--glp-puchar); }
.glp-match-badge--baraze { background: var(--glp-baraze); }

.glp-match-date {
    white-space: nowrap;
}

/* ==========================================
   KARTY OSTATNICH WYNIKOW — mobile 1 kolumna
   ========================================== */
.glp-recent-results {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100%;
}

.glp-result-card {
    background: var(--glp-card);
    border: 1px solid var(--glp-border-light);
    border-radius: 10px;
    padding: 0;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--glp-text);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
}
.glp-result-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.06);
    transform: translateY(-1px);
}
.glp-result-card:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 2px 8px rgba(40,87,165,0.1);
    color: var(--glp-text);
}

/* Linia druzyny: herb + nazwa + wynik */
.glp-result-teamline {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--glp-border);
}
.glp-result-card .glp-result-teamline:last-of-type {
    border-bottom: none;
}

.glp-result-logo {
    flex-shrink: 0;
}
.glp-result-logo .glp-team-logo {
    margin: 0;
    width: 30px;
    height: 30px;
}
.glp-result-name {
    flex: 1;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--glp-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}

.glp-result-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    background: var(--glp-accent);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    border-radius: 5px;
    line-height: 1;
    flex-shrink: 0;
}

.glp-result-meta {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding: 6px 12px;
    font-size: 0.7rem;
    color: var(--glp-text-muted);
    background: #f8f9fa;
}

/* ==========================================
   SEKCJA SPONSOROW / PARTNEROW — mobile
   ========================================== */
.glp-sponsors {
    display: flex;
    gap: 12px;
    width: 100%;
    padding: 20px 0;
    justify-content: center;
    flex-wrap: wrap;
}
.glp-sponsor {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 100px;
}
.glp-sponsor-logo {
    width: 100%;
    height: 60px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s, box-shadow 0.2s;
}

/* ==========================================
   SUBMENU — mobile: grid 3-kolumnowy
   ========================================== */
div.header-menu {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 6px 0 10px;
}
div.header-title {
    grid-column: 1 / -1;
    text-align: center;
    font-size: 0.95rem;
}
div.submenubutton {
    font-size: 0.72rem;
    padding: 6px 6px;
    text-align: center;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
}
div.submenubutton a.menubutton {
    font-size: 0.72rem;
}

/* ==========================================
   MOBILE — dodatkowe reguły bazowe (<=640px)
   ========================================== */
div.S { width: 100%; }
div.news-S { width: 100%; }
div.M, div.group-M { width: 100%; }
div.L, div.XL { width: 100%; }
div.XS { width: calc(50% - 6px); }

/* ==========================================
   RESPONSIVE — min-width (TABLET)
   ========================================== */
@media (min-width: 641px) {
    /* Newsy: 2 kolumny na tablecie */
    .glp-pl-news { grid-template-columns: 1fr 1fr; }
    .glp-pl-news-list {
        border-left: 1px solid var(--glp-border-light);
        border-top: none;
    }
    .glp-featured { min-height: 280px; }
    .glp-featured-title { font-size: 1.6rem; }
    .glp-featured-overlay { padding: 40px 28px 24px; }

    /* Miniaturki newsow — tablet size */
    .glp-news-item-thumb { width: 100px; height: 70px; }
    .glp-news-item { padding: 14px 16px; gap: 14px; }

    /* Logo — tablet size */
    .glp-team-logo { width: 30px; height: 30px; font-size: 0.7rem !important; margin-right: 8px; }
    .glp-stats-team-logo .glp-team-logo { width: 26px; height: 26px; }

    /* Zdjecia zawodnikow — tablet size */
    .glp-player-photo { width: 36px; height: 36px; }
    .glp-stats-item { padding: 8px 16px; gap: 10px; }
    .glp-stats-name { font-size: 0.88rem; }

    /* Stats grid: 2 kolumny na tablecie */
    .glp-stats-grid--3 { grid-template-columns: repeat(2, 1fr); }

    /* Sidebar — still 1 column, over news */
    .glp-pl-sidebar { max-width: 100%; order: -1; }

    /* Puchar grupy: 2 w rzedzie */
    .glp-puchar-groups { gap: 16px; }
    .glp-puchar-groups div.S {
        width: calc(50% - 8px) !important;
        flex: 1 1 calc(50% - 8px);
    }

    /* Ostatnie mecze: mniejsze karty */
    .glp-match-card { flex: 0 0 calc((100% - 36px) / 4); min-width: 150px; }
    .glp-recent-results { grid-template-columns: repeat(2, 1fr); }
    .glp-result-name { font-size: 0.8rem; }
    .glp-result-num { width: 28px; height: 28px; font-size: 1rem; }

    /* Sponsorzy: 3 w rzedzie */
    .glp-sponsors { gap: 16px; }
    .glp-sponsor { min-width: 120px; }
    .glp-sponsor-logo { height: 80px; }

    /* Kontenery rozmiarowe */
    div.S { width: calc(50% - 12px); }
    div.M, div.group-M { width: 100%; }
    div.L, div.XL { width: 100%; }
    div.news-S { width: 100%; }

    /* Submenu: flex z centrowanie */
    div.header-menu {
        display: flex;
        justify-content: center;
        gap: 4px;
        align-items: stretch;
        padding: initial;
    }
    div.header-title {
        grid-column: initial;
        font-size: 1rem;
        width: 100%;
    }
    div.submenubutton {
        font-size: 0.75rem;
        padding: 6px 10px;
        background: transparent;
        text-align: initial;
        display: initial;
        align-items: initial;
        justify-content: initial;
    }
    div.submenubutton a.menubutton { font-size: 0.75rem; }
}

/* ==========================================
   RESPONSIVE — min-width (DESKTOP)
   ========================================== */
@media (min-width: 1025px) {
    /* Glowny layout: sidebar + newsy */
    .glp-pl-layout { grid-template-columns: 340px 1fr; }

    /* Sidebar — normalny flow */
    .glp-pl-sidebar { max-width: none; order: initial; }

    /* Stats: 2 kolumny */
    .glp-stats-row { grid-template-columns: 1fr 1fr; }
    .glp-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .glp-stats-grid--3 { grid-template-columns: repeat(3, 1fr); }

    /* Puchar grupy: 4 w rzedzie */
    .glp-puchar-groups div.S {
        width: calc(25% - 12px) !important;
        flex: 1 1 calc(25% - 12px);
    }

    /* Ostatnie mecze: 6 kart */
    .glp-match-card { flex: 0 0 calc((100% - 60px) / 6); min-width: 160px; }
    .glp-recent-results { grid-template-columns: repeat(4, 1fr); }

    /* Sponsorzy — desktop */
    .glp-sponsor { min-width: 140px; }

    /* Submenu: flex z gap */
    div.header-menu {
        display: flex;
        gap: 8px;
        justify-content: initial;
    }
    div.header-title {
        font-size: initial;
        width: initial;
        text-align: initial;
    }
    div.submenubutton {
        font-size: initial;
        padding: initial;
    }
    div.submenubutton a.menubutton { font-size: initial; }
}
/* ==========================================
   SEKCJA SPONSOROW / PARTNEROW
   ========================================== */
.glp-sponsors {
    display: flex;
    gap: 16px;
    width: 100%;
    padding: 20px 0;
    justify-content: center;
    flex-wrap: wrap;
}
.glp-sponsor {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 140px;
}
.glp-sponsor-logo {
    width: 100%;
    height: 80px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.glp-sponsor-logo:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 2px 8px rgba(40,87,165,0.1);
}
.glp-sponsor-logo a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.glp-sponsor-logo img {
    max-width: 80%;
    max-height: 50px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: filter 0.2s, opacity 0.2s;
}
.glp-sponsor-logo:hover img {
    filter: grayscale(0%);
    opacity: 1;
}
.glp-sponsor-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--glp-text-muted);
    text-align: center;
}

/* ==========================================
   STRONA PARTNERSKA (partnerzy.php)
   ========================================== */

/* --- HERO BANNER --- */
.glp-partner-hero {
    width: 100%;
    background: linear-gradient(135deg, var(--glp-black) 0%, #1e3a6e 50%, var(--glp-accent) 100%);
    border-radius: var(--glp-radius);
    padding: 32px 20px;
    position: relative;
    overflow: hidden;
}
.glp-partner-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, transparent 70%);
    border-radius: 50%;
}
.glp-partner-hero-content {
    position: relative;
    z-index: 1;
    max-width: 640px;
}
.glp-partner-badge {
    display: inline-block;
    background: rgba(255,255,255,0.15);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 16px;
}
.glp-partner-hero h1 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.15;
    margin: 0 0 16px;
    letter-spacing: -0.01em;
}
.glp-partner-hero p {
    font-size: 0.9rem;
    color: rgba(255,255,255,0.85);
    line-height: 1.6;
    margin: 0 0 24px;
    max-width: 520px;
}
.glp-partner-cta-btn {
    display: inline-block;
    background: #ffffff;
    color: var(--glp-accent);
    font-weight: 700;
    font-size: 0.9rem;
    padding: 12px 28px;
    border-radius: var(--glp-radius);
    text-decoration: none;
    transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
    letter-spacing: 0.02em;
}
.glp-partner-cta-btn:hover {
    background: #f0f4ff;
    color: var(--glp-accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}

/* --- STATYSTYKI --- */
.glp-partner-stats {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.glp-partner-stat {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 24px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.glp-partner-stat-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--glp-accent);
    line-height: 1.1;
}
.glp-partner-stat-label {
    font-size: 0.8rem;
    color: var(--glp-text-secondary);
    line-height: 1.3;
}

/* --- KORZYŚCI PARTNERA --- */
.glp-partner-benefits {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
.glp-partner-benefit {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 28px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.glp-partner-benefit:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 4px 16px rgba(40,87,165,0.08);
}
.glp-partner-benefit-icon {
    width: 48px;
    height: 48px;
    background: #eef2f9;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--glp-accent);
}
.glp-partner-benefit h4 {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--glp-text);
    margin: 0;
    line-height: 1.3;
}
.glp-partner-benefit p {
    font-size: 0.85rem;
    color: var(--glp-text-secondary);
    line-height: 1.55;
    margin: 0;
}

/* --- ROADMAPA (co planujemy) --- */
.glp-partner-roadmap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 8px 0;
}
.glp-partner-roadmap-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 12px 16px;
    position: relative;
}
.glp-partner-roadmap-item:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 33px;
    top: 40px;
    bottom: -8px;
    width: 2px;
    background: var(--glp-border);
}
.glp-partner-roadmap-dot {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--glp-accent);
    border: 3px solid #eef2f9;
    margin-top: 2px;
    position: relative;
    z-index: 1;
}
.glp-partner-roadmap-content h4 {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--glp-text);
    margin: 0 0 4px;
}
.glp-partner-roadmap-content p {
    font-size: 0.85rem;
    color: var(--glp-text-secondary);
    line-height: 1.5;
    margin: 0;
}

/* --- OFERTA CENOWA --- */
.glp-partner-offer {
    width: 100%;
    display: flex;
    justify-content: center;
}
.glp-partner-offer-card {
    width: 100%;
    max-width: 100%;
    background: var(--glp-card);
    border: 2px solid var(--glp-accent);
    border-radius: var(--glp-radius);
    overflow: hidden;
}
.glp-partner-offer-header {
    background: linear-gradient(135deg, var(--glp-accent) 0%, var(--glp-blue-light) 100%);
    padding: 32px 28px;
    text-align: center;
    color: #ffffff;
}
.glp-partner-offer-tag {
    display: inline-block;
    background: rgba(255,255,255,0.2);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 4px 14px;
    border-radius: 20px;
    margin-bottom: 12px;
}
.glp-partner-offer-price {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.glp-partner-offer-amount {
    font-family: 'Montserrat', sans-serif;
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
}
.glp-partner-offer-period {
    font-size: 0.9rem;
    opacity: 0.9;
    font-weight: 500;
}
.glp-partner-offer-old {
    margin-top: 10px;
    font-size: 0.8rem;
    opacity: 0.7;
}
.glp-partner-offer-old span {
    text-decoration: line-through;
}
.glp-partner-offer-body {
    padding: 24px 28px;
}
.glp-partner-offer-body ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.glp-partner-offer-body li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.9rem;
    color: var(--glp-text);
    font-weight: 500;
}
.glp-partner-offer-body li svg {
    flex-shrink: 0;
}
.glp-partner-offer-footer {
    padding: 16px 28px 24px;
    border-top: 1px solid var(--glp-border-light);
}
.glp-partner-offer-footer p {
    font-size: 0.8rem;
    color: var(--glp-text-muted);
    line-height: 1.55;
    margin: 0;
    text-align: center;
}

/* --- MISJA SPOŁECZNA --- */
.glp-partner-mission {
    width: 100%;
}
.glp-partner-mission-text {
    margin-bottom: 16px;
}
.glp-partner-mission-text p {
    font-size: 0.95rem;
    color: var(--glp-text);
    line-height: 1.6;
    margin: 0;
}
.glp-partner-mission-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.glp-partner-mission-item {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 20px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}
.glp-partner-mission-icon {
    font-size: 2rem;
    line-height: 1;
}
.glp-partner-mission-item span:last-child {
    font-size: 0.85rem;
    color: var(--glp-text-secondary);
    line-height: 1.4;
}

/* --- WIZJA NA PRZYSZŁOŚĆ --- */
.glp-partner-vision {
    width: 100%;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 20px 16px;
}
.glp-partner-vision > p {
    font-size: 0.95rem;
    color: var(--glp-text);
    line-height: 1.6;
    margin: 0 0 8px;
}
.glp-partner-vision-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 20px;
}
.glp-partner-vision-step {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    background: #f8f9fc;
    border-radius: var(--glp-radius);
    border-left: 3px solid var(--glp-accent);
}
.glp-partner-vision-num {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--glp-accent);
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    border-radius: 50%;
}
.glp-partner-vision-step div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.glp-partner-vision-step strong {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--glp-text);
}
.glp-partner-vision-step span {
    font-size: 0.82rem;
    color: var(--glp-text-secondary);
}

/* --- CTA KONTAKT --- */
.glp-partner-contact {
    width: 100%;
    background: var(--glp-black);
    border-radius: var(--glp-radius);
    padding: 28px 16px;
    text-align: center;
}
.glp-partner-contact h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 8px;
}
.glp-partner-contact p {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.7);
    margin: 0 0 24px;
}
.glp-partner-contact-methods {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: stretch;
}
.glp-partner-contact-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--glp-accent);
    color: #ffffff;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 12px 24px;
    border-radius: var(--glp-radius);
    text-decoration: none;
    transition: background 0.15s, transform 0.15s;
    justify-content: center;
}
.glp-partner-contact-btn:hover {
    background: var(--glp-accent-hover);
    color: #ffffff;
    transform: translateY(-1px);
}
.glp-partner-contact-btn--fb {
    background: #1877f2;
}
.glp-partner-contact-btn--fb:hover {
    background: #166fe5;
    color: #ffffff;
}

/* --- LEGENDA --- */
.legenda-text {
    background: var(--glp-black); color: #e0e0e0;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--glp-radius-sm);
    padding: 4px 8px; font-size: 0.78rem;
}

/* --- SCROLLBAR --- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--glp-bg); }
::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #aaa; }

/* --- SUB MENU (podstrony: rozgrywki, info, stats) --- */
div.header-menu {
    min-width: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 0 12px;
    align-items: stretch;
}
div.header-title {
    color: var(--glp-text);
    font-size: 1.1rem;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 4px 0;
    display: flex;
    align-items: center;
}
div.submenubutton {
    min-width: auto;
    font-size: 0.82rem;
    padding: 8px 16px;
    border-radius: var(--glp-radius-sm);
    transition: background 0.15s, border-color 0.15s;
    background: #f5f5f5;
    border: 1px solid var(--glp-border);
    line-height: 1.3;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}
div.submenubutton:hover {
    background: #eaeaea;
    border-color: var(--glp-accent);
}
div.submenubutton a.menubutton {
    color: var(--glp-text);
    font-weight: 600;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
div.submenubutton a.menubutton:hover {
    color: var(--glp-accent);
}

/* === KLASY NAGŁÓWKÓW TABEL I KOLORÓW TEKSTOWYCH === */
.glp-table-header {
    background: var(--glp-blue) !important;
    color: #fff !important;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
}
.glp-table-header--liga1 { background: var(--glp-liga1) !important; }
.glp-table-header--liga2 { background: var(--glp-liga2) !important; }
.glp-table-header--puchar { background: var(--glp-puchar) !important; }
.glp-table-header--baraze { background: var(--glp-baraze) !important; }

/* Kolory tekstowe do tabel statystyk */
.glp-text-razem { color: var(--glp-green); font-weight: 500; }
.glp-text-liga1 { color: var(--glp-liga1); }
.glp-text-liga2 { color: var(--glp-green); }
.glp-text-puchar { color: var(--glp-puchar); }
.glp-text-baraze { color: var(--glp-baraze); }
.glp-text-label { color: var(--glp-accent); font-weight: 500; }

/* ==========================================
   NADPISANIA INLINE — WIDOK MECZU (infoOMeczu)
   ========================================== */

/* Tlo komorek meczu: #131319 → jasny */
td[style*="background-color: #131319"] {
    background-color: var(--glp-card) !important;
}

/* Nagłówek meczu: "X. KOLEJKA Y. LIGI" */
td[style*="color: #8888DD"] {
    color: var(--glp-accent) !important;
    background-color: #f8f8f8 !important;
}
[style*="color: #8888DD"] { color: var(--glp-accent) !important; }

/* Nazwy druzyn (span font-size:1.8em color:orange) */
span[style*="color: orange"] {
    color: var(--glp-text) !important;
    font-weight: 700;
}

/* Wynik meczu (td color:orange) — juz jest wyzej, ale upewniamy sie */
td[style*="color: orange"] {
    color: var(--glp-text) !important;
    font-weight: 700;
}

/* "Boisko" / "Sędzia" etykiety */
td[style*="color: #AAAACC"] {
    color: var(--glp-text-secondary) !important;
}

/* Sedzia link */
a[style*="color: #AAAACC"] {
    color: var(--glp-accent) !important;
}

/* Nagłówek terminarz/puchar: #DDDDCC na ciemnym tle */
[style*="color: #DDDDCC"] { color: #ffffff !important; }

/* ==========================================
   NADPISANIA INLINE — STATYSTYKI MECZU (pokazStatystykiMeczu)
   ========================================== */

/* Linki do profili zawodnikow: #EEEEEE → czytelny ciemny */
a[style*="color: #EEEEEE"] {
    color: var(--glp-text) !important;
}

/* Bramki i kartki: coral → ciemny tekst */
td[style*="color: coral"] {
    color: var(--glp-text) !important;
}

/* Asysty: palegreen → ciemny tekst */
td[style*="color: palegreen"] {
    color: var(--glp-text) !important;
}

/* Separatory kolumn: dashed #333333 → solid glp-border */
td[style*="border-left: 1px dashed #333333"] {
    border-left-color: var(--glp-border) !important;
    border-left-style: solid !important;
}

/* Ikony bramki/asysty: usun invert (biale ikony na ciemnym → normalne na jasnym) */
img[style*="filter: invert(100%)"] {
    filter: none !important;
}

/* Naglowek statystyk: ikony cramped z padding:0 → lekki padding */
tr.header td[style*="padding:0"] {
    padding: 4px 2px !important;
}

/* Zawodnik meczu (span w tab-footer) */
td.tab-footer span[style*="color: orange"] {
    color: var(--glp-accent) !important;
    font-weight: 700;
}

/* ==========================================
   NADPISANIA INLINE — TERMINARZ (pokazTerminarz)
   ========================================== */

/* Daty pod naglowkami: #8888BB */
span[style*="color:#8888BB"],
span[style*="color: #8888BB"] {
    color: var(--glp-text-muted) !important;
}

/* Nazwy druzyn w terminarz: white → ciemny */
td[style*="color: white"] {
    color: var(--glp-text) !important;
}

/* "PAUZA" */
td[style*="color: goldenrod"] {
    color: var(--glp-liga1) !important;
    font-weight: 600;
}

/* Komorka wyniku: background black → jasna karta */
td[style*="background-color: black"] {
    background-color: var(--glp-card) !important;
    border: 1px solid var(--glp-border) !important;
}

/* Admin: narzucony termin #230303 */
td[style*="background-color: #230303"] {
    background-color: #fef2f2 !important;
    border: 1px solid var(--glp-border) !important;
}

/* Linki wynikow w terminarz: palegreen/coral */
a[style*="color: palegreen"] {
    color: var(--glp-green) !important;
}
a[style*="color: coral"] {
    color: var(--glp-red) !important;
}

/* Linki lightblue (nierozegrany mecz z data) */
a[style*="color: lightblue"] {
    color: var(--glp-accent) !important;
}

/* Daty w komorce wyniku: palegreen data, coral godzina */
span[style*="color: palegreen"] {
    color: var(--glp-green) !important;
}
span[style*="color: coral"] {
    color: #e67e22 !important;
}
span[style*="color: lightblue"] {
    color: var(--glp-accent) !important;
}

/* Border dashed silver w terminarz → subtelniejszy */
td[style*="border: 1px dashed silver"],
img[style*="border: 1px dashed silver"] {
    border-color: var(--glp-border) !important;
    border-style: solid !important;
}

/* ==========================================
   NADPISANIA INLINE — GLOBALNE BRAKUJACE
   ========================================== */
a[style*="color: #DDDDDD"] { color: var(--glp-text) !important; }
td[style*="color: gold"] { color: var(--glp-liga1) !important; }
td[style*="color: yellow"] { color: var(--glp-liga1) !important; }

/* --- Krok 1 v7.13: brakujace kolory tekstu --- */

/* Linki orange (wyniki, druzyny w terminarzach) */
a[style*="color: orange"] { color: var(--glp-accent) !important; }

/* Naglowki kolumn orange (statystyki) */
th[style*="color: orange"] { color: var(--glp-liga1) !important; }

/* Gold — zwyciezcy w historii ligi */
span[style*="color: gold"] { color: var(--glp-liga1) !important; }
a[style*="color: gold"] { color: var(--glp-liga1) !important; }

/* Silver — 2. miejsce w historii */
span[style*="color: silver"] { color: var(--glp-text-secondary) !important; }
a[style*="color: silver"] { color: var(--glp-text-secondary) !important; }

/* Yellow (kartki w info o sedziu) */
span[style*="color: yellow"] { color: var(--glp-liga1) !important; }

/* Lightgreen (daty meczow w terminarzach) */
span[style*="color: lightgreen"] { color: var(--glp-green) !important; }

/* Separatory kolejek ligowych/pucharowych */
td[style*="color: #FF66FF"] { color: #9333ea !important; }
td[style*="color: #7C4DFF"] { color: #7c3aed !important; }

/* Daty meczow w profilu/team */
span[style*="color: #FF8A65"] { color: var(--glp-text-secondary) !important; }

/* Nazwa boiska */
span[style*="color: #AAAAFF"] { color: var(--glp-accent) !important; }

/* Lightblue w td (terminarz linki) */
td[style*="color: lightblue"] { color: var(--glp-accent) !important; }

/* Status w profilu ("wniosek wyslany") */
span[style*="color: #00CC33"] { color: var(--glp-green) !important; }

/* Status w profilu ("zdjecie odrzucone") */
span[style*="color: #FF6E40"] { color: var(--glp-red) !important; }

/* --- Krok 2 v7.13: brakujace bordery i tla --- */

/* Komorka wyniku w terminarzach: dashed → solid */
td[style*="border-left: 1px dashed #DDDDEE"] {
    border-left-color: var(--glp-border) !important;
    border-left-style: solid !important;
}

/* Terminarz pucharowy, profil: dashed silver → solid */
td[style*="border-left: 1px dashed silver"] {
    border-left-color: var(--glp-border) !important;
    border-left-style: solid !important;
}
td[style*="border-right: 1px dashed silver"] {
    border-right-color: var(--glp-border) !important;
    border-right-style: solid !important;
}

/* Regulamin wrapper: stary font → Poppins */
div[style*="font-family: coda"] {
    font-family: 'Poppins', sans-serif !important;
}

/* Komorki z opacity ("BRAK PRZYDZIALU", "BYLI ZAWODNICY") — zachowaj opacity, ustaw kolor */
td[style*="opacity: 0.6"] {
    color: var(--glp-text-muted) !important;
}

/* Dropdown sezonu (stary ciemny styl) */
select[style*="background-color: #333399"] {
    background: var(--glp-card) !important;
    color: var(--glp-text) !important;
    border: 1px solid var(--glp-border) !important;
}
option[style*="background-color: #333399"] {
    background: var(--glp-card) !important;
    color: var(--glp-text) !important;
}

/* --- Krok 4 v7.13: formularze i elementy UI --- */

/* Season selector, buttony — ujednolicenie */
select, button[type="submit"] {
    background: var(--glp-card);
    color: var(--glp-text);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    padding: 6px 12px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.85rem;
}

/* ==========================================
   KROK 5 v7.13: SZEROKOSCI PODSTRON
   ========================================== */

/* Generyczne: jesli div.S jest jedyna karta w rzedzie, rozciagnij */
#content-inner > div.S:only-child,
#content-inner > div.S:first-child:nth-last-child(1) {
    width: 100%;
}

/* Tabele wewnatrz kart — pelna szerokosc z wiekszym paddingiem */
div.S table, div.M table {
    width: 100%;
}

/* Wiekszy padding w kartach */
div.fill {
    padding: 0;
}

/* ==========================================
   PRZELACZNIK SEZONU — v7.14
   ========================================== */
.glp-sezon-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    width: 100%;
    flex-wrap: wrap;
}
.glp-sezon-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--glp-text-muted);
    white-space: nowrap;
}
.glp-sezon-select {
    padding: 8px 32px 8px 14px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--glp-text);
    background: var(--glp-bg);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    min-width: auto;
    width: 100%;
    transition: border-color 0.15s;
}
.glp-sezon-select:hover { border-color: var(--glp-accent); }
.glp-sezon-select:focus { border-color: var(--glp-accent); outline: none; box-shadow: 0 0 0 3px rgba(40,87,165,0.1); }

/* ==========================================
   TABELA LIGOWA — REDESIGN v7.14
   ========================================== */

/* Klasa tabeli */
table.glp-table-liga { width: 100%; border-collapse: collapse; }

/* Naglowek tabeli (th) */
table.glp-table-liga th {
    background: var(--glp-black);
    color: #ffffff;
}

/* Naglowki kolumn (tr.header td) — czyste skroty, bez tooltip */
table.glp-table-liga tr.header td {
    background: #f8f9fa;
    color: var(--glp-text-muted);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 10px 8px;
    border-bottom: 2px solid var(--glp-border);
    white-space: nowrap;
    cursor: default;
}

/* Wiersze druzyn */
table.glp-table-liga tr:not(.header) td {
    padding: 10px 8px;
    vertical-align: middle;
    border-bottom: 1px solid var(--glp-border-light);
}
table.glp-table-liga tr:not(.header):hover { background: #f0f4ff; }

/* Pozycja — kompaktowa */
table.glp-table-liga td:first-child {
    width: 32px;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    padding-left: 12px;
}

/* Nazwa + logo — jedyna kolumna ktora rosnie */
table.glp-table-liga td:nth-child(2) {
    white-space: normal;
}
table.glp-table-liga td:nth-child(2) a {
    color: var(--glp-text);
    text-decoration: none;
    font-weight: 600;
}
table.glp-table-liga td:nth-child(2) a:hover {
    color: var(--glp-accent);
}

/* Kolumny liczbowe — kompaktowe */
table.glp-table-liga td.glp-col-wrp,
table.glp-table-liga td.glp-col-goals,
table.glp-table-liga td.glp-col-diff {
    width: 36px;
    padding: 10px 4px;
}
table.glp-table-liga tr.header td.glp-col-wrp,
table.glp-table-liga tr.header td.glp-col-goals,
table.glp-table-liga tr.header td.glp-col-diff {
    padding: 10px 4px;
}

/* Punkty — wyroznione */
.glp-table-liga .glp-pkt {
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    color: var(--glp-text);
}

/* Kolka formy */
.glp-forma-cell {
    display: flex;
    gap: 2px;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
}
.glp-forma-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 0.5rem;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    color: white;
    flex-shrink: 0;
}
.glp-forma-w { background: var(--glp-green); }
.glp-forma-r { background: var(--glp-text-muted); }
.glp-forma-p { background: var(--glp-red); }

/* Mobile: forma 3 kółka (4. i 5. ukryte), tablet+: 5 kółek */
.glp-forma-extra { display: none; }

/* Badge walkowery/ujemne */
.glp-badge-warn {
    display: inline-block;
    font-size: 0.65rem;
    padding: 1px 5px;
    border-radius: 3px;
    background: #fff3cd;
    color: #856404;
    margin-left: 6px;
    font-weight: 600;
}

/* Base (mobile): hide W,R,P + goals + diff */
table.glp-table-liga td.glp-col-wrp,
table.glp-table-liga tr.header td.glp-col-wrp,
table.glp-table-liga td.glp-col-goals,
table.glp-table-liga tr.header td.glp-col-goals,
table.glp-table-liga td.glp-col-diff,
table.glp-table-liga tr.header td.glp-col-diff { display: none; }

/* Mobile: kompaktowe wiersze + logo inline z nazwą */
table.glp-table-liga tr:not(.header) td { padding: 8px 4px; }
table.glp-table-liga td:first-child { width: 24px; padding-left: 6px; font-size: 0.8rem; }
table.glp-table-liga td:nth-child(2) { font-size: 0.82rem; }
table.glp-table-liga td:nth-child(2) .glp-team-logo { width: 20px; height: 20px; }
table.glp-table-liga .glp-pkt { font-size: 0.9rem; }

/* ==========================================
   PROFIL DRUŻYNY — REDESIGN v7.15
   ========================================== */

/* --- Team Hero Card --- */
.glp-team-hero {
    width: 100%;
    display: flex;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
}
.glp-team-hero-logo {
    width: 64px;
    height: 64px;
    object-fit: contain;
    flex-shrink: 0;
    border-radius: 50%;
    border: 2px solid var(--glp-border);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    background: #fff;
    padding: 4px;
}
.glp-team-hero-info {
    flex: 1;
    min-width: calc(100% - 80px);
}
.glp-team-hero-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--glp-text);
    margin-bottom: 6px;
}
.glp-team-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 0.82rem;
    color: var(--glp-text-secondary);
    margin-bottom: 8px;
}
.glp-team-hero-meta a { font-weight: 600; }
.glp-hero-person {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.glp-hero-person .glp-player-photo {
    width: 30px;
    height: 30px;
}
.glp-team-hero-kits {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.glp-kit-label {
    font-size: 0.82rem;
    color: var(--glp-text-muted);
    font-weight: 500;
}
.glp-kit-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid rgba(0,0,0,0.15);
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.glp-btn-join {
    background: var(--glp-accent);
    color: #ffffff;
    border: none;
    padding: 8px 20px;
    border-radius: var(--glp-radius-sm);
    font-family: 'Poppins', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.glp-btn-join:hover { background: var(--glp-accent-hover); }
.glp-btn-join:disabled {
    background: var(--glp-border);
    color: var(--glp-text-muted);
    cursor: not-allowed;
}
.glp-team-hero-admin {
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    font-size: 0.82rem;
    color: var(--glp-text-muted);
}

/* --- Two-column Grid: Table + Recent Matches --- */
.glp-team-grid {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

/* --- Mini Table (team profile) --- */
.glp-team-standings {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
}
table.glp-table-mini-team { width: 100%; border-collapse: collapse; }
table.glp-table-mini-team th {
    background: var(--glp-black);
    color: #ffffff;
    text-align: left;
    padding: 12px 14px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.85rem;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
}
table.glp-table-mini-team tr.header td {
    background: #f8f9fa;
    color: var(--glp-text-muted);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    padding: 8px;
    border-bottom: 2px solid var(--glp-border);
}
table.glp-table-mini-team td {
    padding: 8px;
    font-size: 0.88rem;
    border-bottom: 1px solid var(--glp-border-light);
    vertical-align: middle;
}
table.glp-table-mini-team td a {
    color: var(--glp-text);
    font-weight: 500;
}
table.glp-table-mini-team td a:hover { color: var(--glp-accent); }

/* Highlighted row */
.glp-row-highlight {
    background: #e8f0fe !important;
    border-left: 3px solid var(--glp-accent);
}
.glp-row-highlight td { font-weight: 600; }

/* Smaller forma dots for mini table */
.glp-forma-sm {
    width: 18px;
    height: 18px;
    font-size: 0.5rem;
}

/* --- Recent Matches Panel --- */
.glp-team-recent {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.glp-team-recent-header {
    background: var(--glp-black);
    color: #ffffff;
    padding: 12px 14px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
a.glp-recent-match {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--glp-border-light);
    text-decoration: none;
    color: var(--glp-text);
    transition: background 0.12s;
}
a.glp-recent-match:hover { background: #f5f5f5; }
a.glp-recent-match:last-of-type { border-bottom: none; }
.glp-recent-match-logo { flex-shrink: 0; }
.glp-recent-match-name {
    flex: 1;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.glp-recent-match-score {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    white-space: nowrap;
    min-width: 40px;
    text-align: center;
}
.glp-recent-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 0.6rem;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    color: white;
    flex-shrink: 0;
}
.glp-recent-match-date {
    font-size: 0.75rem;
    color: var(--glp-text-muted);
    white-space: nowrap;
    min-width: 36px;
    text-align: right;
}
.glp-recent-match-empty {
    padding: 24px 14px;
    text-align: center;
    color: var(--glp-text-muted);
    font-size: 0.88rem;
}
.glp-team-recent-footer {
    display: block;
    text-align: center;
    padding: 10px 14px;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--glp-accent);
    background: #fafafa;
    border-top: 1px solid var(--glp-border-light);
    text-decoration: none;
    transition: background 0.15s;
    margin-top: auto;
}
.glp-team-recent-footer:hover { background: #f0f0f0; }

/* --- Player Cards Grid --- */
.glp-player-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
a.glp-player-card {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
    text-decoration: none;
    color: var(--glp-text);
    transition: transform 0.15s, box-shadow 0.15s;
    display: flex;
    flex-direction: column;
}
a.glp-player-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.glp-player-card-photo {
    aspect-ratio: 1;
    overflow: hidden;
    background: #f0f0f0;
}
.glp-player-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.glp-player-card-info {
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.glp-player-card-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--glp-accent);
}
.glp-player-card-name {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
}
.glp-player-card-stat {
    font-size: 0.72rem;
    color: var(--glp-text-muted);
}

/* --- Pozycje zawodników (badge na karcie + tabela) --- */
.glp-player-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.glp-pos-br  { background: #e6930a; }
.glp-pos-obr { background: #2857a5; }
.glp-pos-pom { background: #16a34a; }
.glp-pos-nap { background: #dc2626; }

.glp-lineup-glove {
    margin-left: 4px;
    vertical-align: middle;
    flex-shrink: 0;
}

/* Pozycje ukryte na mobile, widoczne od tabletu */
.glp-player-card-pos,
.glp-pos-badge,
td.glp-ts-pos,
.glp-ts-header .glp-ts-pos-hdr { display: none; }
@media (min-width: 641px) {
    .glp-player-card-pos { display: inline-block; }
    .glp-pos-badge { display: inline-block; }
    td.glp-ts-pos,
    .glp-ts-header .glp-ts-pos-hdr { display: table-cell; }
}

td.glp-ts-pos { text-align: center; white-space: nowrap; border-left: 1px solid var(--glp-border-light); }
.glp-pos-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 5px;
    border-radius: 3px;
    color: #fff;
    line-height: 1.2;
}

/* ==========================================
   PROFIL SĘDZIEGO — REDESIGN v7.26
   ========================================== */
.glp-referee-hero {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
    padding: 20px 16px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    margin-bottom: 16px;
}
.glp-referee-photo {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--glp-accent);
}
.glp-referee-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.glp-referee-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.glp-referee-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--glp-text);
    margin: 0;
}
.glp-referee-status {
    display: flex;
    gap: 8px;
    justify-content: center;
}
.glp-referee-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.glp-referee-badge--active {
    background: #dcfce7;
    color: var(--glp-green);
}
.glp-referee-badge--inactive {
    background: #fef2f2;
    color: var(--glp-red);
}
.glp-referee-meta {
    display: flex;
    gap: 16px;
    margin-top: 4px;
    flex-wrap: wrap;
    justify-content: center;
}
.glp-referee-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.glp-referee-stat-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--glp-text);
}
.glp-referee-stat-label {
    font-size: 0.72rem;
    color: var(--glp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.glp-referee-admin {
    display: flex;
    gap: 16px;
    margin-top: 4px;
    font-size: 0.8rem;
    color: var(--glp-text-secondary);
    justify-content: center;
}

/* ==========================================
   PROFIL ZAWODNIKA — REDESIGN v7.16
   ========================================== */

/* --- Player Hero Card --- */
.glp-player-hero {
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
}
.glp-player-hero-photo {
    width: 96px;
    height: 96px;
    border-radius: var(--glp-radius);
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid var(--glp-border);
    box-shadow: var(--glp-shadow);
    background: #f0f0f0;
}
.glp-player-hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
    border: none;
    box-shadow: none;
}
.glp-player-hero-info {
    flex: 1;
    min-width: 0;
}
.glp-player-hero-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--glp-text);
    margin-bottom: 6px;
}
.glp-player-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 0.82rem;
    color: var(--glp-text-secondary);
    margin-bottom: 8px;
    align-items: center;
    justify-content: center;
}
.glp-player-hero-meta a { font-weight: 600; }
.glp-player-hero-meta .glp-team-logo { margin-right: 4px; }
.glp-player-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
    align-items: center;
    justify-content: center;
}
.glp-player-hero-actions a {
    font-size: 0.85rem;
    font-weight: 600;
}
.glp-player-hero-actions form {
    display: inline;
    margin: 0;
}
.glp-player-hero-actions button {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    padding: 6px 14px;
    border-radius: var(--glp-radius-sm);
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    color: var(--glp-text);
}
.glp-player-hero-actions button:hover {
    background: #f5f5f5;
    border-color: var(--glp-accent);
}
.glp-player-hero-status {
    font-size: 0.82rem;
    color: var(--glp-text-muted);
    margin-top: 4px;
}
.glp-player-hero-status span {
    font-weight: 500;
}

/* --- Stat Cards --- */
.glp-profile-stats {
    display: flex;
    gap: 12px;
    width: 100%;
    flex-wrap: wrap;
}
.glp-stat-card {
    flex: 1;
    min-width: calc(50% - 8px);
    flex-basis: calc(50% - 8px);
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    text-align: center;
    padding: 16px 8px;
}
.glp-stat-card-value {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    color: var(--glp-text);
    line-height: 1.2;
}
.glp-stat-card-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--glp-text-muted);
    margin-top: 4px;
    font-weight: 600;
}
.glp-stat-card-sub {
    font-size: 0.7rem;
    color: var(--glp-text-muted);
    margin-top: 2px;
}

/* --- Match History (profil) --- */
.glp-match-round {
    padding: 6px 14px;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
    border-bottom: 1px solid var(--glp-border-light);
    background: #f8f9fa;
}
.glp-round-liga1 { border-left: 3px solid var(--glp-liga1); color: var(--glp-liga1); }
.glp-round-liga2 { border-left: 3px solid var(--glp-liga2); color: var(--glp-liga2); }
.glp-round-puchar { border-left: 3px solid var(--glp-puchar); color: var(--glp-puchar); }
.glp-round-baraze { border-left: 3px solid var(--glp-baraze); color: var(--glp-baraze); }
.glp-round-date {
    color: var(--glp-text-muted);
    font-weight: 400;
    font-size: 0.72rem;
}
.glp-round-venue {
    color: var(--glp-text-muted);
    font-weight: 400;
    font-size: 0.72rem;
}
.glp-profile-match-icons td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--glp-border);
    text-align: center;
    background: #f8f9fa;
}
.glp-profile-match-icons td img {
    height: 16px;
    vertical-align: middle;
}
.glp-match-stat-col {
    text-align: center;
    width: 30px;
    border-left: 1px solid var(--glp-border-light);
    padding: 6px 4px;
}
.glp-match-result-col {
    min-width: 54px;
    width: auto;
    text-align: center;
    border-radius: 4px;
    color: #ffffff;
    font-weight: 700;
    padding: 4px 6px;
    white-space: nowrap;
}
.glp-match-result-col a {
    color: #ffffff !important;
    text-decoration: none;
    font-weight: 700;
}

/* --- Profile: team logos in match list --- */
.glp-profile-team-cell {
    white-space: nowrap;
}
.glp-profile-team-cell a {
    vertical-align: middle;
}
.glp-profile-team-logo {
    width: 22px;
    height: 22px;
    object-fit: contain;
    vertical-align: middle;
    margin-right: 4px;
    border-radius: 2px;
}

/* ============================================
   TEAM — STATYSTYKI I TERMINARZ v7.17
   ============================================ */

/* --- Team Stats Table --- */
table.glp-team-stats { width: 100%; border-collapse: collapse; }

.glp-ts-header td {
    background: #f8f9fa;
    color: var(--glp-text-muted);
    font-size: 0.78rem;
    font-weight: 600;
    text-align: center;
    padding: 8px 6px;
    border-bottom: 2px solid var(--glp-border);
}
.glp-ts-header td:nth-child(1),
.glp-ts-header td:nth-child(2) { text-align: left; }
.glp-ts-header td img { height: 18px; opacity: 0.6; vertical-align: middle; }

td.glp-ts-kartki {
    text-align: center;
    border-left: 1px solid var(--glp-border-light);
    white-space: nowrap;
}
.glp-ts-yellow { color: #ca8a04; font-weight: 600; font-size: 0.88rem; }
.glp-ts-red { color: #dc2626; font-weight: 600; font-size: 0.88rem; }
.glp-ts-sep { color: var(--glp-text-muted); font-size: 0.7em; margin: 0 2px; }
td.glp-ts-stat {
    text-align: center;
    border-left: 1px solid var(--glp-border-light);
    font-weight: 500;
    font-size: 0.9rem;
}

/* --- Team Terminarz — Result Pill --- */
td.glp-result-cell {
    text-align: center;
    vertical-align: middle;
    padding: 8px 6px;
}
a.glp-result-pill {
    display: inline-block;
    padding: 5px 14px;
    border-radius: var(--glp-radius-sm);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.88rem;
    color: #fff;
    text-decoration: none;
    line-height: 1.3;
    transition: opacity 0.15s;
}
a.glp-result-pill:hover { opacity: 0.85; color: #fff; }
.glp-result-wo {
    display: block;
    font-size: 0.65rem;
    color: var(--glp-text-muted);
    margin-top: 2px;
}
a.glp-result-pending {
    color: var(--glp-text-muted);
    font-weight: 500;
    text-decoration: none;
}
a.glp-result-pending:hover { color: var(--glp-accent); }

/* === SIDEBAR: Scroll container tabeli === */
.glp-league-scroll {
    max-height: 400px;
    overflow-y: auto;
}
/* Pokaż WSZYSTKIE wiersze tabeli (nadpisanie limitu 8 drużyn) */
.glp-league-scroll table tr:nth-child(n+10):not(:last-child) {
    display: table-row !important;
}

/* === NAJBLIŻSZE MECZE — wariant kart result-card === */

/* "vs" zamiast wyniku liczbowego */
.glp-result-num--vs {
    background: var(--glp-text-muted);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
}

/* Sędzia meczu */
.glp-upcoming-referee {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-bottom: 1px solid var(--glp-border);
    font-size: 0.72rem;
    color: var(--glp-text-secondary);
    min-height: 34px;
}
.glp-upcoming-referee-photo {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
}
.glp-upcoming-referee-photo img {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    object-fit: cover;
    border: none;
    box-shadow: none;
}

/* Countdown timer — wycentrowany, wyróżniony */
.glp-upcoming-timer {
    display: flex;
    justify-content: center;
    padding: 8px 12px;
    border-bottom: 1px solid var(--glp-border);
    background: #f8fafc;
}
.glp-upcoming-countdown {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    color: var(--glp-accent);
    white-space: nowrap;
    display: flex;
    align-items: baseline;
    gap: 2px;
}
.glp-countdown-num {
    font-size: 1rem;
    font-weight: 800;
    color: var(--glp-text);
    font-variant-numeric: tabular-nums;
}
.glp-countdown-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--glp-text-muted);
    margin-right: 4px;
}
.glp-countdown-live {
    color: var(--glp-red);
    font-size: 0.88rem;
    font-weight: 700;
    animation: glp-pulse 2s infinite;
}
.glp-result-card--live {
    border-color: var(--glp-red);
    box-shadow: 0 0 0 1px var(--glp-red), var(--glp-shadow);
    animation: glp-pulse-border 2s infinite;
}
@keyframes glp-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
@keyframes glp-pulse-border {
    0%, 100% { border-color: var(--glp-red); box-shadow: 0 0 0 1px var(--glp-red), var(--glp-shadow); }
    50% { border-color: transparent; box-shadow: var(--glp-shadow); }
}


/* ==========================================
   MEDIA QUERIES — TABLET (min-width: 641px)
   ========================================== */
@media (min-width: 641px) {

    /* Partner page */
    .glp-partner-hero { padding: 40px 28px; }
    .glp-partner-hero h1 { font-size: 1.8rem; }
    .glp-partner-hero p { font-size: 1rem; }
    .glp-partner-benefits { grid-template-columns: repeat(2, 1fr); }
    .glp-partner-offer-card { max-width: 480px; }
    .glp-partner-offer-amount { font-size: 3rem; }
    .glp-partner-vision { padding: 28px; }
    .glp-partner-contact { padding: 40px 28px; }
    .glp-partner-contact-methods { flex-direction: row; align-items: center; }
    .glp-partner-contact-btn { justify-content: flex-start; }
    .glp-partner-roadmap-item { padding: 16px 24px; }

    /* Season selector */
    .glp-sezon-bar { padding: 10px 16px; }
    .glp-sezon-select { min-width: 120px; width: auto; }

    /* League table: show goals (Zd, St) */
    table.glp-table-liga td.glp-col-goals,
    table.glp-table-liga tr.header td.glp-col-goals { display: table-cell; }

    /* Forma dots: tablet — pokaż 4. i 5. kółko */
    .glp-forma-extra { display: inline-flex; }
    .glp-forma-cell { gap: 3px; }
    .glp-forma-dot { width: 22px; height: 22px; font-size: 0.6rem; }

    /* Liga: tablet reset */
    table.glp-table-liga tr:not(.header) td { padding: 10px 8px; }
    table.glp-table-liga td:first-child { width: 32px; padding-left: 12px; font-size: inherit; }
    table.glp-table-liga td:nth-child(2) { font-size: inherit; white-space: nowrap; }
    table.glp-table-liga td:nth-child(2) .glp-team-logo { width: 24px; height: 24px; }
    table.glp-table-liga .glp-pkt { font-size: 1rem; }

    /* Team hero */
    .glp-team-hero-logo { width: 72px; height: 72px; }
    .glp-team-hero-name { font-size: 1.25rem; }
    .glp-team-hero-meta { gap: 20px; font-size: 0.88rem; }
    .glp-team-hero-info { min-width: 0; }

    /* Player grid */
    .glp-player-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .glp-player-card-info { padding: 10px 12px; }
    .glp-player-card-name { font-size: 0.82rem; }

    /* Recent match name */
    .glp-recent-match-name { font-size: 0.85rem; }

    /* Referee hero */
    .glp-referee-hero {
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 24px;
        padding: 24px;
    }
    .glp-referee-photo { width: 140px; height: 140px; }
    .glp-referee-name { font-size: 1.5rem; }
    .glp-referee-meta { justify-content: flex-start; gap: 24px; }
    .glp-referee-status { justify-content: flex-start; }
    .glp-referee-admin { justify-content: flex-start; }

    /* Player hero */
    .glp-player-hero {
        flex-direction: row;
        text-align: left;
        align-items: center;
        gap: 16px;
        padding: 20px;
    }
    .glp-player-hero-photo { width: 120px; height: 120px; }
    .glp-player-hero-name { font-size: 1.25rem; }
    .glp-player-hero-meta { justify-content: flex-start; gap: 16px; font-size: 0.88rem; }
    .glp-player-hero-actions { justify-content: flex-start; }

    /* Stat cards */
    .glp-profile-stats { flex-wrap: nowrap; }
    .glp-stat-card { min-width: 90px; flex-basis: auto; }
    .glp-stat-card-value { font-size: 1.5rem; }
}


/* ==========================================
   MEDIA QUERIES — DESKTOP (min-width: 1025px)
   ========================================== */
@media (min-width: 1025px) {

    /* Partner page */
    .glp-partner-hero { padding: 56px 40px; }
    .glp-partner-hero h1 { font-size: 2.2rem; }
    .glp-partner-stats { grid-template-columns: repeat(4, 1fr); }
    .glp-partner-benefits { grid-template-columns: repeat(4, 1fr); }
    .glp-partner-mission-grid { grid-template-columns: repeat(4, 1fr); }

    /* League table: show W,R,P + diff */
    table.glp-table-liga td.glp-col-wrp,
    table.glp-table-liga tr.header td.glp-col-wrp,
    table.glp-table-liga td.glp-col-diff,
    table.glp-table-liga tr.header td.glp-col-diff { display: table-cell; }

    /* Forma dots */
    .glp-forma-dot { width: 24px; height: 24px; }

    /* Team hero */
    .glp-team-hero {
        flex-wrap: nowrap;
        gap: 24px;
        padding: 24px;
    }
    .glp-team-hero-logo { width: 88px; height: 88px; }
    .glp-team-hero-name { font-size: 1.5rem; }

    /* Team grid: two columns */
    .glp-team-grid { grid-template-columns: 55% 1fr; }

    /* Player grid */
    .glp-player-grid { grid-template-columns: repeat(5, 1fr); }

    /* Player hero */
    .glp-player-hero { gap: 24px; padding: 24px; }
    .glp-player-hero-photo { width: 150px; height: 150px; }
    .glp-player-hero-name { font-size: 1.5rem; }
}
/* ==========================================
   PART 4 — MOBILE-FIRST REWRITE
   Admin panel dark rows, referee grid, user list,
   filters, transfers, panel bar, teams showcase,
   match header, H2H, match lineup, schedule,
   load more, sidebar mini results
   ========================================== */

/* ==========================================
   NADPISANIA INLINE v7.27 — KOMPLEKSOWE
   (responsywnosc nie dotyczy — same kolory/overrides)
   ========================================== */

/* --- A) ZRP WYNIKI (wskaznik W/R/P) --- */
td[style*="background-color: #2E7D32"] {
    background-color: #dcfce7 !important;
    color: var(--glp-green) !important;
    font-weight: 700;
}
td[style*="background-color: #2E7D32"] a { color: var(--glp-green) !important; }

td[style*="background-color: #448AFF"] {
    background-color: #dbeafe !important;
    color: var(--glp-accent) !important;
    font-weight: 700;
}
td[style*="background-color: #448AFF"] a { color: var(--glp-accent) !important; }

td[style*="background-color: #D32F2F"] {
    background-color: #fef2f2 !important;
    color: var(--glp-red) !important;
    font-weight: 700;
}
td[style*="background-color: #D32F2F"] a { color: var(--glp-red) !important; }

/* --- B) DASHBOARD PANELE (info.php centrum informacji) --- */
tr[style*="background-color: #222266"] {
    background-color: #eef2ff !important;
    color: var(--glp-text) !important;
}
tr[style*="background-color: #222266"] td {
    color: var(--glp-text) !important;
}

tr[style*="background-color: #221010"] {
    background-color: #fef2f2 !important;
    color: var(--glp-text) !important;
}
tr[style*="background-color: #221010"] td {
    color: var(--glp-text) !important;
}

tr[style*="color: gold"] td,
tr[style*="color: gold"] {
    color: var(--glp-text) !important;
    font-weight: 600;
}

tr[style*="color: lime"] td,
tr[style*="color: lime"] {
    color: var(--glp-text) !important;
}

tr[style*="background-color: #222266"] img[style*="height: 22px"],
tr[style*="background-color: #221010"] img[style*="height: 22px"] {
    filter: none;
}

td[style*="color: lime"] {
    color: var(--glp-green) !important;
    font-weight: 700;
}

/* --- C) TERMINARZ I LISTA MECZOW — CIEMNE TLA KOLEJEK --- */
td[style*="background-color: #131319"] {
    background-color: #f8f9fa !important;
    border-top: 2px solid var(--glp-border) !important;
}

tr[style*="background-color: #402010"],
tr[style*="background-color: #104020"],
tr[style*="background-color: #502030"],
tr[style*="background-color: #222288"],
tr[style*="background-color: #501040"],
tr[style*="background-color: #401020"],
tr[style*="background-color: #102845"],
tr[style*="background-color: #302010"],
tr[style*="background-color: #042010"] {
    background-color: #f0f4ff !important;
}
tr[style*="background-color: #402010"] td,
tr[style*="background-color: #104020"] td,
tr[style*="background-color: #502030"] td,
tr[style*="background-color: #222288"] td,
tr[style*="background-color: #501040"] td {
    color: var(--glp-text) !important;
}

td[style*="background-color: #401020"],
td[style*="background-color: #102845"],
td[style*="background-color: #222266"],
td[style*="background-color: #302010"],
td[style*="background-color: #042010"],
td[style*="background-color: #501040"] {
    background-color: #f8f9fa !important;
    border-top: 2px solid var(--glp-border) !important;
}

/* --- D) STATYSTYKI SEDZIEGO --- */
td[style*="color: orange"] span,
td[style*="color: orange"] {
    color: var(--glp-accent) !important;
    font-weight: 600;
}

td[style*="color: yellow"] {
    color: var(--glp-liga1) !important;
    font-weight: 600;
}

td[style*="color: coral"] {
    color: var(--glp-accent) !important;
}

span[style*="color: orange"] {
    color: var(--glp-text-muted) !important;
    font-weight: 400;
}

td[style*="color: lightblue"] {
    color: var(--glp-text-secondary) !important;
}

/* --- E) KOLORY ROZGRYWEK W SPANACH --- */
span[style*="color: #FF66FF"] { color: var(--glp-baraze) !important; }
span[style*="color: #7C4DFF"] { color: var(--glp-puchar) !important; }
span[style*="color: #8888DD"] { color: var(--glp-puchar) !important; }

/* --- F) INNE BRAKUJACE --- */
span[style*="font-size: 1.2em"][style*="color: #"] {
    font-size: 0.95rem !important;
}

td[style*="background-color: #992233"] {
    background-color: var(--glp-black) !important;
    color: #ffffff !important;
}

td[style*="background-color: #131319"] a,
td[style*="background-color: #131319"] span {
    color: inherit !important;
}

td[style*="border-right: 1px dashed #DDDDEE"] {
    border-right-color: var(--glp-border) !important;
    border-right-style: solid !important;
}

img[style*="height: 16px"][src*="card"] {
    position: relative;
    vertical-align: middle;
}

/* --- F2) PANEL ADMINA — ciemne tla wierszy --- */
tr[style*="background-color: #152535"],
tr[style*="background-color: #204060"],
tr[style*="background-color: #302030"],
tr[style*="background-color: #402025"],
tr[style*="background-color: #202550"],
tr[style*="background-color: #202540"],
tr[style*="background-color: #202030"],
tr[style*="background-color: #202060"],
tr[style*="background-color: #502020"],
tr[style*="background-color: #502025"],
tr[style*="background-color: #051005"],
tr[style*="background-color: #602025"],
tr[style*="background-color: #302025"],
tr[style*="background-color: #254025"],
tr[style*="background-color: #113366"],
tr[style*="background-color: #400020"],
tr[style*="background-color: #8C1717"] {
    background-color: var(--glp-card) !important;
    border-bottom: 1px solid var(--glp-border-light);
}
tr[style*="background-color: #152535"] td,
tr[style*="background-color: #204060"] td,
tr[style*="background-color: #302030"] td,
tr[style*="background-color: #402025"] td,
tr[style*="background-color: #202550"] td,
tr[style*="background-color: #202540"] td,
tr[style*="background-color: #202030"] td,
tr[style*="background-color: #202060"] td,
tr[style*="background-color: #502020"] td,
tr[style*="background-color: #502025"] td,
tr[style*="background-color: #051005"] td,
tr[style*="background-color: #602025"] td,
tr[style*="background-color: #302025"] td,
tr[style*="background-color: #254025"] td,
tr[style*="background-color: #113366"] td,
tr[style*="background-color: #400020"] td,
tr[style*="background-color: #8C1717"] td {
    color: var(--glp-text) !important;
}

tr[style*="background-color"] span[style*="color: orange"],
tr[style*="background-color"] td[style*="color: orange"] {
    color: var(--glp-liga1) !important;
}
tr[style*="background-color"] a[style*="color: orange"] {
    color: var(--glp-accent) !important;
}
tr[style*="background-color"] span[style*="color: gold"],
tr[style*="background-color"] td[style*="color: gold"] {
    color: var(--glp-liga2) !important;
}
tr[style*="background-color"] span[style*="color: lime"],
tr[style*="background-color"] td[style*="color: lime"] {
    color: var(--glp-green) !important;
}
tr[style*="background-color"] span[style*="color: palegreen"],
tr[style*="background-color"] td[style*="color: palegreen"],
tr[style*="background-color"] a[style*="color: palegreen"] {
    color: var(--glp-green) !important;
}
tr[style*="background-color"] span[style*="color: lightgreen"],
tr[style*="background-color"] td[style*="color: lightgreen"] {
    color: var(--glp-green) !important;
}
tr[style*="background-color"] span[style*="color: coral"],
tr[style*="background-color"] td[style*="color: coral"] {
    color: var(--glp-red) !important;
}
tr[style*="background-color"] span[style*="color: lightblue"],
tr[style*="background-color"] td[style*="color: lightblue"] {
    color: var(--glp-accent) !important;
}

/* Globalne kolory tekstu widoczne w panelu admina */
td[style*="color: goldenrod"] {
    color: var(--glp-liga1) !important;
}
td[style*="color: yellow"],
span[style*="color: yellow"] {
    color: var(--glp-liga1) !important;
}
span[style*="color: #DD2233"],
span[style*="color: #EE2222"],
td[style*="color: #EE2222"] {
    color: var(--glp-red) !important;
}
td[style*="color: #DDDDDD"],
span[style*="color: #DDDDDD"] {
    color: var(--glp-text-secondary) !important;
}

/* Detale meczu (edycja): ciemne tlo #131319 */
td[style*="background-color: #131319"] {
    background-color: var(--glp-bg) !important;
}
td[style*="color: #8888DD"][style*="background-color: #131319"] {
    color: var(--glp-text-muted) !important;
}
td[style*="background-color: #131319"] span[style*="color: orange"],
td[style*="background-color: #131319"] a span[style*="color: orange"] {
    color: var(--glp-accent) !important;
}
td[style*="color: #AAAACC"] {
    color: var(--glp-text-secondary) !important;
}

/* a_sedzia.php — kolory rozgrywek w naglowkach */
td[style*="background-color: #131319"][style*="color: #f06292"] {
    color: var(--glp-baraze) !important;
}
td[style*="background-color: #131319"][style*="color: #38B0DE"] {
    color: var(--glp-puchar) !important;
}
td[style*="background-color: #131319"][style*="color: #FF9900"] {
    color: var(--glp-liga1) !important;
}
td[style*="background-color: #131319"][style*="color: #00E676"] {
    color: var(--glp-green) !important;
}
span[style*="color: #f06292"] { color: var(--glp-baraze) !important; }
span[style*="color: #38B0DE"] { color: var(--glp-puchar) !important; }
span[style*="color: #FF9900"] { color: var(--glp-liga1) !important; }
span[style*="color: #00E676"] { color: var(--glp-green) !important; }
span[style*="color: #8888DD"] { color: var(--glp-text-muted) !important; }
span[style*="color: lightblue"],
td[style*="color: lightblue"] { color: var(--glp-accent) !important; }
span[style*="color: coral"],
td[style*="color: coral"] { color: var(--glp-red) !important; }

/* a_oceny.php — czerwony wiersz sredniej */
tr[style*="background-color: #EE2222"] {
    background-color: #fef2f2 !important;
    border-left: 3px solid var(--glp-red);
}
tr[style*="background-color: #EE2222"] td {
    color: var(--glp-text) !important;
}
tr[style*="background-color: #EE2222"] td[style*="color: lime"] {
    color: var(--glp-green) !important;
}

/* === SIATKA SEDZIOW (G) === */
/* Base = mobile: 2 cols */
.glp-referees-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    width: 100%;
}
.glp-referee-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 16px 12px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    text-decoration: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.glp-referee-card:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 2px 8px rgba(40,87,165,0.1);
}
.glp-referee-card-photo {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--glp-border);
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.glp-referee-card:hover .glp-referee-card-photo {
    border-color: var(--glp-accent);
}
.glp-referee-card-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--glp-text);
    text-align: center;
    line-height: 1.3;
}
.glp-referee-card-stat {
    font-size: 0.75rem;
    color: var(--glp-text-muted);
}

/* Stary div.XS */
div.XS { text-align: center; }

/* --- H) STARE STYLE NA LINKU LIGHTBLUE --- */
a[style*="color: lightblue"] {
    color: var(--glp-accent) !important;
}

td[style*="text-align: right"][style*="color: lightblue"] {
    color: var(--glp-text-secondary) !important;
}
td[style*="text-align: center"][style*="color: lightblue"] {
    color: var(--glp-text-secondary) !important;
}

span[style*="color: red"] { color: var(--glp-red) !important; }
span[style*="color: #DD2222"] { color: var(--glp-red) !important; }

/* --- I) BORDER-DASHED CLEANUP --- */
td[style*="border-left: 1px dashed #333333"] {
    border-left-color: var(--glp-border) !important;
    border-left-style: solid !important;
}

/* --- J) BUTTON-DOWN --- */
img.button-down {
    background-color: #f0f0f0;
    border: 2px solid var(--glp-border);
    border-radius: var(--glp-radius);
    width: 28px;
    height: 28px;
    padding: 4px;
    margin-left: 6px;
    transition: all 0.15s;
}
img.button-down:hover {
    background-color: #e0e0f0;
    border-color: var(--glp-accent);
}
a.button-down {
    display: inline-flex;
    align-items: center;
}
img.button-down[style*="opacity: 0.5"] {
    background-color: #f5f5f5 !important;
    border-color: var(--glp-border-light) !important;
    opacity: 0.4 !important;
}
img.button-down[style*="border-color: red"] {
    border-color: var(--glp-red) !important;
    background-color: #fef2f2 !important;
}
img.button-down[style*="border-color: lightgreen"] {
    border-color: var(--glp-green) !important;
    background-color: #dcfce7 !important;
}
img.button-down[style*="border-color: coral"] {
    border-color: #e67e22 !important;
    background-color: #fff7ed !important;
}

/* --- K) KALENDARZ TERMINOW (k_terminarz.php) --- */

/* Wrapper: scroll na mobile, nie obcinaj */
.glp-kt-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }

/* Kalendarz: fixed layout wymusza 7 kolumn w 100% kontenera */
table.glp-calendar {
    table-layout: fixed;
    width: 100%;
}
/* Terminarz: auto layout, 100% szerokości */
table.glp-terminarz {
    table-layout: auto;
    width: 100%;
}
/* Terminarz: pozwól na zawijanie tekstu na mobile (override z linii 898) */
table.glp-terminarz td {
    white-space: normal !important;
    word-break: break-word;
}
/* Legenda kalendarzyka: zawijanie tekstu */
table.glp-calendar td[colspan] {
    white-space: normal !important;
    font-size: 0.6rem !important;
    line-height: 1.3;
}

/* Kalendarz: kompaktowy na mobile */
td[style*="height: 40px"] {
    height: 28px !important;
    padding: 0 !important;
    font-size: 0.62rem !important;
    overflow: hidden;
}
td[style*="height: 40px"] a {
    padding: 4px 1px !important;
    font-size: 0.62rem !important;
    display: block !important;
}
td[style*="height: 40px"] span {
    font-size: 0.62rem !important;
}

/* Nagłówki kalendarzyka: kompaktowe */
tr.header td {
    padding: 3px 1px !important;
    font-size: 0.62rem !important;
}

/* Button-down ikonki: mniejsze na mobile */
img.button-down {
    width: 22px !important;
    height: 22px !important;
    margin-left: 2px !important;
    padding: 2px !important;
}

/* Terminarz: nazwy druzyn mniejsze na mobile */
td span[style*="font-size: 1.1em"] {
    font-size: 0.72rem !important;
}
td span[style*="font-size: 1.2em"] {
    font-size: 0.82rem !important;
}
td span[style*="font-size: 0.9em"] {
    font-size: 0.68rem !important;
}
td span[style*="font-size: 1em"] {
    font-size: 0.68rem !important;
}

/* Terminarz: flex container z ikonkami — zawijanie */
div[style*="display: flex; justify-content: center"] {
    flex-wrap: wrap !important;
    gap: 2px !important;
}

/* Terminarz: nazwy druzyn — zawijanie tekstu */
td[style*="min-width: 115px"] {
    min-width: unset !important;
    max-width: 35vw;
    word-break: break-word;
    white-space: normal !important;
}

/* Terminarz: wynik meczu — nie zawijaj */
td.center a[style*="width: 20px"] {
    white-space: nowrap;
}

@media (min-width: 641px) {
    /* Reset na tablet+ */
    .glp-kt-wrap { overflow-x: visible !important; }
    table.glp-calendar { table-layout: auto; }
    td[style*="min-width: 115px"] {
        min-width: 115px !important;
        max-width: none;
        white-space: nowrap !important;
    }
    td[style*="height: 40px"] {
        height: 40px !important;
        padding: 4px !important;
        font-size: 0.85rem !important;
    }
    td[style*="height: 40px"] a {
        padding: 10px !important;
        font-size: 0.85rem !important;
    }
    td[style*="height: 40px"] span {
        font-size: 0.85rem !important;
    }
    tr.header td {
        padding: 6px 5px !important;
        font-size: 0.85rem !important;
    }
    img.button-down {
        width: 28px !important;
        height: 28px !important;
        margin-left: 6px !important;
        padding: 4px !important;
    }
    td span[style*="font-size: 1.1em"] {
        font-size: 1.1em !important;
    }
    td span[style*="font-size: 1.2em"] {
        font-size: 1.2em !important;
    }
    td span[style*="font-size: 0.9em"] {
        font-size: 0.9em !important;
    }
    td span[style*="font-size: 1em"] {
        font-size: 1em !important;
    }
}

td[style*="background-color: #111111"] {
    background-color: #f0f0f0 !important;
    color: var(--glp-text-muted) !important;
    border-color: var(--glp-border-light) !important;
}
td[style*="background-color: #222222"] {
    background-color: var(--glp-card) !important;
    border-color: var(--glp-border) !important;
}
td[style*="background-color: #222222"] a {
    color: var(--glp-text) !important;
}
td[style*="background-color: #007700"] {
    background-color: #dcfce7 !important;
    border-color: var(--glp-green) !important;
}
td[style*="background-color: #007700"] a {
    color: var(--glp-green) !important;
}
td[style*="border: 2px solid #EE2222"] {
    border-color: var(--glp-red) !important;
    background-color: #fef2f2 !important;
    color: var(--glp-text) !important;
}
td[style*="color: silver"] { color: var(--glp-text-muted) !important; }
td[style*="color: #444444"] { color: var(--glp-text-muted) !important; }

/* --- L) KOMUNIKATY SYSTEMOWE --- */
td[style*="background-color:red"],
td[style*="background-color: red"] {
    background-color: var(--glp-red) !important;
    color: #ffffff !important;
    border-radius: var(--glp-radius-sm);
}
td[style*="background-color:red"] a,
td[style*="background-color: red"] a {
    color: #ffffff !important;
    text-decoration: underline;
}
td[style*="background-color:#EE6699"] {
    background-color: #fce7f3 !important;
    color: var(--glp-baraze) !important;
}
td[style*="background-color:#CC2244"] {
    background-color: var(--glp-red) !important;
    color: #ffffff !important;
}
td[style*="background-color:#CC2244"] a {
    color: #ffffff !important;
}
tr[style*="background-color: #EE2222"] {
    background-color: #fef2f2 !important;
    color: var(--glp-text) !important;
}
tr[style*="background-color: #EE2222"] td {
    color: var(--glp-text) !important;
}
tr[style*="background-color: #EE2222"] td[style*="color: lime"] {
    color: var(--glp-green) !important;
    font-weight: 700;
}
tr[style*="background-color: #EE2222"] td[style*="color: #DDDDDD"] {
    color: var(--glp-text-secondary) !important;
}

/* --- M) KOLORY ROZGRYWEK W k_terminarz --- */
span[style*="color: #FF6666"] { color: var(--glp-baraze) !important; }
span[style*="color: #0099FF"] { color: var(--glp-puchar) !important; }
span[style*="color: #FF2400"] { color: var(--glp-red) !important; }

img[style*="background-color: #666666"] {
    background-color: #f5f5f5 !important;
}

/* --- N) KOLORY LEGEND --- */
span[style*="color: #007700"] { color: var(--glp-green) !important; }

/* === F3: LISTA UZYTKOWNIKOW ===
   Base = mobile */
.glp-users-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
}
.glp-user-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    background: var(--glp-card);
    border-radius: var(--glp-radius-sm);
    text-decoration: none;
    color: var(--glp-text);
    transition: background 0.15s;
    flex-wrap: wrap;
}
.glp-user-row:hover {
    background: var(--glp-bg);
}
.glp-user-row .glp-player-photo {
    width: 32px; height: 32px; flex-shrink: 0;
}
.glp-user-row-name {
    font-weight: 500;
    font-size: 0.88rem;
    flex: 1;
    min-width: 0;
}
.glp-user-row-team {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--glp-text-secondary);
    white-space: nowrap;
}
.glp-user-row-team .glp-team-logo {
    width: 22px; height: 22px; font-size: 0.55rem;
    border: none; box-shadow: none; background: transparent;
}
.glp-user-row-team .glp-team-logo img {
    width: 22px; height: 22px;
}
.glp-user-row-team--none {
    opacity: 0.5; font-style: italic;
}

/* Filtry uzytkownikow — base = mobile (stacked) */
.glp-users-filters {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    padding: 12px 14px;
    margin-bottom: 12px;
    width: 100%;
}
.glp-users-filters-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}
.glp-users-filter-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--glp-text-secondary);
}
.glp-users-filter-select {
    padding: 5px 10px;
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    font-size: 0.82rem;
    background: var(--glp-bg);
    color: var(--glp-text);
    cursor: pointer;
}
.glp-users-filter-btns {
    display: flex;
    gap: 4px;
    width: 100%;
}
.glp-users-filter-btn {
    padding: 5px 12px;
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    font-size: 0.8rem;
    background: var(--glp-bg);
    color: var(--glp-text-secondary);
    cursor: pointer;
    transition: all 0.15s;
    flex: 1;
    text-align: center;
}
.glp-users-filter-btn:hover {
    border-color: var(--glp-accent);
    color: var(--glp-accent);
}
.glp-users-filter-btn.active {
    background: var(--glp-accent);
    color: #fff;
    border-color: var(--glp-accent);
}

/* Statystyki w wierszu uzytkownika — base = mobile (full width) */
.glp-user-row-stats {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-left: 44px;
    margin-top: 2px;
    flex-shrink: 0;
}
.glp-user-stat {
    font-size: 0.72rem;
    padding: 2px 8px;
    border-radius: 10px;
    background: var(--glp-bg);
    color: var(--glp-text-secondary);
    white-space: nowrap;
    min-width: 54px;
    text-align: center;
}
.glp-user-stat--gole {
    background: #e8f5e9;
    color: var(--glp-green);
}
.glp-user-stat--asysty {
    background: #e3f2fd;
    color: var(--glp-accent);
}
.glp-user-stat--active {
    font-weight: 600;
    box-shadow: 0 0 0 1px currentColor;
}

/* === F3: TRANSFERY === */
.glp-transfers-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.glp-transfer-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--glp-card);
    border-radius: var(--glp-radius-sm);
    border-left: 3px solid transparent;
}
.glp-transfer--in { border-left-color: var(--glp-green); }
.glp-transfer--out { border-left-color: var(--glp-red); }
.glp-transfer-player {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.glp-transfer-player .glp-player-photo {
    width: 32px; height: 32px; flex-shrink: 0;
}
.glp-transfer-player a {
    font-weight: 500;
    font-size: 0.88rem;
    color: var(--glp-text);
    text-decoration: none;
}
.glp-transfer-player a:hover { color: var(--glp-accent); }
.glp-transfer-icon {
    height: 18px; flex-shrink: 0;
}
.glp-transfer-team {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--glp-text-secondary);
    text-decoration: none;
    white-space: nowrap;
}
.glp-transfer-team:hover { color: var(--glp-accent); }
.glp-transfer-team .glp-team-logo {
    width: 28px; height: 28px; font-size: 0.55rem;
}
.glp-transfer-team .glp-team-logo img {
    width: 20px; height: 20px;
}

/* === F3: ZDJECIA W TABELI STATYSTYK === */
td.glp-ts-player {
    display: flex;
    align-items: center;
    gap: 8px;
}
td.glp-ts-player .glp-player-photo {
    width: 26px; height: 26px; flex-shrink: 0;
}

/* === F3: KOLORY WYNIKOW (pill) === */
a.glp-result-pill--win { background-color: #2E7D32; }
a.glp-result-pill--draw { background-color: #448AFF; }
a.glp-result-pill--loss { background-color: #D32F2F; }

/* === G1: PASEK PANELU DLA ZALOGOWANYCH ===
   Base = mobile */
.glp-panel-bar {
    background: var(--glp-card);
    border-bottom: 1px solid var(--glp-border);
    padding: 0;
}
.glp-panel-bar-inner {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 5px 10px;
    max-width: 1200px;
    margin: 0 auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.glp-panel-bar-spacer {
    display: none;
}
.glp-panel-bar-inner::-webkit-scrollbar { height: 0; display: none; }
.glp-panel-bar-link {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--glp-text-secondary);
    text-decoration: none;
    white-space: nowrap;
    border-radius: var(--glp-radius-sm);
    transition: background 0.15s, color 0.15s;
}
.glp-panel-bar-link:hover {
    background: var(--glp-bg);
    color: var(--glp-text);
}
.glp-panel-bar-link--captain {
    color: var(--glp-accent);
    font-weight: 600;
}
.glp-panel-bar-link--captain:hover {
    color: var(--glp-blue);
}
.glp-panel-bar-link--admin {
    color: var(--glp-liga1);
    font-weight: 600;
}
.glp-panel-bar-link--admin:hover {
    color: #c77d08;
}
.glp-panel-bar-link--logout {
    margin-left: 8px;
    color: var(--glp-text-muted);
}
.glp-panel-bar-link--logout:hover {
    color: var(--glp-red);
}
.glp-panel-bar-icon {
    width: 14px;
    height: 14px;
    opacity: 0.7;
}
.glp-panel-bar-sep {
    width: 1px;
    height: 18px;
    background: var(--glp-border);
    margin: 0 6px;
    flex-shrink: 0;
}

/* === G2: SHOWCASE DRUZYN ===
   Base = mobile */
.glp-teams-showcase {
    width: 100%;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 16px 14px;
}
.glp-teams-showcase-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--glp-text);
    margin-bottom: 20px;
}
.glp-teams-showcase-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
}
.glp-teams-showcase-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    transition: transform 0.15s, opacity 0.15s;
}
.glp-teams-showcase-item:hover {
    transform: scale(1.12);
}
.glp-teams-showcase-item img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.glp-teams-showcase-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: #fff;
}

/* ============================================
   MATCH HEADER (karta meczu - szczegoly)
   Base = mobile
   ============================================ */
.glp-match-header {
    background: #1a1a2e;
    border: none;
    border-radius: var(--glp-radius) var(--glp-radius) 0 0;
    padding: 16px 12px 14px;
    margin-bottom: 0;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.glp-match-header-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,0.5);
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    text-align: center;
}
.glp-match-header-teams {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 12px;
}
.glp-match-header-team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    flex: 1;
    min-width: 0;
    max-width: none;
}
.glp-match-header-logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
}
.glp-match-header-team .glp-team-logo {
    width: 40px;
    height: 40px;
    font-size: 0.65rem;
}
.glp-match-header-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    color: #ffffff;
    text-align: center;
    line-height: 1.2;
    word-break: break-word;
    white-space: normal;
}
.glp-match-header-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    min-width: 80px;
    padding: 0 4px;
}
.glp-match-header-score-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.05em;
}
.glp-match-header-score--pending {
    color: var(--glp-text-muted);
}
.glp-match-header-wo {
    font-size: 0.7rem;
    color: var(--glp-text-muted);
    margin-top: 2px;
}
.glp-match-header-meta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    color: rgba(255,255,255,0.5);
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.glp-match-header-meta-sep {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--glp-border);
}
.glp-match-header-meta-link {
    color: rgba(255,255,255,0.7);
    text-decoration: none;
}
.glp-match-header-meta-link:hover {
    text-decoration: underline;
}
.glp-match-header-team .glp-team-logo {
    color: rgba(255,255,255,0.8);
    border-color: rgba(255,255,255,0.2);
}
/* Status meczu */
.glp-md-status { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; margin-top: 4px; }
.glp-md-status--finished { color: var(--glp-green); }
.glp-md-status--wo { color: var(--glp-red); }

/* Tab bar — base = mobile */
.glp-md-tabs {
    display: flex;
    background: #1a1a2e;
    border-radius: 0 0 var(--glp-radius) var(--glp-radius);
    overflow-x: auto;
    justify-content: flex-start;
    gap: 4px;
    padding: 6px 8px;
    max-width: 700px;
    margin: 0 auto;
}
.glp-md-tab {
    padding: 7px 12px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.5);
    background: transparent;
    border: none;
    border-radius: var(--glp-radius);
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    transition: color 0.15s, background 0.15s;
    white-space: nowrap;
}
.glp-md-tab:hover { color: rgba(255,255,255,0.8); background: rgba(255,255,255,0.08); }
.glp-md-tab.active { color: #ffffff; background: var(--glp-accent); }

/* Panele */
.glp-md-panels { width: 700px; max-width: 100%; margin: 12px auto 0; overflow: hidden; box-sizing: border-box; }
.glp-md-panel { display: none; width: 100%; min-width: 100%; }
.glp-md-panel.active { display: block; }

/* H2H — base = mobile */
.glp-h2h-card { background: var(--glp-card); border: 1px solid var(--glp-border); border-radius: var(--glp-radius); overflow: hidden; }
.glp-h2h-summary { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 14px 10px; text-align: center; border-bottom: 1px solid var(--glp-border); }
.glp-h2h-summary-teams { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; }
.glp-h2h-summary-team { display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none; color: var(--glp-text); flex: 1; min-width: 0; }
.glp-h2h-summary-logo .glp-team-logo { width: 32px; height: 32px; font-size: 0.55rem; }
.glp-h2h-summary-name { font-family: 'Montserrat', sans-serif; font-size: 0.72rem; font-weight: 700; text-align: center; line-height: 1.2; word-break: break-word; }
.glp-h2h-summary-vs { font-size: 0.6rem; font-weight: 700; color: var(--glp-text-muted); letter-spacing: 0.1em; flex-shrink: 0; }
.glp-h2h-bar-wrap { width: 100%; max-width: 340px; }
.glp-h2h-bar { display: flex; height: 26px; border-radius: 16px; overflow: hidden; width: 100%; }
.glp-h2h-bar-seg { display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 700; color: #fff; min-width: 28px; transition: width 0.3s; }
.glp-h2h-bar--w1 { background: #1a2d4d; }
.glp-h2h-bar--draw { background: #475569; }
.glp-h2h-bar--w2 { background: #3b82f6; }
.glp-h2h-bar-labels { display: flex; font-size: 0.58rem; color: var(--glp-text-muted); margin-top: 4px; }
.glp-h2h-bar-labels span { text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.glp-h2h-summary-total { font-size: 0.72rem; color: var(--glp-text-muted); }

/* H2H: lista meczow — base = mobile (3-col, no date) */
.glp-h2h-list { display: flex; flex-direction: column; }
.glp-h2h-match { display: grid; grid-template-columns: 1fr 44px 1fr; gap: 4px; align-items: center; padding: 10px 10px; text-decoration: none; color: var(--glp-text); border-bottom: 1px solid var(--glp-border); font-size: 0.78rem; }
.glp-h2h-match:last-child { border-bottom: none; }
.glp-h2h-match:hover { background: var(--glp-bg); }
.glp-h2h-date { color: var(--glp-text-muted); font-size: 0.75rem; display: none; }
.glp-h2h-score { text-align: center; font-weight: 700; }
.glp-h2h-match-team { display: flex; align-items: center; gap: 4px; font-size: 0.75rem; overflow: hidden; }
.glp-h2h-match-team--right { justify-content: flex-end; text-align: right; }
.glp-h2h-match-logo .glp-team-logo { width: 20px; height: 20px; font-size: 0.45rem; flex-shrink: 0; }
.glp-h2h-win1 { border-left: 3px solid #0f1b2d; }
.glp-h2h-win2 { border-left: 3px solid #2857a5; }
.glp-h2h-draw { border-left: 3px solid #475569; }

/* Forma druzyn — base = mobile (stacked) */
.glp-forma-row { display: flex; flex-direction: column; gap: 12px; }
.glp-forma-col { flex: 1; min-width: 0; background: var(--glp-card); border: 1px solid var(--glp-border); border-radius: var(--glp-radius); padding: 16px; }
.glp-forma-team-name { font-weight: 700; font-size: 0.85rem; margin-bottom: 12px; text-align: center; }
.glp-forma-dots { display: flex; justify-content: center; gap: 6px; margin-bottom: 12px; }
.glp-forma-dot { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.65rem; font-weight: 700; color: #fff; }
.glp-forma-dot--w { background: var(--glp-green); }
.glp-forma-dot--r { background: #888; }
.glp-forma-dot--p { background: var(--glp-red); }
.glp-forma-match-list { display: flex; flex-direction: column; gap: 4px; }
.glp-forma-match { display: flex; justify-content: space-between; align-items: center; font-size: 0.78rem; padding: 4px 0; border-bottom: 1px solid var(--glp-border); }
.glp-forma-match-score { font-weight: 700; }

/* Kartki meczu — base = mobile (stacked) */
.glp-kartki-row { display: flex; flex-direction: column; gap: 12px; }
.glp-kartki-col { flex: 1; min-width: 0; background: var(--glp-card); border: 1px solid var(--glp-border); border-radius: var(--glp-radius); padding: 16px; }
.glp-kartki-team-name { font-weight: 700; font-size: 0.85rem; margin-bottom: 12px; text-align: center; }
.glp-kartki-list { display: flex; flex-direction: column; gap: 4px; }
.glp-kartki-item { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; padding: 6px 0; border-bottom: 1px solid var(--glp-border); }
.glp-kartka-icon { width: 14px; height: 18px; border-radius: 2px; flex-shrink: 0; }
.glp-kartka-icon--yellow { background: #f5c518; }
.glp-kartka-icon--red { background: #d32f2f; }

/* Sedzia actions */
.glp-sedzia-actions { float: right; display: inline-flex; gap: 4px; align-items: center; }
.glp-sedzia-btn { display: inline-block; }
.glp-sedzia-btn img { width: 20px; height: 20px; vertical-align: middle; }
.glp-sedzia-btn--disabled { opacity: 0.35; pointer-events: none; }
.glp-sedzia-btn--alert img { outline: 2px solid var(--glp-red); border-radius: 2px; }

/* Admin oceny — base = mobile (stacked) */
.glp-admin-oceny-row { display: flex; flex-direction: column; gap: 12px; max-width: 700px; margin: 0 auto; }
.glp-admin-oceny-row > div.S { flex: 1; min-width: 0; width: auto; padding: 12px; }

/* ============================================
   MATCH LINEUP (sklady meczu)
   Base = mobile
   ============================================ */
.glp-match-lineup {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    margin-bottom: 12px;
    overflow: hidden;
    width: 100%;
}
.glp-match-lineups-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: none;
    margin: 0 auto;
}
.glp-match-lineups-row .glp-match-lineup {
    flex: 1;
    min-width: 0;
}
.glp-match-lineup-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--glp-text);
    background: var(--glp-card);
    border-bottom: 1px solid var(--glp-border);
}
.glp-match-lineup-table {
    width: 100%;
    border-collapse: collapse;
}
.glp-match-lineup-table thead th {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--glp-text-muted);
    padding: 6px 5px;
    background: var(--glp-bg);
    border-bottom: 1px solid var(--glp-border);
    text-align: left;
}
.glp-match-lineup-table tbody tr {
    border-bottom: none;
}
.glp-match-lineup-table tbody td {
    border-bottom: none;
    border-top: 1px solid var(--glp-border);
}
.glp-match-lineup-table td {
    padding: 6px 5px;
    font-size: 0.78rem;
    color: var(--glp-text);
    vertical-align: middle;
}
.glp-lineup-col-nr {
    width: 24px;
    text-align: center;
    color: var(--glp-text-muted);
    font-weight: 600;
    padding: 6px 4px;
    font-size: 0.72rem;
}
.glp-lineup-col-player {
    display: flex;
    align-items: center;
    gap: 5px;
}
.glp-lineup-col-player a {
    color: var(--glp-text);
    text-decoration: none;
    font-size: 0.75rem;
}
.glp-lineup-col-player a:hover {
    color: var(--glp-accent);
}
.glp-lineup-col-player .glp-player-photo {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
.glp-lineup-col-stat {
    width: 28px;
    text-align: center;
    font-weight: 700;
    font-size: 0.75rem;
}
.glp-lineup-col-goals {
    color: var(--glp-accent);
    border-right: 1px solid var(--glp-border);
}
.glp-lineup-col-assists {
    color: #2E7D32;
}
th.glp-lineup-col-stat {
    text-align: center;
}
th.glp-lineup-col-goals {
    border-right: 1px solid var(--glp-border);
}
.glp-lineup-icon {
    height: 14px;
    vertical-align: middle;
}
.glp-lineup-card {
    height: 16px;
    width: auto;
    vertical-align: middle;
    margin: 0 1px;
}
.glp-lineup-card-count {
    font-size: 0.75rem;
    color: var(--glp-text-secondary);
    margin-left: 2px;
    vertical-align: middle;
}
.glp-lineup-col-cards {
    border-left: 1px solid var(--glp-border);
    white-space: nowrap;
}
.glp-match-lineup-mom {
    padding: 10px 16px;
    font-size: 0.8rem;
    color: var(--glp-text-secondary);
    border-top: 1px solid var(--glp-border);
    background: var(--glp-bg);
}
.glp-match-lineup-mom strong {
    color: var(--glp-accent);
}
.glp-match-lineup-empty {
    padding: 20px 16px;
    text-align: center;
    color: var(--glp-text-muted);
    font-size: 0.82rem;
}

/* ============================================
   SCHEDULE (terminarz - karty meczowe)
   Base = mobile
   ============================================ */
.glp-schedule-container {
    margin-bottom: 16px;
    width: 100%;
}
.glp-round-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    text-align: center;
    padding: 10px 12px;
    margin: 16px 0 8px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
}
.glp-round-header:first-child {
    margin-top: 0;
}
.glp-round-header-name {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--glp-text);
    text-transform: uppercase;
}
.glp-round-header-dates {
    font-size: 0.72rem;
    color: var(--glp-text-muted);
    letter-spacing: 0.02em;
}
.glp-schedule-match {
    display: flex;
    align-items: center;
    padding: 8px 10px;
    margin-bottom: 4px;
    background: var(--glp-card);
    border: 1px solid var(--glp-border-light);
    border-radius: var(--glp-radius-sm);
    transition: border-color 0.15s;
    position: relative;
    cursor: pointer;
}
.glp-schedule-match:hover {
    background: var(--glp-accent);
    border-color: var(--glp-accent);
}
.glp-schedule-match:hover .glp-schedule-name,
.glp-schedule-match:hover .glp-schedule-result,
.glp-schedule-match:hover .glp-schedule-result--wo {
    color: #fff;
}
.glp-schedule-match--forced {
    border-left: 3px solid #D32F2F;
}
.glp-schedule-match--pause {
    justify-content: center;
    gap: 12px;
}
.glp-schedule-team {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}
.glp-schedule-team--left {
    justify-content: flex-start;
}
.glp-schedule-team--right {
    justify-content: flex-end;
}
.glp-schedule-logo {
    width: 26px;
    height: 26px;
    border-radius: 4px;
    object-fit: contain;
    flex-shrink: 0;
}
.glp-schedule-name {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--glp-text);
    line-height: 1.3;
}
.glp-schedule-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    min-width: 50px;
    flex-shrink: 0;
    padding: 6px 12px;
    position: static;
}
.glp-schedule-score::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
}
.glp-schedule-result {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--glp-accent);
}
.glp-schedule-result--wo {
    color: #FF7043;
}
.glp-schedule-result--tbd {
    color: var(--glp-text-muted);
}
.glp-schedule-wo {
    font-size: 0.65rem;
    color: var(--glp-text-muted);
}
.glp-schedule-date {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--glp-text-secondary);
}
.glp-schedule-time {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--glp-text);
}
.glp-schedule-venue {
    font-size: 0.7rem;
    color: var(--glp-text-muted);
}
.glp-schedule-pause {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--glp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ============================================
   LOAD MORE (pokaz wiecej)
   ============================================ */
.glp-hidden-card { display: none; }
.glp-load-more-wrap { text-align: center; margin: 16px 0 8px; }
.glp-load-more-btn {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 10px 28px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--glp-text);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.glp-load-more-btn:hover {
    border-color: var(--glp-accent);
    box-shadow: 0 2px 8px rgba(40,87,165,0.1);
}

/* ============================================
   SIDEBAR: Mini wyniki i mini mecze (v7.36)
   ============================================ */
.glp-mini-list {
    display: flex;
    flex-direction: column;
}
.glp-mini-result {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--glp-border-light);
    text-decoration: none;
    color: var(--glp-text);
    font-size: 0.8rem;
    position: relative;
    transition: background 0.12s;
}
.glp-mini-result:hover {
    background: var(--glp-bg);
}
.glp-mini-result-team {
    display: flex;
    align-items: center;
    gap: 5px;
    flex: 1;
    min-width: 0;
}
.glp-mini-result-team--right {
    justify-content: flex-end;
    text-align: right;
}
.glp-mini-result-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
    border-radius: 2px;
}
.glp-mini-result-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
    line-height: 1.2;
}
.glp-mini-result-score {
    flex-shrink: 0;
    font-weight: 700;
    min-width: 36px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    color: var(--glp-text);
}
.glp-mini-result-score--vs {
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--glp-text-muted);
    text-transform: uppercase;
}

/* Mini badge */
.glp-mini-badge {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
}
.glp-mini-badge--liga1 { background: var(--glp-liga1); }
.glp-mini-badge--liga2 { background: var(--glp-liga2); }
.glp-mini-badge--puchar { background: var(--glp-puchar); }
.glp-mini-badge--baraze { background: var(--glp-baraze); }

/* Mini mecz */
.glp-mini-match {
    flex-wrap: wrap;
}
.glp-mini-match-date {
    width: 100%;
    font-size: 0.7rem;
    color: var(--glp-text-muted);
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* Ikona sedziego w mini meczu */
.glp-mini-referee-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    opacity: 0.5;
}

/* Pusta lista */
.glp-mini-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--glp-text-muted);
    font-size: 0.82rem;
}

/* Stopka mini-listy */
.glp-mini-footer {
    display: block;
    text-align: center;
    padding: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--glp-accent);
    border-top: 1px solid var(--glp-border);
    text-decoration: none;
    transition: background 0.12s;
}
.glp-mini-footer:hover {
    background: var(--glp-bg);
    color: var(--glp-accent-hover);
}


/* ============================================
   TABLET — min-width: 641px
   ============================================ */
@media (min-width: 641px) {

    /* Referee grid: 3 cols */
    .glp-referees-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }
    .glp-referee-card { padding: 24px 16px 20px; }
    .glp-referee-card-photo { width: 88px; height: 88px; }

    /* User filters: row layout */
    .glp-users-filters-form {
        flex-direction: row;
        align-items: center;
    }
    .glp-users-filter-btns {
        width: auto;
    }
    .glp-users-filter-btn {
        flex: none;
        text-align: center;
    }

    /* User row: inline stats */
    .glp-user-row {
        flex-wrap: nowrap;
    }
    .glp-user-row-stats {
        width: auto;
        margin-left: auto;
        margin-top: 0;
    }

    /* Panel bar */
    .glp-panel-bar-inner { padding: 6px 20px; gap: 2px; }
    .glp-panel-bar-spacer { display: block; width: 40px; margin-right: 24px; }
    .glp-panel-bar-link { padding: 5px 10px; font-size: 0.75rem; }
    .glp-panel-bar-link--logout { margin-left: auto; }

    /* Teams showcase */
    .glp-teams-showcase { padding: 24px 28px 20px; }
    .glp-teams-showcase-logos { gap: 20px; }
    .glp-teams-showcase-item { width: 64px; height: 64px; }
    .glp-teams-showcase-initials { width: 54px; height: 54px; font-size: 1rem; }

    /* Match lineups: side by side */
    .glp-match-lineups-row { flex-direction: row; }

    /* Forma/kartki/admin oceny: side by side */
    .glp-forma-row,
    .glp-kartki-row,
    .glp-admin-oceny-row { flex-direction: row; }

    /* Schedule */
    .glp-schedule-match { padding: 12px 20px; }
    .glp-schedule-logo { width: 36px; height: 36px; }
    .glp-schedule-name { font-size: 0.88rem; }
    .glp-schedule-score { min-width: 80px; }
    .glp-schedule-result { font-size: 1.1rem; }

    /* Round header */
    .glp-round-header {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
        padding: 12px 16px;
    }

    /* Lineup table */
    .glp-match-lineup-header { padding: 12px 16px; font-size: 0.85rem; }
    .glp-match-lineup-table td { padding: 8px 10px; font-size: 0.82rem; }
    .glp-match-lineup-table thead th { padding: 8px 10px; font-size: 0.7rem; }
    .glp-lineup-col-nr { width: 36px; padding: 8px 10px; font-size: 0.82rem; }
    .glp-lineup-col-player { gap: 8px; }
    .glp-lineup-col-player a { font-size: 0.82rem; }
    .glp-lineup-col-player .glp-player-photo { width: 28px; height: 28px; }
    .glp-lineup-col-stat { width: 40px; font-size: 0.82rem; }
}


/* ============================================
   DESKTOP — min-width: 1025px
   ============================================ */
@media (min-width: 1025px) {

    /* Referee grid: 4 cols */
    .glp-referees-grid { grid-template-columns: repeat(4, 1fr); }

    /* Match header */
    .glp-match-header {
        padding: 24px 40px 20px;
        max-width: 700px;
    }
    .glp-match-header-info {
        flex-direction: row;
        gap: 0;
        font-size: 0.72rem;
        margin-bottom: 20px;
        text-align: center;
    }
    .glp-match-header-teams { gap: 32px; margin-bottom: 16px; }
    .glp-match-header-team { gap: 8px; }
    .glp-match-header-logo { width: 56px; height: 56px; }
    .glp-match-header-team .glp-team-logo { width: 56px; height: 56px; font-size: 0.85rem; }
    .glp-match-header-name { font-size: 0.85rem; }
    .glp-match-header-score-num { font-size: 2.5rem; }
    .glp-match-header-score { min-width: 120px; padding: 0 12px; }
    .glp-match-header-meta { flex-direction: row; gap: 16px; font-size: 0.78rem; }

    /* Tabs */
    .glp-md-tabs { justify-content: center; gap: 6px; padding: 8px 12px; overflow-x: visible; }
    .glp-md-tab { padding: 8px 18px; font-size: 0.75rem; white-space: normal; }

    /* H2H: 4-col grid with date */
    .glp-h2h-match { grid-template-columns: 72px 1fr 50px 1fr; gap: 8px; padding: 10px 16px; font-size: 0.82rem; }
    .glp-h2h-date { display: block; }
    .glp-h2h-match-team { gap: 6px; font-size: 0.82rem; }
    .glp-h2h-match-logo .glp-team-logo { width: 22px; height: 22px; font-size: 0.5rem; }

    /* H2H summary: full size */
    .glp-h2h-summary { gap: 16px; padding: 20px 16px; }
    .glp-h2h-summary-teams { gap: 20px; }
    .glp-h2h-summary-logo .glp-team-logo { width: 40px; height: 40px; font-size: 0.7rem; }
    .glp-h2h-summary-name { font-size: 0.8rem; }
    .glp-h2h-summary-vs { font-size: 0.7rem; }
    .glp-h2h-bar { height: 32px; }
    .glp-h2h-bar-labels { font-size: 0.65rem; }
    .glp-h2h-bar-seg { font-size: 0.82rem; }
}

/* ============================================
   FORMULARZE LOGOWANIA / REJESTRACJI — mobile-first
   ============================================ */

/* Autofill override — usun zolte tlo przegladarki */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color: var(--glp-text) !important;
    border: 1px solid var(--glp-border) !important;
    transition: background-color 5000s ease-in-out 0s;
}

/* Formularz logowania i rejestracji — kontener */
div.M form,
div.L div.form form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 420px;
}

/* Inputy w formularzach */
div.M form input[type=email],
div.M form input[type=password],
div.L div.form input[type=email],
div.L div.form input[type=text],
div.L div.form input[type=password] {
    width: 100%;
    max-width: 100%;
    padding: 12px 14px;
    font-size: 16px;
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    background: #fff;
}

/* Submit w formularzach — pelna szerokosc na mobile */
div.M form input[type=submit],
div.L div.form input[type=submit] {
    width: 100%;
    max-width: 420px;
    padding: 14px 24px;
    font-size: 15px !important;
    border-radius: var(--glp-radius-sm);
}

/* Ukryj BR w formularzach (uzywamy gap zamiast br) */
div.M form br,
div.L div.form form br {
    display: none;
}

/* Rejestracja: hinty pod inputami */
div.L div.form span.hint {
    display: block;
    margin-top: -4px;
    margin-bottom: 4px;
    font-size: 0.78rem;
    line-height: 1.4;
}

/* Rejestracja: label z checkboxem */
div.L div.form label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.88rem;
    line-height: 1.4;
    cursor: pointer;
}
div.L div.form label input[type=checkbox] {
    margin-top: 3px;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

/* Linki pod formularzem logowania */
div.M a.S {
    font-size: 0.88rem;
    font-weight: 500;
}

@media (min-width: 641px) {
    div.M form input[type=submit],
    div.L div.form input[type=submit] {
        width: auto;
    }
}

/* ==========================================================================
   STATS DASHBOARD (stats.php)
   ========================================================================== */

/* --- Chart color palette --- */
:root {
    --glp-chart-1: #3b82f6;
    --glp-chart-2: #10b981;
    --glp-chart-3: #f59e0b;
    --glp-chart-4: #ef4444;
    --glp-chart-5: #8b5cf6;
    --glp-chart-6: #ec4899;
    --glp-chart-7: #06b6d4;
}

/* --- 1. KPI Hero Cards --- */
.glp-kpi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 24px;
    width: 100%;
}
/* Przy 5 kartach na mobile: 3+2 zamiast 2+2+1 */
.glp-kpi-grid .glp-kpi-card:nth-child(5) {
    grid-column: 1 / -1;
}
.glp-kpi-card {
    background: var(--glp-card);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    padding: 16px 12px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.glp-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.glp-kpi-icon {
    font-size: 1.5rem;
    line-height: 1;
    margin-bottom: 4px;
}
.glp-kpi-value {
    font-family: 'Montserrat', sans-serif;
    font-size: 2rem;
    font-weight: 800;
    color: var(--glp-accent);
    line-height: 1.1;
}
.glp-kpi-label {
    font-size: 0.75rem;
    color: var(--glp-text-muted);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.glp-kpi-sub {
    font-size: 0.65rem;
    color: var(--glp-text-muted);
    margin-top: 2px;
}

/* --- 2. Charts Section --- */
.glp-charts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 24px;
    width: 100%;
}
/* 2-kolumnowy grid (boiska + dni) */
.glp-charts-grid--2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 24px;
    width: 100%;
}
.glp-chart-card {
    background: var(--glp-card);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
}
.glp-chart-card-header {
    background: var(--glp-black);
    color: #ffffff;
    padding: 12px 16px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
    gap: 8px;
}
.glp-chart-canvas-wrap {
    padding: 12px;
    max-height: 280px;
    position: relative;
}
.glp-chart-canvas-wrap canvas {
    width: 100%;
    height: auto;
    display: block;
}

/* --- 3. Horizontal Bar Stats --- */
.glp-hbar-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 16px;
}
.glp-hbar-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
.glp-hbar-label {
    font-size: 0.8rem;
    color: var(--glp-text);
    min-width: 110px;
    flex-shrink: 0;
    text-align: right;
}
.glp-hbar-track {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: var(--glp-border);
    overflow: hidden;
}
.glp-hbar-fill {
    height: 6px;
    border-radius: 3px;
    background: var(--glp-accent);
    transition: width 0.4s ease;
}
.glp-hbar-value {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--glp-text);
    min-width: 40px;
    text-align: right;
    flex-shrink: 0;
}

/* --- 4. Ranking wszechczasów (wystepy/bramki/asysty) --- */
.glp-alltime-list {
    padding: 0;
}
.glp-alltime-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--glp-border);
    font-size: 0.85rem;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
}
.glp-alltime-item:hover {
    background: var(--glp-bg);
}
.glp-alltime-item:last-child {
    border-bottom: none;
}
.glp-alltime-item .glp-stats-pos {
    min-width: 26px;
}
.glp-alltime-item .glp-stats-name {
    flex: 1;
    min-width: 0;
}
.glp-alltime-item .glp-stats-name a {
    color: var(--glp-text);
    text-decoration: none;
    font-weight: 600;
}
.glp-alltime-item .glp-stats-name a:hover {
    color: var(--glp-accent);
}
.glp-alltime-badges {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
    align-items: center;
}
.glp-alltime-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    border-radius: 4px;
    padding: 2px 8px;
    font-weight: 700;
    font-size: 0.75rem;
    line-height: 1.3;
    color: #fff;
}
.glp-alltime-badge--matches { background: var(--glp-accent); }
.glp-alltime-badge--goals { background: #ef4444; }
.glp-alltime-badge--assists { background: #f59e0b; }
.glp-alltime-badge--mom { background: #10b981; }
.glp-alltime-badge-icon { font-size: 0.7rem; }

/* Ranking na pełną szerokość */
.glp-alltime-card {
    background: var(--glp-card);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
    margin-bottom: 24px;
    width: 100%;
}
.glp-alltime-card .glp-chart-card-header {
    background: var(--glp-black);
}

/* --- 6. Stats Grid Override (stats.php — pełna lista) --- */
.glp-stats-grid--full .glp-stats-list {
    max-height: none;
}

/* --- Tablet (≥641px) --- */
@media (min-width: 641px) {
    .glp-kpi-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 16px;
    }
    .glp-kpi-grid .glp-kpi-card:nth-child(5) {
        grid-column: auto;
    }
    .glp-kpi-card {
        padding: 20px 16px;
    }
    .glp-charts-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    .glp-charts-grid--2 {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
    .glp-alltime-badge { font-size: 0.8rem; padding: 3px 10px; }
}

/* --- Desktop (≥1025px) --- */
@media (min-width: 1025px) {
    .glp-kpi-grid {
        grid-template-columns: repeat(5, 1fr);
    }
    .glp-kpi-value {
        font-size: 2.5rem;
    }
    .glp-charts-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }
    .glp-charts-grid--2 {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .glp-chart-canvas-wrap {
        max-height: 320px;
    }
}

/* ============================================
   LOGI AKTYWNOŚCI - TIMELINE
   ============================================ */

/* Filtry */
.glp-log-filters {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    padding: 12px;
    margin-bottom: 16px;
    box-shadow: var(--glp-shadow);
}
.glp-log-filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.glp-log-date {
    background: var(--glp-bg);
    color: var(--glp-text);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    padding: 8px 10px;
    font-size: 0.85em;
    font-family: 'Poppins', sans-serif;
    min-width: 120px;
    max-width: 160px;
}
.glp-log-btn {
    background: var(--glp-accent);
    color: #fff;
    border: none;
    border-radius: var(--glp-radius-sm);
    padding: 8px 16px;
    font-size: 0.85em;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.glp-log-btn:hover { background: var(--glp-accent-hover); }

/* Filtr typów - toggle + checkboxy */
.glp-log-filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 6px 12px;
    font-size: 0.82em;
    font-weight: 600;
    color: var(--glp-text-secondary);
    cursor: pointer;
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius-sm);
    background: var(--glp-bg);
    user-select: none;
    transition: color 0.15s;
}
.glp-log-filter-toggle:hover { color: var(--glp-accent); }
.glp-log-toggle-arrow { font-size: 0.7em; transition: transform 0.2s; }
.glp-log-filter-toggle.open .glp-log-toggle-arrow { transform: rotate(180deg); }
.glp-log-filter-badge {
    background: var(--glp-accent);
    color: #fff;
    font-size: 0.78em;
    padding: 1px 7px;
    border-radius: 10px;
    font-weight: 700;
}
.glp-log-checkboxes {
    display: none;
    margin-top: 8px;
    padding: 10px 12px;
    background: var(--glp-bg);
    border: 1px solid var(--glp-border-light);
    border-radius: var(--glp-radius-sm);
}
.glp-log-checkboxes.open { display: block; }
.glp-log-checkboxes-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 12px;
}
.glp-log-checkbox-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82em;
    color: var(--glp-text);
    cursor: pointer;
    padding: 3px 0;
}
.glp-log-checkbox-label input[type="checkbox"] {
    accent-color: var(--glp-accent);
    width: 15px;
    height: 15px;
    margin: 0;
    cursor: pointer;
}
.glp-log-checkbox-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.glp-log-checkboxes-actions {
    display: flex;
    gap: 12px;
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--glp-border-light);
}
.glp-log-checkboxes-actions a {
    font-size: 0.78em;
    color: var(--glp-accent);
    text-decoration: none;
}
.glp-log-checkboxes-actions a:hover { text-decoration: underline; }

/* Timeline */
.glp-log-timeline {
    position: relative;
    padding-left: 28px;
}
.glp-log-timeline::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--glp-border);
}

/* Separator daty */
.glp-log-date-separator {
    position: relative;
    background: var(--glp-bg);
    color: var(--glp-text-secondary);
    font-size: 0.78em;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 12px;
    margin: 16px 0 8px -28px;
    padding-left: 28px;
    border-bottom: 1px solid var(--glp-border-light);
}

/* Pojedynczy wpis */
.glp-log-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px 10px 0;
    background: var(--glp-card);
    border-bottom: 1px solid var(--glp-border-light);
}
.glp-log-dot {
    position: absolute;
    left: -24px;
    top: 16px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--glp-card);
    flex-shrink: 0;
}
.glp-log-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
}
.glp-log-icon img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}
.glp-log-content {
    flex: 1;
    min-width: 0;
}
.glp-log-text {
    color: var(--glp-text);
    font-size: 0.88em;
    line-height: 1.4;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}
.glp-log-foto .glp-player-photo {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    vertical-align: middle;
}
.glp-log-herb img,
.glp-log-herb .glp-team-logo {
    width: 20px;
    height: 20px;
    vertical-align: middle;
}
.glp-log-link {
    text-decoration: none;
    font-size: 0.85em;
    opacity: 0.5;
    transition: opacity 0.15s;
    margin-left: 2px;
}
.glp-log-link:hover { opacity: 1; }
.glp-log-time {
    color: var(--glp-text-muted);
    font-size: 0.75em;
    margin-top: 2px;
}
.glp-log-empty {
    text-align: center;
    color: var(--glp-text-muted);
    padding: 40px 16px;
    font-size: 0.9em;
}

/* Tablet+ */
@media (min-width: 641px) {
    .glp-log-filters-row { flex-wrap: nowrap; }
    .glp-log-text { font-size: 0.92em; }
    .glp-log-checkboxes-grid { grid-template-columns: 1fr 1fr 1fr; }
}

/* ============================================
   KARIERA — tabela cross-sezonowa (FlashScore)
   ============================================ */
.glp-career-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 16px;
}
.glp-career-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85em;
    background: var(--glp-card);
    border-radius: var(--glp-radius);
    overflow: hidden;
    box-shadow: var(--glp-shadow);
}
.glp-career-table thead {
    background: var(--glp-blue);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 0.85em;
    text-transform: uppercase;
}
.glp-career-table th {
    padding: 10px 8px;
    text-align: center;
    white-space: nowrap;
}
.glp-career-table th:nth-child(1),
.glp-career-table th:nth-child(2),
.glp-career-table th:nth-child(3) {
    text-align: left;
}
.glp-career-table td {
    padding: 8px;
    text-align: center;
    border-bottom: 1px solid var(--glp-border-light);
}
.glp-career-sezon {
    font-weight: 600;
    color: var(--glp-text-secondary);
    white-space: nowrap;
}
.glp-career-team {
    text-align: left !important;
    white-space: nowrap;
    font-weight: 500;
}
.glp-career-team .glp-team-logo,
.glp-career-team img {
    width: 20px;
    height: 20px;
    vertical-align: middle;
    margin-right: 4px;
}
.glp-career-liga {
    text-align: left !important;
    color: var(--glp-text-muted);
    font-size: 0.9em;
}
.glp-career-bold {
    font-weight: 700;
}
.glp-career-icon {
    height: 16px;
    vertical-align: middle;
    filter: brightness(0) invert(1);
}
.glp-career-total {
    background: var(--glp-bg);
    font-weight: 700;
    border-top: 2px solid var(--glp-border);
}
.glp-career-total td {
    border-bottom: none;
}

/* Mobile: scroll horizontal */
@media (max-width: 640px) {
    .glp-career-table { font-size: 0.8em; min-width: 500px; }
}

/* ============================================
   BOTTOM NAVIGATION BAR (mobile only) — v7.48
   ============================================ */

.glp-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: flex-end;
    justify-content: space-around;
    background: var(--glp-card);
    box-shadow: 0 -2px 8px rgba(0,0,0,0.1);
    border-top: 1px solid var(--glp-border-light);
    padding: 6px 0 max(6px, env(safe-area-inset-bottom));
    height: auto;
}

.glp-bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-decoration: none;
    color: var(--glp-text-muted);
    font-size: 0.65em;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    padding: 4px 0;
    transition: color 0.2s;
    -webkit-tap-highlight-color: transparent;
}
.glp-bn-icon {
    width: 24px;
    height: 24px;
    color: #8899b0;
    transition: color 0.2s;
}
.glp-bottom-nav-item.active,
.glp-bottom-nav-item:hover {
    color: var(--glp-accent);
}
.glp-bottom-nav-item.active .glp-bn-icon,
.glp-bottom-nav-item:hover .glp-bn-icon {
    color: var(--glp-accent);
}

/* Środkowy przycisk — okrągły, wypływający */
.glp-bottom-nav-center {
    position: relative;
    margin-top: -18px;
}
.glp-bottom-nav-center .glp-bn-icon,
.glp-bottom-nav-center.active .glp-bn-icon,
.glp-bottom-nav-center:hover .glp-bn-icon,
.glp-bottom-nav-center:visited .glp-bn-icon {
    width: 28px;
    height: 28px;
    color: #ffffff !important;
}
.glp-bottom-nav-center::before {
    content: '';
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 56px;
    height: 56px;
    background: var(--glp-blue);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(40,87,165,0.35);
    z-index: -1;
}
.glp-bottom-nav-center span {
    color: var(--glp-accent);
    font-weight: 600;
    margin-top: 18px;
}

/* Padding na dole treści, żeby nie było zasłonięte */
#content { padding-bottom: 72px; }

/* Desktop: ukryj bottom nav, przywróć padding */
@media (min-width: 1025px) {
    .glp-bottom-nav { display: none; }
    #content { padding-bottom: 0; }
}

/* Na stronie logowania nie pokazuj bottom nav */
.glp-login-page .glp-bottom-nav { display: none; }


/* ============================================
   FULLSCREEN LOGIN PAGE — v7.48
   ============================================ */

.glp-login-fullscreen {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(160deg, #0a1628 0%, #132a52 40%, #1e4280 80%, #2857a5 100%);
}

.glp-login-logo-link {
    display: block;
    margin-bottom: 16px;
}
.glp-login-logo {
    width: 120px;
    height: auto;
    display: block;
}

.glp-login-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 1.3em;
    color: #ffffff;
    text-align: center;
    margin: 0 0 32px 0;
    letter-spacing: 0.5px;
}

.glp-login-message {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 8px;
    color: #ffffff;
    padding: 12px 20px;
    margin-bottom: 20px;
    font-size: 0.9em;
    text-align: center;
    max-width: 400px;
    width: 90%;
    backdrop-filter: blur(4px);
}

.glp-login-close {
    position: absolute;
    top: max(16px, env(safe-area-inset-top));
    right: 16px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    text-decoration: none;
    transition: background 0.2s;
    z-index: 10;
}
.glp-login-close:hover {
    background: rgba(255,255,255,0.2);
}

.glp-login-form {
    max-width: 400px;
    width: 90%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.glp-login-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.glp-login-label {
    color: rgba(255,255,255,0.7);
    font-size: 0.82em;
    font-weight: 500;
    padding-left: 4px;
}

.glp-login-input {
    width: 100%;
    padding: 14px 18px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,0.15);
    background: #0d1628 !important;
    color: #ffffff !important;
    font-family: 'Poppins', sans-serif;
    font-size: 1em;
    outline: none;
    transition: border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
}
.glp-login-input::placeholder {
    color: rgba(255,255,255,0.35);
}
.glp-login-input:focus {
    border-color: rgba(255,255,255,0.4);
    background: #111d35 !important;
}
/* Override browser autofill */
.glp-login-input:-webkit-autofill,
.glp-login-input:-webkit-autofill:hover,
.glp-login-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #0d1628 inset !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: rgba(255,255,255,0.25);
    transition: background-color 5000s ease-in-out 0s;
}

.glp-login-submit {
    width: 100%;
    padding: 14px;
    border-radius: 10px;
    border: none;
    background: var(--glp-blue-light);
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 1em;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    margin-top: 4px;
}
.glp-login-submit:hover {
    background: #4a80d0;
}
.glp-login-submit:active {
    transform: scale(0.98);
}

.glp-login-fullscreen .glp-login-links {
    margin-top: 20px;
    display: flex;
    gap: 24px;
    justify-content: center;
    border-top: none;
    padding-top: 0;
}
.glp-login-fullscreen .glp-login-links a {
    color: rgba(255,255,255,0.7);
    font-size: 0.85em;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}
.glp-login-fullscreen .glp-login-links a:hover {
    color: #ffffff;
}

@media (min-width: 641px) {
    .glp-login-logo { width: 140px; }
    .glp-login-title { font-size: 1.5em; }
}


/* ============================================
   MECZE.PHP — mobile upcoming matches — v7.48
   ============================================ */

.glp-mecze-mobile-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}
.glp-mecze-mobile-list .glp-result-card {
    width: 100%;
    min-width: unset;
}
.glp-mecze-mobile-list .glp-hidden-card {
    display: flex;
}
.glp-wyniki-mobile-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}
.glp-wyniki-mobile-list .glp-result-card {
    width: 100%;
    min-width: unset;
}
.glp-wyniki-mobile-list .glp-hidden-card {
    display: flex;
}
.glp-mecze-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--glp-text-muted);
    font-size: 0.95em;
}
.glp-mecze-link {
    display: inline-block;
    margin-top: 12px;
    color: var(--glp-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ==========================================
   TRANSFERY ZESPOŁU — sekcja na karcie drużyny
   ========================================== */
.glp-transfers-section {
    margin-bottom: 24px;
}
.glp-transfer-group {
    margin-bottom: 16px;
}
.glp-transfer-group-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.03em;
    padding: 6px 12px;
    border-radius: var(--glp-radius-sm);
    margin-bottom: 8px;
}
.glp-transfer-in-title {
    color: var(--glp-green);
    background: rgba(22, 163, 74, 0.08);
}
.glp-transfer-out-title {
    color: var(--glp-red);
    background: rgba(220, 38, 38, 0.08);
}
.glp-transfer-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
a.glp-transfer-card {
    background: var(--glp-card);
    border: 1px solid var(--glp-border);
    border-radius: var(--glp-radius);
    box-shadow: var(--glp-shadow);
    overflow: hidden;
    text-decoration: none;
    color: var(--glp-text);
    transition: transform 0.15s, box-shadow 0.15s;
    display: flex;
    flex-direction: column;
}
a.glp-transfer-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.glp-transfer-card-photo {
    aspect-ratio: 1;
    overflow: hidden;
    background: #f0f0f0;
}
.glp-transfer-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.glp-transfer-card-info {
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.glp-transfer-card-name {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
}
.glp-transfer-club {
    font-size: 0.72rem;
    color: var(--glp-text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.3;
}
.glp-transfer-club .glp-team-logo {
    width: 18px;
    height: 18px;
    min-width: 18px;
    font-size: 0.5rem;
}
.glp-transfer-arrow-in::before {
    content: "←";
    color: var(--glp-green);
    font-weight: 700;
    margin-right: 2px;
}
.glp-transfer-arrow-out::before {
    content: "→";
    color: var(--glp-red);
    font-weight: 700;
    margin-right: 2px;
}

/* Tablet: 3 kolumny */
@media (min-width: 641px) {
    .glp-transfer-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .glp-transfer-card-name { font-size: 0.82rem; }
}
/* Desktop: 5 kolumn */
@media (min-width: 1025px) {
    .glp-transfer-grid { grid-template-columns: repeat(5, 1fr); }
}

/* ============================================
   LIVE SCORE — wynik na żywo
   ============================================ */

/* Wyświetlanie wyniku live na karcie meczu */
.glp-live-score {
    text-align: center;
    padding: 6px 0;
    min-height: 28px;
}
.glp-live-score--empty {
    display: none;
}
.glp-live-score-label {
    display: block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #16a34a;
    font-weight: 600;
}
.glp-live-score-value {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    color: #16a34a;
    line-height: 1.2;
    animation: glpLivePulse 2s ease-in-out infinite;
}
@keyframes glpLivePulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Formularz wpisywania wyniku live */
.glp-live-input-card {
    border: 2px solid #16a34a;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 16px;
    background: #f0fdf4;
    text-align: center;
}
.glp-live-input-title {
    font-size: 1rem;
    font-weight: 700;
    color: #16a34a;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.glp-live-input-teams {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
    margin-bottom: 12px;
}
.glp-live-input-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}
.glp-live-input-team {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--glp-text, #1a1a2e);
    text-align: center;
    word-break: break-word;
    line-height: 1.2;
}
.glp-live-input-num {
    width: 60px;
    height: 60px;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    border: 2px solid #16a34a;
    border-radius: 8px;
    background: #fff;
    color: var(--glp-text, #1a1a2e);
    font-family: 'Montserrat', sans-serif;
    -moz-appearance: textfield;
}
.glp-live-input-num::-webkit-outer-spin-button,
.glp-live-input-num::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.glp-live-input-sep {
    font-size: 1.8rem;
    font-weight: 700;
    align-self: flex-end;
    padding-bottom: 12px;
    color: var(--glp-text, #1a1a2e);
}
.glp-live-input-btn {
    display: block;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    padding: 12px 24px;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    background: #16a34a;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: background 0.2s;
}
.glp-live-input-btn:hover {
    background: #15803d;
}
.glp-live-input-msg {
    margin-top: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    min-height: 20px;
}

/* Karta wyniku live pending (oczekuje na potwierdzenie) */
.glp-result-card--live-pending {
    border: 2px solid #16a34a;
}
.glp-live-pending-label {
    font-size: 0.65rem;
    color: #16a34a;
    font-weight: 600;
    text-align: center;
    padding: 4px 8px 0;
    line-height: 1.3;
}

/* ============================================
   RELACJA LIVE - Timer + Zdarzenia + Relay
   ============================================ */

/* --- Panel sędziego --- */
.glp-relay-panel {
    background: var(--glp-card);
    border: 2px solid #16a34a;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 16px;
}
.glp-relay-panel-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #16a34a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
    text-align: center;
}
.glp-relay-info {
    font-size: 0.75rem;
    color: var(--glp-text-secondary);
    text-align: center;
    margin-bottom: 8px;
}

/* --- Timer --- */
.glp-relay-timer {
    text-align: center;
    margin-bottom: 16px;
}
.glp-relay-timer-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #16a34a;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}
.glp-relay-timer-digits {
    font-size: 3rem;
    font-weight: 800;
    font-family: 'Montserrat', monospace;
    color: var(--glp-text);
    line-height: 1;
    letter-spacing: 0.05em;
}
.glp-relay-timer--running .glp-relay-timer-digits {
    color: #16a34a;
}
.glp-relay-timer--paused .glp-relay-timer-digits {
    color: var(--glp-text-muted);
}
.glp-relay-timer-btns {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 12px;
    flex-wrap: wrap;
}

/* --- Przyciski relay --- */
.glp-relay-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 20px;
    font-size: 0.9rem;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    min-height: 48px;
    min-width: 48px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.glp-relay-btn:active {
    transform: scale(0.96);
}
.glp-relay-btn--start {
    background: #16a34a;
    color: #fff;
}
.glp-relay-btn--start:hover { background: #15803d; }
.glp-relay-btn--stop {
    background: #dc2626;
    color: #fff;
}
.glp-relay-btn--stop:hover { background: #b91c1c; }
.glp-relay-btn--end {
    background: #6b7280;
    color: #fff;
}
.glp-relay-btn--end:hover { background: #4b5563; }
.glp-relay-btn--reset {
    background: #dc2626;
    color: #fff;
    font-size: 0.75rem;
}
.glp-relay-btn--reset:hover { background: #991b1b; }
.glp-relay-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* --- Wynik relay --- */
.glp-relay-score {
    text-align: center;
    margin-bottom: 16px;
}
.glp-relay-score-value {
    font-size: 3rem;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    color: var(--glp-text);
    line-height: 1;
}
.glp-relay-score-teams {
    display: flex;
    justify-content: center;
    gap: 24px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--glp-text-secondary);
    margin-top: 4px;
}

/* --- Panele zawodników (sędzia) --- */
.glp-relay-players {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
}
.glp-relay-team-col {
    background: var(--glp-bg);
    border-radius: 8px;
    padding: 10px;
}
.glp-relay-team-header {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--glp-text-secondary);
    padding-bottom: 8px;
    border-bottom: 2px solid var(--glp-border);
    margin-bottom: 6px;
    text-align: center;
}
.glp-relay-player-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 4px;
    border-bottom: 1px solid var(--glp-border-light);
}
.glp-relay-player-row:last-child { border-bottom: none; }
.glp-relay-player-nr {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--glp-text-muted);
    min-width: 24px;
    text-align: center;
}
.glp-relay-player-name {
    flex: 1;
    font-size: 0.9rem;
    font-weight: 500;
    min-width: 0;
    white-space: normal;
}
.glp-relay-player-actions {
    display: flex;
    gap: 6px;
}
.glp-relay-action-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--glp-card);
    transition: background 0.15s, transform 0.1s;
    padding: 0;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
}
.glp-relay-action-icon:active { transform: scale(0.9); }
.glp-relay-action-icon--gol {
    background: #dcfce7;
    border: 1px solid #86efac;
}
.glp-relay-action-icon--gol:hover, .glp-relay-action-icon--gol:active { background: #bbf7d0; }
.glp-relay-action-icon--zk {
    background: #fef9c3;
    border: 1px solid #fde047;
}
.glp-relay-action-icon--zk:hover, .glp-relay-action-icon--zk:active { background: #fef08a; }
/* Przycisk OG (samobójcza) */
.glp-relay-action-icon--og {
    background: #e5e7eb;
    font-size: 0.65rem;
    font-weight: 800;
    color: #374151;
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
}
.glp-relay-action-icon--og:hover, .glp-relay-action-icon--og:active { background: #d1d5db; }
.glp-relay-action-icon--ck {
    background: #fecaca;
    border: 1px solid #fca5a5;
}
.glp-relay-action-icon--ck:hover, .glp-relay-action-icon--ck:active { background: #fca5a5; }

/* --- Timeline zdarzeń (styl FlashScore) --- */
.glp-tl {
    margin-top: 16px;
    border-top: 1px solid var(--glp-border);
}
.glp-tl-half {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--glp-text-secondary);
    padding: 12px 0 8px;
    letter-spacing: 0.05em;
}
.glp-tl-half--break {
    color: var(--glp-text-muted);
    font-weight: 600;
}
/* Wiersz zdarzenia: 7 stałych kolumn
   nazwa1 | min1 | ikon1 | WYNIK | ikon2 | min2 | nazwa2  [undo]
   Wynik zawsze na środku ekranu, kreska - pod kreską */
.glp-tl-row {
    display: grid;
    grid-template-columns: 1fr 28px 24px 48px 24px 28px 1fr;
    align-items: center;
    min-height: 48px;
    border-bottom: 1px solid var(--glp-border-light);
    padding: 10px 0;
    gap: 0;
    animation: glpTlFadeIn 0.3s ease;
}
@keyframes glpTlFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
.glp-tl-row--gol { background: #f0fdf4; }
.glp-tl-row--zk { background: #fffbeb; }
.glp-tl-row--ck { background: #fef2f2; }

/* Kolumna 1: nazwa team1 (do prawej) */
.glp-tl-c1 {
    text-align: right;
    padding-right: 6px;
    min-width: 0;
}
/* Kolumna 2: minuta team1 */
.glp-tl-c2 { text-align: right; }
/* Kolumna 3: ikona team1 (piłka/kartka) */
.glp-tl-c3 { text-align: center; }
/* Kolumna 4: WYNIK - stały środek */
.glp-tl-c4 { text-align: center; }
/* Kolumna 5: ikona team2 */
.glp-tl-c5 { text-align: center; }
/* Kolumna 6: minuta team2 */
.glp-tl-c6 { text-align: left; }
/* Kolumna 7: nazwa team2 (do lewej) */
.glp-tl-c7 {
    text-align: left;
    padding-left: 6px;
    min-width: 0;
}

/* Nazwisko */
.glp-tl-name {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--glp-text);
    word-break: break-word;
}
/* Minuta */
.glp-tl-min {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--glp-text-muted);
}
/* Piłka (gol) */
.glp-tl-ball {
    font-size: 1.15rem;
    line-height: 1;
}
/* Wynik bieżący */
.glp-tl-score {
    font-size: 0.9rem;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    color: var(--glp-text);
    white-space: nowrap;
}
/* Kartka żółta / czerwona */
.glp-tl-card {
    display: inline-block;
    width: 13px;
    height: 17px;
    border-radius: 2px;
    vertical-align: middle;
}
.glp-tl-card--y { background: #eab308; }
.glp-tl-card--r { background: #dc2626; }
/* Samobójcza (OG) na osi */
.glp-tl-row--og { background: #fef2f2; }
.glp-tl-og {
    font-size: 0.7rem;
    font-weight: 700;
    color: #dc2626;
    margin-left: 2px;
}
/* Undo - absolutnie po prawej */
.glp-tl-undo {
    position: absolute;
    right: 2px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--glp-text-muted);
    cursor: pointer;
    font-size: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
    padding: 0;
}
.glp-tl-undo:hover { background: #fecaca; color: #dc2626; }
/* Row needs relative for undo positioning */
.glp-tl-row { position: relative; }

/* --- Publiczny widok relay --- */
.glp-relay-public {
    padding: 16px 0;
}
.glp-relay-public-timer {
    text-align: center;
    margin-bottom: 12px;
}
.glp-relay-public-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--glp-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.glp-relay-public-digits {
    font-size: 2.5rem;
    font-weight: 800;
    font-family: 'Montserrat', monospace;
    color: var(--glp-text);
    line-height: 1.1;
}
.glp-relay-public-score {
    text-align: center;
    margin-bottom: 16px;
}
.glp-relay-public-score-value {
    font-size: 3.5rem;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    line-height: 1;
}
.glp-relay-public-score-teams {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--glp-text-secondary);
}

/* Zakładka RELACJA w tab bar - podświetlenie */
.glp-md-tab--relay {
    position: relative;
}
.glp-md-tab--relay::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: #dc2626;
    border-radius: 50%;
    margin-left: 4px;
    animation: glpLivePulse 2s ease-in-out infinite;
}

/* Wskaźnik LIVE */
.glp-relay-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #dc2626;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    animation: glpLivePulse 2s ease-in-out infinite;
}
.glp-relay-live-badge::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
}

/* Potwierdzenie akcji (flash) */
.glp-relay-flash {
    animation: glpRelayFlash 0.5s ease;
}
@keyframes glpRelayFlash {
    0% { background: #bbf7d0; }
    100% { background: transparent; }
}

/* Responsywność */
/* Badge "Relacja live" na kartach nadchodzących meczów */
.glp-relay-card-badge {
    text-align: center;
    padding: 10px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.glp-relay-card-score {
    font-size: 1.8rem;
    font-weight: 800;
    font-family: 'Montserrat', sans-serif;
    color: #16a34a;
    line-height: 1.1;
}
.glp-relay-card-link {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--glp-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Przycisk "Testuj relację live" na kartach nadchodzących meczów (admin) */
.glp-relay-test-btn-wrap {
    text-align: center;
    margin: -8px 0 12px 0;
}
.glp-relay-test-btn {
    display: inline-block;
    padding: 6px 16px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #f59e0b;
    border-radius: 6px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: background 0.2s;
}
.glp-relay-test-btn:hover {
    background: #fde68a;
    color: #78350f;
}

/* Timery kar (countdown) */
.glp-relay-penalty-timers {
    margin: 8px 0;
    padding: 8px 12px;
    background: #fefce8;
    border: 1px solid #fde68a;
    border-radius: 8px;
}
.glp-relay-penalty-row {
    font-size: 0.78rem;
    font-weight: 600;
    color: #92400e;
    padding: 3px 0;
}

/* Ukrywanie graczy - przycisk hide/show */
.glp-relay-hide-btn {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--glp-text-muted);
    cursor: pointer;
    font-size: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 2px;
    transition: background 0.15s, color 0.15s;
    padding: 0;
    flex-shrink: 0;
}
.glp-relay-hide-btn:hover { background: #fecaca; color: #dc2626; }
.glp-relay-hide-btn--show { color: #16a34a; }
.glp-relay-hide-btn--show:hover { background: #bbf7d0; color: #15803d; }

/* Sekcja Nieobecni */
.glp-relay-hidden-section {
    margin-top: 4px;
    border-top: 1px dashed var(--glp-border-light);
}
.glp-relay-hidden-toggle {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--glp-text-muted);
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 0;
    text-align: center;
}
.glp-relay-hidden-toggle:hover { color: var(--glp-text-secondary); }
.glp-relay-hidden-list {
    display: none;
    opacity: 0.6;
}
.glp-relay-hidden-list .glp-relay-player-row {
    min-height: 28px;
    padding: 2px 0;
}
.glp-relay-hidden-list.glp-relay-hidden--open { display: block; }

@media (min-width: 641px) {
    .glp-relay-timer-digits { font-size: 4rem; }
    .glp-relay-public-digits { font-size: 3.5rem; }
    .glp-relay-public-score-value { font-size: 4.5rem; }
    .glp-relay-players {
        flex-direction: row;
    }
    .glp-relay-team-col {
        flex: 1;
        min-width: 0;
    }
    .glp-relay-action-icon {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
        font-size: 1.1rem;
    }
    .glp-relay-action-icon--og {
        width: 34px;
        height: 34px;
        min-width: 34px;
        min-height: 34px;
        font-size: 0.7rem;
    }
    .glp-relay-player-name { font-size: 0.82rem; }
}
