/* Archivo változó súlyú webfont, saját kiszolgálásból (nincs külső CDN). */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/archivo-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/archivo-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

* { box-sizing: border-box; }

/* A böngésző `[hidden] { display: none }` szabálya a saját stíluslapunkból
   érkező bármelyik `display`-nek alulmarad. Emiatt a drafttábla szabad-csapat
   keresője némán nem csinált semmit: a `row.hidden = true` beállt, de a
   `.free-team-list li { display: flex }` továbbra is kirajzolta a sort. */
[hidden] { display: none !important; }

/* ---- Színtokenek ----------------------------------------------------------
   A ház alapszíne SÖTÉT: ezt viseli a főoldali tabella, a rangsorok, a Fórum,
   a drafttábla és az ajánlatoldal — a Draft Day-felületek estéjén, nagy
   kijelzőn ez az olvasható. A VILÁGOS kezelés a `.team-page` osztályé: az
   olvasós, referencia jellegű lapoké (csapatoldal, szabálykönyv, menetrend,
   archívum, belépés).

   A tokenek 2026-08-20-án kerültek be. Előtte a közös króm (kártya, mező,
   gomb) fix világos értékekkel dolgozott, ezért egy oldal témát váltani csak
   újraírással tudott. Mostantól az `<body>` osztálya dönt, a szabályok
   változatlanok. Ami NEM token: a jelentést hordozó színek (győzelem/vereség,
   borostyán figyelmeztetés, franchise-színek) — azok mindkét témán ugyanazok.
--------------------------------------------------------------------------- */
:root {
  color-scheme: dark;
  --page-bg: #121316;
  --page-fg: #f2f2f2;
  --surface: #1e2126;
  --surface-line: rgba(255, 255, 255, 0.12);
  --surface-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  --chip-bg: rgba(255, 255, 255, 0.08);
  --field-bg: #15171b;
  --field-line: rgba(255, 255, 255, 0.22);
  --btn-bg: #e9eaec;
  --btn-fg: #16181b;
  --btn-secondary-bg: #5a6472;
  --btn-secondary-fg: #ffffff;
  --danger: #e05545;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--page-bg);
  color: var(--page-fg);
  font-family: "Archivo", system-ui, sans-serif;
  overflow-x: hidden;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: 2.5rem 1fr 2.5rem;
  align-items: center;
  padding: 0.85rem 0.75rem;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(8px);
}

.topbar-title {
  text-align: center;
  font-weight: 600;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
}

.topbar-back {
  color: inherit;
  text-decoration: none;
  font-size: 1.5rem;
  line-height: 1;
  text-align: center;
}

main {
  max-width: 40rem;
  margin: 0 auto;
  padding: 0.75rem 0.75rem 2rem;
}

.empty-note { text-align: center; opacity: 0.7; margin-top: 3rem; }

/* ---- Tabella (főoldal) ---- */

.standings {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.standings-row {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  min-height: 3.3rem;
  padding: 0.4rem 1rem;
  text-decoration: none;
}

.standings li:first-child .standings-row {
  border-radius: 0.55rem 0.55rem 0 0;
}

.standings li:last-child .standings-row {
  border-radius: 0 0 0.55rem 0.55rem;
}

.standings-row .rank {
  width: 1.7rem;
  flex: none;
  font-weight: 400;
  opacity: 0.85;
  font-variant-numeric: tabular-nums;
}

.standings-row .name {
  font-weight: 700;
  font-size: 1.15rem;
  max-width: 50%;
  overflow-wrap: anywhere;
  /* Kontúr a csapat kiegészítő színével (--contour a soron, inline) */
  text-shadow:
    -1px -1px 0 var(--contour, transparent),
    1px -1px 0 var(--contour, transparent),
    -1px 1px 0 var(--contour, transparent),
    1px 1px 0 var(--contour, transparent),
    -1.5px 0 0 var(--contour, transparent),
    1.5px 0 0 var(--contour, transparent),
    0 -1.5px 0 var(--contour, transparent),
    0 1.5px 0 var(--contour, transparent);
}

/* ---- Csapatoldal ---- */

/* A világos téma. A csapatszín csak a felső sávban él; a statisztikák
   világos, semleges háttéren jelennek meg az olvashatóság kedvéért. */
.team-page {
  color-scheme: light;
  --page-bg: #eef0f2;
  --page-fg: #16181b;
  --surface: #ffffff;
  --surface-line: rgba(0, 0, 0, 0.08);
  --surface-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  --chip-bg: rgba(0, 0, 0, 0.06);
  --field-bg: #ffffff;
  --field-line: #c6cbd2;
  --btn-bg: #16181b;
  --btn-fg: #ffffff;
  --btn-secondary-bg: #4d5866;
  --btn-secondary-fg: #ffffff;
  --danger: #c0392b;

  background: var(--page-bg);
  color: var(--page-fg);
}

.team-page .topbar-overlay { background: rgba(0, 0, 0, 0.45); color: #f2f2f2; }

.hero-band {
  margin: -0.75rem calc(50% - 50vw) 0;
  padding: 0.4rem calc(50vw - 50%) 1.8rem;
  border-bottom: 6px solid transparent;
}

.team-hero {
  position: relative;
  z-index: 1;
  text-align: center;
  padding-top: 1.2rem;
}

.team-logo {
  max-width: min(62vw, 17rem);
  max-height: 36vh;
  filter: drop-shadow(0 0.5rem 1.5rem rgba(0, 0, 0, 0.35));
}

.team-name {
  margin: 0.7rem 0 1.4rem;
  font-size: clamp(2.3rem, 9vw, 3.4rem);
  font-weight: 800;
  line-height: 1.05;
}

.score-panel {
  width: 60%;
  min-width: 14rem;
  margin: 0 auto;
  padding: 1.1rem 1rem 1rem;
  border: 3px solid;
  border-radius: 1.1rem;
  background: rgba(0, 0, 0, 0.18);
}

.score-number {
  font-size: clamp(3.6rem, 18vw, 5.6rem);
  font-weight: 800;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.score-label {
  margin-top: 0.45rem;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.25em;
}

.team-motto {
  margin: 1.8rem 0 0;
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
}

.rank-chip {
  display: inline-block;
  margin: -0.5rem 0 1.1rem;
  padding: 0.3rem 0.9rem;
  border-radius: 2rem;
  background: rgba(0, 0, 0, 0.25);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

/* ---- Statisztikai kártyák ---- */

.cards {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin-top: 1.6rem;
}

.card {
  background: var(--surface);
  border-radius: 0.8rem;
  padding: 0.9rem 1.1rem 1rem;
  box-shadow: var(--surface-shadow);
}

.card h2 {
  margin: 0 0 0.6rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.85;
}

.card .empty {
  margin: 0;
  opacity: 0.6;
  font-size: 0.95rem;
}

.chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }

.chip {
  padding: 0.35rem 0.7rem;
  border-radius: 0.5rem;
  background: var(--chip-bg);
  font-size: 0.95rem;
}

.chip b { margin-left: 0.3rem; }


.stat-line { margin: 0.2rem 0; }

.card-note { margin: 0.5rem 0 0; font-size: 0.8rem; opacity: 0.55; }

.roster { list-style: none; margin: 0; padding: 0; }

.roster li {
  display: flex;
  align-items: baseline;
  gap: 0.7rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--surface-line);
}

.roster li:last-child { border-bottom: none; }

.roster-league { width: 1.4rem; font-weight: 800; opacity: 0.85; }

.roster-team { flex: 1; font-weight: 600; }

.roster-empty { font-weight: 400; opacity: 0.5; font-style: italic; }

.roster-cost::after { content: " ★"; }

.stars-big { margin: 0 0 0.5rem; font-size: 1.9rem; font-weight: 800; }



.plain-list { list-style: none; margin: 0; padding: 0; }

.plain-list li { padding: 0.22rem 0; }

.form-dot {
  display: inline-block;
  min-width: 1.7rem;
  padding: 0.1rem 0.3rem;
  border-radius: 0.4rem;
  text-align: center;
  font-weight: 800;
  font-size: 0.8rem;
  color: #fff;
}

.form-gy { background: #1d8a3c; }
.form-d { background: #6f6f6e; }
.form-v { background: #c0242c; }

.trade-list { list-style: none; margin: 0; padding: 0; }

.trade-list > li { padding: 0.4rem 0; }

.trade-date { font-weight: 700; font-size: 0.85rem; opacity: 0.8; }


/* ---- Draft tábla ---- */

.flash-list { list-style: none; margin: 0 0 0.8rem; padding: 0; }

.flash {
  margin: 0.35rem 0;
  padding: 0.6rem 0.9rem;
  border-radius: 0.6rem;
  font-weight: 600;
  font-size: 0.92rem;
  background: var(--surface);
  box-shadow: var(--surface-shadow);
}

.flash-success { border-left: 5px solid #1d8a3c; }
.flash-error { border-left: 5px solid var(--danger); }

.staff-panel { margin-bottom: 0.9rem; border: 2px solid var(--page-fg); }

.pick-form { display: flex; flex-direction: column; gap: 0.6rem; }

.pick-form-lead { margin: 0; font-weight: 700; }

.pick-form label { display: flex; flex-direction: column; gap: 0.25rem; font-weight: 600; font-size: 0.9rem; }

.pick-form input[type="search"],
.pick-form input:not([type]),
.pick-form input[list],
.pick-form select,
.team-filter-bar input {
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--field-line);
  border-radius: 0.5rem;
  font: inherit;
  background: var(--field-bg);
  color: inherit;
}


.pick-form button,
.staff-actions button {
  padding: 0.6rem 1rem;
  border: none;
  border-radius: 0.55rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  background: var(--btn-bg);
  color: var(--btn-fg);
}

.staff-actions { display: flex; gap: 0.6rem; margin-top: 0.7rem; flex-wrap: wrap; }

.staff-actions .btn-secondary { background: var(--btn-secondary-bg); color: var(--btn-secondary-fg); }
.staff-actions .btn-danger { background: #c0392b; color: #ffffff; }

.team-filter-bar input { width: 100%; box-sizing: border-box; }

#draft-live,
#live-main,
#live-teams { display: flex; flex-direction: column; gap: 0.7rem; }

.pick-hero {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.9rem 1rem;
  border-radius: 0.7rem;
  text-align: center;
}

.pick-number { font-size: 1rem; font-weight: 700; opacity: 0.85; }

.pick-holder { font-size: 1.6rem; font-weight: 800; line-height: 1.1; }

.pick-meta { font-size: 0.85rem; font-weight: 600; opacity: 0.85; }

.next-picks { margin-top: 0.6rem; font-size: 0.9rem; opacity: 0.8; }

.pick-no {
  display: inline-block;
  min-width: 2.4rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.draft-grid-wrap { overflow-x: auto; }

.draft-grid {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
}

.draft-grid th,
.draft-grid td {
  padding: 0.3rem 0.35rem;
  text-align: center;
  border-bottom: 1px solid var(--surface-line);
}

.draft-grid thead th { font-size: 0.75rem; letter-spacing: 0.05em; opacity: 0.7; }

.draft-grid .dg-name { text-align: left; font-weight: 600; white-space: nowrap; }


.draft-grid .dg-empty { opacity: 0.3; }

.future-pick-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.6rem; }

.assignment-table td:nth-child(2) { text-align: left; font-weight: 600; }

.assignment-table .tie-row { background: rgba(255, 196, 0, 0.12); }

.assignment-table form { display: inline; }

.assignment-table button { padding: 0.1rem 0.5rem; }

.free-team-list li { display: flex; align-items: baseline; gap: 0.4rem; flex-wrap: wrap; }

.ft-game { font-size: 0.82rem; opacity: 0.55; }

.ft-flag { cursor: help; }

.topbar-link {
  color: inherit;
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
  opacity: 0.75;
}

/* ---- Sorsolás és menetrend ---- */

.card-sub {
  margin: 0.9rem 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.6;
}

.drawn-badge {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.15rem 0.55rem;
  border-radius: 1rem;
  background: #1d8a3c;
  color: #ffffff;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
}

.rights-list li { padding: 0.28rem 0; }

.inline-form { display: inline; }

.btn-link {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 0.85rem;
  color: var(--danger);
  text-decoration: underline;
  cursor: pointer;
}

.choice-form, .draw-form {
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--surface-line);
}

.schedule-meta { margin: 0.2rem 0 0; font-size: 0.9rem; opacity: 0.75; }

.schedule-list li.schedule-row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.34rem 0;
  border-bottom: 1px solid var(--surface-line);
}

.schedule-list li.schedule-row:last-child { border-bottom: none; }

.sched-teams { flex: 1; }

.sched-mgr { font-size: 0.8rem; opacity: 0.55; }

.sched-result { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }

.sched-blank { font-weight: 400; opacity: 0.4; }

.choice-mark { color: #b8860b; cursor: help; }

.print-header { display: none; }

.print-btn { border: none; background: none; cursor: pointer; font-family: inherit; }

@media print {
  body { background: #ffffff !important; color: #000000 !important; }
  .topbar, .flash-list { display: none !important; }
  .print-header {
    display: flex;
    justify-content: space-between;
    padding: 0 0 0.5rem;
    border-bottom: 2px solid #000;
    margin-bottom: 0.6rem;
  }
  main { max-width: none; padding: 0; }
  .cards { gap: 0.4rem; margin-top: 0.4rem; }
  .card {
    box-shadow: none;
    border: 1px solid #999;
    border-radius: 0;
    padding: 0.45rem 0.7rem;
    break-inside: avoid;
  }
  .schedule-meta { margin-bottom: 0.4rem; }
}

/* ---- Szabálykönyv ---- */

.rulebook-content { line-height: 1.55; }

.rulebook-content h1 {
  margin: 1.6rem 0 0.6rem;
  font-size: 1.25rem;
  padding-bottom: 0.25rem;
  border-bottom: 2px solid #e4e7ea;
}

.rulebook-content h1:first-child { margin-top: 0; }

.rulebook-content h2 { margin: 1.2rem 0 0.4rem; font-size: 1.05rem; }

.rulebook-content h1[id],
.rulebook-content h2[id] { scroll-margin-top: 4rem; }

.rulebook-content p { margin: 0.5rem 0; }

.rulebook-content ul { margin: 0.5rem 0 0.5rem 1.2rem; }

.rulebook-content li { margin: 0.25rem 0; }

.rulebook-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.6rem 0;
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}

.rulebook-content th,
.rulebook-content td {
  padding: 0.3rem 0.5rem;
  border: 1px solid #e4e7ea;
  text-align: left;
}

.rulebook-content thead th { background: #f4f6f8; }

.rulebook-content blockquote {
  margin: 0.7rem 0;
  padding: 0.5rem 0.8rem;
  border-left: 4px solid #b8860b;
  background: rgba(184, 134, 11, 0.07);
  border-radius: 0 6px 6px 0;
}

.rulebook-content blockquote p { margin: 0.3rem 0; }

.topbar-links { display: flex; gap: 0.7rem; justify-self: end; white-space: nowrap; }

.toc-list { margin: 0 0 0 1.2rem; padding: 0; column-count: 2; column-gap: 2rem; }

.toc-list > li { margin: 0.15rem 0; break-inside: avoid; }

.toc-list ul { list-style: none; margin: 0.1rem 0 0.3rem 0.8rem; padding: 0; font-size: 0.85rem; }

.toc-list a { text-decoration: none; }

.toc-list a:hover { text-decoration: underline; }

.rule-link { white-space: nowrap; }

@media (max-width: 640px) {
  .toc-list { column-count: 1; }
}

@media print {
  .rulebook-toc { display: none !important; }
  .rulebook-page .card { break-inside: auto; border: none; }
}

/* ---- Eredményrögzítés ---- */

.schedule-list li.schedule-row { flex-direction: column; align-items: stretch; gap: 0.2rem; }

.sched-main { display: flex; align-items: baseline; gap: 0.5rem; }

.result-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.3rem 0 0.15rem;
}

.result-form input[type="number"] {
  width: 3.2rem;
  padding: 0.45rem 0.3rem;
  border: 1px solid var(--field-line);
  border-radius: 0.45rem;
  font: inherit;
  text-align: center;
  background: var(--field-bg);
}

.result-form button {
  padding: 0.45rem 0.7rem;
  border: none;
  border-radius: 0.45rem;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  background: var(--btn-bg);
  color: var(--btn-fg);
}

.result-form .btn-dns { background: #8a6d1d; color: #ffffff; }

.result-form .btn-link { background: none; color: #c0392b; text-decoration: underline; font-weight: 500; }

.league-table .dg-name { max-width: 14rem; }

@media print {
  .result-form { display: none !important; }
}

/* ---- Csere rögzítése ---- */

.pair-form { flex-direction: row !important; flex-wrap: wrap; align-items: flex-end; }

.pair-form label { flex: 1; min-width: 9rem; }

.trade-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
}

@media (max-width: 40rem) {
  .trade-cols { grid-template-columns: 1fr; }
}

.trade-side h2 { margin-bottom: 0.8rem; }

.trade-num {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0 0 0.6rem;
  font-weight: 600;
  font-size: 0.9rem;
}

.trade-num input {
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--field-line);
  border-radius: 0.5rem;
  font: inherit;
  background: var(--field-bg);
}

.trade-balance { font-weight: 400; opacity: 0.6; font-size: 0.82rem; }

.check-list { list-style: none; margin: 0 0 0.4rem; padding: 0; }

.check-list li { padding: 0.22rem 0; }

.check-list label { display: flex; align-items: center; gap: 0.45rem; cursor: pointer; }

.check-list input[type="checkbox"] { width: 1.1rem; height: 1.1rem; }


.trade-footer { margin-top: 0.7rem; }

.trade-footer button {
  padding: 0.65rem 1.2rem;
  border: none;
  border-radius: 0.55rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  background: var(--btn-bg);
  color: var(--btn-fg);
}

.trade-item { padding: 0.4rem 0; }

.trade-legs { margin: 0.15rem 0 0 1rem; font-size: 0.88rem; opacity: 0.8; }

.staff-panel-link { float: right; font-size: 0.8rem; font-weight: 600; color: inherit; }

/* ---- Választás-rögzítő mátrix (rövidített liga, 0.5) ---- */

.choice-grid td, .choice-grid th { vertical-align: middle; }
.choice-grid .dg-name small { font-weight: 400; opacity: 0.75; }
.choice-cell { font-size: 0.85rem; white-space: nowrap; }
.cell-muted { opacity: 0.45; }
.right-muted { opacity: 0.55; }
.cell-form { display: flex; gap: 0.25rem; align-items: center; }
.cell-form select {
  font: inherit;
  font-size: 0.8rem;
  max-width: 11rem;
  padding: 0.2rem 0.3rem;
  border-radius: 0.35rem;
  border: 1px solid #8886;
  background: inherit;
  color: inherit;
}
.cell-form button {
  font: inherit;
  font-size: 0.85rem;
  padding: 0.2rem 0.5rem;
  border: none;
  border-radius: 0.35rem;
  cursor: pointer;
  background: var(--btn-bg);
  color: var(--btn-fg);
}
.cell-undo { font-size: 0.85rem; }
.round-status { margin-top: 0.8rem; font-size: 0.9rem; }
.round-status li { padding: 0.2rem 0; }
.round-status select {
  font: inherit;
  font-size: 0.8rem;
  padding: 0.2rem 0.3rem;
  border-radius: 0.35rem;
  border: 1px solid #8886;
  background: inherit;
  color: inherit;
}

/* ---- Játéknapi konzol (/jateknap/) ---- */

.gameday-meta { margin: 0 0 0.6rem; font-size: 0.9rem; opacity: 0.85; }
.gameday-meta a { color: inherit; font-weight: 700; }
.gameday-progress { margin: 0 0 0.4rem; font-size: 0.95rem; }
.round-active { border: 2px solid #e0a800; }
.round-collapsed > summary {
  cursor: pointer;
  font-weight: 700;
  padding: 0.2rem 0;
  list-style-position: inside;
}
.round-collapsed[open] > summary { margin-bottom: 0.4rem; }
.gameday-league-list .gameday-league-row { padding: 0.15rem 0; }
.gameday-league-link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.4rem;
  border-radius: 0.55rem;
  color: inherit;
  text-decoration: none;
}
.gameday-league-link:hover { background: #8881; }
.gameday-league-state { flex: 1; }
.gameday-league-progress { font-weight: 700; white-space: nowrap; }
.goal-list { column-width: 11rem; column-gap: 1.5rem; }
.goal-row { display: flex; gap: 0.4rem; padding: 0.12rem 0; break-inside: avoid; }
.goal-rank { min-width: 1.6rem; opacity: 0.6; text-align: right; }
.goal-name { flex: 1; }
.goal-count { min-width: 1.5rem; text-align: right; }
.mini-table td, .mini-table th { padding: 0.3rem 0.45rem; }

/* ---- Csapatoldal: hármas statisztikasor a hero-ban (pont / gól / kredit) ---- */

.score-row {
  display: flex;
  gap: 0.7rem;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  width: 92%;
  margin: 0 auto;
}
.score-row .score-panel {
  width: auto;
  min-width: 0;
  margin: 0;
  flex: 1 1 0;
  padding: 0.9rem 0.6rem 0.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.score-row .score-main { flex: 1.35 1 0; }
.score-row .score-side .score-number {
  font-size: clamp(1.8rem, 8vw, 3rem);
  white-space: nowrap;
}
.score-row .score-label { font-size: 0.8rem; }

/* A pont/gól dobozok alatti kreditsor — nagyobb, levegősebb chip. */
.credit-chip {
  display: inline-block;
  margin: 1.1rem auto 0.2rem;
  padding: 0.5rem 1.4rem;
  border-radius: 2rem;
  background: rgba(0, 0, 0, 0.25);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.05em;
}

/* Idényzárás konzol + draft szezon szalag */
.draft-season-banner {
  background: #b8860b;
  color: #fff;
  text-align: center;
  padding: 0.4rem 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* A demó-gazda szalagja. Szándékosan rikító és mindenhol ott van: a legrosszabb
   tévedés az volna, ha valaki a demón intézne valódi Draft Day-ügyet — vagy
   fordítva, az élesen próbálgatna. */
.demo-banner {
  background: repeating-linear-gradient(
    -45deg, #7b2ff7, #7b2ff7 12px, #6a25d8 12px, #6a25d8 24px
  );
  color: #fff;
  text-align: center;
  padding: 0.4rem 1rem;
  font-size: 0.9rem;
}

.demo-banner .demo-rev {
  opacity: 0.75;
  font-variant-numeric: tabular-nums;
  margin-left: 0.4rem;
}

.demo-banner a { color: #fff; margin-left: 0.6rem; }

/* Óravezérlés a Fórumon, csak a demón. Szándékosan visszafogott: a nagy
   kijelzőn a tábla a főszereplő, ez csak szerszám a sarokban. */
.demo-clock-bar {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.8rem;
  padding: 0.5rem 0.6rem;
  border: 1px dashed rgba(123, 47, 247, 0.6);
  border-radius: 0.5rem;
}

.demo-clock-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  opacity: 0.7;
  margin-right: 0.2rem;
}

.demo-clock-bar button {
  padding: 0.35rem 0.7rem;
  border: none;
  border-radius: 0.4rem;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--chip-bg);
  color: inherit;
}

.demo-pick { gap: 0.5rem; }
.demo-pick form { display: contents; }

.demo-pick-btn {
  border: none;
  font-weight: 700;
  cursor: pointer;
  font-size: 0.95rem;
}
.close-steps { width: 100%; border-collapse: collapse; }
.close-steps td { padding: 0.55rem 0.5rem; border-bottom: 1px solid rgba(128,128,128,0.25); vertical-align: middle; }
.close-no { font-weight: 700; white-space: nowrap; width: 3.2rem; }
.close-detail { font-size: 0.85rem; opacity: 0.75; margin-top: 0.15rem; }
.close-state { text-align: right; white-space: nowrap; }
.close-step-kesz .close-state { color: #2e7d32; font-weight: 700; }
.close-step-dontes .close-state { opacity: 0.7; }
.close-step-varakozik .close-state { opacity: 0.55; }

/* ---- Manager portál: belépés + fejléc-sáv ---- */

.user-bar {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.35rem 0.75rem;
  background: rgba(0, 0, 0, 0.35);
  font-size: 0.85rem;
}

.user-chip {
  display: inline-block;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  font-weight: 700;
}

.user-bar-link {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}

.user-badge {
  display: inline-block;
  min-width: 1.3em;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  background: #c0392b;
  color: #fff;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

/* Kilépve csak egy link van a sávban — jobbra, ahol belépve a Kilépés áll. */
.user-bar-anon { justify-content: flex-end; }

/* „Egyenlegeim" — a menedzser saját, élő számai az /ajanlatok/ alján. Rácsban,
   mert a draft közben egy pillantással kell leolvasni, melyikből mennyi van; a
   szám hangsúlyos, a címke halvány. */
.my-balances .balance-grid {
  list-style: none;
  margin: 0.6rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
  gap: 0.6rem;
}

.my-balances .balance-grid li {
  padding: 0.5rem 0.7rem;
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.06);
  text-align: center;
}

.balance-label {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.6;
}

.balance-value {
  display: block;
  margin-top: 0.15rem;
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}

.user-bar-logout { margin-left: auto; }
.user-bar-logout .btn-link { color: inherit; opacity: 0.7; text-decoration: underline; }

.login-cards { max-width: 24rem; margin: 1.5rem auto 0; }

.login-status { display: flex; align-items: center; gap: 0.5rem; margin: 0.2rem 0 0.7rem; flex-wrap: wrap; }
.login-username { opacity: 0.6; font-size: 0.9rem; }

.login-actions { display: flex; gap: 0.6rem; }
.login-actions form { flex: 1; display: flex; }

.login-btn {
  flex: 1;
  display: block;
  text-align: center;
  padding: 0.6rem 1rem;
  border-radius: 0.55rem;
  background: var(--btn-bg);
  color: var(--btn-fg);
  text-decoration: none;
  font-weight: 700;
}

.login-actions button {
  flex: 1;
  padding: 0.6rem 1rem;
  border: none;
  border-radius: 0.55rem;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  background: #5a6472;
  color: #ffffff;
}

/* A fejléc-sáv háttere sötét — világos oldalakon is világos szöveggel. */
.team-page .user-bar { background: rgba(0, 0, 0, 0.6); color: #f2f2f2; }

/* Draftszignál-kapcsoló a Fórumon. Nem dísz: amíg nincs megnyomva, a böngésző
   egyáltalán nem enged hangot, és a szervező azt hinné, elromlott. */
.signal-bar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.8rem;
}

.signal-bar button {
  padding: 0.4rem 0.8rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.45rem;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--chip-bg);
  color: inherit;
}

.signal-note { font-size: 0.8rem; opacity: 0.55; }

/* A Fórum fejléce egy sorba fogja a címet és a hangkapcsolót (tulaj,
   2026-08-28): külön sávként a gomb egy egész sornyi magasságot vitt el a
   színpad elől. A harmadik oszlop `auto`, tehát a cím a maradékban marad
   középen — a kivetítőn a pár pixeles eltolódás nem látszik, egy elveszett
   sor viszont igen. */
.topbar-feed { grid-template-columns: 2.5rem 1fr auto; }

.topbar-feed .signal-bar {
  margin-bottom: 0;
  justify-self: end;
  justify-content: flex-end;
}

/* Kis kijelzőn a hosszú jegyzet kitolná a fejlécet — ott csak a gomb marad,
   ami magában is elmondja, hogy a hang ki van kapcsolva. */
@media (max-width: 48rem) {
  .topbar-feed .signal-note { display: none; }
  .topbar-feed .signal-bar button { font-size: 0.8rem; padding: 0.3rem 0.55rem; }
}

/* ---- Draft Day a menedzser saját lapján ----
   A pick három percig tart egy sokórás napból, ezért nem külön oldal, hanem
   kártya, amely az /ajanlatok/ tetején kinyílik, amikor sorra kerülsz. */

.draft-strip {
  margin: 0 0.2rem 0.9rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  background: var(--chip-bg);
  font-size: 0.92rem;
}

.draft-strip .clock-time {
  font-size: 1.1rem;
  margin: 0 0.3rem;
}

.my-turn {
  margin-bottom: 0.9rem;
  border: 2px solid #e0a92e;
  /* A kártya legfeljebb a képernyő 80%-a (tulaj, 2026-08-28): teljes
     magasságban semmi nem látszott alatta, és a lapon semmi nem árulta el,
     hogy van még tovább. A fejléc, az óra és a passz gomb fix, a csapatlista
     viszi a maradékot és ő görget. */
  max-height: 80vh;
  display: flex;
  flex-direction: column;
}

.my-turn h2 { color: #e0a92e; }

.my-turn-clock {
  display: flex;
  align-items: baseline;
  gap: 0.7rem;
  margin: 0 0 0.4rem;
}

.my-turn-label { font-size: 0.85rem; opacity: 0.75; }

.my-turn-balance { margin: 0 0 0.7rem; font-size: 0.95rem; }

/* Görgethető lista: 199 csapat nem tolhatja le a képernyő aljára a passz
   gombot — a döntéshez mindkettőnek elérhetőnek kell lennie.

   A rögzített 55vh helyett most a kártya 80vh-jából megmaradó helyet kapja.
   A `min-height: 0` nem elhagyható: flex-oszlopban enélkül a görgetés nem
   indul be, a lista kifeszíti a kártyát a 80vh fölé. */
.my-team-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  border: 1px solid var(--surface-line);
  border-radius: 0.5rem;
  padding: 0.2rem 0.35rem;
}

.my-team-list .free-team { padding: 0.1rem 0; }

/* Tömör SZÜRKE háttér (tulaj, 2026-08-28): a korábbi 8%-os fehér fátyol a
   kártya hátterén alig látszott, a 199 csapat egyetlen szövegfolyamnak
   olvasódott. Így minden sor külön gombként válik el. */
.team-pick-btn {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  width: 100%;
  padding: 0.55rem 0.6rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.45rem;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: #333941;
  color: inherit;
}

.team-pick-btn .ft-price { margin-left: auto; white-space: nowrap; }

/* Megfizethetetlen csapat: látszik (a tervezéshez kell), de nem gomb — ezért
   marad háttér nélkül, hogy a szürke sorok közül kilógjon. */
.team-pick-off {
  background: none;
  opacity: 0.35;
  cursor: not-allowed;
}

/* Ujjal görgetve jól látszik, melyik soron áll a kéz. */
.team-pick-btn:hover { background: #3d444e; }

.my-pass { margin-top: 0.8rem; display: flex; }
.my-pass button { flex: 1; }

/* ---- Ajánlatok (manager portál) ---- */

.prop {
  border: 1px solid rgba(128, 128, 128, 0.3);
  border-radius: 0.55rem;
  padding: 0.7rem 0.8rem;
  margin-bottom: 0.7rem;
}

.prop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 0.4rem;
}

.prop-date { font-size: 0.8rem; opacity: 0.55; white-space: nowrap; }

.prop-body { display: flex; gap: 1rem; }
.prop-col { flex: 1; min-width: 0; }
.prop-col .card-sub { margin-top: 0.2rem; }
.prop-none { opacity: 0.45; }

.prop-flag {
  margin: 0.3rem 0;
  padding: 0.35rem 0.55rem;
  border-radius: 0.4rem;
  background: rgba(192, 57, 43, 0.18);
  border-left: 4px solid #c0392b;
  font-size: 0.85rem;
}

.prop-actions { display: flex; gap: 0.6rem; margin-top: 0.6rem; }
.prop-actions form { flex: 1; display: flex; }
.prop-actions button { flex: 1; }

.partner-grid { margin-top: 0.5rem; }
.partner-chip {
  text-decoration: none;
  padding: 0.55rem 0.9rem;
  font-size: 1rem;
}

.stepper { margin: 0.55rem 0; }
.stepper-label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.25rem; }
.stepper-controls { display: flex; gap: 0.4rem; align-items: stretch; }
.stepper-controls input {
  flex: 1;
  min-width: 0;
  text-align: center;
  font-size: 1.05rem;
  font-weight: 700;
  padding: 0.4rem 0.3rem;
  border: 1px solid var(--field-line);
  border-radius: 0.45rem;
  background: var(--field-bg);
  color: inherit;
}
.step-btn {
  width: 2.8rem;
  font-size: 1.3rem;
  font-weight: 700;
  border: none;
  border-radius: 0.45rem;
  background: var(--btn-secondary-bg);
  color: var(--btn-secondary-fg);
}

.tap-list li { margin: 0.15rem 0; }
.tap-list label {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid rgba(128, 128, 128, 0.3);
  border-radius: 0.45rem;
  cursor: pointer;
}
.tap-list input[type="checkbox"] { width: 1.15rem; height: 1.15rem; flex: none; }
.tap-list label:has(input:checked) {
  border-color: #1d8a3c;
  background: rgba(29, 138, 60, 0.15);
}

.prop-send { margin-top: 0.8rem; display: flex; }
.prop-send button { flex: 1; }

/* ---- Draft Day pick-óra + ajánlat-folyam ---- */

.clock {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  margin-top: 0.6rem;
  padding: 0.5rem 0.9rem;
  border-radius: 0.55rem;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(128, 128, 128, 0.3);
}

.clock-time {
  font-size: 2.1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
}

.clock-label { font-size: 0.85rem; opacity: 0.75; font-weight: 600; }

/* Az óra SZÍNE mondja meg, mit számol (tulaj, 2026-08-28): a pick ideje rikító
   zöld, a 0:15-ös váltási szünet piros. A nagy kijelzőn ez a leggyorsabban
   olvasható jel — a nézőnek nem a feliratot kell elolvasnia ahhoz, hogy tudja,
   ketyeg-e még a kör. A szín itt RÁADÁS, nem az egyetlen jel: a felirat
   („ennyi időd van a választásra" / „váltási szünet") végig ott van mellette,
   tehát színtévesztéssel sem vész el az információ. */
:root {
  --clock-running: #3dff6b;
  --clock-break: #ff4136;
}

.clock-time { color: var(--clock-running); }

.clock-break { border-color: var(--clock-break); }
/* Kétféleképpen fordul elő: a drafttáblán a DOBOZON van (a benne lévő
   időt színezi), a menedzser saját óráján magán az időn. */
.clock-break .clock-time,
b.clock-time.clock-break { color: var(--clock-break); }

.clock-expired { border-color: #c0392b; }
.clock-expired .clock-time { color: #e05545; animation: clock-blink 1s step-end infinite; }

@keyframes clock-blink { 50% { opacity: 0.35; } }

.clock-actions { margin-top: 0.5rem; }
.clock-actions form { display: flex; gap: 0.6rem; flex: 1; }
.clock-actions button { flex: 1; }

.feed-list li { padding: 0.15rem 0; }
.feed-active { color: #2ecc71; }
.feed-closed { opacity: 0.5; }

/* ---- Fórum: az ajánlat-folyam külön (nagy kijelzős) oldala ----
   A `.feed-*` osztálynevek szándékosan maradtak: 2026-08-20-án csak a
   felszín kapott új nevet (útvonal, cím, sablonfájl), a funkció ugyanaz. */

.feed-page main { max-width: 52rem; }

.feed-summary { font-size: 1.3rem; margin: 0.8rem 0 1rem; }
.feed-summary-centered { text-align: center; font-size: clamp(1.3rem, 2.6vw, 2.1rem); }
.feed-summary .feed-note { font-size: 0.85rem; opacity: 0.55; display: block; margin-top: 0.2rem; }

.feed-board { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }

/* A sor kerete a STÁTUSZ színét viszi (tulaj, 2026-08-28): aktív zöld,
   elfogadva arany, elutasítva piros, visszavonva szürke. A nagy kijelzőn a
   keret messzebbről olvasható, mint a jobb szélen álló felirat — a felirat
   viszont marad, tehát színtévesztéssel sem vész el a különbség. */
.feed-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.7rem 1rem;
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid var(--feed-row-accent, #2ecc71);
  font-size: 1.25rem;
}

.feed-row-accepted { --feed-row-accent: #e0a92e; }
.feed-row-rejected { --feed-row-accent: #e05545; }
.feed-row-closed { --feed-row-accent: #9aa3b0; opacity: 0.45; }

.feed-time { font-variant-numeric: tabular-nums; opacity: 0.6; font-size: 1rem; flex: none; }

.feed-chip {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  font-weight: 700;
  min-width: 0;
  text-align: center;
  line-height: 1.25;
}


.feed-state { margin-left: auto; flex: none; font-size: 1.05rem; }
.feed-state .feed-active { color: #2ecc71; letter-spacing: 0.06em; }

.feed-demo {
  margin-left: 0.5rem;
  padding: 0.1rem 0.5rem;
  border-radius: 0.4rem;
  background: #b8860b;
  color: #fff;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  vertical-align: middle;
}

/* A három lezárt kimenet a nagy kijelzőn is elkülönül: az ELFOGADVA ünnep
   (arany, kiemelt sor), az ELUTASÍTVA döntés (piros), a VISSZAVONVA pedig
   nem történt semmi (halvány, szürke). Korábban a két utóbbi egyaránt
   „lezárva" volt, és a néző nem tudta, csere lett-e belőle. */
.feed-accepted { color: #e0a92e; letter-spacing: 0.06em; }
.feed-row-accepted { background: rgba(224, 169, 46, 0.12); }

.feed-rejected { color: #e05545; letter-spacing: 0.06em; }
.feed-row-rejected { background: rgba(224, 85, 69, 0.1); opacity: 0.8; }

/* A visszavont sor a `feed-row-closed`-ot is viszi (halvány szürke keret), de
   az `opacity` ott a sor EGÉSZÉT halványítja — a keret így magától tompul. */

.feed-withdrawn { opacity: 0.55; letter-spacing: 0.06em; }

/* Feed-animációk: érkező sor becsúszik + zölden dereng, az eldőlt sor
   felvillan (arany = elfogadva, fehér = lezárva). */

.feed-row-new {
  animation: feed-in 0.6s ease-out, feed-glow 2.2s ease-out;
}

@keyframes feed-in {
  from { opacity: 0; transform: translateY(-0.7rem); }
}

@keyframes feed-glow {
  0% { box-shadow: 0 0 0 3px rgba(46, 204, 113, 0.85); }
  100% { box-shadow: 0 0 0 3px rgba(46, 204, 113, 0); }
}

.feed-flash-accepted {
  animation: feed-accept-flash 1.8s ease-out;
}

@keyframes feed-accept-flash {
  0% { background: rgba(224, 169, 46, 0.8); transform: scale(1.015); }
  100% { background: rgba(224, 169, 46, 0.12); transform: scale(1); }
}

.feed-flash-closed {
  animation: feed-close-flash 1.6s ease-out;
}

@keyframes feed-close-flash {
  0% { background: rgba(255, 255, 255, 0.4); opacity: 1; }
}

/* Kör-fejléc: a soron lévő menedzser + a pick órája (2026-08-15) — a
   tábla mindig az ő köréről szól, körváltásnál kiürül. */

.feed-turn {
  margin: 1rem 0 0.4rem;
  padding: 1rem 1.2rem;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(128, 128, 128, 0.3);
  text-align: center;
}

/* A KERET is jelzi a fázist (tulaj, 2026-08-28): zöld, amíg a pick ideje fut,
   narancs a váltási szünetben. Vastagabb az alap 1px-nél, mert a kivetítőn a
   hajszálvonal színe több méterről nem olvasható.

   Az „idő lejárt" pirosat kap: zöld kerettel a tábla azt sugallná, hogy még
   ketyeg. A narancs szándékosan NEM az elfogadott ajánlatok aranya (#e0a92e) —
   a kettő egy képernyőn van, és nem jelenthetik ugyanazt. */
.feed-stage-card { border: 3px solid var(--clock-running); }
.feed-stage-card.feed-turn-break { border-color: #ff8c1a; }
.feed-stage-card.feed-turn-expired { border-color: #e05545; }

.feed-turn-label {
  margin: 0;
  font-size: 0.95rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.7;
  font-weight: 700;
}

.feed-turn-pick { opacity: 0.6; letter-spacing: normal; text-transform: none; margin-left: 0.3rem; }

.feed-turn-who { margin: 0.5rem 0 0.2rem; }

/* ---- A nagy kijelző színpada: óra | név | logó ----

   A szélek eddig üresen álltak; teljes képernyőn ez a tábla legjobban látható
   sávja. Három oszlop, és a fázis csak a SORRENDET váltja: pick alatt az óra
   balra (zöld) és a logó jobbra, váltási szünetben fordítva (piros). Egyetlen
   markup mindkettőre — két külön ág cseréje a másodpercre pontos fázisváltásnál
   ugrálást okozna a kivetítőn.

   Minden méret `clamp()`: ugyanez a tábla megy laptopon és 4K-s kivetítőn is,
   a viewport-arányos középső érték tölti ki a helyet, a szélek nem engedik
   olvashatatlanná se zsugorodni, se szétfolyni. */
.feed-pick-label {
  margin: 0 0 0.4rem;
  font-size: clamp(1.6rem, 4vw, 3.4rem);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
}

.feed-stage {
  display: flex;
  align-items: center;
  gap: clamp(0.6rem, 2vw, 2rem);
}

/* A két szélső oszlop egyforma szélességű, a közép viszi a maradékot — így a
   névchip akkor is középen marad, ha az egyik szélen épp nincs tartalom. */
/* A szélső oszlopok 26%-ról 22%-ra szűkültek, és az óra is kisebb lett: a
   „0:07" 26%-nál kilógott a saját oszlopából, és a kártya keretéhez ért
   (tulaj, 2026-08-28). A megnyert hely a NÉVÉ — a leghosszabb franchise-név
   („Piercing Porcupines", 19 karakter) így két sorban elfér, korábban három
   sorba tört. Ha új, ennél hosszabb szavas név jön, ITT kell méretet venni. */
.feed-stage-clock,
.feed-stage-logo {
  flex: 0 0 clamp(6rem, 22%, 18rem);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.feed-stage-main { flex: 1 1 auto; min-width: 0; }

/* Váltási szünetben az oldalak cserélnek: a logó balra, az óra jobbra — a NÉV
   marad középen. Mind a HÁROM oszlop kap sorrendet: a középsőt is meg kell
   adni, különben az alapértelmezett `order: 0`-val a logó (1) és az óra (3)
   elé csúszik, és a név a bal szélre kerül. */
.feed-turn-break .feed-stage-logo { order: 1; }
.feed-turn-break .feed-stage-main { order: 2; }
.feed-turn-break .feed-stage-clock { order: 3; }

.feed-logo {
  max-width: 100%;
  max-height: clamp(4.5rem, 13vw, 11rem);
  object-fit: contain;
}

.feed-chip-turn {
  font-size: clamp(1.4rem, 4.2vw, 3.6rem);
  padding: 0.3rem 1rem;
  line-height: 1.12;
  /* Hosszú franchise-név se lógjon ki a középső oszlopból. */
  display: inline-block;
  max-width: 100%;
  /* `break-word`, NEM `anywhere`: a böngésző előbb a szóhatáron tör, és csak
     végszükségben a szó közepén. Az `anywhere` a „Piercing Porcupines"-t
     három sorba vágta, mert a szót is szabadon feldarabolhatta. */
  overflow-wrap: break-word;
  hyphens: none;
  /* Két sornál a törés a sorok közepére kerül, ne egy árva szóra. */
  text-wrap: balance;
}

.feed-clock {
  display: block;
  /* „Dupla nagy" a korábbi 2,6rem-hez képest, de 7,5vw-ről 5,5vw-re véve:
     a „0:07" ~2,2em széles, a 7,5vw pedig 215 pixelt kért a 199 pixeles
     oszlopból — kilógott, és majdnem a kártya keretéhez ért. 5,5vw-nél
     ~160 px, tehát befér, és marad hézag a keretig.

     A clamp MAXIMUMA a kötés, nem a vw: a `.feed-page main` 52rem-nél megáll,
     tehát nagy kijelzőn az oszlop már nem nő tovább — a betű viszont nőne. */
  font-size: clamp(2.2rem, 5.5vw, 4.7rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
  line-height: 1;
  color: var(--clock-running);
}

.feed-clock.clock-expired { color: #e05545; animation: clock-blink 1s step-end infinite; }


/* A szünet órája UGYANAKKORA, mint a pick ideje — csak piros. Korábban
   1,9rem-re volt zsugorítva; a tulaj kérése (2026-08-28) az azonos méret. */
.feed-turn-break .feed-clock { color: var(--clock-break); }
.feed-turn-next { margin: 0.4rem 0 0; font-size: 1.15rem; }

.feed-turn-note { margin: 0.3rem 0 0; font-weight: 700; letter-spacing: 0.08em; color: #e0a92e; }
.feed-turn .feed-summary { margin: 0.4rem 0 0; }
.feed-turn-off .feed-note { display: block; margin-top: 0.4rem; font-size: 0.9rem; opacity: 0.7; }
.feed-turn-off a { color: #2ecc71; }

/* ---- Pick-bejelentő (nagy kijelző) ----
   A friss draftlépés 12 másodpercre elfoglalja a táblát. Csapatcímerünk
   nincs, ezért a kép a franchise logója, a főszereplő pedig a csapatnév —
   akkorára nőve, amekkorára a kijelző engedi. */
.reveal {
  text-align: center;
  padding: 1.4rem 1rem 1.6rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.9rem;
  background: var(--surface);
  animation: reveal-in 0.45s ease-out;
}

@keyframes reveal-in {
  0% { opacity: 0; transform: scale(0.96); }
  100% { opacity: 1; transform: scale(1); }
}

.reveal-pick {
  margin: 0 0 0.6rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.6;
}

.reveal-logo {
  max-height: 22vh;
  max-width: min(50vw, 14rem);
  filter: drop-shadow(0 0.4rem 1.2rem rgba(0, 0, 0, 0.45));
}

.reveal-manager { margin: 0.7rem 0 0.2rem; }

.reveal-chip { font-size: 1.15rem; padding: 0.3rem 1rem; }

.reveal-verb {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.55;
}

.reveal-team {
  margin: 0.1rem 0 0.3rem;
  font-size: clamp(2.4rem, 9vw, 4.6rem);
  font-weight: 800;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

/* A passz nem ünnep: ugyanaz a kártya, de halkabban. */
.reveal-pass .reveal-team {
  font-size: clamp(1.8rem, 6vw, 3rem);
  letter-spacing: 0.14em;
  opacity: 0.75;
}

.reveal-meta { margin: 0; font-size: 1.05rem; opacity: 0.7; }

.reveal-next {
  margin: 1.1rem 0 0;
  font-size: 0.95rem;
  opacity: 0.8;
}

/* A `.feed-clock` alapból block — a bejelentőn egy soron fut a szöveggel.
   PIROS, mint a váltási szünet órája: a bejelentő ideje a szünetből megy, nem
   egy külön időablak (tulaj, 2026-08-28). Zölden azt sugallná, hogy még a
   pick órája ketyeg. */
.reveal-next .feed-clock {
  display: inline;
  font-size: 1.5rem;
  margin: 0 0.35rem;
  color: var(--clock-break);
}

/* Mobil: kisebb kiírások, szóhatáron törő, cimke-szerű chipek. */
@media (max-width: 40rem) {
  .feed-summary { font-size: 1rem; margin: 0.5rem 0 0.7rem; }
  .feed-row {
    font-size: 0.9rem;
    gap: 0.4rem;
    padding: 0.5rem 0.55rem;
  }
  .feed-chip { padding: 0.18rem 0.5rem; border-radius: 0.55rem; }
  .feed-time { font-size: 0.72rem; }
  .feed-state { font-size: 0.78rem; }
  .feed-turn { padding: 0.7rem 0.8rem; }
  .feed-chip-turn { font-size: 1.15rem; padding: 0.3rem 0.9rem; }
  .feed-clock { font-size: 1.9rem; }
  .feed-turn-next { font-size: 0.95rem; }
}

/* ---- Rangsoroldalak (pont / gól / kredit) + a hero-dobozok linkjei ---- */

.score-link { color: inherit; text-decoration: none; }

.ranking-note { margin: 0.9rem 0.2rem 0; font-size: 0.8rem; opacity: 0.55; }

/* ---- Ajánlat-űrlap (2/4–3/4): egymás alatt, teljes szélességben ---- */

.prop-steps { display: flex; flex-direction: column; gap: 0.9rem; margin: 0.6rem 0; }

/* A két lépést a MELEG/HŰVÖS tengely különíti el: kérsz = hűvös kék,
   adsz = meleg réz. Szándékosan NEM piros/zöld: a piros ezen a felületen
   már az elutasítás színe, a jó/rossz felhang pedig félrevezetne — ugyanaz
   a tétellista az egyik menedzsernek „Adod", a másiknak „Kapod". A kék↔narancs
   ráadásul az egyetlen tengely, amely színtévesztéssel is megmarad.

   Három csatornán szól, nem csak színnel: háttér-árnyalat + telt jelölőcsík
   a panel bal szélén + a címsorban a „kapod”/„adod” szócímke. Színtévesztő
   nézőnek és fekete-fehér nyomatnak is marad jele. */
/* A két panel TÓNUSSAL válik el, nem színárnyalattal: a „kapod" sötétkék
   fehér betűvel, az „adod" világoskék majdnem fekete betűvel. Mérve 11,38:1
   a két panel között — a valaha volt kék/réz páros 1,03:1 volt, mert azonos
   világosságúak voltak. A megkülönböztetés tehát VILÁGOSSÁG-alapú, nem
   színárnyalat-alapú: színtévesztéssel és fekete-fehér nyomaton is megmarad.

   2026-08-28 (tulaj): a szürke tónus kékre cserélve. A világos panel
   szándékosan VILÁGOSABB, mint a Blue Elves világoskékje (#81bbdf) — így egy
   franchise-szín nem téveszthető össze a felület saját színével.

   A világos panel egy VILÁGOS SZIGET a sötét lapon: helyben újradefiniálja a
   témat okeneket, ahogy a `.team-page` teszi az egész lappal. Ezért kellett a
   `.step-btn` és a `.quick-btn` beégetett `#5a6472` / `#fff` színeit tokenre
   venni — enélkül a szigeten belül is a sötét téma gombjai jelennének meg.
   A `color-scheme` a natív vezérlőket (pipa, számléptető nyilak) fordítja át. */
.prop-side-ask,
.prop-side-give {
  box-shadow: var(--surface-shadow), inset 6px 0 0 var(--panel-accent);
  color: var(--page-fg);
}

.prop-side-ask {
  color-scheme: dark;
  --panel-accent: #9dbbe0;
  --quick-on-bg: #ffffff;
  --quick-on-fg: #16181b;
  background: #1d2a52;
}

.prop-side-give {
  color-scheme: light;
  --page-fg: #16181b;
  --field-bg: #ffffff;
  --field-line: #8b939e;
  /* A gombok itt VILÁGOSAK, sötét felirattal — nem esztétikai szeszély: a
     kiválasztott állapotnak kell hely a tónusskálán. Sötét nyugalmi gombról
     „még sötétebb" felé feketéig is csak 2,90:1 jutna, világosról viszont
     6,98:1 a sötét kiválasztottig. */
  --btn-secondary-bg: #a9c6e4;
  --btn-secondary-fg: #16181b;
  --quick-on-bg: #16181b;
  --quick-on-fg: #ffffff;
  --panel-accent: #26417a;
  background: #dbeaf8;
}

/* A halvány szövegek (0.6) a világos panelen a 4,5:1-es minimum alá esnének;
   0.72-nél biztonságos. (A kék háttér valamivel világosabb, mint a korábbi
   szürke, tehát ez a tartalék csak nőtt.) */
.prop-side-give .card-note,
.prop-side-give .trade-balance { opacity: 0.72; }

/* Az űrlapon MINDEN vagyonelem-fajta neve ugyanaz a felirat — akár lépegetővel
   adod meg (Csillag, Pont, Kredit, Joker), akár pipálható listával
   (Draftjogok, Ellenfélválasztási jogok, Nevezett csapatok…). A kétféle
   írásmód csak abból fakadt, hogy az egyik `<span class="stepper-label">`, a
   másik `<h3 class="card-sub">`: amaz mondatkezdő 0.9rem/600, emez 0.72rem-es
   nagybetűs, ritkított, halványított. A panelben viszont egy szinten állnak,
   mindegyik EGY felajánlható fajta — tehát egyformán is kell kinézniük.
   A `.card-sub` a lap többi részén marad, ami volt; ez a szabály csak a
   panelre szól. */
.prop-side .card-sub,
.prop-side .stepper-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  opacity: 1;
}

.prop-side .stepper-label { margin: 0 0 0.25rem; }
/* A listás fajták kapnak felül levegőt, mert őket nem fogja rácsba a
   stepper-grid — enélkül nekifutnának az előző szekciónak. */
.prop-side .card-sub { margin: 1.1rem 0 0.35rem; }

/* Szócímke a címsorban — ugyanaz a szókincs, mint a kapott/küldött
   ajánlatok listáján („Kapod” / „Adod”). */
.prop-dir {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.1rem 0.5rem;
  border: 1px solid var(--panel-accent);
  border-radius: 999px;
  color: var(--panel-accent);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  vertical-align: 0.15em;
}

/* A teljes szélesség kihasználása: a lépegetők és a pipálható tételek
   több oszlopba folynak, ahol elférnek. */
.prop-side .stepper-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.15rem 1rem;
  align-items: end;
}
.prop-side .stepper-grid .stepper { margin: 0.4rem 0 0.15rem; }

.prop-side .tap-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.3rem 0.6rem;
}
.prop-side .tap-list li { margin: 0; }

/* Egységes tételnév az ajánlat-űrlapon: FÉLKÖVÉR AZONOSÍTÓ + halvány részlet.
   Korábban négyféle alak élt egymás mellett ugyanazon a lapon — `V/5. (#61)
   pick`, `A/5`, `3. idény – I. kör`, `A: <b>Olaszország</b> (5 ★)` —, sőt a
   megszerzett jövőbeli jog a modell __str__-jét kapta. A szekciócím már
   megmondja, MILYEN vagyonelemről van szó, ezért a névből kimarad. */
.asset-note { opacity: 0.6; font-size: 0.85em; }
.prop-side .future-pick-list { grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }

/* A „Kérek” oldal katalógusa (12.6) hosszú: az idény ÖSSZES nyitott
   draftjoga 84 tétel, az ellenfélválasztási jogokból 36. Körönként /
   ligánként összecsukva ez hat, illetve hat sor — nyitva a rács ugyanaz,
   mint a jövőbeli pickeké. A `summary` marker megmarad (nem rejtjük el):
   az mutatja, hogy a sor nyitható. */
.ask-group { margin: 0 0 0.25rem; }
.ask-group > summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.3rem 0;
  list-style-position: inside;
}
.ask-group[open] > summary { margin-bottom: 0.25rem; }
.ask-group > summary .asset-note { font-weight: 400; margin-left: 0.3rem; }

/* Gyorsválasztó chipek (Pont/Gól): 1–5 egy tapra, mellette kis mező a
   nagyobb értékeknek — mobilon gyorsabb és pontosabb ajánlatadás.

   A chip GOMB, a mellette lévő mező MEZŐ — ezt korábban semmi nem mutatta:
   mindkettő ugyanazt az 1px `--field-line` keretet, ugyanazt a 0.45rem
   lekerekítést és ugyanazt a `--field-bg` hátteret vitte, így a Pont sorban
   a „1” és „2” pont ugyanúgy nézett ki, mint a beviteli mező. Mostantól a
   chip telt, pirula alakú és keret nélküli — ugyanaz az idióma, mint a −/+
   lépegetőké —, a mező pedig marad szögletesebb és keretes. A FORMA külön
   csatorna: színtévesztéssel és fekete-fehéren is elválik. */
.prop-side .stepper-grid .quick-pick { grid-column: 1 / -1; }

.quick-controls { display: flex; gap: 0.35rem; align-items: stretch; flex-wrap: wrap; }

.quick-btn {
  min-width: 2.9rem;
  padding: 0.45rem 0.9rem;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  border: none;
  border-radius: 999px;
  background: var(--btn-secondary-bg);
  color: var(--btn-secondary-fg);
  cursor: pointer;
  transition: transform 120ms ease, background-color 120ms ease;
}

.quick-btn:hover { filter: brightness(1.18); }

/* A kiválasztott chip a panel tónusskálájának a MÁSIK végére ugrik: sötét
   panelen fehér lesz, világos panelen majdnem fekete. Mérve 6,00:1 illetve
   6,98:1 a nyugalmi chiphez — korábban 2,35:1 és 1,44:1 volt, azért veszett
   bele a háttérbe. A nagyítás második, nem színalapú jel: kinagyítva akkor is
   látszik, melyik aktív, ha a tónusokat nem lehet elkülöníteni. */
.quick-btn.active {
  background: var(--quick-on-bg);
  color: var(--quick-on-fg);
  transform: scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
  .quick-btn { transition: none; }
}

/* A mező a chipek ALTERNATÍVÁJA, nem a társuk — ezt a „vagy” mondja ki.
   A korábbi `margin-left: auto` a panel túlsó szélére lökte, ahol önálló,
   egyenrangú vezérlőnek látszott. */
.quick-or {
  align-self: center;
  margin: 0 0.1rem 0 0.45rem;
  font-size: 0.78rem;
  opacity: 0.6;
}

.quick-controls input {
  width: 4.4rem;
  min-width: 0;
  padding: 0.4rem 0.3rem;
  border: 1px solid var(--field-line);
  border-radius: 0.45rem;
  font: inherit;
  font-size: 0.92rem;
  text-align: center;
  background: var(--field-bg);
  color: inherit;
}

/* ---- Az idény alakulása (helyezésfolyam + mérföldkő-tábla) ---- */

.progress-link-row { text-align: center; margin: 0.9rem 0 0; }
.progress-link { color: inherit; opacity: 0.75; text-decoration: none; font-weight: 600; }
.progress-link:hover { opacity: 1; }

.progress-chart-wrap { overflow-x: auto; margin: 1rem 0 0.4rem; }
.progress-chart { display: block; width: 100%; min-width: 46rem; height: auto; }

.chart-grid { stroke: rgba(255, 255, 255, 0.14); stroke-width: 1; }
.chart-grid-upcoming { stroke-dasharray: 3 4; }
.chart-tick { fill: rgba(255, 255, 255, 0.75); font-size: 12px; font-weight: 600; }
.chart-tick-upcoming { fill: rgba(255, 255, 255, 0.38); }
.chart-name { fill: rgba(255, 255, 255, 0.92); font-size: 12.5px; font-weight: 700; }

.progress-table-wrap { overflow-x: auto; margin: 0.8rem 0 0.4rem; }
.progress-table { border-collapse: collapse; width: 100%; font-size: 0.95rem; white-space: nowrap; }
.progress-table th, .progress-table td { padding: 0.4rem 0.6rem; text-align: center; }
.progress-table thead th { font-size: 0.8rem; opacity: 0.75; border-bottom: 1px solid rgba(128, 128, 128, 0.35); }
.progress-table tbody tr:nth-child(odd) { background: rgba(255, 255, 255, 0.045); }
.progress-name-col { text-align: left !important; }
.progress-chip { font-size: 0.85rem; padding: 0.22rem 0.7rem; }
.progress-rank { opacity: 0.6; font-size: 0.85em; }
.progress-up { color: #2ecc71; font-weight: 700; font-size: 0.85em; }
.progress-down { color: #e05545; font-weight: 700; font-size: 0.85em; }
.progress-upcoming { opacity: 0.35; }
.progress-soon { font-size: 0.7rem; letter-spacing: 0.06em; }

@media (max-width: 40rem) {
  .progress-table { font-size: 0.82rem; }
  .progress-table th, .progress-table td { padding: 0.3rem 0.4rem; }
}

.progress-section {
  margin: 1.4rem 0 0.2rem;
  font-size: 1.05rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.85;
}

/* Grafikon-lapozó: helyezés ↔ konkrét érték (pont/gól). */
.chart-pager { margin: 1rem 0 0.4rem; }
.chart-tabs { display: flex; gap: 0.4rem; margin-bottom: 0.4rem; }
.chart-tab {
  padding: 0.3rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(128, 128, 128, 0.45);
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  opacity: 0.65;
}
.chart-tab.active {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.5);
  opacity: 1;
}
.chart-slides { overflow: hidden; }
.chart-track { display: flex; width: 200%; transition: transform 0.35s ease; }
.chart-slide { width: 50%; flex: none; min-width: 0; }
.chart-pager .progress-chart-wrap { margin: 0; }

.chart-hgrid { stroke: rgba(255, 255, 255, 0.1); stroke-width: 1; }

/* Ligagyőzelem-rovátkák a tabella jobb szélén: annyi vonalka, ahány ligát
   nyert. currentColor = a sor szövegszíne, így minden franchise-háttéren
   olvashatók (a sorok háttere a fehértől a magentáig terjed). */
.win-notches {
  margin-left: auto;
  flex: none;
  display: flex;
  align-items: center;
  gap: 0.24rem;
  padding-left: 0.6rem;
}

/* A magasság a névsor betűméretéhez (1,15rem) igazodik, hogy a rovátka a
   név végi kupával azonos súlyú legyen — nagyobb méret azt sugallná, hogy
   fontosabb nála. */
.win-notch {
  display: block;
  width: 0.2rem;
  height: 1.05rem;
  border-radius: 0.1rem;
  background: currentColor;
  opacity: 0.85;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
}

@media (max-width: 40rem) {
  .win-notches { gap: 0.2rem; padding-left: 0.4rem; }
  .win-notch { width: 0.18rem; height: 0.9rem; }
}

/* --- Csapatkatalógus (/csapatok/) és a drafttábla erősorrend-jelzései --- */

/* A rang és a STAT a szabad csapatok listájában: halvány, monospace jelzés,
   hogy a név és a csillagár maradjon a sor domináns eleme. */
.ft-rank,
.ft-stat {
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.6;
}

.ft-rank { min-width: 2.4rem; }

.ft-stat {
  padding: 0 0.3rem;
  border: 1px solid currentColor;
  border-radius: 0.5rem;
  cursor: help;
}

.catalogue-filters {
  display: flex;
  align-items: flex-end;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin: 0 0.2rem 0.9rem;
}

.catalogue-filters label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.78rem;
  opacity: 0.75;
}

.catalogue-filters select { padding: 0.3rem; }

.catalogue-reset { font-size: 0.8rem; opacity: 0.7; }

/* A tábla 9 oszlopa keskeny kijelzőn nem fér ki — a lap maga sose görgessen
   vízszintesen, csak a táblázat a saját dobozában. */
.table-scroll { overflow-x: auto; }

.catalogue {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.catalogue th,
.catalogue td {
  padding: 0.28rem 0.4rem;
  border-bottom: 1px solid rgba(127, 127, 127, 0.2);
  text-align: right;
  white-space: nowrap;
}

.catalogue th { font-size: 0.72rem; text-transform: uppercase; opacity: 0.6; }

.catalogue .c-name,
.catalogue .c-cont { text-align: left; }

.catalogue .c-rank,
.catalogue .c-star,
.catalogue .c-credit,
.catalogue .c-stat,
.catalogue .c-part { font-variant-numeric: tabular-nums; }

.catalogue .c-game { font-size: 0.78rem; opacity: 0.5; margin-left: 0.3rem; }

.catalogue .c-part { opacity: 0.6; }

/* Nevezett csapat: nem rejtjük el, csak halványítjuk — a drafton addig is
   érdekes, mennyibe került volna. */
.catalogue tr.taken { opacity: 0.42; }

/* --- Archív idénynézetek (?ideny=N) --- */

/* Vízszintes sáv, hogy egy pillantásra látszódjon: ez nem az élő idény. */
.archive-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin: 0 0.2rem 0.9rem;
  padding: 0.5rem 0.7rem;
  border-radius: 0.5rem;
  background: rgba(255, 196, 0, 0.14);
  border: 1px solid rgba(255, 196, 0, 0.35);
  font-size: 0.85rem;
}

.archive-banner a { color: inherit; white-space: nowrap; }

/* Draft Day-zárolás (14.3). Szándékosan HŰVÖS (kékes), nem az archív sáv
   borostyánja: a kettő ugyanazon a lapon is megjelenhet (archív nézet a
   draft alatt nem, de a menedzserlap és a katalógus közös krómot használ),
   és a két üzenet mást jelent — az egyik lezárt idényről szól, a másik a
   most futó draft alatti befagyasztásról. */
.freeze-banner {
  margin: 0 0.2rem 0.9rem;
  padding: 0.5rem 0.7rem;
  border-radius: 0.5rem;
  background: rgba(90, 160, 255, 0.14);
  border: 1px solid rgba(90, 160, 255, 0.38);
  font-size: 0.85rem;
  line-height: 1.45;
}

.freeze-banner a { color: inherit; font-weight: 700; }

.archive-links {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.3rem;
}

.archive-links a {
  padding: 0.25rem 0.6rem;
  border: 1px solid currentColor;
  border-radius: 1rem;
  font-size: 0.82rem;
  text-decoration: none;
  opacity: 0.85;
}

.archive-links a:hover { opacity: 1; }

/* A ligák egybetűs kódok — egyforma szélességgel rendezettebb a sor. */
.archive-leagues a { min-width: 2.2rem; text-align: center; }

.archive-league-label {
  margin: 0.7rem 0 0;
  font-size: 0.78rem;
  opacity: 0.6;
}

/* --- Tervezési időszak: ajánlat igen, lezárás nem (12.2) --- */

/* Az időzítési kapu nem hiba, hanem várakozás — ezért borostyán, nem piros,
   szemben a .prop-flag „már nem teljesíthető" jelzésével. */
.prop-gate {
  margin: 0.3rem 0;
  padding: 0.35rem 0.55rem;
  border-radius: 0.4rem;
  background: rgba(255, 196, 0, 0.16);
  border-left: 4px solid #d39e00;
  font-size: 0.85rem;
}

.prop-actions button[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

.phase-note {
  margin: 0 0.2rem 0.9rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.5rem;
  background: rgba(255, 196, 0, 0.14);
  border: 1px solid rgba(255, 196, 0, 0.35);
  font-size: 0.88rem;
  line-height: 1.45;
}

/* A csapat jelenlegi gazdája a katalógusban (garázs vagy már nevezett). */
.catalogue .c-owner {
  margin-left: 0.35rem;
  padding: 0 0.35rem;
  border-radius: 0.6rem;
  background: rgba(127, 127, 127, 0.22);
  font-size: 0.75rem;
  white-space: nowrap;
}

/* --- Pont- és kreditlista (a gólkirályi oldal mintájára) --- */

.value-standings .value-total {
  margin-left: auto;
  font-size: 1.3rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* A pontbontás (egyenleg + helyezési pont) csak kísérő adat, ezért a
   végösszeg elé kerül, halványabban. */
.value-standings .value-detail {
  margin-left: auto;
  font-size: 0.8rem;
  opacity: 0.7;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.value-standings .value-detail + .value-total { margin-left: 0.6rem; }

/* A kreditchip linkké vált — a chip kinézete marad. */
.credit-chip-link { color: inherit; text-decoration: none; }

/* ---- Pick/passz visszaigazoló lap ------------------------------------- */
/* A lap semmit nem ír: a szervező itt látja, MI történne. A zöld keret azt
   jelenti, hogy a rögzítés végigmenne; pirosra vált, ha van akadály. */
.confirm-card {
  border: 3px solid var(--clock-running);
}

.confirm-blocked {
  border-color: var(--danger);
}

.confirm-headline {
  margin: 0.6rem 0 0.4rem;
  font-size: clamp(1.5rem, 5vw, 2.4rem);
  font-weight: 800;
  line-height: 1.1;
}

.confirm-gamename {
  font-size: 0.55em;
  font-weight: 500;
  opacity: 0.7;
}

.confirm-facts {
  margin: 0.8rem 0;
  display: grid;
  gap: 0.35rem;
}

.confirm-facts > div {
  display: flex;
  gap: 0.6rem;
  align-items: baseline;
  border-bottom: 1px solid var(--surface-line);
  padding-bottom: 0.3rem;
}

.confirm-facts dt {
  flex: 0 0 9.5rem;
  opacity: 0.7;
  font-size: 0.9rem;
}

.confirm-facts dd {
  margin: 0;
  font-size: 1.05rem;
}

.confirm-parked {
  color: #ff8c1a;
}

.confirm-moves {
  font-size: 0.95rem;
  opacity: 0.85;
}

.confirm-form {
  margin-top: 1rem;
}

.confirm-form button {
  width: 100%;
  padding: 0.9rem 1rem;
  font-size: 1.1rem;
  font-weight: 700;
}

.confirm-problems {
  margin: 0.8rem 0 0;
}

.confirm-cancel {
  font-size: 1rem;
}

/* ---- „Küldött ajánlataim sorsa" ----
   A küldött ajánlatok kártyája csak a FÜGGŐKET mutatja; ez a blokk mondja meg,
   mi lett a többivel. Élő: a lekérdezés a `data-sent` kulcson cseréli. */
.my-sent { margin-top: 0.9rem; }

.sent-status-list { display: grid; gap: 0.35rem; }

.sent-status {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0.55rem;
  border-radius: 0.5rem;
  background: var(--chip-bg);
  /* A keret a státusz színét viszi — ugyanaz a nyelv, mint a Fórum sorain. */
  border-left: 4px solid #6b7280;
}

.sent-status-accepted { border-left-color: #e0a92e; }
.sent-status-rejected { border-left-color: var(--danger); }

.sent-status-state { margin-left: auto; white-space: nowrap; }
