/* Nahlásit chybu — nenápadné tlačítko + modální formulář.
   Barvy jen přes CSS proměnné (tmavý režim jede sám). Prefix nhl-. */

/* nenápadné tlačítko (spodek karty úlohy) — samo se vycentruje (fit-content + auto) */
.nhl-odkaz{
  display:flex;align-items:center;gap:6px;
  width:fit-content;max-width:100%;
  margin:10px auto 0;
  background:none;border:0;
  color:var(--ink-soft);
  font-family:var(--font);font-weight:700;font-size:.82rem;
  cursor:pointer;padding:8px 10px;border-radius:var(--r-sm);
  transition:color .15s,background .15s;
}
.nhl-odkaz:hover{color:var(--ink);background:var(--bg-soft)}
.nhl-odkaz:active{transform:scale(.97)}
.nhl-odkaz:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 30%,transparent)}

/* overlay + panel */
.nhl-overlay{
  position:fixed;inset:0;z-index:1000;
  background:color-mix(in srgb,#000 48%,transparent);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  animation:nhl-fade .18s ease both;
}
.nhl-panel{
  width:100%;max-width:440px;max-height:88vh;
  display:flex;flex-direction:column;
  background:var(--bg);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh);
  overflow:hidden;
  animation:nhl-vjezd .22s cubic-bezier(.2,.8,.3,1) both;
}
.nhl-hlava{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--line);flex:0 0 auto;
}
.nhl-titulek{margin:0;font-size:1.05rem;font-weight:900;color:var(--ink)}
.nhl-zavrit{
  flex:0 0 auto;width:34px;height:34px;
  display:grid;place-items:center;
  border:1px solid var(--line);border-radius:50%;
  background:var(--bg);color:var(--ink);
  font-size:16px;line-height:1;cursor:pointer;
  transition:background .15s,transform .12s;
}
.nhl-zavrit:hover{background:var(--bg-soft)}
.nhl-zavrit:active{transform:scale(.9)}
.nhl-zavrit:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 34%,transparent)}

.nhl-telo{padding:14px 16px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch}

.nhl-uvod{margin:0 0 14px;color:var(--ink-soft);font-weight:600;font-size:.9rem;line-height:1.45}

.nhl-typy{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.nhl-typ{
  padding:8px 13px;
  border:2px solid var(--line);border-radius:999px;
  background:var(--bg);color:var(--ink);
  font-family:var(--font);font-weight:800;font-size:.85rem;
  cursor:pointer;
  transition:border-color .15s,background .15s,color .15s,transform .12s;
}
.nhl-typ:hover{border-color:var(--brand)}
.nhl-typ:active{transform:scale(.95)}
.nhl-typ.je-vybrano{background:var(--brand);border-color:var(--brand);color:var(--on-brand,#fff)}
.nhl-typ:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 30%,transparent)}

.nhl-label{display:block;margin:0 2px 6px;font-weight:800;color:var(--ink);font-size:.92rem}
.nhl-textarea{
  width:100%;resize:vertical;min-height:88px;
  padding:11px 13px;
  border:2px solid var(--line);border-radius:var(--r-sm);
  font-family:var(--font);font-weight:600;font-size:16px;line-height:1.45;
  background:var(--bg-soft);color:var(--ink);
}
.nhl-textarea::placeholder{color:var(--ink-soft);font-weight:600}
.nhl-textarea:focus{outline:none;border-color:var(--brand);background:var(--bg)}
.nhl-textarea[readonly]{opacity:.75}
/* soukromí: nápověda pod polem (aria-describedby) */
.nhl-napoveda{margin:6px 2px 0;color:var(--ink-soft);font-weight:700;font-size:.82rem;line-height:1.4}

.nhl-hlaska{margin:12px 2px 0;font-weight:800;font-size:.88rem;line-height:1.4}
/* hlášky jako text: tmavší „ink" odstíny (≥ 4,5 : 1 ve světlém režimu, B4-12) */
.nhl-hlaska.je-ok{color:var(--ok-ink,var(--ok))}
.nhl-hlaska.je-vyzva{color:var(--warn-ink,var(--warn))}
/* vysoký kontrast: vybraný typ chyby musí být vidět i bez barvy pozadí (B4-14) */
@media (forced-colors:active){
  .nhl-typ.je-vybrano{forced-color-adjust:none;background:Highlight;border-color:Highlight;color:HighlightText}
}

.nhl-akce{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.nhl-akce .tlacitko,.nhl-akce .tlacitko-2{flex:1 1 auto;text-decoration:none}
.nhl-akce .tlacitko:disabled{opacity:.6;cursor:default;filter:saturate(.7)}

@media (max-width:520px){
  .nhl-overlay{align-items:flex-end;padding:0}
  .nhl-panel{max-width:none;max-height:92vh;border-radius:var(--r) var(--r) 0 0;border-bottom:0}
  .nhl-panel{animation:nhl-sheet .24s cubic-bezier(.2,.8,.3,1) both}
}

@keyframes nhl-fade{from{opacity:0}to{opacity:1}}
@keyframes nhl-vjezd{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes nhl-sheet{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  .nhl-overlay,.nhl-panel{animation:none!important}
}
