/* Kalendarz Przedszkola 0.8: wygląd z makiety „Kalendarz dla przedszkola · aplikacja” */

@font-face { font-family: "KP Baloo 2"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/baloo-2-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Baloo 2"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/baloo-2-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "KP Baloo 2"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/baloo-2-latin-800-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Baloo 2"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/baloo-2-latin-ext-800-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/nunito-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/nunito-latin-ext-500-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/nunito-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/nunito-latin-ext-600-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/nunito-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/nunito-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/nunito-latin-800-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "KP Nunito"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/nunito-latin-ext-800-normal.woff2) format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* ---------- podstawy ---------- */

.kp-ui {
	--kp-ink: #141414;
	--kp-paper: #FFFDF8;
	--kp-cream: #F8F3E6;
	--kp-sand: #F3EDDF;
	--kp-line: #E6DECB;
	--kp-muted: #4A453C;
	--kp-yellow: #F7B52C;
	--kp-pink: #F5A3C0;
	--kp-blue: #1F6FEB;
	--kp-green: #2FB58C;
	--kp-red: #E5392F;
	--kp-display: "KP Baloo 2", "Baloo 2", system-ui, sans-serif;
	--kp-body: "KP Nunito", "Nunito", system-ui, sans-serif;
	font-family: var(--kp-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--kp-ink);
	-webkit-font-smoothing: antialiased;
	text-align: left;
}

.kp-kalendarz.kp-ui {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-block: 1em;
	padding: 0 0 24px;
	background: var(--kp-cream);
	border: 2.5px solid var(--kp-ink);
	border-radius: 24px;
	overflow: visible;
	min-width: 0;
}

.kp-ui *, .kp-ui *::before, .kp-ui *::after { box-sizing: border-box; }

.kp-ui button,
.kp-ui input,
.kp-ui select {
	font: inherit;
	color: inherit;
	margin: 0;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	line-height: inherit;
	min-height: 0;
	min-width: 0;
	-webkit-appearance: none;
	appearance: none;
}
.kp-ui button { cursor: pointer; background: none; border: 0; padding: 0; text-align: left; box-shadow: none; }
.kp-ui button:focus-visible,
.kp-ui a:focus-visible,
.kp-ui select:focus-visible,
.kp-ui input:focus-visible { outline: 3px solid var(--kp-blue); outline-offset: 2px; }
.kp-ui a { color: #1553C0; }
.kp-ui a:hover { color: var(--kp-blue); }
.kp-ui svg { display: block; flex: none; }
.kp-ui p, .kp-ui dl, .kp-ui dd, .kp-ui h2 { margin: 0; padding: 0; }

.kp-i { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.kp-i-str { width: 19px; height: 19px; stroke-width: 2.8; }
.kp-i-x { width: 18px; height: 18px; stroke-width: 2.8; }
.kp-i-ok { width: 18px; height: 18px; stroke-width: 2.8; }
.kp-i-dol { width: 22px; height: 22px; stroke-width: 2.6; }
.kp-i-gw, .kp-i-zl { display: block; flex: none; width: 14px; height: 14px; stroke: none; }
.kp-i-dodaj { width: 21px; height: 21px; stroke-width: 2.4; }
.kp-i-tel { width: 18px; height: 18px; }

.kp-ladowanie, .kp-blad { padding: 32px 24px; text-align: center; font-weight: 700; color: var(--kp-muted); }
.kp-blad { color: #9B1C1C; }

/* ---------- górny pasek z logo ---------- */

.kp-top {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 24px;
	border-bottom: 2.5px solid var(--kp-ink);
	background: var(--kp-paper);
	border-radius: 22px 22px 0 0;
}
.kp-top-logo { width: 50px; height: auto; display: block; }
.kp-marka { font-family: var(--kp-display); font-weight: 800; font-size: 21px; line-height: .95; }
.kp-marka span { display: block; font-size: 15px; }
.kp-top-fill { flex: 1; }
.kp-bez-naglowka.kp-kalendarz.kp-ui { padding-top: 16px; }

/* ---------- elementy wspólne ---------- */

.kp-ui .kp-kolko {
	display: grid; place-items: center; flex: none;
	width: 44px; height: 44px;
	border: 2.5px solid var(--kp-ink); border-radius: 50%;
	background: var(--kp-paper); color: var(--kp-ink);
}
.kp-ui .kp-kolko-male { width: 42px; height: 42px; }
.kp-ui .kp-kolko:hover { background: #fff; }

.kp-ui .kp-przycisk {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 48px; padding: 0 22px;
	border: 2.5px solid var(--kp-ink); border-radius: 999px;
	background: var(--kp-paper); color: var(--kp-ink);
	font-family: var(--kp-display); font-weight: 800; font-size: 16px; line-height: 1;
	text-decoration: none; text-align: center; white-space: nowrap;
	letter-spacing: normal; text-transform: none; margin: 0;
	box-shadow: none;
}
.kp-ui .kp-przycisk:hover { color: var(--kp-ink); }
.kp-ui .kp-przycisk-niebieski { background: var(--kp-blue); color: var(--kp-paper); box-shadow: 4px 4px 0 var(--kp-ink); }
.kp-ui .kp-przycisk-niebieski:hover { color: var(--kp-paper); background: #1A63D6; }
.kp-ui .kp-przycisk-zolty { background: var(--kp-yellow); box-shadow: 4px 4px 0 var(--kp-ink); }
.kp-ui .kp-przycisk-duzy { height: 52px; font-size: 17px; box-shadow: 4px 4px 0 var(--kp-ink); }
.kp-ui .kp-przycisk:active { transform: translate(2px, 2px); }
.kp-ui .kp-przycisk-niebieski:active, .kp-ui .kp-przycisk-zolty:active, .kp-ui .kp-przycisk-duzy:active { box-shadow: 2px 2px 0 var(--kp-ink); }
.kp-ui .kp-rosnie { flex: 1; }
.kp-ui .kp-rosnie-bardziej { flex: 1.4; }
.kp-ui .kp-przycisk[disabled] { opacity: .6; cursor: default; }

.kp-ui .kp-link { display: inline; color: #1553C0; font-weight: 800; text-decoration: underline; font-size: inherit; }

.kp-litera {
	display: grid; place-items: center; flex: none;
	width: 32px; height: 32px;
	border: 2px solid var(--kp-ink); border-radius: 50%;
	font-family: var(--kp-display); font-weight: 800; font-size: 14px; line-height: 1;
}
.kp-litera-duza { width: 42px; height: 42px; border-width: 2.5px; font-size: 17px; }

.kp-licznik {
	display: grid; place-items: center; flex: none;
	width: 24px; height: 24px;
	border: 2px solid var(--kp-ink); border-radius: 50%;
	background: var(--kp-pink); font-size: 12px; font-weight: 800;
}

.kp-zl { flex: none; display: inline-flex; }
.kp-t { min-width: 0; }
.kp-t-ell { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.kp-pusto { padding: 14px; border: 2px dashed #BDB3A0; border-radius: 16px; text-align: center; font-size: 14px; color: var(--kp-muted); }
.kp-pusto-male { padding: 10px; border-radius: 14px; font-size: 13.5px; }

/* przycisk grupy i filtrów */
.kp-ui .kp-grupa-btn {
	display: flex; align-items: center; gap: 10px;
	width: 100%; height: 56px; padding: 0 16px 0 5px;
	border: 2.5px solid var(--kp-ink); border-radius: 999px;
	text-align: left;
}
.kp-grupa-teksty { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.kp-grupa-etyk { font-size: 12.5px; font-weight: 700; color: var(--kp-muted); }
.kp-grupa-nazwa { font-family: var(--kp-display); font-weight: 800; font-size: 19px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-chev { display: block; transition: transform .18s; }
.kp-chev-gora { transform: rotate(180deg); }

/* ukryte kategorie */
.kp-ukryte { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kp-ukryte-etyk { font-size: 13px; font-weight: 800; color: var(--kp-muted); }
.kp-ui .kp-znacznik {
	display: inline-flex; align-items: center; gap: 3px;
	height: 30px; padding: 0 9px 0 11px;
	border: 2px solid var(--kp-ink); border-radius: 999px;
	background: var(--kp-paper); font-weight: 800; font-size: 13px;
}
.kp-ui .kp-znacznik .kp-i-x { width: 13px; height: 13px; }
.kp-ui .kp-znacznik-dzis { padding: 0 14px; background: var(--kp-pink); }

/* żółta nawigacja w czasie */
.kp-nav-pill {
	width: 440px; max-width: 100%; height: 56px;
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 0 5px;
	border: 2.5px solid var(--kp-ink); border-radius: 999px;
	background: var(--kp-yellow);
}
.kp-nav-etyk { flex: 1; min-width: 0; font-family: var(--kp-display); font-weight: 800; font-size: 20px; line-height: 1.1; text-align: center; }

/* ---------- komputer ---------- */

.kp-uklad {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	align-items: start;
	gap: 22px;
	padding: 2px 24px 0;
}
.kp-bez-bocznej .kp-uklad { grid-template-columns: minmax(0, 1fr); }
.kp-main { min-width: 0; display: flex; flex-direction: column; gap: 14px; }

.kp-pasek {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 12px;
}
.kp-pasek-lewo { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.kp-widoki-grupa {
	justify-self: end;
	height: 56px;
	display: flex; align-items: center; gap: 2px;
	padding: 0 5px;
	border: 2.5px solid var(--kp-ink); border-radius: 999px;
	background: var(--kp-paper);
}
.kp-ui .kp-widok-btn { display: grid; place-items: center; width: 48px; height: 42px; border-radius: 999px; color: var(--kp-ink); }
.kp-ui .kp-widok-btn:hover { background: var(--kp-sand); }
.kp-ui .kp-widok-btn-akt, .kp-ui .kp-widok-btn-akt:hover { background: var(--kp-ink); color: var(--kp-paper); }

.kp-karta { border: 2.5px solid var(--kp-ink); border-radius: 20px; background: var(--kp-paper); overflow: hidden; }

/* siatka dnia / tygodnia */
.kp-siatka-glowa, .kp-siatka-cal, .kp-siatka-cialo { display: grid; }
.kp-siatka-glowa { border-bottom: 2.5px solid var(--kp-ink); }
.kp-ui .kp-siatka-dzien {
	display: block; padding: 10px 4px 8px;
	border-left: 1.5px solid var(--kp-line);
	text-align: center; line-height: 1;
}
.kp-ui .kp-siatka-dzien:hover { background: var(--kp-sand); }
.kp-ui .kp-siatka-dzien.kp-dzis { background: var(--kp-pink); }
.kp-siatka-dz { display: block; font-weight: 800; font-size: 13px; }
.kp-siatka-nr { display: block; font-family: var(--kp-display); font-weight: 800; font-size: 26px; margin-top: 4px; }
.kp-siatka-cal { min-height: 46px; border-bottom: 2.5px solid var(--kp-ink); background: var(--kp-sand); }
.kp-siatka-cal-pusty { min-height: 30px; }
.kp-siatka-cal-etyk { padding: 8px 8px 0 0; text-align: right; font-size: 11px; font-weight: 800; line-height: 1.2; color: var(--kp-muted); }
.kp-siatka-cal-pusty .kp-siatka-cal-etyk { padding-top: 4px; }
.kp-siatka-cal-kom { display: flex; flex-direction: column; gap: 4px; padding: 7px 6px; border-left: 1.5px solid var(--kp-line); min-width: 0; }
.kp-ui .kp-cal-chip {
	display: block; padding: 4px 8px;
	border: 2px dashed var(--kp-ink); border-radius: 8px;
	background: var(--kp-paper); font-weight: 800; font-size: 13px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.kp-siatka-cialo { padding: 12px 0 14px; }
.kp-siatka-godz { position: relative; }
.kp-siatka-godz div { position: absolute; right: 8px; margin-top: -8px; font-size: 12px; font-weight: 800; color: var(--kp-muted); }
.kp-siatka-kol { position: relative; border-left: 1.5px solid var(--kp-line); min-width: 0; }
.kp-wolne-znak {
	position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%) rotate(-4deg);
	padding: 8px 14px; border: 2.5px dashed var(--kp-ink); border-radius: 14px;
	background: var(--kp-paper); font-weight: 800; font-size: 14px; text-align: center; line-height: 1.25; white-space: nowrap;
}
.kp-ui .kp-blok {
	position: absolute;
	display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
	padding: 4px 9px; overflow: hidden;
	border: 2px solid var(--kp-ink); border-radius: 10px;
	outline-offset: 2px; text-align: left;
}
.kp-ui .kp-blok:hover { filter: brightness(.97); z-index: 2; }
.kp-blok-tytul { display: flex; align-items: center; gap: 5px; width: 100%; font-weight: 800; font-size: 14.5px; line-height: 1.25; }
.kp-gr-kropka { flex: none; width: 10px; height: 10px; margin-right: -2px; border: 1.5px solid var(--kp-ink); border-radius: 50%; }
.kp-blok-zakres { font-size: 12px; font-weight: 700; color: var(--kp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.kp-teraz { position: absolute; left: 0; right: 0; height: 2.5px; background: var(--kp-red); pointer-events: none; z-index: 3; }
.kp-teraz span { position: absolute; left: -7px; top: -5px; width: 12px; height: 12px; border: 2px solid var(--kp-ink); border-radius: 50%; background: var(--kp-red); }

/* miesiąc (komputer) */
.kp-mies-glowa { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 2.5px solid var(--kp-ink); background: var(--kp-sand); }
.kp-mies-glowa div { padding: 10px 0; text-align: center; font-weight: 800; font-size: 14px; }
.kp-mies-siatka { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kp-mies-kom {
	display: flex; flex-direction: column; gap: 4px; min-width: 0;
	min-height: 100px; padding: 8px;
	border-right: 1.5px solid var(--kp-line); border-bottom: 1.5px solid var(--kp-line);
	cursor: pointer;
}
.kp-mies-kom:nth-child(7n) { border-right: 0; }
.kp-ui .kp-mies-nr {
	display: grid; place-items: center;
	width: 32px; height: 32px; flex: none;
	border: 2.5px solid transparent; border-radius: 50%;
	font-family: var(--kp-display); font-weight: 800; font-size: 17px; line-height: 1;
}
.kp-ui .kp-mies-nr-dzis { background: var(--kp-pink); border-color: var(--kp-ink); }
.kp-poza .kp-mies-nr { color: #B5AE9F; }
.kp-ui .kp-mies-chip {
	display: block; padding: 2px 7px;
	border: 1.5px solid var(--kp-ink); border-radius: 7px;
	font-weight: 800; font-size: 12px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.kp-mies-wiecej { font-size: 12px; font-weight: 800; color: var(--kp-muted); }

/* lista */
.kp-lista { display: flex; flex-direction: column; gap: 22px; max-width: 820px; }
.kp-lista-dzien { display: flex; flex-direction: column; gap: 10px; }
.kp-lista-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 20px; line-height: 1.1; }
.kp-ui .kp-wiersz {
	display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; align-items: center;
	width: 100%; padding: 12px 16px;
	border: 2.5px solid var(--kp-ink); border-left-width: 10px; border-radius: 16px;
	text-align: left;
}
.kp-ui .kp-wiersz:hover { filter: brightness(.98); }
.kp-wiersz-czas { font-family: var(--kp-display); font-weight: 800; font-size: 18px; line-height: 1; }
.kp-wiersz-tresc { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-wiersz-tytul { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: 16px; line-height: 1.25; }
.kp-wiersz-tytul .kp-i-gw { width: 15px; height: 15px; }
.kp-wiersz-tytul .kp-i-zl { width: 15px; height: 15px; }
.kp-wiersz-sub { font-size: 13.5px; color: var(--kp-muted); }

/* boczna kolumna */
.kp-aside { display: flex; flex-direction: column; gap: 14px; min-width: 0; position: sticky; top: 16px; z-index: 20; } /* nad linią „teraz” i blokami siatki (panel filtrów) */
.kp-filtry-wrap { position: relative; z-index: 20; }
.kp-filtry-wrap-inline { max-width: 350px; }
.kp-popover {
	position: absolute; z-index: 30; top: 66px; right: 0;
	width: 520px; max-width: calc(100vw - 32px);
	padding: 20px;
	border: 2.5px solid var(--kp-ink); border-radius: 24px;
	background: var(--kp-cream); box-shadow: 8px 8px 0 var(--kp-ink);
	display: flex; flex-direction: column; gap: 14px;
}
.kp-filtry-wrap-inline .kp-popover { left: 0; right: auto; }
.kp-fp-akcje { display: flex; gap: 10px; margin-top: 4px; }

.kp-najbl {
	display: flex; flex-direction: column; gap: 10px;
	padding: 16px;
	border: 2.5px solid var(--kp-ink); border-radius: 22px;
	background: var(--kp-sand);
}
.kp-najbl-glowa { display: flex; flex-direction: column; gap: 2px; }
.kp-najbl-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 21px; line-height: 1.1; }
.kp-najbl-opis { font-size: 13px; font-weight: 700; color: var(--kp-muted); }
.kp-najbl-pusto { font-size: 14px; color: var(--kp-muted); }
.kp-ui .kp-najbl-poz {
	display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: center;
	width: 100%; padding: 10px 12px;
	border: 2px solid var(--kp-ink); border-radius: 16px;
	background: var(--kp-paper); text-align: left;
}
.kp-ui .kp-najbl-poz:hover { background: #fff; }
.kp-najbl-data {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	height: 52px; border: 2px solid var(--kp-ink); border-radius: 12px; line-height: 1.1;
}
.kp-najbl-nr { font-family: var(--kp-display); font-weight: 800; font-size: 22px; }
.kp-najbl-mies { font-size: 11px; font-weight: 800; }
.kp-najbl-tresc { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.kp-najbl-t { display: flex; align-items: center; gap: 5px; font-weight: 800; font-size: 15px; line-height: 1.25; }
.kp-najbl-t .kp-i-gw { width: 14px; height: 14px; }
.kp-najbl-s { font-size: 12.5px; color: var(--kp-muted); }

/* panel filtrów (wspólny) */
.kp-fp-glowa { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.kp-fp-glowa-2 { margin-top: 4px; }
.kp-fp-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 19px; }
.kp-fp-opis { font-size: 13px; font-weight: 700; color: var(--kp-muted); }
.kp-ui .kp-fp-wszystkie {
	display: block; width: 100%; height: 46px;
	border: 2.5px solid var(--kp-ink); border-radius: 999px;
	background: var(--kp-sand); font-weight: 800; font-size: 15px; text-align: center;
}
.kp-ui .kp-fp-wszystkie.kp-akt { background: var(--kp-paper); box-shadow: 4px 4px 0 var(--kp-ink); }
.kp-fp-grupy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.kp-ui .kp-fp-grupa {
	display: flex; align-items: center; gap: 8px;
	height: 48px; padding: 0 12px 0 6px;
	border: 2.5px solid; border-radius: 999px;
	font-weight: 800; font-size: 15px; text-align: left;
}
.kp-fp-grupa-n { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-fp-kat { display: flex; flex-direction: column; gap: 8px; }
.kp-ui .kp-fp-rodzaj {
	display: flex; align-items: center; gap: 12px;
	width: 100%; padding: 10px 12px 10px 14px;
	border: 2.5px solid var(--kp-ink); border-radius: 18px;
	background: var(--kp-paper); text-align: left;
}
.kp-ui .kp-fp-rodzaj.kp-zablok { border-style: dashed; background: var(--kp-sand); cursor: default; }
.kp-fp-rodzaj-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.kp-fp-rodzaj-n { font-weight: 800; font-size: 16px; }
.kp-fp-rodzaj-o { font-size: 13px; color: var(--kp-muted); }
.kp-znak { flex: none; display: grid; place-items: center; }
.kp-znak-p { width: 16px; height: 16px; margin: 0 4px; border: 2px solid var(--kp-ink); border-radius: 50%; background: #3E9A4B; }
.kp-znak-zl, .kp-znak-gw { width: 24px; height: 22px; }
.kp-znak .kp-i-gw, .kp-znak .kp-i-zl { width: 20px; height: 20px; }
.kp-znak-wol { width: 24px; height: 20px; border: 2px solid var(--kp-ink); border-radius: 6px; background: repeating-linear-gradient(135deg, #E6DAC0 0 4px, #FFFDF8 4px 8px); }
.kp-przel { position: relative; flex: none; width: 56px; height: 32px; border: 2.5px solid var(--kp-ink); border-radius: 999px; background: var(--kp-paper); }
.kp-przel span { position: absolute; top: 2px; left: 2px; width: 23px; height: 23px; border: 2.5px solid var(--kp-ink); border-radius: 50%; background: var(--kp-paper); transition: left .18s; }
.kp-przel-on { background: var(--kp-green); }
.kp-przel-on span { left: 26px; }
.kp-zablok .kp-przel { background: repeating-linear-gradient(135deg, #EFE6D2 0 8px, #FFFDF8 8px 16px); }

/* węższy komputer / tablet */
@container kp (max-width: 1080px) {
	.kp-uklad { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.kp-aside { display: contents; }
	.kp-aside .kp-filtry-wrap { order: -1; max-width: 420px; }
	.kp-popover { left: 0; right: auto; }
}
@container kp (max-width: 980px) {
	.kp-pasek { grid-template-columns: minmax(0, 1fr) auto; }
	.kp-pasek-lewo { grid-column: 1 / -1; order: 3; }
	.kp-pasek-lewo:empty { display: none; }
	.kp-nav-pill { width: 100%; }
	.kp-fp-grupy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kp-kalendarz.kp-ui { container-type: inline-size; container-name: kp; }

/* ---------- telefon ---------- */

.kp-mobile.kp-kalendarz.kp-ui { padding-bottom: 112px; gap: 0; border-radius: 22px; }
.kp-mobile .kp-top { padding: 10px 16px; border-radius: 20px 20px 0 0; margin-bottom: 10px; }
.kp-mobile .kp-top-logo { width: 40px; }
.kp-mobile .kp-marka { font-size: 16px; }
.kp-mobile .kp-marka span { font-size: 12.5px; }
.kp-mob-filtr { padding: 0 16px 10px; }
.kp-mobile .kp-ukryte { padding: 0 16px 8px; }
.kp-mobile .kp-ukryte .kp-i-x { width: 14px; height: 14px; }
.kp-mobile .kp-nav-pill { width: auto; margin: 0 16px; }
.kp-mobile .kp-nav-etyk { font-size: 19px; }
.kp-podp { padding: 6px 16px 8px; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--kp-muted); }
.kp-tresc-mob { padding: 0 16px; }

.kp-mies-mob { margin: 0 -16px; border-width: 2.5px 0; border-radius: 0; box-shadow: none; }
.kp-mies-mob .kp-mies-glowa { border-bottom-width: 2px; }
.kp-mies-mob .kp-mies-glowa div { padding: 8px 0; font-size: 13px; }
.kp-ui .kp-mies-kom-mob {
	display: flex; flex-direction: column; align-items: center; gap: 3px;
	height: 58px; padding: 6px 0 0;
	border-bottom: 1.5px solid #EDE5D2;
	text-align: center;
}
.kp-mies-kom-mob .kp-mies-nr { font-size: 16px; }
.kp-kropki { display: flex; gap: 2px; }
.kp-kropki span { width: 8px; height: 8px; border: 1.5px solid var(--kp-ink); border-radius: 50%; }
.kp-sel-tytul { margin: 18px 0 10px; font-family: var(--kp-display); font-weight: 800; font-size: 19px; line-height: 1.1; }
.kp-sel-lista { display: flex; flex-direction: column; gap: 9px; }

.kp-ui .kp-wiersz-mob, .kp-ui .kp-wiersz-tydz {
	grid-template-columns: 58px minmax(0, 1fr); gap: 8px;
	padding: 11px 12px; border-left-width: 9px;
}
.kp-ui .kp-wiersz-tydz { grid-template-columns: 52px minmax(0, 1fr); padding: 9px 12px; border-radius: 14px; }
.kp-wiersz-mob .kp-wiersz-czas { font-size: 17px; }
.kp-wiersz-tydz .kp-wiersz-czas { font-size: 16px; }
.kp-wiersz-mob .kp-wiersz-tytul, .kp-wiersz-tydz .kp-wiersz-tytul { font-size: 15px; gap: 5px; }
.kp-wiersz-mob .kp-wiersz-sub { font-size: 13px; }
.kp-lista-mob { gap: 18px; }
.kp-lista-mob .kp-lista-dzien { gap: 8px; }
.kp-lista-mob .kp-lista-tytul { font-size: 17px; }
.kp-lista-mob .kp-wiersz-mob { grid-template-columns: 52px minmax(0, 1fr); padding: 9px 12px; border-radius: 14px; }
.kp-lista-mob .kp-wiersz-sub { font-size: 12.5px; }

/* tydzień na telefonie: siatka pn–pt (makieta v3) */
.kp-tydz-siatka { display: grid; margin: 0 -16px; border-top: 2.5px solid var(--kp-ink); border-bottom: 2.5px solid var(--kp-ink); background: var(--kp-paper); overflow: hidden; }
.kp-ts-kol { display: flex; flex-direction: column; min-width: 0; border-right: 1.5px solid #DCD3BF; }
.kp-ts-kol.kp-ts-ost { border-right: 0; }
.kp-ts-glowa { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 0 8px; border-bottom: 2px solid var(--kp-ink); background: var(--kp-sand); }
.kp-ts-dz { font-weight: 800; font-size: 13px; line-height: 1; }
.kp-ts-nr { display: grid; place-items: center; width: 32px; height: 32px; border: 2.5px solid transparent; border-radius: 50%; font-family: var(--kp-display); font-weight: 800; font-size: 17px; line-height: 1; }
.kp-ts-nr.kp-dzis { border-color: var(--kp-ink); background: var(--kp-pink); }
.kp-ts-lista { display: flex; flex-direction: column; gap: 5px; min-height: 420px; padding: 5px 4px 8px; }
.kp-ui .kp-ts-kafel { display: flex; flex-direction: column; gap: 2px; width: 100%; min-width: 0; padding: 6px 5px 7px; border: 2px solid var(--kp-ink); border-radius: 10px; text-align: left; cursor: pointer; }
.kp-ui .kp-ts-wolne { border-style: dashed; }
.kp-ts-gora { display: flex; align-items: center; justify-content: space-between; gap: 2px; width: 100%; }
.kp-ts-gora .kp-i-gw, .kp-ts-gora .kp-i-zl { width: 12px; height: 12px; margin-top: -1px; }
.kp-ts-gora .kp-i-gw + .kp-i-zl { margin-left: -6px; }
.kp-ts-czas { font-family: var(--kp-display); font-weight: 800; font-size: 14px; line-height: 1; white-space: nowrap; }
.kp-ts-t { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-weight: 700; font-size: 12.5px; line-height: 1.2; overflow-wrap: anywhere; hyphens: auto; }
.kp-ts-legenda { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 12px; color: var(--kp-muted); font-size: 12.5px; font-weight: 700; }
.kp-ts-legenda span { display: flex; align-items: center; gap: 4px; }
.kp-ts-legenda .kp-i { width: 12px; height: 12px; }

.kp-tydz-mob { display: flex; flex-direction: column; gap: 16px; }
.kp-tydz-dzien { display: flex; flex-direction: column; gap: 8px; }
.kp-tydz-glowa { display: flex; align-items: center; gap: 8px; }
.kp-tydz-nr {
	display: grid; place-items: center; width: 38px; height: 38px;
	border: 2.5px solid var(--kp-ink); border-radius: 12px; background: var(--kp-paper);
	font-family: var(--kp-display); font-weight: 800; font-size: 18px; line-height: 1;
}
.kp-tydz-nr.kp-dzis { background: var(--kp-pink); }
.kp-tydz-t { font-family: var(--kp-display); font-weight: 800; font-size: 17px; }
.kp-dzis-znak { padding: 1px 9px; border: 2px solid var(--kp-ink); border-radius: 999px; background: var(--kp-pink); font-weight: 800; font-size: 12px; }

.kp-dzien-mob { display: flex; flex-direction: column; gap: 10px; }
.kp-ui .kp-cal-karta {
	display: flex; flex-direction: column; width: 100%;
	padding: 12px 14px; border: 2.5px dashed var(--kp-ink); border-radius: 16px;
	background: var(--kp-paper); text-align: left;
}
.kp-ui .kp-cal-wolne { background: repeating-linear-gradient(135deg, #EFE6D2 0 7px, #FFFDF8 7px 14px); }
.kp-cal-karta-t { display: flex; align-items: center; gap: 5px; font-weight: 800; font-size: 15.5px; }
.kp-cal-karta-s { font-size: 13px; color: var(--kp-muted); }
.kp-dzien-os { position: relative; margin-top: 8px; border: 2.5px solid var(--kp-ink); border-radius: 18px; background: var(--kp-paper); }
.kp-dzien-h { position: absolute; left: 0; right: 0; border-top: 1.5px solid #EFE8D6; }
.kp-dzien-h:first-child { border-top-color: transparent; }
.kp-dzien-h span { position: absolute; left: 8px; top: -9px; padding: 0 3px; background: var(--kp-paper); font-size: 11.5px; font-weight: 800; color: var(--kp-muted); }
.kp-dzien-h:first-child span { top: 4px; }
.kp-dzien-bloki { position: absolute; left: 52px; right: 8px; top: 0; bottom: 0; }
.kp-dzien-bloki .kp-blok { padding: 5px 10px; border-radius: 12px; gap: 0; }
.kp-teraz-mob { left: 46px; }
.kp-teraz-mob span { left: -6px; }

/* ---------- warstwy (poza kalendarzem) ---------- */

.kp-host { position: relative; z-index: 99990; }
.kp-ui .kp-fab {
	position: fixed; z-index: 99991;
	display: grid; place-items: center;
	width: 68px; height: 68px;
	border: 2.5px solid var(--kp-ink); border-radius: 50%;
	background: var(--kp-blue); color: var(--kp-paper);
	box-shadow: 4px 4px 0 var(--kp-ink);
	transition: opacity .2s, transform .2s;
}
.kp-ui .kp-fab .kp-i-dodaj { width: 30px; height: 30px; stroke-width: 2.3; }
.kp-ui .kp-fab:hover { background: #1A63D6; }
.kp-ui .kp-fab.kp-ukryty { opacity: 0; transform: scale(.8); pointer-events: none; }

.kp-dolna {
	position: fixed; z-index: 99991; left: 0; right: 0; bottom: 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	padding: 8px 10px calc(10px + env(safe-area-inset-bottom));
	border-top: 2.5px solid var(--kp-ink);
	background: var(--kp-paper);
	transition: transform .28s cubic-bezier(.3, .7, .3, 1);
}
.kp-dolna.kp-ukryty { transform: translateY(105%); }
.kp-ui .kp-dolna-btn {
	display: flex; flex-direction: column; align-items: center; gap: 3px;
	height: 62px; font-weight: 700; font-size: 13.5px; text-align: center;
}
.kp-ui .kp-dolna-btn.kp-akt { font-weight: 800; }
.kp-dolna-ik { display: grid; place-items: center; width: 58px; height: 34px; border: 2.5px solid transparent; border-radius: 999px; }
.kp-dolna-ik .kp-i { width: 21px; height: 21px; }
.kp-akt .kp-dolna-ik { background: var(--kp-pink); border-color: var(--kp-ink); }

html.kp-modal-otwarty, html.kp-modal-otwarty body { overflow: hidden; }
.kp-tlo {
	position: fixed; inset: 0; z-index: 99995;
	display: grid; place-items: center;
	padding: 16px;
	background: rgba(20, 20, 20, .45);
	animation: kp-pojaw .15s ease-out;
}
.kp-okno {
	width: 520px; max-width: 100%; max-height: calc(100vh - 32px); overflow: auto;
	border: 3px solid var(--kp-ink); border-radius: 26px;
	background: var(--kp-paper); box-shadow: 10px 10px 0 var(--kp-ink);
}
.kp-okno-dodaj { width: 560px; background: var(--kp-cream); border-radius: 28px; }
.kp-tlo-arkusz { display: flex; flex-direction: column; justify-content: flex-end; padding: 0; }
.kp-arkusz {
	position: relative;
	display: flex; flex-direction: column;
	max-height: 90%; overflow: hidden;
	border-top: 3px solid var(--kp-ink); border-radius: 34px 34px 0 0;
	background: var(--kp-cream);
	animation: kp-wjazd .24s cubic-bezier(.3, .7, .3, 1);
}
.kp-uchwyt { position: absolute; z-index: 2; top: 9px; left: 50%; width: 46px; height: 5px; margin-left: -23px; border-radius: 3px; background: var(--kp-ink); }
@keyframes kp-pojaw { from { opacity: 0; } }
@keyframes kp-wjazd { from { transform: translateY(40%); opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .kp-tlo, .kp-arkusz { animation: none; } .kp-dolna, .kp-fab { transition: none; } }

.kp-arkusz-glowa { display: flex; align-items: center; justify-content: space-between; padding: 26px 18px 12px; border-bottom: 2.5px solid var(--kp-ink); }
.kp-arkusz-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 27px; line-height: 1; }
.kp-arkusz-przew { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding: 14px 18px 16px; }
.kp-arkusz-przew .kp-fp-grupy { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.kp-arkusz-przew .kp-fp-grupa { height: 50px; font-size: 15.5px; }
.kp-arkusz-przew .kp-fp-wszystkie { height: 48px; font-size: 15.5px; }
.kp-arkusz-przew .kp-fp-glowa-2 { margin-top: 6px; }
.kp-arkusz-przew .kp-fp-opis, .kp-arkusz-przew .kp-fp-rodzaj-o { font-size: 12.5px; }
.kp-arkusz-stopka { display: flex; gap: 10px; padding: 12px 18px calc(22px + env(safe-area-inset-bottom)); border-top: 2.5px solid var(--kp-ink); background: var(--kp-paper); }
.kp-arkusz-stopka .kp-przycisk { height: 52px; }

.kp-arkusz-przew > *, .kp-szcz-cialo > *, .kp-dodaj-cialo > *, .kp-dodaj-przyciski > *, .kp-popover > * { flex-shrink: 0; }

.kp-arkusz .kp-dodaj-przyciski > .kp-przycisk, .kp-arkusz .kp-szcz-cialo > .kp-przycisk { flex: none; width: 100%; }

/* szczegóły */
.kp-szcz-glowa { display: flex; gap: 10px; padding: 16px 16px 14px 20px; border-bottom: 2.5px solid var(--kp-ink); }
.kp-arkusz .kp-szcz-glowa { padding-top: 28px; }
.kp-szcz-glowa-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.kp-szcz-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 23px; line-height: 1.1; }
.kp-arkusz .kp-szcz-tytul { font-size: 25px; }
.kp-szcz-chipy { display: flex; flex-wrap: wrap; gap: 6px; }
.kp-pastylka { padding: 2px 10px; border: 2px solid var(--kp-ink); border-radius: 999px; background: var(--kp-paper); font-weight: 800; font-size: 12.5px; }
.kp-szcz-glowa .kp-kolko { width: 40px; height: 40px; }
.kp-arkusz .kp-szcz-glowa .kp-kolko { width: 44px; height: 44px; }
.kp-szcz-cialo { display: flex; flex-direction: column; gap: 14px; padding: 16px 20px 20px; overflow-y: auto; }
.kp-arkusz .kp-szcz-cialo { gap: 16px; padding-bottom: calc(28px + env(safe-area-inset-bottom)); background: var(--kp-cream); }
.kp-dl { display: grid; grid-template-columns: 106px minmax(0, 1fr); gap: 8px 10px; font-size: 14.5px; }
.kp-arkusz .kp-dl { grid-template-columns: 112px minmax(0, 1fr); font-size: 15px; }
.kp-dl dt { font-weight: 800; }
.kp-dl dd { color: var(--kp-muted); overflow-wrap: anywhere; }
.kp-dl a { font-weight: 800; }
.kp-szcz-akcje { display: flex; gap: 10px; margin-top: 4px; }
.kp-arkusz .kp-szcz-akcje { margin-top: 0; }
.kp-arkusz .kp-przycisk { height: 52px; font-size: 16.5px; }

/* dodaj do kalendarza */
.kp-dodaj-glowa { display: flex; align-items: center; gap: 12px; padding: 26px 28px 0; }
.kp-arkusz .kp-dodaj-glowa { padding: 28px 18px 12px; border-bottom: 2.5px solid var(--kp-ink); gap: 10px; }
.kp-dodaj-logo { width: 56px; height: auto; display: block; }
.kp-arkusz .kp-dodaj-logo { width: 52px; }
.kp-dodaj-tytul { flex: 1; font-family: var(--kp-display); font-weight: 800; font-size: 26px; line-height: 1.05; }
.kp-arkusz .kp-dodaj-tytul { font-size: 23px; }
.kp-dodaj-cialo { display: flex; flex-direction: column; gap: 14px; padding: 14px 28px 28px; }
.kp-arkusz .kp-dodaj-cialo { gap: 12px; padding: 14px 18px calc(30px + env(safe-area-inset-bottom)); overflow-y: auto; }
.kp-dodaj-opis { font-size: 15.5px; font-weight: 500; color: var(--kp-muted); line-height: 1.5; }
.kp-arkusz .kp-dodaj-opis { font-size: 14.5px; }
.kp-etyk { display: block; font-weight: 800; font-size: 15px; margin-bottom: -6px; }
.kp-select-wrap { position: relative; display: flex; align-items: center; }
.kp-select-kropka { position: absolute; left: 16px; width: 16px; height: 16px; border: 2px solid var(--kp-ink); border-radius: 50%; pointer-events: none; }
.kp-select-wrap .kp-i-dol { position: absolute; right: 14px; width: 20px; height: 20px; pointer-events: none; }
.kp-ui .kp-select {
	width: 100%; height: 52px; padding: 0 44px 0 44px;
	border: 2.5px solid var(--kp-ink); border-radius: 16px;
	background: var(--kp-paper); font-weight: 700; font-size: 16px; cursor: pointer;
}
.kp-dodaj-przyciski { display: flex; gap: 10px; }
.kp-arkusz .kp-dodaj-przyciski { flex-direction: column; }
.kp-kopiuj { display: flex; gap: 10px; }
.kp-ui .kp-url {
	flex: 1; min-width: 0; height: 50px; padding: 0 14px;
	border: 2.5px solid var(--kp-ink); border-radius: 14px;
	background: var(--kp-paper);
	font-family: ui-monospace, Menlo, monospace; font-size: 13.5px; font-weight: 500;
}
.kp-kopiuj .kp-przycisk { height: 50px; padding: 0 18px; }
.kp-skopiowano { display: flex; align-items: center; gap: 6px; min-height: 1px; font-weight: 800; font-size: 14.5px; color: #1E7A58; }
.kp-skopiowano:empty { display: none; }

/* hasło */
.kp-haslo { max-width: 440px; margin: 0 auto; padding: 32px 24px; display: flex; flex-direction: column; gap: 12px; }
.kp-haslo-logo { width: 72px; height: auto; }
.kp-haslo-tytul { font-family: var(--kp-display); font-weight: 800; font-size: 28px; line-height: 1.05; }
.kp-haslo-opis { font-weight: 500; color: var(--kp-muted); line-height: 1.5; }
.kp-ui .kp-pole { height: 52px; padding: 0 16px; border: 2.5px solid var(--kp-ink); border-radius: 16px; background: var(--kp-paper); font-size: 16px; }
.kp-haslo-zap { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.kp-ui .kp-haslo-zap input { -webkit-appearance: auto; appearance: auto; width: 18px; height: 18px; accent-color: var(--kp-ink); }
.kp-haslo-blad { color: #9B1C1C; font-weight: 800; font-size: 14px; }
.kp-haslo-blad:empty { display: none; }

@media print {
	.kp-host, .kp-widoki-grupa, .kp-nav-pill .kp-kolko, .kp-aside .kp-filtry-wrap { display: none !important; }
	.kp-aside { position: static; }
}

/* bloki w siatce: godzina rozpoczęcia + nazwa (jak kafelki tygodnia na telefonie) */
.kp-blok-czas { flex: none; font-family: var(--kp-display); font-weight: 800; font-size: 15px; line-height: 1.1; white-space: nowrap; }
.kp-blok-znaki { flex: none; display: inline-flex; gap: 3px; margin-left: auto; }
.kp-blok-nazwa { display: flex; align-items: center; gap: 5px; min-width: 0; width: 100%; font-weight: 700; font-size: 14px; line-height: 1.2; }
.kp-blok-1r .kp-blok-tytul { gap: 6px; }
.kp-blok-1r .kp-blok-nazwa { flex: 1; width: auto; }
.kp-blok-gora { display: flex; align-items: center; gap: 4px; width: 100%; }
.kp-ui .kp-blok-2r { gap: 2px; padding-top: 5px; }
.kp-blok-wysoki .kp-blok-nazwa { align-items: flex-start; }
.kp-blok-wysoki .kp-t-ell { white-space: normal; display: -webkit-box; -webkit-line-clamp: var(--kp-linie, 2); -webkit-box-orient: vertical; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.kp-blok-wysoki .kp-gr-kropka { margin-top: 3px; }
.kp-ui .kp-blok-waski { padding: 3px 6px; }
.kp-blok-waski .kp-blok-tytul { gap: 4px; }
.kp-blok-waski .kp-blok-czas { font-size: 13px; }
.kp-blok-waski .kp-blok-nazwa { font-size: 12.5px; line-height: 1.1; gap: 3px; }
.kp-blok-waski .kp-gr-kropka { width: 8px; height: 8px; }
.kp-blok-waski .kp-i-gw, .kp-blok-waski .kp-i-zl { width: 12px; height: 12px; }

/* 0.8.9: filtr „Zajęcia” */
.kp-ui .kp-fp-zajecia .kp-select { height: 48px; font-size: 15.5px; text-overflow: ellipsis; }
.kp-ui label.kp-fp-tytul { cursor: default; }
.kp-ui .kp-znacznik.kp-znacznik-zaj { background: var(--kp-yellow, #F7B52C); }

/* 0.9.2: panel filtrów mieści się w oknie, zajęcia jako pola wyboru */
.kp-popover {
	width: 480px; padding: 0; gap: 0; overflow: hidden;
	max-height: var(--kp-pop-max, calc(100vh - 32px));
}
.kp-popover > .kp-popover-przew {
	flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
	display: flex; flex-direction: column; gap: 10px; padding: 16px 18px 14px;
}
.kp-popover-przew > * { flex-shrink: 0; }
.kp-popover > .kp-fp-akcje {
	flex: none; margin: 0; padding: 12px 18px 14px;
	border-top: 2.5px solid var(--kp-ink); background: var(--kp-cream);
}
.kp-fp-akcje .kp-przycisk { flex: 1; height: 46px; }
.kp-fp-grupy .kp-fp-wszystkie { grid-column: 1 / -1; }
.kp-popover .kp-fp-grupy { gap: 8px; }
.kp-ui .kp-popover .kp-fp-wszystkie { height: 40px; }
.kp-ui .kp-popover .kp-fp-grupa { height: 42px; font-size: 14.5px; gap: 7px; }
.kp-popover .kp-fp-grupa .kp-litera { width: 28px; height: 28px; font-size: 13px; }
.kp-popover .kp-fp-tytul { font-size: 17px; }
.kp-popover .kp-fp-opis { font-size: 12.5px; }
.kp-popover .kp-fp-glowa-2 { margin-top: 6px; }
.kp-popover .kp-fp-kat { gap: 6px; }
.kp-ui .kp-popover .kp-fp-rodzaj { padding: 7px 10px 7px 12px; border-radius: 16px; gap: 10px; }
.kp-popover .kp-fp-rodzaj-n { font-size: 15px; line-height: 1.2; }
.kp-popover .kp-fp-rodzaj-o { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-popover .kp-przel { width: 48px; height: 28px; }
.kp-popover .kp-przel span { width: 19px; height: 19px; }
.kp-popover .kp-przel-on span { left: 22px; }

.kp-fp-zaj { border: 2.5px solid var(--kp-ink); border-radius: 16px; background: var(--kp-paper); overflow: hidden; }
.kp-ui .kp-fp-zaj-btn {
	display: flex; align-items: center; gap: 10px;
	width: 100%; height: 46px; margin: 0; padding: 0 12px 0 14px;
	border: 0; border-radius: 0; background: transparent; box-shadow: none;
	color: var(--kp-ink); font-weight: 700; font-size: 15.5px; text-align: left; cursor: pointer;
}
.kp-ui .kp-fp-zaj-btn:hover { background: #fff; }
.kp-fp-zaj-kropki { display: flex; flex: none; }
.kp-fp-zaj-kropka { flex: none; width: 15px; height: 15px; border: 2px solid var(--kp-ink); border-radius: 50%; }
.kp-fp-zaj-kropki .kp-fp-zaj-kropka + .kp-fp-zaj-kropka { margin-left: -6px; }
.kp-fp-zaj-wyb { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-fp-zaj-ile {
	display: grid; place-items: center; flex: none; min-width: 24px; height: 24px; padding: 0 6px;
	border: 2px solid var(--kp-ink); border-radius: 999px; background: var(--kp-yellow); font-size: 12px; font-weight: 800;
}
.kp-fp-zaj-btn .kp-i-dol { flex: none; width: 20px; height: 20px; transition: transform .18s; }
.kp-fp-zaj.kp-otw .kp-fp-zaj-btn .kp-i-dol { transform: rotate(180deg); }
.kp-fp-zaj-lista {
	display: flex; flex-direction: column; gap: 2px;
	max-height: 236px; overflow-y: auto; overscroll-behavior: contain;
	padding: 6px; border-top: 2px solid var(--kp-ink); background: #fff;
}
.kp-ui .kp-fp-zaj-poz {
	display: flex; align-items: center; gap: 10px;
	width: 100%; min-height: 40px; margin: 0; padding: 6px 10px;
	border: 0; border-radius: 10px; background: transparent; box-shadow: none;
	color: var(--kp-ink); font-weight: 700; font-size: 15px; line-height: 1.25; text-align: left; cursor: pointer;
}
.kp-ui .kp-fp-zaj-poz:hover { background: var(--kp-sand); }
.kp-ui .kp-fp-zaj-poz:first-child { margin-bottom: 4px; border-bottom: 2px dashed var(--kp-line); border-radius: 10px 10px 0 0; }
.kp-fp-zaj-pole {
	flex: none; display: grid; place-items: center; width: 22px; height: 22px;
	border: 2.5px solid var(--kp-ink); border-radius: 7px; background: #fff;
}
.kp-fp-zaj-poz.kp-akt .kp-fp-zaj-pole { background: var(--kp-green); }
.kp-fp-zaj-pole .kp-i-ok { width: 15px; height: 15px; stroke-width: 3.2; }
.kp-fp-zaj-n { flex: 1; min-width: 0; }
.kp-ui .kp-fp-zaj-poz:focus-visible, .kp-ui .kp-fp-zaj-btn:focus-visible { outline: 3px solid var(--kp-blue); outline-offset: -3px; }
.kp-arkusz-przew .kp-fp-zaj-lista { max-height: none; }
@container kp (max-width: 1080px) {
	.kp-popover { width: 460px; }
}

/* 0.9.3: miesiąc bez weekendu (pn–pt) */
.kp-mies-5 .kp-mies-kom:nth-child(7n) { border-right: 1.5px solid var(--kp-line); }
.kp-mies-5 .kp-mies-kom:nth-child(5n) { border-right: 0; }

/* 0.9.4: panel filtrów w warstwie przy <body> (position: fixed, pozycję liczy dopasujPopover), żeby kontenery motywu go nie przykrywały */
.kp-host .kp-popover { position: fixed; top: 0; left: 0; right: auto; z-index: 99989; }
