/* Moduł kalendarza — zmienne i kontener */
.spm-school-calendar{
    --spm-green:#176334;
    --spm-green-dark:#0f5129;
    --spm-green-soft:#f2f7ed;
    --spm-yellow:#f7c62f;
    --spm-yellow-soft:#fff7df;
    --spm-border:#d8e1d2;
    --spm-text:#13261a;
    max-width:1480px;
    margin:0 auto;
    padding:20px 14px 36px;
    color:var(--spm-text);
}
.spm-school-calendar *{box-sizing:border-box}

/* Nagłówek i pobieranie PDF */
.spm-school-calendar__top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:28px;
    margin-bottom:18px;
}
.spm-school-calendar__heading{
    position:relative;
    min-width:0;
    padding-bottom:12px;
}
.spm-school-calendar__heading::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:min(560px,100%);
    height:3px;
    border-radius:999px;
    background:var(--spm-yellow);
}
.spm-school-calendar__top h2{
    margin:0;
    color:var(--spm-green-dark);
    font-size:clamp(34px,4vw,56px);
    line-height:1.05;
    font-weight:800;
}
.spm-school-calendar__top p{
    margin:8px 0 0;
    color:var(--spm-green);
    font-size:clamp(23px,2.2vw,32px);
    font-weight:800;
}
.spm-school-calendar__sun{
    position:absolute;
    top:-7px;
    right:-110px;
    width:82px;
    height:82px;
    color:var(--spm-yellow);
}
.spm-school-calendar__pdf-top{
    display:flex;
    align-items:center;
    gap:14px;
    flex:0 0 auto;
    background:linear-gradient(180deg,#176b38 0%,#0e532a 100%);
    color:#fff!important;
    text-decoration:none;
    border:1px solid #0b4824;
    border-radius:10px;
    padding:12px 18px 12px 15px;
    box-shadow:0 8px 18px rgba(15,81,41,.16);
}
.spm-school-calendar__pdf-top img,
.spm-school-calendar__pdf-icon{width:38px;height:38px;flex:0 0 38px;object-fit:contain}
.spm-school-calendar__pdf-top span{display:flex;flex-direction:column;color:#fff!important}
.spm-school-calendar__pdf-top strong{font-size:18px;line-height:1.2;color:#fff!important;font-weight:800}
.spm-school-calendar__pdf-top small{margin-top:4px;color:#fff!important;opacity:.92;font-weight:600}
.spm-school-calendar__pdf-top,
.spm-school-calendar__pdf-top:hover,
.spm-school-calendar__pdf-top:focus,
.spm-school-calendar__pdf-top *{color:#fff!important;text-decoration:none!important}

/* Nawigacja miesięcy */
.spm-school-calendar__months{
    display:grid;
    grid-template-columns:repeat(10,minmax(90px,1fr));
    gap:8px;
    margin:0 0 16px;
}
.spm-school-calendar__months button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:10px 13px;
    border:1px solid #cbdabb;
    background:linear-gradient(180deg,#fbfcf8 0%,#f0f5e9 100%);
    border-radius:8px;
    box-shadow:0 2px 5px rgba(24,87,46,.04);
    font-family:var(--font-ui);
    font-size:15px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.01em;
    color:#244b32;
    text-align:center;
    white-space:nowrap;
    cursor:pointer;
    transition:.18s ease;
}
.spm-school-calendar__months button:hover{
    border-color:#9fbd93;
    background:#edf5e7;
    transform:translateY(-1px);
}
.spm-school-calendar__months button:focus-visible{
    outline:3px solid rgba(247,198,47,.7);
    outline-offset:2px;
}
.spm-school-calendar__months button.is-active{
    background:linear-gradient(180deg,#19713a 0%,#0f582c 100%);
    border-color:#0f582c;
    color:#fff;
    box-shadow:0 7px 16px rgba(15,81,41,.26);
}

/* Aktywny miesiąc i tabela */
.spm-school-calendar__month{
    padding:14px 16px 16px;
    border:1px solid var(--spm-border);
    border-radius:10px;
    background:rgba(255,255,255,.88);
    box-shadow:0 8px 24px rgba(32,68,43,.04);
}
.spm-school-calendar__month h3{
    margin:0 0 28px;
    text-align:center;
    color:var(--spm-green-dark);
    font-size:clamp(28px,2.7vw,40px);
    line-height:1.2;
    font-weight:800;
}
.spm-school-calendar__table-wrap{overflow-x:auto;border-radius:8px}
.spm-school-calendar table{
    width:100%;
    min-width:860px;
    margin:0;
    border-collapse:separate;
    border-spacing:0;
}
.spm-school-calendar th,.spm-school-calendar td{
    height:47px;
    padding:10px 8px;
    text-align:center;
    border-right:0;
    border-bottom:1px solid #dde2dc;
    font-size:16px;
    font-family:var(--font-ui);
}
.spm-school-calendar th{
    background:linear-gradient(180deg,#176b38 0%,#0f572c 100%);
    color:#fff;
    font-weight:700;
    letter-spacing:0;
}
/* Pionowe separatory — box-shadow jest odporny na globalne style tabel WordPressa. */
.spm-school-calendar th:not(:last-child){
    box-shadow:inset -1px 0 0 rgba(255,255,255,.55);
}
.spm-school-calendar td:not(:last-child){
    box-shadow:inset -1px 0 0 #d7ded8;
}
.spm-school-calendar th:first-child{border-top-left-radius:7px}
.spm-school-calendar th:last-child{border-top-right-radius:7px}
.spm-school-calendar tbody td{background:#fff}
.spm-school-calendar tbody tr:nth-child(even) td:not(.is-weekend):not(.is-summary){background:#fffdf8}
.spm-school-calendar .is-weekend{background:linear-gradient(180deg,#f4f8ef 0%,#edf4e8 100%)}
.spm-school-calendar .is-row-total{background:linear-gradient(180deg,#fff9e8 0%,#fff4d6 100%);font-weight:700}
.spm-school-calendar__weekday-totals td{
    background:#fff!important;
    color:var(--spm-green-dark);
    font-weight:800;
}
.spm-school-calendar__weekday-totals td:first-child{
    background:var(--spm-green-soft)!important;
}
.spm-school-calendar__weekday-totals .is-weekend-total{color:#f2a800}

/* Podsumowanie dni nauki */
.spm-school-calendar__learning-days{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    min-height:60px;
    margin-top:12px;
    padding:10px 22px;
    border:1px solid #ccdbb9;
    border-radius:8px;
    background:linear-gradient(180deg,#f8fbf2 0%,#eef5e6 100%);
    color:var(--spm-green-dark);
    font-size:20px;
    font-weight:700;
}
.spm-school-calendar__learning-days svg{
    width:42px;
    height:42px;
    padding:9px;
    border-radius:50%;
    background:var(--spm-green);
    color:#fff;
}
.spm-school-calendar__learning-days strong{font-size:34px;line-height:1}

/* Karty semestrów */
.spm-school-calendar__semester-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:14px;
}
.spm-school-calendar__semester-cards article{
    position:relative;
    display:flex;
    align-items:flex-start;
    gap:20px;
    min-height:150px;
    padding:22px 26px;
    overflow:hidden;
    border:1px solid #cfddc6;
    border-radius:9px;
    background:linear-gradient(135deg,#fbfdf8 0%,#eef5e9 100%);
}
.spm-school-calendar__semester-cards article.is-yellow{
    border-color:#f0d179;
    background:linear-gradient(135deg,#fffef8 0%,#fff7df 100%);
}
.spm-school-calendar__semester-cards article::after{
    content:"";
    position:absolute;
    right:20px;
    bottom:8px;
    width:180px;
    height:120px;
    background:center/contain no-repeat var(--spm-card-bg, url("../../images/page-header/classic-books.svg"));
    opacity:var(--spm-card-bg-opacity,.20);
    pointer-events:none;
}
.spm-school-calendar__semester-cards article.is-yellow::after{
    background-image:var(--spm-card-bg, url("../../images/page-header/classic-pencil-cup.svg"));
    opacity:var(--spm-card-bg-opacity,.22);
}
.spm-school-calendar__round-icon{
    display:grid;
    place-items:center;
    flex:0 0 52px;
    width:52px;
    height:52px;
    border-radius:50%;
    background:var(--spm-green);
    color:#fff;
}
.spm-school-calendar__round-icon svg{width:28px;height:28px}
.spm-school-calendar__semester-cards .is-yellow .spm-school-calendar__round-icon{background:#efb900}
.spm-school-calendar__semester-cards h3{
    margin:0 0 7px;
    color:var(--spm-green-dark);
    font-size:23px;
}
.spm-school-calendar__semester-cards p{margin:5px 0;position:relative;z-index:1}
.spm-school-calendar__semester-cards b{
    display:inline-block;
    margin-left:6px;
    padding:4px 11px;
    border-radius:7px;
    background:var(--spm-green);
    color:#fff;
}
.spm-school-calendar__semester-cards .is-yellow b{background:#efb900}

/* Dni dyrektorskie */
.spm-school-calendar__director-days{
    position:relative;
    display:grid;
    grid-template-columns:auto minmax(190px,.9fr) minmax(0,3fr);
    align-items:center;
    gap:20px;
    margin-top:14px;
    padding:21px 26px;
    overflow:hidden;
    border:1px solid #f0d179;
    border-radius:9px;
    background:linear-gradient(135deg,#fffef8 0%,#fff8e5 100%);
}
.spm-school-calendar__director-days::after{
    content:"";
    position:absolute;
    right:28px;
    bottom:4px;
    width:130px;
    height:90px;
    background:center/contain no-repeat var(--spm-director-bg, url("../../images/page-header/classic-paper-plane.svg"));
    opacity:var(--spm-director-bg-opacity,.24);
    pointer-events:none;
}
.spm-school-calendar__director-days .spm-school-calendar__round-icon{background:#efb900}
.spm-school-calendar__director-days h3{
    display:flex;
    align-items:center;
    align-self:center;
    margin:0;
    color:var(--spm-green-dark);
    font-size:23px;
    line-height:1.3;
}
.spm-school-calendar__director-list{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:center;
    align-self:center;
    gap:10px 22px;
    margin:0;
    padding:0;
    list-style:none;
    position:relative;
    z-index:1;
    transform:translateY(5px);
}
.spm-school-calendar__director-list li{
    display:flex;
    align-items:center;
    min-height:30px;
    margin:0;
    padding-left:15px;
    position:relative;
    line-height:1.3;
    white-space:nowrap;
}
.spm-school-calendar__director-list li::before{
    content:"•";
    position:absolute;
    left:0;
    color:var(--spm-green-dark);
}
.spm-school-calendar [hidden]{display:none!important}

/* Responsywność */
@media(max-width:1100px){
    .spm-school-calendar__sun{display:none}
    .spm-school-calendar__months{display:flex;overflow-x:auto;padding-bottom:5px}
    .spm-school-calendar__months button{min-width:125px}
}
@media(max-width:760px){
    .spm-school-calendar{padding-inline:8px}
    .spm-school-calendar__top{flex-direction:column}
    .spm-school-calendar__pdf-top{width:100%}
    .spm-school-calendar__semester-cards{grid-template-columns:1fr}
    .spm-school-calendar__director-days{grid-template-columns:auto 1fr}
    .spm-school-calendar__director-list{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
    .spm-school-calendar__month{padding-inline:6px}
}
.spm-school-calendar__weekday-totals td:first-child{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding-inline:16px;
}
.spm-school-calendar__weekday-totals td:first-child b{font:inherit}

/* Media wybierane w panelu kalendarza */
.spm-school-calendar__custom-icon{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}
.spm-school-calendar__sun .spm-school-calendar__custom-icon{
    width:86px;
    height:86px;
}
.spm-school-calendar__learning-days .spm-school-calendar__custom-icon{
    width:24px;
    height:24px;
}
.spm-school-calendar__round-icon .spm-school-calendar__custom-icon{
    width:30px;
    height:30px;
}
/* Jedna linia dat na szerokich ekranach */
@media(min-width:1101px){
    .spm-school-calendar__director-days{
        grid-template-columns:auto minmax(220px,.85fr) minmax(0,3.4fr);
    }
    .spm-school-calendar__director-list{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:18px;
        min-width:0;
    }
    .spm-school-calendar__director-list li{
        flex:0 1 auto;
        white-space:nowrap;
    }
}

/* Własne ikony z Opcje motywu → Kalendarz */
.spm-school-calendar__director-days .spm-school-calendar__round-icon > img.spm-school-calendar__custom-icon{
    display:block !important;
    width:32px !important;
    height:32px !important;
    max-width:32px !important;
    max-height:32px !important;
    object-fit:contain;
    opacity:1;
    visibility:visible;
}
