:root{
  --bg:#f6f8fc;
  --surface:#ffffff;
  --surface2:#f1f5ff;
  --text:#0f172a;
  --muted:#475569;
  --line:#dbe3f0;
  --accent:#2563eb;
  --accent2:#10b981;
  --shadow: 0 12px 28px rgba(15,23,42,.10);
  --radius: 18px;
  --max: 1140px;
  --focus: 0 0 0 4px rgba(37,99,235,.25);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

/* Layout: sticky footer */
html, body { height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; }
footer { margin-top: auto; }

body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(37,99,235,.14), transparent 60%),
    radial-gradient(900px 500px at 80% 0%, rgba(16,185,129,.12), transparent 60%),
    var(--bg);
  color: var(--text);
  line-height:1.6;
}

a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
p{color:var(--muted);margin:.6rem 0}
h1,h2,h3{line-height:1.2;margin:0 0 .6rem}
h1{font-size:clamp(1.6rem, 2.2vw, 2.2rem)}
h2{font-size:1.35rem;margin-top:1.2rem}
h3{font-size:1.05rem;margin-top:1rem}

.container{max-width:var(--max);margin:0 auto;padding: 0 18px}
.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:14px; top:14px; width:auto; height:auto; padding:10px 12px;
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  box-shadow: var(--shadow);
  outline:none;
}

/* Header */
.site-header{
  position: sticky; top:0; z-index:20;
  backdrop-filter: blur(10px);
  background: rgba(246,248,252,.75);
  border-bottom:1px solid rgba(219,227,240,.95);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 0;
  gap: 18px;
}
.brand{display:flex; align-items:center; gap:12px}
.logo{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  box-shadow: var(--shadow);
}
.brand-title{font-weight:850; letter-spacing:-.2px}
.brand-sub{font-size:.86rem;color:var(--muted);margin-top:-2px}

.nav{
  display:flex; align-items:center; gap: 8px;
  flex-wrap:wrap;
}
.nav a{
  font-size:.95rem;
  padding:8px 10px;
  border-radius: 12px;
  color: var(--muted);
}
.nav a.active, .nav a:hover{
  color: var(--text);
  background: rgba(37,99,235,.10);
  border:1px solid rgba(37,99,235,.18);
}

.menu-btn{
  display:none;
  background: var(--surface);
  border:1px solid rgba(219,227,240,.95);
  color: var(--text);
  padding:8px 10px;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(15,23,42,.06);
}
.menu-btn:focus{outline:none; box-shadow: var(--focus)}

.header-cta{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
}
.pill{
  display:inline-flex; gap:8px; align-items:center;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(219,227,240,.95);
  background: rgba(255,255,255,.75);
  color: var(--muted);
  font-size:.92rem;
}
.pill strong{color: var(--text)}

/* Layout blocks */
.card{
  background: rgba(255,255,255,.92);
  border:1px solid rgba(219,227,240,.95);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
}
.section{padding: 22px 0 46px}
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.grid-2{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
}
.tile{
  border-radius: var(--radius);
  border:1px solid rgba(219,227,240,.95);
  background: rgba(255,255,255,.85);
  padding: 16px;
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.tile:hover{transform: translateY(-2px); border-color: rgba(37,99,235,.35); box-shadow: 0 10px 26px rgba(15,23,42,.08)}
.tile h3{margin:0 0 8px}
.tile p{margin:0}

.badge{
  display:inline-flex; gap:8px; align-items:center;
  font-size:.88rem;
  color: rgba(15,23,42,.9);
  background: rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.20);
  padding:6px 10px;
  border-radius: 999px;
}

.btn-row{display:flex; gap:10px; flex-wrap:wrap; margin-top: 12px}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 10px 12px;
  border-radius: 12px;
  border:1px solid rgba(219,227,240,.95);
  background: rgba(255,255,255,.85);
  color: var(--text);
  cursor:pointer;
}
.btn.primary{
  border-color: rgba(37,99,235,.35);
  background: rgba(37,99,235,.12);
}
.btn:focus{outline:none; box-shadow: var(--focus)}
.btn:hover{border-color: rgba(37,99,235,.45)}

hr.sep{border:0;border-top:1px solid rgba(219,227,240,.95);margin: 14px 0}

.list{margin:0; padding-left: 18px; color: var(--muted)}
.list li{margin:6px 0}
.kicker{font-weight:700; color: var(--text); margin: 0 0 6px}
.small{font-size:.93rem}

.callout{
  border-left: 2px solid var(--accent);
  padding: 10px 12px;
  background: rgba(37,99,235,.06);
  border-radius: 12px;
  border:1px solid rgba(37,99,235,.14);
}

/* Search */
.searchbar{
  display:flex; gap:10px; flex-wrap:wrap;
}
.searchbar input{
  flex: 1 1 220px;
  padding: 11px 12px;
  border-radius: 12px;
  border:1px solid rgba(219,227,240,.95);
  background: rgba(255,255,255,.9);
  color: var(--text);
}
.searchbar input:focus{outline:none; box-shadow: var(--focus)}
.result{
  padding: 12px;
  border-radius: 14px;
  border:1px solid rgba(219,227,240,.95);
  background: rgba(255,255,255,.85);
}
.result a{color: var(--accent)}
.result .meta{font-size:.85rem; color: var(--muted)}

/* Media */
.hero-media img{
  width:100%;
  height:auto;
  border-radius: var(--radius);
  border:1px solid rgba(219,227,240,.95);
  box-shadow: var(--shadow);
}
.avatar{
  width:130px; height:130px;
  object-fit:cover;
  border-radius: 999px;
  border:2px solid rgba(37,99,235,.20);
  box-shadow: var(--shadow);
}

/* Footer */
.site-footer{
  border-top:1px solid rgba(219,227,240,.95);
  padding: 22px 0;
  color: var(--muted);
  background: rgba(246,248,252,.55);
}

/* Responsive */
@media (max-width: 900px){
  .grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .menu-btn{display:inline-flex}
  .nav{display:none; width:100%}
  .nav.open{display:flex}
  .header-inner{flex-wrap:wrap}
  .header-cta{width:100%; justify-content:space-between}
}


/* Highlighted CTA (Kondicijska) */
.btn.kondicijska{
  border-color: rgba(16,185,129,.45);
  background: rgba(16,185,129,.16);
}
.btn.kondicijska:hover{border-color: rgba(16,185,129,.60)}

/* "Svi testovi" – suptilno označen gumb */
.btn.all-tests{
  border-color: rgba(16,185,129,.30);
  background: rgba(16,185,129,.08);
  color: var(--text);
}
.btn.all-tests:hover{
  border-color: rgba(16,185,129,.45);
  background: rgba(16,185,129,.12);
}

/* Nav highlighted link (Kondicijska) – ALWAYS highlighted (as before) */
.nav a.kond-nav{
  color: var(--text);
  background: rgba(16,185,129,.14);
  border:1px solid rgba(16,185,129,.28);
}
.nav a.kond-nav:hover{
  background: rgba(16,185,129,.18);
  border-color: rgba(16,185,129,.40);
}

.btn.small{
  padding: 8px 10px;
  font-size: .92rem;
}
.footer-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
}
@media (max-width: 900px){
  .footer-actions{justify-content:flex-start}
}

/* Sticky Kondicijska CTA (mobile) */
@media (max-width:768px){
  body{padding-bottom:70px;}
}

/* FAQ */
.faq details{
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  padding:12px 14px;
  border-radius:10px;
  margin-bottom:10px;
}
.faq summary{
  cursor:pointer;
  font-weight:600;
}
.faq p{
  margin-top:8px;
  font-size:.95rem;
}

/* Brand logo image */
.logo-img{
  width:38px;
  height:38px;
  border-radius:12px;
  box-shadow: var(--shadow);
  background: #0b2dd6;
  object-fit: cover;
}


/* ===== Testovi (quiz) ===== */
.quiz-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 10px;
}
.quiz-status{ color: var(--muted); font-size: 14px; }
.quiz-result-card{
  margin-top: 12px;
  padding: 12px 14px;
  border:1px solid rgba(0,0,0,.08);
  border-radius: var(--radius);
  background: rgba(255,255,255,.8);
}
.quiz-result-hint{ margin-top: 6px; font-size: 13px; color: var(--muted); }

.quiz-list{ display:flex; flex-direction:column; gap:12px; margin-top: 12px; }
.q-card{
  display:grid;
  grid-template-columns: 220px 1fr;
  gap: 12px;
  padding: 12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius: var(--radius);
  background: rgba(255,255,255,.9);
}
.q-media{
  border-radius: calc(var(--radius) - 6px);
  overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
  background: rgba(0,0,0,.02);
  min-height: 140px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.q-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.q-media.is-empty{ background: rgba(0,0,0,.02); }
.q-placeholder{ font-size: 13px; color: var(--muted); padding: 14px; text-align:center; }

.q-head{ margin-bottom: 8px; }
.q-num{ font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.q-title{ margin:0; font-size: 18px; line-height:1.25; }

.q-options{ display:flex; flex-direction:column; gap:8px; }
.q-opt{
  display:flex;
  gap:10px;
  align-items:flex-start;
  /* Ensure evaluation icon (::after) is positioned inside the option */
  position: relative;
  padding: 10px 44px 10px 10px;
  border-radius: 12px;
  border:1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.75);
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.q-opt:hover{ transform: translateY(-1px); border-color: rgba(0,0,0,.12); box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.q-opt input{ margin-top: 4px; }
.q-opt.is-right{ border-color: rgba(42,159,116,.45); }
.q-opt.is-wrong-pick{ border-color: rgba(220,76,76,.45); }
.q-opt.is-picked{ box-shadow: inset 0 0 0 9999px rgba(33,133,208,.06); }

.q-card.is-correct{ border-color: rgba(42,159,116,.35); }
.q-card.is-wrong{ border-color: rgba(220,76,76,.25); }

@media (max-width: 860px){
  .q-card{ grid-template-columns: 1fr; }
  .q-media{ min-height: 180px; }
}


/* === Gradient fix: no repeat, full height === */
body {
  min-height: 100vh;
  margin: 0;
  background: linear-gradient(
    180deg,
    #eef3f7 0%,
    #e6edf3 40%,
    #dde6ee 70%,
    #d4e0e8 100%
  );
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* === Remove empty image space in quiz === */
.question-card {
  display: flex;
  gap: 20px;
}

.question-image {
  flex: 0 0 220px;
}

.question-content {
  flex: 1;
}

.question-card:not(:has(.question-image)) {
  display: block;
}


/* === Proper quiz layout fix === */
.question-card {
  display: flex;
  gap: 20px;
}

.question-image {
  flex: 0 0 220px;
}

.question-content {
  flex: 1;
}

/* If no image -> full width */
.question-card.no-image {
  display: block;
}


/* === Quiz: remove empty image column when no image === */
.q-card.no-media{
  grid-template-columns: 1fr;
}
.q-media.is-empty{
  display:none;
}


/* === Quiz submit buttons: match Kondicijska CTA === */
#btnSubmit, #btnSubmitBottom{
  font-weight: 700;
  padding-left: 16px;
  padding-right: 16px;
}


/* === Extra spacing before footer on test pages === */
.quiz-main {
  margin-bottom: 60px;
  /* Avoid tiny "bounce" caused by browser scroll anchoring when the
     results/status box is injected above after submitting. */
  overflow-anchor: none;
}

#quizApp { overflow-anchor: none; }

/* === Stronger correct / incorrect answer styling === */
.answer-correct {
  border: 2px solid #2e7d32;
  background-color: #e8f5e9;
}

.answer-incorrect {
  border: 2px solid #c62828;
  background-color: #ffebee;
}




label.answer-correct,
label.answer-incorrect {
  position: relative;
}

/* Checkmark / Cross icons */
label.answer-correct::after {
  content: "✔";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: bold;
  color: #2e7d32;
}

label.answer-incorrect::after {
  content: "✖";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: bold;
  color: #c62828;
}



/* === Quiz: picked answer highlighting + icons === */
/* NOTE: base .q-opt layout is defined above; here we only style evaluation states. */

/* Picked + correct */
.q-opt.is-picked.is-right{
  border: 2px solid #2e7d32;
  background-color: #e8f5e9;
}
.q-opt.is-picked.is-right::after{
  content: "✔";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 800;
  color: #2e7d32;
}

/* Picked + wrong */
.q-opt.is-picked.is-wrong-pick{
  border: 2px solid #c62828;
  background-color: #ffebee;
}
.q-opt.is-picked.is-wrong-pick::after{
  content: "✖";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 800;
  color: #c62828;
}

/* (Optional) show correct answers you missed - subtle */
.q-opt.is-right:not(.is-picked){
  border: 2px solid rgba(46,125,50,.35);
}

/* Weighted points UI */
.points-badge{
  margin-left: 10px;
  font-size: 12px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(127,191,167,.16);
  border: 1px solid rgba(127,191,167,.35);
  color: #1d4b3b;
  vertical-align: middle;
}
/* Per-option points are intentionally hidden (they can reveal the number of correct answers). */
.quiz-result-wrap{ margin-bottom: 16px; }
.quiz-result-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  padding:16px 18px;
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
}

.opt-points{display:none;}

/* -------------------------------------------------
   BLOG (list + posts) — unified container, clean spacing
-------------------------------------------------- */

.blog-hero{
  margin-bottom: 14px;
}
.blog-hero h1{
  margin: 0 0 6px;
  font-size: 28px;
  line-height: 1.15;
}
.blog-hero p{
  margin: 0;
  color: var(--muted);
  max-width: 75ch;
}

/* Blog list */
.blog-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}
@media (max-width: 860px){
  .blog-grid{ grid-template-columns: 1fr; }
}

.blog-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  padding: 16px;
  display:flex;
  gap: 14px;
  align-items: flex-start;
}
.blog-thumb{
  width: 180px;
  height: 135px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: #f6f8fc;
  overflow:hidden;
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--muted);
  font-size: 12px;
}
.blog-thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.blog-body{
  flex: 1 1 auto;
  min-width: 0;
}
.blog-title{
  font-size: 16px;
  margin: 0 0 6px;
  line-height: 1.25;
}
.blog-excerpt{
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.blog-meta{
  font-size: 12px;
  color: var(--muted);
  margin: 0 0 10px;
}
.blog-actions{
  margin-top: 2px;
}
.blog-actions .btn{
  padding: 8px 12px;
}

/* Blog post — IMPORTANT:
   No width/ max-width here. Layout width is controlled by .container only. */
.post-header{
  margin: 0 0 14px;
}
.post-title{
  margin: 0 0 6px;
  font-size: 34px;
  line-height: 1.15;
}
.post-subtitle{
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
.post-meta{
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

/* Typography spacing (kept consistent across all posts) */
.post-content{
  width: 100%;
}
.post-content > *{
  margin-top: 0;
}
.post-content p{
  margin: 10px 0;
  line-height: 1.65;
}
.post-content ul{
  margin: 10px 0 12px 18px;
}
.post-content li{
  margin: 6px 0;
}

/* Content cards inside posts */
.content-card{
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  padding: 18px;
  margin: 18px 0;
}
.content-card h2{
  margin: 0 0 10px;
  font-size: 18px;
}
.content-card h3{
  margin: 14px 0 8px;
  font-size: 15px;
}
.content-card p{
  margin: 8px 0;
}
.content-card ul{
  margin: 8px 0 0;
  padding-left: 18px;
}
.content-grid-2{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 860px){
  .content-grid-2{ grid-template-columns: 1fr; }
}
.callout{
  background: #f3f7ff;
  border: 1px solid #d9e6ff;
  border-radius: 14px;
  padding: 14px;
}
.callout strong{ display:block; margin-bottom: 6px; }

.post-footer{
  margin-top: 18px;
}
.post-footer .btn{
  margin-right: 8px;
}



/* === FIX v9.3: prevent image column stretching when answers list is tall === */
.q-card { align-items: start; } /* grid items won't stretch vertically */
.q-media { 
  align-self: start; 
  height: 220px;        /* fixed media height */
  min-height: 220px; 
}
.q-media img { 
  width: 100%; 
  height: 100%; 
  object-fit: cover; 
  display: block; 
}

/* If question has no image, don't reserve the media column */
.q-card.no-media { grid-template-columns: 1fr; }
.q-card.no-media .q-media { display: none; }


/* ==============================
   Admin panel polish (scoped)
   ============================== */

body.admin .card {
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 8px 22px rgba(0,0,0,.06);
}




body.admin .admin-topbar .stat {
  min-width: 92px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.07);
  text-align: center;
}

body.admin .admin-topbar .stat-num {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.1;
}

body.admin .admin-topbar .stat-label {
  font-size: 12px;
  opacity: .7;
}

/* Nicer list items */
body.admin #qList > .card {
  transition: transform .08s ease, box-shadow .08s ease;
}

body.admin #qList > .card:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/* Make left list stickier on wide screens */
@media (min-width: 980px){
  body.admin #qList {
    scrollbar-gutter: stable;
  }
}



/* Admin layout */
.admin .admin-topbar{margin:14px 0 18px;}
.admin .admin-grid{display:grid;grid-template-columns: .95fr 1.05fr;gap:18px;align-items:start;}
@media (max-width: 980px){
  .admin .admin-grid{grid-template-columns: 1fr;}
}


/* Admin badges */
.admin .badges{ display:inline-flex; gap:6px; margin-left:8px; vertical-align:middle; flex-wrap:wrap; }
.admin .badge{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:18px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  opacity:.9;
  white-space:nowrap;
}
.admin .badge-one{ background:rgba(16,185,129,.12); border-color:rgba(16,185,129,.25); }
.admin .badge-multi{ background:rgba(59,130,246,.12); border-color:rgba(59,130,246,.25); }
.admin .badge-many{ background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.25); }
.admin .countline strong{ font-weight:700; }


.admin .badge-auto{ background:rgba(99,102,241,.12); border-color:rgba(99,102,241,.25); }

.admin .badge-manual{ background:rgba(17,24,39,.06); border-color:rgba(17,24,39,.12); }

.admin .diff-details{ margin-top:6px; font-size:12px; opacity:.75; }
.admin .diff-details .mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; opacity:.9; }


.admin .btn-mini{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.9);
  cursor:pointer;
  font-size:12px;
  line-height:1;
  transition: transform .04s ease, background .15s ease;
}
.admin .btn-mini:hover{ background:#fff; }
.admin .btn-mini:active{ transform: translateY(1px); }

.admin .reset-btn{ margin-left:10px; }


/* Smart editor status */
.admin .editor-status{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.75);
  margin-top:10px;
}
.admin .editor-status .pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  white-space:nowrap;
}
.admin .editor-status .pill.muted{ background:rgba(255,255,255,.6); }
.admin .editor-status .pill.warn{ border-color: rgba(245,158,11,.55); }
.admin .editor-status .pill.ok{ border-color: rgba(16,185,129,.55); }
.admin .editor-status .pill.err{ border-color: rgba(239,68,68,.55); }
.admin .editor-status .hint{ font-size:12px; opacity:.8; }


/* ===== Admin UI polish (unified look) ===== */
body.admin{
  background: linear-gradient(180deg, #f6f9ff 0%, #f4f7fb 100%);
}

.admin .card, .admin .q-card, .admin .panel, .admin .box{
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
}

.admin .card{
  border-radius: 18px;
}

.admin input[type="text"],
.admin input[type="url"],
.admin input[type="search"],
.admin textarea,
.admin select{
  width: 100%;
  border: 1px solid rgba(15,23,42,.14);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  background: rgba(255,255,255,.92);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.admin textarea{ min-height: 84px; resize: vertical; }

.admin input:focus,
.admin textarea:focus,
.admin select:focus{
  border-color: rgba(59,130,246,.55);
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
  background: #fff;
}

/* ADMIN BUTTONS – use global .btn style */
body.admin .btn,
.admin .btn{
  font-size: 13px;
  line-height: 1;
}

body.admin .btn:hover,
.admin .btn:hover{
  box-shadow: 0 6px 16px rgba(15,23,42,.08);
}

body.admin .btn:active,
.admin .btn:active{
  transform: translateY(1px);
}

/* fallback style only for buttons without .btn */
.admin button:not(.btn){
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 8px 12px;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: transform .04s ease, background .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.admin button:not(.btn):hover{
  background: #fff;
  box-shadow: 0 6px 16px rgba(15,23,42,.08);
}

.admin button:not(.btn):active{
  transform: translateY(1px);
}

.admin .btn-primary{
  background: rgba(16,185,129,.12);
  border-color: rgba(16,185,129,.35);
}

.admin .btn-primary:hover{
  background: rgba(16,185,129,.18);
}

.admin .btn-danger{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.35);
}

.admin .btn-danger:hover{
  background: rgba(239,68,68,.14);
}

.admin .btn-mini{
  padding: 7px 10px;
  border-radius: 10px;
  font-size: 12px;
}

.admin .reset-btn{
  margin-left: 10px;
  height: 36px;          /* align with select */
  display: inline-flex;
  align-items: center;
}

.admin .form-row{
  display:flex;
  gap: 12px;
  align-items: flex-start;
}
.admin .form-row > *{ flex: 1; }

.admin label{
  font-size: 12px;
  color: rgba(15,23,42,.72);
  margin-bottom: 6px;
  display: inline-block;
}

.admin .muted{
  color: rgba(15,23,42,.62);
}

.admin .editor-status{
  margin-top: 10px;
}

.admin .editor-status .pill{
  border-radius: 999px;
  padding: 5px 9px;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
}

.admin .editor-status .pill.warn{
  background: rgba(245,158,11,.10);
  border-color: rgba(245,158,11,.35);
}

.admin .editor-status .pill.ok{
  background: rgba(16,185,129,.10);
  border-color: rgba(16,185,129,.35);
}

.admin .editor-status .pill.err{
  background: rgba(239,68,68,.10);
  border-color: rgba(239,68,68,.35);
}

.admin .q-item,
.admin .q-list-item{
  border-radius: 14px;
}

.admin .q-item:hover,
.admin .q-list-item:hover{
  box-shadow: 0 10px 22px rgba(15,23,42,.07);
}

.admin .badge{
  border-radius: 999px;
  padding: 4px 8px;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
  font-size: 12px;
}

@media (max-width: 980px){
  .admin .admin-grid{ gap: 16px; }
  .admin .reset-btn{ margin-left: 0; margin-top: 8px; }
}


/* Filter row align: Kategorija + Traži (same height, aligned) */
.admin .filter-row,
.admin .filters-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items:end;
}

.admin .filter-row label,
.admin .filters-row label{
  margin-bottom: 6px;
}

.admin .filter-row select,
.admin .filter-row input[type="search"],
.admin .filters-row select,
.admin .filters-row input[type="search"]{
  height: 40px;
}

@media (max-width: 980px){
  .admin .filter-row,
  .admin .filters-row{
    grid-template-columns: 1fr;
  }
}


/* Filter row structure (labels stacked, equal controls) */
.admin .filter-row .small{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width: 0;
}
.admin .filter-row .field{
  display:block;
}
.admin #filterCategory,
.admin #filterSearch{
  width: 100%;
  height: 40px;
}
.admin .countline{
  margin-top: 10px;
  font-size: 13px;
  opacity: .85;
}


/* ===== Blog cards (blog.html) – stable desktop + mobile ===== */
.blog-card{
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.blog-card__thumb{
  flex: 0 0 180px;
}
.blog-card__thumb img{
  width:180px;
  height:135px;
  object-fit:cover;
  display:block;
  border-radius:16px;
}
.blog-card__body{ flex:1; min-width:0; }

@media (max-width: 768px){
  .blog-card{
    flex-direction:column;
  }
  .blog-card__thumb{
    flex: 0 0 auto;
    width:100%;
  }
  .blog-card__thumb img{
    width:100%;
    height:auto;
    aspect-ratio: 4 / 3;
    object-fit:cover;
  }
}

/* ===== Blog post pages (blog-01..blog-24) – text wraps around image ===== */

/* Blog post inline summary (desktop): image fixed, text neatly aligned */
.post-inline{
  display: block;
}
.post-inline__img{
  float: left;
  width: 180px;
  height: 135px;
  margin: 4px 16px 10px 0;
  border-radius: 14px;
  object-fit: cover;
  background: #f0f2f5;
}
.post-inline__text{
  min-width: 0;
}
.post-inline__text p{margin:0;}
.post-inline__text p{
  margin:0;
}

/* On smaller screens stack nicely */
@media (max-width: 680px){
  .post-inline{display:block;}
  .post-inline__img{float:none;width:100%;height:auto;max-height:240px;margin:0 0 10px 0;}
}



/* ===== Prometni znakovi (novi portal) ===== */
.signs-layout{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:16px;
  align-items:start;
}

.signs-main{ grid-row: auto; }
.signs-sidebar{
  position: sticky;
  top: 96px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

@media (max-width: 980px){
  .signs-layout{ grid-template-columns: 1fr; }
  .signs-sidebar{ grid-row: 1; position: static; }
  }


/* ==== Prometni znakovi: ujednači razmak HERO -> sadržaj na mobitelu ==== */
@media (max-width: 980px){
  .hero__card{ gap:14px; }
  .hero + .section{ padding-top:14px; }
}

/* ==== Prometni znakovi: ujednačen razmak kartica (posebno na mobitelu) ==== */
.signs-main{
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* Umjesto inline spacer divova prije gridova */
.signs-head + .signs-grid{ margin-top:10px; }
.signs-head + .signs-spec-row{ margin-top:10px; }

@media (max-width: 560px){
  .signs-layout{ gap:14px; }
  .signs-sidebar{ gap:14px; }
.signs-main{ gap:14px; }
  .signs-intro-grid{ gap:14px; margin-bottom:0; }
}


.signs-sidebar .card + .card{ margin-top:0; }
.signs-nav{
  list-style: disc;
  padding-left: 18px;
  margin: 8px 0 0;
}
.signs-nav li{ margin: 6px 0; }
.signs-nav a{
  color: inherit;
  text-decoration: none;
}
.signs-nav a:hover{ text-decoration: underline; }

@media (max-width: 980px){
  /* Kategorije u sidebaru kao "tap kartice" (mobitel) */
  .signs-nav{
    list-style: none;
    padding-left: 0;
    margin: 10px 0 0;
  }
  .signs-nav li{ margin: 8px 0; }
  .signs-nav a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 12px;
    border:1px solid rgba(0,0,0,.08);
    background:#f3f4f6;
    border-radius:12px;
    text-decoration:none;
  }
  .signs-nav a::after{
    content:"›";
    opacity:.6;
    margin-left:12px;
    flex:0 0 auto;
  }
}

.signs-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.signs-count{ font-size: 13px; opacity:.8; }

/* Općenito (2 kartice na vrhu) */
.signs-intro-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:16px;
  margin-bottom:0;
}
@media (max-width: 980px){
  .signs-intro-grid{ grid-template-columns: 1fr; }
}
.signs-intro-card p{ margin: 0 0 10px; }
.signs-intro-card p:last-child{ margin-bottom:0; }

/* 3 sličice u drugoj kartici */
.signs-spec-row{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
  margin: 8px 0 10px;
  align-items:stretch;
}
.signs-spec{
  margin:0;
  padding:10px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  background: rgba(255,255,255,.85);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
  display:flex;
  flex-direction:column;
  align-items:center;
  height:100%;
  transition: transform .12s ease, box-shadow .12s ease;
}
.signs-spec:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(15, 23, 42, .10);
}
.signs-spec figcaption{
  margin-top:12px;
  text-align:center;
  line-height:1.25;
  word-break: break-word;
  hyphens:auto;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  width:100%;
}
.signs-spec img{
  width:100%;
  height:74px;
  object-fit:contain;
  display:block;
}
.signs-spec figcaption{
  margin-top:6px;
  line-height:1.2;
}

/* Galerija */
.signs-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}

/* Specifični oblici (desktop: 3, tablet: 2, mob: 1) */
@media (max-width: 1024px){
  .signs-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signs-spec-row{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px){
  .signs-spec-row{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .signs-grid{ grid-template-columns: 1fr; }
}
.sign-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  background:#fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
  transition: transform .12s ease, box-shadow .12s ease;
  cursor:pointer;
}
.sign-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(15, 23, 42, .10);
}
.sign-thumb{
  width:100%;
  aspect-ratio: 4 / 3;
  border-radius:12px;
  background: rgba(15,23,42,.04);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.sign-thumb img{
  width:100%;
  height:100%;
  object-fit: contain;
}
.sign-meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:flex-start;
}

/* Thumb wrapper used by JS cards (alias of .sign-thumb) */
.thumb-wrap{
  width:100%;
  aspect-ratio: 4 / 3;
  border-radius:12px;
  background: rgba(15,23,42,.04);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.thumb-wrap img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit: contain;
  display:block;
}


.sign-code{ font-size:12px; opacity:.75; }
.sign-title{
  font-size:13px;
  font-weight:800;
  line-height:1.15;
  text-transform:none;

  /* multi-line clamp (da stane dugi naziv) */
  display:-webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.signs-search{
  width:100%;
  margin-top:10px;
}
.signs-search input{
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
}

.signs-placeholder{
  padding:14px;
  border:1px dashed rgba(0,0,0,.18);
  border-radius:16px;
  background: rgba(255,255,255,.65);
}

/* Lightbox */
.lb{
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .55);
  backdrop-filter: blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index: 9999;

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition: opacity .16s ease, visibility .16s ease;
}
.lb.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.lb-panel{
  width:min(920px, 96vw);
  background:#fff;
  border-radius:20px;
  box-shadow: 0 26px 80px rgba(0,0,0,.35);
  overflow:hidden;

  transform: translateY(6px) scale(.98);
  opacity: .98;
  transition: transform .16s ease, opacity .16s ease;
}
.lb.is-open .lb-panel{ transform: translateY(0) scale(1); opacity:1; }


.lb-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.lb-title{ font-size:16px; font-weight:900; margin:0; }
.lb-close{
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
}
.lb-body{
  display:grid;
  grid-template-columns: 1fr 320px;
}
@media (max-width: 900px){
  .lb-body{ grid-template-columns: 1fr; }
}
.lb-img{
  padding:18px;
  background: rgba(15,23,42,.03);
  display:flex;
  align-items:center;
  justify-content:center;
}
.lb-img img{
  width:100%;
  max-width:860px;
  max-height:70vh;
  object-fit:contain;
}
.lb-info{
  padding:18px;
}
.lb-info .muted{ margin-top:6px; }


/* ==== Lightbox mobile scroll fix ==== */
@media (max-width: 900px){
  .lb-panel{
    max-height:90vh;
    display:flex;
    flex-direction:column;
  }
  .lb-body{
    display:block;
    overflow-y:auto;
    -webkit-overflow-scrolling: touch;
  }
  .lb-img img{
    max-height:50vh;
  }
}

/* Povijest prometnih znakova */
.history-text{line-height:1.65; font-size:15px;}
.history-text p{margin:10px 0;}
.history-figure{margin:12px 0; display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap;}
.history-figure img{width:100%; max-width:360px; height:auto; border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.12);}
.history-figure .caption{font-size:12px; opacity:.75; margin-top:6px;}
@media (min-width:900px){
  .history-figure.right{flex-direction:row-reverse;}
  .history-figure img{max-width:420px;}
}


/* FIX: consistent spacing between category cards in main column */
.signs-main{
  display:flex;
  flex-direction:column;
  gap:16px;
}


/* Mobile-only floating button to jump back to categories */
.to-categories{
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 999;
  display: none;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(6px);
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
}

@media (min-width: 981px){
  .to-categories{ display:none !important; }
}



/* Mobile search under "Kako čitati" card */
.signs-mobile-search{ display:none; }
@media (max-width: 980px){
  .signs-mobile-search{ display:block; margin-top:0; }
  .signs-sidebar .signs-search{ display:none; }
}
@media (max-width: 980px){
  .hero__card{ display:flex; flex-direction:column; gap:16px; }
}



/* search: highlight first result when jumping */
.flash-focus{ outline:3px solid rgba(255, 200, 0, .95) !important; outline-offset:2px; }


/* Prednost na raskrizju – lokalni razmaci (ne dira druge stranice) */
.prednost-compact-top{ padding-top: 1.4rem; }
.prednost-compact-bottom{ padding-bottom: 1.4rem; }



/* Breadcrumbs */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin: 10px 0 16px;
  font-size: 14px;
  line-height: 1.35;
  color: rgba(0,0,0,.68);
}
.breadcrumbs a{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.18);
  padding-bottom: 1px;
}
.breadcrumbs a:hover{
  border-bottom-color: rgba(0,0,0,.35);
}
.breadcrumbs .bc-sep{
  opacity:.55;
}
.breadcrumbs .bc-current{
  font-weight: 600;
  color: rgba(0,0,0,.84);
}

/* Dark header / dark sections safety */
@media (prefers-color-scheme: dark){
  .breadcrumbs{
    color: rgba(255,255,255,.78);
  }
  .breadcrumbs a{
    border-bottom-color: rgba(255,255,255,.22);
  }
  .breadcrumbs a:hover{
    border-bottom-color: rgba(255,255,255,.38);
  }
  .breadcrumbs .bc-current{
    color: rgba(255,255,255,.92);
  }
}

/* Mobile: make breadcrumbs feel tappable */
@media (max-width: 640px){
  .breadcrumbs{
    font-size: 13px;
    gap:10px;
    margin-top: 8px;
  }
  .breadcrumbs a{
    display:inline-block;
    padding: 6px 10px;
    border: 1px solid rgba(0,0,0,.12);
    border-bottom-width: 1px;
    border-radius: 999px;
    text-decoration:none;
  }
  .breadcrumbs .bc-sep{
    display:none;
  }
  .breadcrumbs .bc-current{
    display:inline-block;
    padding: 6px 10px;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 999px;
  }
  @media (prefers-color-scheme: dark){
    .breadcrumbs a, .breadcrumbs .bc-current{
      border-color: rgba(255,255,255,.18);
    }
  }
}


/* === Blog helpers (safe) === */
.blog-cover{ border-radius:14px; overflow:hidden; margin:14px 0; }
.blog-cover svg{ display:block; width:100%; height:auto; }
.prose{ line-height:1.75; }
.prose h2{ margin:18px 0 8px; font-size:1.2rem; }
.prose p{ margin:0 0 12px; }


/* Brzi linkovi (JSON) */
.page-links{margin-top:0}
.page-links .grid{margin-top:12px}
.links-group-title{margin:18px 0 10px; font-size: 1rem}


/* icons in tiles */
.tile-ico{display:inline-flex;align-items:center;justify-content:center;margin-right:8px;vertical-align:middle;flex:0 0 auto}
.tile-ico{width:1.15em;height:1.15em}
span.tile-ico{width:auto;height:auto}

/* === BIG SVG ICON TILES (SAFE ADD-ON) ===
   Usage: add class "tile-big" to an existing .tile to show a large SVG icon above title.
   This does NOT change existing tiles unless you add the class.
*/
.tile-big{
  text-align:center;
  padding:26px 18px;
}
.tile-icon-big{
  width:52px;
  height:52px;
  margin:0 auto 12px auto;
  display:block;
  color: currentColor;
  opacity:.95;
  transition:transform .2s ease, opacity .2s ease;
}
.tile-big:hover .tile-icon-big{
  transform:scale(1.08);
  opacity:1;
}
.tile-big h3{
  margin-top:6px;
}


/* === Home app-grid drag & drop editor (SAFE) === */
.iv-sort-panel{
  position:fixed; right:16px; bottom:16px; z-index:9999;
  display:flex; gap:8px; align-items:center;
  padding:10px 12px; border-radius:14px;
  background:rgba(15,23,42,.92); color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  backdrop-filter: blur(8px);
}
.iv-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  color:#fff;
  padding:8px 10px;
  border-radius:10px;
  font-weight:600;
  cursor:pointer;
}
.iv-btn:hover{ background:rgba(255,255,255,.16); }
.iv-btn:disabled{ opacity:.45; cursor:not-allowed; }
.iv-btn-ghost{ background:transparent; }
.iv-hint{ font-size:12px; opacity:.9; }

.iv-sort-edit .home-appgrid .tile.iv-draggable{
  outline:2px dashed rgba(99,102,241,.35);
  outline-offset:2px;
  cursor:grab;
}
.iv-sort-edit .home-appgrid .tile.iv-dragging{
  opacity:.6;
  cursor:grabbing;
}



/* Breadcrumb bar mount (injected by main.js) */
.breadcrumb-bar{padding:10px 0 0 0}
.breadcrumb-bar .breadcrumbs{margin:0}

/* === Ispit na javnoj cesti: gallery + lightbox === */
.doc-gallery{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:16px;
  margin-top:14px;
}
.doc-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
  text-align:center;
  padding:14px;
  border:1px solid rgba(219,227,240,.95);
  border-radius:16px;
  background:rgba(255,255,255,.88);
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.doc-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(15,23,42,.08);
  border-color:rgba(37,99,235,.28);
}
.doc-card img{
  width:100%;
  max-width:180px;
  height:auto;
  border-radius:12px;
  border:1px solid rgba(219,227,240,.95);
  box-shadow:var(--shadow);
}
.doc-card span{
  font-size:.92rem;
  color:var(--text);
}
.meta-pills{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.meta-pills span{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.14);
  font-size:.85rem;
}
.icon-hero{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.16);
  color:var(--accent);
  margin-bottom:12px;
}
.icon-hero svg{width:42px;height:42px;display:block;}
.compact-grid{
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.check-list li{margin:8px 0;}
.iv-lightbox[hidden]{display:none !important;}
.iv-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(15,23,42,.82);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.iv-lightbox-figure{
  margin:0;
  max-width:min(94vw, 1080px);
  max-height:92vh;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
}
.iv-lightbox img{
  display:block;
  max-width:100%;
  max-height:80vh;
  width:auto;
  height:auto;
  border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  background:#fff;
}
.iv-lightbox figcaption{
  color:#fff;
  text-align:center;
  font-size:.95rem;
}
.iv-lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
.iv-no-scroll{overflow:hidden;}
@media (max-width: 900px){
  .doc-gallery{grid-template-columns:repeat(2, minmax(0,1fr));}
  .compact-grid{grid-template-columns:1fr;}
}
@media (max-width: 560px){
  .doc-gallery{grid-template-columns:1fr;}
}


/* === Vozački ispit cluster pages === */
.pill-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pill-links a{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;border:1px solid rgba(37,99,235,.16);background:rgba(37,99,235,.06);color:var(--text);text-decoration:none;font-weight:700;font-size:.92rem}
.pill-links a:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.07)}
.pill-dot{width:8px;height:8px;border-radius:999px;background:var(--accent);display:inline-block}
.risk-grid,.steps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.exam-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:18px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.16);color:var(--accent);margin-bottom:12px}
.exam-icon svg{width:42px;height:42px;display:block}
.article-lead{font-size:1.04rem;line-height:1.75;color:var(--text)}
.cluster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width: 900px){.risk-grid,.steps-grid,.cluster-grid,.compact-grid{grid-template-columns:1fr}}


.admin-guide{
  margin-top:40px;
  padding:24px;
  border-radius:14px;
  background:#f7f9fc;
  border:1px solid rgba(0,0,0,0.08);
}

.admin-guide-title{
  font-size:18px;
  font-weight:700;
  margin-bottom:18px;
}

.admin-guide-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
}

.admin-guide-box{
  background:white;
  border-radius:10px;
  padding:16px;
  border:1px solid rgba(0,0,0,0.06);
}

.admin-guide-box h4{
  margin:0 0 10px 0;
  font-size:15px;
}

.admin-guide-box ul,
.admin-guide-box ol{
  margin:0;
  padding-left:18px;
}

.admin-guide-note{
  margin-top:10px;
  font-size:13px;
  color:#666;
}

/* admin: vrati istu visinu gumba kao ostatak portala */
body.admin .btn{
  padding: 10px 16px;
}

/* admin: kondicijska gumbi opet zeleni */
body.admin .btn.kondicijska{
  background:#16a34a;
  color:#fff;
  border-color:#15803d;
}

body.admin .btn.kondicijska:hover{
  background:#15803d;
  color:#fff;
}

/* admin: save button */
body.admin .btn.btn-save-server{
  background:#16a34a;
  color:#fff;
  border-color:#15803d;
}

body.admin .btn.btn-save-server:hover{
  background:#15803d;
  color:#fff;
  border-color:#166534;
}

/* Spremi na server — normalno stanje */
body.admin .btn.btn-save-server{
  background:#16a34a;
  color:#fff;
  border-color:#15803d;
  box-shadow: 0 8px 18px rgba(22,163,74,.18);
}

body.admin .btn.btn-save-server:hover{
  background:#15803d;
  color:#fff;
  border-color:#166534;
  box-shadow: 0 10px 22px rgba(22,163,74,.24);
}

/* Dirty stanje — ima nespremljenih promjena */
body.admin .btn.btn-save-server.is-dirty{
  background:#f59e0b;
  color:#fff;
  border-color:#d97706;
  box-shadow: 0 8px 18px rgba(245,158,11,.22);
}

body.admin .btn.btn-save-server.is-dirty:hover{
  background:#d97706;
  color:#fff;
  border-color:#b45309;
  box-shadow: 0 10px 22px rgba(245,158,11,.28);
}

body.admin .btn.btn-save-server.is-dirty:focus-visible{
  outline: 2px solid rgba(245,158,11,.35);
  outline-offset: 2px;
}





/* =========================================================
   CLICKABLE CARDS — UNIFIED & SUBTLE
   Same language for all navigation cards; informational cards stay neutral.
   ========================================================= */

/* All common clickable card types */
a.tile,
a.tile-big,
a.card,
a.hierarchy-child-card,
a.kv-link,
a.hub-link,
a.home-link,
a.exam-card-link,
a.cand-link,
a.learn-link,
a.contact-link,
.blog-card a.blog-card__btn {
  cursor: pointer;
}

/* Full-card links share one visual treatment */
a.tile,
a.tile-big,
a.card,
a.hierarchy-child-card,
a.kv-link,
a.hub-link,
a.home-link,
a.exam-card-link,
a.cand-link,
a.learn-link,
a.contact-link {
  position: relative;
  text-decoration: none;
  border-color: rgba(11,45,214,.12);
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    border-color .16s ease,
    background-color .16s ease;
}

/* Reserve just enough room for a small text cue */
a.tile,
a.tile-big,
a.card,
a.hierarchy-child-card,
a.kv-link,
a.hub-link,
a.home-link,
a.exam-card-link,
a.cand-link,
a.learn-link,
a.contact-link {
  padding-bottom: 42px;
}

/* One small indicator everywhere */
a.tile::after,
a.tile-big::after,
a.card::after,
a.hierarchy-child-card::after,
a.kv-link::after,
a.hub-link::after,
a.home-link::after,
a.exam-card-link::after,
a.cand-link::after,
a.learn-link::after,
a.contact-link::after {
  content: "Otvori ›";
  position: absolute;
  right: 14px;
  bottom: 12px;
  display: inline-block;
  color: rgba(11,45,214,.72);
  font-size: .78rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .005em;
  opacity: .88;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
  transition: transform .16s ease, color .16s ease, opacity .16s ease;
}

/* Desktop hover stays subtle */
@media (hover:hover) {
  a.tile:hover,
  a.tile-big:hover,
  a.card:hover,
  a.hierarchy-child-card:hover,
  a.kv-link:hover,
  a.hub-link:hover {
    transform: translateY(-2px);
    border-color: rgba(11,45,214,.22);
    box-shadow: 0 12px 28px rgba(0,0,0,.065);
  }

  a.tile:hover::after,
  a.tile-big:hover::after,
  a.card:hover::after,
  a.hierarchy-child-card:hover::after,
  a.kv-link:hover::after,
  a.hub-link:hover::after {
    transform: translateX(2px);
    color: rgba(11,45,214,.95);
    opacity: 1;
  }
}

/* Mobile/touch: visible without becoming a button */
@media (max-width:900px), (hover:none) {
  a.tile,
  a.tile-big,
  a.card,
  a.hierarchy-child-card,
  a.kv-link,
  a.hub-link {
    border-color: rgba(11,45,214,.17);
    box-shadow: 0 8px 20px rgba(0,0,0,.045);
  }

  a.tile::after,
  a.tile-big::after,
  a.card::after,
  a.hierarchy-child-card::after,
  a.kv-link::after,
  a.hub-link::after {
    opacity: 1;
    color: rgba(11,45,214,.82);
    font-size: .8rem;
  }

  a.tile:active,
  a.tile-big:active,
  a.card:active,
  a.hierarchy-child-card:active,
  a.kv-link:active,
  a.hub-link:active {
    transform: scale(.992);
    border-color: rgba(11,45,214,.28);
  }
}

/* Smaller related cards keep exactly the same language */
.related a.tile::after,
[data-static-related] a.tile::after,
.hierarchy-children a.hierarchy-child-card::after {
  content: "Otvori ›";
}

/* Avoid accidental pseudo-element collision on text-only action buttons */
a.btn::after,
a.blog-card__btn::after {
  content: none !important;
}

/* Keyboard accessibility */
a.tile:focus-visible,
a.tile-big:focus-visible,
a.card:focus-visible,
a.hierarchy-child-card:focus-visible,
a.kv-link:focus-visible,
a.hub-link:focus-visible,
a.home-link:focus-visible,
a.exam-card-link:focus-visible,
a.cand-link:focus-visible,
a.learn-link:focus-visible,
a.contact-link:focus-visible {
  outline: 3px solid rgba(11,45,214,.24);
  outline-offset: 3px;
}

@media (max-width:420px) {
  a.tile,
  a.tile-big,
  a.card,
  a.hierarchy-child-card,
  a.kv-link,
  a.hub-link {
    padding-bottom: 40px;
  }

  a.tile::after,
  a.tile-big::after,
  a.card::after,
  a.hierarchy-child-card::after,
  a.kv-link::after,
  a.hub-link::after {
    right: 12px;
    bottom: 11px;
    font-size: .78rem;
  }
}


/* =========================================================
   WHATSAPP FLOATING CONTACT
   Central floating contact action for the whole portal.
   ========================================================= */
.iv-whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1000;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:46px;
  padding:10px 14px;
  border-radius:999px;
  background:#25D366;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  font-size:.9rem;
  line-height:1;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.iv-whatsapp-float:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.22);
}

.iv-whatsapp-float:active{
  transform:scale(.98);
}

.iv-whatsapp-float:focus-visible{
  outline:3px solid rgba(37,211,102,.32);
  outline-offset:3px;
}

.iv-whatsapp-float__icon{
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border:2px solid currentColor;
  border-radius:50%;
  font-size:15px;
  font-weight:900;
  transform:rotate(-18deg);
}

.iv-whatsapp-float__label{
  white-space:nowrap;
color:#111827;}

@media (min-width:901px){
  .iv-whatsapp-float{
    width:48px;
    height:48px;
    min-height:48px;
    padding:0;
    justify-content:center;
  }

  .iv-whatsapp-float__label{
    position:absolute;
    right:56px;
    padding:8px 11px;
    border-radius:10px;
    background:rgba(17,24,39,.94);
    color:#fff;
    font-size:.8rem;
    opacity:0;
    pointer-events:none;
    transform:translateX(4px);
    transition:opacity .16s ease, transform .16s ease;
  }

  .iv-whatsapp-float:hover .iv-whatsapp-float__label,
  .iv-whatsapp-float:focus-visible .iv-whatsapp-float__label{
    opacity:1;
    transform:translateX(0);
  }
}

@media (max-width:900px){
  .iv-whatsapp-float{
    right:14px;
    bottom:14px;
    min-height:44px;
    padding:9px 13px;
    font-size:.86rem;
  }

  .iv-whatsapp-float__icon{
    width:23px;
    height:23px;
    font-size:14px;
  }
}

@media (max-width:420px){
  .iv-whatsapp-float{
    right:12px;
    bottom:12px;
  }
}


/* =========================================================
   MOBILE HEADER EDGE SPACING
   .header-inner is also .container; its padding shorthand previously
   reset the container's horizontal 18px padding to 0.
   ========================================================= */
@media (max-width: 900px){
  .site-header .header-inner.container{
    padding-top:14px;
    padding-bottom:14px;
    padding-left:max(18px, env(safe-area-inset-left));
    padding-right:max(18px, env(safe-area-inset-right));
    box-sizing:border-box;
  }

  .site-header .brand{
    min-width:0;
  }

  .site-header .header-cta{
    width:100%;
    box-sizing:border-box;
  }
}

@media (max-width: 420px){
  .site-header .header-inner.container{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }
}


/* Header CTA visibility: phone + mobile menu */
.site-header .header-cta{
  display:flex;
  align-items:center;
  gap:10px;
}
.site-header .header-cta .pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 14px;
  border:1px solid rgba(11,45,214,.22);
  border-radius:999px;
  background:rgba(11,45,214,.08);
  color:#0b2dd6;
  text-decoration:none;
  box-shadow:0 6px 16px rgba(11,45,214,.08);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.site-header .header-cta .pill:hover,
.site-header .header-cta .pill:focus-visible{
  background:rgba(11,45,214,.13);
  border-color:rgba(11,45,214,.34);
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(11,45,214,.12);
}
.site-header .menu-btn{
  min-height:42px;
  padding:0 16px;
  border:1px solid #0b2dd6;
  border-radius:999px;
  background:#0b2dd6;
  color:#fff;
  font-weight:800;
  box-shadow:0 8px 20px rgba(11,45,214,.18);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.site-header .menu-btn:hover,
.site-header .menu-btn:focus-visible{
  background:#0824ad;
  border-color:#0824ad;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(11,45,214,.24);
}
@media (max-width:640px){
  .site-header .header-cta{gap:8px}
  .site-header .header-cta .pill,
  .site-header .menu-btn{
    min-height:44px;
  }
  .site-header .header-cta .pill{padding:0 12px}
  .site-header .menu-btn{padding:0 15px}
}


/* Header CTA v2: phone and menu use the same badge style */
.site-header .menu-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  height:42px;
  padding:0 14px;
  margin:0;
  border:1px solid rgba(11,45,214,.22);
  border-radius:999px;
  background:rgba(11,45,214,.08);
  color:#0b2dd6;
  font-weight:800;
  line-height:1;
  vertical-align:middle;
  box-shadow:0 6px 16px rgba(11,45,214,.08);
}
.site-header .menu-btn:hover,
.site-header .menu-btn:focus-visible{
  background:rgba(11,45,214,.13);
  border-color:rgba(11,45,214,.34);
  color:#0b2dd6;
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(11,45,214,.12);
}
@media (max-width:640px){
  .site-header .menu-btn{
    min-height:44px;
    height:44px;
    padding:0 12px;
    line-height:1;
  }
}


/* Fix: mobile menu button must stay hidden on desktop */
.site-header .menu-btn{
  display:none;
}
@media (max-width:900px){
  .site-header .menu-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
}
