/* STK ČBA – rozpis soutěží
   Barvy a písma dle Baseball Czechia / Extraliga Brandguides.
   Písma: Homerun CZ (nadpisy) a Inria Serif (text) – soubory vložte do assets/fonts/ */

@font-face { font-family: "Homerun CZ"; src: url("fonts/HomerunCZ.woff2") format("woff2"), url("brand/fonts/HomerunCZ.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inria Serif"; src: url("fonts/InriaSerif-Regular.woff2") format("woff2"), url("brand/fonts/InriaSerif-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inria Serif"; src: url("fonts/InriaSerif-Bold.woff2") format("woff2"), url("brand/fonts/InriaSerif-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  /* Baseball Czechia */
  --blue: #063B70; --blue-dark: #113161;
  --red: #DD0C29; --red-dark: #9A1915;
  --beige: #FFEFCF; --beige-warm: #EDE2C9;
  /* Extraliga */
  --anthracite: #1D2023; --grey: #B4BBBF; --grey-dark: #858890; --beige-x: #D9D0B9;

  --primary: var(--blue); --primary-dark: var(--blue-dark);
  --accent: var(--red); --accent-dark: var(--red-dark);
  --paper: #fffaf0; --surface: #fff; --line: #e3d9c2; --ink: #1D2023; --muted: #5d6066;
  --ok: #2e7d32; --warn: #b26a00; --err: var(--red);
  --head: "Homerun CZ", "Oswald", "Bebas Neue", "Arial Narrow", Impact, sans-serif;
  --text: "Inria Serif", Georgia, "Times New Roman", serif;
  --ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.theme-extraliga {
  --primary: var(--anthracite); --primary-dark: #000;
  --accent: var(--grey-dark); --accent-dark: var(--anthracite);
  --beige-warm: var(--beige-x);
}

* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--text); line-height: 1.45; }
a { color: var(--primary); }
h1, h2, h3 { font-family: var(--head); font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--primary); line-height: 1.1; }
h1 { font-size: 2rem; margin: .2em 0 .6em; }
h2 { font-size: 1.35rem; margin: 1.6em 0 .6em; }
h3 { font-size: 1.1rem; margin: 1.2em 0 .4em; }

/* hlavička */
.top { background: var(--primary); color: var(--beige); border-bottom: 5px solid var(--accent); }
.top .in { max-width: 1280px; margin: 0 auto; padding: .7rem 1.2rem; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: .7rem; color: var(--beige); text-decoration: none; }
.brand img { height: 46px; width: auto; }
.brand .wm { font-family: var(--head); font-size: 1.4rem; text-transform: uppercase; letter-spacing: .04em; line-height: 1; }
.brand .wm small { display: block; font-family: var(--text); text-transform: none; font-size: .8rem; letter-spacing: 0; opacity: .85; }
.nav { display: flex; gap: .2rem; flex-wrap: wrap; margin-left: auto; font-family: var(--ui); font-size: .92rem; }
.nav a { color: var(--beige); text-decoration: none; padding: .4rem .7rem; border-radius: 3px; }
.nav a:hover, .nav a.on { background: rgba(255,239,207,.15); }

main { max-width: 1280px; margin: 0 auto; padding: 1.4rem 1.2rem 4rem; }
.foot { text-align: center; color: var(--muted); font-size: .8rem; padding: 2rem 1rem; font-family: var(--ui); }

/* komponenty */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 1.1rem 1.3rem; margin-bottom: 1.2rem; }
.card.beige { background: var(--beige); }
.grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.right { text-align: right; }
.nowrap { white-space: nowrap; }
.row { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.spacer { flex: 1; }

.btn, button { font-family: var(--ui); font-size: .92rem; display: inline-block; padding: .5rem .95rem; border-radius: 4px; border: 1px solid var(--primary);
  background: var(--primary); color: #fff; cursor: pointer; text-decoration: none; line-height: 1.2; }
.btn:hover, button:hover { background: var(--primary-dark); }
.btn.alt, button.alt { background: transparent; color: var(--primary); }
.btn.alt:hover, button.alt:hover { background: var(--beige); }
.btn.red, button.red { background: var(--accent); border-color: var(--accent); }
.btn.red:hover, button.red:hover { background: var(--accent-dark); }
.btn.sm, button.sm { padding: .25rem .55rem; font-size: .82rem; }
button.link { background: none; border: 0; color: var(--accent); padding: 0; text-decoration: underline; }

label { display: block; font-family: var(--ui); font-size: .85rem; font-weight: 600; margin: .6rem 0 .25rem; color: var(--muted); }
label.inline { display: inline-flex; gap: .4rem; align-items: center; font-weight: 400; color: var(--ink); margin: .2rem 1rem .2rem 0; }
input[type=text], input[type=email], input[type=password], input[type=date], input[type=time], input[type=number], select, textarea {
  font-family: var(--ui); font-size: .95rem; padding: .45rem .55rem; border: 1px solid #c9bfa8; border-radius: 4px; background: #fff; width: 100%; max-width: 100%; }
textarea { min-height: 6rem; }
.fields { display: grid; gap: 0 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.help { font-family: var(--ui); font-size: .8rem; color: var(--muted); margin: .2rem 0 0; }

table.t { width: 100%; border-collapse: collapse; background: var(--surface); font-family: var(--ui); font-size: .9rem; }
table.t th { text-align: left; background: var(--beige-warm); color: var(--primary); font-weight: 700; padding: .45rem .6rem; border-bottom: 2px solid var(--primary); }
table.t td { padding: .4rem .6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
table.t tr:hover td { background: #fffdf7; }
table.t tr.wk td { background: var(--beige); font-weight: 700; color: var(--primary); border-top: 2px solid var(--line); }
table.t tr.mine td { background: #fff6dc; }
.scroll { overflow-x: auto; }

.badge { display: inline-block; font-family: var(--ui); font-size: .75rem; font-weight: 600; padding: .12rem .45rem; border-radius: 99px; background: var(--beige-warm); color: var(--primary); white-space: nowrap; }
.badge.ok { background: #dff0e0; color: var(--ok); }
.badge.warn { background: #fdecc8; color: var(--warn); }
.badge.err { background: #fbd9dd; color: var(--red-dark); }
.badge.dark { background: var(--primary); color: var(--beige); }

.flash { font-family: var(--ui); padding: .7rem 1rem; border-radius: 4px; margin-bottom: .6rem; border-left: 5px solid var(--ok); background: #eef7ee; }
.flash.err { border-color: var(--err); background: #fdecee; }
.flash.warn { border-color: var(--warn); background: #fff4e0; }

.tabs { display: flex; gap: .2rem; border-bottom: 3px solid var(--primary); margin: 1rem 0 1.2rem; flex-wrap: wrap; font-family: var(--ui); }
.tabs a { padding: .55rem 1rem; text-decoration: none; color: var(--primary); border-radius: 4px 4px 0 0; font-weight: 600; font-size: .92rem; }
.tabs a.on { background: var(--primary); color: var(--beige); }
.tabs a:not(.on):hover { background: var(--beige); }

.issues { margin: .3rem 0 0; padding-left: 1.1rem; font-size: .85rem; }
.issues li { margin: .15rem 0; }

/* kalendář formuláře */
.cal td.d { text-align: center; }
.cal select { width: auto; min-width: 9.5rem; font-size: .85rem; padding: .25rem .3rem; }
.cal select.s-venue { background: #fdecc8; border-color: var(--warn); }
.cal select.s-team { background: #fbd9dd; border-color: var(--red); }
.cal .np { font-size: .8rem; color: var(--red-dark); }
.cal input[type=text] { font-size: .85rem; padding: .25rem .4rem; }
.legend span { margin-right: 1rem; white-space: nowrap; display: inline-flex; align-items: center; gap: .3rem; }
.legend i { display: inline-block; width: 1rem; height: 1rem; border: 1px solid var(--line); }

/* přehled dostupnosti */
.grid-av { border-collapse: collapse; font-family: var(--ui); font-size: .78rem; }
.grid-av th, .grid-av td { border: 1px solid var(--line); padding: .2rem .3rem; text-align: center; white-space: nowrap; }
.grid-av th { background: var(--beige-warm); color: var(--primary); position: sticky; top: 0; }
.grid-av td.wk { text-align: left; font-weight: 700; background: var(--beige); }
.grid-av td.wk.c-np { background: #444; color: #fff; }
.c-v { background: #fdecc8; } .c-t { background: #fbd9dd; } .c-o { background: #d9e3ef; } .c-np { background: #444; color: #fff; }
.c-r { background: #e8dff5; }
.dot { display: inline-block; min-width: 1.6rem; }

.patterns label.inline { display: flex; }
details.edit summary { cursor: pointer; color: var(--primary); font-family: var(--ui); font-size: .82rem; }
details.edit form { display: grid; gap: .3rem .6rem; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); align-items: end; margin-top: .4rem; padding: .5rem; background: var(--beige); border-radius: 4px; }

@media print {
  .top, .nav, .noprint, .tabs, .flash, button, .btn, details.edit, .foot { display: none !important; }
  body { background: #fff; }
  main { padding: 0; max-width: none; }
  table.t { font-size: 9pt; }
  h1 { font-size: 16pt; }
}
