/* Izgled administracije AK FIT. Dijele ga uređivanje sadržaja (index.html)
   i lige (lige.html), pa se ne razilaze. */
:root{
  --paper:#F1F5FA;--surface:#FFF;--surface-2:#E4EBF4;
  --ink:#0D2340;--ink-2:#3C557A;--ink-3:#75899F;
  --line:#D2DEEC;--line-strong:#AEC1DA;
  --blue:#0012DE;--blue-deep:#000EA8;--blue-wash:#E6E9FC;
  --ok:#0B6B3A;--ok-wash:#E4F4EA;--lose:#A3212B;--lose-wash:#FBE9EA;
  --upoz:#8A5A00;--upoz-wash:#FBF0D9;
}
/* Atribut hidden dolazi iz preglednikova stila, pa ga svako autorsko
   display:flex ili inline-flex nadjača. Bez ovoga se skriveni elementi
   i dalje vide. */
[hidden]{display:none!important}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:15px;line-height:1.55}
h1,h2,h3{font-family:"Big Shoulders Display",sans-serif;font-weight:800;text-transform:uppercase;line-height:.95;margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.hin{display:flex;align-items:center;gap:14px;height:62px}
.hin img{width:36px;height:36px;border-radius:50%}
.hin h1{font-size:21px;margin-right:auto}
.hin .sub{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}
.btn{appearance:none;cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--blue);background:var(--blue);color:#fff;text-decoration:none;display:inline-flex;gap:7px;align-items:center}
.btn:hover{background:var(--blue-deep);border-color:var(--blue-deep)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
/* Podloga se mora izričito vratiti: opći .btn:hover postavlja tamnoplavu,
   a ovo pravilo mijenja samo boju teksta — pa je ispadao plavi tekst na
   plavoj podlozi. */
.btn.ghost:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-wash)}
.btn.mali{padding:6px 10px;font-size:10.5px}
.btn:disabled{opacity:.45;cursor:default}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.prijava{max-width:380px;margin:12vh auto;background:var(--surface);border:1px solid var(--line);padding:26px}
.prijava img{width:64px;height:64px;border-radius:50%;display:block;margin:0 auto 16px}
.prijava h2{font-size:24px;text-align:center}
.prijava p{color:var(--ink-2);font-size:13.5px;text-align:center;margin:4px 0 18px}
.polje{display:grid;gap:5px;margin-bottom:12px}
label{font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
input,select,textarea{font-family:"IBM Plex Sans",sans-serif;font-size:14px;padding:8px 10px;width:100%;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink)}
textarea{min-height:70px;resize:vertical}
.poruka{padding:10px 12px;font-size:13px;margin:12px 0;border:1px solid}
.poruka.ok{background:var(--ok-wash);border-color:#B7DFC6;color:var(--ok)}
.poruka.ne{background:var(--lose-wash);border-color:#EEC2C5;color:var(--lose)}
nav.tabs{display:flex;border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto}
nav.tabs button{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:14px 15px;white-space:nowrap}
nav.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}
main{padding:24px 0 90px}
.kartica{background:var(--surface);border:1px solid var(--line);margin-bottom:18px}
.kartica>h3{padding:14px 16px;border-bottom:1px solid var(--line);font-size:18px}
.kartica>.tijelo{padding:16px}
.alatna{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--paper)}
.alatna .lab{font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.alatna select,.alatna input{width:auto;min-width:140px}
.desno{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
td input,td select{padding:6px 7px;font-size:13px}
/* Zaglavlje koje se može kliknuti za sortiranje. Gumb nasljeđuje izgled ćelije,
   pa se od običnog zaglavlja razlikuje tek strelicom i pokazivačem. */
th button.sort{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;
  background:none;border:0;padding:0;cursor:pointer;display:inline-flex;gap:5px;align-items:center}
th button.sort:hover{color:var(--blue)}
th button.sort i{font-style:normal;font-size:8px;color:var(--blue)}
th button.sort[aria-sort="none"] i{color:transparent}
#c-trazi{flex:1 1 200px;max-width:320px}
/* Popis članova ima deset stupaca. Bez donje granice širine browser stisne
   izbornik grupe na strelicu, pa se od naziva grupe ne vidi ništa — radije
   neka se tablica pomiče vodoravno. Na telefonu je ionako niz kartica. */
@media (min-width:761px){ table.popis-clanova{min-width:1120px} }
table.popis-clanova select{min-width:140px}

/* Gumbi uz člana stoje u jednom redu; tablica se po potrebi pomiče vodoravno. */
/* Druga i svaka daljnja grupa člana — ista težina kao prva, samo tiša boja,
   jer se prva mijenja izbornikom, a ostale su podatak. */
.jos-grupa{font-size:12px;color:var(--ink-2,var(--ink-3));margin-top:4px;line-height:1.35}
td.grupe-clana .jos-grupa:first-of-type{margin-top:5px}
td.akcije{white-space:nowrap;text-align:right}
td.akcije .btn{margin-left:4px}
@media (max-width:760px){
  td.akcije{white-space:normal;text-align:left;display:flex;flex-wrap:wrap;gap:6px}
  td.akcije .btn{margin-left:0}
}
/* Tablica računa ima jedanaest stupaca s poljima za upis. Stisnuti u širinu
   ekrana, tekst u njima se nije vidio, pa svaki dobiva svoju mjeru, a tablica
   se po potrebi pomiče vodoravno unutar .tbl. */
table.racuni{table-layout:fixed;min-width:0}
table.racuni th,table.racuni td{vertical-align:top}
table.racuni input,table.racuni select{width:100%;min-width:0}
/* Kvačica se ne rasteže preko cijelog stupca — ostaje kvačica. */
table.racuni input[type="checkbox"]{width:auto}
table.racuni col.ime{width:152px}
table.racuni col.mail{width:154px}
table.racuni col.uloga{width:94px}
table.racuni col.skole{width:148px}
table.racuni col.grupe{width:214px}
table.racuni col.korime{width:116px}
table.racuni col.uski{width:70px}
table.racuni col.datum{width:138px}
/* Datum zadnje prijave smije prijeći u dva reda umjesto da se odreže. */
table.racuni td.brojka{white-space:normal}
table.racuni col.akcije{width:226px}
table.racuni td .pomoc{font-size:10.5px;line-height:1.3}
table.racuni select[multiple]{padding:4px 6px}
table.racuni td:last-child,table.racuni th:last-child{white-space:nowrap}
/* Tablica s jedanaest stupaca ne stane na ekran, a stupci moraju ostati dovoljno
   široki da se sadržaj vidi. Zato se ne stišće ništa, nego se tablica pomiče —
   uz klizač koji je uvijek vidljiv. Bez ovoga macOS ga sakrije dok se ne krene
   pomicati, pa izgleda kao da desno nema ničega. */
.tbl.vodoravni{overflow-x:auto;scrollbar-width:auto;
  scrollbar-color:var(--ink-3) var(--surface-2)}
/* Vlastiti klizač ispod tablice — vidi se uvijek, za razliku od sistemskog. */
.klizac{height:14px;margin:6px 0 2px;background:var(--surface-2);border:1px solid var(--line);
  cursor:pointer;position:relative;touch-action:none}
.klizac .rucka{height:100%;background:var(--ink-3);cursor:grab;will-change:transform}
.klizac .rucka:active{cursor:grabbing;background:var(--ink-2)}
/* -webkit-appearance:none je na macOS-u ono što pretvara preklapajući klizač
   (koji se pojavi tek pri pomicanju) u stalni, koji zauzima svoj prostor. */
.tbl.vodoravni::-webkit-scrollbar{height:14px;-webkit-appearance:none;appearance:none}
.tbl.vodoravni::-webkit-scrollbar-track{background:var(--surface-2)}
.tbl.vodoravni::-webkit-scrollbar-thumb{background:var(--ink-3);border:3px solid var(--surface-2)}
.tbl.vodoravni::-webkit-scrollbar-thumb:hover{background:var(--ink-2)}
/* Ime i prezime stoje u dva stupca, da se može sortirati po jednom ili drugom.
   Na telefonu su retci kartice, pa se prezime vraća uz ime u naslov kartice
   umjesto da zauzme vlastiti red. */
.samo-uski{display:none}
tr:hover{background:var(--paper)}
.tbl{overflow-x:auto}
.izbaci{appearance:none;cursor:pointer;background:transparent;border:1px solid var(--line-strong);color:var(--ink-3);font-size:12px;padding:5px 8px;line-height:1}
.izbaci:hover{border-color:var(--lose);color:var(--lose)}
.mreza2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mreza3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:800px){.mreza2,.mreza3{grid-template-columns:1fr}}
.znak{font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border:1px solid currentColor;white-space:nowrap}
.znak.ok{color:var(--ok);background:var(--ok-wash)}
.znak.upoz{color:var(--upoz);background:var(--upoz-wash)}
.znak.ne{color:var(--lose);background:var(--lose-wash)}
.pomoc{font-size:12.5px;color:var(--ink-3);margin:8px 0 0}
code{font-family:"IBM Plex Mono",monospace;font-size:12px;background:var(--surface-2);padding:1px 5px}
.traka{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line-strong);box-shadow:0 -6px 20px rgba(13,35,64,.08)}
.traka-in{display:flex;align-items:center;gap:14px;padding:12px 0}
.traka .stanje{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--ink-3);margin-right:auto}
.traka .stanje b{color:var(--blue)}
.napomena{background:var(--blue-wash);border:1px solid var(--line);padding:12px 14px;margin:0 0 16px;font-size:13.5px;color:var(--ink-2)}
.napomena b{color:var(--ink)}

/* Uvoz iz tablice (članovi, rezultati). */
.uvoz-panel{border:1px dashed var(--line-strong);padding:14px 16px;background:var(--paper);margin:0}
.uvoz-panel.preko{border-color:var(--blue);background:var(--blue-wash)}
.uvoz-panel .pomoc{margin:8px 0 0}

/* ---------------------------------------------------------------- mobitel
   Treneri evidenciju vode na terenu, s telefona — pa sve mora stati u širinu
   i biti dovoljno veliko za prst. */
@media (max-width:760px){
  /* Zaglavlje ima zadanu visinu, zbog koje se gumbi nisu mogli prelomiti. */
  /* Logo i naslov ostaju u prvom redu, gumbi se prelamaju ispod — inače
     zaglavlje pojede trećinu ekrana prije nego se vidi išta korisno. */
  .hin{height:auto;min-height:52px;padding:9px 0;flex-wrap:wrap;row-gap:8px;gap:10px}
  .hin img{width:30px;height:30px}
  .hin h1{font-size:15px;line-height:1.05;flex:1 1 auto;min-width:0}
  .hin .sub{font-size:8.5px;letter-spacing:.1em}
  .hin .btn,.hin a.btn,.hin button.btn{font-size:10px;padding:7px 9px}

  .alatna{flex-wrap:wrap;row-gap:9px;padding:11px 13px}
  .alatna .desno{margin-left:0;width:100%}
  .alatna select,.alatna input{min-width:0;flex:1 1 130px}

  .kartica>h3{font-size:16px;padding:12px 13px}
  .kartica>.tijelo{padding:13px}
  .mreza2,.mreza3{grid-template-columns:1fr}

  /* Tablica s osam stupaca na telefonu se ne da stisnuti: izbornik grupe ostao
     je širok 33 px, pa se od naziva grupe vidjela samo strelica. Zato ovakve
     tablice na telefonu prestaju biti tablice — svaki redak postane kartica,
     a naziv stupca stoji kao oznaka lijevo od vrijednosti. */
  .tbl.slozivo{overflow-x:visible}
  .tbl.slozivo table,.tbl.slozivo tbody,.tbl.slozivo tr,.tbl.slozivo td{display:block;width:auto}
  .tbl.slozivo thead{display:none}
  /* Ime ide na vrh kartice bez obzira na to koji je stupac po redu u tablici —
     na Novim prijavama kvačica za označavanje inače dođe prije imena. */
  .tbl.slozivo tr{border:1px solid var(--line-strong);margin:0 0 10px;background:var(--surface);
    display:flex;flex-direction:column}
  .tbl.slozivo td.glava{order:-1}
  .tbl.slozivo td{border:0;border-top:1px solid var(--line);padding:8px 12px;
    display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .tbl.slozivo td::before{content:attr(data-oznaka);flex:0 0 92px;
    font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-3)}
  .tbl.slozivo td[data-oznaka=""]::before,.tbl.slozivo td.glava::before{content:none}
  .tbl.slozivo td:empty{display:none}
  .tbl.slozivo td.glava{display:block;border-top:0;padding:11px 12px;background:var(--paper)}
  .tbl.slozivo td.glava b{font-size:16px}
  .tbl.slozivo td.prez{display:none}
  .samo-uski{display:inline}
  /* Polja zauzmu ostatak širine i narastu na veličinu za prst. */
  .tbl.slozivo td select,.tbl.slozivo td input[type="date"]{flex:1 1 150px;width:auto;
    font-size:15px;padding:10px}
  .tbl.slozivo td.sirok{display:block}
  .tbl.slozivo td.sirok::before{display:block;margin-bottom:6px}

  /* Veće mete za prst: WCAG traži barem 24 px, a s rukavicama i po kiši treba više. */
  input[type="checkbox"]{width:26px;height:26px}
  .btn.mali{padding:9px 12px;font-size:11px}
  td,th{padding:10px 8px}
}

@media (max-width:480px){
  .wrap{padding:0 12px}
  nav.tabs button{padding:12px 10px;font-size:11px}
  .hin h1{flex:1 1 100%;order:3}
  .hin h1 .sub{display:inline;margin-left:6px}
}