/* Published weekly schedules, including the site's contrast mode and printing. */
.spzoz-weekly-schedule {
    min-width: 0;
    max-width: 100%;
    color: var(--ink, #17314d);
}
.spzoz-weekly-schedule .spzoz-schedule-week,
.spzoz-weekly-schedule .spzoz-schedule-period,
.spzoz-weekly-schedule .spzoz-schedule-meta {
    padding: 18px 22px;
    margin: 0 0 24px;
    border: 1px solid #a8c5dd;
    border-left: 6px solid #087f35;
    border-radius: 12px;
    color: #003e7e;
    background: #eef6fc;
    line-height: 1.6;
}
.spzoz-weekly-schedule .spzoz-schedule-week strong,
.spzoz-weekly-schedule .spzoz-schedule-period strong {
    font-weight: 750;
}
.spzoz-weekly-schedule .spzoz-schedule-group {
    --schedule-heading: #0057b8;
    --schedule-heading-ink: #003e7e;
    margin: 30px 0;
    min-width: 0;
    max-width: 100%;
}
.spzoz-weekly-schedule .spzoz-schedule-group[data-group="poz_ozarow"],
.spzoz-weekly-schedule .spzoz-schedule-group[data-group="poz_jakubowice"],
.spzoz-weekly-schedule .spzoz-schedule-group.is-poz {
    --schedule-heading: #087f35;
    --schedule-heading-ink: #075d29;
}
.spzoz-weekly-schedule .spzoz-schedule-group.is-private,
.spzoz-weekly-schedule .spzoz-schedule-group[data-group="private"] {
    --schedule-heading: #5141aa;
    --schedule-heading-ink: #302369;
}
.spzoz-weekly-schedule .spzoz-schedule-group > h2,
.spzoz-weekly-schedule .spzoz-schedule-group > h3 {
    margin: 0 0 13px;
    padding-left: 14px;
    border-left: 5px solid var(--schedule-heading);
    color: var(--schedule-heading-ink);
    font-weight: 750;
    line-height: 1.4;
}
.spzoz-weekly-schedule .table-scroll {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    margin: 12px 0 24px;
    border: 1px solid #9eb8ce;
    border-radius: 10px;
    overscroll-behavior-x: contain;
}
.spzoz-weekly-schedule .table-scroll:focus-visible {
    outline: 3px solid #a84200;
    outline-offset: 4px;
}
.spzoz-weekly-schedule table {
    width: 100%;
    min-width: 760px;
    margin: 0;
    border-collapse: collapse;
    font-size: .94rem;
    line-height: 1.6;
}
.spzoz-weekly-schedule table caption {
    padding: 13px 16px;
    color: var(--schedule-heading-ink, #003e7e);
    background: #eef5fb;
    font-weight: 700;
    text-align: left;
}
.spzoz-weekly-schedule table thead th {
    padding: 15px 16px;
    color: #fff;
    background: var(--schedule-heading, #0057b8);
    border: 0;
    font-weight: 750;
    text-align: left;
    vertical-align: top;
}
.spzoz-weekly-schedule table tbody th,
.spzoz-weekly-schedule table tbody td {
    padding: 16px;
    border: 0;
    border-bottom: 1px solid #c3d4e2;
    background: #fff;
    color: #17314d;
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}
.spzoz-weekly-schedule table tbody th {
    color: var(--schedule-heading-ink, #003e7e);
    font-weight: 750;
}
.spzoz-weekly-schedule table tbody tr:nth-child(even) th,
.spzoz-weekly-schedule table tbody tr:nth-child(even) td {
    background: #f1f6fb;
}
.spzoz-weekly-schedule .is-private table caption,
.spzoz-weekly-schedule .is-private table tbody tr:nth-child(even) th,
.spzoz-weekly-schedule .is-private table tbody tr:nth-child(even) td {
    background: #f3effb;
}
.spzoz-weekly-schedule table tbody tr:last-child th,
.spzoz-weekly-schedule table tbody tr:last-child td {
    border-bottom: 0;
}
.spzoz-weekly-schedule .spzoz-schedule-status {
    display: inline-block;
    padding: 4px 9px;
    border: 1px solid #99b8d7;
    border-radius: 6px;
    color: #003e7e;
    background: #eaf2fc;
    font-size: .84rem;
    font-weight: 750;
    line-height: 1.5;
}
.spzoz-weekly-schedule .status-urlop,
.spzoz-weekly-schedule .status-cancelled {
    color: #851729;
    background: #fdeef0;
    border-color: #ce8490;
}
.spzoz-weekly-schedule .status-replacement {
    color: #07552a;
    background: #eaf6ee;
    border-color: #85b497;
}
.spzoz-weekly-schedule .status-closed {
    color: #303a48;
    background: #edf0f4;
    border-color: #a5b0bd;
}
.spzoz-weekly-schedule .spzoz-schedule-day-date,
.spzoz-weekly-schedule .spzoz-schedule-note,
.spzoz-weekly-schedule .spzoz-schedule-help {
    display: block;
    margin-top: 5px;
    color: #41576d;
    font-size: .87rem;
    line-height: 1.6;
}
.spzoz-weekly-schedule .spzoz-schedule-empty {
    padding: 18px 20px;
    border: 1px solid #b4c8d9;
    border-radius: 10px;
    background: #eef5fb;
    color: #17314d;
}
.spzoz-weekly-schedule .spzoz-schedule-reminder {
    padding: 18px 20px;
    border: 1px solid #a7c8b4;
    border-left: 5px solid #087f35;
    border-radius: 10px;
    background: #eef7f2;
    color: #17314d;
    line-height: 1.65;
}
.spzoz-weekly-schedule .spzoz-schedule-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
}
.high-contrast .spzoz-weekly-schedule,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-week,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-period,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-meta,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-empty,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-reminder,
.high-contrast .spzoz-weekly-schedule table caption,
.high-contrast .spzoz-weekly-schedule table thead th,
.high-contrast .spzoz-weekly-schedule table tbody th,
.high-contrast .spzoz-weekly-schedule table tbody td,
.high-contrast .spzoz-weekly-schedule table tbody tr:nth-child(even) th,
.high-contrast .spzoz-weekly-schedule table tbody tr:nth-child(even) td,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-status {
    color: #fff;
    background: #111;
    border-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-group > h2,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-group > h3,
.high-contrast .spzoz-weekly-schedule table tbody th,
.high-contrast .spzoz-weekly-schedule table thead th,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-status {
    color: #ffe760;
    border-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .table-scroll {
    border-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .table-scroll:focus-visible {
    outline-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-day-date,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-note,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-help {
    color: #fff;
}
@media (max-width: 600px) {
    .spzoz-weekly-schedule .spzoz-schedule-week,
    .spzoz-weekly-schedule .spzoz-schedule-period,
    .spzoz-weekly-schedule .spzoz-schedule-meta { padding: 16px; }
    .spzoz-weekly-schedule .spzoz-schedule-group { margin: 24px 0; }
    .spzoz-weekly-schedule .spzoz-schedule-group > h2 { font-size: 1.45rem; }
    .spzoz-weekly-schedule table { min-width: 710px; }
    .spzoz-weekly-schedule table thead th,
    .spzoz-weekly-schedule table tbody th,
    .spzoz-weekly-schedule table tbody td { padding: 13px; }
}
@media (forced-colors: active) {
    .spzoz-weekly-schedule .table-scroll,
    .spzoz-weekly-schedule .spzoz-schedule-status { border-color: CanvasText; }
}
@media print {
    .spzoz-weekly-schedule,
    .spzoz-weekly-schedule * {
        color: #000 !important;
        background: #fff !important;
        box-shadow: none !important;
    }
    .spzoz-weekly-schedule .spzoz-schedule-actions,
    .spzoz-weekly-schedule .spzoz-schedule-print { display: none; }
    .spzoz-weekly-schedule .table-scroll {
        overflow: visible;
        border: 1px solid #777;
        border-radius: 0;
    }
    .spzoz-weekly-schedule table {
        min-width: 0;
        width: 100%;
        table-layout: fixed;
        font-size: 9pt;
    }
    .spzoz-weekly-schedule table th,
    .spzoz-weekly-schedule table td {
        padding: 6px !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        border-bottom: 1px solid #999 !important;
    }
    .spzoz-weekly-schedule table thead { display: table-header-group; }
    .spzoz-weekly-schedule table tr { break-inside: avoid; }
    .spzoz-weekly-schedule .spzoz-schedule-group > h2,
    .spzoz-weekly-schedule .spzoz-schedule-group > h3 { break-after: avoid; border-color: #555; }
    .spzoz-weekly-schedule .spzoz-schedule-status { border-color: #555; padding: 2px 4px; font-size: 8pt; }
}

/* Each published week can be narrowed using the same form with or without JavaScript. */
.spzoz-weekly-schedule [hidden] {
    display: none !important;
}
.spzoz-weekly-schedule .spzoz-schedule-filters {
    min-width: 0;
    margin: 0 0 18px;
    padding: 22px;
    border: 1px solid #9ebed9;
    border-top: 5px solid #0057b8;
    border-radius: 12px;
    background: #edf5fc;
    color: #17314d;
}
.spzoz-weekly-schedule .spzoz-schedule-filters legend {
    width: auto;
    max-width: 100%;
    padding: 0 8px;
    color: #003e7e;
    font-size: 1.2rem;
    font-weight: 750;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 16px;
    min-width: 0;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-field {
    min-width: 0;
    margin: 0;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-field label {
    display: block;
    margin: 0 0 7px;
    color: #003e7e;
    font-size: .95rem;
    font-weight: 750;
    line-height: 1.5;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-form input[data-filter],
.spzoz-weekly-schedule .spzoz-schedule-filter-form select[data-filter] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    border: 2px solid #698cad;
    border-radius: 7px;
    background-color: #fff;
    color: #17314d;
    font: inherit;
    font-size: 1rem;
    line-height: 1.5;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-form select[data-filter] {
    padding-right: 30px;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-form input::placeholder {
    color: #465a70;
    opacity: 1;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-actions button,
.spzoz-weekly-schedule .spzoz-schedule-filter-actions a {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    max-width: 100%;
    padding: 10px 18px;
    border: 2px solid #0057b8;
    border-radius: 7px;
    background: #0057b8;
    color: #fff;
    font: inherit;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-actions a {
    background: #fff;
    color: #004d99;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-actions button:hover,
.spzoz-weekly-schedule .spzoz-schedule-filter-actions a:hover {
    border-color: #087f35;
    background: #087f35;
    color: #fff;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-form input:focus-visible,
.spzoz-weekly-schedule .spzoz-schedule-filter-form select:focus-visible,
.spzoz-weekly-schedule .spzoz-schedule-filter-actions button:focus-visible,
.spzoz-weekly-schedule .spzoz-schedule-filter-actions a:focus-visible {
    outline: 3px solid #a84200;
    outline-offset: 3px;
}
.spzoz-weekly-schedule .spzoz-schedule-result-count {
    margin: 14px 0;
    color: #003e7e;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.6;
}
.spzoz-weekly-schedule .spzoz-schedule-no-results,
.spzoz-weekly-schedule .spzoz-schedule-filter-errors {
    margin: 16px 0 24px;
    padding: 16px 20px;
    border: 1px solid #a3bfd8;
    border-left: 5px solid #0057b8;
    border-radius: 8px;
    background: #eef5fb;
    color: #17314d;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-errors {
    border-color: #bc7985;
    border-left-color: #851729;
    background: #fdeef0;
    color: #851729;
}
.spzoz-weekly-schedule .spzoz-schedule-filter-errors ul {
    margin: 0;
    padding-left: 22px;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filters,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-no-results,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-errors,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-form input[data-filter],
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-form select[data-filter],
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions button,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions a {
    border-color: #ffe760;
    background: #111;
    color: #fff;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filters legend,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-field label,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-result-count,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions button,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions a {
    color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-form input::placeholder {
    color: #fff;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-form input:focus-visible,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-form select:focus-visible,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions button:focus-visible,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions a:focus-visible {
    outline-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions button:hover,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-filter-actions a:hover {
    background: #ffe760;
    color: #111;
}
@media (max-width: 600px) {
    .spzoz-weekly-schedule .spzoz-schedule-filters { padding: 16px; }
    .spzoz-weekly-schedule .spzoz-schedule-filter-grid { grid-template-columns: 1fr; }
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions { align-items: stretch; }
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions button,
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions a { flex: 1 1 150px; }
}
@media (forced-colors: active) {
    .spzoz-weekly-schedule .spzoz-schedule-filters,
    .spzoz-weekly-schedule .spzoz-schedule-no-results,
    .spzoz-weekly-schedule .spzoz-schedule-filter-errors,
    .spzoz-weekly-schedule .spzoz-schedule-filter-form input[data-filter],
    .spzoz-weekly-schedule .spzoz-schedule-filter-form select[data-filter],
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions button,
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions a {
        border-color: CanvasText;
        background: Canvas;
        color: CanvasText;
    }
    .spzoz-weekly-schedule .spzoz-schedule-filters legend,
    .spzoz-weekly-schedule .spzoz-schedule-filter-field label,
    .spzoz-weekly-schedule .spzoz-schedule-result-count { color: CanvasText; }
    .spzoz-weekly-schedule .spzoz-schedule-filter-form input:focus-visible,
    .spzoz-weekly-schedule .spzoz-schedule-filter-form select:focus-visible,
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions button:focus-visible,
    .spzoz-weekly-schedule .spzoz-schedule-filter-actions a:focus-visible { outline-color: Highlight; }
}
@media print {
    .spzoz-weekly-schedule .spzoz-schedule-filter-form,
    .spzoz-weekly-schedule .spzoz-schedule-result-count,
    .spzoz-weekly-schedule .spzoz-schedule-filter-errors { display: none !important; }
}

/* Holidays are named as well as coloured; existing appointment status is kept. */
.spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th,
.spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday td {
    background: #fff3f4;
}
.spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th {
    color: #9b1c2c;
    border-left: 4px solid #b71c2c;
}
.spzoz-weekly-schedule .spzoz-schedule-holiday-label {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-top: 7px;
    padding: 4px 8px;
    border: 1px solid #b71c2c;
    border-radius: 5px;
    color: #9b1c2c;
    background: #fff;
    font-size: .84rem;
    font-weight: 750;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.high-contrast .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th,
.high-contrast .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday td,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-holiday-label {
    color: #fff;
    background: #111;
    border-color: #ffe760;
}
.high-contrast .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th,
.high-contrast .spzoz-weekly-schedule .spzoz-schedule-holiday-label { color: #ffe760; }
@media (forced-colors: active) {
    .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th,
    .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday td,
    .spzoz-weekly-schedule .spzoz-schedule-holiday-label {
        color: CanvasText;
        background: Canvas;
        border-color: CanvasText;
    }
}
@media print {
    .spzoz-weekly-schedule table.spzoz-schedule-public-table tbody tr.spzoz-schedule-holiday th,
    .spzoz-weekly-schedule .spzoz-schedule-holiday-label {
        color: #9b1c2c !important;
        background: #fff !important;
        border-color: #9b1c2c !important;
        font-weight: 750;
    }
}
