#harmonogram_okno_edycji 
{
	display:none;
	position:fixed;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	z-index:10001;
	width:900px;
	max-width:95vw;
	background:#fff;
	border-radius:8px;
	box-shadow:0 0 30px rgba(0,0,0,.4);
	padding:20px;
}
#harmonogram_okno_edycji label 
{
	width: 200px;
}
#harmonogram
{
	width:100%;
	height:calc(100vh - 220px);
	overflow:auto
}
.opis-eventu
{
	padding:2px;
	line-height:16px;
}
.tytul
{
	display:flex;
	align-items:center;
	gap:5px;
	margin-bottom:5px;
}
.kolor
{
	width:6px;
	height:22px;
	border-radius:3px;
	display:inline-block;
}
.kolor.blue{background:#2196F3;}
.kolor.green{background:#4CAF50;}
.kolor.red{background:#F44336;}
.kolor.yellow{background:#FFC107;}
.kolor.orange{background:#FF9800;}
.kolor.purple{background:#9C27B0;}
#harmonogram_tlo
{
	display:none;
	position:fixed;
	inset:0;
	background:rgba(0,0,0,.45);
	z-index:10000;
}
.ec-now-time
{
	position: absolute;
	z-index: 999999;
	background: #d32f2f;
	color: #fff;
	font-size: 11px;
	font-weight: bold;
	padding: 2px 6px;
	border-radius: 4px;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: 0 2px 5px rgba(0,0,0,.25);
}
#toolbar
{
	display:flex;
	gap:6px;
}
.toolbar-kalendarza
{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:15px;
	margin-bottom:12px;
}
#nawigacjaDaty
{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:12px;
	flex:1;
	min-width:350px;
}
#aktualnaData
{
	font-size:24px;
	font-weight:700;
	color:#444;
	text-align:center;
	white-space:nowrap;
}
.podglad-seansu
{
	position:fixed;
	display:none;
	background:#fff;
	border:1px solid #ddd;
	border-radius:8px;
	box-shadow:0 5px 20px rgba(0,0,0,.25);
	padding:15px;
	width:320px;
	z-index:99999;
}
.podglad-seansu h5
{
	margin:0 0 10px;
	font-weight:bold;
}
.podglad-przyciski
{
	display:flex;
	justify-content:flex-end;
	gap:8px;
	margin-top:15px;
}
.menu-kontekstowe
{
	position: fixed;
	display: none;
	background: white;
	min-width: 220px;
	border: 1px solid #ccc;
	border-radius: 8px;
	box-shadow: 0 8px 25px rgba(0,0,0,.25);
	z-index: 999999;
}
.menu-kontekstowe .item
{
	padding: 10px 14px;
	cursor: pointer;
	user-select: none;
}
.menu-kontekstowe .item:hover
{
	background: #ffc107;
}
.menu-kontekstowe hr
{
	margin:0;
}
#kalendarz .ec-sidebar .ec-row-head
{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	text-align: left;
	font-size: 14px;
	line-height: 1.2;
	padding-left: 10px;
	box-sizing: border-box;
}
#kalendarz.harmonogram .ec-body
{
	position: relative;
}
#kalendarz.harmonogram .ec-body .ec-row-head.poziom-grupa
{
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	color: transparent !important;
	z-index: 1;
}
#kalendarz.harmonogram .ec-body .ec-row-head.poziom-grupa
{
	position: relative;
	overflow: hidden;
}

#kalendarz.harmonogram .ec-body .ec-row-head.poziom-grupa > *
{
	visibility: hidden;
}
.moja-grupa-cala
{
	position: absolute;
	left: 4px;
	right: 4px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 16px;
	box-sizing: border-box;
	border: 1px solid #e68900;
	border-radius: 10px;
	box-shadow: 0 2px 7px rgba(0,0,0,.14);
	z-index: 1000;
	cursor: pointer;
	pointer-events: auto;
	user-select: none;
	font-size: 15px;
	font-weight: 700;
	color: #000;
	transition: filter .15s ease, box-shadow .15s ease, transform .15s ease;
}
.moja-grupa-cala:hover
{
	filter: brightness(1.03);
	box-shadow: 0 3px 10px rgba(0,0,0,.18);
}
.moja-grupa-cala .grupa-nazwa
{
	flex: 1;
	text-align: center;
	color: #000;
}
.moja-grupa-cala .grupa-toggle
{
	position: absolute;
	right: 10px;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.72);
	color: #000;
	font-size: 20px;
	line-height: 30px;
	padding: 0;
	cursor: pointer;
	pointer-events: auto;
	position: relative;
	z-index: 1001;
}
.moja-grupa-cala .grupa-toggle:hover
{
	background: #fff;
}
#kalendarz.harmonogram .ec-body > .ec-sidebar .ec-row-head:not(.poziom-grupa),
#kalendarz.harmonogram .ec-body > .ec-grid .ec-day:not(.poziom-grupa)
{
	min-height: 80px !important;
	box-sizing: border-box;
}
#kalendarz.harmonogram .ec-body > .ec-sidebar .ec-row-head.poziom-grupa,
#kalendarz.harmonogram .ec-body > .ec-grid .ec-day.poziom-grupa
{
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	box-sizing: border-box;
}
#kalendarz .ec-sidebar .ec-row-head > span:last-child
{
	font-size: 14px;
	text-align: left;
}
#kalendarz.harmonogram .ec-col-head
{
	display: none !important;
}
#kalendarz.dzien
{
	--ec-sidebar-width: 64px;
}
#kalendarz.dzien .ec-header > .ec-sidebar
{
	visibility: hidden !important;
}
#kalendarz.dzien .ec-header .ec-resource
{
	text-align: center;
	font-weight: bold;
}
#kalendarz.dzien .ec-header > .ec-sidebar
{
	width: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
#kalendarz.dzien .ec-header > .ec-grid
{
	margin-left: 0 !important;
}
.ec-blokada-sali
{
	position: absolute !important;
	z-index: 1 !important;
	background:
		repeating-linear-gradient(
			135deg,
			rgba(120, 0, 0, 0.28) 0px,
			rgba(120, 0, 0, 0.28) 8px,
			rgba(120, 0, 0, 0.42) 8px,
			rgba(120, 0, 0, 0.42) 16px
		) !important;
	border-left: 2px solid rgba(120, 0, 0, 0.75);
	border-right: 2px solid rgba(120, 0, 0, 0.75);
	box-sizing: border-box;
	pointer-events: none;
}
.ec-blokada-sali-dzien
{
	z-index: 1 !important;
}
.ec-blokada-sali::after
{
	content: "🔒";
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: 20px;
	opacity: 0.8;
	pointer-events: none;
}
#kalendarz.harmonogram .ec-event
{
    height: 75px !important;
    min-height: 75px !important;
    max-height: 75px !important;
    box-sizing: border-box;
    overflow: hidden !important;
}
#kalendarz.harmonogram .ec-event-body
{
    height: 100%;
    overflow: hidden !important;
}
#kalendarz.harmonogram .opis-eventu,
#kalendarz.dzien .opis-eventu
{
    width: 100%;
    height: 100%;
    overflow: hidden !important;
}

#kalendarz.harmonogram .opis-eventu *,
#kalendarz.dzien .opis-eventu *
{
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}