/* Sporta Academy podľa SPORTA Brand Manual. Sestra prototypu Arena: zoznam vľavo, pracovná plocha vpravo.
   Písmo Bounded (Vlad Churkin, SIL OFL 1.1, licencia v bounded-OFL.txt) ako lokálny súbor, váhy 300 a 600.
   Nič sa nenačítava zvonku. Farby značky, plné plochy, bez animácií. */
@font-face{font-family:"Bounded";src:url(bounded.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
:root{
  --bg:#F3F3F3; --surface:#FFFFFF; --fg:#020123; --muted:#5C5B70; --line:#DCDCE3; --row:#F7F7F9;
  --brand:#312A7B; --brand-fg:#FFFFFF; --link:#312A7B; --academy:#0096EA; --academy-fg:#FFFFFF;
  --bad:#B42335; --warn:#9A5800; --ok:#1E6E45;
  --f:"Bounded",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#020123; --surface:#0E0C33; --fg:#F3F3F3; --muted:#B4B3C9; --line:#29275A; --row:#141240;
  --brand:#C2C3CD; --brand-fg:#020123; --link:#C2C3CD;
  --bad:#F08394; --warn:#E9AE5B; --ok:#6CCB97; color-scheme:dark}}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:300 14px/1.6 var(--f);font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--link)}
:focus-visible{outline:2px solid var(--link);outline-offset:2px}
b,strong,th,h1,h2,h3{font-weight:600}
p{margin:0 0 8px}

/* Rozloženie */
.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}
aside{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px 18px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow:auto}
.logo{display:block;padding:6px 4px;line-height:0}
.logo img{display:block;width:100%;max-width:190px;height:auto}
.logo .tmave{display:none}
@media (prefers-color-scheme:dark){.logo .svetle{display:none}.logo .tmave{display:block}}
.firm{font-size:12.5px;color:var(--muted);margin-top:2px}
nav{display:flex;flex-direction:column;gap:14px}
.grp-t{font-size:12.5px;color:var(--muted);margin:0 0 2px 8px}
nav a{display:flex;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:5px;color:var(--fg);text-decoration:none}
nav a:hover{background:var(--row)}
nav a.on{background:var(--academy);color:var(--academy-fg);font-weight:600}
.kto{margin-top:auto;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:6px}
.kto form{margin:0}
main{min-width:0;padding:20px max(16px,env(safe-area-inset-right,0px)) 60px max(16px,env(safe-area-inset-left,0px))}
.top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;justify-content:space-between;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:12px}
.top h1{font-size:19px;line-height:1.25;margin:0;text-transform:uppercase;color:var(--brand)}
.top p{margin:4px 0 0;color:var(--muted);max-width:75ch}
.cesta{font-size:13px;margin:0 0 2px}
.btn.menu-btn,.btn.zavriet{display:none}

/* Bloky */
.sec{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px;min-width:0;margin-bottom:14px}
.sec h2{font-size:15px;margin:0 0 10px}
.cols{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.cols .sec{margin-bottom:0}
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border:1px solid var(--line);border-radius:6px;background:var(--surface);margin-bottom:14px}
.figs>*{padding:12px 16px;border-right:1px solid var(--line);color:var(--fg);text-decoration:none}
.figs>*:last-child{border-right:0}
.figs a:hover{background:var(--row)}
.figs .v{display:block;font-size:20px;font-weight:600}
.figs .l{color:var(--muted);font-size:13px}

/* Tabuľky */
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{text-align:left;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line);padding:6px 8px;white-space:nowrap}
td{border-bottom:1px solid var(--line);padding:7px 8px;vertical-align:top}
tr:last-child td{border-bottom:0}
.num{text-align:right;white-space:nowrap}
.bad{color:var(--bad);font-weight:600}
.warn{color:var(--warn);font-weight:600}
.ok{color:var(--ok)}
.mut{color:var(--muted)}
.male{font-size:13px}
.prazdne{color:var(--muted);margin:0}

/* Tlačidlá a formuláre */
.btn{display:inline-block;border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:6px 12px;cursor:pointer;text-decoration:none;color:var(--fg);line-height:1.4}
.btn:hover{border-color:var(--fg)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:var(--brand-fg)}
.btn.zly{color:var(--bad)}
.btn-link{border:0;background:none;padding:0;color:var(--link);cursor:pointer;text-decoration:underline}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;align-items:end}
.form.uzky{max-width:640px}
.form label,.pole{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:13px}
input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:7px 9px;color:var(--fg);width:100%}
input[type=checkbox],input[type=radio]{width:15px;height:15px;accent-color:var(--brand);padding:0}
.zaskrt{display:inline-flex;flex-direction:row !important;align-items:center;gap:6px;color:var(--fg) !important;font-size:14px !important}
.chyba-pola{color:var(--bad);font-size:13px}
.note{color:var(--muted);margin:10px 0 0;max-width:80ch}
.warnbox{border:1px solid var(--bad);border-radius:6px;padding:8px 12px;margin-bottom:14px}
.okbox{border:1px solid var(--ok);border-radius:6px;padding:8px 12px;margin-bottom:14px}
.odkaz-kopia{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;background:var(--row);border:1px solid var(--line);border-radius:5px;padding:8px}
fieldset{border:0;padding:0;margin:0}

/* Kalendár */
.den{border-top:1px solid var(--line);padding:8px 0}
.den:first-child{border-top:0}
.den h3{font-size:14px;margin:0 0 4px}
.udalost{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:8px;padding:3px 0}
.udalost .cas{color:var(--muted);white-space:nowrap}
.udalost.zrusena .co{text-decoration:line-through;color:var(--muted)}

/* QR */
.qr{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:start}
.qr svg{width:180px;height:180px;background:#fff;border-radius:4px}

/* Prihlásenie */
.vstup{min-height:100vh;display:grid;place-items:center;padding:16px}
.vstup .sec{width:100%;max-width:380px;padding:24px}
.vstup h1{font-size:18px;margin:18px 0 4px;text-transform:uppercase;color:var(--brand)}
.vstup .logo{padding:8px 0}
.vstup .logo img{max-width:260px}
.vstup .btn.pri{width:100%;padding:9px 12px}
.vstup .form{grid-template-columns:1fr}

@media (max-width:860px){
  .app{grid-template-columns:1fr}
  aside{position:fixed;inset:0 auto 0 0;width:260px;z-index:20;display:none;height:100%}
  .app:has(#menu-prepinac:checked) aside{display:flex}
  .btn.menu-btn{display:inline-block;margin-bottom:12px}
  .btn.zavriet{display:inline-block;align-self:flex-start}
  .figs>*{border-right:0;border-bottom:1px solid var(--line)}
  .figs>*:last-child{border-bottom:0}
  .udalost{grid-template-columns:110px minmax(0,1fr)}
  .udalost .akcia{grid-column:2}
  .qr{grid-template-columns:1fr}
}
.skryte{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.mt{margin-top:12px}.mb{margin-bottom:12px}
