{"id":2702,"date":"2025-09-22T21:43:41","date_gmt":"2025-09-22T19:43:41","guid":{"rendered":"https:\/\/hilaris-blonie.pl\/?page_id=2702"},"modified":"2026-08-18T04:16:55","modified_gmt":"2026-08-18T02:16:55","slug":"kalendarz-roku-szkolnego","status":"publish","type":"page","link":"https:\/\/hilaris-blonie.pl\/?page_id=2702","title":{"rendered":"Kalendarz roku szkolnego"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2702\" class=\"elementor elementor-2702\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f835ed2 e-grid e-con-boxed e-con e-parent\" data-id=\"f835ed2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f567a0 elementor-widget elementor-widget-html\" data-id=\"3f567a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ==========================================================================\n     HILARIS \u2014 SZKO\u0141A \u2192 KALENDARZ ROKU SZKOLNEGO   (wersja responsywna)\n     Scala trzy zak\u0142adki: kalendarz, dni wolne od zaj\u0119\u0107 oraz zebrania i dni otwarte.\n     WYMAGA rdzenia (hilaris-CORE.html).\n     Strona zna dzisiejsz\u0105 dat\u0119: pokazuje post\u0119p roku szkolnego, najbli\u017csze\n     wydarzenie i sama oznacza, co min\u0119\u0142o.\n     \u25b8 AKTUALIZACJA: obiekt ROK na dole pliku. Reszta przelicza si\u0119 sama.\n     ---------------------------------------------------------------------------\n     ZMIANY W TEJ WERSJI:\n       \u2022 usuni\u0119ty g\u00f3rny pasek z nazw\u0105 szko\u0142y i telefonami oraz stopka bloku \u2014\n         jedno i drugie jest ju\u017c w globalnym nag\u0142\u00f3wku i stopce strony\n       \u2022 wszystkie nag\u0142\u00f3wki sekcji (\u201eCa\u0142y rok na jednym ekranie\u201d i kolejne\n         w d\u00f3\u0142 strony) wy\u015brodkowane razem z podpisami\n       \u2022 czcionka nag\u0142\u00f3wk\u00f3w: Source Serif 4 zamiast Fraunces \u2014 ten sam\n         charakter szeryfowy i ta sama czytelno\u015b\u0107, ale proste \u201eJ\u201d.\n         Zmiana w dw\u00f3ch miejscach: adres Google Fonts na g\u00f3rze styl\u00f3w\n         i regu\u0142a \u201e.hx-kal h1, h2 \u2026\u201d. Pasuj\u0105 te\u017c: Literata, Newsreader, Bitter\n       \u2022 rozk\u0142ad tre\u015bci na komputerze bez zmian wzgl\u0119dem pierwotnej wersji:\n         cztery miesi\u0105ce w rz\u0119dzie i lista termin\u00f3w w dw\u00f3ch kolumnach\n       \u2022 poprawki responsywno\u015bci: naprawiony poziomy suwak na telefonie\n         (kafle \u201ePowi\u0105zane strony\u201d rozpycha\u0142y siatk\u0119 d\u0142ugim s\u0142owem),\n         podpowiedzi przy dniach nie wychodz\u0105 ju\u017c poza ekran, a po usuni\u0119ciu\n         stopki dolny odst\u0119p jest dopasowany do paska szybkich akcji\n     ========================================================================== -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\"\n      href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Serif+4:opsz,wght@8..60,600;8..60,700&display=swap\">\n<style>\n\/* \u2500\u2500 CZCIONKA NAG\u0141\u00d3WK\u00d3W (bez ozdobnego \u201eJ\u201d) \u2500\u2500 *\/\n.hx-kal h1,.hx-kal h2,.hx-kal h3,.hx-kal .hx-h,\n.hx-kal .kl-stat b,.hx-kal .kl-mon__n,.hx-kal .kl-when,.hx-kal .kl-hours b{\n  font-family:'Source Serif 4',Georgia,'Times New Roman',serif !important;\n}\n\/* \u2500\u2500 WY\u015aRODKOWANE NAG\u0141\u00d3WKI SEKCJI \u2500\u2500 *\/\n.hx-kal .hx-h{text-align:center;}\n.hx-kal .hx-sub{text-align:center;max-width:64ch;margin-left:auto;margin-right:auto;}\n\/* legenda i przyciski te\u017c na \u015brodku, \u017ceby trzyma\u0142y o\u015b z nag\u0142\u00f3wkiem *\/\n.hx-kal .kl-leg{justify-content:center;}\n\/* po usuni\u0119ciu stopki: zapas na dolny pasek szybkich akcji (tylko telefon) *\/\n.hx-kal .hx-app{padding-bottom:calc(48px + env(safe-area-inset-bottom));}\n@media (min-width:900px){ .hx-kal .hx-app{padding-bottom:0;} }\n\/* Kafle \u201ePowi\u0105zane strony\u201d: kolumna 1fr potrafi rozepchn\u0105\u0107 si\u0119 do szeroko\u015bci\n   najd\u0142u\u017cszego s\u0142owa (\u201e\u00f3smoklasisty\u201d) i wypchn\u0105\u0107 siatk\u0119 poza ekran.\n   minmax(0,1fr) plus \u0142amanie d\u0142ugich s\u0142\u00f3w pilnuje, \u017ceby nic nie wystawa\u0142o. *\/\n.hx-kal .hx-grid{grid-template-columns:repeat(var(--cols),minmax(0,1fr));}\n@media (min-width:900px){\n  .hx-kal .hx-grid{grid-template-columns:repeat(var(--cols-d),minmax(0,1fr));}\n}\n.hx-kal .hx-tile{min-width:0;overflow-wrap:anywhere;}\n\/* \u2500\u2500 wst\u0119ga roku szkolnego \u2500\u2500 *\/\n.hx-kal .kl-hero{background:var(--navy);color:#fff;padding:26px var(--pad) 28px;}\n.hx-kal .kl-ribbon{margin-top:22px;}\n.hx-kal .kl-cap{font-size:.76rem;color:#9FB8CB;line-height:1.45;margin-bottom:10px;}\n.hx-kal .kl-cap b{color:#fff;font-weight:700;}\n.hx-kal .kl-tip{min-height:2.6em;font-size:.8rem;font-weight:700;color:var(--gold-l);\n  margin-bottom:7px;line-height:1.3;transition:color .2s ease;}\n.hx-kal .kl-tip.idle{color:#7F98AD;font-weight:600;}\n.hx-kal .kl-rib{position:relative;height:38px;border-radius:10px;background:rgba(255,255,255,.12);}\n.hx-kal .kl-seg{position:absolute;top:3px;bottom:3px;border-radius:3px;cursor:pointer;\n  transition:transform .2s ease,filter .2s ease;transform-origin:center;}\n.hx-kal .kl-seg:hover,.hx-kal .kl-seg:focus-visible{transform:scaleY(1.22);filter:brightness(1.25);z-index:3;}\n.hx-kal .kl-seg.hit{transform:scaleY(1.22);filter:brightness(1.3);}\n\/* znacznik \u201edzi\u015b\u201d \u2014 pokazywany tylko wtedy, gdy naprawd\u0119 jest w zakresie roku *\/\n.hx-kal .kl-now{position:absolute;top:-9px;bottom:-9px;width:2.5px;background:#fff;border-radius:99px;\n  box-shadow:0 0 0 4px rgba(255,255,255,.22);z-index:4;}\n.hx-kal .kl-now::after{content:\"dzi\u015b\";position:absolute;top:-19px;left:50%;transform:translateX(-50%);\n  background:#fff;color:var(--navy);font-size:.62rem;font-weight:800;letter-spacing:.06em;\n  text-transform:uppercase;padding:2px 7px;border-radius:999px;}\n\/* stan po zako\u0144czeniu roku \u2014 zamiast tajemniczej kreski czytelny komunikat *\/\n\/* Delikatny raster informacyjny \u2014 NIGDY nie przechwytuje klikni\u0119\u0107,\n   inaczej zas\u0142ania\u0142by paski i wst\u0119ga przestawa\u0142aby reagowa\u0107. *\/\n.hx-kal .kl-done{position:absolute;inset:0;border-radius:10px;pointer-events:none;z-index:2;\n  background:repeating-linear-gradient(45deg,rgba(10,31,58,.28) 0 6px,rgba(10,31,58,.06) 6px 12px);}\n.hx-kal .kl-state{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);\n  color:#DCE7F0;border-radius:999px;padding:6px 13px;font-size:.72rem;font-weight:700;margin-top:10px;}\n.hx-kal .kl-state i{width:8px;height:8px;border-radius:50%;background:var(--gold-l);display:block;}\n\/* skala miesi\u0119cy pod wst\u0119g\u0105 *\/\n.hx-kal .kl-scale{position:relative;height:20px;margin-top:6px;}\n.hx-kal .kl-scale span{position:absolute;top:0;transform:translateX(-50%);font-size:.63rem;\n  font-weight:800;color:#7F98AD;letter-spacing:.04em;}\n.hx-kal .kl-scale i{position:absolute;top:-4px;width:1px;height:5px;background:rgba(255,255,255,.22);}\n.hx-kal .kl-rib__l{display:flex;justify-content:space-between;font-size:.72rem;color:#9FB8CB;\n  font-weight:700;margin-top:4px;gap:12px;flex-wrap:wrap;}\n.hx-kal .kl-ev.hit .kl-card{border-color:var(--gold);\n  box-shadow:0 0 0 3px rgba(217,164,23,.28),0 16px 32px -22px rgba(14,43,77,.7);}\n.hx-kal .kl-stat{display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:center;\n  background:rgba(255,255,255,.09);border-radius:14px;padding:15px;margin-top:18px;}\n.hx-kal .kl-stat b{font-size:2.1rem;line-height:1;color:var(--gold-l);}\n.hx-kal .kl-stat u{text-decoration:none;display:block;font-size:.68rem;font-weight:800;\n  letter-spacing:.13em;text-transform:uppercase;color:#9FB8CB;}\n.hx-kal .kl-stat span{display:block;font-size:.85rem;color:#CFDDE8;margin-top:3px;line-height:1.4;}\n\/* \u2500\u2500 siatka miesi\u0119cy \u2500\u2500 *\/\n.hx-kal .kl-months{display:grid;grid-template-columns:1fr 1fr;gap:10px;}\n.hx-kal .kl-mon{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:13px 11px;}\n.hx-kal .kl-mon__h{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:9px;}\n.hx-kal .kl-mon__n{font-weight:700;font-size:.94rem;}\n.hx-kal .kl-mon__y{font-size:.66rem;font-weight:700;color:#9BADB8;}\n.hx-kal .kl-dow,.hx-kal .kl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}\n.hx-kal .kl-dow span{text-align:center;font-size:.55rem;font-weight:800;color:#9BADB8;\n  text-transform:uppercase;padding-bottom:4px;}\n.hx-kal .kl-d{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:6px;\n  font-size:.68rem;font-weight:500;}\n.hx-kal .kl-d.pad{visibility:hidden;}\n.hx-kal .kl-d.we{color:#B9C6CE;}\n.hx-kal .kl-d.today{box-shadow:inset 0 0 0 2px var(--ink);font-weight:800;}\n.hx-kal .kl-d.ev{color:#fff;font-weight:800;background:var(--c);}\n.hx-kal .kl-d.ev.dim{background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--ink-2);}\n.hx-kal .kl-d.sw::after{content:\"\";position:absolute;bottom:1px;left:50%;transform:translateX(-50%);\n  width:3px;height:3px;border-radius:50%;background:#fff;}\n.hx-kal .kl-d[data-n]{cursor:help;}\n\/* Podpowied\u017a nad dniem: zawija si\u0119 i ma ograniczon\u0105 szeroko\u015b\u0107, wi\u0119c nawet\n   przy dniu w skrajnej kolumnie nie wychodzi poza ekran. *\/\n.hx-kal .kl-d[data-n]:hover::before{content:attr(data-n);position:absolute;bottom:calc(100% + 7px);\n  left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:.68rem;font-weight:500;\n  padding:6px 10px;border-radius:8px;white-space:normal;text-align:center;\n  width:max-content;max-width:min(60vw,220px);line-height:1.35;z-index:20;\n  box-shadow:0 10px 24px -14px rgba(0,0,0,.8);}\n\/* \u2500\u2500 legenda \u2500\u2500 *\/\n.hx-kal .kl-leg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}\n.hx-kal .kl-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);\n  background:var(--paper);border-radius:999px;padding:8px 14px;font-size:.79rem;font-weight:700;\n  color:var(--ink);transition:opacity .25s ease,border-color .25s ease;}\n.hx-kal .kl-chip i{width:10px;height:10px;border-radius:3px;background:var(--c);display:block;}\n.hx-kal .kl-chip[aria-pressed=\"false\"]{opacity:.38;}\n\/* \u2500\u2500 o\u015b wydarze\u0144 \u2500\u2500 *\/\n.hx-kal .kl-list{position:relative;padding-left:30px;text-align:left;}\n.hx-kal .kl-list::before{content:\"\";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:var(--line);}\n.hx-kal .kl-ev{position:relative;padding-bottom:14px;}\n.hx-kal .kl-ev.off{display:none;}\n.hx-kal .kl-dot{position:absolute;left:-30px;top:14px;width:20px;height:20px;border-radius:50%;\n  background:var(--paper);border:2px solid var(--c);z-index:2;}\n.hx-kal .kl-ev.past .kl-dot{background:var(--c);}\n.hx-kal .kl-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;\n  border-left:3px solid var(--c);padding:13px 14px;}\n.hx-kal .kl-ev.past{opacity:.5;}\n.hx-kal .kl-ev.next .kl-card{border-color:var(--gold);box-shadow:0 14px 30px -22px rgba(14,43,77,.7);}\n.hx-kal .kl-when{font-weight:700;font-size:.92rem;}\n.hx-kal .kl-what{font-size:.9rem;margin-top:3px;}\n.hx-kal .kl-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}\n.hx-kal .kl-b{font-size:.66rem;font-weight:800;border-radius:999px;padding:3px 9px;\n  background:var(--mist);color:var(--ink-2);}\n.hx-kal .kl-b--sw{background:#E7F4EC;color:#1F5C36;}\n.hx-kal .kl-b--next{background:#FFF3D6;color:#8A5B00;}\n.hx-kal .kl-hours{margin-top:8px;display:grid;gap:4px;}\n.hx-kal .kl-hours div{display:flex;gap:9px;font-size:.83rem;color:var(--ink-2);}\n.hx-kal .kl-hours b{color:var(--ink);white-space:nowrap;}\n.hx-kal .kl-note2{font-size:.79rem;color:var(--ink-2);margin-top:8px;padding-top:8px;\n  border-top:1px dashed var(--line);}\n\/* bardzo w\u0105skie telefony \u2014 siatka miesi\u0119cy nie mo\u017ce wystawa\u0107 *\/\n@media (max-width:359px){\n  .hx-kal .kl-months{gap:8px;}\n  .hx-kal .kl-mon{padding:11px 8px;}\n  .hx-kal .kl-d{font-size:.62rem;}\n  .hx-kal .kl-chip{padding:7px 11px;font-size:.74rem;}\n}\n@media (min-width:900px){\n  .hx-kal .kl-hero{padding:44px var(--pad);}\n  .hx-kal .kl-rib{height:44px;}\n  .hx-kal .kl-stat{max-width:520px;}\n  .hx-kal .kl-stat b{font-size:2.6rem;}\n  .hx-kal .kl-months{grid-template-columns:repeat(4,1fr);gap:14px;}\n  .hx-kal .kl-mon{padding:16px 14px;}\n  .hx-kal .kl-d{font-size:.76rem;}\n  .hx-kal .kl-dow span{font-size:.6rem;}\n  .hx-kal .kl-list{columns:2;column-gap:22px;padding-left:0;}\n  .hx-kal .kl-list::before{display:none;}\n  .hx-kal .kl-ev{break-inside:avoid;padding-bottom:14px;}\n  .hx-kal .kl-dot{display:none;}\n  .hx-kal .kl-card{padding:16px 18px;}\n}\n\/* Na du\u017cych monitorach \u015aWIADOMIE nie zmieniamy uk\u0142adu: siatka miesi\u0119cy\n   zostaje przy czterech kolumnach, a lista termin\u00f3w przy dw\u00f3ch \u2014 tak jak\n   w pierwotnej wersji, bo taki rozk\u0142ad czyta si\u0119 lepiej. Gdyby kiedy\u015b mia\u0142o\n   by\u0107 inaczej, wystarczy tu dopisa\u0107 w\u0142asn\u0105 regu\u0142\u0119 @media. *\/\n<\/style>\n<section class=\"hx hx-kal\" id=\"hil-kalendarz-szkola\">\n <div class=\"hx-app\">\n  <a class=\"hx-back\" href=\"https:\/\/hilaris-blonie.pl\/?page_id=345\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 12H6M11 6l-6 6 6 6\"\/><\/svg>\n    Szko\u0142a Podstawowa\n  <\/a>\n  <div class=\"kl-hero\">\n    <p class=\"hx-kicker\">Dla rodzica<\/p>\n    <h1 style=\"color:#fff;font-size:clamp(1.9rem,7.6vw,2.4rem)\">\n      <span class=\"hx-ln\"><i>Kalendarz roku szkolnego<\/i><\/span><\/h1>\n    <p style=\"color:#C6D7E5;font-size:.89rem;margin-top:10px\">\n      Dni wolne, przerwy, zebrania i dni otwarte \u2014 wszystko w jednym miejscu.<\/p>\n    <div class=\"kl-ribbon\">\n      <p class=\"kl-cap\"><b>Wst\u0119ga roku szkolnego.<\/b> Ka\u017cdy pasek to jedno wydarzenie, a jego\n        szeroko\u015b\u0107 odpowiada liczbie dni. Prosimy dotkn\u0105\u0107 paska, aby zobaczy\u0107 szczeg\u00f3\u0142y.<\/p>\n      <p class=\"kl-tip idle\" id=\"klTip\">Najed\u017a kursorem lub dotknij paska, aby zobaczy\u0107 nazw\u0119 i d\u0142ugo\u015b\u0107 wydarzenia.<\/p>\n      <div class=\"kl-rib\" id=\"klRib\"><\/div>\n      <div class=\"kl-scale\" id=\"klScale\"><\/div>\n      <div class=\"kl-rib__l\"><span id=\"klRibA\">\u2014<\/span><span id=\"klRibB\">\u2014<\/span><\/div>\n      <div id=\"klState\"><\/div>\n    <\/div>\n    <div class=\"kl-stat\">\n      <b id=\"klN\">\u2014<\/b>\n      <span><u id=\"klL\">Najbli\u017csze wydarzenie<\/u><span id=\"klT\">\u2014<\/span><\/span>\n    <\/div>\n  <\/div>\n  <div class=\"hx-sec\">\n    <h2 class=\"hx-h\" data-x>Ca\u0142y rok na jednym ekranie<\/h2>\n    <p class=\"hx-sub\" data-x>Prosimy dotkn\u0105\u0107 pastylki, aby ukry\u0107 lub pokaza\u0107 dany rodzaj dni.<\/p>\n    <div class=\"kl-leg\" id=\"klLeg\"><\/div>\n    <div class=\"kl-months\" id=\"klMonths\"><\/div>\n    <p class=\"hx-sub\" style=\"margin:14px auto 0\" data-x>\n      Bia\u0142a kropka pod dat\u0105 oznacza dzie\u0144 z zapewnion\u0105 opiek\u0105 \u015bwietlicow\u0105.<\/p>\n  <\/div>\n  <div class=\"hx-sec hx-sec--mist\">\n    <h2 class=\"hx-h\" data-x>Wszystkie terminy po kolei<\/h2>\n    <p class=\"hx-sub\" data-x id=\"klListSub\">Minione s\u0105 przygaszone, najbli\u017csze wyr\u00f3\u017cnione.<\/p>\n    <div class=\"kl-list\" id=\"klList\"><\/div>\n  <\/div>\n  <div class=\"hx-sec\">\n    <h2 class=\"hx-h\" data-x>Zabierz kalendarz ze sob\u0105<\/h2>\n    <p class=\"hx-sub\" data-x>Jedno klikni\u0119cie doda wszystkie terminy do kalendarza w telefonie.\n      Zebrania z przypomnieniem dwie godziny wcze\u015bniej.<\/p>\n    <div class=\"hx-btns\" style=\"--btns-d:3\">\n      <button class=\"hx-btn hx-btn--gold\" id=\"klIcs\" type=\"button\" data-x>\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3v12M7.5 10.5 12 15l4.5-4.5\"\/><path d=\"M4 17v2.5h16V17\"\/><\/svg>\n        Dodaj do kalendarza<\/button>\n      <button class=\"hx-btn hx-btn--navy\" id=\"klPrint\" type=\"button\" data-x>\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 9V3.5h10V9\"\/><path d=\"M7 18H4.5V9h15v9H17\"\/><path d=\"M7 14h10v6.5H7z\"\/><\/svg>\n        Drukuj<\/button>\n      <a class=\"hx-btn hx-btn--ghost\" href=\"https:\/\/portal.librus.pl\/rodzina\" target=\"_blank\" rel=\"noopener\" data-x>e-Dziennik<\/a>\n    <\/div>\n    <p class=\"hx-sub\" id=\"klMsg\" style=\"margin-top:12px;min-height:1.2em;color:var(--ok);font-weight:700\"><\/p>\n  <\/div>\n  <div class=\"hx-sec hx-sec--mist\">\n    <h2 class=\"hx-h\" data-x>Powi\u0105zane strony<\/h2>\n    <div class=\"hx-grid\" style=\"--cols:2;--cols-d:4\" id=\"klTiles\"><\/div>\n  <\/div>\n  <nav class=\"hx-bar\" aria-label=\"Szybkie akcje\">\n    <a href=\"https:\/\/hilaris-blonie.pl\/?page_id=345\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 12H6M11 6l-6 6 6 6\"\/><\/svg>\n      Szko\u0142a<\/a>\n    <a class=\"is-main\" href=\"https:\/\/portal.librus.pl\/rodzina\" target=\"_blank\" rel=\"noopener\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2.5\"\/><path d=\"M8 8h8M8 12h8M8 16h5\"\/><\/svg>\n      e-Dziennik<\/a>\n    <a href=\"tel:+48224985525\">\n      <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.2 1l-2.3 2.2z\"\/><\/svg>\n      Zadzwo\u0144<\/a>\n  <\/nav>\n <\/div>\n<\/section>\n<script>\n(function(){\n  var ROOT = document.getElementById('hil-kalendarz-szkola');\n  if(!ROOT) return;\n  function __start(){\n  var ic = HX.ic, U = 'https:\/\/hilaris-blonie.pl\/?page_id=';\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u25bc JEDYNE MIEJSCE DO EDYCJI \u25bc\n     k: wol = dzie\u0144 wolny\/\u015bwi\u0119to \u00b7 fer = ferie i przerwy\n        zeb = zebranie \/ dzie\u0144 otwarty \u00b7 szk = pocz\u0105tek i koniec roku\n        egz = egzamin \u00f3smoklasisty\n     sw: true = opieka \u015bwietlicowa zapewniona (lub tekst z wyja\u015bnieniem)\n     h:  lista godzin dla zebra\u0144, n: dodatkowa notatka\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  var ROK = {\n    nazwa:'2025\/2026',\n    start:'2025-09-01',\n    koniec:'2026-06-26',\n    wydarzenia:[\n      {d:'2025-09-01', k:'szk', t:'Rozpocz\u0119cie roku szkolnego'},\n      {d:'2025-09-09', k:'zeb', t:'Zebranie organizuj\u0105ce prac\u0119 w roku szkolnym',\n       h:[['17:00','Zebrania z wychowawcami, klasy I\u2013III'],\n          ['18:00','Zebrania z wychowawcami, klasy IV\u2013VIII']],\n       n:'Pierwsze zebranie rozpoczyna si\u0119 spotkaniem z dyrektorem w \u0142odzi edukacyjnej.'},\n      {d:'2025-10-13', k:'wol', t:'Dzie\u0144 wolny od zaj\u0119\u0107 dydaktycznych', sw:true},\n      {d:'2025-10-14', k:'wol', t:'Dzie\u0144 Edukacji Narodowej', sw:true},\n      {d:'2025-10-28', k:'zeb', t:'Dzie\u0144 otwarty',\n       h:[['17:00 \u2013 19:00','Dzie\u0144 otwarty dla rodzic\u00f3w uczni\u00f3w klas I\u2013VIII']]},\n      {d:'2025-11-01', k:'wol', t:'Wszystkich \u015awi\u0119tych'},\n      {d:'2025-11-10', k:'wol', t:'Dzie\u0144 wolny od zaj\u0119\u0107 dydaktycznych'},\n      {d:'2025-11-11', k:'wol', t:'\u015awi\u0119to Niepodleg\u0142o\u015bci'},\n      {d:'2025-12-09', k:'zeb', t:'Zebranie i dzie\u0144 otwarty',\n       h:[['16:00 \u2013 18:00','Dzie\u0144 otwarty dla rodzic\u00f3w uczni\u00f3w klas I\u2013VIII'],\n          ['18:00','Zebranie dla rodzic\u00f3w uczni\u00f3w klas I\u2013III'],\n          ['18:30','Zebranie dla rodzic\u00f3w uczni\u00f3w klas IV\u2013VIII']],\n       n:'Temat: post\u0119py uczni\u00f3w w nauce. Oceny proponowane za I p\u00f3\u0142rocze wystawiane s\u0105 do 8 grudnia.'},\n      {d:'2025-12-22', do:'2025-12-31', k:'fer', t:'Zimowa przerwa \u015bwi\u0105teczna',\n       sw:'Opieka \u015bwietlicowa 22, 23, 29, 30 i 31 grudnia'},\n      {d:'2026-01-01', k:'wol', t:'Nowy Rok'},\n      {d:'2026-01-02', k:'wol', t:'Dzie\u0144 wolny od zaj\u0119\u0107 dydaktycznych'},\n      {d:'2026-01-05', k:'wol', t:'Dzie\u0144 wolny od zaj\u0119\u0107 dydaktycznych'},\n      {d:'2026-01-06', k:'wol', t:'Trzech Kr\u00f3li'},\n      {d:'2026-01-19', do:'2026-02-01', k:'fer', t:'Ferie zimowe'},\n      {d:'2026-02-10', k:'zeb', t:'Zebrania podsumowuj\u0105ce I p\u00f3\u0142rocze',\n       h:[['17:00','Zebrania z wychowawcami, klasy I\u2013III'],\n          ['18:00','Zebrania z wychowawcami, klasy IV\u2013VIII']]},\n      {d:'2026-03-31', k:'zeb', t:'Dzie\u0144 otwarty i zebranie dla klas VIII',\n       h:[['17:00 \u2013 19:00','Dzie\u0144 otwarty dla rodzic\u00f3w uczni\u00f3w klas I\u2013VIII']],\n       n:'Klasa VIII \u2014 zebranie rodzic\u00f3w w sprawie warunk\u00f3w przeprowadzenia egzaminu \u00f3smoklasisty.'},\n      {d:'2026-04-02', do:'2026-04-07', k:'fer', t:'Wiosenna przerwa \u015bwi\u0105teczna', sw:true},\n      {d:'2026-05-01', k:'wol', t:'\u015awi\u0119to Pracy'},\n      {d:'2026-05-03', k:'wol', t:'\u015awi\u0119to Konstytucji 3 Maja'},\n      {d:'2026-05-11', do:'2026-05-13', k:'egz', t:'Egzamin \u00f3smoklasisty'},\n      {d:'2026-05-19', k:'zeb', t:'Zebranie i dzie\u0144 otwarty',\n       h:[['16:00 \u2013 18:00','Dzie\u0144 otwarty dla rodzic\u00f3w uczni\u00f3w klas I\u2013VIII'],\n          ['18:00','Zebranie dla rodzic\u00f3w uczni\u00f3w klas I\u2013III'],\n          ['18:30','Zebranie dla rodzic\u00f3w uczni\u00f3w klas IV\u2013VIII']],\n       n:'Temat: post\u0119py uczni\u00f3w w nauce. Oceny proponowane na koniec roku wystawiane s\u0105 do 18 maja.'},\n      {d:'2026-06-04', k:'wol', t:'Bo\u017ce Cia\u0142o'},\n      {d:'2026-06-05', k:'wol', t:'Dzie\u0144 wolny od zaj\u0119\u0107 dydaktycznych'},\n      {d:'2026-06-26', k:'szk', t:'Zako\u0144czenie roku szkolnego'}\n    ]\n  };\n  \/* \u2550\u2550\u2550 \u25b2 KONIEC \u25b2 \u2550\u2550\u2550 *\/\n  var KAT = {\n    wol:{l:'Dni wolne i \u015bwi\u0119ta', c:'#D2543C'},\n    fer:{l:'Ferie i przerwy',    c:'#2E86C8'},\n    zeb:{l:'Zebrania i dni otwarte', c:'#D9A417'},\n    egz:{l:'Egzamin \u00f3smoklasisty', c:'#8B54C4'},\n    szk:{l:'Pocz\u0105tek i koniec roku', c:'#3E8E5A'}\n  };\n  var MIAN = ['Stycze\u0144','Luty','Marzec','Kwiecie\u0144','Maj','Czerwiec',\n              'Lipiec','Sierpie\u0144','Wrzesie\u0144','Pa\u017adziernik','Listopad','Grudzie\u0144'];\n  var DOW = ['Pn','Wt','\u015ar','Cz','Pt','So','Nd'];\n  var pad = HX.pad;\n  var d0 = function(s){ var p = s.split('-'); return new Date(+p[0], +p[1]-1, +p[2]); };\n  var key = function(dt){ return dt.getFullYear()+'-'+pad(dt.getMonth()+1)+'-'+pad(dt.getDate()); };\n  var fmt = function(dt){ return dt.getDate()+' '+HX.MIES[dt.getMonth()]+' '+dt.getFullYear(); };\n  var dni = function(a,b){ return Math.round((b-a)\/86400000); };\n  var dzis = new Date(); dzis.setHours(0,0,0,0);\n  var A = d0(ROK.start), B = d0(ROK.koniec);\n  \/* rozwini\u0119cie zakres\u00f3w na pojedyncze dni + mapa dni *\/\n  var mapa = {};\n  ROK.wydarzenia.forEach(function(e){\n    e._a = d0(e.d); e._b = e.do ? d0(e.do) : e._a;\n    var c = new Date(e._a);\n    while(c <= e._b){\n      mapa[key(c)] = e;\n      c.setDate(c.getDate()+1);\n    }\n  });\n  \/* \u2500\u2500 wst\u0119ga roku \u2500\u2500 *\/\n  var calosc = dni(A, B) || 1;\n  var rib = document.getElementById('klRib'), html = '';\n  ROK.wydarzenia.forEach(function(e, idx){\n    var od = Math.max(0, dni(A, e._a)), doo = Math.min(calosc, dni(A, e._b) + 1);\n    var l = (od \/ calosc * 100), w = Math.max(0.8, (doo - od) \/ calosc * 100);\n    var ile = dni(e._a, e._b) + 1;\n    var opis = e.t + ' \u2014 ' + (e._a.getTime() === e._b.getTime()\n      ? fmt(e._a)\n      : fmt(e._a) + ' \u2013 ' + fmt(e._b) + ' (' + ile + ' dni)');\n    html += '<span class=\"kl-seg\" role=\"button\" tabindex=\"0\" data-i=\"'+idx+'\" '\n         +  'aria-label=\"'+opis.replace(\/\"\/g,'&quot;')+'\" '\n         +  'data-opis=\"'+opis.replace(\/\"\/g,'&quot;')+'\" '\n         +  'style=\"left:'+l.toFixed(2)+'%;width:'+w.toFixed(2)+'%;background:'+KAT[e.k].c+'\"><\/span>';\n  });\n  \/* znacznik \u201edzi\u015b\u201d tylko wtedy, gdy dzisiejsza data mie\u015bci si\u0119 w roku szkolnym *\/\n  var wTrakcie = (dzis >= A && dzis <= B);\n  if(wTrakcie){\n    html += '<span class=\"kl-now\" style=\"left:'+(dni(A,dzis)\/calosc*100).toFixed(2)+'%\"><\/span>';\n  } else {\n    html += '<span class=\"kl-done\"><\/span>';\n  }\n  rib.innerHTML = html;\n  \/* stan roku podany s\u0142owami \u2014 zamiast napisu na wst\u0119dze, kt\u00f3ry j\u0105 zas\u0142ania\u0142 *\/\n  var stanTxt = wTrakcie\n    ? 'Dzi\u015b ' + fmt(dzis) + ' \u2014 jeste\u015bmy w trakcie roku szkolnego'\n    : (dzis > B\n        ? 'Rok szkolny ' + ROK.nazwa + ' zako\u0144czy\u0142 si\u0119 ' + fmt(B)\n        : 'Rok szkolny ' + ROK.nazwa + ' zaczyna si\u0119 ' + fmt(A));\n  document.getElementById('klState').innerHTML =\n    '<span class=\"kl-state\"><i><\/i>' + stanTxt + '<\/span>';\n  document.getElementById('klRibA').textContent = fmt(A);\n  document.getElementById('klRibB').textContent = fmt(B);\n  \/* \u2500\u2500 skala miesi\u0119cy pod wst\u0119g\u0105 \u2014 bez niej pasek jest nieczytelny \u2500\u2500 *\/\n  var RZYM = ['I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII'];\n  var sc = '';\n  var c2 = new Date(A.getFullYear(), A.getMonth(), 1);\n  while(c2 <= B){\n    var poczM = new Date(c2.getFullYear(), c2.getMonth(), 1);\n    var konM  = new Date(c2.getFullYear(), c2.getMonth()+1, 0);\n    var od2 = Math.max(0, dni(A, poczM)), do2 = Math.min(calosc, dni(A, konM));\n    var srodek = ((od2 + do2) \/ 2 \/ calosc * 100);\n    if(srodek >= 0 && srodek <= 100){\n      sc += '<i style=\"left:'+(od2\/calosc*100).toFixed(2)+'%\"><\/i>'\n         +  '<span style=\"left:'+srodek.toFixed(2)+'%\">'+RZYM[c2.getMonth()]+'<\/span>';\n    }\n    c2.setMonth(c2.getMonth()+1);\n  }\n  document.getElementById('klScale').innerHTML = sc;\n  \/* \u2500\u2500 wst\u0119ga rozmawia z list\u0105 termin\u00f3w \u2500\u2500 *\/\n  var tip = document.getElementById('klTip');\n  var IDLE = 'Najed\u017a kursorem lub dotknij paska, aby zobaczy\u0107 nazw\u0119 i d\u0142ugo\u015b\u0107 wydarzenia.';\n  function bezczynnie(){ tip.textContent = IDLE; tip.classList.add('idle'); }\n  bezczynnie();\n  function pokaz(el){\n    tip.classList.remove('idle');\n    if(!el) return;\n    tip.textContent = el.getAttribute('data-opis');\n    ROOT.querySelectorAll('.kl-seg').forEach(function(x){ x.classList.remove('hit'); });\n    el.classList.add('hit');\n  }\n  rib.addEventListener('mouseover', function(e){\n    var el = e.target.closest('.kl-seg'); if(el) pokaz(el);\n  });\n  rib.addEventListener('mouseleave', function(){\n    bezczynnie();\n    ROOT.querySelectorAll('.kl-seg').forEach(function(x){ x.classList.remove('hit'); });\n  });\n  function skocz(el){\n    pokaz(el);\n    var cel = document.getElementById('klEv' + el.getAttribute('data-i'));\n    if(!cel) return;\n    ROOT.querySelectorAll('.kl-ev').forEach(function(x){ x.classList.remove('hit'); });\n    cel.classList.add('hit');\n    var y = cel.getBoundingClientRect().top + window.pageYOffset - 90;\n    window.scrollTo({top:Math.max(0,y), behavior:'smooth'});\n    setTimeout(function(){ cel.classList.remove('hit'); }, 2600);\n  }\n  rib.addEventListener('click', function(e){\n    var el = e.target.closest('.kl-seg'); if(el) skocz(el);\n  });\n  rib.addEventListener('keydown', function(e){\n    if(e.key !== 'Enter' && e.key !== ' ') return;\n    var el = e.target.closest('.kl-seg'); if(!el) return;\n    e.preventDefault(); skocz(el);\n  });\n  rib.addEventListener('focusin', function(e){\n    var el = e.target.closest('.kl-seg'); if(el) pokaz(el);\n  });\n  \/* \u2500\u2500 status: post\u0119p roku i najbli\u017csze wydarzenie \u2500\u2500 *\/\n  var przyszle = ROK.wydarzenia.filter(function(e){ return e._b >= dzis; });\n  var N = document.getElementById('klN'), L = document.getElementById('klL'), T = document.getElementById('klT');\n  if(dzis < A){\n    N.textContent = dni(dzis, A);\n    L.textContent = 'Do rozpocz\u0119cia roku';\n    T.textContent = 'Rok szkolny ' + ROK.nazwa + ' zaczyna si\u0119 ' + fmt(A) + '.';\n  } else if(dzis > B){\n    N.textContent = '\u2713';\n    L.textContent = 'Rok szkolny ' + ROK.nazwa;\n    T.textContent = 'Zako\u0144czony ' + fmt(B) + '. Kalendarz na kolejny rok w przygotowaniu.';\n  } else if(przyszle.length){\n    var e = przyszle[0], ile = dni(dzis, e._a);\n    N.textContent = ile <= 0 ? 'dzi\u015b' : ile;\n    L.textContent = ile <= 0 ? 'Dzisiaj' : 'Dni do najbli\u017cszego terminu';\n    T.textContent = e.t + ' \u2014 ' + fmt(e._a) + '.';\n  } else {\n    N.textContent = Math.round(dni(A,dzis)\/calosc*100) + '%';\n    L.textContent = 'Post\u0119p roku szkolnego';\n    T.textContent = 'Rok ko\u0144czy si\u0119 ' + fmt(B) + '.';\n  }\n  \/* \u2500\u2500 legenda z filtrowaniem \u2500\u2500 *\/\n  var uzyte = [];\n  ROK.wydarzenia.forEach(function(e){ if(uzyte.indexOf(e.k) === -1) uzyte.push(e.k); });\n  var kolejnosc = ['wol','fer','zeb','egz','szk'].filter(function(k){ return uzyte.indexOf(k) > -1; });\n  document.getElementById('klLeg').innerHTML = kolejnosc.map(function(k){\n    return '<button class=\"kl-chip\" type=\"button\" aria-pressed=\"true\" data-k=\"'+k+'\" style=\"--c:'\n      + KAT[k].c+'\"><i><\/i>'+KAT[k].l+'<\/button>';\n  }).join('');\n  \/* \u2500\u2500 dwana\u015bcie miesi\u0119cy \u2500\u2500 *\/\n  var out = '';\n  for(var i=0;i<12;i++){\n    var m = (8+i)%12, y = A.getFullYear() + (8+i >= 12 ? 1 : 0);\n    var lead = (new Date(y,m,1).getDay()+6)%7, last = new Date(y,m+1,0).getDate();\n    out += '<div class=\"kl-mon\" data-x><div class=\"kl-mon__h\"><span class=\"kl-mon__n\">'\n        +  MIAN[m] + '<\/span><span class=\"kl-mon__y\">'+y+'<\/span><\/div>';\n    out += '<div class=\"kl-dow\">' + DOW.map(function(x){ return '<span>'+x+'<\/span>'; }).join('') + '<\/div>';\n    out += '<div class=\"kl-grid\">';\n    for(var p=0;p<lead;p++) out += '<div class=\"kl-d pad\"><\/div>';\n    for(var d=1;d<=last;d++){\n      var dt = new Date(y,m,d), k = key(dt), e2 = mapa[k], cls = 'kl-d';\n      var dw = dt.getDay();\n      if(dw===0||dw===6) cls += ' we';\n      if(k === key(dzis)) cls += ' today';\n      if(e2){\n        cls += ' ev' + (e2.sw ? ' sw' : '');\n        out += '<div class=\"'+cls+'\" data-k=\"'+e2.k+'\" data-n=\"'+e2.t.replace(\/\"\/g,'&quot;')\n            +  '\" style=\"--c:'+KAT[e2.k].c+'\">'+d+'<\/div>';\n      } else {\n        out += '<div class=\"'+cls+'\">'+d+'<\/div>';\n      }\n    }\n    out += '<\/div><\/div>';\n  }\n  document.getElementById('klMonths').innerHTML = out;\n  \/* \u2500\u2500 o\u015b wydarze\u0144 \u2500\u2500 *\/\n  var lh = '';\n  ROK.wydarzenia.forEach(function(e,idx){\n    var past = e._b < dzis;\n    var next = (!past && przyszle.length && przyszle[0] === e);\n    var kiedy = (e._a.getTime() === e._b.getTime())\n      ? fmt(e._a)\n      : e._a.getDate()+' '+HX.MIES[e._a.getMonth()]+' \u2013 '+fmt(e._b);\n    var dzien = (e._a.getTime() === e._b.getTime())\n      ? ', ' + HX.DOW[e._a.getDay()] : '';\n    var b = '';\n    if(e.sw) b += '<span class=\"kl-b kl-b--sw\">'\n      + (typeof e.sw === 'string' ? e.sw : 'Opieka \u015bwietlicowa zapewniona') + '<\/span>';\n    if(next) b += '<span class=\"kl-b kl-b--next\">Najbli\u017csze<\/span>';\n    b += '<span class=\"kl-b\">'+KAT[e.k].l+'<\/span>';\n    var godz = e.h ? '<div class=\"kl-hours\">' + e.h.map(function(g){\n      return '<div><b>'+g[0]+'<\/b><span>'+g[1]+'<\/span><\/div>'; }).join('') + '<\/div>' : '';\n    var nota = e.n ? '<div class=\"kl-note2\">'+e.n+'<\/div>' : '';\n    lh += '<div class=\"kl-ev'+(past?' past':'')+(next?' next':'')+'\" id=\"klEv'+idx+'\" data-k=\"'+e.k+'\">'\n       +  '<span class=\"kl-dot\" style=\"--c:'+KAT[e.k].c+'\"><\/span>'\n       +  '<div class=\"kl-card\" style=\"--c:'+KAT[e.k].c+'\">'\n       +  '<div class=\"kl-when\">'+kiedy+dzien+'<\/div>'\n       +  '<div class=\"kl-what\">'+e.t+'<\/div>'\n       +  godz + nota\n       +  '<div class=\"kl-badges\">'+b+'<\/div><\/div><\/div>';\n  });\n  document.getElementById('klList').innerHTML = lh;\n  document.getElementById('klListSub').textContent = (dzis > B)\n    ? 'Rok szkolny ' + ROK.nazwa + ' zako\u0144czony \u2014 wszystkie terminy ju\u017c min\u0119\u0142y.'\n    : 'Minione s\u0105 przygaszone, najbli\u017csze wyr\u00f3\u017cnione.';\n  \/* \u2500\u2500 filtrowanie \u2500\u2500 *\/\n  ROOT.querySelectorAll('.kl-chip').forEach(function(ch){\n    ch.addEventListener('click', function(){\n      var on = ch.getAttribute('aria-pressed') === 'true';\n      ch.setAttribute('aria-pressed', on ? 'false' : 'true');\n      var k = ch.getAttribute('data-k');\n      ROOT.querySelectorAll('.kl-d[data-k=\"'+k+'\"]').forEach(function(el){ el.classList.toggle('dim', on); });\n      ROOT.querySelectorAll('.kl-ev[data-k=\"'+k+'\"]').forEach(function(el){ el.classList.toggle('off', on); });\n    });\n  });\n  \/* \u2500\u2500 eksport do kalendarza \u2500\u2500 *\/\n  function toast(t){\n    var el = document.getElementById('klMsg');\n    el.textContent = t; setTimeout(function(){ el.textContent = ''; }, 4500);\n  }\n  document.getElementById('klIcs').addEventListener('click', function(){\n    var stamp = new Date().toISOString().replace(\/[-:]\/g,'').split('.')[0]+'Z';\n    var L2 = ['BEGIN:VCALENDAR','VERSION:2.0','PRODID:-\/\/Hilaris Blonie\/\/Rok szkolny\/\/PL',\n              'CALSCALE:GREGORIAN','METHOD:PUBLISH','X-WR-CALNAME:Hilaris \u2014 rok szkolny '+ROK.nazwa];\n    ROK.wydarzenia.forEach(function(e,i){\n      var s1 = key(e._a).replace(\/-\/g,'');\n      var kon = new Date(e._b); kon.setDate(kon.getDate()+1);\n      var s2 = key(kon).replace(\/-\/g,'');\n      var opis = (e.h ? e.h.map(function(g){ return g[0]+' \u2014 '+g[1]; }).join('\\\\n') + '\\\\n' : '')\n               + (e.n ? e.n : '');\n      L2.push('BEGIN:VEVENT',\n        'UID:hilaris-rok-'+s1+'-'+i+'@hilaris-blonie.pl',\n        'DTSTAMP:'+stamp,'DTSTART;VALUE=DATE:'+s1,'DTEND;VALUE=DATE:'+s2,\n        'SUMMARY:Hilaris \u2014 '+e.t,\n        'LOCATION:Szko\u0142a Podstawowa Hilaris, ul. Passowska 16A, 05-870 B\u0142onie',\n        'DESCRIPTION:'+(opis || KAT[e.k].l),\n        'TRANSP:TRANSPARENT');\n      if(e.k === 'zeb'){ L2.push('BEGIN:VALARM','TRIGGER:-P1D','ACTION:DISPLAY',\n        'DESCRIPTION:Jutro zebranie w szkole','END:VALARM'); }\n      L2.push('END:VEVENT');\n    });\n    L2.push('END:VCALENDAR');\n    try{\n      var b2 = new Blob([L2.join('\\r\\n')], {type:'text\/calendar;charset=utf-8'});\n      var a2 = document.createElement('a');\n      a2.href = URL.createObjectURL(b2);\n      a2.download = 'hilaris-rok-szkolny-'+ROK.nazwa.replace('\/','-')+'.ics';\n      document.body.appendChild(a2); a2.click();\n      setTimeout(function(){ URL.revokeObjectURL(a2.href); a2.remove(); }, 1500);\n      toast('Gotowe \u2014 otw\u00f3rz pobrany plik, aby doda\u0107 terminy do kalendarza.');\n    }catch(err){ toast('Nie uda\u0142o si\u0119 przygotowa\u0107 pliku.'); }\n  });\n  document.getElementById('klPrint').addEventListener('click', function(){ window.print(); });\n  \/* \u2500\u2500 powi\u0105zane \u2500\u2500 *\/\n  var T2 = [\n    {t:'\u015awietlica', d:'opieka w dni wolne', c:'#8B54C4', h:U+'2723',\n     i:ic('<path d=\"M2.6 11 12 3.6 21.4 11\"\/><path d=\"M5 9.2V20h14V9.2\"\/>')},\n    {t:'Rozk\u0142ad dzwonk\u00f3w', d:'godziny lekcji', c:'#D9A417', h:U+'2657',\n     i:ic('<circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5.3l3.4 2\"\/>')},\n    {t:'Obiady', d:'posi\u0142ki w szkole', c:'#D2543C', h:U+'2730',\n     i:ic('<path d=\"M4 11.5h16a8 8 0 0 1-16 0z\"\/><path d=\"M2.6 19.4h18.8\"\/>')},\n    {t:'Egzamin \u00f3smoklasisty', d:'terminy i wyniki', c:'#3E8E5A', h:U+'2687',\n     i:ic('<path d=\"M8 4h8a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\"\/><path d=\"M9.6 9h4.8M9.6 13h4.8M9.6 17h3\"\/>')}\n  ];\n  document.getElementById('klTiles').innerHTML = T2.map(function(x){\n    return '<a class=\"hx-tile\" href=\"'+x.h+'\" style=\"--c:'+x.c+'\" data-x>'\n      + '<span class=\"hx-ic\">'+x.i+'<\/span><b>'+x.t+'<\/b><u>'+x.d+'<\/u><\/a>';\n  }).join('');\n  HX.sierotki(ROOT); HX.boot();\n  }\n  var __t = 0;\n  (function __wait(){\n    if(window.HX){ __start(); return; }\n    if(__t++ < 80){ setTimeout(__wait, 100); return; }\n    if(window.console) console.warn('Hilaris: nie znaleziono rdzenia (hilaris-CORE).');\n  })();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Szko\u0142a Podstawowa Dla rodzica Kalendarz roku szkolnego Dni wolne, przerwy, zebrania i dni otwarte \u2014 wszystko w jednym miejscu. Wst\u0119ga roku szkolnego. Ka\u017cdy pasek to jedno wydarzenie, a jego szeroko\u015b\u0107 odpowiada liczbie dni. Prosimy dotkn\u0105\u0107 paska, aby zobaczy\u0107 szczeg\u00f3\u0142y. Najed\u017a kursorem lub dotknij paska, aby zobaczy\u0107 nazw\u0119 i d\u0142ugo\u015b\u0107 wydarzenia. \u2014\u2014 \u2014 Najbli\u017csze wydarzenie\u2014 Ca\u0142y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":345,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2702","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/pages\/2702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2702"}],"version-history":[{"count":28,"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/pages\/2702\/revisions"}],"predecessor-version":[{"id":6815,"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/pages\/2702\/revisions\/6815"}],"up":[{"embeddable":true,"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=\/wp\/v2\/pages\/345"}],"wp:attachment":[{"href":"https:\/\/hilaris-blonie.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}