/* ============================================================
   Mariasova Liga - svetly motiv, velky font
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:         #f0f2f5;
  --bg-card:    #ffffff;
  --bg-input:   #ffffff;
  --bg-hover:   #f5f7fa;
  --bg-row:     #f8f9fb;
  --bg-stripe:  #f3f5f8;
  --side:       #1e3a5f;
  --border:     #d4d8e2;
  --border-hl:  #b0b8c8;
  --txt:        #1a2033;
  --txt-2:      #55637a;
  --txt-3:      #9aa0b0;
  --acc:        #1e3a5f;
  --acc-hl:     #2a5298;
  --acc-bg:     #edf1fa;
  --gold:       #c9a227;
  --grn:        #1a7a45;
  --grn-bg:     #e8f5ee;
  --grn-bd:     #a8d5bc;
  --red:        #c0392b;
  --red-bg:     #fdecea;
  --red-bd:     #f5b7b1;
  --blu-bg:     #eaf0fb;
  --blu-bd:     #a8c0e8;
  --ora-bg:     #fff4e5;
  --ora-bd:     #ffd8a8;
  --fix:        #922b21;
  --fix-bg:     #fdecea;
  --fix-bd:     #f5b7b1;
}

html { font-size: 16px; }

body {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  background: var(--bg);
  color: var(--txt);
  min-height: 100vh;
}

/* LAYOUT */
.layout { display: flex; min-height: 100vh; }

.sidebar {
  width: 232px;
  flex-shrink: 0;
  background: var(--side);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.logo { padding: 22px 18px 16px; border-bottom: 1px solid rgba(255,255,255,.15); text-align: center; }
.logo-suits { font-size: 22px; letter-spacing: 4px; color: var(--gold); margin-bottom: 5px; }
.logo h1 { font-family: 'Playfair Display', serif; font-size: 16px; font-weight: 700; line-height: 1.3; color: #fff; }

.sbadge { margin: 10px 13px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 7px; padding: 8px 12px; }
.sbadge .sl { font-size: 10px; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: 1px; }
.sbadge .sv { font-weight: 600; font-size: 14px; margin-top: 2px; color: #fff; }

nav { flex: 1; padding: 6px 0; }

.ni { display: flex; align-items: center; gap: 9px; padding: 10px 18px; cursor: pointer; font-size: 14px; color: rgba(255,255,255,.65); border-left: 3px solid transparent; transition: all .13s; text-decoration: none; }
.ni:hover { color: #fff; background: rgba(255,255,255,.08); }
.ni.active { color: #fff; border-left-color: var(--gold); background: rgba(255,255,255,.12); font-weight: 500; }
.ni-icon { width: 18px; text-align: center; font-size: 15px; }
.sep { height: 1px; background: rgba(255,255,255,.12); margin: 4px 0; }

.sidebar-user { padding: 13px 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; }
.su-name { font-weight: 600; color: #fff; }
.su-role { color: rgba(255,255,255,.45); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin: 2px 0 7px; }
.su-logout { color: rgba(255,255,255,.5); text-decoration: none; font-size: 12px; }
.su-logout:hover { color: var(--gold); }

.main { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; }

.topbar { height: 54px; background: #fff; border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 26px; gap: 10px; flex-shrink: 0; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.topbar h2 { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 600; flex: 1; color: var(--txt); }

.content { flex: 1; overflow-y: auto; padding: 24px 28px; }

/* BUTTONS */
.btn { display: inline-block; padding: 8px 18px; border-radius: 7px; font-size: 14px; font-weight: 500; cursor: pointer; border: 1.5px solid transparent; font-family: 'Source Sans 3', sans-serif; transition: all .13s; text-decoration: none; line-height: 1.4; white-space: nowrap; }
.btn-gold  { background: var(--acc);  color: #fff;          border-color: var(--acc); }
.btn-gold:hover  { background: var(--acc-hl); border-color: var(--acc-hl); }
.btn-out   { background: #fff;        color: var(--acc-hl); border-color: var(--border-hl); }
.btn-out:hover   { border-color: var(--acc); background: var(--acc-bg); }
.btn-outline { background: #fff; color: var(--acc-hl); border-color: var(--border-hl); }
.btn-outline:hover { border-color: var(--acc); background: var(--acc-bg); }
.btn-gr  { background: var(--grn-bg); color: var(--grn);    border-color: var(--grn-bd); }
.btn-gr:hover  { background: #d4eddf; }
.btn-rd  { background: var(--red-bg); color: var(--red);    border-color: var(--red-bd); }
.btn-rd:hover  { background: #fad7d4; }
.btn-sm  { padding: 5px 11px; font-size: 12.5px; }
.btn-group { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; }

/* FLASH */
.flash { padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 15px; border: 1.5px solid; }
.flash-success { background: var(--grn-bg); border-color: var(--grn-bd); color: var(--grn); }
.flash-error   { background: var(--red-bg); border-color: var(--red-bd); color: var(--red); }
.flash-info    { background: var(--blu-bg); border-color: var(--blu-bd); color: var(--acc-hl); }

/* CARDS */
.card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; padding: 20px 22px; margin-bottom: 18px; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.card-hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 8px; flex-wrap: wrap; }
.card-title { font-family: 'Playfair Display', serif; font-size: 17px; font-weight: 600; color: var(--txt); }

/* STATS */
.stats-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 20px; }
.stat { background: var(--bg-card); border: 1px solid var(--border); border-radius: 9px; padding: 16px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
.stat-n { font-family: 'Playfair Display', serif; font-size: 32px; font-weight: 700; color: var(--acc); line-height: 1; }
.stat-l { font-size: 11px; color: var(--txt-2); margin-top: 4px; text-transform: uppercase; letter-spacing: 1px; }

/* TABLE */
.tbl-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
thead th { text-align: left; padding: 9px 11px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--txt-2); border-bottom: 2px solid var(--border); background: var(--bg-stripe); }
tbody tr { border-bottom: 1px solid var(--border); transition: background .1s; }
tbody tr:hover { background: var(--bg-row); }
tbody td { padding: 9px 11px; color: var(--txt); }
.td-right  { text-align: right; }
.td-center { text-align: center; }
.rank-1 { color: #b8860b; font-weight: 700; font-size: 17px; }
.rank-2 { color: #555;    font-weight: 600; }
.rank-3 { color: #a0522d; font-weight: 600; }
.pts      { color: var(--acc-hl); font-weight: 600; }
.pts-bold { color: var(--acc);    font-weight: 700; font-size: 16px; }

/* BADGES */
.bdg { display: inline-block; padding: 3px 9px; border-radius: 20px; font-size: 12px; font-weight: 500; border: 1px solid transparent; }
.b-g { background: var(--grn-bg); color: var(--grn);    border-color: var(--grn-bd); }
.b-b { background: var(--blu-bg); color: var(--acc-hl); border-color: var(--blu-bd); }
.b-o { background: var(--ora-bg); color: #7a4400;       border-color: var(--ora-bd); }
.b-r { background: var(--red-bg); color: var(--red);    border-color: var(--red-bd); }
.b-f { background: #fff8e6;       color: #7a4400;       border-color: #f0d080; }

/* FORMS */
.form-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 15px; margin-bottom: 18px; }
.form-group { display: flex; flex-direction: column; gap: 5px; }
.form-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--txt-2); }
.form-input, .form-select, .form-textarea { background: var(--bg-input); border: 1.5px solid var(--border); border-radius: 7px; color: var(--txt); padding: 9px 12px; font-size: 15px; font-family: 'Source Sans 3', sans-serif; width: 100%; transition: border-color .13s; }
.form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--acc-hl); box-shadow: 0 0 0 3px rgba(42,82,152,.1); }
.form-textarea { resize: vertical; min-height: 80px; }
.form-hint  { font-size: 12px; color: var(--txt-3); margin-top: 2px; }
.form-error { font-size: 12px; color: var(--red); margin-top: 2px; }

/* INFO BOX */
.ibox { background: var(--blu-bg); border: 1px solid var(--blu-bd); border-radius: 8px; padding: 11px 15px; font-size: 14.5px; color: var(--txt); margin-bottom: 16px; line-height: 1.55; }
.ibox strong { color: var(--acc); }

/* ROTACNI PLAN */
.plan-wrap { overflow-x: auto; }
.plan-tbl { border-collapse: collapse; min-width: 500px; width: 100%; }
.plan-tbl th { padding: 9px 10px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--txt-2); background: var(--bg-stripe); text-align: center; border: 1px solid var(--border); }
.plan-tbl td { padding: 0; border: 1px solid var(--border); vertical-align: middle; text-align: center; }
.plan-tbl .rh { padding: 9px 12px; background: var(--bg-stripe); font-size: 13px; font-weight: 600; color: var(--acc); white-space: nowrap; }
.plan-cell { display: flex; align-items: center; justify-content: center; gap: 3px; padding: 6px; flex-wrap: wrap; min-height: 42px; }
.nc { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; font-size: 14px; font-weight: 700; font-family: 'Source Sans 3', sans-serif; flex-shrink: 0; border: 2px solid; }
.nc-n { background: var(--blu-bg); border-color: var(--blu-bd); color: var(--acc-hl); }
.nc-f { background: var(--fix-bg); border-color: var(--fix-bd); color: var(--fix); }
.nc-d { background: var(--red-bg); border-color: var(--red-bd); color: var(--red); }
.mx { border-collapse: collapse; font-size: 11px; }
.mx th, .mx td { width: 24px; height: 24px; text-align: center; border: 1px solid var(--border); }
.mx th { font-size: 9px; color: var(--txt-3); background: var(--bg-stripe); font-weight: 400; }
.mx .mh { font-size: 10px; color: var(--txt-2); font-weight: 600; padding: 0 5px; text-align: right; }
.m0 { background: var(--bg-stripe); color: var(--txt-3); }
.m1 { background: var(--grn-bg); color: var(--grn); }
.m2 { background: var(--ora-bg); color: #7a4000; }
.m3 { background: #ffe8c0; color: #a04000; }
.m4 { background: var(--red-bg); color: var(--red); }

/* LOSOVANI CISEL */
.draw-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 14px; }
.draw-slot { background: var(--bg-card); border: 1.5px solid var(--border); border-radius: 8px; padding: 10px 13px; display: flex; align-items: center; gap: 10px; }
.draw-num { width: 34px; height: 34px; border-radius: 50%; background: var(--blu-bg); border: 1.5px solid var(--blu-bd); display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 16px; color: var(--acc-hl); flex-shrink: 0; }
.draw-num.fx { background: var(--fix-bg); border-color: var(--fix-bd); color: var(--fix); }
.draw-info .dl { font-size: 10px; color: var(--txt-3); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 1px; }
.draw-info .dn { font-size: 14px; font-weight: 500; color: var(--txt); }

/* VYSLEDKY KOL */
.round-tabs { display: flex; gap: 5px; margin-bottom: 14px; flex-wrap: wrap; }
.rtab { padding: 7px 15px; border-radius: 20px; font-size: 14px; cursor: pointer; border: 1.5px solid var(--border); background: #fff; color: var(--txt-2); font-family: 'Source Sans 3', sans-serif; transition: all .13s; text-decoration: none; }
.rtab:hover  { border-color: var(--acc); color: var(--acc); }
.rtab.active { background: var(--acc); border-color: var(--acc); color: #fff; font-weight: 500; }
.rtab.done   { border-color: var(--grn-bd); color: var(--grn); background: var(--grn-bg); }
.rtab.fin    { border-color: var(--ora-bd); color: #7a4400; background: var(--ora-bg); }
.rt-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 9px; overflow: hidden; margin-bottom: 10px; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
.rt-hdr { background: var(--acc); padding: 9px 14px; font-size: 14px; font-weight: 600; color: #fff; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 7px; }
.rt-grid { display: grid; grid-template-columns: 32px 1fr 90px 90px 70px 75px; gap: 5px; padding: 9px 14px; align-items: center; border-bottom: 1px solid var(--border); }
.rt-grid:last-child { border-bottom: none; }
.rt-grid-hdr { display: grid; grid-template-columns: 32px 1fr 90px 90px 70px 75px; gap: 5px; padding: 5px 14px; font-size: 10.5px; text-transform: uppercase; letter-spacing: 1px; color: var(--txt-3); background: var(--bg-stripe); font-weight: 600; }
.ri { background: #fff; border: 1.5px solid var(--border); border-radius: 6px; color: var(--txt); padding: 6px 8px; font-size: 14px; font-family: 'Source Sans 3', sans-serif; width: 100%; transition: border-color .13s; }
.ri:focus { outline: none; border-color: var(--acc-hl); box-shadow: 0 0 0 3px rgba(42,82,152,.1); }
.dp  { color: var(--grn); font-weight: 600; font-size: 14px; }
.dn2 { color: var(--red); font-weight: 600; font-size: 14px; }
.dz  { color: var(--txt-3); font-size: 14px; }

/* CHIP */
.chip { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; font-size: 14px; font-weight: 700; font-family: 'Source Sans 3', sans-serif; border: 2px solid; flex-shrink: 0; }
.chip-n { background: var(--blu-bg); border-color: var(--blu-bd); color: var(--acc-hl); }
.chip-f { background: var(--fix-bg); border-color: var(--fix-bd); color: var(--fix); }

/* FINALOVE KOLO */
.fs-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.fs-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.fs-hdr { padding: 9px 11px; font-size: 13.5px; font-weight: 600; border-bottom: 1px solid var(--border); display: flex; flex-direction: column; gap: 2px; color: var(--txt); background: var(--bg-stripe); }
.fs-place { font-size: 11px; color: var(--txt-2); }
.fs-row { padding: 7px 11px; font-size: 14px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.fs-row:last-child { border-bottom: none; }
.fs-w { font-size: 12px; color: var(--acc); font-weight: 500; }

/* LOGIN */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--bg); }
.login-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 36px 40px; width: 400px; max-width: 95%; box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.login-logo { text-align: center; margin-bottom: 28px; }
.login-logo .suits { font-size: 32px; letter-spacing: 5px; color: var(--gold); }
.login-logo h1 { font-family: 'Playfair Display', serif; font-size: 24px; margin-top: 8px; color: var(--txt); }

/* SCROLLBAR */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border-hl); border-radius: 3px; }

/* RESPONSIVE */
@media (max-width: 860px) {
  .sidebar { width: 100%; height: auto; position: relative; }
  .layout  { flex-direction: column; }
  .stats-row { grid-template-columns: repeat(2,1fr); }
  .fs-grid   { grid-template-columns: 1fr; }
  .draw-grid { grid-template-columns: repeat(2,1fr); }
  .rt-grid, .rt-grid-hdr { grid-template-columns: 28px 1fr 80px 80px 60px 65px; }
  .content { padding: 16px; }
}

/* ── TISK / PDF ──────────────────────────────────────────────── */
.btn-print {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 15px; border-radius: 7px; font-size: 14px; font-weight: 500;
  cursor: pointer; border: 1.5px solid var(--border-hl);
  background: #fff; color: var(--txt-2); font-family: 'Source Sans 3', sans-serif;
  transition: all .13s; text-decoration: none;
}
.btn-print:hover { border-color: var(--acc); color: var(--acc); background: var(--acc-bg); }

@media print {
  /* Skrýt sidebar, topbar, tlačítka, flash, navigaci */
  .sidebar, .topbar, .btn, .btn-print, .btn-group,
  .round-tabs, .no-print, form[method="POST"] { display: none !important; }

  /* Celá šířka bez paddingu */
  .main    { overflow: visible !important; }
  .content { padding: 0 !important; overflow: visible !important; }
  .layout  { display: block !important; }

  /* Bílé pozadí, černý text */
  body, .card, .rt-card, .plan-tbl, table {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
  }

  /* Karty bez stínu */
  .card { border: 1px solid #ccc !important; break-inside: avoid; margin-bottom: 12px !important; }

  /* Tabulky – čitelné v tisku */
  table { font-size: 11pt !important; width: 100% !important; }
  thead th { background: #f0f0f0 !important; color: #000 !important; border: 1px solid #aaa !important; font-size: 9pt !important; }
  tbody td, tbody tr { border: 1px solid #ccc !important; background: #fff !important; }
  tbody tr:nth-child(even) td { background: #f8f8f8 !important; }

  /* Rotační plán */
  .plan-tbl th, .plan-tbl td { border: 1px solid #aaa !important; }
  .plan-tbl .rh { background: #f0f0f0 !important; color: #000 !important; }
  .plan-cell { padding: 4px !important; }
  .nc { border: 1.5px solid #555 !important; color: #000 !important; background: #fff !important; font-size: 10pt !important; width: 22px !important; height: 22px !important; }
  .nc-f { background: #ffe0e0 !important; border-color: #c00 !important; }

  /* Výsledky kol */
  .rt-card { break-inside: avoid; border: 1px solid #aaa !important; }
  .rt-hdr  { background: #f0f0f0 !important; color: #000 !important; }

  /* Záhlaví stránky */
  .print-header { display: block !important; }

  /* Badgy – čitelné */
  .bdg { border: 1px solid #888 !important; background: #f0f0f0 !important; color: #000 !important; }

  /* Nová stránka před sekcemi */
  .page-break { page-break-before: always; }
}

/* Záhlaví při tisku – ve webovém zobrazení skryté */
.print-header { display: none; }

