:root{
  --bg:#fbfaf8; --card:#fff; --ink:#1d1c1a; --dim:#6b6862; --line:#e4e0d9;
  --accent:#3f6f5c; --accent-soft:#e8f0ec; --warn:#8a4b12; --warn-bg:#fdf3e6;
  --bar:#cfd8d3; --radius:12px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#16181a; --card:#1e2124; --ink:#e9e7e3; --dim:#9a968f; --line:#2f3438;
         --accent:#7fbfa4; --accent-soft:#23302b; --warn:#e0a76a; --warn-bg:#2b2318;
         --bar:#3a4045; }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  -webkit-text-size-adjust:100%}
main{max-width:760px;margin:0 auto;padding:0 20px 72px}
h1{font-size:1.6rem;line-height:1.2;margin:.2em 0 .5em}
h2{font-size:1.15rem;margin:0 0 .3em}
h3{font-size:1rem;margin:0 0 .2em}
p{margin:.5em 0}
code{background:var(--accent-soft);padding:.1em .35em;border-radius:4px;font-size:.9em}
.muted{color:var(--dim);font-size:.9rem}
.lede{color:var(--dim)}
.warn{color:var(--warn)}

.top{max-width:760px;margin:0 auto;padding:28px 20px 8px}
.topline{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.brand{font-weight:700;font-size:1.1rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.tag{color:var(--dim);font-size:.9rem;margin:.2em 0 0}

button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);padding:.55em 1.1em;white-space:nowrap}
button:hover{border-color:var(--accent)}
.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.primary:hover{filter:brightness(1.08)}
.big{padding:.75em 1.6em;font-size:1.05rem}

.cards{display:grid;gap:14px;margin:20px 0}
.card{display:flex;gap:14px;align-items:flex-start;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;cursor:pointer}
.card:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.card input{margin-top:5px;width:18px;height:18px;accent-color:var(--accent);flex:none}
.card p{margin:.15em 0}

.note{margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
.note h2{font-size:1rem;margin-bottom:.4em}
.note p{color:var(--dim);font-size:.92rem}

/* upitnik */
.progress{position:sticky;top:0;background:var(--bg);padding:14px 0 10px;z-index:5;
  display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}
.bar{flex:1;height:6px;background:var(--bar);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .18s}
#progress-text{font-size:.85rem;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums}

.test-head{margin:30px 0 6px}
.test-head p{color:var(--dim);font-size:.93rem}
.q{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;margin:12px 0}
.q.miss{border-color:var(--warn)}
/* Broj tvrdnje stoji u istom tijeku teksta, pa se tekst prelama ispod njega.
   Kao zaseban stupac trosio bi sirinu i tjerao tvrdnju u dodatni redak. */
.q-text{margin-bottom:10px}
.q-num{color:var(--dim);font-variant-numeric:tabular-nums;margin-right:.35em}
.opts{display:grid;gap:6px}
/* Brzo tipkanje po ponudama inace pocne oznacavati tekst. Tvrdnja iznad ostaje
   oznaciva, ponude nisu. */
.opt{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;border-radius:8px;
  cursor:pointer;border:1px solid var(--line);
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.opt:hover{background:var(--accent-soft)}
.opt input{margin-top:3px;accent-color:var(--accent);flex:none}
.opt:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}
.submit-row{margin:28px 0;text-align:center}

.ghost{border:none;background:none;color:var(--accent);font-size:.85rem;
  padding:.3em .2em;cursor:pointer;text-decoration:underline;white-space:nowrap}
.ghost:hover{border:none;filter:brightness(1.15)}
button:disabled{opacity:.38;cursor:not-allowed}
button:disabled:hover{border-color:var(--line)}
.wiznav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 4px}
.wiznav span{color:var(--dim);font-size:.88rem;font-variant-numeric:tabular-nums;text-align:center}
.hide{display:none!important}

/* jedno pitanje po ekranu */
body.wizard .q{margin:16px 0;padding:20px 20px}
/* Rezervirana visina drzi ponude na mjestu. Tvrdnja sjeda na dno te visine,
   pa visak praznine ide iznad tvrdnje, a ne izmedju nje i ponuda. Visina je na
   omotacu, jer bi na samoj tvrdnji razbila tijek broja i teksta. */
body.wizard .q-text{font-size:1.08rem}
body.wizard .q-slot{min-height:var(--q-text-h,auto);display:flex;align-items:flex-end}
body.wizard .opt{padding:10px 12px}
body.wizard .test-head{margin:22px 0 4px}

/* rezultati */
.recap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;margin:18px 0 10px}
.recap-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:6px}
.recap-head h1{margin:0;font-size:1.35rem}
.when{color:var(--dim);font-size:.9rem;margin:.3em 0 0}
.mark{color:var(--accent);font-weight:700;font-size:.9rem;white-space:nowrap}

.res{margin:20px 0 4px}
.res-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.res-title h2{margin:0}
.total{font-size:1.45rem;font-weight:700;font-variant-numeric:tabular-nums}
.total small{font-size:.6em;font-weight:400;color:var(--dim)}
.verdict{font-size:.9rem;margin:.35em 0 .8em}
.verdict.over{color:var(--warn)}

.track{position:relative;height:9px;background:var(--bar);border-radius:99px;overflow:visible;margin:6px 0 4px}
.track i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:99px}
.track u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--warn);text-decoration:none}
.cut{font-size:.78rem;color:var(--dim);margin:0 0 12px}

.sub{margin:10px 0}
.sub-row{display:flex;justify-content:space-between;font-size:.92rem;gap:12px}
.sub-row b{font-weight:600;font-variant-numeric:tabular-nums}
.sub-row span{color:var(--dim)}

.disclaimer{border-top:1px solid var(--line);margin-top:18px;padding-top:12px;
  color:var(--dim);font-size:.85rem}
.stale{background:var(--warn-bg);border:1px solid var(--warn);color:var(--warn);
  border-radius:var(--radius);padding:12px 16px;margin:18px 0 0;font-size:.92rem}

.share{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
.share h2{margin-bottom:.6em}
.share-opt{padding:14px 0;border-top:1px solid var(--line)}
.share-opt p{color:var(--dim);font-size:.9rem;margin:.2em 0 0}
.link-row{display:flex;gap:8px;margin-top:10px}
.link-field{flex:1;min-width:0;font:inherit;font-size:.82rem;padding:.5em .7em;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.link-field:disabled{color:var(--dim);background:transparent}
.link-row button{flex:none;min-width:6.5em}

details.detail{margin:22px 0}
details.detail summary{cursor:pointer;color:var(--accent);font-weight:600}
table{border-collapse:collapse;width:100%;font-size:.88rem;margin-top:12px}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--dim);font-weight:600}
td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.again{text-align:center;margin:30px 0}

footer{border-top:1px solid var(--line);margin-top:40px}
footer p{max-width:760px;margin:0 auto;padding:18px 20px;color:var(--dim);font-size:.85rem}

@media print{
  .share,.again,footer,.top,details.detail,.progress{display:none!important}
  body{background:#fff}
  .recap{border:1px solid #999;break-inside:avoid}
}
@media (max-width:560px){
  /* Oznaka pored naslova stisne datum u dva reda iako stane u jedan. */
  .recap-head{flex-direction:column;gap:6px}
  .mark{order:-1}
}
@media (max-width:520px){
  /* Na telefonu tvrdnja i ponude trose previse visine u zadanim mjerama. */
  body.wizard .q{padding:14px 13px}
  body.wizard .q-text{font-size:1rem}
  body.wizard .opt{padding:9px 10px}
  .q{padding:12px 13px}
  .q-text{margin-bottom:8px}
  .progress{gap:8px}
  .link-row{flex-direction:column}
  .link-row button{width:100%}
  .recap{padding:18px 16px}
}
@media (max-width:380px){
  .when{font-size:.8rem}
}
