.gzj-schedule {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--gzj-max-width);
    margin: 0 auto;
    padding: 0 var(--gzj-outer-padding) var(--gzj-outer-padding);
    background: var(--gzj-bg);
    color: var(--gzj-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
}

.gzj-schedule *,
.gzj-schedule *::before,
.gzj-schedule *::after {
    box-sizing: border-box;
}

/* 1.0.3: identyczna typografia w podglądzie WP i na stronie.
   Motyw/Elementor nie może nadpisywać fontu ani spacingu grafiku. */
.gzj-schedule .gzj-day-title,
.gzj-schedule .gzj-card,
.gzj-schedule .gzj-time,
.gzj-schedule .gzj-class-title,
.gzj-schedule .gzj-teacher,
.gzj-schedule .gzj-room {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif !important;
    font-style: normal !important;
    letter-spacing: normal !important;
    font-variant: normal !important;
}

.gzj-schedule .gzj-day-title {
    font-weight: 800 !important;
}

.gzj-schedule .gzj-time {
    font-weight: 500 !important;
}

.gzj-schedule .gzj-class-title {
    font-weight: 700 !important;
}

.gzj-schedule .gzj-teacher {
    font-weight: 400 !important;
}

.gzj-schedule .gzj-room {
    font-weight: 600 !important;
}

.gzj-grid {
    display: grid;
    grid-template-columns: repeat(var(--gzj-desktop-cols), minmax(0, 1fr));
    column-gap: var(--gzj-col-gap-desktop);
    align-items: start;
    background: var(--gzj-bg);
}

.gzj-header-background .gzj-grid {
    background: linear-gradient(180deg, var(--gzj-header) 0, var(--gzj-header) 66px, rgba(84,93,92,.72) 110px, rgba(255,255,255,.75) 205px, var(--gzj-bg) 260px);
}

.gzj-day {
    width: 100%;
    min-width: 0;
    max-width: none !important;
    margin: 0 !important;
}

.gzj-day-title {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0 8px;
    color: var(--gzj-header-text);
    font-size: var(--gzj-day-desktop);
    line-height: 1.05;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.gzj-day-cards {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: var(--gzj-card-gap-desktop);
    padding-top: 0;
}

.gzj-card {
    display: flex;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0;
    min-height: var(--gzj-card-min-height);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--gzj-card-padding-y) var(--gzj-card-padding-x);
    border-radius: var(--gzj-card-radius) !important;
    background: var(--gzj-card-bg);
    color: var(--gzj-card-text);
    text-align: center;
    overflow-wrap: anywhere;
}

.gzj-shadow-cards .gzj-card {
    box-shadow: 0 9px 24px rgba(0,0,0,.08);
}

.gzj-border-cards .gzj-card {
    border: 1px solid var(--gzj-border);
}

.gzj-time {
    margin-bottom: 7px;
    font-size: var(--gzj-time-desktop);
    line-height: 1.05;
    font-weight: 500;
}

.gzj-underline-time .gzj-time {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.gzj-class-title {
    margin-bottom: 7px;
    font-size: var(--gzj-title-desktop);
    line-height: 1.12;
    font-weight: 700;
}

.gzj-uppercase-title .gzj-class-title {
    text-transform: uppercase;
}

.gzj-teacher {
    margin-top: 3px;
    font-size: var(--gzj-teacher-desktop);
    line-height: 1.08;
    font-weight: 400;
}

.gzj-room {
    margin-top: auto;
    padding-top: 8px;
    font-size: var(--gzj-room-desktop);
    line-height: 1.1;
    font-weight: 600;
}

@media (max-width: 1024px) {
    .gzj-grid {
        grid-template-columns: repeat(var(--gzj-tablet-cols), minmax(0, 1fr));
        column-gap: var(--gzj-col-gap-tablet);
        row-gap: 28px;
        background: var(--gzj-bg);
    }

    .gzj-day {
        border-radius: 18px;
        overflow: hidden;
    }

    .gzj-day-title {
        min-height: 50px;
        padding: 10px 8px;
        background: transparent;
        font-size: var(--gzj-day-tablet);
    }

    .gzj-header-background .gzj-day-title {
        background: var(--gzj-header);
    }

    .gzj-day-cards {
        gap: var(--gzj-card-gap-tablet);
        padding-top: 14px;
    }

    .gzj-time { font-size: var(--gzj-time-tablet); }
    .gzj-class-title { font-size: var(--gzj-title-tablet); }
    .gzj-teacher { font-size: var(--gzj-teacher-tablet); }
    .gzj-room { font-size: var(--gzj-room-tablet); }
}

@media (max-width: 767px) {
    .gzj-schedule {
        padding-left: 14px;
        padding-right: 14px;
    }

    .gzj-grid {
        grid-template-columns: repeat(var(--gzj-mobile-cols), minmax(0, 1fr));
        column-gap: var(--gzj-col-gap-mobile);
        row-gap: 22px;
    }

    .gzj-day-title {
        min-height: 46px;
        font-size: var(--gzj-day-mobile);
    }

    .gzj-day-cards {
        gap: var(--gzj-card-gap-mobile);
        padding-top: 12px;
    }

    .gzj-card {
        min-height: 0;
        padding: 20px 18px;
    }

    .gzj-time { font-size: var(--gzj-time-mobile); }
    .gzj-class-title { font-size: var(--gzj-title-mobile); }
    .gzj-teacher { font-size: var(--gzj-teacher-mobile); }
    .gzj-room { font-size: var(--gzj-room-mobile); }
}

/* 1.0.4: stabilny układ kolumn na froncie niezależnie od CSS motywu. */
.gzj-schedule .gzj-grid > .gzj-day,
.gzj-schedule .gzj-day-cards,
.gzj-schedule .gzj-card {
    min-width: 0 !important;
}
