/* ============================================================
   ORIS — sistem dizajna "Topografska" (predlog A)
   ------------------------------------------------------------
   Pravilo: menja se ISKLJUČIVO izgled. Nijedan URL, parametar,
   sesija, AJAX poziv ni upit se ne dira. Strane emituju svoj HTML
   kao i pre (uglavnom bez klasa, sa inline stilovima i atributima
   tabele) — zato stilovi ciljaju gole elemente.
   ============================================================ */

:root{
  --paper:#FBF8F1; --paper-2:#F4F0E6; --card:#FFFFFF;
  --ink:#16261C; --ink-2:#41544A; --muted:#75857B;
  --forest:#1F5B3A; --forest-deep:#113A25;
  --contour:#C1683A; --contour-soft:#E4B79B;
  --open:#EFC24C; --water:#2C7BA8; --course:#C2185B;
  --line:#E6E1D3; --line-2:#D8D2C1;
  --ok:#1F7A4C; --warn:#B8760F; --bad:#B3382C;
  --r:14px; --r-s:9px;
  --sh:0 1px 2px rgba(22,38,28,.05), 0 8px 24px -12px rgba(22,38,28,.18);
  --f-display:"Space Grotesk","Inter",system-ui,sans-serif;
  --f-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --f-num:"JetBrains Mono",ui-monospace,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.55;
  overflow-x:hidden;
}
img{max-width:100%; height:auto}
iframe,embed,object,video{max-width:100%}
pre{overflow-x:auto}
a{color:var(--forest); text-decoration:none}
a:hover{text-decoration:underline; text-underline-offset:2px}
h1,h2,h3,h4{font-family:var(--f-display); line-height:1.2; margin:1.1em 0 .5em}
h1{font-size:clamp(24px,3.6vw,38px); letter-spacing:-.02em}
h2{font-size:clamp(20px,2.6vw,27px); letter-spacing:-.01em; color:var(--forest-deep)}
h3{font-size:clamp(17px,2vw,20px); color:var(--forest)}
b,strong{font-weight:650}
hr{border:0; border-top:1px solid var(--line); margin:1.4em 0}

/* ---------- školjka strane ---------- */
.wrap{width:min(1180px,100% - 32px); margin-inline:auto}
main.page{padding:22px 0 40px}
/* minmax(0,1fr): bez ovoga grid kolona raste do max-content sadržaja (široka tabela
   razvuče stranu i na telefonu), jer je grid item-ima min-width automatski max-content */
/* VAZNO: omotac strane NE sme biti grid — grid pretvara SVAKU direktnu decu (i
   one koji nisu elementi, npr. "|<a>2026</a>| |<a>2025</a>|" trake starih strana)
   u zasebne redove, pa se trake sa godinama/kategorijama raspadnu u vertikalu.
   Normalan tok + margina izmedju blokova daje isti ritam; grid ostaje samo tamo
   gde ga strana izricito trazi (klasa .grid). */
main.page > .wrap{display:flow-root}
main.page > .wrap > * + *{margin-top:18px}
main.page > .wrap.grid{display:grid; gap:18px; grid-template-columns:minmax(0,1fr)}
main.page > .wrap > *{min-width:0}
.grid{grid-template-columns:minmax(0,1fr)}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}

/* ---------- zaglavlje ---------- */
header.top{
  position:sticky; top:0; z-index:60;
  background:linear-gradient(180deg,var(--forest-deep),var(--forest));
  color:#fff; box-shadow:0 2px 14px -6px rgba(17,58,37,.5);
}
header.top .nav{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:10px 0}
.brand{display:flex; align-items:center; gap:10px; color:#fff; font-family:var(--f-display);
  font-weight:700; font-size:20px; letter-spacing:.02em}
.brand:hover{text-decoration:none}
.brand small{display:block; font-family:var(--f-body); font-weight:400; font-size:11px;
  opacity:.72; letter-spacing:.06em; text-transform:uppercase}
.brand .mark{display:grid; place-items:center; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.25)}
nav.links{display:flex; align-items:center; gap:2px; flex-wrap:wrap; margin-left:auto}
/* Zaglavlje mora da izgleda ISTO u oba pisma: prekidač pisma (Latinica/Ćirilica) ostaje
   u prvom redu, uz meni. Ćirilica je šira od latinice, pa se meni — kad ne stane u jedan
   red — prelama UNUTAR svog dela (već ima flex-wrap), umesto da izbaci prekidač pisma u
   drugi red (tada je bio pored prijave kluba, što je izgledalo neuredno). */
header.top .brand{flex:0 0 auto}
header.top nav.links{flex:0 1 auto; min-width:0}   /* sme da se SKUPI (ne i da raste) */
header.top .pismo{flex:0 0 auto}
/* .navtop: brend + meni + prekidač pisma u jednom redu. Red se NE prelama; meni se skupi i
   prelomi unutar sebe (ćirilica je šira od latinice) i prekidač pisma ostaje uvek u istom redu. */
header.top .navtop{display:flex; align-items:center; gap:14px; flex:1 1 100%; min-width:0; flex-wrap:nowrap}
header.top .navtop nav.links{flex:0 1 auto; min-width:0; margin-left:auto}
header.top .navtop .pismo{flex:0 0 auto}
nav.links a{color:rgba(255,255,255,.9); padding:8px 11px; border-radius:var(--r-s);
  font-size:14px; font-weight:500}
nav.links a:hover{background:rgba(255,255,255,.12); text-decoration:none}
nav.links a.on{background:rgba(255,255,255,.18)}

/* ---------- naslovna traka / hero ---------- */
.hero{position:relative; overflow:hidden; background:var(--paper-2); border-bottom:1px solid var(--line)}
.hero .contours{position:absolute; inset:0; width:100%; height:100%; opacity:.5}
.hero .inner{position:relative; padding:34px 0 30px}
.hero h1{margin:0 0 6px}
.hero p.lead{margin:0; color:var(--ink-2); max-width:62ch}
.hero .meta{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}

/* ---------- sekcije / kartice ---------- */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--sh); padding:18px 20px}
.card > :first-child{margin-top:0}
.card > :last-child{margin-bottom:0}
.card.tight{padding:12px 14px}
.card.plain{box-shadow:none}
.grid{display:grid; gap:16px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.row{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.spread{display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between}
.sect-title{display:flex; align-items:baseline; gap:10px; margin:0 0 10px;
  border-bottom:2px solid var(--line-2); padding-bottom:6px}
.sect-title h2,.sect-title h3{margin:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.num{font-family:var(--f-num); font-variant-numeric:tabular-nums}

/* ---------- tabele (strane emituju gole <table>) ---------- */
table{border-collapse:collapse; background:var(--card); max-width:100%}
table[border]{border:1px solid var(--line)!important}
td,th{padding:7px 10px; border:1px solid var(--line); vertical-align:top; text-align:left}
th{background:var(--paper-2); font-weight:650; color:var(--forest-deep)}
tr:nth-child(even) > td{background:#FCFAF5}
tr:hover > td{background:#F7F4EA}
td[align=center],td[align="center"]{text-align:center}
td b,td strong{color:var(--forest-deep)}
/* tabele sa brojevima (bodovanje, rezultati) — poravnate i čitljive */
td:has(> b),td.num{font-variant-numeric:tabular-nums}
.tw{overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--r-s)}
/* Trake sa linkovima (godine, kategorije) su <table align=center> sa JEDNOM ćelijom.
   Selektovano preko :has() da se stil NE prelije na podatkovne tabele koje takođe nose
   align=center — kalendar takmičenja je jedna od njih (naziv takmičenja je link i ne sme
   da dobije okvir/pilulu). Uslov `:not(:has(tr.kat))` je OBAVEZAN: kategorijske trake u
   rezultatima i tabeli prijavljenih su redovi sa jednom ćelijom (colspan), pa bi bez njega
   ovo pravilo centriralo sve ćelije tih podatkovnih tabela i pokvarilo poravnanje. */
table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)){border:0; background:transparent}
table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) > tbody > tr > td{
  border:0; background:transparent!important; padding:2px 1px; text-align:center}
table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) a{
  display:inline-block; padding:2px 6px; margin:1px 0; border:0; background:transparent;
  color:var(--forest); font-weight:600; font-size:14px; line-height:1.5; text-decoration:none}
table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) a:hover{
  background:transparent; color:var(--forest-deep); text-decoration:underline;
  text-underline-offset:3px}
/* Linkovi u podatkovnim tabelama (naziv takmičenja, akcije): bez okvira i bez pilula —
   link se prepoznaje po boji i podvučenoj liniji koja se podeblja na prelaz mišem. */
td a,th a{color:var(--forest); text-decoration:underline; text-decoration-color:currentColor;
  text-decoration-thickness:1px; text-underline-offset:3px}
td a:hover,th a:hover{color:var(--forest-deep); text-decoration-thickness:2px}

/* ---------- forme ---------- */
form{display:block}
label{display:inline-block; font-size:13.5px; font-weight:600; color:var(--ink-2); margin:10px 0 3px}
input[type=text],input[type=password],input[type=email],input[type=number],
input[type=date],input[type=search],input[type=file],select,textarea{
  font:inherit; color:var(--ink); background:var(--card);
  border:1px solid var(--line-2); border-radius:var(--r-s);
  padding:8px 10px; min-width:0; max-width:100%}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{
  outline:2px solid var(--water); outline-offset:2px}
input[readonly]{background:var(--paper-2); color:var(--ink-2)}
textarea{width:100%; min-height:90px}
input[type=checkbox],input[type=radio]{width:17px; height:17px; accent-color:var(--forest)}
button,input[type=submit],input[type=button],.btn{
  font:inherit; font-weight:600; cursor:pointer; border-radius:var(--r-s);
  border:1px solid var(--forest); background:var(--forest); color:#fff; padding:9px 15px}
button:hover,input[type=submit]:hover,input[type=button]:hover,.btn:hover{
  background:var(--forest-deep); text-decoration:none}
.btn-ghost,.btn.ghost{background:transparent; color:var(--forest); border-color:var(--line-2)}
.btn-ghost:hover{background:var(--paper-2); color:var(--forest-deep)}
.btn-login{background:var(--open); color:#3A2A05; border-color:#D9AC33}
.btn-login:hover{background:#E4B63F; color:#3A2A05}
.btn-sm{padding:5px 10px; font-size:13px}
fieldset{border:1px solid var(--line); border-radius:var(--r-s); padding:12px 14px}
legend{font-weight:650; color:var(--forest-deep); padding:0 6px}

/* ---------- obaveštenja / statusi ---------- */
.notice{border:1px solid var(--line-2); border-left:4px solid var(--water);
  background:#F4F8FB; border-radius:var(--r-s); padding:10px 13px; margin:12px 0}
.notice.ok{border-left-color:var(--ok); background:#F2F8F4}
.notice.warn{border-left-color:var(--warn); background:#FDF7EC}
.notice.bad{border-left-color:var(--bad); background:#FCF2F1}
.no-info{color:var(--muted); font-style:italic; padding:8px 0}
.badge{display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px;
  font-weight:600; border:1px solid var(--line-2); background:var(--paper-2); color:var(--ink-2)}
.badge.ok{background:#EAF5EE; color:#14603A; border-color:#BFE0CC}
.badge.warn{background:#FBF1DC; color:#8A5806; border-color:#E9D3A6}
.badge.bad{background:#FAE9E7; color:#8C2A20; border-color:#E7C3BE}
.chip{display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:999px;
  background:var(--paper-2); border:0; font-size:13.5px; font-weight:500; color:var(--forest-deep)}
.chip:hover{background:var(--line); text-decoration:none}
.chip.forest{background:#E7F0EA; color:var(--forest-deep)}
.chip.forest:hover{background:#D8E8DE}
.chip.course{background:#FCEFF4; color:#8E1145}

/* ---------- podnožje ---------- */
footer.foot{background:var(--forest-deep); color:rgba(255,255,255,.86);
  margin-top:34px; padding:26px 0 18px; font-size:13.5px}
footer.foot a{color:rgba(255,255,255,.9)}
footer.foot a:hover{color:#fff}
footer.foot .cols{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
footer.foot h4{margin:0 0 8px; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--open)}
footer.foot .contact{border-top:1px solid rgba(255,255,255,.16); margin-top:20px; padding-top:14px;
  display:flex; gap:10px; flex-wrap:wrap; justify-content:space-between; color:rgba(255,255,255,.7)}

/* ---------- pomoćne klase za pojedinačne strane (F3–F8) ---------- */
.karte-grid{display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.karte-grid img{width:100%; border-radius:var(--r-s); border:1px solid var(--line); background:#fff}
.stat{display:flex; flex-direction:column; gap:2px}
.stat b{font-family:var(--f-num); font-size:22px; color:var(--forest-deep)}
.dl{display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:14px}
.sticky-col{position:sticky; left:0; background:var(--card); z-index:1}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ---------- telefon: široke tabele skroluju u mestu (bez diranja PHP-a) ---------- */
@media (max-width:760px){
  body{font-size:15px}
  .wrap{width:calc(100% - 20px)}
  header.top .nav{padding:8px 0; gap:8px}
  header.top .navtop{flex-wrap:wrap; gap:8px}
  nav.links{margin-left:0; width:100%; max-width:100%; overflow-x:auto; order:3}
  header.top .navtop .pismo{margin-left:0}   /* na telefonu stane uz logo (bez margine od 6px) */
  nav.links a{padding:7px 9px; font-size:13.5px}
  .card{padding:14px 13px; border-radius:11px}
  td,th{padding:6px 7px; font-size:13.5px}
  .hero .inner{padding:22px 0 20px}
  /* kalendar, bodovanje i rezultati imaju 7-14 kolona: na telefonu se skroluju
     horizontalno u svom okviru, a kolone ostaju poravnate (tbody ostaje tabela).
     Vredi za SVE tabele, uključujući one sa atributom align=center (kalendar je
     baš takav, width=830) — trake sa godinama su uske pa se skrol ne vidi. */
  table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; width:100%}
  table > tbody, table > thead, table > tfoot{display:table; width:max-content; min-width:100%}
  table > tbody > tr, table > thead > tr{display:table-row}
  body{overflow-wrap:break-word}
  select,input,textarea{max-width:100%}
  .loginbox select{max-width:48vw}
  form{max-width:100%}
  /* trake sa linkovima (godine, kategorije, stranice) su tabele sa jednom ćelijom —
     njih ne treba da skroluju, nego da se lome u više redova (kao i pre redizajna) */
  table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)){overflow-x:visible}
  table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) > tbody{display:block; width:auto; min-width:0}
  table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) > tbody > tr{display:block}
  table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) > tbody > tr > td{
    display:block; border:0; background:transparent!important; padding:0}
  table[align=center]:has(> tbody > tr > td:only-child):not(:has(tr.kat)) a{margin:2px 1px}
}
@media (max-width:430px){
  td,th{padding:5px 6px; font-size:13px}
  nav.links a{padding:6px 8px}
}

/* ---------- navigacija: "Više" padajući meni i prijava kluba ---------- */
nav.links details.more{position:relative; display:inline-block}
nav.links summary{cursor:pointer; padding:8px 11px; border-radius:var(--r-s);
  color:rgba(255,255,255,.9); font-size:14px; font-weight:500; list-style:none}
nav.links summary::-webkit-details-marker{display:none}
nav.links summary::after{content:" ▾"; opacity:.7}
nav.links details[open] summary{background:rgba(255,255,255,.18)}
nav.links details .panel{position:absolute; right:0; top:calc(100% + 6px); z-index:70;
  background:var(--card); color:var(--ink); border:1px solid var(--line-2); border-radius:var(--r-s);
  box-shadow:var(--sh); padding:8px; min-width:240px; display:grid}
nav.links details .panel a{color:var(--forest-deep); padding:7px 9px; border-radius:7px; font-size:14px}
nav.links details .panel a:hover{background:var(--paper-2); text-decoration:none}
/* Podmeni u „Više" (npr. Serbia Open 2026 → po jedan link za svaki servis takmičenja). */
nav.links details .panel details.sub{border-top:1px solid var(--line); margin-top:4px; padding-top:4px}
nav.links details .panel details.sub > summary{color:var(--forest-deep); font-weight:600; font-size:14px;
  padding:7px 9px; border-radius:7px; cursor:pointer; list-style:none}
nav.links details .panel details.sub > summary::-webkit-details-marker{display:none}
nav.links details .panel details.sub > summary:hover{background:var(--paper-2)}
nav.links details .panel details.sub > summary::after{content:" \25BE"; opacity:.6}
nav.links details .panel details.sub[open] > summary::after{content:" \25B4"}
nav.links details .panel details.sub > .subpanel{display:grid; padding:2px 0 4px 12px}
nav.links details .panel details.sub > .subpanel a{font-size:13.5px; padding:5px 9px}
.loginbox{display:flex; align-items:center; gap:6px; margin-left:8px}

/* ---------- izbor pisma (latinica / ćirilica) ---------- */
/* Prekidač stoji u zaglavlju sajta, uz prijavu kluba. Izbor se pamti u kolačiću. */
.pismo{display:flex; align-items:center; gap:2px; margin-left:6px; padding:2px;
  border:1px solid rgba(255,255,255,.28); border-radius:999px}
.pismo a{color:rgba(255,255,255,.82); font-size:12.5px; font-weight:600;
  padding:3px 9px; border-radius:999px; text-decoration:none; white-space:nowrap}
.pismo a:hover{color:#fff; background:rgba(255,255,255,.14); text-decoration:none}
.pismo a.on{background:#fff; color:var(--forest-deep)}
.loginbox form{display:flex; align-items:center; gap:6px; margin:0}
.loginbox select,.loginbox input[type=password]{padding:6px 8px; font-size:13px; max-width:170px}
.loginbox input[type=submit]{padding:6px 11px; font-size:13px; background:var(--open);
  color:#3A2A05; border-color:#D9AC33}
.loginbox input[type=submit]:hover{background:#E4B63F; color:#3A2A05}
.loginbox a{color:rgba(255,255,255,.9); font-size:13px; margin-left:6px}
.loginbox b{color:#fff}
@media (max-width:900px){
  .loginbox{width:100%; margin-left:0; flex-wrap:wrap}
  nav.links details .panel{position:static; box-shadow:none; border-radius:var(--r-s)}
}

/* ---------- rezultati (rezultati.php) ---------- */
table.info{border:0; background:transparent}
table.info > tbody > tr > td{border:0; background:transparent!important; padding:3px 12px 3px 0}
table.info > tbody > tr > td:first-child{color:var(--muted); font-weight:600; white-space:nowrap}
table.rez tr.head th{background:var(--paper-2); color:var(--ink-2); font-size:12.5px;
  letter-spacing:.03em; text-transform:uppercase; text-align:left}
/* ovo mora posle `table.rez tr.head th` (viša specifičnost), inače naslovi brojeva ostanu levo */
table.rez tr.head th.num,table.rez tr.head th.time,table.rez tr.head th.mark{text-align:right}
table.rez{width:100%}
table.rez td.num{text-align:right; color:var(--muted); width:44px; white-space:nowrap}
/* ime i prezime u JEDNOJ koloni — nikad se ne razdvajaju */
table.rez td.ime,table.prij td.ime{white-space:nowrap; min-width:12ch}
/* zaglavlje prati poravnanje SVOJIH podataka — inače kolone izgledaju raštrkano */
table.rez th,table.prij th{white-space:nowrap}
table.rez th.num,table.rez th.time,table.rez th.mark,
table.prij th.num,table.rez td.num,table.prij td.num{text-align:right}
table.rez td.time{text-align:right}
table.rez td.mark{text-align:right}
table.rez th:first-child,table.prij th:first-child,
table.rez td:first-child,table.prij td:first-child{width:46px}
table.rez th.time,table.rez td.time{width:96px}
table.rez th.mark,table.rez td.mark{width:52px}
table.prij th.dani{text-align:left}
table.rez td.time{font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap}
table.rez td.mark,table.rez th.mark{width:58px; text-align:right; color:var(--course); font-weight:700}
table.rez form{display:inline}
table.rez input[type=text]{width:52px}
table.rez tr.dq td{color:var(--muted)}
/* kategorijska traka — isto za rezultate i za prijavljene */
table.prij tr.kat > td,table.rez tr.kat > td{background:var(--paper-2); border-top:2px solid var(--line-2);
  border-bottom:1px solid var(--line-2); font-family:var(--f-display); font-size:16px;
  font-weight:700; color:var(--forest-deep); padding:9px 12px; text-align:left}
table.rez td[align=right]{color:var(--course); font-weight:700; text-align:right}
/* traka sa danima (i svaka traka sa linkovima van tabele) — tipografski, bez okvira */
.bar{display:flex; flex-wrap:wrap; gap:2px 8px; justify-content:center; padding:6px 0}
.bar a{color:var(--forest); font-weight:600; font-size:14px; padding:1px 2px; text-decoration:none}
.bar a:hover{color:var(--forest-deep); text-decoration:underline; text-underline-offset:3px}

/* ---------- prijavljeni takmičari (listaTakmicenja.php) ---------- */
table.prij{width:100%}
table.prij td.dani{white-space:nowrap}
table.prij tr.uk > td{background:var(--paper-2); font-weight:700; color:var(--ink); text-align:right;
  border-top:1px solid var(--line-2)}
table.prij td.dani .badge{margin-right:2px; min-width:18px; text-align:center}
table.prij td.num{text-align:right; color:var(--muted); white-space:nowrap}
table.prij td.num:first-child{width:38px}
table.sum{margin-inline:auto}
table.sum th{white-space:nowrap}
table.sum th:not(:first-child),table.sum td.num{text-align:center}
/* na telefonu široke tabele klize u stranu — bez okvira, samo tiha napomena */
@media (max-width:760px){
  .tw::before{content:"\2190 tabela se skroluje u stranu \2192"; display:block;
    font-size:12px; color:var(--muted); padding:0 0 6px}
}

/* ---------- kalendar takmičenja (takmicenja.php) ---------- */
/* Zaglavlje je TAMNOZELENO (odabrana varijanta 3): ista boja kao okvir sajta i
   najčitljivije na širokoj tabeli sa 8 kolona. Stara `bgcolor=olive` je uklonjena. */
table.tak{width:100%; border-collapse:collapse; background:var(--card)}
table.tak tr.head th{background:var(--forest-deep); color:#fff; font-size:12.5px; font-weight:600;
  letter-spacing:.03em; text-transform:uppercase; text-align:left; white-space:nowrap; padding:8px 10px}
table.tak td{padding:7px 10px; border-top:1px solid var(--line); vertical-align:top}
table.tak tr:nth-child(even) td{background:#FCFAF5}
table.tak tr:not(.head):hover td{background:#F4F7F3}
table.tak th.dana,table.tak td.dana{text-align:right; white-space:nowrap}
table.tak td.datum{white-space:nowrap; color:var(--ink-2); font-variant-numeric:tabular-nums}
table.tak td.naziv{min-width:22ch}
table.tak td.akc{font-size:12.5px; color:var(--muted); line-height:1.95}
table.tak td.akc .stlnk{margin-left:6px}
/* status prijave u koloni AKCIJE: tekst je centriran u oznaci ("dugmetu"), a sama
   oznaka se skupi na širinu teksta i stoji na sredini kolone */
table.tak td.akc{text-align:center}
table.tak td.akc .badge{text-align:center; line-height:1.4; width:fit-content; max-width:100%}

/* ---------- bodovanje (bodovanje.php — prikazuje se u iframe-u na bodovanja.php) ---------- */
/* Strana sama nosi oris.css (nema okvir sajta, da se u iframe-u ne duplira zaglavlje). */
body.embed{background:var(--paper); padding:16px 18px 30px}
body.embed h2.liga{font-family:var(--f-display); font-size:21px; color:var(--forest-deep); margin:2px 0 12px}
body.embed h3.katnaz{font-size:16px; margin:14px 0 10px; color:var(--forest-deep)}
.yearbar,.rowchips,.cats{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 12px}
.yearbar .lbl{color:var(--muted); font-size:13px}
.chip.on{background:var(--forest-deep); color:#fff}
.chip.on:hover{background:var(--forest)}
table.bod{width:100%; border-collapse:collapse; font-size:13.5px}
table.bod tr.head th{background:var(--forest-deep); color:#fff; font-size:11.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.03em; padding:7px 9px; text-align:left; vertical-align:bottom}
table.bod tr.head th.kolo{text-align:center; font-size:12px; text-transform:none; letter-spacing:0;
  /* Fiksna širina kolone kola + prelamanje naziva takmičenja (bez ovoga naziv razvlači celu tabelu) */
  width:146px; min-width:146px; max-width:146px;
  white-space:normal; overflow-wrap:anywhere; word-break:break-word; hyphens:auto; line-height:1.3}
table.bod tr.head th a{color:#fff; text-decoration:none}
table.bod tr.head th a:hover{text-decoration:underline}
table.bod td{padding:6px 9px; border-top:1px solid var(--line); vertical-align:top; white-space:nowrap}
table.bod tr:nth-child(even) td{background:#FCFAF5}
table.bod tr:hover td{background:#F4F7F3}
table.bod td.num,table.bod th.num{text-align:right; font-variant-numeric:tabular-nums}
table.bod td.ime{font-weight:600}
table.bod td.time{font-variant-numeric:tabular-nums; color:var(--ink-2); width:88px; min-width:88px}
table.bod td.pts{font-variant-numeric:tabular-nums}
table.bod td.tot{font-weight:700; color:var(--forest-deep)}
/* rezultat koji se NE računa u bodovanje (ok=6): ćelija izgleda KAO SVAKA DRUGA (ista podloga, bez ivice,
   bez kurziva) — samo je boja rezultata svetlo siva (~50%) */
table.bod td.off{background:transparent; color:rgba(0,0,0,.30); font-style:normal}
/* glavna akcija (npr. „Prijava na takmičenje” na strani rezultata) - veća i uočljivija oznaka */
.chip.cta{font-size:14px; font-weight:600; padding:9px 18px; background:var(--forest-deep); color:#fff;
  border-color:var(--forest-deep); box-shadow:0 1px 2px rgba(17,58,37,.18)}
.chip.cta:hover{background:var(--forest); border-color:var(--forest); color:#fff}

.legend{margin:12px 0 4px; font-size:13px; color:var(--ink-2); line-height:1.5}
.legend .badge{margin-right:6px}
/* tekst u legendi koji pokazuje kako izgleda rezultat koji se ne računa u bodovanje —
   ista boja kao table.bod td.off; ako se .off promeni, promeniti i ovo */
.legend .off-sample{color:rgba(0,0,0,.30)}
table.bod td.disq{color:var(--bad); font-weight:700; letter-spacing:.02em}
table.bod td.mk{width:30px; text-align:center; color:var(--muted); font-weight:700}
table.bod td.mk.up{color:var(--ok)}
table.bod td.mk.down{color:var(--bad)}
/* ---------- bodovanje: fiksirane prve 4 kolone (mk, #, Reg. br., Ime i prezime) ----------
   Dok se tabela skroluje horizontalno (wrapper .tw), ime ostaje uz levu ivicu.
   - `border-collapse:separate` je OBAVEZAN (uz `collapse` sticky ćelije ne rade); prebacuje se
     samo na tabele koje imaju .fix ćelije, da izgled klubske tabele ostane isti.
   - `left` offseti (0, w0, w0+w1, ...) i `min-width` se NE mogu pisati u CSS: auto table layout
     ignoriše CSS širine kad sadržaj traži više. Zato ih meri i upisuje inline JS u bodovanje.php
     (funkcija layoutFixCols). Bez JS-a .fix ćelije ostaju statične — strana izgleda kao pre.
   - Pozadine su eksplicitne po stanju reda (parno/hover/zaglavlje) da se sadržaj koji skroluje
     ne providi kroz fiksirane kolone. */
table.bod:has(.fix){border-collapse:separate; border-spacing:0}
table.bod .fix{background:var(--card)}
table.bod tr:nth-child(even) td.fix{background:#FCFAF5}
table.bod tr:hover td.fix{background:#F4F7F3}
table.bod tr.head th.fix{background:var(--forest-deep); color:#fff}
table.bod .fix.ime{box-shadow:inset -1px 0 0 var(--line), 5px 0 9px -6px rgba(22,38,28,.5)}
table.bod tr.head th.fix.ime{box-shadow:inset -1px 0 0 rgba(255,255,255,.30), 6px 0 10px -6px rgba(0,0,0,.55)}
/* iframe sa bodovanjem uklopljen u stranu: bez ivice, puna širina, visinu daje skripta */
.embedwrap{margin:6px 0 10px}
.embedwrap iframe{border:0; width:100%; min-height:420px; display:block; background:transparent}

/* ---------- štampa (rezultati, startne liste, bodovanje) ---------- */
/* Dugme za štampu je namerno MALO i pri dnu: „mi smo eko, ne štampa se ako ne mora". */
.printbar.eco{margin:20px 0 4px; display:flex; justify-content:center; align-items:center;
  gap:8px; flex-wrap:wrap}
.printbar.eco button{font-size:12px; padding:3px 9px; border:1px solid var(--line-2);
  background:transparent; color:var(--muted); font-weight:500; box-shadow:none}
.printbar.eco button:hover{color:var(--forest-deep); border-color:var(--forest); background:var(--paper-2)}
.printbar.eco .printhint{font-size:12px; color:var(--muted); opacity:.9}
.printbar{display:inline-flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap}
.printhint{font-size:12.5px; color:var(--muted)}
@media (max-width:760px){ .printhint{display:inline!important} }
@media print{
  header.top,footer.foot,.bar,.no-print,table.bar{display:none!important}
  /* Trake sa linkovima se ne štampaju, a podatkovne tabele DA. NE koristiti
     `table[align=center]` niti `:has(td:only-child)`: kategorijske trake u rezultatima
     i tabeli prijavljenih su red sa JEDNOM ćelijom (colspan), pa bi takvo pravilo
     sakrilo celu tabelu rezultata. Trake su zato eksplicitno obeležene klasom .bar. */
  body{background:#fff; font-size:11pt}
  .card{box-shadow:none; border:1px solid #999; break-inside:avoid}
  a{color:#000; text-decoration:none}
  table{page-break-inside:auto}
  tr{page-break-inside:avoid}
  td,th{border:1px solid #999!important; padding:3px 5px}
  /* Tamnozeleno zaglavlje kalendara: beli tekst na tamnom se u štampi (bez pozadina)
     ne bi video — zato u štampi ide crno na belo sa donjom linijom. */
  table.tak tr.head th{background:#fff!important; color:#000!important; border-bottom:2px solid #000!important}
  table.tak tr:nth-child(even) td{background:#fff!important}
  table.bod tr.head th{background:#fff!important; color:#000!important; border-bottom:2px solid #000!important}
  table.bod:has(.fix){border-collapse:collapse}
  table.bod .fix{position:static!important; left:auto!important; min-width:0!important; box-shadow:none!important}
  table.bod tr:nth-child(even) td{background:#fff!important}
  .tw{overflow:visible}
}
