/* Dnevno pitanje — one card, used by both /dnevno/ and the lobby modal.
   Everything is scoped under .dq-card so it can be dropped into any page
   without leaking styles into the host. */
.dq-card{width:100%;max-width:460px;background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 12px 32px -10px rgba(40,40,80,.3);
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#2d3748}
.dq-card *{box-sizing:border-box}
.dq-top{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:15px 20px 17px;
  display:flex;justify-content:space-between;align-items:center}
.dq-top .dq-n{font-weight:800;font-size:14px;letter-spacing:.05em}
.dq-streak{font-size:12px;background:rgba(255,255,255,.19);padding:3px 10px;border-radius:20px;font-weight:600}
.dq-body{padding:20px;display:flex;flex-direction:column;gap:16px}
.dq-par{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:#8891a3;font-family:ui-monospace,monospace}
.dq-par b{background:#f1f2f7;color:#764ba2;padding:2px 9px;border-radius:5px;font-size:12px}
.dq-q{font-size:16.5px;line-height:1.42;font-weight:500}
.dq-tiles{display:flex;gap:var(--tgap,6px);justify-content:center;flex-wrap:wrap;padding:4px 0}
.dq-tile{width:var(--tw,36px);height:var(--th,44px);border-radius:7px;background:#f1f2f7;
  border:2px solid #e3e5ee;display:grid;place-items:center;font-size:var(--tf,19px);
  font-weight:700;text-transform:uppercase;line-height:1;flex:0 0 auto}
.dq-tile.on{background:#fff;border-color:#667eea;color:#667eea}
.dq-tile.win{background:#22c55e;border-color:#22c55e;color:#fff}
.dq-gap{width:var(--tw,36px);flex:0 0 auto}
.dq-card input{width:100%;padding:12px 14px;border-radius:9px;border:2px solid #e3e5ee;
  font-size:15px;font-family:inherit}
.dq-card input:focus{outline:none;border-color:#667eea}
.dq-card button{padding:12px 16px;border-radius:9px;border:0;font-family:inherit;font-size:14.5px;
  font-weight:600;cursor:pointer;width:100%}
.dq-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.dq-ghost{background:#fff;border:2px solid #e3e5ee !important;color:#2d3748;
  display:flex;justify-content:space-between}
.dq-ghost:disabled{opacity:.45;cursor:not-allowed}
.dq-good{background:#22c55e;color:#fff}
.dq-flash{text-align:center;font-size:13.5px;font-weight:600;min-height:19px}
.dq-flash.close{color:#d97706}.dq-flash.wrong{color:#dc2626}
.dq-lab{text-align:center;font-weight:800;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:#22c55e}
.dq-score{display:flex;border:1px solid #eceef3;border-radius:10px;overflow:hidden}
.dq-score div{flex:1;padding:11px 6px;text-align:center}
.dq-score div+div{border-left:1px solid #eceef3}
.dq-score .v{font-size:20px;font-weight:700;line-height:1.1}.dq-score .v.hl{color:#22c55e}
.dq-score .k{font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#8891a3;
  margin-top:3px;font-family:ui-monospace,monospace}
.dq-dist{display:flex;flex-direction:column;gap:5px}
.dq-row{display:flex;align-items:center;gap:9px;font-size:10.5px;color:#8891a3;
  font-family:ui-monospace,monospace}
.dq-row .lb{width:54px;flex-shrink:0;white-space:nowrap}
.dq-row .track{flex:1;height:15px;background:#f1f2f7;border-radius:4px;overflow:hidden;display:block}
.dq-row .fill{display:block;height:100%;background:#ccd0e8;border-radius:4px}
.dq-row.me .fill{background:#22c55e}.dq-row.me{color:#22c55e;font-weight:700}
.dq-row .ct{width:30px;text-align:right}
.dq-reward{background:#f1f2f7;border-radius:9px;padding:11px 14px;display:flex;
  justify-content:space-between;font-size:13px}
.dq-reward .kv{font-weight:700;color:#764ba2}
.dq-claim{background:#fff4e5;border-radius:9px;padding:12px 14px;font-size:13px;color:#92400e}
.dq-claim b{display:block;color:#b45309;font-size:14px;margin-bottom:2px}
.dq-foot{border-top:1px solid #eceef3;padding:11px 20px;font-size:11.5px;color:#8891a3;text-align:center}
.dq-hide{display:none !important}

/* Wrong-guess feedback. A shake reads instantly and costs nothing; the flash
   text alone was easy to miss while looking at the tiles. */
@keyframes dq-shake{
  0%,100%{transform:translateX(0)}
  15%{transform:translateX(-7px)} 30%{transform:translateX(6px)}
  45%{transform:translateX(-4px)} 60%{transform:translateX(3px)}
  75%{transform:translateX(-2px)}
}
.dq-shake{animation:dq-shake .38s ease}
@keyframes dq-pulse{0%,100%{border-color:#e3e5ee}50%{border-color:#dc2626}}
.dq-card input.dq-bad{animation:dq-pulse .38s ease}
.dq-pending{opacity:.65;font-style:italic}
@media (prefers-reduced-motion:reduce){
  .dq-shake,.dq-card input.dq-bad{animation:none}
}

/* Flag, painting and audio questions carry the answer in the media — without
   it the question is unanswerable, so it sits above the tiles. */
.dq-media{width:100%;border-radius:9px;display:block}
img.dq-media{max-height:190px;object-fit:contain;background:#f1f2f7;border:1px solid #e3e5ee}
audio.dq-media{height:40px}

/* Tiles are the input. A real <input> sits off-screen to catch keystrokes and
   summon the mobile keyboard; these boxes only draw the state. */
#dqCapture{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;
  left:-9999px;font-size:16px}
.dq-tiles{outline:none;cursor:text}
.dq-tile.typed{background:#fff;border-color:#c7cbe0;color:#2d3748}
.dq-tile.cursor{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.18)}
.dq-tile.locked{background:#eef0fa;border-color:#c9cff0;color:#667eea}

/* Submit stays visibly out of reach until every tile is filled. */
.dq-card button.dq-primary:disabled{opacity:.42;cursor:not-allowed;filter:saturate(.5)}
