/*
  Platforma integracji komunikacji – wygląd.
  Kolory i odstępy są zmiennymi: zmiana marki to podmiana wartości poniżej
  (oraz w Components/PortalTheme.cs dla panelu MudBlazor).
*/
:root {
    --pz-navy: #1F3A5F;
    --pz-navy-dark: #162A45;
    --pz-teal: #0E7C86;
    --pz-ink: #1F2933;
    --pz-muted: #52606D;
    --pz-line: #E4E7EB;
    --pz-canvas: #F5F7FA;
    --pz-surface: #FFFFFF;
    --pz-error: #C62828;
    --pz-error-bg: #FDECEA;
    --pz-success: #2E7D32;

    --pz-radius: 6px;
    --pz-gap: 16px;
    --pz-max: 960px;
    --pz-font: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
    font-family: var(--pz-font);
    font-size: 16px;
    line-height: 1.5;
    color: var(--pz-ink);
    background: var(--pz-canvas);
    -webkit-font-smoothing: antialiased;
}

body.pz-site {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

a { color: var(--pz-navy); }

/* Fokus po nawigacji trafia na nagłówek (dostępność), ale bez ramki. */
h1:focus, h1:focus-visible { outline: none; }
code { font-family: Consolas, "SFMono-Regular", Menlo, monospace; font-size: .9em; }

/* ---------- Nagłówek części statycznej ---------- */
.pz-header {
    background: var(--pz-navy);
    color: #fff;
    border-bottom: 3px solid var(--pz-teal);
}

.pz-header__inner {
    max-width: var(--pz-max);
    margin: 0 auto;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.pz-header__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pz-header__user { font-size: 14px; opacity: .9; }

.pz-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    font-size: 18px;
    letter-spacing: .2px;
}

.pz-brand__name { line-height: 1.2; }

.pz-brand__tag {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .6px;
    padding: 2px 8px;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 999px;
}

.pz-link-btn {
    background: none;
    border: 0;
    color: #fff;
    font: inherit;
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
    padding: 4px 0;
}

/* ---------- Przełącznik języka ---------- */
.pz-lang { display: inline-flex; gap: 2px; margin: 0; }

.pz-lang__btn {
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    min-width: 34px;
    min-height: 30px;
    padding: 4px 6px;
    border-radius: 4px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--pz-muted);
    cursor: pointer;
}

.pz-lang__btn:hover { border-color: var(--pz-line); }
.pz-lang__btn.is-current { color: var(--pz-navy); border-color: var(--pz-navy); }

.pz-lang--inverse .pz-lang__btn { color: rgba(255, 255, 255, .75); }
.pz-lang--inverse .pz-lang__btn:hover { border-color: rgba(255, 255, 255, .4); }
.pz-lang--inverse .pz-lang__btn.is-current { color: #fff; border-color: #fff; }

/* ---------- Treść ---------- */
.pz-main { flex: 1; width: 100%; }

.pz-container {
    max-width: var(--pz-max);
    margin: 0 auto;
    padding: 24px 16px 40px;
}

.pz-title { font-size: 24px; font-weight: 600; margin: 0 0 16px; }

.pz-card {
    background: var(--pz-surface);
    border: 1px solid var(--pz-line);
    border-radius: var(--pz-radius);
    padding: 20px;
    margin-bottom: var(--pz-gap);
}

.pz-card h2 { font-size: 18px; font-weight: 600; margin: 0 0 8px; }

.pz-empty, .pz-muted { color: var(--pz-muted); margin: 0; }
.pz-center { text-align: center; }

.pz-footer {
    border-top: 1px solid var(--pz-line);
    color: var(--pz-muted);
    font-size: 13px;
    text-align: center;
    padding: 16px;
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pz-footer a { color: var(--pz-muted); }

.pz-message {
    max-width: 560px;
    margin: 48px auto;
    padding: 0 16px;
    text-align: center;
}

.pz-message h1 { font-size: 24px; font-weight: 600; }

.pz-loading { color: var(--pz-muted); padding: 24px; text-align: center; }

/* ---------- Logowanie i formularze ---------- */
.pz-auth { display: flex; justify-content: center; padding: 40px 16px; }
.pz-auth__card { width: 100%; max-width: 420px; padding: 28px; }
.pz-auth__hint { font-size: 14px; margin-top: 20px; }

.pz-form { display: grid; gap: 16px; margin-top: 20px; }
.pz-field { display: grid; gap: 6px; }
.pz-field label { font-size: 14px; font-weight: 600; }

.pz-input {
    font: inherit;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #C3CAD3;
    border-radius: var(--pz-radius);
    background: #fff;
    color: var(--pz-ink);
}

.pz-input:focus { outline: 2px solid var(--pz-teal); outline-offset: 1px; border-color: var(--pz-teal); }

.pz-check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.pz-check input { width: 18px; height: 18px; }

.pz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 20px;
    border-radius: var(--pz-radius);
    border: 1px solid transparent;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.pz-btn--primary { background: var(--pz-navy); color: #fff; }
.pz-btn--primary:hover { background: var(--pz-navy-dark); }
.pz-btn--block { width: 100%; }

.pz-alert { border-radius: var(--pz-radius); padding: 12px 14px; font-size: 14px; margin-top: 16px; }
.pz-alert--error { background: var(--pz-error-bg); color: var(--pz-error); border: 1px solid #F5C2BE; }
.pz-alert--error a { color: var(--pz-error); font-weight: 600; margin-left: 4px; }
.pz-alert--info { background: #E8F4F5; color: #0B5D64; border: 1px solid #B9DEE1; }

/* ---------- Logowanie: strefy, kod, separator ---------- */
.pz-eyebrow {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--pz-teal);
}

.pz-auth__card--staff { border-top: 4px solid var(--pz-navy); }
.pz-auth__switch { border-top: 1px solid var(--pz-line); padding-top: 16px; font-size: 14px; }

.pz-btn--secondary { background: #fff; color: var(--pz-navy); border-color: var(--pz-navy); }
.pz-btn--secondary:hover { background: #EEF2F7; }
.pz-btn--microsoft svg { flex: none; }

.pz-input--code {
    font-family: Consolas, "SFMono-Regular", Menlo, monospace;
    font-size: 26px;
    letter-spacing: 8px;
    text-align: center;
}

.pz-resend { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 16px; font-size: 14px; }
.pz-link-btn--dark { color: var(--pz-navy); font-weight: 600; }

.pz-divider { display: flex; align-items: center; gap: 12px; margin: 24px 0 4px; color: var(--pz-muted); font-size: 13px; }
.pz-divider::before, .pz-divider::after { content: ""; flex: 1; height: 1px; background: var(--pz-line); }

.pz-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.pz-actions form { margin: 0; }

/* ---------- Panel (MudBlazor) ---------- */
body.pz-panel { background: var(--pz-canvas); }
.pz-brand--panel { margin-left: 8px; font-size: 17px; }
.pz-appbar-user { font-size: 14px; margin: 0 8px 0 12px; opacity: .9; }
.pz-inline-form { margin: 0; }
.pz-panel-content { padding-top: 24px; padding-bottom: 40px; }

.pz-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.pz-page-header h1 { font-weight: 600; }
.pz-paper { padding: 20px; }
.pz-toolbar { padding: 12px 16px; }
.pz-search { max-width: 360px; }
.pz-form-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pz-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.pz-role-list { margin: 0; padding-left: 20px; }
.pz-role-list li { margin: 4px 0; }
.pz-role-group__title { font-weight: 600; margin-bottom: 4px; }
.pz-nav { padding-top: 8px; }
.pz-soon { font-size: 11px; color: var(--pz-muted); margin-left: 6px; text-transform: uppercase; }
.pz-nowrap { white-space: nowrap; }
.pz-facts { display: grid; grid-template-columns: max-content 1fr; gap: 10px 16px; margin: 0; align-items: center; }
.pz-facts dt { color: var(--pz-muted); font-size: 14px; }
.pz-facts dd { margin: 0; overflow-wrap: anywhere; }
.pz-facts--fields { gap: 4px 12px; font-size: 13px; }
.pz-facts--fields dd { font-size: 13px; }
.pz-address { display: flex; gap: 8px; align-items: flex-start; }
.pz-address .mud-input-control { flex: 1 1 auto; }
.pz-address .mud-icon-button { margin-top: 6px; }
.pz-inline-add { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.pz-inline-add .mud-input-control { flex: 1 1 220px; }
.pz-json { white-space: pre-wrap; word-break: break-word; font-size: 12px; color: var(--pz-muted); }

@media (max-width: 600px) {
    .pz-title { font-size: 21px; }
    .pz-brand { font-size: 15px; }
    .pz-brand .pz-brand__name { max-width: 150px; }
    .pz-facts { grid-template-columns: 1fr; gap: 2px; }
    .pz-facts dd { margin-bottom: 10px; }
    .pz-card { padding: 16px; }
    .pz-header__user { display: none; }
    .pz-appbar-user { display: none; }
    .pz-brand--panel .pz-brand__name,
    .pz-brand--panel .pz-brand__tag,
    .pz-logout-label { display: none; }
    .pz-lang__btn { min-width: 30px; padding: 4px 4px; }
}

/* ---------- Oferty i obsada ---------- */
.pz-cat {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 24px; height: 24px; padding: 0 6px; border-radius: 12px;
    font-weight: 700; font-size: 13px; color: #fff;
}
.pz-cat--a { background: #2E7D32; }
.pz-cat--b { background: #1565C0; }
.pz-cat--c { background: #EF6C00; }
.pz-cat--d { background: #78909C; }
.pz-cat--e { background: #8E2430; }
.pz-cat-base { margin-left: 4px; font-size: 12px; color: var(--pz-muted); text-decoration: line-through; }

.pz-grid-wrap { overflow-x: auto; }
.pz-slot-grid { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 480px; }
.pz-slot-grid th, .pz-slot-grid td { border-bottom: 1px solid var(--pz-line); padding: 8px 10px; text-align: left; vertical-align: middle; }
.pz-slot-grid th { font-size: 13px; color: var(--pz-muted); font-weight: 600; white-space: nowrap; }
.pz-slot-grid td.pz-day { white-space: nowrap; font-weight: 600; }
.pz-slot-grid tr.is-weekend td.pz-day { color: var(--pz-teal); }
.pz-slot-cell { display: flex; align-items: center; gap: 8px; min-width: 190px; }
.pz-slot-cell .mud-input-control { width: 84px; flex: none; }
.pz-slot-cell.is-dirty .mud-input-outlined-border { border-color: #EF6C00; border-width: 2px; }
.pz-fill { font-size: 13px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: #ECEFF1; color: var(--pz-ink); white-space: nowrap; }
.pz-fill--complete { background: #E8F5E9; color: #1B5E20; }
.pz-fill--partial { background: #FFF3E0; color: #8D4A00; }
.pz-fill--none { background: #F5F7FA; color: var(--pz-muted); }
.pz-sync-warn { color: var(--pz-error); }

.pz-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; }
.pz-stat { border: 1px solid var(--pz-line); border-radius: var(--pz-radius); padding: 12px; background: var(--pz-surface); }
.pz-stat__value { font-size: 26px; font-weight: 700; line-height: 1.1; }
.pz-stat__label { font-size: 13px; color: var(--pz-muted); }
.pz-stat--ok .pz-stat__value { color: var(--pz-success); }
.pz-stat--warn .pz-stat__value { color: #EF6C00; }
.pz-stat--filter { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.pz-stat--filter:hover, .pz-stat--filter:focus-visible { border-color: var(--pz-teal); outline: none; }
.pz-stat--filter.is-active { border-color: var(--pz-teal); box-shadow: inset 0 0 0 2px var(--pz-teal); }

/* ---------- Propozycje zleceniobiorcy (SSR) ---------- */
.pz-offer { border: 1px solid var(--pz-line); border-radius: var(--pz-radius); padding: 16px; margin-top: 12px; background: #fff; }
.pz-offer--pending { border-left: 4px solid var(--pz-teal); }
.pz-offer--assigned { border-left: 4px solid var(--pz-success); }
.pz-offer__when { font-size: 18px; font-weight: 700; margin: 0; }
.pz-offer__what { margin: 4px 0 0; }
.pz-offer__meta { margin: 8px 0 0; font-size: 14px; color: var(--pz-muted); }
.pz-offer__deadline { margin: 8px 0 0; font-size: 14px; font-weight: 600; color: #8D4A00; }
.pz-offer__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.pz-offer__actions form { margin: 0; }
.pz-offer__actions .pz-btn { width: 100%; min-height: 48px; font-size: 17px; }
.pz-btn--yes { background: var(--pz-success); color: #fff; }
.pz-btn--yes:hover { background: #1B5E20; }
.pz-btn--no { background: #fff; color: var(--pz-error); border-color: var(--pz-error); }
.pz-btn--no:hover { background: var(--pz-error-bg); }
.pz-badge { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 10px; background: #ECEFF1; color: var(--pz-muted); }
.pz-badge--ok { background: #E8F5E9; color: #1B5E20; }
.pz-badge--bad { background: var(--pz-error-bg); color: var(--pz-error); }
.pz-alert--success { background: #E8F5E9; color: #1B5E20; border: 1px solid #B7DFB9; }
.pz-history { list-style: none; margin: 8px 0 0; padding: 0; }
.pz-history li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--pz-line); font-size: 14px; }
.pz-history li:last-child { border-bottom: none; }

.pz-file-btn {
    display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
    border: 1px solid var(--pz-navy); color: var(--pz-navy); border-radius: var(--pz-radius);
    padding: 6px 14px; font-size: 14px; font-weight: 500; text-transform: uppercase; min-height: 36px;
}
.pz-file-btn:hover { background: #EEF2F7; }
.pz-file-btn input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.pz-file-btn:focus-within { outline: 2px solid var(--pz-teal); outline-offset: 2px; }

/* ---------- Rekrutacja ---------- */
.pz-steps { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 6px; counter-reset: step; }
.pz-step { position: relative; padding-left: 34px; color: var(--pz-muted); font-size: 14px; min-height: 24px; line-height: 24px; }
.pz-step::before {
    counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0;
    width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--pz-line); text-align: center; font-size: 12px; background: #fff;
}
.pz-step.is-done { color: var(--pz-ink); }
.pz-step.is-done::before { content: "✓"; background: var(--pz-success); border-color: var(--pz-success); color: #fff; }
.pz-step.is-current { color: var(--pz-navy); font-weight: 700; }
.pz-step.is-current::before { background: var(--pz-navy); border-color: var(--pz-navy); color: #fff; }
.pz-field-error { color: var(--pz-error); font-weight: 600; }
.pz-check--top { align-items: flex-start; }
.pz-radio-group { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.pz-radio-group legend { font-weight: 600; font-size: 14px; margin-bottom: 6px; padding: 0; width: 100%; }
.pz-radio-group .pz-check { min-height: 44px; padding: 0 14px; border: 1px solid var(--pz-line); border-radius: var(--pz-radius); background: var(--pz-surface); cursor: pointer; }
.pz-radio-group .pz-check:has(input:checked) { border-color: var(--pz-teal); box-shadow: inset 0 0 0 1px var(--pz-teal); }
.pz-address-group { border: 0; padding: 0; margin: 0; }
.pz-address-group legend { font-weight: 600; font-size: 14px; margin-bottom: 6px; padding: 0; }
.pz-address-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.pz-address-grid__item { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pz-address-grid__item label { font-size: 13px; }
.pz-address-grid__wide { grid-column: 1 / -1; }
@media (min-width: 700px) { .pz-address-grid { grid-template-columns: 2fr 1fr 1fr; } .pz-address-grid__wide { grid-column: span 2; } }
.pz-check--top input { margin-top: 2px; flex: none; }
textarea.pz-input { resize: vertical; font-family: inherit; }
select.pz-input { background: #fff; }
.pz-signature { border: 2px dashed var(--pz-line); border-radius: var(--pz-radius); background: #fff; touch-action: none; width: 100%; height: 200px; display: block; }
.pz-signature-box { margin-bottom: 16px; }
.pz-signature-box .mud-button-root { margin-top: 6px; }
.pz-doc { border-top: 1px solid var(--pz-line); padding: 10px 0; }
.pz-doc:first-of-type { border-top: none; }
.pz-doc__head { display: flex; align-items: center; gap: 6px; }
.pz-doc__name { font-weight: 600; overflow-wrap: anywhere; }
.pz-doc__meta { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 13px; flex-wrap: wrap; }
.pz-doc__actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; align-items: center; }
.pz-doc__file { display: flex; align-items: center; gap: 6px; font-size: 13px; margin-top: 4px; padding-left: 20px; }
.pz-file-btn--small { padding: 2px 10px; min-height: 30px; font-size: 13px; }

/* Aktywacja konta i „Moje konto” */
.pz-subtitle { font-size: 18px; font-weight: 600; margin: 20px 0 4px; }
.pz-card > .pz-subtitle:first-child { margin-top: 0; }
/* Atrybut hidden zawsze ukrywa (klasy przycisków i kart ustawiają display). */
[hidden] { display: none !important; }
.pz-sep { border: 0; border-top: 1px solid var(--pz-border, #E4E7EB); margin: 24px 0; }
.pz-push__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }

/* ---------- Wiadomości testowe (Pickup) ---------- */
.pz-outbox { border-top: 1px solid var(--pz-line); padding: 12px 16px; }
.pz-outbox__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pz-outbox__subject { font-weight: 600; margin-top: 4px; }
.pz-outbox__body { white-space: pre-wrap; font-size: 14px; margin-top: 6px; overflow-wrap: anywhere; }

/* ---------- Podpis na tablecie (stanowisko) i na telefonie ---------- */
.pz-signature--large { height: 260px; }
.pz-signature-preview { display: block; max-width: 360px; width: 100%; border: 1px solid var(--pz-line); border-radius: var(--pz-radius); background: #fff; margin-top: 6px; }
.pz-sign-doc { padding: 0; }
.pz-sign-doc > summary { padding: 14px 16px; cursor: pointer; font-size: 16px; }
.pz-sign-doc__text { max-height: 50vh; overflow-y: auto; padding: 0 16px 16px; font-size: 15px; line-height: 1.5; border-top: 1px solid var(--pz-line); }
.pz-sign-doc__heading { font-weight: 700; margin-top: 14px; }
.pz-sign-consent { font-size: 15px; }
.pz-sign-send { border-top: 1px solid var(--pz-line); padding-top: 12px; margin-top: 8px; }
.pz-sign-requests { margin-top: 8px; }
.pz-station { max-width: 980px; }
.pz-station__idle { text-align: center; padding: 48px 24px; }
.pz-station__big { font-size: 64px; color: var(--pz-success); margin: 0; }
.pz-input--code { font-size: 28px; letter-spacing: 4px; text-transform: uppercase; text-align: center; }
.pz-pairing-code { font-size: 34px; font-weight: 700; letter-spacing: 6px; font-family: ui-monospace, Menlo, Consolas, monospace; margin: 8px 0; }

/* Szkolenia: podmenu zleceniobiorcy, biblioteka, quizy */
.pz-subnav { background: #fff; border-bottom: 1px solid var(--pz-line); }
.pz-subnav__inner { max-width: 720px; margin: 0 auto; padding: 0 16px; display: flex; gap: 4px; overflow-x: auto; }
.pz-subnav a { padding: 12px 12px; color: var(--pz-muted); text-decoration: none; font-weight: 600; font-size: 15px; white-space: nowrap; border-bottom: 3px solid transparent; }
.pz-subnav a.active { color: var(--pz-navy); border-bottom-color: var(--pz-teal); }
.pz-library-doc { padding: 12px 0; border-top: 1px solid var(--pz-line); }
.pz-library-doc:first-of-type { border-top: 0; padding-top: 4px; }
.pz-library-doc__head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pz-library-doc__title { font-weight: 600; font-size: 16px; }
.pz-library-doc p { margin: 6px 0; }
.pz-library-doc__ok { color: #1B7F4B; font-weight: 600; align-self: center; }
.pz-badge--late { background: #FDECEC; color: #B42318; }
.pz-quiz-q { border: 0; }
.pz-quiz-q legend { font-weight: 600; font-size: 16px; margin-bottom: 10px; padding: 0; float: left; width: 100%; }
.pz-quiz-q__number { color: var(--pz-muted); }
.pz-quiz-q__answer { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; padding: 10px 12px; margin-top: 8px; border: 1px solid var(--pz-line); border-radius: var(--pz-radius); background: var(--pz-surface); cursor: pointer; clear: both; }
.pz-quiz-q__answer:has(input:checked) { border-color: var(--pz-teal); box-shadow: inset 0 0 0 1px var(--pz-teal); }
.pz-quiz-q__answer input { margin-top: 3px; flex: none; width: 18px; height: 18px; }
.pz-quiz-result { text-align: center; }
.pz-quiz-result__score { font-size: 44px; font-weight: 700; margin: 4px 0; }
.pz-quiz-result--ok .pz-quiz-result__score { color: #1B7F4B; }
.pz-quiz-result--fail .pz-quiz-result__score { color: #B42318; }
.pz-quiz-result .pz-offer__actions { justify-content: center; }
.pz-langtag { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 5px; margin-right: 3px; border-radius: 4px; background: #E7F4EE; color: #1B7F4B; }
.pz-langtag--missing { background: #FDECEC; color: #B42318; text-decoration: line-through; }
.pz-lang-chips { align-items: center; }
.pz-quiz-answer { display: flex; gap: 8px; align-items: center; margin-top: 6px; }
.pz-quiz-answer > * { flex: 0 0 auto; width: auto; }
.pz-quiz-answer > .mud-input-control:last-child { flex: 1 1 auto; }
.pz-crew-hours { max-width: 220px; }
.pz-hazards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 12px; }
.pz-subcard { border: 1px solid var(--pz-line); border-radius: 8px; padding: 12px; background: #FAFBFC; }

/* Dyspozycyjność zleceniobiorcy: tabela dni × pory, duże pola do zaznaczenia palcem. */
.pz-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pz-avail-week { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 4px; border-top: 1px solid var(--pz-line); color: inherit; text-decoration: none; }
.pz-avail-week:first-child { border-top: 0; }
.pz-avail-week:hover strong { text-decoration: underline; }
.pz-avail { overflow-x: auto; margin: 8px -4px 12px; }
.pz-avail__table { width: 100%; border-collapse: separate; border-spacing: 6px; table-layout: fixed; }
.pz-avail__table th { font-weight: 600; }
.pz-avail__table thead th:first-child, .pz-avail__table tbody th { width: 64px; }
.pz-avail__head { width: 100%; min-height: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border: 0; border-radius: 8px;
    background: #F2F4F7; color: var(--pz-navy); font: inherit; font-size: 14px; cursor: pointer; padding: 4px; }
.pz-avail__head small { font-size: 11px; font-weight: 500; opacity: .75; }
.pz-avail__head:disabled { cursor: default; }
.pz-avail__day span { text-transform: capitalize; }
.pz-avail__all { border: 0; background: none; color: var(--pz-teal); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; padding: 4px 0; }
.pz-avail__cell { display: block; position: relative; height: 52px; cursor: pointer; }
.pz-avail__cell input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.pz-avail__cell span[aria-hidden] { position: absolute; inset: 0; border-radius: 10px; border: 2px solid var(--pz-line); background: #fff; transition: background .1s, border-color .1s; }
.pz-avail__cell input:checked + span[aria-hidden] { background: #1B7F4B; border-color: #1B7F4B; }
.pz-avail__cell input:checked + span[aria-hidden]::after { content: "✓"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 24px; font-weight: 700; }
.pz-avail__cell input:focus-visible + span[aria-hidden] { outline: 3px solid var(--pz-teal); outline-offset: 2px; }
.pz-avail__cell input:disabled + span[aria-hidden] { opacity: .6; }
@media (max-width: 420px) {
    .pz-avail__table { border-spacing: 4px; }
    .pz-avail__table thead th:first-child, .pz-avail__table tbody th { width: 52px; }
    .pz-avail__cell { height: 46px; }
}
.pz-avail-summary td { font-weight: 600; }
.pz-period-tag { display: inline-block; min-width: 20px; padding: 1px 4px; margin: 1px; border-radius: 4px; background: #E8F5E9; color: #1B5E20; font-size: 12px; font-weight: 700; }

/* Przeglądarka dokumentów zleceniobiorcy: strony na kanwie, tekst bez zaznaczania; bez wydruku. */
.pz-viewer { padding: 8px; }
.pz-viewer__status { text-align: center; padding: 24px 8px; }
.pz-viewer__pages { display: flex; flex-direction: column; gap: 8px; }
.pz-viewer__page { display: block; width: 100%; height: auto; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); background: #fff;
    -webkit-touch-callout: none; user-select: none; -webkit-user-select: none; }
.pz-viewer-text { font-size: 15px; line-height: 1.5; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
@media print {
    .pz-viewer, .pz-viewer-text { display: none !important; }
}
.pz-agency { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 4px; background: #EDE7F6; color: #4527A0; font-size: 11px; font-weight: 700; }
.pz-phone-pick { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; }
.pz-phone-pick__tags { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.pz-avail-tag { display: inline-block; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 700; background: #ECEFF1; color: var(--pz-muted); }
.pz-avail-tag--yes { background: #E8F5E9; color: #1B5E20; }
.pz-avail-tag--no { background: #FDECEC; color: #B42318; }
.pz-slot-avail { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; font-weight: 600; color: #1B5E20; text-decoration: none; white-space: nowrap; }
.pz-slot-avail.is-low { color: #B42318; }
/* Stronicowanie także nad listą (lista zleceniobiorców): bez obramowania, zawijane na wąskim ekranie. */
.mud-table-toolbar:has(.pz-pager-top) { flex-wrap: wrap; height: auto; gap: 8px; padding: 12px 16px; }
.pz-pager-top.mud-table-pagination, .pz-pager-top { border: 0 !important; padding: 0; min-height: 0; width: auto; }
