/* FJN System — hall „Moje zadania” (E1-35) and the hall dashboard (E1-61). ModHala „zadania”,
   „wstrzymaj”; ModPulpitE1 „hala”. Phone < 768 px, tablet 768–1279 px. */

/* ---------- Hall buttons (60 px phone, 64 px tablet; 2 px border for poor lighting) ---------- */
.fjn-hbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 64px; padding: 0 20px; border: 2px solid transparent; border-radius: var(--fjn-r-lg);
  font-size: 18px; font-weight: var(--fjn-fw-bold); line-height: 1; white-space: nowrap;
  text-decoration: none; cursor: pointer; background: none; color: var(--fjn-text);
}
.fjn-hbtn:hover { text-decoration: none; }
.fjn-hbtn:focus-visible { box-shadow: 0 0 0 3px var(--fjn-surface), 0 0 0 6px var(--fjn-focus-ring); outline: none; }
.fjn-hbtn--outline { background: var(--fjn-surface); border-color: var(--fjn-text); color: var(--fjn-text); }
.fjn-hbtn--outline:hover { background: var(--fjn-surface-2); color: var(--fjn-text); }
.fjn-hbtn--primary { background: var(--fjn-brand-600); color: var(--fjn-text-inverse); }
.fjn-hbtn--primary:hover { background: var(--fjn-brand-700); color: var(--fjn-text-inverse); }
.fjn-hbtn--dark { background: var(--fjn-text); color: var(--fjn-text-inverse); }
.fjn-hbtn--dark:hover { background: var(--fjn-nav-hover); color: var(--fjn-text-inverse); }

/* ---------- E1-35 list ---------- */
.fjn-hall-tasks { gap: 14px; padding: 20px 24px; }
.fjn-hall-tasks__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.fjn-hall-tasks__title { margin: 0; font-size: 28px; line-height: 1.25; white-space: nowrap; }
.fjn-hall-tasks__count { font-size: 15px; color: var(--fjn-text-2); white-space: nowrap; }
.fjn-hall-tasks__list { display: flex; flex-direction: column; gap: 12px; }

.fjn-htask {
  display: flex; flex-direction: row; gap: 14px; padding: 16px 18px;
  background: var(--fjn-surface); border: 1px solid var(--fjn-border); border-radius: 12px;
}
.fjn-htask--progress { border: 2px solid var(--fjn-brand-600); }
.fjn-htask--paused { border: 2px solid var(--fjn-warning-700); }
.fjn-htask--blocked { background: var(--fjn-bg); color: var(--fjn-text-2); }
.fjn-htask__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.fjn-htask__top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fjn-htask__nr { font: 700 22px/1.2 var(--fjn-font-mono); white-space: nowrap; }
.fjn-htask__badge {
  display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 10px;
  border-radius: var(--fjn-r-full); font-size: 14px; font-weight: var(--fjn-fw-bold); white-space: nowrap;
  background: var(--fjn-neutral-100); color: var(--fjn-text-2);
}
.fjn-htask__marker { width: 9px; height: 9px; background: currentColor; }
.fjn-htask--progress .fjn-htask__badge { background: var(--fjn-brand-100); color: var(--fjn-brand-700); }
.fjn-htask--progress .fjn-htask__marker { border-radius: 50%; }
.fjn-htask--paused .fjn-htask__badge { background: var(--fjn-warning-100); color: var(--fjn-warning-700); }
.fjn-htask--todo .fjn-htask__marker { border-radius: 50%; border: 2px solid currentColor; background: none; }
.fjn-htask__what { font-size: 17px; line-height: 23px; }
.fjn-htask__info { display: flex; align-items: flex-start; gap: 6px; font-size: 14px; line-height: 20px; color: var(--fjn-text-2); }
.fjn-htask__info .fjn-icon { flex: none; margin-top: 2px; }
.fjn-htask__actions { flex: none; display: flex; align-items: center; gap: 10px; }
.fjn-htask__actions form { display: contents; }

/* ---------- „Wstrzymaj” sheet ---------- */
.fjn-hpause { width: min(560px, calc(100vw - 32px)); border: 0; border-radius: 14px; }
.fjn-hpause__head { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px 10px; }
.fjn-hpause__title { font-size: 21px; line-height: 28px; }
.fjn-hpause__sub { font-size: 15px; line-height: 21px; color: var(--fjn-text-2); }
.fjn-hpause__options { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 4px 12px; border: 0; }
.fjn-hpause__option {
  display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 6px 12px;
  border-radius: var(--fjn-r-lg); cursor: pointer;
}
.fjn-hpause__option:has(input:checked) { background: var(--fjn-brand-50); box-shadow: inset 0 0 0 2px var(--fjn-brand-600); }
.fjn-hpause__option input {
  appearance: none; flex: none; display: grid; place-content: center; width: 26px; height: 26px; margin: 0;
  border: 2.5px solid var(--fjn-border-strong); border-radius: 50%; background: var(--fjn-surface); cursor: pointer;
}
.fjn-hpause__option input::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: transparent; }
.fjn-hpause__option input:checked { border-color: var(--fjn-brand-600); }
.fjn-hpause__option input:checked::before { background: var(--fjn-brand-600); }
.fjn-hpause__option input:focus-visible { box-shadow: 0 0 0 2px var(--fjn-surface), 0 0 0 4px var(--fjn-focus-ring); outline: none; }
.fjn-hpause__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fjn-hpause__label { font-size: 18px; font-weight: var(--fjn-fw-bold); }
.fjn-hpause__hint { font-size: 14px; color: var(--fjn-text-2); }
.fjn-hpause__foot { display: flex; gap: 12px; padding: 16px 20px 20px; }
.fjn-hpause__foot .fjn-hbtn { height: 60px; flex: 1; }
.fjn-hpause__foot .fjn-hbtn--primary { flex: 2; }

/* ---------- E1-61 hall dashboard ---------- */
.fjn-hdash { gap: 16px; padding: 20px 24px; }
.fjn-hdash__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fjn-hdash__hello { display: flex; flex-direction: column; gap: 2px; }
.fjn-hdash__title { margin: 0; font-size: 28px; line-height: 1.25; }
.fjn-hdash__sub { font-size: 15px; color: var(--fjn-text-2); }
.fjn-hdash__presence { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--fjn-r-lg); background: var(--fjn-success-100); }
.fjn-hdash__dot { flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--fjn-success-700); }
.fjn-hdash__presence-text { display: flex; flex-direction: column; }
.fjn-hdash__presence-text b { font-size: 16px; color: var(--fjn-success-700); }
.fjn-hdash__presence-text span { font-size: 13px; }
.fjn-hdash__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fjn-hdash__actions form { display: contents; }
.fjn-hdash__big {
  display: flex; align-items: center; gap: 14px; width: 100%; height: 88px; padding: 0 22px;
  border: 2px solid transparent; border-radius: var(--fjn-r-lg); cursor: pointer;
  font-size: 20px; font-weight: var(--fjn-fw-bold); text-decoration: none;
}
.fjn-hdash__big:hover { text-decoration: none; }
.fjn-hdash__big:focus-visible { box-shadow: 0 0 0 3px var(--fjn-surface), 0 0 0 6px var(--fjn-focus-ring); outline: none; }
.fjn-hdash__big--primary { background: var(--fjn-brand-600); color: var(--fjn-text-inverse); }
.fjn-hdash__big--primary:hover { background: var(--fjn-brand-700); color: var(--fjn-text-inverse); }
.fjn-hdash__big--outline { background: var(--fjn-surface); border-color: var(--fjn-text); color: var(--fjn-text); }
.fjn-hdash__big--outline:hover { background: var(--fjn-surface-2); }
.fjn-hdash__tasks-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.fjn-hdash__h2 { margin: 0; font-size: 20px; }
.fjn-hdash__count { font-size: 15px; color: var(--fjn-text-2); white-space: nowrap; }
.fjn-hdash__section { margin: 4px 0 0; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fjn-text-2); }
.fjn-hdash__none { margin: 0; font-size: 14px; color: var(--fjn-text-2); }
.fjn-hdash__list { display: flex; flex-direction: column; gap: 10px; }

.fjn-hdcard {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 16px;
  background: var(--fjn-surface); border: 2px solid var(--fjn-border); border-radius: var(--fjn-r-lg);
}
.fjn-hdcard--progress { border-color: var(--fjn-brand-600); }
.fjn-hdcard--paused { border-color: var(--fjn-warning-700); }
.fjn-hdcard__main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fjn-hdcard__top { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fjn-hdcard__nr { font: 700 20px/1.2 var(--fjn-font-mono); white-space: nowrap; }
.fjn-hdcard__stage { font-size: 16px; font-weight: var(--fjn-fw-bold); white-space: nowrap; }
.fjn-hdcard__info { font-size: 15px; color: var(--fjn-text-2); }
.fjn-hdcard__state { font-size: 14px; font-weight: var(--fjn-fw-bold); color: var(--fjn-text-2); }
.fjn-hdcard--progress .fjn-hdcard__state { color: var(--fjn-brand-600); }
.fjn-hdcard--paused .fjn-hdcard__state { color: var(--fjn-warning-700); }
.fjn-hdcard--blocked .fjn-hdcard__state { color: var(--fjn-text-3); }
.fjn-hdcard__btn {
  display: flex; align-items: center; justify-content: center; height: 56px; min-width: 120px; padding: 0 18px;
  border: 2px solid var(--fjn-text); border-radius: 8px; background: var(--fjn-surface); color: var(--fjn-text);
  font-size: 17px; font-weight: var(--fjn-fw-bold); white-space: nowrap; cursor: pointer;
}
.fjn-hdcard__btn:focus-visible { box-shadow: 0 0 0 3px var(--fjn-surface), 0 0 0 6px var(--fjn-focus-ring); outline: none; }
.fjn-hdcard--todo .fjn-hdcard__btn { border-color: var(--fjn-brand-600); background: var(--fjn-brand-600); color: var(--fjn-text-inverse); }
.fjn-hdcard--paused .fjn-hdcard__btn { border-color: var(--fjn-warning-700); color: var(--fjn-warning-700); }
.fjn-hdcard__btn:disabled { border-color: var(--fjn-btn-disabled-bg); background: var(--fjn-btn-disabled-bg); color: var(--fjn-text-disabled); cursor: not-allowed; }

/* ---------- Phone ---------- */
@media (max-width: 767px) {
  .fjn-hall-tasks, .fjn-hdash { padding: 16px; }
  .fjn-hall-tasks__title { font-size: 24px; }
  .fjn-htask { flex-direction: column; padding: 14px; }
  .fjn-htask__nr { font-size: 19px; }
  .fjn-htask__actions { align-items: stretch; }
  .fjn-htask__actions .fjn-hbtn { flex: 1; height: 60px; }
  .fjn-hpause { width: 100%; border-radius: 16px 16px 0 0; }
  .fjn-hpause__foot { flex-direction: column-reverse; }
  .fjn-hpause__foot .fjn-hbtn { flex: none; width: 100%; }
  .fjn-hdash__title { font-size: 22px; }
  .fjn-hdash__actions { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- „Wstrzymaj · {etap}” page (D124: E1-35_T/M_wstrzymaj-felge) ---------- */
.fjn-hpause2 { display: flex; flex-direction: column; gap: 16px; max-width: 760px; margin: 0 auto; padding: 24px 24px 120px; }
.fjn-hpause2__head { display: flex; flex-direction: column; gap: 4px; }
.fjn-hpause2__title { margin: 0; font-size: 26px; line-height: 34px; }
.fjn-hpause2__nr { font-size: 15px; color: var(--fjn-text-2); }
.fjn-hpause2__group { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; }
.fjn-hpause2__label { padding: 0; font-size: 15px; font-weight: 700; }
.fjn-hpause2__label--error { color: var(--fjn-danger-700); }
.fjn-hpause2__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fjn-hpause2__chip { position: relative; display: flex; }
.fjn-hpause2__chip input { position: absolute; opacity: 0; }
.fjn-hpause2__chip span {
  display: flex; align-items: center; justify-content: center; min-width: 48px; height: 56px; padding: 0 16px;
  border: 1px solid var(--fjn-border-strong); border-radius: 8px; background: var(--fjn-surface); font-size: 16px; font-weight: 700; cursor: pointer;
}
.fjn-hpause2__chip input:checked + span { background: var(--fjn-brand-600); border-color: var(--fjn-brand-600); color: var(--fjn-text-inverse); }
.fjn-hpause2__chip input:focus-visible + span { box-shadow: var(--fjn-focus); }
.fjn-hpause2__hint { font-size: 14px; color: var(--fjn-text-2); }
.fjn-hpause2__note { height: 56px; font-size: 16px; }
.fjn-field--error .fjn-hpause2__note { border-color: var(--fjn-danger-700); }
.fjn-hpause2__error { font-size: 14px; color: var(--fjn-danger-700); }
.fjn-hpause2__foot {
  position: fixed; right: 0; bottom: 0; left: var(--fjn-rail-w); z-index: 20; display: flex; justify-content: flex-end; gap: 12px;
  padding: 12px 24px; background: var(--fjn-surface); border-top: 1px solid var(--fjn-border);
}
.fjn-hpause2__btn { height: 56px; }
@media (min-width: 1280px) { .fjn-hpause2__foot { left: var(--fjn-sidebar-w); } }
@media (max-width: 767px) {
  .fjn-hpause2 { padding: 16px 16px 180px; }
  .fjn-hpause2__foot { left: 0; bottom: var(--fjn-bottomnav-h); padding: 12px 16px; }
  .fjn-hpause2__btn { flex: 1; }
  .fjn-hpause2__btn:last-child { flex: 2; }
}

/* D124: quality control row (E1-35_T_wejscie-qc) */
.fjn-htask--qc { align-items: center; padding: 12px 14px; }
.fjn-htask__qc { flex: none; width: 44px; font: 700 20px var(--fjn-font-mono); }
.fjn-htask__qc-title { font: 700 15px var(--fjn-font-mono); }
.fjn-htask__qc-line { font-size: 13px; color: var(--fjn-text-2); }
/* D127 pt 3: only quality checks — ModBlok5 „qc-wejscie” layout (760 px, subtitle under the title) */
.fjn-hall-tasks--qc { width: 100%; max-width: 760px; margin: 0 auto; box-sizing: border-box; }
.fjn-hall-tasks--qc .fjn-hall-tasks__head { flex-direction: column; align-items: flex-start; gap: 4px; }
.fjn-hall-tasks--qc .fjn-hall-tasks__title { font-size: 26px; }
.fjn-hall-tasks__sub { font-size: 15px; color: var(--fjn-text-2); }
@media (max-width: 767px) {
  .fjn-hall-tasks--qc .fjn-hall-tasks__title { font-size: 22px; }
  .fjn-htask.fjn-htask--qc { flex-direction: row; align-items: center; gap: 10px; padding: 12px 14px; text-align: left; }
  .fjn-htask--qc .fjn-htask__qc { width: auto; }
  .fjn-htask--qc .fjn-htask__main { flex: 1; min-width: 0; }
  .fjn-htask--qc .fjn-htask__qc-btn { height: 56px; padding: 0 14px; }
}
.fjn-htask--qc .fjn-htask__main { gap: 2px; }
.fjn-htask__qc-chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--fjn-brand-100); color: var(--fjn-brand-700); font-size: 13px; font-weight: 700; }
.fjn-htask__qc-chip .fjn-htask__marker { width: 8px; height: 8px; }
.fjn-htask__qc-btn { height: 56px; }

/* D124 E1-38 „Potwierdź wydanie materiału” */
.fjn-issue__title-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fjn-issue__ok { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 10px; background: var(--fjn-success-100); font-size: 14px; line-height: 20px; }
.fjn-issue__ok > .fjn-icon { flex: none; color: var(--fjn-success-700); }
.fjn-issue__ok div { display: flex; flex-direction: column; gap: 4px; }
.fjn-issue__ok b { font-size: 16px; color: var(--fjn-success-700); }
.fjn-shortage__units { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.fjn-shortage__hint { font-size: 14px; color: var(--fjn-text-2); }

/* D124 state cards and the offline banner (E1-35/E1-61 pusty, nieobecny, brak sieci; E1-32 stany) */
.fjn-hstate { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 32px 20px; text-align: center; background: var(--fjn-surface); border: 1px solid var(--fjn-border); border-radius: 12px; }
.fjn-hstate[hidden] { display: none; }
.fjn-hstate__icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 12px; background: var(--fjn-surface-2); color: var(--fjn-text-2); }
.fjn-hstate__icon--warning { background: var(--fjn-warning-100); color: var(--fjn-warning-700); }
.fjn-hstate__icon--danger { background: var(--fjn-danger-100); color: var(--fjn-danger-700); }
.fjn-hstate__title { font-size: 19px; }
.fjn-hstate__text { margin: 0; max-width: 420px; font-size: 15px; line-height: 22px; color: var(--fjn-text-2); }
.fjn-hstate__btn { height: 56px; margin-top: 4px; }
.fjn-hoffline { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 10px; background: var(--fjn-danger-100); }
.fjn-hoffline[hidden] { display: none; }
.fjn-hoffline > .fjn-icon { flex: none; align-self: flex-start; color: var(--fjn-danger-700); }
.fjn-hoffline__text { flex: 1; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.fjn-hoffline__text b { font-size: 16px; color: var(--fjn-danger-700); }
.fjn-hoffline__btn { flex: none; background: var(--fjn-danger-700); color: var(--fjn-text-inverse); }
.fjn-hoffline__btn:hover { color: var(--fjn-text-inverse); background: var(--fjn-danger-800); }
.fjn-kiosk__main .fjn-hstate, .fjn-hstate-page .fjn-hstate { width: min(520px, 100%); margin: 20px auto 0; box-sizing: border-box; }
.fjn-hdcard__btn { text-decoration: none; }  /* „Sprawdź” is a link (1.18.1) */
