:root{--navy:#102a43;--blue:#174ea6;--light:#f4f7fb;--border:#d8e2ef;--text:#17212b;--muted:#65758b;--card:#fff;--accent:#c79a2b}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--light)}.top{background:linear-gradient(135deg,var(--navy),#1e4b7a);color:#fff;padding:18px 32px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:4px solid var(--accent)}.brand{font-weight:800;font-size:25px;letter-spacing:.2px}.sub{font-size:13px;opacity:.85}.top a{color:#fff;text-decoration:none;margin-left:18px;font-weight:600}.wrap{max-width:1440px;margin:0 auto;padding:28px}footer{text-align:center;color:var(--muted);font-size:12px;padding:30px}.hero{background:#fff;border:1px solid var(--border);border-radius:18px;padding:24px;margin-bottom:22px;box-shadow:0 8px 24px #102a4312}.hero h1{margin:0 0 8px;font-size:30px}.hero p{margin:0;color:var(--muted)}.cards,.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:0 8px 24px #102a430d}.wide{grid-column:1/-1}.narrow{max-width:460px;margin:0 auto}.card h2{margin-top:0;color:var(--navy)}.rowlink{display:block;text-decoration:none;color:var(--text);border:1px solid var(--border);padding:12px;border-radius:12px;margin:8px 0;background:#fbfdff}.rowlink:hover{border-color:var(--blue);background:#f1f6ff}.rowlink span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}input,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}label{display:block;margin:10px 0;color:var(--muted);font-size:13px}label input{margin-top:5px}.check{display:flex;gap:8px;align-items:center;color:var(--text);font-size:14px;margin:0}.check input{width:auto}button{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:10px 14px;font-weight:700;cursor:pointer}button:hover{filter:brightness(.95)}button.danger{background:#a83232;padding:7px 10px}table{width:100%;border-collapse:collapse;margin-top:14px;font-size:14px}th,td{border-bottom:1px solid var(--border);padding:9px;text-align:left;vertical-align:top}th{background:#f7f9fc;color:var(--navy)}.pill{display:inline-block;margin:4px 6px 4px 0;padding:7px 10px;border-radius:999px;background:#eef4fb;border:1px solid var(--border)}.week{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px}.day{background:#fff;border:1px solid var(--border);border-radius:16px;padding:12px;min-height:420px}.day h2{font-size:16px;margin:0 0 12px;color:var(--navy)}.lesson{background:#eef5ff;border-left:5px solid var(--blue);border-radius:12px;padding:10px;margin-bottom:10px;box-shadow:0 5px 14px #102a430b}.lesson span,.lesson em{display:block;font-size:12px;color:var(--muted);margin-top:3px}.time{font-weight:800;color:var(--blue);font-size:13px}.empty{color:var(--muted);font-size:13px}.error{background:#ffecec;border:1px solid #ffc2c2;color:#8a1f1f;padding:10px;border-radius:10px}.hint{color:var(--muted);font-size:13px}code{background:#eef2f7;padding:2px 5px;border-radius:5px}@media(max-width:1100px){.cards,.admin-grid,.week{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.top{display:block}.top nav{margin-top:12px}.top a{margin-left:0;margin-right:14px}}

.planner-shell{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.planner-side{position:sticky;top:12px}.planner-side label{display:block;margin:10px 0;font-weight:700;color:var(--navy)}.planner-side select,.planner-side input{margin-top:5px}.drop-card{margin:14px 0;padding:16px;border-radius:14px;background:linear-gradient(135deg,#123b68,#1d72b8);color:white;font-weight:800;text-align:center;cursor:grab;box-shadow:0 10px 22px #123b6822}.planner-main{overflow:auto}.planner-toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px;color:var(--navy)}.planner-toolbar span{font-size:13px;color:var(--muted)}.planner-grid{display:grid;grid-template-columns:70px repeat(7,230px);grid-template-rows:42px auto;min-width:1680px;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}.time-head,.day-head{background:#102a43;color:#fff;padding:12px;font-weight:800;text-align:center;border-right:1px solid #284a6a}.time-scale{position:relative;background:#f5f7fa;border-right:1px solid var(--border);grid-row:2}.day-col{position:relative;background:#fff;border-right:1px solid var(--border);grid-row:2}.hour-line{position:absolute;left:0;right:0;height:1px;background:#e7edf5}.time-mark{position:absolute;right:8px;transform:translateY(-50%);font-size:12px;color:#66788a}.lesson-block{position:absolute;left:8px;right:8px;border-left:5px solid #1d72b8;background:#eaf4ff;border-radius:12px;padding:8px;box-shadow:0 8px 18px #102a4314;z-index:4;cursor:grab;overflow:hidden;font-size:12px}.lesson-block b{display:block;color:#102a43;font-size:13px}.lesson-block span{display:block;color:#516273;margin-top:2px}.ghost-block{position:absolute;left:4px;right:4px;border-radius:10px;padding:7px;background:repeating-linear-gradient(45deg,#dfe5ec,#dfe5ec 8px,#eef2f6 8px,#eef2f6 16px);border:1px dashed #9aa8b7;color:#4b5563;opacity:.72;z-index:1;overflow:hidden;font-size:11px}.ghost-block b,.ghost-block span{display:block}.ghost-teacher{border-color:#6b7280}.ghost-group{border-color:#94a3b8}.hintbox,.statusbox{margin-top:12px;padding:10px;border-radius:12px;background:#f5f8fc;border:1px solid var(--border);font-size:13px}.statusbox.ok{border-color:#b7e0c2;background:#f0fff4}.statusbox.bad{border-color:#ffb4b4;background:#fff1f1;color:#8a1f1f}.mini{font-size:12px;padding:6px 8px;margin:4px 4px 0 0;border-radius:999px;background:#eef5ff;color:#123b68;border:1px solid #bdd7f0}.planner-hero{background:linear-gradient(135deg,#102a43,#1d72b8)}
@media(max-width:1100px){.planner-shell{grid-template-columns:1fr}.planner-side{position:relative}.planner-grid{min-width:1100px;grid-template-columns:60px repeat(7,150px)}}
.btnlink{display:inline-block;margin-left:10px;padding:8px 12px;border-radius:999px;background:#fff;color:#123b68;font-weight:800;text-decoration:none}
.adminnav{display:flex;gap:8px;flex-wrap:wrap;padding:10px 24px;background:#eef3f8;border-bottom:1px solid #d7e0ea}.adminnav a{font-size:14px;text-decoration:none;color:#173b5f;background:white;border:1px solid #d7e0ea;border-radius:10px;padding:8px 10px}.adminnav a.strong{background:#123a63;color:white}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.dash-card{display:block;text-decoration:none;color:#1b2936;background:white;border:1px solid #dce5ee;border-radius:18px;padding:18px;box-shadow:0 10px 24px rgba(18,58,99,.08)}.dash-card b{display:block;font-size:18px;margin-bottom:8px;color:#123a63}.dash-card span{color:#52616f}.gridform{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.gridform input,.gridform select{padding:10px;border:1px solid #ccd6e0;border-radius:10px}.gridform button,.btnlink{background:#123a63;color:white;border:0;border-radius:10px;padding:10px 14px;text-decoration:none;display:inline-block}.check{display:flex;gap:6px;align-items:center;background:#f4f7fa;border:1px solid #dbe4ed;border-radius:10px;padding:10px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white}th,td{border-bottom:1px solid #e1e7ee;text-align:left;padding:9px;vertical-align:top}th{background:#f2f6fa;color:#173b5f}.danger{background:#9b1c1c;color:white;border:0;border-radius:8px;padding:7px 10px}

/* Interaktywny planer v4 */
.planner-shell-wide{grid-template-columns:360px 1fr}.live-lesson-card{margin:14px 0;padding:16px;border-radius:16px;background:linear-gradient(135deg,#113a64,#1d72b8);color:white;box-shadow:0 12px 26px rgba(17,58,100,.22);cursor:grab}.live-lesson-card b{display:block;font-size:16px}.live-lesson-card span{display:block;font-size:12px;opacity:.9;margin-top:5px}.legend-live{font-size:12px;color:#52616f;margin:8px 0 10px;line-height:1.8}.lg{display:inline-block;width:16px;height:10px;border-radius:3px;margin:0 4px}.lg.ok{background:#d9f7df;border:1px solid #70bf7e}.lg.bad{background:#ffe1e1;border:1px solid #e68282}.lg.busy{background:#e4e9ef;border:1px dashed #9aa8b7}.planner-toolbar>div{display:flex;flex-direction:column;gap:3px}.live-grid .day-col{background:#fbfdff}.slot-ok,.slot-bad,.slot-limited{position:absolute;left:1px;right:1px;border-radius:7px;z-index:0;pointer-events:none}.slot-ok{background:rgba(46,160,67,.13);border:1px solid rgba(46,160,67,.22)}.slot-bad{background:rgba(210,56,56,.12);border:1px solid rgba(210,56,56,.20)}.slot-limited{background:rgba(210,56,56,.12);border:1px solid rgba(210,56,56,.20)}.hover-slot{position:absolute;left:3px;right:3px;border-radius:10px;z-index:6;pointer-events:none;border:2px solid #174ea6;background:rgba(23,78,166,.10)}.hover-slot.wrong{border-color:#b42318;background:rgba(180,35,24,.10)}.ghost-block{z-index:3}.lesson-block.selected-context{z-index:5;border-left-color:#174ea6;background:#eaf4ff}.slot-ok:hover,.slot-bad:hover{filter:brightness(.98)}#slotInspector ul{margin:6px 0 0 18px;padding:0}.planner-side select,.planner-side input{font-size:14px}.planner-main.card{padding:16px}@media(max-width:1100px){.planner-shell-wide{grid-template-columns:1fr}}
.editpanel{margin-top:14px;padding:12px;border:1px solid #d7dfec;border-radius:14px;background:#f8fafc;display:grid;gap:8px}.editpanel.hidden{display:none}.editpanel h3{margin:0 0 4px}.editpanel label{display:grid;gap:4px;font-size:12px}.editpanel input,.editpanel select{width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:10px}.lesson-block.teacher-only{background:#e7f0ff;border:1px solid #6b95d6;color:#10203f}.lesson-block small,.ghost-block small{display:block;font-size:10px;opacity:.72;margin-top:2px}.mini{display:inline-block;padding:5px 8px;border-radius:8px;background:#eef2ff;color:#1e3a8a;text-decoration:none;border:1px solid #c7d2fe}.inline{display:inline}.muted{background:#f1f5f9;color:#475569}

.planner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lock-toggle{border:1px solid #cbd5e1;border-radius:999px;padding:9px 12px;font-weight:800;cursor:pointer;background:#f8fafc;color:#334155}
.lock-toggle.locked{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.lock-toggle.unlocked{background:#ecfdf5;border-color:#86efac;color:#166534}
.lesson-block.locked-entry,.ghost-block.locked-entry{cursor:pointer;filter:saturate(.86);opacity:.82}
.lesson-block.movable,.ghost-block.movable{cursor:grab;outline:2px solid rgba(22,101,52,.20)}
.lesson-block.movable:active,.ghost-block.movable:active{cursor:grabbing}
.move-locked .lesson-block small,.move-locked .ghost-block small{color:#9a3412}
.move-unlocked .lesson-block small,.move-unlocked .ghost-block small{color:#166534}
.filter-card{margin-bottom:18px}.filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.filterbar label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700}.filterbar select,.filterbar input{min-width:150px}.hero.compact{padding:24px}.hero.small{padding:18px;margin-top:10px}.below{margin-top:22px}.public-week .day{min-height:180px}.makeup-results h3{border-bottom:1px solid #d9e2ef;padding-bottom:8px;margin-top:22px}.slot-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.slot-card{border:1px solid #d4dfed;border-radius:14px;background:#f8fbff;padding:12px;display:flex;flex-direction:column;gap:6px}.slot-card b{color:#0b2e59}.slot-card em{font-style:normal;color:#36516f;font-size:13px}.slot-card span{display:inline-block;margin:2px 4px 2px 0;background:#e8f1fb;border-radius:999px;padding:3px 7px;font-size:12px}.hint{color:#36516f}.error{color:#991b1b;background:#fee2e2;padding:10px;border-radius:10px}
.table-wrap{overflow:auto;border:1px solid #d8e2ef;border-radius:16px;background:white}.schedule-table,.makeup-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1050px}.schedule-table th,.schedule-table td,.makeup-table th,.makeup-table td{border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;padding:9px;vertical-align:top}.schedule-table th,.makeup-table th{position:sticky;top:0;background:#0b2e59;color:white;z-index:1}.schedule-table th:first-child,.makeup-table th:first-child{border-top-left-radius:14px}.schedule-table th:last-child,.makeup-table th:last-child{border-top-right-radius:14px}.hour-col{width:82px;background:#f1f5f9!important;color:#0b2e59!important;text-align:center}.schedule-table td{height:54px;min-width:135px}.table-lesson{margin:0 0 6px 0;padding:8px;border-radius:10px;border-left:4px solid #0b5cab;background:#f5f9ff}.table-lesson b{display:block;color:#0b2e59}.table-lesson span,.table-lesson em{display:block;font-size:12px;color:#334155}.makeup-table td{font-size:14px}.makeup-table tr:hover td{background:#f8fbff}.mini{display:inline-block;padding:5px 8px;border-radius:8px;background:#0b5cab;color:white;text-decoration:none;font-size:12px}.mini:hover{filter:brightness(.95)}

.save-changes{border:1px solid #15803d;border-radius:999px;padding:9px 12px;font-weight:900;cursor:pointer;background:#16a34a;color:white}
.save-changes:disabled{background:#e2e8f0;color:#64748b;border-color:#cbd5e1;cursor:not-allowed}
.lesson-block.pending-entry{outline:2px dashed #15803d;box-shadow:0 0 0 4px rgba(34,197,94,.14)}


/* WBIA / Politechnika Lubelska visual refresh v11 */
:root{
  --pl-black:#000000;
  --pl-text:#111111;
  --pl-muted:#6b6b6b;
  --pl-line:#d7d7d7;
  --pl-light:#f5f5f5;
  --pl-green:#00843d;
  --pl-red:#c00000;
  --pl-yellow:#f2c94c;
  --pl-blue:#003b73;
  --navy:#111111;
  --accent:#003b73;
  --border:#d7d7d7;
  --muted:#666666;
}
*{box-sizing:border-box}
body{
  margin:0;
  background:#fff;
  color:var(--pl-text);
  font-family:Arial, Helvetica, sans-serif;
  font-size:15px;
  line-height:1.42;
}
.top{display:none!important}
.pl-topbar{
  height:40px;
  background:#000;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 8.8vw;
  font-weight:700;
  letter-spacing:.01em;
}
.pl-topnav,.pl-toptools{display:flex;align-items:center;gap:32px}
.pl-topbar a,.pl-topbar span{color:#fff;text-decoration:none;font-size:15px;white-space:nowrap}
.pl-brandbar{
  min-height:116px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px 8.8vw 18px;
  border-bottom:1px solid #e0e0e0;
  background:#fff;
}
.pl-logo{display:flex;align-items:center;gap:22px;text-decoration:none;color:#8b8b8b}
.pl-logo-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:150px;
  height:72px;
  border:8px solid #9a9a9a;
  color:#8a8a8a;
  font-size:46px;
  font-weight:900;
  line-height:1;
  letter-spacing:-8px;
}
.pl-logo-text{font-size:24px;line-height:1.05;font-weight:500;color:#8a8a8a;letter-spacing:.02em}
.pl-logo-text b{font-weight:500;color:#9a9a9a}
.pl-mainnav{
  display:flex;
  align-items:center;
  gap:42px;
  padding:0 8.8vw;
  min-height:72px;
  background:#fff;
  border-bottom:1px solid #d8d8d8;
  overflow-x:auto;
}
.pl-mainnav a{
  color:#000;
  text-decoration:none;
  font-size:18px;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
  padding:24px 0 19px;
  border-bottom:5px solid transparent;
}
.pl-mainnav a:hover,.pl-mainnav a:focus{border-bottom-color:#000}
.wrap{
  max-width:none;
  width:100%;
  margin:0;
  padding:24px 32px 36px;
}
footer{border-top:1px solid #dedede;background:#f7f7f7;color:#666;padding:14px 32px;text-align:left;font-size:13px}
.card,.dash-card,.planner-main.card,.planner-side.card{
  border:1px solid #d7d7d7!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
.hero,.planner-hero{
  border-radius:0!important;
  box-shadow:none!important;
  background:#f2f2f2!important;
  color:#111!important;
  padding:22px 24px!important;
  margin-bottom:18px!important;
  border-left:8px solid #000;
}
.hero h1,.planner-hero h1{font-size:28px;color:#111!important;margin:0 0 8px;font-weight:800}
.hero p,.planner-hero p{color:#333!important;margin:0;font-size:15px;max-width:1280px}
.adminnav.compact-adminnav{
  display:flex;
  gap:0;
  flex-wrap:nowrap;
  overflow-x:auto;
  padding:0 32px;
  background:#f4f4f4;
  border-bottom:1px solid #d7d7d7;
}
.adminnav.compact-adminnav a{
  border:0;
  border-right:1px solid #d7d7d7;
  border-radius:0;
  background:#f4f4f4;
  color:#111;
  padding:13px 16px;
  font-weight:700;
  white-space:nowrap;
}
.adminnav.compact-adminnav a.strong{background:#000;color:#fff}
button,.btnlink,.gridform button{
  border-radius:0!important;
  box-shadow:none!important;
  background:#000!important;
  color:#fff!important;
  border:1px solid #000!important;
  font-weight:800;
}
input,select,textarea{
  border-radius:0!important;
  border:1px solid #bdbdbd!important;
  background:#fff!important;
  box-shadow:none!important;
}
/* Horizontal planner UX */
.planner-shell,.planner-shell-wide{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
}
.planner-side,.planner-side.card,.planner-top-panel{
  position:static!important;
  top:auto!important;
  padding:16px!important;
}
.planner-top-panel h2{margin:0 0 10px;font-size:18px;color:#111}
.planner-top-panel > label,
.planner-top-panel > .live-lesson-card,
.planner-top-panel > .legend-live,
.planner-top-panel > .hintbox,
.planner-top-panel > .statusbox{
  display:inline-flex;
  vertical-align:top;
  margin:0 12px 12px 0!important;
}
.planner-top-panel > label{
  flex-direction:column;
  min-width:210px;
  font-size:12px;
  color:#111!important;
}
.planner-top-panel > label select,.planner-top-panel > label input{min-width:210px;height:38px}
.live-lesson-card{
  width:230px;
  min-height:58px;
  border-radius:0!important;
  background:#000!important;
  color:#fff!important;
  box-shadow:none!important;
  border:1px solid #000!important;
  padding:10px 12px!important;
}
.legend-live{min-width:340px;align-items:center;color:#333!important;background:#f7f7f7;border:1px solid #d7d7d7;padding:9px 10px}
.hintbox,.statusbox{min-width:280px;max-width:460px;border-radius:0!important;box-shadow:none!important;background:#f7f7f7!important;border:1px solid #d7d7d7!important;color:#111!important}
.editpanel{
  display:grid!important;
  grid-template-columns:repeat(8,minmax(130px,1fr));
  gap:10px;
  border-radius:0!important;
  box-shadow:none!important;
  border:1px solid #d7d7d7!important;
}
.editpanel.hidden{display:none!important}
.editpanel h3{grid-column:1/-1}
.planner-main.card{padding:12px!important;overflow:hidden!important}
.planner-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid #d7d7d7;
  padding:0 0 10px;
  margin-bottom:10px;
  color:#111!important;
}
.planner-toolbar b{font-size:17px;color:#111!important}
.planner-toolbar span{font-size:13px;color:#555!important}
.planner-actions{display:flex;gap:8px;flex-wrap:nowrap;align-items:center}
.save-changes{background:var(--pl-green)!important;border-color:var(--pl-green)!important;color:#fff!important}
.save-changes:disabled{background:#d9d9d9!important;border-color:#bdbdbd!important;color:#666!important}
.lock-toggle{background:#fff!important;color:#111!important;border:1px solid #111!important;border-radius:0!important}
.lock-toggle.unlocked{background:#000!important;color:#fff!important}
.planner-grid{
  grid-template-columns:72px repeat(7,minmax(210px,1fr))!important;
  min-width:1640px!important;
  border-radius:0!important;
  border:1px solid #111!important;
  box-shadow:none!important;
}
.planner-main{overflow-x:auto!important;overflow-y:hidden!important}
.time-head,.day-head{
  background:#000!important;
  color:#fff!important;
  border-right:1px solid #555!important;
  border-bottom:1px solid #111!important;
  border-radius:0!important;
}
.day-col{background:#fff!important;border-right:1px solid #cfcfcf!important}
.time-scale{background:#f2f2f2!important;border-right:1px solid #cfcfcf!important}
.hour-line{background:#dcdcdc!important}
.time-mark{color:#222!important;font-weight:700;font-size:12px}
/* Flat availability colors for interactive planner: green / yellow / red, without gradients */
.slot-ok,.slot-bad,.slot-limited{
  border-radius:0!important;
  opacity:1!important;
  pointer-events:none!important;
  box-shadow:none!important;
}
.slot-ok{background:var(--pl-green)!important;border:1px solid var(--pl-green)!important}
.slot-bad{background:var(--pl-red)!important;border:1px solid var(--pl-red)!important}
.slot-limited{background:var(--pl-yellow)!important;border:1px solid var(--pl-yellow)!important}
.hover-slot{border-radius:0!important;border:3px solid #000!important;background:transparent!important;box-shadow:none!important}
.hover-slot.wrong{border-color:#000!important;background:transparent!important}
.hover-slot.limited{border-color:#111!important;background:transparent!important}
.lesson-block,.ghost-block,.table-lesson{
  border-radius:0!important;
  box-shadow:none!important;
}
.lesson-block{
  border:1px solid #111!important;
  border-left:6px solid #111!important;
  background:#fff!important;
  color:#111!important;
}
.lesson-block b,.lesson-block span{color:#111!important}
.lesson-block.pending-entry{outline:3px solid var(--pl-green)!important;box-shadow:none!important}
.ghost-block{
  background:#e8e8e8!important;
  border:1px dashed #555!important;
  opacity:1!important;
  color:#111!important;
}
.lg.ok{background:var(--pl-green)!important;border:1px solid var(--pl-green)!important}
.lg.bad{background:var(--pl-red)!important;border:1px solid var(--pl-red)!important}
.lg.limited{background:var(--pl-yellow)!important;border:1px solid var(--pl-yellow)!important}
.lg.busy{background:#e8e8e8!important;border:1px dashed #555!important}
.schedule-table th,.makeup-table th{background:#000!important;color:#fff!important;border-radius:0!important}
.schedule-table,.makeup-table{border-radius:0!important}
.table-wrap{border-radius:0!important;box-shadow:none!important}
@media(max-width:1100px){
  .pl-topbar{padding:0 16px}.pl-topnav{gap:14px}.pl-brandbar{padding:18px 16px}.pl-mainnav{padding:0 16px;gap:24px}.wrap{padding:18px 16px}.pl-logo-mark{width:110px;height:56px;font-size:34px;border-width:6px}.pl-logo-text{font-size:18px}.planner-grid{min-width:1400px!important;grid-template-columns:64px repeat(7,190px)!important}.planner-top-panel > label{min-width:180px}.planner-top-panel > label select,.planner-top-panel > label input{min-width:180px}.editpanel{grid-template-columns:repeat(2,1fr)}
}

/* WBIA interface refinement v12: official logo, cleaner horizontal planner */
.pl-brandbar{
  min-height:126px!important;
  padding:22px 8.8vw 18px!important;
  gap:28px!important;
}
.pl-logo img{
  display:block;
  height:92px;
  max-width:min(620px,56vw);
  object-fit:contain;
}
.planner-title{
  margin-left:auto;
  text-align:right;
  border-left:1px solid #d6d6d6;
  padding-left:28px;
  min-width:210px;
}
.planner-title strong{
  display:block;
  font-size:26px;
  letter-spacing:.04em;
  color:#000;
  font-weight:900;
}
.planner-title span{
  display:block;
  color:#777;
  font-size:13px;
  margin-top:4px;
}
.pl-mainnav a{font-size:17px!important;text-transform:uppercase;}
.hero,.planner-hero{border-left:0!important;border-top:6px solid #000!important;background:#f6f6f6!important;}
.cards,.admin-grid{gap:14px!important}.card,.dash-card{padding:18px!important}.dash-card:hover,.rowlink:hover{outline:2px solid #000;outline-offset:-2px;border-color:#000!important;background:#fafafa!important}.adminnav.compact-adminnav{position:sticky;top:0;z-index:50}.adminnav.compact-adminnav a:hover{background:#e7e7e7}.adminnav.compact-adminnav a.strong:hover{background:#000}
/* Reduce vertical clutter in large planner */
.planner-top-panel{display:flex!important;align-items:flex-end;gap:10px;flex-wrap:wrap;background:#fff!important;border:1px solid #d7d7d7!important;padding:12px!important}.planner-top-panel h2{width:100%;margin:0 0 2px!important;font-size:17px!important}.planner-top-panel > label{margin:0!important;min-width:180px!important;flex:0 0 180px!important}.planner-top-panel > label select,.planner-top-panel > label input{min-width:0!important;width:100%!important;height:36px!important;padding:6px 8px!important}.live-lesson-card{flex:0 0 210px!important;margin:0!important;min-height:54px!important}.legend-live{flex:1 1 320px!important;min-width:260px!important;margin:0!important}.hintbox,.statusbox{flex:1 1 320px!important;min-width:240px!important;margin:0!important;padding:8px 10px!important}.editpanel{margin-top:10px!important;grid-template-columns:repeat(8,minmax(120px,1fr))!important;padding:12px!important;background:#fff!important}.editpanel button{height:38px;align-self:end}.planner-main.card{padding:10px!important}.planner-toolbar{position:sticky;left:0;background:#fff;z-index:30}.planner-grid{min-width:1900px!important;grid-template-columns:72px repeat(7,minmax(250px,1fr))!important}.day-head{font-size:13px!important}.lesson-block,.ghost-block{font-size:11px!important;padding:6px!important}.lesson-block b{font-size:12px!important}.lesson-block span,.ghost-block span{font-size:10px!important;line-height:1.25}.slot-ok,.slot-bad,.slot-limited{mix-blend-mode:normal!important}.slot-ok{background:#00843d!important}.slot-bad,.slot-limited{background:#c00000!important}.hover-slot,.hover-slot.wrong{background:rgba(0,0,0,.08)!important;border:3px solid #000!important}.table-wrap{max-width:100%;overflow:auto}.schedule-table{min-width:1300px!important}.schedule-table td{min-width:165px!important}.filter-card .filterbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.filter-card .filterbar label{min-width:180px}
@media(max-width:900px){.pl-topbar{height:auto;min-height:40px;align-items:flex-start;gap:8px;flex-direction:column;padding:8px 16px!important}.pl-topnav,.pl-toptools{gap:14px;flex-wrap:wrap}.pl-brandbar{padding:16px!important;align-items:flex-start;flex-direction:column}.pl-logo img{height:auto;max-width:94vw}.planner-title{text-align:left;border-left:0;border-top:1px solid #ddd;padding-left:0;padding-top:10px;margin-left:0}.pl-mainnav{padding:0 16px!important;gap:22px!important}.wrap{padding:16px!important}.editpanel{grid-template-columns:repeat(2,minmax(130px,1fr))!important}.planner-grid{min-width:1550px!important;grid-template-columns:64px repeat(7,210px)!important}}

/* v16: publiczny plan tabelaryczny 15 min, bez zmian w interaktywnym planerze */
.public-plan-shell{height:calc(100vh - 310px);min-height:460px;border:1px solid #cfd8e3;background:#fff;overflow:hidden}
.public-plan-scroll{height:100%;overflow:auto}
.public-schedule-table{width:100%;min-width:1320px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}
.public-schedule-table th{position:sticky;top:0;background:#0b2e59!important;color:#fff!important;z-index:5;height:38px;padding:7px 8px;border-right:1px solid rgba(255,255,255,.25)}
.public-schedule-table .hour-col{position:sticky;left:0;z-index:6;width:74px;min-width:74px;max-width:74px;background:#f2f5f8!important;color:#0b2e59!important;border-right:1px solid #cfd8e3;text-align:center}
.public-schedule-table th.hour-col{z-index:7;background:#0b2e59!important;color:#fff!important}
.public-schedule-table td{height:28px;min-height:28px;padding:2px 4px;border-right:1px solid #e1e7ef;border-bottom:1px solid #e8edf3;vertical-align:top;background:#fff}
.public-schedule-table tr:nth-child(4n+1) td{border-top:1px solid #b9c6d5}
.public-schedule-table tr:nth-child(4n+1) .hour-col{font-weight:700;background:#eaf0f6!important}
.slot-cell{position:relative}
.public-lesson-card{margin:0;padding:5px 6px;border-radius:4px;border:1px solid #0b2e59;border-left:4px solid #0b2e59;background:#f7fbff;box-shadow:none!important;line-height:1.2;min-height:24px;overflow:hidden}
.public-lesson-card .time{font-weight:700;color:#0b2e59;font-size:11px;margin-bottom:1px}
.public-lesson-card b{display:block;color:#0b2e59;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-lesson-card span,.public-lesson-card em{display:block;font-size:10.5px;color:#2f3f52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-selects{margin-top:14px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quick-grid label{font-weight:700;color:#0b2e59}.quick-grid select{margin-top:6px;width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:4px;padding:8px;background:#fff;color:#14213d}
@media(max-width:900px){.public-plan-shell{height:calc(100vh - 260px);min-height:420px}.quick-grid{grid-template-columns:1fr}.public-schedule-table{min-width:1050px}.public-schedule-table td{height:30px}.public-lesson-card span:nth-of-type(n+3){display:none}}

/* v17: publiczny plan jako stała siatka 15-minutowa; zajęcia przykrywają sloty, nie rozsuwają tabeli */
.public-plan-shell{
  height:calc(100vh - 300px)!important;
  min-height:520px!important;
  border:1px solid #d6d6d6!important;
  background:#fff!important;
  overflow:hidden!important;
}
.public-plan-scroll{
  height:100%!important;
  overflow:auto!important;
  background:#fff!important;
}
.public-grid-schedule{
  --time-col:72px;
  --slot-h:28px;
  display:grid;
  grid-template-columns:var(--time-col) repeat(7, minmax(174px, 1fr));
  grid-template-rows:38px repeat(var(--slot-count), var(--slot-h));
  min-width:1320px;
  position:relative;
  font-size:12px;
  background:#fff;
}
.public-grid-head{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  background:#111;
  color:#fff;
  border-right:1px solid #333;
  border-bottom:1px solid #111;
  font-weight:800;
  letter-spacing:.01em;
}
.public-grid-time-head{
  left:0;
  z-index:30;
  background:#000;
}
.public-grid-time{
  position:sticky;
  left:0;
  z-index:10;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:2px;
  background:#f4f4f4;
  color:#222;
  border-right:1px solid #cfcfcf;
  border-bottom:1px solid #ececec;
  font-size:11px;
  font-weight:700;
}
.public-grid-time.major{
  background:#e9e9e9;
  border-top:1px solid #bdbdbd;
}
.public-grid-cell{
  border-right:1px solid #eeeeee;
  border-bottom:1px solid #eeeeee;
  background:#fff;
  min-height:var(--slot-h);
}
.public-grid-cell.major{
  border-top:1px solid #c9c9c9;
  background:#fafafa;
}
.public-grid-event{
  z-index:12;
  margin:2px 4px;
  padding:5px 7px;
  border:1px solid #8f8f8f;
  border-left:5px solid #444;
  border-radius:3px;
  background:#f1f1f1;
  color:#202020;
  overflow:hidden;
  box-shadow:none!important;
  line-height:1.15;
  min-height:0;
}
.public-grid-event .event-time{
  font-size:10.5px;
  font-weight:800;
  color:#111;
  margin-bottom:2px;
}
.public-grid-event b{
  display:block;
  font-size:12px;
  color:#111;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-bottom:1px;
}
.public-grid-event span,.public-grid-event em{
  display:block;
  font-size:10.5px;
  color:#444;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.public-grid-event:hover{
  outline:2px solid #000;
  outline-offset:-2px;
  background:#e7e7e7;
}
@media(max-width:900px){
  .public-plan-shell{height:calc(100vh - 250px)!important;min-height:460px!important;}
  .public-grid-schedule{--slot-h:30px;min-width:1120px;grid-template-columns:64px repeat(7, 150px);}
  .public-grid-event{padding:4px 5px;margin:2px;}
  .public-grid-event span:nth-of-type(n+3){display:none;}
}

/* v19: estetyczna siatka 15-minutowa w planerze interaktywnym; bez żółtego i bez blokowania czasu przed zajęciami */
.planner-title p,
.planner-toolbar span{color:#4b5563!important}
.live-grid .day-col{
  background-color:#fbfbfc!important;
  background-image:
    repeating-linear-gradient(to bottom, rgba(17,24,39,.075) 0, rgba(17,24,39,.075) 1px, transparent 1px, transparent 30px),
    repeating-linear-gradient(to bottom, rgba(17,24,39,.13) 0, rgba(17,24,39,.13) 1px, transparent 1px, transparent 120px)!important;
}
.slot-ok,.slot-bad,.slot-limited{
  left:1px!important;
  right:1px!important;
  border-radius:0!important;
  box-shadow:none!important;
  mix-blend-mode:normal!important;
  pointer-events:none!important;
}
.slot-ok{
  background:rgba(75, 135, 92, .18)!important;
  border:1px solid rgba(75, 135, 92, .28)!important;
}
.slot-bad,.slot-limited{
  background:rgba(174, 73, 73, .16)!important;
  border:1px solid rgba(174, 73, 73, .24)!important;
}
.hover-slot{
  border-radius:2px!important;
  border:2px solid rgba(47,86,151,.78)!important;
  background:rgba(47,86,151,.08)!important;
  box-shadow:none!important;
}
.hover-slot.wrong{
  border-color:rgba(126,48,48,.78)!important;
  background:rgba(126,48,48,.08)!important;
}
.legend-live .lg.ok{background:rgba(75,135,92,.18)!important;border-color:rgba(75,135,92,.45)!important}
.legend-live .lg.bad{background:rgba(174,73,73,.16)!important;border-color:rgba(174,73,73,.40)!important}
.legend-live .lg.limited{display:none!important}
.lesson-block,.ghost-block{
  border-radius:4px!important;
  box-shadow:none!important;
}
.lesson-block.selected-context{
  background:#f1f4f7!important;
  border:1px solid #aeb8c2!important;
  border-left:4px solid #6b7280!important;
  color:#1f2937!important;
}
.lesson-block.teacher-only,.ghost-block.ghost-group{
  background:rgba(229,231,235,.72)!important;
  border:1px solid rgba(156,163,175,.65)!important;
  border-left:4px solid #9ca3af!important;
  color:#374151!important;
}
.live-lesson-card{
  background:#f3f4f6!important;
  border:1px solid #c7ccd1!important;
  color:#1f2937!important;
  border-radius:4px!important;
  box-shadow:none!important;
}
.secondary-action{background:#f4f5f6!important;color:#2d3436!important;border:1px solid #cfd4d9!important;border-radius:4px;padding:8px 12px;font-weight:600;cursor:pointer}
.secondary-action:hover:not(:disabled){background:#e9ecef!important}
.secondary-action:disabled{opacity:.45;cursor:not-allowed}
.danger-action{border:1px solid rgba(120,20,20,.35)!important;background:rgba(120,20,20,.08)!important;color:#6f1f1f!important}
.danger-action:hover{background:rgba(120,20,20,.14)!important}

/* v1.24: visible version, toast notifications, selection highlight and modal editing in interactive planner */
.version-badge{
  display:inline-block;
  margin-left:10px;
  padding:3px 8px;
  border:1px solid #111;
  background:#fff;
  color:#111;
  font-size:13px;
  font-weight:900;
  vertical-align:middle;
}
.toast-host{
  position:fixed;
  top:18px;
  right:18px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  gap:10px;
  width:min(520px, calc(100vw - 36px));
  pointer-events:none;
}
.planner-toast{
  pointer-events:auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:4px 12px;
  align-items:start;
  padding:14px 14px 13px;
  border:2px solid #111;
  background:#fff;
  color:#111;
  box-shadow:none;
  animation:toastIn .16s ease-out;
}
.planner-toast b{grid-column:1/2;font-size:14px;text-transform:uppercase;letter-spacing:.02em}
.planner-toast span{grid-column:1/2;font-size:14px;line-height:1.35;white-space:pre-wrap}
.planner-toast button{
  grid-column:2/3;
  grid-row:1/3;
  width:30px;
  height:30px;
  padding:0!important;
  background:#111!important;
  color:#fff!important;
  border:1px solid #111!important;
  font-size:20px;
  line-height:1;
}
.toast-error{border-color:#991b1b;background:#fff1f1;color:#450a0a}
.toast-error button{background:#991b1b!important;border-color:#991b1b!important}
.toast-ok{border-color:#14532d;background:#f0fdf4;color:#052e16}
.toast-ok button{background:#14532d!important;border-color:#14532d!important}
.toast-hide{opacity:0;transform:translateX(18px);transition:opacity .35s ease, transform .35s ease}
@keyframes toastIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
.lesson-edit-btn{
  position:absolute;
  top:4px;
  right:4px;
  z-index:4;
  padding:3px 6px!important;
  min-height:0!important;
  font-size:10px!important;
  line-height:1.1!important;
  background:#fff!important;
  color:#111!important;
  border:1px solid #111!important;
}
.lesson-edit-btn:hover{background:#111!important;color:#fff!important}
.lesson-block,.ghost-block{padding-right:54px!important;position:absolute!important}
.edit-modal{
  position:fixed!important;
  top:50%!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  z-index:9998!important;
  width:min(1180px, calc(100vw - 42px))!important;
  max-height:calc(100vh - 64px)!important;
  overflow:auto!important;
  background:#fff!important;
  border:3px solid #111!important;
  padding:16px!important;
  grid-template-columns:repeat(4,minmax(150px,1fr))!important;
}
.edit-modal:not(.hidden)::before{
  content:'';
  position:fixed;
  inset:-100vh;
  background:rgba(0,0,0,.32);
  z-index:-1;
}
.edit-modal h3{grid-column:1/-1!important;margin:0!important;font-size:20px!important;color:#111!important}
.edit-modal-note{grid-column:1/-1!important;margin:0 0 4px!important;color:#444!important;font-size:13px!important}
.edit-modal label{display:flex;flex-direction:column;gap:5px;font-weight:700;color:#111;font-size:12px}
.edit-modal input,.edit-modal select{width:100%!important;height:38px!important}
.edit-modal button{height:38px!important;align-self:end!important}
.danger-action{background:#991b1b!important;border-color:#991b1b!important;color:#fff!important}
@media(max-width:900px){.toast-host{top:10px;right:10px;width:calc(100vw - 20px)}.edit-modal{grid-template-columns:1fr!important;width:calc(100vw - 24px)!important}}


/* v1.24: wyraźne zaznaczenie wybranego kafelka i czytelniejsza edycja */
.lesson-block.selected-entry,
.ghost-block.selected-entry{
  outline:4px solid #111!important;
  outline-offset:2px!important;
  border-color:#111!important;
  background:#fff7cc!important;
  opacity:1!important;
  z-index:80!important;
}
.lesson-block.selected-entry::after,
.ghost-block.selected-entry::after{
  content:'WYBRANE';
  position:absolute;
  left:4px;
  bottom:4px;
  padding:2px 5px;
  background:#111;
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.03em;
}
.lesson-edit-btn{
  font-weight:900!important;
}
.edit-modal{
  z-index:10000!important;
}
.edit-modal:not(.hidden){
  display:grid!important;
}
.toast-host{z-index:11000!important;}

/* v1.25 compact planner UI */
.pl-topbar{min-height:28px!important;height:28px!important;padding:0 18px!important;font-size:11px!important;}
.pl-topnav,.pl-toptools{gap:12px!important;}
.pl-brandbar{padding:8px 18px!important;min-height:54px!important;}
.pl-logo img{max-height:42px!important;width:auto!important;}
.planner-title{padding-left:10px!important;margin-left:8px!important;}
.planner-title strong{font-size:15px!important;letter-spacing:.04em!important;}
.planner-title span{font-size:11px!important;}
.pl-mainnav{min-height:34px!important;padding:0 18px!important;gap:18px!important;font-size:12px!important;}
.adminnav.compact-adminnav{padding:5px 18px!important;gap:6px!important;font-size:11px!important;}
.adminnav.compact-adminnav a{padding:5px 8px!important;border-radius:5px!important;}
main.wrap{padding:8px 12px!important;}
footer{display:none!important;}
.compact-planner-title{padding:6px 10px!important;margin:0 0 6px!important;}
.compact-planner-title h1{font-size:18px!important;margin:0!important;line-height:1.15!important;}
.compact-planner-title p{font-size:11px!important;margin-top:2px!important;}
.version-badge{font-size:11px!important;padding:2px 6px!important;}
.planner-shell,.planner-shell-wide{display:block!important;}
.planner-compact-panel{display:flex!important;align-items:end!important;gap:8px!important;flex-wrap:nowrap!important;padding:6px 8px!important;margin-bottom:6px!important;position:relative!important;top:auto!important;overflow-x:auto!important;}
.planner-compact-panel h2{width:auto!important;flex:0 0 auto!important;font-size:13px!important;margin:0 4px 8px 0!important;}
.planner-compact-panel label{flex:0 0 210px!important;min-width:210px!important;margin:0!important;font-size:11px!important;}
.planner-compact-panel select,.planner-compact-panel input{height:29px!important;font-size:12px!important;padding:4px 7px!important;margin-top:2px!important;}
.add-lesson-btn{height:30px!important;white-space:nowrap!important;margin-bottom:0!important;background:#111!important;color:#fff!important;border:1px solid #111!important;border-radius:5px!important;padding:0 12px!important;font-size:12px!important;}
.compact-legend{flex:0 0 auto!important;margin:0!important;font-size:11px!important;white-space:nowrap!important;}
.compact-hint,.compact-status{display:none!important;}
.planner-main.card{height:calc(100vh - 158px)!important;padding:6px!important;overflow:hidden!important;}
.compact-toolbar{min-height:32px!important;margin-bottom:5px!important;padding:0!important;}
.compact-toolbar b{font-size:13px!important;}
.compact-toolbar span{font-size:11px!important;}
.planner-actions button{height:28px!important;padding:0 8px!important;font-size:11px!important;border-radius:5px!important;}
.planner-grid{height:calc(100vh - 205px)!important;overflow:auto!important;border-radius:6px!important;grid-template-rows:28px auto!important;}
.day-head{padding:6px!important;font-size:11px!important;}
.time-head{padding:6px!important;}
.time-mark{font-size:10px!important;right:4px!important;}
.lesson-block,.ghost-block{border-radius:5px!important;padding:3px 5px!important;font-size:10px!important;box-shadow:none!important;}
.lesson-block b,.ghost-block b{font-size:10px!important;line-height:1.12!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lesson-block span,.ghost-block span{font-size:9px!important;line-height:1.1!important;margin-top:1px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lesson-block small,.ghost-block small{display:none!important;}
.lesson-edit-btn{font-size:9px!important;padding:1px 4px!important;border-radius:4px!important;}
.slot-ok{background:rgba(80,151,99,.16)!important;border:1px solid rgba(80,151,99,.22)!important;}
.slot-bad,.slot-limited{background:rgba(190,90,90,.14)!important;border:1px solid rgba(190,90,90,.20)!important;}
.day-col{background-color:#fff!important;background-image:linear-gradient(to bottom, rgba(17,24,39,.035) 1px, transparent 1px)!important;background-size:100% 30px!important;}
.hour-line{background:rgba(17,24,39,.13)!important;}
body.placement-mode .planner-grid{outline:2px solid #111;outline-offset:-2px;}
body.placement-mode .day-col{cursor:crosshair!important;}
.compact-add-modal{position:fixed!important;inset:72px auto auto 50%!important;transform:translateX(-50%)!important;z-index:1000!important;width:min(900px,calc(100vw - 28px))!important;grid-template-columns:repeat(4,minmax(150px,1fr))!important;box-shadow:0 18px 60px rgba(0,0,0,.22)!important;border:1px solid #bdbdbd!important;}
.compact-add-modal h3,.compact-add-modal .edit-modal-note{grid-column:1/-1!important;}
.compact-preview{grid-column:1/-1!important;margin:0!important;background:#f3f4f6!important;color:#111!important;border:1px solid #d1d5db!important;box-shadow:none!important;}
@media(max-width:900px){.planner-main.card{height:calc(100vh - 178px)!important}.planner-grid{height:calc(100vh - 228px)!important}.compact-add-modal{grid-template-columns:1fr!important;inset:60px 10px auto 10px!important;transform:none!important;width:auto!important}.planner-compact-panel{flex-wrap:wrap!important}.planner-compact-panel label{flex:1 1 180px!important;min-width:180px!important}}
/* v1.27 clean workspace */
.compact-hidden{display:none!important}
.ultra-filter{padding:6px 8px!important;margin:4px 0 6px!important;border-radius:8px!important}
.compact-filterbar{gap:6px!important;align-items:end!important}
.compact-filterbar label{font-size:10px!important;margin:0!important}
.compact-filterbar select,.compact-filterbar input{min-height:26px!important;height:26px!important;font-size:12px!important;padding:2px 6px!important}
.ultra-quick{padding:6px 8px!important;margin-top:6px!important;border-radius:8px!important}
.ultra-quick .quick-grid{gap:8px!important}
.ultra-quick label{font-size:10px!important;margin:0!important}
.ultra-quick select{height:28px!important;font-size:12px!important;padding:2px 6px!important}
.planner-shell{margin-top:2px!important;gap:6px!important}
.planner-topbar,.planner-toolbar{padding:4px 6px!important;min-height:30px!important}
.planner-toolbar span,.planner-toolbar b{display:none!important}
.planner-actions{gap:4px!important}
.planner-actions button,.save-changes,.secondary-action,.lock-toggle{min-height:26px!important;padding:3px 7px!important;font-size:11px!important;border-radius:6px!important}
.planner-side,.planner-main,.card{border-radius:8px!important}
.planner-side{padding:6px!important}
.planner-side h2,.planner-side h3{margin:2px 0 4px!important;font-size:13px!important}
.planner-side label{font-size:10px!important;margin-bottom:4px!important}
.planner-side select,.planner-side input{height:26px!important;min-height:26px!important;font-size:12px!important;padding:2px 6px!important}
.live-lesson-card{padding:5px!important;font-size:11px!important;min-height:28px!important}
.public-schedule-wrap,.schedule-grid-wrap{margin-top:4px!important}
.schedule-card,.schedule-grid-card{padding:6px!important;border-radius:8px!important}
.public-slot{height:18px!important;min-height:18px!important}
.public-lesson-card{background:#f1f3f5!important;border:1px solid #cfd6dd!important;color:#1f2933!important;border-left:3px solid #788897!important;box-shadow:none!important}
.public-lesson-card b{font-size:11px!important}.public-lesson-card span{font-size:10px!important}


/* v1.28 clean UI + fixed planner header alignment */
.hero p,.planner-hero p,.dash-card span,.edit-modal-note{display:none!important;}
.dashboard-grid-clean .dash-card{min-height:54px!important;padding:14px 16px!important;display:flex!important;align-items:center!important;}
.dashboard-grid-clean .dash-card b{margin:0!important;font-size:15px!important;}
.clean-title{padding:8px 10px!important;margin:0 0 6px!important;border:0!important;background:transparent!important;}
.clean-title h1{font-size:18px!important;margin:0!important;line-height:1.1!important;}
.compact-hidden{display:none!important;}
.planner-grid{grid-template-rows:32px auto!important;align-items:stretch!important;}
.time-head,.day-head{height:32px!important;line-height:18px!important;position:relative!important;z-index:20!important;}
.time-scale,.day-col{grid-row:2!important;}
.time-mark{transform:none!important;top:auto;line-height:1!important;padding-top:2px!important;}
.planner-main.card{height:calc(100vh - 150px)!important;}
.planner-grid{height:calc(100vh - 194px)!important;}
.planner-compact-panel{padding:4px 6px!important;margin-bottom:4px!important;}
.planner-compact-panel h2{display:none!important;}
.planner-compact-panel label{font-size:10px!important;}
.planner-toolbar{min-height:28px!important;margin-bottom:4px!important;}
.planner-actions button{height:26px!important;font-size:10px!important;}

/* v1.29 public preview: sidebar filters + denser 15-minute grid */
.public-layout-v129{
  display:grid!important;
  grid-template-columns:190px minmax(0,1fr)!important;
  gap:8px!important;
  height:calc(100vh - 116px)!important;
  min-height:520px!important;
  overflow:hidden!important;
}
.public-sidebar-v129{
  border:1px solid #d1d5db!important;
  background:#f7f7f7!important;
  padding:8px!important;
  overflow:auto!important;
}
.public-filter-v129,
.public-jump-v129{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
}
.public-jump-v129{margin-top:10px!important;padding-top:10px!important;border-top:1px solid #d1d5db!important;}
.public-sidebar-v129 label{
  margin:0!important;
  color:#111!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.1!important;
}
.public-sidebar-v129 select{
  margin-top:2px!important;
  width:100%!important;
  height:25px!important;
  min-height:25px!important;
  padding:1px 5px!important;
  font-size:11px!important;
  border:1px solid #b8c0ca!important;
  background:#fff!important;
}
.public-content-v129{min-width:0!important;overflow:hidden!important;}
.public-content-v129 .public-plan-shell{
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  border:1px solid #d1d5db!important;
}
.public-content-v129 .public-grid-schedule{
  --slot-h:14px!important;
  --time-col:58px!important;
  grid-template-rows:30px repeat(var(--slot-count), var(--slot-h))!important;
  grid-template-columns:var(--time-col) repeat(7, minmax(150px, 1fr))!important;
  min-width:1180px!important;
  font-size:10px!important;
}
.public-content-v129 .public-grid-head{
  height:30px!important;
  padding:0 5px!important;
  font-size:11px!important;
}
.public-content-v129 .public-grid-time{
  font-size:9px!important;
  padding-top:0!important;
  align-items:flex-start!important;
}
.public-content-v129 .public-grid-cell{
  min-height:14px!important;
}
.public-content-v129 .public-grid-event{
  margin:1px 2px!important;
  padding:2px 4px!important;
  border-radius:3px!important;
  border:1px solid #c8d0d8!important;
  border-left:3px solid #6f7d8b!important;
  background:#f2f3f5!important;
  color:#1f2933!important;
  box-shadow:none!important;
  overflow:hidden!important;
  line-height:1.06!important;
  z-index:12!important;
}
.public-content-v129 .public-grid-event .event-time{
  font-size:8px!important;
  color:#495461!important;
  margin-bottom:0!important;
}
.public-content-v129 .public-grid-event b{
  display:block!important;
  font-size:9.5px!important;
  color:#111827!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.public-content-v129 .public-grid-event span,
.public-content-v129 .public-grid-event em{
  display:block!important;
  font-size:8.5px!important;
  color:#4b5563!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-style:normal!important;
}
.public-content-v129 .public-grid-event span:nth-of-type(n+3),
.public-content-v129 .public-grid-event em{display:none!important;}
@media(max-width:900px){
  .public-layout-v129{grid-template-columns:1fr!important;height:auto!important;overflow:visible!important;}
  .public-sidebar-v129{position:static!important;display:block!important;}
  .public-filter-v129,.public-jump-v129{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .public-content-v129 .public-plan-shell{height:calc(100vh - 190px)!important;min-height:420px!important;}
  .public-content-v129 .public-grid-schedule{min-width:980px!important;grid-template-columns:52px repeat(7,140px)!important;}
}


/* v1.30 fixes */
.public-plan-layout{
    display:flex;
    gap:12px;
    align-items:flex-start;
}

.public-sidebar{
    width:220px;
    min-width:220px;
    position:sticky;
    top:8px;
    background:#f5f6f8;
    border-right:1px solid #d9dde3;
    padding:8px;
    height:calc(100vh - 20px);
}

.public-content{
    flex:1;
    overflow:auto;
}

.public-sidebar label{
    margin:4px 0;
    font-size:12px;
}

.public-grid-schedule{
    font-size:11px;
}

.public-grid-head{
    min-height:24px !important;
    height:24px !important;
    line-height:24px !important;
    position:sticky;
    top:0;
    z-index:20;
    background:#eef1f5;
}

.public-grid-time,
.public-grid-cell{
    min-height:14px !important;
    height:14px !important;
    padding:0 !important;
}

.public-grid-event{
    border-radius:4px !important;
    padding:2px 4px !important;
    font-size:10px !important;
    background:#dfe3e8 !important;
    border-left:3px solid #6c7785 !important;
    box-shadow:none !important;
}

.public-grid-event span,
.public-grid-event em,
.public-grid-event b{
    line-height:1.1 !important;
}


/* v1.32 stable fixes */
.public-layout-v129{
  display:grid!important;
  grid-template-columns:190px minmax(0,1fr)!important;
  gap:8px!important;
  height:calc(100vh - 88px)!important;
  overflow:hidden!important;
}
.public-sidebar-v129{
  grid-column:1!important;
  position:relative!important;
  height:100%!important;
  min-width:0!important;
  width:auto!important;
  background:#f4f5f6!important;
  border:1px solid #d5d9de!important;
}
.public-content-v129{
  grid-column:2!important;
  min-width:0!important;
  overflow:hidden!important;
}
.public-plan-shell{
  height:100%!important;
  min-height:0!important;
  border:1px solid #d5d9de!important;
  background:#fff!important;
  overflow:hidden!important;
}
.public-plan-scroll{
  height:100%!important;
  overflow:auto!important;
}
.public-grid-schedule{
  --slot-h:14px!important;
  --time-col:58px!important;
  display:grid!important;
  grid-template-columns:var(--time-col) repeat(7, minmax(148px, 1fr))!important;
  grid-template-rows:28px repeat(var(--slot-count), var(--slot-h))!important;
  min-width:1120px!important;
  font-size:10px!important;
  position:relative!important;
  background:#fff!important;
}
.public-grid-head{
  height:28px!important;
  min-height:28px!important;
  padding:0 5px!important;
  background:#2b3138!important;
  color:#fff!important;
  font-size:10px!important;
  line-height:28px!important;
  z-index:30!important;
}
.public-grid-time{
  min-height:14px!important;
  height:14px!important;
  font-size:8px!important;
  background:#f3f4f6!important;
}
.public-grid-cell{
  min-height:14px!important;
  height:14px!important;
  border-right:1px solid #eceff3!important;
  border-bottom:1px solid #f0f2f5!important;
}
.public-grid-cell.major{border-top:1px solid #d8dde4!important;}
.public-grid-event{
  margin:1px 2px!important;
  padding:1px 4px!important;
  border-radius:3px!important;
  background:#e7e9ec!important;
  border:1px solid #c8cdd3!important;
  border-left:3px solid #6f7882!important;
  color:#1f252c!important;
  overflow:hidden!important;
  z-index:20!important;
  box-shadow:none!important;
  line-height:1.04!important;
}
.public-grid-event .event-time{font-size:8px!important;color:#4b5563!important;}
.public-grid-event b{display:block!important;font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.public-grid-event span,.public-grid-event em{display:block!important;font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-style:normal!important;color:#4b5563!important;}
.public-grid-event span:nth-of-type(n+3),.public-grid-event em{display:none!important;}

.planner-grid.live-grid{
  grid-template-rows:34px auto!important;
}
.planner-grid.live-grid .time-head,
.planner-grid.live-grid .day-head{
  min-height:34px!important;
  height:34px!important;
  padding:6px 4px!important;
  position:sticky!important;
  top:0!important;
  z-index:80!important;
}
.planner-grid.live-grid .time-scale,
.planner-grid.live-grid .day-col{
  grid-row:2!important;
}
.planner-side-v132{
  display:grid!important;
  grid-template-columns:130px 210px 210px 170px auto!important;
  gap:6px!important;
  align-items:end!important;
}
.planner-side-v132 label{font-size:10px!important;margin:0!important;}
.planner-side-v132 select,
.planner-side-v132 input{
  height:26px!important;
  min-height:26px!important;
  padding:2px 5px!important;
  font-size:11px!important;
}
.planner-side-v132 .add-lesson-btn{height:26px!important;margin:0!important;padding:2px 8px!important;}
@media(max-width:900px){
  .public-layout-v129{grid-template-columns:1fr!important;height:auto!important;overflow:visible!important;}
  .public-sidebar-v129{height:auto!important;}
  .planner-side-v132{grid-template-columns:1fr 1fr!important;}
}

/* v1.35 public preview: compact group/filter selector above schedule */
.public-layout-v129{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  height:calc(100vh - 116px)!important;
  min-height:520px!important;
  overflow:hidden!important;
}
.public-sidebar-v129{
  flex:0 0 auto!important;
  width:auto!important;
  max-width:none!important;
  border:1px solid #d1d5db!important;
  background:#f7f7f7!important;
  padding:5px 6px!important;
  overflow:visible!important;
}
.public-filter-v129,
.public-jump-v129{
  display:flex!important;
  flex-direction:row!important;
  align-items:end!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.public-jump-v129{
  margin-top:4px!important;
}
.public-sidebar-v129 label{
  flex:0 0 auto!important;
  min-width:110px!important;
  max-width:180px!important;
  margin:0!important;
  font-size:9px!important;
  line-height:1!important;
  color:#111!important;
  font-weight:800!important;
}
.public-sidebar-v129 label:has(select[name="group_id"]){
  min-width:145px!important;
  max-width:230px!important;
}
.public-sidebar-v129 select{
  margin-top:1px!important;
  width:100%!important;
  height:22px!important;
  min-height:22px!important;
  padding:1px 4px!important;
  font-size:10px!important;
  border:1px solid #b8c0ca!important;
  background:#fff!important;
  border-radius:3px!important;
}
.public-content-v129{
  flex:1 1 auto!important;
  min-height:0!important;
  min-width:0!important;
  overflow:hidden!important;
}
.public-content-v129 .public-plan-shell{
  height:100%!important;
  min-height:0!important;
  margin:0!important;
}
.public-content-v129 .public-grid-schedule{
  min-width:1120px!important;
}
@media(max-width:900px){
  .public-layout-v129{height:auto!important;min-height:0!important;overflow:visible!important;}
  .public-sidebar-v129{position:static!important;}
  .public-filter-v129,.public-jump-v129{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
  .public-sidebar-v129 label{min-width:0!important;max-width:none!important;}
  .public-content-v129 .public-plan-shell{height:calc(100vh - 170px)!important;min-height:420px!important;}
}

/* v1.36 public preview: filters restored as compact LEFT sidebar next to schedule table */
.public-layout-v129{
  display:grid!important;
  grid-template-columns:156px minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  gap:8px!important;
  height:calc(100vh - 96px)!important;
  min-height:520px!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
.public-sidebar-v129{
  grid-column:1!important;
  grid-row:1!important;
  width:156px!important;
  min-width:156px!important;
  max-width:156px!important;
  height:100%!important;
  overflow:auto!important;
  position:relative!important;
  border:1px solid #d1d5db!important;
  background:#f7f7f7!important;
  padding:7px!important;
}
.public-content-v129{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
}
.public-filter-v129,
.public-jump-v129{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
.public-jump-v129{
  margin-top:10px!important;
  padding-top:10px!important;
  border-top:1px solid #d1d5db!important;
}
.public-sidebar-v129 label,
.public-sidebar-v129 label:has(select[name="group_id"]){
  flex:0 0 auto!important;
  min-width:0!important;
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  font-size:10px!important;
  line-height:1.05!important;
  color:#111!important;
  font-weight:800!important;
}
.public-sidebar-v129 select{
  width:100%!important;
  height:24px!important;
  min-height:24px!important;
  margin-top:2px!important;
  padding:1px 4px!important;
  font-size:10px!important;
  border:1px solid #b8c0ca!important;
  background:#fff!important;
  border-radius:3px!important;
}
.public-content-v129 .public-plan-shell{
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  border:1px solid #d1d5db!important;
  overflow:hidden!important;
}
.public-content-v129 .public-plan-scroll{
  height:100%!important;
  overflow:auto!important;
}
@media(max-width:900px){
  .public-layout-v129{
    display:grid!important;
    grid-template-columns:1fr!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .public-sidebar-v129{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    position:static!important;
    overflow:visible!important;
  }
  .public-filter-v129,.public-jump-v129{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .public-content-v129 .public-plan-shell{
    height:calc(100vh - 180px)!important;
    min-height:420px!important;
  }
}

/* v1.37 public plan: hard two-column split at schedule area */
body .wrap > .public-layout-v129{
  display:grid!important;
  grid-template-columns:220px minmax(0,1fr)!important;
  grid-template-areas:"filters schedule"!important;
  column-gap:12px!important;
  row-gap:0!important;
  width:100%!important;
  height:calc(100vh - 104px)!important;
  min-height:560px!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
body .wrap > .public-layout-v129 > .public-sidebar-v129{
  grid-area:filters!important;
  display:block!important;
  width:220px!important;
  min-width:220px!important;
  max-width:220px!important;
  height:100%!important;
  min-height:0!important;
  overflow:auto!important;
  padding:12px!important;
  background:#f4f4f4!important;
  border:1px solid #cfcfcf!important;
  border-left:5px solid #000!important;
}
body .wrap > .public-layout-v129 > .public-content-v129{
  grid-area:schedule!important;
  display:block!important;
  min-width:0!important;
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
}
body .wrap > .public-layout-v129 .public-filter-v129,
body .wrap > .public-layout-v129 .public-jump-v129{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
body .wrap > .public-layout-v129 .public-jump-v129{
  margin-top:16px!important;
  padding-top:14px!important;
  border-top:1px solid #cfcfcf!important;
}
body .wrap > .public-layout-v129 .public-sidebar-v129 label,
body .wrap > .public-layout-v129 .public-sidebar-v129 label:has(select[name="group_id"]){
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  font-size:11px!important;
  line-height:1.15!important;
  font-weight:800!important;
  color:#111!important;
}
body .wrap > .public-layout-v129 .public-sidebar-v129 select,
body .wrap > .public-layout-v129 .public-sidebar-v129 input{
  display:block!important;
  width:100%!important;
  height:30px!important;
  min-height:30px!important;
  margin-top:4px!important;
  padding:3px 6px!important;
  font-size:12px!important;
  border:1px solid #9ca3af!important;
  background:#fff!important;
  border-radius:0!important;
}
body .wrap > .public-layout-v129 .public-content-v129 .public-plan-shell{
  height:100%!important;
  min-height:0!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #cfcfcf!important;
  background:#fff!important;
}
body .wrap > .public-layout-v129 .public-content-v129 .public-plan-scroll{
  height:100%!important;
  width:100%!important;
  overflow:auto!important;
}
body .wrap > .public-layout-v129 .public-content-v129 .public-grid-schedule{
  min-width:1280px!important;
  height:auto!important;
}
@media(max-width:900px){
  body .wrap > .public-layout-v129{
    grid-template-columns:1fr!important;
    grid-template-areas:"filters" "schedule"!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  body .wrap > .public-layout-v129 > .public-sidebar-v129{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    overflow:visible!important;
  }
  body .wrap > .public-layout-v129 .public-filter-v129,
  body .wrap > .public-layout-v129 .public-jump-v129{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body .wrap > .public-layout-v129 > .public-content-v129{
    height:calc(100vh - 210px)!important;
    min-height:420px!important;
  }
}

/* v1.38: REAL two-column public schedule layout; overrides old v1.29-v1.37 public preview rules */
body main.wrap > .public-plan-two-col{
  display:grid!important;
  grid-template-columns:210px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:stretch!important;
  width:100%!important;
  height:calc(100vh - 104px)!important;
  min-height:560px!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}
body main.wrap > .public-plan-two-col > .public-plan-filters-col{
  grid-column:1!important;
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
  height:100%!important;
  overflow:auto!important;
  background:#f4f4f4!important;
  border:1px solid #c9c9c9!important;
  border-left:4px solid #111!important;
  padding:10px!important;
}
body main.wrap > .public-plan-two-col > .public-plan-table-col{
  grid-column:2!important;
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.public-filter-box{display:block!important;margin:0!important;padding:0!important;}
.public-filter-box-secondary{margin-top:16px!important;padding-top:12px!important;border-top:1px solid #c9c9c9!important;}
.public-filter-title{font-size:12px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.04em!important;margin:0 0 8px!important;color:#111!important;}
.public-filter-form{display:block!important;margin:0!important;padding:0!important;}
.public-plan-filters-col label{display:block!important;width:100%!important;margin:0 0 9px!important;padding:0!important;font-size:11px!important;line-height:1.15!important;font-weight:800!important;color:#111!important;}
.public-plan-filters-col select,.public-plan-filters-col input{display:block!important;width:100%!important;min-width:0!important;height:30px!important;min-height:30px!important;margin:4px 0 0!important;padding:3px 6px!important;border:1px solid #9ca3af!important;border-radius:0!important;background:#fff!important;color:#111!important;font-size:12px!important;}
.public-plan-table-col .public-plan-shell{flex:1 1 auto!important;height:auto!important;min-height:0!important;width:100%!important;margin:0!important;border:1px solid #c9c9c9!important;overflow:hidden!important;background:#fff!important;}
.public-plan-table-col .public-plan-scroll{height:100%!important;width:100%!important;overflow:auto!important;}
.public-current-title{flex:0 0 auto!important;background:#fff!important;border:1px solid #c9c9c9!important;border-bottom:0!important;padding:6px 8px!important;font-size:13px!important;color:#111!important;}
.public-plan-table-col .public-grid-schedule{min-width:1280px!important;}
/* Disable previous wrappers if old template/class remains anywhere */
.public-layout-v129{display:grid!important;}
@media(max-width:900px){
  body main.wrap > .public-plan-two-col{grid-template-columns:1fr!important;height:auto!important;min-height:0!important;overflow:visible!important;}
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{width:100%!important;min-width:0!important;max-width:none!important;height:auto!important;overflow:visible!important;}
  body main.wrap > .public-plan-two-col > .public-plan-table-col{height:calc(100vh - 220px)!important;min-height:420px!important;}
  .public-filter-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
}

/* v1.39 interactive planner: horizontal action buttons + stable compact context row */
.planner-toolbar > .planner-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  width:auto!important;
}
.planner-toolbar > .planner-actions button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
  margin:0!important;
}
.planner-toolbar.compact-toolbar{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.planner-toolbar.compact-toolbar > div:first-child{
  flex:1 1 auto!important;
  min-width:0!important;
}
.planner-side-v132{
  display:grid!important;
  grid-template-columns:minmax(90px,130px) minmax(210px,1.35fr) minmax(190px,1fr) minmax(165px,.8fr) auto!important;
  align-items:end!important;
  gap:6px!important;
  overflow:visible!important;
}
.planner-side-v132 > label{
  display:grid!important;
  grid-template-rows:auto 26px!important;
  gap:2px!important;
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  line-height:1.1!important;
}
.planner-side-v132 > label select,
.planner-side-v132 > label input{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.planner-side-v132 .add-lesson-btn{
  align-self:end!important;
  white-space:nowrap!important;
}
.planner-side-v132 .hintbox,
.planner-side-v132 .statusbox{
  grid-column:1/-1!important;
  margin:3px 0 0!important;
  padding:5px 8px!important;
  min-width:0!important;
  font-size:11px!important;
  line-height:1.25!important;
}
.planner-side-v132 .compact-hidden{
  display:none!important;
}
@media(max-width:1100px){
  .planner-toolbar > .planner-actions{justify-content:flex-start!important;}
  .planner-side-v132{grid-template-columns:1fr 1fr!important;}
  .planner-side-v132 .add-lesson-btn{grid-column:1/-1!important;justify-self:start!important;}
}

/* v1.40: public preview tree navigation + visible room labels */
body main.wrap > .public-plan-two-col > .public-plan-filters-col{
  width:260px!important;
  min-width:260px!important;
  max-width:260px!important;
}
.public-tree{display:block!important;font-size:12px!important;line-height:1.2!important;}
.public-tree details{margin:0!important;padding:0!important;}
.public-tree summary{cursor:pointer!important;list-style:none!important;display:block!important;padding:7px 8px!important;border-bottom:1px solid #d7d7d7!important;font-weight:800!important;color:#111!important;background:#f4f4f4!important;}
.public-tree summary::-webkit-details-marker{display:none!important;}
.public-tree summary:before{content:'▸';display:inline-block;width:14px!important;color:#333!important;}
.public-tree details[open] > summary:before{content:'▾';}
.public-tree .tree-year summary{padding-left:18px!important;background:#fafafa!important;font-weight:750!important;}
.public-tree .tree-semester summary{padding-left:30px!important;background:#fff!important;font-weight:700!important;}
.tree-groups{padding:4px 0 6px 0!important;background:#fff!important;border-bottom:1px solid #e2e2e2!important;}
.tree-group-link{display:block!important;padding:6px 8px 6px 46px!important;text-decoration:none!important;color:#111!important;border-left:4px solid transparent!important;font-size:12px!important;}
.tree-group-link:hover{background:#eef4ff!important;border-left-color:#174ea6!important;}
.tree-group-link.active{background:#174ea6!important;color:#fff!important;border-left-color:#0b2e59!important;font-weight:900!important;}
.public-grid-event em,
.public-plan-table-col .public-grid-event em{
  display:block!important;
  margin-top:1px!important;
  font-size:8px!important;
  font-weight:900!important;
  color:#0b2e59!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.public-grid-event span:nth-of-type(n+3){display:none!important;}
@media(max-width:900px){
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{width:100%!important;min-width:0!important;max-width:none!important;}
}


/* v1.43: widoczne konflikty wybranej sali w interaktywnym planerze */
.ghost-block.room-conflict,
.lesson-block.room-conflict{
  background:rgba(190, 40, 40, .22)!important;
  border:1px solid rgba(160, 25, 25, .65)!important;
  border-left:5px solid #b00000!important;
  color:#3b0a0a!important;
  opacity:1!important;
  z-index:4!important;
}
.ghost-block.room-conflict b,
.ghost-block.room-conflict span{
  color:#3b0a0a!important;
}
.ghost-block.room-conflict::before{
  content:"KOLIZJA SALI";
  display:block;
  font-size:8px;
  font-weight:800;
  letter-spacing:.04em;
  color:#7f0000;
  margin-bottom:1px;
}

/* v1.44: widoczny typ zajęć i uwagi na kafelkach planu */
.event-kind, .lesson-kind{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:2px 7px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-size:11px;font-weight:800;line-height:1.15;text-transform:uppercase;letter-spacing:.025em}
.event-notes, .lesson-notes{display:block;margin-top:3px;padding-top:3px;border-top:1px dashed rgba(15,23,42,.18);font-size:11px;line-height:1.2;color:#334155;font-weight:700}
.room-conflict .lesson-kind{background:#fee2e2;color:#991b1b}
.lesson-block .lesson-notes,.ghost-block .lesson-notes{font-size:10px;line-height:1.15;opacity:.95}

/* v1.45: after adding lesson form, keep previous public-plan details visible. Earlier compact rules hid span:nth-of-type(n+3), which removed teacher/group/room. */
.public-grid-event span,
.public-grid-event em,
.public-plan-table-col .public-grid-event span,
.public-plan-table-col .public-grid-event em,
.public-plan-content .public-grid-event span,
.public-plan-content .public-grid-event em{
  display:block!important;
}
.public-grid-event .event-kind{
  display:inline-flex!important;
}
.public-grid-event .event-teacher,
.public-grid-event .event-room,
.public-grid-event .event-group{
  display:block!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.public-grid-event{
  min-height:74px;
}
.lesson-block span,
.ghost-block span,
.lesson-block small,
.ghost-block small{
  display:block!important;
}
.status{display:inline-block;padding:3px 8px;border-radius:999px;font-weight:700;font-size:12px;background:#e5e7eb;color:#111827}
.status-pending{background:#fff3cd;color:#7a5600}.status-approved{background:#d1fae5;color:#065f46}.status-rejected{background:#fee2e2;color:#991b1b}.status-expired{background:#e5e7eb;color:#374151}
.actions-cell form{margin:2px 0}.actions-cell input{max-width:170px}
.one-off-list{margin:0;padding-left:18px}.reservation-badge{display:inline-block;margin:2px 0;padding:4px 8px;border-radius:8px;background:#eef2ff;border:1px solid #c7d2fe}


/* v1.52: widoczny modul rezerwacji sal */
.reservation-link{background:#fff3cd!important;border-color:#f59e0b!important;color:#111827!important}
.reservation-dash-card{border:2px solid #f59e0b!important;background:#fff7ed!important}
.reservation-dash-card span{display:block;margin-top:6px;font-size:13px;color:#6b7280;font-weight:400}
.reservation-home-card{border-left:6px solid #f59e0b}
.btn.secondary{background:#eef2ff;color:#111827}
.status-pending{background:#fff7ed;border:1px solid #f59e0b;padding:3px 8px;border-radius:8px}
.status-approved{background:#ecfdf5;border:1px solid #10b981;padding:3px 8px;border-radius:8px}
.status-rejected,.status-expired{background:#f3f4f6;border:1px solid #9ca3af;padding:3px 8px;border-radius:8px}
.event-week,.lesson-week{display:inline-block;margin-top:3px;padding:2px 6px;border-radius:999px;background:#eef2ff;border:1px solid #c7d2fe;color:#1e3a8a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}

/* v1.55: widok publiczny z podziałem każdego dnia na tydzień I i tydzień II */
.public-grid-schedule.public-grid-schedule-split{
  --slot-h:14px!important;
  --time-col:58px!important;
  display:grid!important;
  grid-template-columns:var(--time-col) repeat(var(--day-pair-count), minmax(84px, 1fr))!important;
  grid-template-rows:28px 22px repeat(var(--slot-count), var(--slot-h))!important;
  min-width:calc(var(--time-col) + var(--day-pair-count) * 92px)!important;
}
.public-grid-schedule-split .public-grid-time-head{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:50px!important;
  min-height:50px!important;
  line-height:1!important;
}
.public-grid-schedule-split .public-grid-day-head{
  text-align:center!important;
  border-right:2px solid rgba(255,255,255,.35)!important;
}
.public-grid-schedule-split .public-grid-week-head{
  height:22px!important;
  min-height:22px!important;
  line-height:22px!important;
  font-size:9px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
  background:#3b4652!important;
  color:#fff!important;
  text-align:center!important;
}
.public-grid-schedule-split .week1-cell{
  background:#ffffff!important;
}
.public-grid-schedule-split .week2-cell{
  background:#fbfcfe!important;
  border-right:2px solid #d8dde4!important;
}
.public-grid-schedule-split .public-grid-event.week-both,
.public-grid-schedule-split .public-grid-event.week-{
  border-left-color:#174ea6!important;
  background:#eaf2ff!important;
}
.public-grid-schedule-split .public-grid-event.week-week1{
  border-left-color:#2563eb!important;
  background:#eef5ff!important;
}
.public-grid-schedule-split .public-grid-event.week-week2{
  border-left-color:#7c3aed!important;
  background:#f5f0ff!important;
}
.public-grid-schedule-split .public-grid-event{
  min-height:58px!important;
}
.public-grid-schedule-split .event-week{
  display:inline-block!important;
  width:max-content!important;
  max-width:100%!important;
  padding:1px 5px!important;
  margin-top:1px!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.08)!important;
  color:#111827!important;
  font-weight:900!important;
}
@media(max-width:900px){
  .public-grid-schedule.public-grid-schedule-split{min-width:calc(52px + var(--day-pair-count) * 78px)!important;grid-template-columns:52px repeat(var(--day-pair-count),78px)!important;}
}

/* v1.55: interaktywny planer — wizualny podział kolumn dnia na tydzień I / II */
.day-col{
  background-image:
    linear-gradient(to right, transparent calc(50% - 1px), rgba(15,23,42,.28) calc(50% - 1px), rgba(15,23,42,.28) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(to bottom, rgba(17,24,39,.035) 1px, transparent 1px)!important;
  background-size:100% 100%, 100% 30px!important;
}
.day-col::before,
.day-col::after{
  position:absolute;
  top:2px;
  z-index:2;
  font-size:9px;
  font-weight:900;
  color:#64748b;
  background:rgba(255,255,255,.82);
  padding:1px 4px;
  border-radius:999px;
  pointer-events:none;
}
.day-col::before{content:'tydz. I';left:6px;}
.day-col::after{content:'tydz. II';right:6px;}
.lesson-block.week-week1,.ghost-block.week-week1{left:4px!important;right:calc(50% + 4px)!important;}
.lesson-block.week-week2,.ghost-block.week-week2{left:calc(50% + 4px)!important;right:4px!important;}
.lesson-block.week-both,.ghost-block.week-both{left:6px!important;right:6px!important;}
.lesson-week{font-weight:900;color:#334155!important;}

/* v1.56: powiększanie kafelków planu po najechaniu i pokazanie pełnych danych */
.public-grid-schedule,
.planner-grid,
.day-col{
  overflow:visible!important;
}
.public-plan-scroll,
.planner-main{
  overflow:auto!important;
}
.lesson-block,
.ghost-block,
.public-grid-event{
  transition:transform .16s ease, box-shadow .16s ease, min-height .16s ease, max-height .16s ease!important;
  transform-origin:top center!important;
}
.lesson-block:hover,
.ghost-block:hover{
  z-index:9999!important;
  overflow:visible!important;
  height:auto!important;
  min-height:132px!important;
  max-height:none!important;
  transform:scale(1.10)!important;
  background:#fff!important;
  box-shadow:0 16px 38px rgba(15,23,42,.28)!important;
  border:2px solid #111!important;
  padding:10px!important;
}
.lesson-block:hover b,
.lesson-block:hover span,
.lesson-block:hover small,
.ghost-block:hover b,
.ghost-block:hover span,
.ghost-block:hover small{
  display:block!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.25!important;
  color:#111!important;
  opacity:1!important;
}
.lesson-block:hover .lesson-edit-btn,
.ghost-block:hover .lesson-edit-btn{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}
.public-grid-event:hover{
  z-index:9999!important;
  overflow:visible!important;
  min-height:145px!important;
  max-height:none!important;
  transform:scale(1.12)!important;
  background:#fff!important;
  box-shadow:0 18px 42px rgba(15,23,42,.30)!important;
  border:2px solid #111!important;
  padding:10px!important;
}
.public-grid-event:hover b,
.public-grid-event:hover span,
.public-grid-event:hover em,
.public-grid-event:hover small,
.public-grid-event:hover .event-time,
.public-grid-event:hover .event-kind,
.public-grid-event:hover .event-week,
.public-grid-event:hover .event-teacher,
.public-grid-event:hover .event-group,
.public-grid-event:hover .event-room,
.public-grid-event:hover .event-notes{
  display:block!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.25!important;
  color:#111!important;
  font-style:normal!important;
}
.public-grid-event:hover .event-time{
  font-weight:900!important;
}
.public-grid-event:hover b{
  font-size:13px!important;
  margin:2px 0!important;
}
.public-grid-event:hover .event-week{
  display:inline-block!important;
  width:max-content!important;
}
@media(max-width:900px){
  .lesson-block:hover,.ghost-block:hover,.public-grid-event:hover{transform:scale(1.04)!important;}
}

/* v1.58: główny podział drzewa grup na tryb studiów */
.public-tree .tree-mode > summary{background:#102a43!important;color:#fff!important;font-size:13px!important;letter-spacing:.01em!important;border-bottom:1px solid #264967!important;}
.public-tree .tree-mode > summary:before{color:#fff!important;}
.public-tree .tree-field > summary{padding-left:18px!important;background:#edf2f7!important;font-weight:800!important;}
.public-tree .tree-year > summary{padding-left:30px!important;background:#fafafa!important;font-weight:750!important;}
.public-tree .tree-semester > summary{padding-left:42px!important;background:#fff!important;font-weight:700!important;}
.tree-group-link{padding-left:58px!important;}

/* v1.60: grupowe zaznaczanie i usuwanie rekordów w panelu admina */
.bulk-form{display:block}
.bulkbar{display:flex;gap:12px;align-items:center;justify-content:flex-start;margin:0 0 10px 0;flex-wrap:wrap}
.select-col{width:42px;text-align:center}
.bulk-table input[type="checkbox"]{transform:scale(1.12);cursor:pointer}
.bulk-table tr:has(.row-check:checked){background:rgba(185,28,28,.08)}
button.danger,.danger{background:#b91c1c;color:#fff;border-color:#991b1b}
button.danger:hover,.danger:hover{background:#991b1b;color:#fff}

/* v1.60: grupowe zaznaczanie i usuwanie rekordów w panelu admina */
.bulk-form{display:block}
.bulkbar{display:flex;gap:12px;align-items:center;justify-content:flex-start;margin:0 0 10px 0;flex-wrap:wrap}
.select-col{width:42px;text-align:center}
.bulk-table input[type="checkbox"]{transform:scale(1.12);cursor:pointer}
.bulk-table tr:has(.row-check:checked){background:rgba(185,28,28,.08)}
button.danger,.danger{background:#b91c1c;color:#fff;border-color:#991b1b}
button.danger:hover,.danger:hover{background:#991b1b;color:#fff}

/* v1.62: responsywny podglad planu na telefonach - tylko widok publiczny */
.public-plan-mobile-hint{display:none}
@media(max-width:760px){
  body{font-size:14px!important;overflow-x:hidden!important;}
  .pl-topbar{display:none!important;}
  .pl-brandbar{min-height:72px!important;padding:10px 12px!important;gap:10px!important;align-items:center!important;}
  .pl-logo img{max-width:150px!important;height:auto!important;}
  .planner-title strong{font-size:15px!important;line-height:1.1!important;}
  .planner-title span{font-size:10px!important;line-height:1.15!important;}
  .pl-mainnav{min-height:0!important;padding:0 8px!important;gap:0!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;}
  .pl-mainnav a{font-size:12px!important;padding:10px 11px 8px!important;border-bottom-width:3px!important;}
  main.wrap{padding:8px!important;overflow-x:hidden!important;}
  footer{display:none!important;}

  body main.wrap > .public-plan-two-col{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    max-height:34vh!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    background:#fff!important;
    border:1px solid #c9c9c9!important;
    box-shadow:0 6px 18px rgba(15,23,42,.14)!important;
  }
  .public-filter-box{border:0!important;margin:0!important;padding:0!important;}
  .public-filter-box-secondary{display:none!important;}
  .public-filter-title{position:sticky!important;top:0!important;z-index:3!important;background:#111!important;color:#fff!important;padding:8px 10px!important;font-size:12px!important;letter-spacing:.02em!important;}
  .public-tree{font-size:12px!important;}
  .public-tree summary{padding-top:9px!important;padding-bottom:9px!important;min-height:34px!important;}
  .public-tree .tree-mode > summary{font-size:12px!important;}
  .public-tree .tree-field > summary{padding-left:18px!important;}
  .public-tree .tree-year > summary{padding-left:28px!important;}
  .public-tree .tree-semester > summary{padding-left:38px!important;}
  .tree-group-link{padding:8px 8px 8px 48px!important;font-size:12px!important;line-height:1.15!important;}

  body main.wrap > .public-plan-two-col > .public-plan-table-col{
    height:calc(100vh - 190px)!important;
    min-height:420px!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .public-current-title{
    position:sticky!important;
    top:0!important;
    z-index:70!important;
    background:#fff!important;
    border:1px solid #c9c9c9!important;
    border-bottom:0!important;
    padding:8px 10px!important;
    font-size:13px!important;
    line-height:1.2!important;
  }
  .public-plan-table-col .public-plan-shell{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    border:1px solid #c9c9c9!important;
    overflow:hidden!important;
  }
  .public-plan-table-col .public-plan-scroll{
    height:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  .public-grid-schedule.public-grid-schedule-split{
    --time-col:48px!important;
    --slot-h:18px!important;
    grid-template-rows:30px 24px repeat(var(--slot-count), var(--slot-h))!important;
    grid-template-columns:var(--time-col) repeat(var(--day-pair-count), 86px)!important;
    min-width:calc(var(--time-col) + var(--day-pair-count) * 86px)!important;
    font-size:10px!important;
  }
  .public-grid-schedule-split .public-grid-time-head{
    height:54px!important;
    min-height:54px!important;
    font-size:10px!important;
  }
  .public-grid-schedule-split .public-grid-day-head{
    font-size:11px!important;
    padding:0 3px!important;
    white-space:nowrap!important;
  }
  .public-grid-schedule-split .public-grid-week-head{
    height:24px!important;
    min-height:24px!important;
    line-height:24px!important;
    font-size:8px!important;
    padding:0 2px!important;
  }
  .public-grid-time{
    font-size:9px!important;
    padding-top:1px!important;
  }
  .public-grid-cell{min-height:var(--slot-h)!important;}
  .public-grid-event{
    margin:1px 2px!important;
    padding:3px 4px!important;
    min-height:44px!important;
    border-left-width:3px!important;
    line-height:1.08!important;
  }
  .public-grid-event .event-time{font-size:8.5px!important;margin-bottom:1px!important;}
  .public-grid-event b{font-size:9.5px!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .public-grid-event .event-kind,
  .public-grid-event .event-week{font-size:7.5px!important;padding:1px 4px!important;line-height:1.1!important;}
  .public-grid-event .event-teacher,
  .public-grid-event .event-group,
  .public-grid-event .event-room,
  .public-grid-event .event-notes{display:none!important;}
  .public-grid-event:active,
  .public-grid-event:focus,
  .public-grid-event:hover{
    position:relative!important;
    z-index:9999!important;
    min-height:118px!important;
    transform:scale(1.02)!important;
    overflow:visible!important;
    background:#fff!important;
    box-shadow:0 12px 28px rgba(15,23,42,.28)!important;
    border:2px solid #111!important;
    padding:7px!important;
  }
  .public-grid-event:active b,
  .public-grid-event:focus b,
  .public-grid-event:hover b,
  .public-grid-event:active span,
  .public-grid-event:focus span,
  .public-grid-event:hover span,
  .public-grid-event:active em,
  .public-grid-event:focus em,
  .public-grid-event:hover em,
  .public-grid-event:active small,
  .public-grid-event:focus small,
  .public-grid-event:hover small{
    display:block!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:10px!important;
    line-height:1.18!important;
    color:#111!important;
  }
  .public-grid-event:active .event-kind,
  .public-grid-event:focus .event-kind,
  .public-grid-event:hover .event-kind,
  .public-grid-event:active .event-week,
  .public-grid-event:focus .event-week,
  .public-grid-event:hover .event-week{display:inline-block!important;font-size:8px!important;}
}

@media(max-width:420px){
  .pl-logo img{max-width:126px!important;}
  .planner-title span{display:none!important;}
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{max-height:30vh!important;}
  body main.wrap > .public-plan-two-col > .public-plan-table-col{height:calc(100vh - 165px)!important;}
  .public-grid-schedule.public-grid-schedule-split{
    --time-col:44px!important;
    --slot-h:17px!important;
    grid-template-columns:var(--time-col) repeat(var(--day-pair-count), 78px)!important;
    min-width:calc(var(--time-col) + var(--day-pair-count) * 78px)!important;
  }
  .public-grid-event b{font-size:9px!important;}
}

/* v1.63: rzeczywisty mobilny podglad publiczny: wybor grupy + karty zamiast ucinanej tabeli */
.mobile-group-picker{display:none!important;}
.public-mobile-schedule-cards{display:none!important;}
@media(max-width:760px){
  body{overflow-x:hidden!important;}
  .pl-brandbar{position:sticky!important;top:0!important;z-index:120!important;background:#fff!important;border-bottom:1px solid #cfcfcf!important;}
  .pl-mainnav{display:none!important;}
  main.wrap{padding:0!important;}
  body main.wrap > .public-plan-two-col{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    position:sticky!important;
    top:73px!important;
    z-index:110!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:8px!important;
    border:0!important;
    border-bottom:1px solid #c9c9c9!important;
    box-shadow:0 4px 12px rgba(0,0,0,.12)!important;
    background:#fff!important;
  }
  .mobile-group-picker{display:block!important;margin:0!important;padding:0!important;}
  .mobile-group-picker label{display:block!important;margin:0!important;color:#111!important;font-size:12px!important;font-weight:900!important;}
  .mobile-group-picker select{
    display:block!important;
    width:100%!important;
    height:44px!important;
    margin-top:4px!important;
    padding:7px 9px!important;
    border:2px solid #111!important;
    background:#fff!important;
    color:#111!important;
    font-size:14px!important;
    font-weight:800!important;
  }
  .public-filter-box{display:none!important;}
  .public-filter-box-secondary{display:none!important;}
  body main.wrap > .public-plan-two-col > .public-plan-table-col{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    padding:8px!important;
  }
  .public-current-title{
    position:static!important;
    display:block!important;
    border:0!important;
    border-left:5px solid #111!important;
    background:#f3f4f6!important;
    margin:0 0 8px!important;
    padding:8px 10px!important;
    font-size:13px!important;
    line-height:1.25!important;
  }
  .public-plan-table-col .public-plan-shell{display:none!important;}
  .public-mobile-schedule-cards{display:block!important;}
  .mobile-empty-plan{padding:14px!important;border:1px solid #cbd5e1!important;background:#fff!important;font-size:14px!important;font-weight:700!important;}
  .mobile-day-card{margin:0 0 12px!important;border:1px solid #cbd5e1!important;background:#fff!important;}
  .mobile-day-card h3{position:sticky!important;top:142px!important;z-index:40!important;margin:0!important;padding:9px 10px!important;background:#111!important;color:#fff!important;font-size:15px!important;line-height:1.1!important;}
  .mobile-lesson-card{margin:8px!important;padding:10px!important;border:1px solid #d1d5db!important;border-left:5px solid #174ea6!important;background:#f8fbff!important;box-shadow:0 2px 8px rgba(15,23,42,.08)!important;}
  .mobile-lesson-card.week-week1{border-left-color:#174ea6!important;}
  .mobile-lesson-card.week-week2{border-left-color:#7c3aed!important;}
  .mobile-lesson-card.week-both{border-left-color:#00843d!important;}
  .mobile-lesson-top{display:flex!important;justify-content:space-between!important;gap:8px!important;align-items:center!important;margin-bottom:5px!important;}
  .mobile-lesson-top strong{font-size:14px!important;color:#000!important;white-space:nowrap!important;}
  .mobile-lesson-top span{font-size:11px!important;font-weight:900!important;background:#111!important;color:#fff!important;padding:3px 6px!important;white-space:nowrap!important;}
  .mobile-lesson-card b{display:block!important;font-size:15px!important;line-height:1.18!important;color:#0b2e59!important;margin:3px 0!important;}
  .mobile-lesson-card p{margin:0 0 7px!important;font-size:12px!important;font-weight:900!important;text-transform:uppercase!important;color:#334155!important;}
  .mobile-lesson-card dl{margin:0!important;display:grid!important;gap:5px!important;}
  .mobile-lesson-card dl div{display:grid!important;grid-template-columns:82px minmax(0,1fr)!important;gap:6px!important;border-top:1px solid #e5e7eb!important;padding-top:5px!important;}
  .mobile-lesson-card dt{font-size:11px!important;font-weight:900!important;color:#64748b!important;margin:0!important;}
  .mobile-lesson-card dd{font-size:12px!important;color:#111!important;margin:0!important;min-width:0!important;word-break:break-word!important;}
}
@media(max-width:420px){
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{top:61px!important;}
  .mobile-day-card h3{top:130px!important;}
  .mobile-lesson-card dl div{grid-template-columns:72px minmax(0,1fr)!important;}
}

/* v1.64: mobile full-table preview. No card fallback; the real plan grid is scaled to fit the phone width and can be pinch-zoomed by the browser. */
@media(max-width:760px){
  html,body{overflow-x:hidden!important;touch-action:pan-x pan-y pinch-zoom!important;}
  .pl-brandbar{position:sticky!important;top:0!important;z-index:120!important;background:#fff!important;border-bottom:1px solid #cfcfcf!important;}
  .pl-mainnav,.pl-topbar{display:none!important;}
  .planner-title strong{font-size:14px!important;}
  .planner-title span{display:none!important;}
  .pl-logo img{max-width:145px!important;height:auto!important;}
  main.wrap{padding:0!important;max-width:none!important;width:100%!important;}

  body main.wrap > .public-plan-two-col{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    width:100%!important;
    height:auto!important;
    overflow:visible!important;
  }

  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    position:sticky!important;
    top:61px!important;
    z-index:110!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    padding:7px!important;
    background:#fff!important;
    border:0!important;
    border-bottom:1px solid #c9c9c9!important;
    box-shadow:0 4px 12px rgba(0,0,0,.12)!important;
  }
  .mobile-group-picker{display:block!important;margin:0!important;padding:0!important;}
  .mobile-group-picker label{display:block!important;margin:0!important;color:#111!important;font-size:12px!important;font-weight:900!important;}
  .mobile-group-picker select{
    width:100%!important;height:42px!important;margin-top:4px!important;padding:6px 9px!important;
    border:2px solid #111!important;border-radius:8px!important;background:#fff!important;color:#111!important;
    font-size:14px!important;font-weight:800!important;
  }
  .public-filter-box,.public-filter-box-secondary{display:none!important;}

  body main.wrap > .public-plan-two-col > .public-plan-table-col{
    display:block!important;width:100%!important;min-width:0!important;height:auto!important;overflow:visible!important;padding:6px!important;
  }
  .public-current-title{
    position:static!important;display:block!important;margin:0 0 6px!important;padding:7px 9px!important;
    border:0!important;border-left:5px solid #111!important;background:#f3f4f6!important;
    font-size:12px!important;line-height:1.18!important;
  }
  .public-mobile-schedule-cards{display:none!important;}
  .public-plan-table-col .public-plan-shell{
    display:block!important;width:100%!important;min-width:0!important;height:auto!important;overflow:visible!important;
    border:1px solid #c9c9c9!important;background:#fff!important;
  }
  .public-plan-table-col .public-plan-scroll{
    display:block!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;
    -webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y pinch-zoom!important;
  }

  .public-grid-schedule.public-grid-schedule-split{
    --time-col:48px!important;
    --slot-h:18px!important;
    grid-template-rows:30px 24px repeat(var(--slot-count), var(--slot-h))!important;
    grid-template-columns:var(--time-col) repeat(var(--day-pair-count), 88px)!important;
    min-width:calc(var(--time-col) + var(--day-pair-count) * 88px)!important;
    width:calc(var(--time-col) + var(--day-pair-count) * 88px)!important;
    max-width:none!important;
    transform-origin:top left!important;
    font-size:9px!important;
  }
  .public-plan-scroll.mobile-scaled .public-grid-schedule.public-grid-schedule-split{
    transform:scale(var(--mobile-plan-scale,1))!important;
  }
  .public-plan-scroll.mobile-scaled{
    height:var(--mobile-plan-height,auto)!important;
  }

  .public-grid-schedule-split .public-grid-time-head{height:54px!important;min-height:54px!important;font-size:9px!important;line-height:1!important;}
  .public-grid-schedule-split .public-grid-day-head{font-size:10px!important;padding:0 2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;}
  .public-grid-schedule-split .public-grid-week-head{height:24px!important;min-height:24px!important;line-height:24px!important;font-size:7px!important;padding:0!important;}
  .public-grid-time{font-size:7px!important;padding-top:1px!important;}
  .public-grid-cell{min-height:var(--slot-h)!important;height:var(--slot-h)!important;}
  .public-grid-event{
    margin:1px!important;padding:2px!important;min-height:52px!important;border-left-width:2px!important;border-radius:3px!important;
    overflow:hidden!important;line-height:1.02!important;box-shadow:none!important;
  }
  .public-grid-event .event-time{font-size:7px!important;margin:0!important;line-height:1.05!important;}
  .public-grid-event b{display:block!important;font-size:7.5px!important;line-height:1.05!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;}
  .public-grid-event span,.public-grid-event em,.public-grid-event small{
    display:block!important;font-size:6.6px!important;line-height:1.05!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;color:#111!important;font-style:normal!important;
  }
  .public-grid-event .event-kind,.public-grid-event .event-week{display:inline-block!important;font-size:5.8px!important;line-height:1!important;padding:1px 2px!important;margin-top:1px!important;}
  .public-grid-event .event-notes{font-size:6.3px!important;border-top:1px dotted rgba(15,23,42,.18)!important;padding-top:1px!important;}

  .public-grid-event:active,.public-grid-event:focus,.public-grid-event:hover{
    position:relative!important;z-index:9999!important;overflow:visible!important;min-height:105px!important;
    transform:scale(1.9)!important;transform-origin:top left!important;background:#fff!important;border:1px solid #111!important;
    box-shadow:0 10px 28px rgba(15,23,42,.35)!important;padding:5px!important;
  }
  .public-grid-event:active b,.public-grid-event:focus b,.public-grid-event:hover b{font-size:9px!important;line-height:1.12!important;overflow:visible!important;}
  .public-grid-event:active span,.public-grid-event:focus span,.public-grid-event:hover span,
  .public-grid-event:active em,.public-grid-event:focus em,.public-grid-event:hover em,
  .public-grid-event:active small,.public-grid-event:focus small,.public-grid-event:hover small{font-size:8px!important;line-height:1.12!important;overflow:visible!important;}
}

@media(max-width:420px){
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{top:56px!important;}
  .public-grid-schedule.public-grid-schedule-split{grid-template-columns:44px repeat(var(--day-pair-count), 82px)!important;--time-col:44px!important;min-width:calc(var(--time-col) + var(--day-pair-count) * 82px)!important;width:calc(var(--time-col) + var(--day-pair-count) * 82px)!important;}
}

/* v1.65: mobile public preview = desktop-equivalent layout with the same controls.
   On phones we do not replace the view with cards/select-only UI. The full left tree,
   other views, and the full timetable remain available inside a horizontal canvas. */
@media(max-width:760px){
  html,body{
    overflow-x:auto!important;
    touch-action:pan-x pan-y pinch-zoom!important;
  }
  .pl-topbar{display:flex!important;min-height:24px!important;height:auto!important;padding:4px 10px!important;font-size:10px!important;}
  .pl-brandbar{position:relative!important;top:auto!important;z-index:auto!important;min-height:58px!important;padding:8px 12px!important;}
  .pl-mainnav{display:flex!important;min-height:32px!important;padding:0 10px!important;gap:14px!important;overflow-x:auto!important;}
  .pl-mainnav a{font-size:12px!important;padding:10px 0 7px!important;}
  main.wrap{padding:8px!important;max-width:none!important;width:max-content!important;min-width:1240px!important;overflow:visible!important;}

  body main.wrap > .public-plan-two-col{
    display:grid!important;
    grid-template-columns:260px minmax(960px,1fr)!important;
    gap:10px!important;
    width:1240px!important;
    min-width:1240px!important;
    height:calc(100vh - 118px)!important;
    min-height:520px!important;
    overflow:visible!important;
  }
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    position:static!important;
    top:auto!important;
    z-index:auto!important;
    width:260px!important;
    min-width:260px!important;
    max-width:260px!important;
    height:100%!important;
    max-height:none!important;
    overflow:auto!important;
    padding:8px!important;
    background:#fff!important;
    border:1px solid #c9c9c9!important;
    box-shadow:none!important;
  }
  .mobile-group-picker{display:none!important;}
  .public-filter-box,.public-filter-box-secondary{display:block!important;border:0!important;margin:0 0 10px!important;padding:0!important;}
  .public-filter-title{position:static!important;background:#111!important;color:#fff!important;padding:7px 9px!important;font-size:12px!important;}
  .public-tree{display:block!important;font-size:11px!important;}
  .public-tree summary{padding-top:7px!important;padding-bottom:7px!important;min-height:28px!important;}
  .tree-group-link{padding-top:6px!important;padding-bottom:6px!important;font-size:11px!important;}
  .public-plan-filters-col label{font-size:10px!important;margin:0 0 8px!important;}
  .public-plan-filters-col select,.public-plan-filters-col input{height:28px!important;font-size:11px!important;padding:3px 6px!important;}

  body main.wrap > .public-plan-two-col > .public-plan-table-col{
    display:flex!important;
    flex-direction:column!important;
    width:970px!important;
    min-width:970px!important;
    height:100%!important;
    overflow:hidden!important;
    padding:0!important;
  }
  .public-current-title{
    position:static!important;
    display:block!important;
    margin:0 0 6px!important;
    padding:7px 9px!important;
    border:1px solid #c9c9c9!important;
    border-left:5px solid #111!important;
    background:#f3f4f6!important;
    font-size:12px!important;
    line-height:1.18!important;
    flex:0 0 auto!important;
  }
  .public-mobile-schedule-cards{display:none!important;}
  .public-plan-table-col .public-plan-shell{
    display:block!important;
    flex:1 1 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
    border:1px solid #c9c9c9!important;
    background:#fff!important;
  }
  .public-plan-table-col .public-plan-scroll{
    display:block!important;
    width:100%!important;
    height:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x pan-y pinch-zoom!important;
  }
  .public-plan-scroll.mobile-scaled{
    height:100%!important;
  }
  .public-plan-scroll.mobile-scaled .public-grid-schedule.public-grid-schedule-split{
    transform:none!important;
  }
  .public-grid-schedule.public-grid-schedule-split{
    --time-col:58px!important;
    --slot-h:22px!important;
    grid-template-rows:32px 24px repeat(var(--slot-count), var(--slot-h))!important;
    grid-template-columns:var(--time-col) repeat(var(--day-pair-count), 96px)!important;
    min-width:calc(var(--time-col) + var(--day-pair-count) * 96px)!important;
    width:calc(var(--time-col) + var(--day-pair-count) * 96px)!important;
    max-width:none!important;
    transform:none!important;
    font-size:10px!important;
  }
  .public-grid-schedule-split .public-grid-time-head{height:56px!important;min-height:56px!important;font-size:9px!important;}
  .public-grid-schedule-split .public-grid-day-head{font-size:10px!important;padding:0 2px!important;white-space:nowrap!important;}
  .public-grid-schedule-split .public-grid-week-head{height:24px!important;min-height:24px!important;line-height:24px!important;font-size:7px!important;padding:0!important;}
  .public-grid-time{font-size:8px!important;padding-top:2px!important;}
  .public-grid-cell{min-height:var(--slot-h)!important;height:var(--slot-h)!important;}
  .public-grid-event{
    margin:1px!important;
    padding:3px!important;
    min-height:48px!important;
    border-left-width:3px!important;
    border-radius:3px!important;
    overflow:hidden!important;
    line-height:1.04!important;
    box-shadow:none!important;
  }
  .public-grid-event .event-time{font-size:7.5px!important;margin:0!important;line-height:1.08!important;}
  .public-grid-event b{display:block!important;font-size:8px!important;line-height:1.07!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;}
  .public-grid-event span,.public-grid-event em,.public-grid-event small{
    display:block!important;
    font-size:6.8px!important;
    line-height:1.06!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    color:#111!important;
    font-style:normal!important;
  }
  .public-grid-event .event-kind,.public-grid-event .event-week{display:inline-block!important;font-size:6px!important;line-height:1!important;padding:1px 2px!important;margin-top:1px!important;}
  .public-grid-event:active,.public-grid-event:focus,.public-grid-event:hover{
    position:relative!important;
    z-index:9999!important;
    overflow:visible!important;
    min-height:108px!important;
    transform:scale(1.65)!important;
    transform-origin:top left!important;
    background:#fff!important;
    border:1px solid #111!important;
    box-shadow:0 10px 28px rgba(15,23,42,.35)!important;
    padding:5px!important;
  }
  .public-grid-event:active b,.public-grid-event:focus b,.public-grid-event:hover b{font-size:9px!important;line-height:1.12!important;overflow:visible!important;}
  .public-grid-event:active span,.public-grid-event:focus span,.public-grid-event:hover span,
  .public-grid-event:active em,.public-grid-event:focus em,.public-grid-event:hover em,
  .public-grid-event:active small,.public-grid-event:focus small,.public-grid-event:hover small{font-size:8px!important;line-height:1.12!important;overflow:visible!important;}
}

@media(max-width:420px){
  main.wrap{min-width:1240px!important;width:max-content!important;}
  body main.wrap > .public-plan-two-col{width:1240px!important;min-width:1240px!important;grid-template-columns:260px 970px!important;height:calc(100vh - 108px)!important;}
}

/* v1.67: group tree picker in planner */
.group-picker-field{display:inline-flex;flex-direction:column;gap:6px;min-width:260px;margin:0 12px 12px 0;vertical-align:top}
.group-picker-field label{margin:0!important;display:block!important;min-width:260px!important}
.group-hidden-select{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.group-tree-open{width:100%;min-height:38px;text-align:center}
.group-picker-summary{border:1px solid #cbd5e1;background:#f8fafc;color:#111;padding:8px 10px;min-height:38px;font-size:12px;line-height:1.3;max-width:360px;overflow:hidden;text-overflow:ellipsis}
.group-picker-summary.empty{color:#991b1b;background:#fff7f7;border-color:#fecaca}
.group-tree-modal.hidden{display:none!important}.group-tree-modal{position:fixed;inset:0;z-index:10000}.group-tree-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}.group-tree-dialog{position:relative;margin:4vh auto;width:min(920px,94vw);max-height:90vh;background:#fff;border:1px solid #111;display:flex;flex-direction:column;box-shadow:0 20px 80px rgba(0,0,0,.3)}.group-tree-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid #d7d7d7;padding:14px 16px;background:#f4f4f4}.group-tree-head h3{margin:0 0 4px;font-size:20px}.group-tree-head p{margin:0;color:#555;font-size:13px}.group-tree-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid #e5e7eb}.group-tree-target-info{padding:8px 16px;font-weight:800;color:#0f172a;background:#f8fafc;border-bottom:1px solid #e5e7eb}.group-tree-list{padding:12px 16px;overflow:auto;max-height:58vh}.gt-node{margin:4px 0 4px 14px}.gt-node summary{cursor:pointer;list-style:auto;padding:4px 0}.gt-node summary label{display:inline-flex!important;align-items:center;gap:7px;margin:0!important;color:#111!important;font-size:14px!important;cursor:pointer}.gt-node input[type="checkbox"],.gt-leaf input[type="checkbox"]{width:auto!important;min-width:16px;height:16px}.gt-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin:6px 0 8px 28px}.gt-leaf{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:7px 8px;border:1px solid #e5e7eb;background:#fff;color:#111!important;font-size:14px!important}.gt-leaf:hover{background:#f8fafc;border-color:#94a3b8}.group-tree-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #d7d7d7;background:#f4f4f4;font-weight:800}.edit-group-picker{display:block;min-width:100%;margin:10px 0}.edit-group-picker .group-picker-summary{max-width:none}.edit-group-picker .group-tree-open{width:auto}
@media(max-width:760px){.group-tree-dialog{width:96vw;margin:2vh auto;max-height:96vh}.group-tree-list{max-height:65vh}.gt-groups{grid-template-columns:1fr;margin-left:12px}.group-tree-head{align-items:stretch;flex-direction:column}.group-tree-footer{position:sticky;bottom:0}.group-picker-field{min-width:220px}.group-picker-summary{max-width:300px}}

/* v1.68: explicit modal-only group selector */
.group-choice-box{display:flex!important;flex-direction:column!important;gap:8px!important;align-items:stretch!important;min-width:260px!important}
.group-choice-title{font-weight:900;color:#111;font-size:13px;letter-spacing:.01em}
.group-choice-button{width:100%!important;min-height:42px!important;font-weight:900!important}
.group-hidden-select{display:none!important;position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
body.modal-open{overflow:hidden!important}
.group-tree-modal{position:fixed!important;inset:0!important;z-index:2147483000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important}
.group-tree-modal.hidden{display:none!important}
.group-tree-backdrop{position:fixed!important;inset:0!important;background:rgba(0,0,0,.55)!important}
.group-tree-dialog{position:relative!important;margin:0!important;width:min(980px,96vw)!important;max-height:92vh!important;background:#fff!important;border:2px solid #111!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 24px 90px rgba(0,0,0,.45)!important}
.group-tree-list{max-height:58vh!important;overflow:auto!important;background:#fff!important}
@media(max-width:760px){.group-tree-modal{padding:8px!important;align-items:flex-start!important}.group-tree-dialog{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important}.group-tree-list{max-height:62vh!important}.group-choice-box{min-width:180px!important}.group-picker-summary{max-width:none!important}}


/* v1.69: modal group tree must end at concrete group level */
.group-tree-list .gt-year,.group-tree-list .gt-semester{border-left:2px solid #e5e7eb!important;padding-left:10px!important}
.gt-leaf span{display:flex!important;flex-direction:column!important;gap:2px!important}
.gt-leaf span small{display:block!important;font-size:11px!important;line-height:1.2!important;color:#64748b!important;font-weight:600!important}
.gt-leaf span b{font-size:14px!important;color:#111!important}
.gt-semester > summary label{font-weight:900!important;color:#1e3a8a!important}
.gt-groups:empty::after{content:'Brak grup w tym semestrze';color:#991b1b;font-size:12px;font-weight:700;padding:6px}

/* v1.70: polished multi-group selector modal */
.group-picker-summary{border-radius:10px!important;border:1px solid #d7dde5!important;background:#f8fafc!important;padding:9px 10px!important;min-height:48px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important}
.group-picker-summary.empty{background:#fff!important;color:#6b7280!important;border-style:dashed!important;border-color:#b8c0cc!important}
.group-summary-count{font-size:11px!important;font-weight:900!important;color:#334155!important;text-transform:uppercase!important;letter-spacing:.04em!important;margin-bottom:5px!important}
.group-summary-chips{display:flex!important;flex-wrap:wrap!important;gap:5px!important}
.group-summary-chip{display:inline-flex!important;align-items:center!important;max-width:130px!important;padding:3px 8px!important;border-radius:999px!important;background:#eef4fb!important;border:1px solid #d8e5f2!important;color:#0f172a!important;font-size:11px!important;font-weight:800!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.group-summary-chip.more{background:#111827!important;border-color:#111827!important;color:#fff!important}
.group-tree-dialog{border:1px solid #c8d0da!important;border-radius:16px!important;background:#f8fafc!important;box-shadow:0 28px 90px rgba(15,23,42,.34)!important}
.group-tree-head{background:linear-gradient(180deg,#ffffff,#f3f6fa)!important;border-bottom:1px solid #dbe2ea!important;padding:18px 20px!important}
.group-tree-head h3{font-size:22px!important;color:#0f172a!important;letter-spacing:-.02em!important}
.group-tree-head p{display:block!important;color:#64748b!important;font-size:13px!important;line-height:1.4!important;max-width:680px!important}
.group-tree-toolbar-polished{display:grid!important;grid-template-columns:1fr auto!important;gap:14px!important;align-items:end!important;padding:14px 20px!important;background:#fff!important;border-bottom:1px solid #e2e8f0!important}
.group-tree-search-wrap{display:flex!important;flex-direction:column!important;gap:5px!important}
.group-tree-search-wrap label{font-size:11px!important;text-transform:uppercase!important;letter-spacing:.05em!important;font-weight:900!important;color:#475569!important;margin:0!important}
.group-tree-search-wrap input{height:42px!important;border:1px solid #cbd5e1!important;border-radius:10px!important;padding:0 12px!important;font-size:14px!important;background:#fff!important;color:#111827!important}
.group-tree-search-wrap input:focus{outline:2px solid rgba(29,78,216,.18)!important;border-color:#2563eb!important}
.group-tree-toolbar-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-end!important}
.group-tree-meta-row{display:grid!important;grid-template-columns:minmax(180px,260px) 1fr!important;gap:10px!important;padding:10px 20px!important;background:#f8fafc!important;border-bottom:1px solid #e2e8f0!important}
.group-tree-target-info{padding:0!important;background:transparent!important;border:0!important;font-size:12px!important;color:#475569!important;font-weight:900!important;display:flex!important;align-items:center!important}
.group-tree-selected-preview{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important;min-height:26px!important;color:#475569!important;font-size:12px!important;font-weight:700!important}
.group-tree-selected-preview.empty{font-style:italic!important;color:#94a3b8!important}
.group-tree-selected-preview span{display:inline-flex!important;align-items:center!important;padding:4px 8px!important;border-radius:999px!important;background:#e8f1fb!important;border:1px solid #d5e3f3!important;color:#0f172a!important;font-size:11px!important;font-weight:900!important}
.group-tree-list{padding:16px 20px!important;background:#f8fafc!important;max-height:56vh!important}
.gt-node{margin:8px 0!important;border-radius:12px!important}
.gt-node summary{list-style:none!important;padding:0!important}
.gt-node summary::-webkit-details-marker{display:none!important}
.gt-node summary label{min-height:38px!important;padding:8px 10px!important;border-radius:10px!important;background:#fff!important;border:1px solid #e2e8f0!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;width:100%!important;transition:background .12s ease,border-color .12s ease!important}
.gt-node summary label:hover{background:#f1f5f9!important;border-color:#cbd5e1!important}
.gt-mode>summary label{background:#0f2744!important;border-color:#0f2744!important;color:#fff!important}
.gt-mode>summary label b{color:#fff!important}
.gt-field>summary label{background:#eef4fb!important;border-color:#d9e6f4!important;color:#10243d!important;font-weight:900!important}
.gt-year>summary label{background:#f8fafc!important;color:#334155!important;font-weight:900!important}
.gt-semester>summary label{background:#fff!important;color:#1e3a8a!important;font-weight:900!important}
.group-tree-list .gt-year,.group-tree-list .gt-semester{border-left:0!important;padding-left:14px!important;margin-left:16px!important;position:relative!important}
.group-tree-list .gt-year::before,.group-tree-list .gt-semester::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#dbe4ee;border-radius:2px}
.gt-groups{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;gap:8px!important;margin:10px 0 10px 30px!important}
.gt-leaf{border:1px solid #dbe3ed!important;border-radius:12px!important;background:#fff!important;padding:10px 11px!important;min-height:58px!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease!important}
.gt-leaf:hover{background:#f8fbff!important;border-color:#93b5dc!important;box-shadow:0 7px 18px rgba(15,23,42,.08)!important;transform:translateY(-1px)!important}
.gt-leaf:has(input:checked){background:#edf7f1!important;border-color:#7ac58c!important;box-shadow:0 0 0 2px rgba(34,197,94,.10)!important}
.gt-leaf span b{font-size:15px!important;color:#0f172a!important;line-height:1.15!important}
.gt-leaf span small{font-size:11px!important;color:#64748b!important;font-weight:700!important;line-height:1.2!important;margin-top:2px!important}
.gt-node input[type="checkbox"],.gt-leaf input[type="checkbox"]{accent-color:#174ea6!important;width:17px!important;min-width:17px!important;height:17px!important;margin:0!important}
.group-tree-footer{background:#fff!important;border-top:1px solid #dbe2ea!important;padding:14px 20px!important;box-shadow:0 -8px 22px rgba(15,23,42,.04)!important}
#groupTreeCounter{font-size:13px!important;color:#0f172a!important;background:#f1f5f9!important;border:1px solid #e2e8f0!important;border-radius:999px!important;padding:7px 10px!important}
.tree-filter-hidden{display:none!important}
@media(max-width:760px){
  .group-tree-toolbar-polished{grid-template-columns:1fr!important;align-items:stretch!important}
  .group-tree-toolbar-actions{justify-content:stretch!important}.group-tree-toolbar-actions button{flex:1 1 auto!important}
  .group-tree-meta-row{grid-template-columns:1fr!important;padding:8px 12px!important}
  .group-tree-head{padding:14px 12px!important}.group-tree-toolbar-polished{padding:12px!important}.group-tree-list{padding:12px!important;max-height:60vh!important}
  .gt-groups{grid-template-columns:1fr!important;margin-left:14px!important}.group-tree-footer{padding:10px 12px!important}
}

/* v1.71: compact expandable multi-group selector */
.group-tree-dialog{width:min(860px,94vw)!important;max-height:88vh!important;border-radius:12px!important}
.group-tree-head{padding:12px 16px!important}
.group-tree-head h3{font-size:18px!important;margin:0 0 2px!important}
.group-tree-head p{font-size:12px!important;line-height:1.25!important;max-width:620px!important}
.group-tree-toolbar-polished{padding:10px 16px!important;gap:10px!important;grid-template-columns:1fr auto!important}
.group-tree-search-wrap input{height:36px!important;border-radius:8px!important;font-size:13px!important}
.group-tree-toolbar-actions{gap:6px!important}
.group-tree-toolbar-actions button{min-height:34px!important;padding:7px 9px!important;font-size:12px!important;white-space:nowrap!important}
.group-tree-meta-row{padding:7px 16px!important;grid-template-columns:minmax(150px,220px) 1fr!important}
.group-tree-selected-preview{max-height:34px!important;overflow:auto!important;align-content:flex-start!important}
.group-tree-selected-preview span{padding:2px 6px!important;font-size:10.5px!important}
.group-tree-list{padding:10px 14px!important;max-height:50vh!important;background:#fbfcfe!important}
.gt-node{margin:3px 0!important;border-radius:8px!important}
.gt-node summary label{min-height:30px!important;padding:5px 8px!important;border-radius:8px!important;font-size:13px!important;box-shadow:none!important}
.gt-node summary label::before{content:'▸';display:inline-block;width:12px;margin-right:2px;color:inherit;opacity:.8;transform:translateY(-1px)}
.gt-node[open] > summary label::before{content:'▾'}
.gt-node input[type="checkbox"],.gt-leaf input[type="checkbox"]{width:15px!important;min-width:15px!important;height:15px!important}
.group-tree-list .gt-year,.group-tree-list .gt-semester{padding-left:9px!important;margin-left:10px!important}
.group-tree-list .gt-year::before,.group-tree-list .gt-semester::before{width:1px!important;background:#e4eaf1!important}
.gt-groups{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:5px!important;margin:6px 0 6px 18px!important}
.gt-leaf{min-height:38px!important;padding:6px 8px!important;border-radius:8px!important;gap:6px!important;box-shadow:none!important}
.gt-leaf:hover{transform:none!important;box-shadow:0 2px 8px rgba(15,23,42,.06)!important}
.gt-leaf span b{font-size:13px!important;line-height:1.05!important}
.gt-leaf span small{font-size:10px!important;line-height:1.08!important;margin-top:1px!important}
.group-tree-footer{padding:10px 16px!important}
#groupTreeCounter{font-size:12px!important;padding:5px 8px!important}
.group-summary-chip{font-size:10.5px!important;padding:2px 6px!important;max-width:100px!important}
.group-picker-summary{min-height:38px!important;padding:6px 8px!important;border-radius:8px!important}
.group-summary-count{font-size:10px!important;margin-bottom:3px!important}
@media(max-width:760px){
  .group-tree-dialog{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important}
  .group-tree-head{padding:10px!important}.group-tree-head p{display:none!important}
  .group-tree-toolbar-polished{padding:8px 10px!important;gap:8px!important}
  .group-tree-toolbar-actions{display:grid!important;grid-template-columns:1fr 1fr 1fr!important}.group-tree-toolbar-actions button{font-size:11px!important;padding:6px!important}
  .group-tree-list{padding:8px 10px!important;max-height:58vh!important}
  .gt-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-left:10px!important}
  .gt-leaf{min-height:34px!important;padding:5px 6px!important}
  .gt-leaf span small{display:none!important}
}


/* v1.72: intuitive arrow accordion for multi-group selector */
#groupTreeList details > summary{
  list-style:none!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-height:30px!important;
  padding:3px 5px!important;
  border-radius:8px!important;
  cursor:pointer!important;
  user-select:none!important;
}
#groupTreeList details > summary::-webkit-details-marker{display:none!important}
#groupTreeList details > summary:hover{background:#edf3f9!important}
#groupTreeList .gt-arrow{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  border:1px solid #cbd5e1!important;
  border-radius:6px!important;
  background:#fff!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#334155!important;
  box-shadow:0 1px 2px rgba(15,23,42,.05)!important;
}
#groupTreeList .gt-arrow::before{
  content:'▶';
  display:block;
  font-size:12px;
  line-height:1;
  font-weight:900;
  transition:transform .15s ease;
}
#groupTreeList details[open] > summary > .gt-arrow::before{content:'▼';font-size:11px;transform:translateY(0)}
#groupTreeList summary{gap:10px!important}
#groupTreeList .gt-branch-label{
  flex:1 1 auto!important;
  min-height:28px!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
#groupTreeList .gt-branch-label::before{content:none!important}
#groupTreeList .gt-branch-label:hover{background:#fff!important}
#groupTreeList .gt-node.gt-mode > summary{background:#f8fafc!important;border:1px solid #e2e8f0!important}
#groupTreeList .gt-node.gt-mode[open] > summary{background:#eef4fb!important;border-color:#cbdcea!important}
#groupTreeList .gt-node.gt-field > summary{margin-left:8px!important}
#groupTreeList .gt-node.gt-year > summary{margin-left:6px!important}
#groupTreeList .gt-node.gt-semester > summary{margin-left:4px!important}
#groupTreeList .gt-node:not([open]){margin-bottom:4px!important}
#groupTreeList .gt-groups{margin-top:5px!important}
#groupTreeList .gt-leaf{border:1px solid #e2e8f0!important;background:#fff!important}
#groupTreeList .gt-leaf:has(input:checked){background:#eef4fb!important;border-color:#b8cbe0!important}
@media(max-width:760px){
  #groupTreeList .gt-arrow{width:20px!important;height:20px!important;min-width:20px!important}
  #groupTreeList details > summary{gap:4px!important;padding:2px!important}
  #groupTreeList .gt-branch-label{font-size:12px!important;min-height:26px!important;padding:3px 6px!important}
}

/* v1.74: hard fix for group-tree expand icon: no list marker, no generated counter */
#groupTreeList,
#groupTreeList *{
  counter-reset:none!important;
  counter-increment:none!important;
}
#groupTreeList details,
#groupTreeList summary{
  list-style:none!important;
  list-style-type:none!important;
}
#groupTreeList summary::marker,
#groupTreeList summary::-webkit-details-marker{
  content:""!important;
  display:none!important;
  width:0!important;
  height:0!important;
  font-size:0!important;
}
#groupTreeList .gt-arrow{display:none!important;content:none!important}
#groupTreeList .gt-toggle{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid #cbd5e1!important;
  border-radius:6px!important;
  background:#ffffff!important;
  color:#1f2937!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:900!important;
  font-family:Arial, sans-serif!important;
  box-shadow:0 1px 2px rgba(15,23,42,.06)!important;
  cursor:pointer!important;
}
#groupTreeList .gt-toggle:hover{background:#eef4fb!important;border-color:#94a3b8!important}
#groupTreeList details[open] > summary > .gt-toggle{transform:rotate(90deg)!important;background:#eef4fb!important;border-color:#b8cbe0!important}
#groupTreeList details > summary{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}

/* v1.75: final fix - remove remaining numeric marker and reduce group-tree arrows */
#groupTreeList details,
#groupTreeList details.gt-node,
#groupTreeList summary,
#groupTreeList .gt-node summary{
  list-style:none!important;
  list-style-type:none!important;
  display:block;
}
#groupTreeList summary{
  display:flex!important;
  align-items:center!important;
}
#groupTreeList summary::marker,
#groupTreeList summary::-webkit-details-marker,
#groupTreeList .gt-node summary::marker,
#groupTreeList .gt-node summary::-webkit-details-marker{
  content:""!important;
  display:none!important;
  font-size:0!important;
  width:0!important;
  height:0!important;
}
#groupTreeList .gt-node summary label::before,
#groupTreeList .gt-branch-label::before,
#groupTreeList summary label::before{
  content:none!important;
  display:none!important;
}
#groupTreeList .gt-toggle{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  padding:0!important;
  border-radius:4px!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:800!important;
  box-shadow:none!important;
  margin-right:2px!important;
}
#groupTreeList details[open] > summary > .gt-toggle{
  transform:rotate(90deg)!important;
}
#groupTreeList details > summary{
  gap:5px!important;
  min-height:24px!important;
  padding:2px 4px!important;
}
#groupTreeList .gt-branch-label{
  min-height:24px!important;
  padding:3px 6px!important;
}


/* v1.76: estetyczne drzewo wyboru grup — bez <summary>, bez markerów 0., małe strzałki */
#groupTreeList{font-size:13px!important;color:#1f2937!important;}
#groupTreeList *{list-style:none!important;counter-reset:none!important;counter-increment:none!important;}
#groupTreeList .gt-node{margin:2px 0!important;}
#groupTreeList .gt-node.tree-filter-hidden{display:none!important;}
#groupTreeList .gt-row{
  display:flex!important;align-items:center!important;gap:6px!important;
  min-height:26px!important;padding:2px 4px!important;border-radius:6px!important;
  background:transparent!important;border:0!important;cursor:default!important;
}
#groupTreeList .gt-mode > .gt-row{background:#f3f6f9!important;border:1px solid #e1e7ef!important;font-weight:800!important;}
#groupTreeList .gt-field > .gt-row{margin-left:10px!important;}
#groupTreeList .gt-year > .gt-row{margin-left:20px!important;}
#groupTreeList .gt-semester > .gt-row{margin-left:30px!important;}
#groupTreeList .gt-row:hover{background:#f6f9fc!important;}
#groupTreeList .gt-toggle{
  appearance:none!important;-webkit-appearance:none!important;
  width:14px!important;height:14px!important;min-width:14px!important;max-width:14px!important;
  padding:0!important;margin:0 2px 0 0!important;border:0!important;border-radius:3px!important;
  background:transparent!important;color:#475569!important;box-shadow:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  font-size:0!important;line-height:1!important;cursor:pointer!important;transform:none!important;
}
#groupTreeList .gt-toggle::before{content:'›'!important;font-size:15px!important;line-height:12px!important;font-weight:800!important;color:#475569!important;display:block!important;transform:translateY(-.5px)!important;}
#groupTreeList .gt-node.open > .gt-row > .gt-toggle::before{content:'⌄'!important;font-size:13px!important;transform:translateY(-1px)!important;}
#groupTreeList .gt-toggle:hover{background:#e8eef6!important;color:#0f172a!important;}
#groupTreeList .gt-branch-label{
  flex:1 1 auto!important;min-height:22px!important;padding:2px 5px!important;margin:0!important;
  border:0!important;background:transparent!important;box-shadow:none!important;border-radius:5px!important;
  display:flex!important;align-items:center!important;gap:6px!important;color:#1f2937!important;font-size:13px!important;line-height:1.2!important;
}
#groupTreeList .gt-branch-label:hover{background:#ffffff!important;}
#groupTreeList input[type="checkbox"]{width:13px!important;height:13px!important;margin:0!important;accent-color:#0b2e59!important;}
#groupTreeList .gt-children{display:none!important;}
#groupTreeList .gt-node.open > .gt-children{display:block!important;}
#groupTreeList .gt-groups{
  display:grid!important;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;
  gap:5px!important;margin:5px 0 6px 44px!important;
}
#groupTreeList .gt-leaf{
  min-height:28px!important;margin:0!important;padding:4px 6px!important;border:1px solid #e1e7ef!important;border-radius:6px!important;
  background:#fff!important;display:flex!important;align-items:center!important;gap:6px!important;font-size:12px!important;color:#111827!important;
}
#groupTreeList .gt-leaf:has(input:checked){background:#eef4fb!important;border-color:#9fb8d4!important;}
#groupTreeList .gt-leaf span{min-width:0!important;display:block!important;line-height:1.15!important;}
#groupTreeList .gt-leaf b{font-size:12px!important;}
#groupTreeList .gt-leaf small{display:block!important;font-size:10px!important;color:#64748b!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
@media(max-width:760px){
  #groupTreeList .gt-field > .gt-row{margin-left:6px!important;}
  #groupTreeList .gt-year > .gt-row{margin-left:12px!important;}
  #groupTreeList .gt-semester > .gt-row{margin-left:18px!important;}
  #groupTreeList .gt-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-left:26px!important;}
  #groupTreeList .gt-leaf small{display:none!important;}
}

/* v1.81: admin menu wraps instead of horizontal overflow */
.adminnav.compact-adminnav{
  flex-wrap:wrap!important;
  overflow-x:visible!important;
  align-items:stretch!important;
  row-gap:0!important;
  padding:0 32px!important;
}
.adminnav.compact-adminnav a{
  flex:0 0 auto!important;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:10px 14px!important;
  font-size:14px!important;
}
.narrow-card{max-width:720px;margin:24px auto!important;}
.password-gate-form{grid-template-columns:1fr auto!important;align-items:end;}
.password-gate-form input[type="password"]{min-height:42px;}
@media(max-width:760px){
  .adminnav.compact-adminnav{padding:0 12px!important;}
  .adminnav.compact-adminnav a{font-size:13px!important;padding:9px 10px!important;}
  .password-gate-form{grid-template-columns:1fr!important;}
}

/* v1.82: settings for public menu visibility */
.menu-settings-form .data-table td:first-child,
.menu-settings-form .data-table th:first-child{width:90px;text-align:center;}
.menu-settings-form input[type="checkbox"]{width:18px;height:18px;}
.notice.success{border-left:4px solid #385f3c;background:#eef5ef;padding:10px 12px;margin:12px 0;color:#1f3f22;}
.form-actions{margin-top:16px;display:flex;gap:10px;}

/* v1.88: compact group picker toolbar - remove accidental oversized white area under 'Szukaj grupy' */
.group-tree-dialog .group-tree-toolbar.group-tree-toolbar-polished{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:10px!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  padding:8px 12px!important;
  background:#fff!important;
}
.group-tree-dialog .group-tree-search-wrap{
  flex:1 1 360px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  gap:4px!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
}
.group-tree-dialog .group-tree-search-wrap label{
  display:block!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  line-height:1.15!important;
  margin:0!important;
  padding:0!important;
}
.group-tree-dialog #groupTreeSearch{
  display:block!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  margin:0!important;
}
.group-tree-dialog .group-tree-toolbar-actions{
  flex:0 1 auto!important;
  align-self:flex-end!important;
  margin:0!important;
  padding:0!important;
}
@media(max-width:760px){
  .group-tree-dialog .group-tree-toolbar.group-tree-toolbar-polished{flex-direction:column!important;align-items:stretch!important;gap:8px!important;}
  .group-tree-dialog .group-tree-toolbar-actions{align-self:stretch!important;}
}

/* v1.89: hard fix for oversized blank space in the group picker search area */
.group-tree-dialog .group-tree-toolbar,
.group-tree-dialog .group-tree-toolbar-polished{
  display:grid!important;
  grid-template-columns:minmax(260px, 1fr) auto!important;
  align-items:end!important;
  align-content:start!important;
  gap:10px!important;
  padding:8px 12px!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  background:#fff!important;
}
.group-tree-dialog .group-tree-search-wrap{
  display:grid!important;
  grid-template-rows:14px 36px!important;
  align-items:start!important;
  align-content:start!important;
  justify-items:stretch!important;
  justify-content:stretch!important;
  gap:4px!important;
  height:54px!important;
  min-height:54px!important;
  max-height:54px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
.group-tree-dialog .group-tree-search-wrap label,
.group-tree-dialog label[for="groupTreeSearch"]{
  display:block!important;
  height:14px!important;
  min-height:14px!important;
  max-height:14px!important;
  line-height:14px!important;
  margin:0!important;
  padding:0!important;
  font-size:11px!important;
  letter-spacing:.05em!important;
  text-transform:uppercase!important;
}
.group-tree-dialog #groupTreeSearch{
  display:block!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  line-height:36px!important;
  margin:0!important;
  padding:0 12px!important;
  box-sizing:border-box!important;
}
.group-tree-dialog .group-tree-toolbar-actions{
  align-self:end!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:0!important;
  padding:0!important;
}
.group-tree-dialog .group-tree-toolbar-actions button{
  min-height:36px!important;
  height:36px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
@media(max-width:760px){
  .group-tree-dialog .group-tree-toolbar,
  .group-tree-dialog .group-tree-toolbar-polished{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .group-tree-dialog .group-tree-toolbar-actions button{
    height:auto!important;
    min-height:34px!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
}

/* v1.90: interactive planner vertical scrolling fix */
.planner-main.card{
  height:calc(100vh - 150px)!important;
  max-height:calc(100vh - 150px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
.planner-main{
  overflow-x:auto!important;
  overflow-y:auto!important;
}
.planner-grid{
  height:auto!important;
  min-height:calc(100vh - 194px)!important;
  overflow:visible!important;
  align-items:stretch!important;
}
.planner-grid .time-scale,
.planner-grid .day-col{
  min-height:1440px!important;
}
.compact-toolbar,
.planner-toolbar{
  position:sticky!important;
  top:0!important;
  left:0!important;
  z-index:80!important;
  background:#fff!important;
}
@media(max-width:900px){
  .planner-main.card{
    height:calc(100vh - 178px)!important;
    max-height:calc(100vh - 178px)!important;
    overflow:auto!important;
  }
  .planner-grid{
    height:auto!important;
    min-height:calc(100vh - 228px)!important;
  }
}

/* v1.91: uporządkowane rozwijane menu panelu administracyjnego */
.adminnav.adminnav-dropdown{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  flex-wrap:wrap!important;
  overflow:visible!important;
  padding:6px 18px!important;
  background:#f4f4f4!important;
  border-bottom:1px solid #d7d7d7!important;
  position:sticky!important;
  top:0!important;
  z-index:1000!important;
}
.adminnav-dropdown a,
.adminnav-dropdown summary{
  display:flex!important;
  align-items:center!important;
  min-height:28px!important;
  padding:6px 10px!important;
  border:1px solid #d7d7d7!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#111!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.1!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  list-style:none!important;
}
.adminnav-dropdown summary::-webkit-details-marker{display:none!important;}
.adminnav-dropdown summary::after{
  content:"›";
  display:inline-block;
  margin-left:8px;
  font-size:12px;
  transform:rotate(90deg);
  color:#555;
}
.adminnav-dropdown details[open] summary::after{transform:rotate(-90deg);}
.adminnav-dropdown .adminnav-primary{
  background:#111!important;
  color:#fff!important;
  border-color:#111!important;
}
.adminnav-dropdown .adminnav-home{background:#e9ecef!important;}
.adminnav-group{position:relative!important;}
.adminnav-menu{
  display:none;
  position:absolute;
  left:0;
  top:calc(100% + 4px);
  min-width:220px;
  padding:6px;
  background:#fff;
  border:1px solid #cfcfcf;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  z-index:1200;
}
.adminnav-group[open] .adminnav-menu{display:grid!important;gap:4px!important;}
.adminnav-menu a{
  justify-content:flex-start!important;
  border:0!important;
  border-radius:4px!important;
  background:#fff!important;
  padding:8px 10px!important;
  color:#111!important;
}
.adminnav-menu a:hover,
.adminnav-dropdown summary:hover,
.adminnav-dropdown > a:hover{background:#eeeeee!important;}
.admin-landing{display:grid;grid-template-columns:1fr;gap:12px;}
.admin-group-card{
  background:#fff;
  border:1px solid #d7d7d7;
  padding:14px;
}
.admin-group-card h2{margin:0 0 4px;font-size:18px;color:#111;}
.admin-group-card p{margin:0 0 10px;font-size:13px;color:#555;}
.admin-group-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.admin-group-links.compact{grid-template-columns:repeat(5,minmax(0,1fr));}
.admin-group-links .dash-card{
  min-height:72px!important;
  padding:12px!important;
  border-radius:8px!important;
  box-shadow:none!important;
}
.admin-group-links .dash-card.primary{background:#111!important;color:#fff!important;border-color:#111!important;}
.admin-group-links .dash-card span{display:block;margin-top:4px;font-size:12px;color:#666;font-weight:400;}
.admin-group-links .dash-card.primary span{color:#e5e5e5!important;}
@media(max-width:900px){
  .adminnav.adminnav-dropdown{position:relative!important;top:auto!important;align-items:flex-start!important;overflow:visible!important;}
  .adminnav-group{position:static!important;}
  .adminnav-menu{left:8px!important;right:8px!important;min-width:0!important;width:auto!important;}
  .admin-group-links,.admin-group-links.compact{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:520px){
  .admin-group-links,.admin-group-links.compact{grid-template-columns:1fr!important;}
}

/* v1.92: backup database panel and empty public start */
.empty-start-plan{min-height:360px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border-style:dashed;background:#fff}.empty-start-plan h2{margin:0 0 8px;color:#102a43}.empty-start-plan p{margin:0;color:#65758b;max-width:560px}.backup-actions{margin-top:12px}.notice{border:1px solid #d8e2ef;border-radius:10px;padding:10px 12px;margin:10px 0;background:#f7f9fc}.notice.success{border-color:#b8d7c3;background:#f3faf5;color:#153d24}.notice.warning{border-color:#e0c58d;background:#fff8e8;color:#5c4513}.backup-card .table-wrap form{margin:0}.backup-card code{font-size:12px}.adminnav-menu a[href='/admin/backups']{border-top:1px solid #d8e2ef;margin-top:4px;padding-top:8px}

/* v1.94: compact interactive planner selection bar */
.planner-side.card.planner-top-panel.planner-compact-panel.planner-side-v132{
  display:grid!important;
  grid-template-columns:minmax(170px,220px) minmax(260px,1.45fr) minmax(230px,1.05fr) minmax(230px,1.05fr) minmax(120px,140px) minmax(128px,150px)!important;
  grid-auto-flow:row!important;
  align-items:end!important;
  column-gap:8px!important;
  row-gap:6px!important;
  padding:8px 10px!important;
  margin:0 0 6px 0!important;
  min-height:0!important;
  overflow:visible!important;
}
.planner-side-v132 .group-picker-field.group-choice-box{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto 30px!important;
  gap:3px!important;
  align-self:end!important;
}
.planner-side-v132 .group-choice-title{
  display:none!important;
}
.planner-side-v132 .group-choice-button{
  min-height:30px!important;
  height:30px!important;
  padding:4px 8px!important;
  border-radius:6px!important;
  font-size:12px!important;
  line-height:1!important;
  width:100%!important;
}
.planner-side-v132 .group-picker-summary{
  min-height:0!important;
  height:26px!important;
  padding:2px 6px!important;
  border-radius:6px!important;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  max-width:none!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
.planner-side-v132 .group-summary-count{
  margin:0!important;
  flex:0 0 auto!important;
  font-size:10px!important;
  line-height:1!important;
}
.planner-side-v132 .group-summary-chips{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:4px!important;
  min-width:0!important;
  overflow:hidden!important;
}
.planner-side-v132 .group-summary-chip{
  max-width:58px!important;
  height:19px!important;
  padding:2px 6px!important;
  font-size:10px!important;
  line-height:1!important;
}
.planner-side-v132 > label{
  display:grid!important;
  grid-template-rows:14px 30px!important;
  gap:2px!important;
  margin:0!important;
  min-width:0!important;
  width:100%!important;
  font-size:10.5px!important;
  line-height:1!important;
  color:#111827!important;
}
.planner-side-v132 > label select,
.planner-side-v132 > label input{
  height:30px!important;
  min-height:30px!important;
  width:100%!important;
  min-width:0!important;
  padding:3px 8px!important;
  font-size:12px!important;
  border-radius:4px!important;
  box-sizing:border-box!important;
}
.planner-side-v132 .add-lesson-btn{
  height:30px!important;
  min-height:30px!important;
  align-self:end!important;
  margin:0!important;
  padding:4px 10px!important;
  font-size:12px!important;
  border-radius:6px!important;
  white-space:nowrap!important;
}
.planner-side-v132 #slotInspector,
.planner-side-v132 #plannerStatus{
  grid-column:1/-1!important;
  margin:0!important;
  min-height:0!important;
  padding:5px 8px!important;
  font-size:11px!important;
  line-height:1.2!important;
  border-radius:6px!important;
}
.planner-side-v132 #plannerStatus:not(.compact-hidden){
  display:block!important;
  max-width:none!important;
}
@media(max-width:1250px){
  .planner-side.card.planner-top-panel.planner-compact-panel.planner-side-v132{
    grid-template-columns:minmax(160px,210px) minmax(240px,1fr) minmax(210px,1fr) minmax(210px,1fr) minmax(115px,130px) minmax(124px,140px)!important;
  }
}
@media(max-width:980px){
  .planner-side.card.planner-top-panel.planner-compact-panel.planner-side-v132{
    grid-template-columns:1fr 1fr!important;
    row-gap:7px!important;
  }
  .planner-side-v132 .add-lesson-btn{justify-self:start!important;min-width:140px!important;}
}
@media(max-width:620px){
  .planner-side.card.planner-top-panel.planner-compact-panel.planner-side-v132{
    grid-template-columns:1fr!important;
  }
}


/* v1.104: public preview multi-group selector placed below teacher/room; layout repair */
body main.wrap > .public-plan-two-col > .public-plan-filters-col{
  display:block!important;
  align-content:start!important;
  gap:0!important;
}
body main.wrap > .public-plan-two-col > .public-plan-filters-col .public-filter-box{
  width:100%!important;
  box-sizing:border-box!important;
}
body main.wrap > .public-plan-two-col > .public-plan-filters-col .public-filter-box-secondary{
  margin-top:14px!important;
  padding-top:12px!important;
  border-top:1px solid #c9c9c9!important;
}
body main.wrap > .public-plan-two-col > .public-plan-filters-col .public-multi-group-box{
  margin-top:14px!important;
  padding-top:12px!important;
  border-top:1px solid #c9c9c9!important;
}
.public-multi-group-box .public-group-tree-open{
  width:100%!important;
  min-height:32px!important;
  margin:0 0 8px!important;
  border-radius:0!important;
  box-sizing:border-box!important;
}
.public-multi-group-box .group-picker-summary{
  width:100%!important;
  box-sizing:border-box!important;
  min-height:34px!important;
  margin:0!important;
  padding:6px 8px!important;
  border:1px solid #d1d5db!important;
  border-radius:0!important;
  background:#fff!important;
  font-size:11px!important;
  line-height:1.25!important;
  overflow:hidden!important;
}
.public-multi-group-box .group-summary-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:4px!important;
}
.public-multi-group-box .group-summary-chip{
  max-width:100%!important;
  font-size:10.5px!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  box-sizing:border-box!important;
}
#publicGroupTreeModal.group-tree-modal.hidden{display:none!important;}
#publicGroupTreeModal.group-tree-modal:not(.hidden){
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:12px!important;
  box-sizing:border-box!important;
}
#publicGroupTreeModal .group-tree-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.45)!important;
}
#publicGroupTreeModal .group-tree-dialog{
  position:relative!important;
  width:min(900px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 24px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 18px 60px rgba(0,0,0,.28)!important;
}
#publicGroupTreeModal .group-tree-head,
#publicGroupTreeModal .group-tree-toolbar,
#publicGroupTreeModal .group-tree-meta-row,
#publicGroupTreeModal .group-tree-footer{
  flex:0 0 auto!important;
}
#publicGroupTreeModal .group-tree-list{
  flex:1 1 auto!important;
  min-height:220px!important;
  max-height:none!important;
  overflow:auto!important;
}
#publicGroupTreeModal .gt-row{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
#publicGroupTreeModal .gt-toggle{
  width:22px!important;
  min-width:22px!important;
  height:22px!important;
  border:0!important;
  background:transparent!important;
  color:#334155!important;
  cursor:pointer!important;
  padding:0!important;
  font-size:12px!important;
  line-height:22px!important;
}
#publicGroupTreeModal .gt-toggle::before{content:'▸';}
#publicGroupTreeModal .gt-node.open > .gt-row .gt-toggle::before{content:'▾';}
#publicGroupTreeModal .gt-children{display:none!important;}
#publicGroupTreeModal .gt-node.open > .gt-children{display:block!important;}
#publicGroupTreeModal .gt-branch-label,
#publicGroupTreeModal .gt-leaf{
  box-sizing:border-box!important;
}
@media(max-width:760px){
  body main.wrap > .public-plan-two-col > .public-plan-filters-col .public-multi-group-box{margin-top:10px!important;padding-top:10px!important;}
  #publicGroupTreeModal.group-tree-modal:not(.hidden){padding:6px!important;}
  #publicGroupTreeModal .group-tree-dialog{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important;}
}

/* v1.105: public preview visual separation between left menu and timetable */
body main.wrap > .public-plan-two-col{
  grid-template-columns:270px minmax(0,1fr)!important;
  gap:22px!important;
  padding:2px 0!important;
  background:#f4f7fb!important;
}
body main.wrap > .public-plan-two-col > .public-plan-filters-col{
  width:270px!important;
  min-width:270px!important;
  max-width:270px!important;
  background:#ffffff!important;
  border:1px solid #d5dde7!important;
  border-left:0!important;
  border-radius:10px!important;
  padding:12px!important;
  box-shadow:0 1px 0 rgba(15,23,42,.04)!important;
}
body main.wrap > .public-plan-two-col > .public-plan-table-col{
  min-width:0!important;
  padding:0!important;
  background:transparent!important;
}
.public-current-title{
  margin:0 0 8px!important;
  border:1px solid #d5dde7!important;
  border-radius:10px 10px 0 0!important;
  border-bottom:0!important;
  background:#ffffff!important;
  padding:9px 12px!important;
}
.public-plan-table-col .public-plan-shell{
  border:1px solid #d5dde7!important;
  border-radius:0 0 10px 10px!important;
  background:#ffffff!important;
  box-shadow:0 1px 0 rgba(15,23,42,.04)!important;
}
.public-filter-box{
  background:#fff!important;
}
.public-filter-title{
  color:#0f172a!important;
}
.public-tree summary{
  border-radius:6px!important;
  margin-bottom:2px!important;
}
.public-filter-box-secondary,
.public-multi-group-box{
  border-top:1px solid #e2e8f0!important;
}
.public-plan-filters-col select,
.public-plan-filters-col input,
.public-multi-group-box .group-picker-summary,
.public-multi-group-box .public-group-tree-open{
  border-radius:6px!important;
}
@media(max-width:900px){
  body main.wrap > .public-plan-two-col{
    grid-template-columns:1fr!important;
    gap:10px!important;
    background:transparent!important;
  }
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    border-radius:8px!important;
  }
}
@media(max-width:760px){
  body main.wrap > .public-plan-two-col{
    gap:0!important;
    background:transparent!important;
  }
  body main.wrap > .public-plan-two-col > .public-plan-filters-col{
    width:260px!important;
    min-width:260px!important;
    max-width:260px!important;
    border-radius:8px!important;
  }
  .public-current-title{border-radius:8px!important;border-bottom:1px solid #d5dde7!important;}
  .public-plan-table-col .public-plan-shell{border-radius:8px!important;}
}

/* v2.6: persistent copyright footer */
html, body{
  min-height:100%;
}
body{
  display:flex!important;
  flex-direction:column!important;
  min-height:100vh!important;
}
main.wrap{
  flex:1 0 auto!important;
}
.site-footer{
  display:block!important;
  flex:0 0 auto!important;
  width:100%!important;
  margin-top:24px!important;
  padding:14px 24px!important;
  border-top:1px solid #d6dde6!important;
  background:#f7f9fb!important;
  color:#475569!important;
  text-align:center!important;
  font-size:12px!important;
  line-height:1.45!important;
}
.site-footer-inner{
  max-width:1440px!important;
  margin:0 auto!important;
}
.site-footer-title{
  font-weight:700!important;
  color:#1f2937!important;
}
.site-footer-meta{
  margin-top:2px!important;
  color:#64748b!important;
}
@media(max-width:760px){
  .site-footer{
    display:block!important;
    padding:10px 12px!important;
    font-size:11px!important;
  }
}


/* v2.7: wyszukiwalne pola wyboru nauczycieli */
.teacher-search-widget{position:relative;width:100%;}
.teacher-original-select{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}
.teacher-search-input{width:100%;box-sizing:border-box;}
.teacher-search-results{position:absolute;z-index:9999;left:0;right:0;top:calc(100% + 4px);max-height:260px;overflow:auto;background:#fff;border:1px solid #c9d2dc;border-radius:10px;box-shadow:0 10px 28px rgba(15,35,55,.16);padding:5px;}
.teacher-search-results.hidden{display:none!important;}
.teacher-search-option{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:8px;color:#10233d;font-weight:600;cursor:pointer;line-height:1.25;}
.teacher-search-option:hover,.teacher-search-option.keyboard-active{background:#edf3f8;}
.teacher-search-option.selected{background:#dfeaf3;}
.teacher-search-empty{padding:10px;color:#667085;font-size:13px;}
.planner-side .teacher-search-widget{margin-top:5px;}
.filterbar .teacher-search-widget{min-width:260px;}
.gridform .teacher-search-widget{min-width:0;}
/* v2.8 - konta i uprawnienia */
.panel-card{background:#fff;border:1px solid #d8e2ef;border-radius:12px;padding:16px;margin:14px 0;}
.panel-card h2{margin-top:0;}
.data-table{width:100%;border-collapse:collapse;background:#fff;}
.data-table th,.data-table td{border:1px solid #e1e7ef;padding:8px 10px;text-align:left;vertical-align:top;}
.data-table th{background:#f2f5f8;font-weight:700;}
.actions-cell{min-width:360px;}
.inline-form{display:inline-flex;gap:6px;align-items:center;margin:2px 4px 2px 0;}
.copy-input{width:100%;max-width:720px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;}
.muted{color:#667085;}
/* v2.18: download and upload database backups */
.backup-actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.backup-upload-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.backup-upload-form input[type=file]{border:1px solid #d8e2ef;border-radius:8px;padding:8px;background:#fff;min-width:280px}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.button.secondary{display:inline-flex;align-items:center;justify-content:center;border:1px solid #ccd6e2;background:#fff;color:#102a43;border-radius:8px;padding:8px 12px;text-decoration:none;font-weight:600}.button.secondary:hover{background:#f4f7fb}


/* v2.19: estetyczny eksport PDF aktualnie wyświetlanego planu */
.public-current-title-with-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
}
.pdf-download-btn{
  appearance:none!important;
  border:1px solid #111!important;
  background:#111!important;
  color:#fff!important;
  padding:5px 10px!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1.15!important;
  cursor:pointer!important;
  border-radius:0!important;
  white-space:nowrap!important;
}
.pdf-download-btn:hover{background:#333!important;border-color:#333!important;}
.print-plan-meta{display:none!important;}

@media print{
  @page{size:A4 landscape;margin:8mm;}
  html,body{
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    color:#111!important;
    font-family:Arial, Helvetica, sans-serif!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  body *{visibility:hidden!important;}
  .public-plan-table-col,
  .public-plan-table-col *{visibility:visible!important;}
  .public-plan-table-col{
    position:absolute!important;
    left:0!important;
    top:0!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    background:#fff!important;
  }
  .pl-topbar,.pl-brandbar,.pl-mainnav,.adminnav,.site-footer,
  .public-plan-filters-col,.mobile-group-picker,.public-mobile-schedule-cards,
  .pdf-download-btn,.one-off-list,.card h2{display:none!important;}
  .public-current-title{
    display:block!important;
    border:0!important;
    border-bottom:2px solid #111!important;
    padding:0 0 4mm 0!important;
    margin:0 0 4mm 0!important;
    background:#fff!important;
    color:#111!important;
    font-size:13pt!important;
    line-height:1.25!important;
  }
  .public-current-title strong{
    display:block!important;
    font-size:15pt!important;
    font-weight:900!important;
    letter-spacing:.01em!important;
  }
  .public-current-title::after{
    content:'Wydział Budownictwa i Architektury Politechniki Lubelskiej · wygenerowano z systemu WBiA Planer';
    display:block!important;
    margin-top:1.5mm!important;
    color:#444!important;
    font-size:8pt!important;
    font-weight:600!important;
  }
  .public-plan-shell{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    width:100%!important;
    overflow:visible!important;
    border:0!important;
    background:#fff!important;
  }
  .public-plan-scroll{
    display:block!important;
    height:auto!important;
    width:100%!important;
    overflow:visible!important;
  }
  .public-grid-schedule.public-grid-schedule-split{
    --slot-h:10.2px!important;
    --time-col:40px!important;
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    grid-template-columns:var(--time-col) repeat(var(--day-pair-count), minmax(0, 1fr))!important;
    grid-template-rows:22px 16px repeat(var(--slot-count), var(--slot-h))!important;
    border:1px solid #111!important;
    overflow:visible!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
  .public-grid-head{
    background:#172033!important;
    color:#fff!important;
    border-right:1px solid #fff!important;
    border-bottom:1px solid #111!important;
    padding:2px 3px!important;
    font-size:7.2pt!important;
    line-height:1.05!important;
    font-weight:900!important;
    text-align:center!important;
  }
  .public-grid-time-head{
    height:38px!important;
    min-height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .public-grid-week-head{
    height:16px!important;
    min-height:16px!important;
    line-height:13px!important;
    font-size:5.8pt!important;
    background:#4b5563!important;
    color:#fff!important;
  }
  .public-grid-time{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:center!important;
    min-height:var(--slot-h)!important;
    height:var(--slot-h)!important;
    padding:0!important;
    border-right:1px solid #111!important;
    border-top:1px solid #d1d5db!important;
    background:#f3f4f6!important;
    color:#111!important;
    font-size:5.8pt!important;
    font-weight:700!important;
    line-height:1!important;
  }
  .public-grid-time.major{
    border-top:1px solid #111!important;
    font-weight:900!important;
  }
  .public-grid-cell{
    min-height:var(--slot-h)!important;
    height:var(--slot-h)!important;
    border-right:1px solid #d1d5db!important;
    border-top:1px solid #edf0f3!important;
    background:#fff!important;
  }
  .public-grid-cell.major{border-top:1px solid #b4b9c0!important;}
  .public-grid-schedule-split .week2-cell{background:#f7f8fa!important;border-right:1px solid #9ca3af!important;}
  .public-grid-event{
    margin:1px!important;
    padding:2px 3px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    border:1px solid #334155!important;
    border-left:3px solid #174ea6!important;
    border-radius:0!important;
    background:#eef4ff!important;
    box-shadow:none!important;
    color:#111!important;
    transform:none!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
  .public-grid-event.week-week1{background:#edf5ff!important;border-left-color:#2563eb!important;}
  .public-grid-event.week-week2{background:#f4efff!important;border-left-color:#6d28d9!important;}
  .public-grid-event.week-both,.public-grid-event.week-{background:#eaf7ef!important;border-left-color:#00843d!important;}
  .public-grid-event .event-time{
    display:block!important;
    font-size:5.8pt!important;
    line-height:1.05!important;
    font-weight:900!important;
    color:#111!important;
    margin:0 0 1px!important;
  }
  .public-grid-event b{
    display:block!important;
    font-size:6.2pt!important;
    line-height:1.08!important;
    color:#0b1f33!important;
    font-weight:900!important;
    margin:0 0 1px!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  .public-grid-event .event-kind,
  .public-grid-event .event-week{
    display:inline-block!important;
    padding:0 2px!important;
    margin:0 1px 1px 0!important;
    border:1px solid #cbd5e1!important;
    border-radius:0!important;
    background:#fff!important;
    color:#111!important;
    font-size:4.8pt!important;
    line-height:1.1!important;
    font-weight:900!important;
    text-transform:none!important;
    letter-spacing:0!important;
    width:auto!important;
  }
  .public-grid-event .event-teacher,
  .public-grid-event .event-group,
  .public-grid-event .event-room,
  .public-grid-event .event-notes{
    display:block!important;
    color:#222!important;
    font-size:5.2pt!important;
    line-height:1.05!important;
    font-style:normal!important;
    font-weight:700!important;
    margin:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .public-grid-event .event-notes{
    border-top:1px dotted #9ca3af!important;
    margin-top:1px!important;
    padding-top:1px!important;
  }

  /* v2.23: w PDF zamiast etykiety trybu tygodnia pokazuj numer sali */
  .public-grid-event .event-week{
    font-size:0!important;
    color:transparent!important;
  }
  .public-grid-event .event-week::after{
    content:attr(data-room)!important;
    display:inline!important;
    font-size:4.8pt!important;
    line-height:1.1!important;
    color:#111!important;
    font-weight:900!important;
  }
  .public-grid-event .event-room{
    display:none!important;
  }
  .public-grid-event:hover{
    transform:none!important;
    box-shadow:none!important;
    border:1px solid #334155!important;
    border-left-width:3px!important;
    min-height:0!important;
  }
}


/* v2.21: usuniecie wszystkich tekstowych podpowiedzi mobilnych z naglowka planu */
@media(max-width:760px){
  .public-current-title::after,
  .public-plan-mobile-hint{
    content:''!important;
    display:none!important;
  }
}


/* v2.28: odróżnienie kolorystyczne trybów interaktywnego planera */
.planner-mode-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:4px;
  border:1px solid #cfd4d9;
  background:#f4f5f6;
  color:#1f2937;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}
.planner-mode-group .planner-mode-badge{
  background:#eef4fb!important;
  border-color:#9fb6cf!important;
  color:#17324d!important;
}
.planner-mode-teacher .planner-mode-badge{
  background:#edf7f0!important;
  border-color:#9bbfa6!important;
  color:#23432c!important;
}
.planner-mode-room .planner-mode-badge{
  background:#fbf3e4!important;
  border-color:#cfb077!important;
  color:#5a3b12!important;
}
.planner-mode-group .lesson-block.context-primary{
  background:#eef4fb!important;
  border:1px solid #9fb6cf!important;
  border-left:5px solid #2f5f8f!important;
  color:#172b3f!important;
}
.planner-mode-teacher .lesson-block.context-primary{
  background:#edf7f0!important;
  border:1px solid #9bbfa6!important;
  border-left:5px solid #3f7a4d!important;
  color:#1f3b27!important;
}
.planner-mode-room .lesson-block.context-primary{
  background:#fbf3e4!important;
  border:1px solid #cfb077!important;
  border-left:5px solid #9a6a1d!important;
  color:#4a3211!important;
}
.planner-mode-group .live-lesson-card{
  background:#eef4fb!important;
  border-color:#9fb6cf!important;
}
.planner-mode-teacher .live-lesson-card{
  background:#edf7f0!important;
  border-color:#9bbfa6!important;
}
.planner-mode-room .live-lesson-card{
  background:#fbf3e4!important;
  border-color:#cfb077!important;
}
.planner-mode-group .planner-main.card{border-top:4px solid #2f5f8f!important;}
.planner-mode-teacher .planner-main.card{border-top:4px solid #3f7a4d!important;}
.planner-mode-room .planner-main.card{border-top:4px solid #9a6a1d!important;}


/* v2.28: stabilne kolory typów planu niezależnie od trybu widoku */
.lesson-block.context-group,
.ghost-block.context-group{
  border-left-color:#2f5f8f!important;
}
.lesson-block.context-teacher,
.ghost-block.context-teacher{
  border-left-color:#3f7a4d!important;
}
.lesson-block.context-room,
.ghost-block.context-room{
  border-left-color:#9a6a1d!important;
}
.lesson-block.context-group.context-primary{
  background:#eef4fb!important;
  border-color:#9fb6cf!important;
}
.lesson-block.context-teacher.context-primary{
  background:#edf7f0!important;
  border-color:#9bbfa6!important;
}
.lesson-block.context-room.context-primary{
  background:#fbf3e4!important;
  border-color:#cfb077!important;
}
.ghost-block.context-group{
  background:#eef4fb!important;
  border:1px dashed #9fb6cf!important;
  opacity:.74!important;
}
.ghost-block.context-teacher{
  background:#edf7f0!important;
  border:1px dashed #9bbfa6!important;
  opacity:.74!important;
}
.ghost-block.context-room{
  background:#fbf3e4!important;
  border:1px dashed #cfb077!important;
  opacity:.74!important;
}

/* v2.29: wybór wielu grup w module odrabiania zajęć */
.makeup-group-picker{min-width:260px;align-self:stretch;}
.makeup-group-picker .group-choice-button{width:100%;justify-content:center;}
.makeup-group-picker .group-picker-summary{min-height:42px;}


/* v2.30: uporządkowanie stylów wyboru wielu grup w module odrabiania zajęć */
.makeup-controls{
  display:grid!important;
  grid-template-columns:minmax(250px,1.15fr) minmax(320px,1.55fr) repeat(auto-fit,minmax(150px,1fr));
  gap:14px!important;
  align-items:stretch!important;
}
.makeup-controls > label,
.makeup-controls .makeup-group-picker{
  margin:0!important;
  min-width:0!important;
  width:100%!important;
  padding:12px!important;
  border:1px solid #d8e0ea!important;
  border-radius:10px!important;
  background:#ffffff!important;
  color:#334155!important;
  font-size:13px!important;
  font-weight:800!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:7px!important;
  box-shadow:0 1px 0 rgba(15,23,42,.03)!important;
}
.makeup-controls > label select,
.makeup-controls > label input{
  margin:0!important;
  min-width:0!important;
  width:100%!important;
  height:40px!important;
  border-radius:8px!important;
  border:1px solid #cfd8e3!important;
  background:#fff!important;
}
.makeup-controls .check.wide{
  min-height:66px!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
}
.makeup-controls .check.wide input{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  margin:0!important;
}
.makeup-controls #m_search{
  align-self:stretch!important;
  min-height:66px!important;
  border-radius:10px!important;
  background:#111827!important;
  color:#fff!important;
  letter-spacing:.01em!important;
}
.makeup-group-picker .group-choice-title{
  margin:0!important;
  color:#334155!important;
  font-size:13px!important;
  font-weight:900!important;
}
.makeup-group-picker .group-choice-button{
  width:100%!important;
  min-height:40px!important;
  margin:0!important;
  border-radius:8px!important;
  justify-content:center!important;
  background:#f8fafc!important;
  border:1px solid #cfd8e3!important;
  color:#111827!important;
}
.makeup-group-picker .group-picker-summary{
  width:100%!important;
  max-width:none!important;
  min-height:42px!important;
  margin:0!important;
  padding:7px 9px!important;
  border-radius:8px!important;
  border:1px solid #cfd8e3!important;
  background:#fbfcfe!important;
  color:#334155!important;
  font-size:11.5px!important;
  line-height:1.25!important;
  overflow:hidden!important;
}
.makeup-group-picker .group-picker-summary.empty{
  color:#6b7280!important;
  background:#fff!important;
  border-style:dashed!important;
}
.makeup-group-picker .group-summary-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:4px!important;
}
.makeup-group-picker .group-summary-chip{
  max-width:120px!important;
  padding:2px 7px!important;
  border-radius:999px!important;
  background:#eef4fb!important;
  border:1px solid #d8e5f2!important;
  color:#0f172a!important;
  font-size:10.5px!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#makeupGroupTreeModal.group-tree-modal.hidden{display:none!important;}
#makeupGroupTreeModal.group-tree-modal:not(.hidden){
  position:fixed!important;
  inset:0!important;
  z-index:10000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:12px!important;
  box-sizing:border-box!important;
}
#makeupGroupTreeModal .group-tree-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.45)!important;
}
#makeupGroupTreeModal .group-tree-dialog{
  position:relative!important;
  margin:0!important;
  width:min(900px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 24px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border:1px solid #d5dde7!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 18px 60px rgba(0,0,0,.28)!important;
}
#makeupGroupTreeModal .group-tree-head,
#makeupGroupTreeModal .group-tree-toolbar,
#makeupGroupTreeModal .group-tree-meta-row,
#makeupGroupTreeModal .group-tree-footer{
  flex:0 0 auto!important;
}
#makeupGroupTreeModal .group-tree-head{
  padding:14px 16px!important;
  background:#f8fafc!important;
  border-bottom:1px solid #dbe2ea!important;
}
#makeupGroupTreeModal .group-tree-head h3{
  margin:0 0 3px!important;
  font-size:18px!important;
  color:#0f172a!important;
}
#makeupGroupTreeModal .group-tree-head p{
  margin:0!important;
  color:#64748b!important;
  font-size:12.5px!important;
  line-height:1.35!important;
}
#makeupGroupTreeModal .group-tree-toolbar.group-tree-toolbar-polished{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:flex-end!important;
  gap:10px!important;
  padding:12px 16px!important;
  background:#fff!important;
  border-bottom:1px solid #e5e7eb!important;
}
#makeupGroupTreeModal .group-tree-search-wrap{
  flex:1 1 300px!important;
  min-width:260px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
#makeupGroupTreeModal .group-tree-search-wrap label{
  margin:0!important;
  color:#334155!important;
  font-size:12px!important;
  font-weight:900!important;
}
#makeupGroupTreeModal #makeupGroupTreeSearch{
  height:36px!important;
  border-radius:8px!important;
  border:1px solid #cfd8e3!important;
  font-size:13px!important;
}
#makeupGroupTreeModal .group-tree-toolbar-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:6px!important;
}
#makeupGroupTreeModal .group-tree-toolbar-actions button,
#makeupGroupTreeModal #makeupGroupTreeClose{
  min-height:34px!important;
  padding:7px 10px!important;
  border-radius:8px!important;
  font-size:12px!important;
  white-space:nowrap!important;
}
#makeupGroupTreeModal .group-tree-meta-row{
  display:grid!important;
  grid-template-columns:minmax(190px,260px) minmax(0,1fr)!important;
  gap:10px!important;
  padding:8px 16px!important;
  background:#fbfcfe!important;
  border-bottom:1px solid #e5e7eb!important;
}
#makeupGroupTreeModal .group-tree-target-info{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#334155!important;
  font-size:12px!important;
  font-weight:900!important;
}
#makeupGroupTreeModal .group-tree-selected-preview{
  min-height:28px!important;
  max-height:38px!important;
  overflow:auto!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:4px!important;
  align-items:flex-start!important;
  color:#64748b!important;
  font-size:11px!important;
}
#makeupGroupTreeModal .group-tree-selected-preview span{
  display:inline-flex!important;
  align-items:center!important;
  padding:2px 7px!important;
  border-radius:999px!important;
  background:#eef4fb!important;
  border:1px solid #d8e5f2!important;
  color:#0f172a!important;
  font-weight:800!important;
}
#makeupGroupTreeModal .group-tree-list{
  flex:1 1 auto!important;
  min-height:220px!important;
  max-height:none!important;
  overflow:auto!important;
  padding:12px 16px!important;
  background:#fbfcfe!important;
}
#makeupGroupTreeModal .gt-row{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-height:28px!important;
}
#makeupGroupTreeModal .gt-toggle{
  width:22px!important;
  min-width:22px!important;
  height:22px!important;
  border:0!important;
  background:transparent!important;
  color:#334155!important;
  cursor:pointer!important;
  padding:0!important;
  font-size:12px!important;
  line-height:22px!important;
}
#makeupGroupTreeModal .gt-toggle::before{content:'▸';}
#makeupGroupTreeModal .gt-node.open > .gt-row .gt-toggle::before{content:'▾';}
#makeupGroupTreeModal .gt-children{display:none!important;}
#makeupGroupTreeModal .gt-node.open > .gt-children{display:block!important;}
#makeupGroupTreeModal .gt-node{
  margin:4px 0 4px 12px!important;
}
#makeupGroupTreeModal .gt-branch-label{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:0!important;
  color:#111827!important;
  font-size:13px!important;
  cursor:pointer!important;
}
#makeupGroupTreeModal .gt-groups{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important;
  gap:6px!important;
  margin:6px 0 7px 24px!important;
}
#makeupGroupTreeModal .gt-leaf{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  margin:0!important;
  padding:7px 8px!important;
  border:1px solid #e2e8f0!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#111827!important;
  font-size:12px!important;
  line-height:1.2!important;
}
#makeupGroupTreeModal .gt-leaf:hover{
  background:#f8fafc!important;
  border-color:#94a3b8!important;
}
#makeupGroupTreeModal .gt-leaf small{
  display:block!important;
  margin-top:2px!important;
  color:#64748b!important;
  font-size:10.5px!important;
  line-height:1.25!important;
}
#makeupGroupTreeModal input[type="checkbox"]{
  width:16px!important;
  min-width:16px!important;
  height:16px!important;
  margin:0!important;
  accent-color:#111827!important;
}
#makeupGroupTreeModal .group-tree-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:12px 16px!important;
  background:#f8fafc!important;
  border-top:1px solid #dbe2ea!important;
  font-weight:900!important;
}
#makeupGroupTreeModal .tree-filter-hidden{display:none!important;}
@media(max-width:980px){
  .makeup-controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .makeup-controls .makeup-group-picker{grid-column:1/-1!important;}
}
@media(max-width:760px){
  .makeup-controls{grid-template-columns:1fr!important;gap:10px!important;}
  .makeup-controls > label,
  .makeup-controls .makeup-group-picker{padding:10px!important;}
  .makeup-controls #m_search{min-height:46px!important;}
  #makeupGroupTreeModal.group-tree-modal:not(.hidden){padding:6px!important;align-items:flex-start!important;}
  #makeupGroupTreeModal .group-tree-dialog{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important;}
  #makeupGroupTreeModal .group-tree-head{padding:10px!important;}
  #makeupGroupTreeModal .group-tree-head p{display:none!important;}
  #makeupGroupTreeModal .group-tree-toolbar.group-tree-toolbar-polished{flex-direction:column!important;align-items:stretch!important;padding:10px!important;}
  #makeupGroupTreeModal .group-tree-search-wrap{min-width:0!important;width:100%!important;}
  #makeupGroupTreeModal .group-tree-toolbar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;justify-content:stretch!important;}
  #makeupGroupTreeModal .group-tree-meta-row{grid-template-columns:1fr!important;padding:8px 10px!important;}
  #makeupGroupTreeModal .group-tree-list{padding:8px 10px!important;min-height:180px!important;}
  #makeupGroupTreeModal .gt-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-left:10px!important;}
  #makeupGroupTreeModal .group-tree-footer{padding:10px!important;}
}
@media(max-width:520px){
  #makeupGroupTreeModal .gt-groups{grid-template-columns:1fr!important;}
  #makeupGroupTreeModal .group-tree-toolbar-actions{grid-template-columns:1fr!important;}
}


/* v2.31: compact group picker in makeup module */
.makeup-controls{
  align-items:end!important;
  gap:10px!important;
}
.makeup-controls .makeup-group-picker,
.makeup-controls > label{
  min-height:0!important;
}
.makeup-controls .makeup-group-picker.group-choice-box{
  padding:9px 10px!important;
  border-radius:10px!important;
  gap:6px!important;
}
.makeup-controls .group-choice-title{
  font-size:12px!important;
  line-height:1.1!important;
  margin:0 0 3px!important;
  letter-spacing:.01em!important;
}
.makeup-controls .group-choice-button,
.makeup-controls #makeupGroupTreeOpen{
  min-height:32px!important;
  height:32px!important;
  padding:5px 10px!important;
  border-radius:8px!important;
  font-size:12px!important;
  font-weight:800!important;
  width:auto!important;
  max-width:130px!important;
}
.makeup-controls .group-picker-summary{
  min-height:24px!important;
  padding:0!important;
  margin-top:3px!important;
  gap:4px!important;
  font-size:11px!important;
  line-height:1.15!important;
}
.makeup-controls .group-picker-summary.empty{
  min-height:20px!important;
  color:#64748b!important;
}
.makeup-controls .group-summary-count{
  font-size:10.5px!important;
  font-weight:800!important;
  margin:0 0 2px!important;
  color:#475569!important;
}
.makeup-controls .group-summary-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:3px!important;
  max-height:48px!important;
  overflow:auto!important;
}
.makeup-controls .group-summary-chip{
  display:inline-flex!important;
  align-items:center!important;
  max-width:120px!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  border:1px solid #d9e2ec!important;
  background:#f8fafc!important;
  color:#1f2937!important;
  font-size:10.5px!important;
  font-weight:700!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.makeup-controls .group-summary-chip.more{
  max-width:none!important;
  background:#eef4fb!important;
  color:#0f172a!important;
}
#makeupGroupTreeModal .group-tree-selected-preview{
  max-height:32px!important;
  gap:3px!important;
}
#makeupGroupTreeModal .group-tree-selected-preview span{
  padding:1px 6px!important;
  font-size:10.5px!important;
}
#makeupGroupTreeModal .gt-groups{
  grid-template-columns:repeat(auto-fill,minmax(135px,1fr))!important;
  gap:4px!important;
}
#makeupGroupTreeModal .gt-leaf{
  gap:6px!important;
  padding:5px 6px!important;
  border-radius:7px!important;
  font-size:11px!important;
}
#makeupGroupTreeModal .gt-leaf b{
  font-size:11.5px!important;
}
#makeupGroupTreeModal .gt-leaf small{
  font-size:9.5px!important;
  line-height:1.15!important;
}
#makeupGroupTreeModal input[type="checkbox"]{
  width:13px!important;
  min-width:13px!important;
  height:13px!important;
}
@media(max-width:760px){
  .makeup-controls .makeup-group-picker.group-choice-box{padding:8px!important;}
  .makeup-controls .group-summary-chips{max-height:44px!important;}
  .makeup-controls .group-summary-chip{max-width:105px!important;}
  #makeupGroupTreeModal .gt-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;}
}
@media(max-width:520px){
  #makeupGroupTreeModal .gt-groups{grid-template-columns:1fr!important;}
}


/* v2.32: optimized compact layout for makeup multi-group picker */
.makeup-controls{
  display:grid!important;
  grid-template-columns:minmax(230px,1.25fr) minmax(260px,1.35fr) minmax(150px,.8fr) minmax(92px,.5fr)!important;
  gap:8px!important;
  align-items:stretch!important;
}
.makeup-controls > label,
.makeup-controls .makeup-group-picker.group-choice-box{
  min-width:0!important;
  min-height:58px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid #d8e0ea!important;
  border-radius:9px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.makeup-controls > label{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:4px!important;
  font-size:11px!important;
  line-height:1.15!important;
  font-weight:800!important;
  color:#334155!important;
}
.makeup-controls > label select,
.makeup-controls > label input{
  width:100%!important;
  height:31px!important;
  min-height:31px!important;
  margin:0!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  font-size:12px!important;
  line-height:1.2!important;
}
.makeup-controls .makeup-group-picker.group-choice-box{
  display:grid!important;
  grid-template-columns:auto 76px minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  align-items:center!important;
  column-gap:8px!important;
  row-gap:0!important;
}
.makeup-controls .group-choice-title{
  margin:0!important;
  font-size:11px!important;
  line-height:1.1!important;
  font-weight:900!important;
  color:#334155!important;
  white-space:nowrap!important;
}
.makeup-controls .group-choice-button,
.makeup-controls #makeupGroupTreeOpen{
  width:76px!important;
  max-width:76px!important;
  height:31px!important;
  min-height:31px!important;
  padding:4px 8px!important;
  justify-content:center!important;
  border-radius:7px!important;
  font-size:11.5px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.makeup-controls .group-picker-summary{
  min-width:0!important;
  min-height:31px!important;
  max-height:31px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  color:#475569!important;
}
.makeup-controls .group-picker-summary.empty{
  font-size:11.5px!important;
  line-height:31px!important;
  color:#64748b!important;
}
.makeup-controls .group-summary-count{
  flex:0 0 auto!important;
  margin:0!important;
  font-size:10.5px!important;
  font-weight:900!important;
  color:#475569!important;
  white-space:nowrap!important;
}
.makeup-controls .group-summary-chips{
  min-width:0!important;
  max-height:31px!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:3px!important;
  overflow:hidden!important;
}
.makeup-controls .group-summary-chip{
  max-width:86px!important;
  height:20px!important;
  padding:2px 5px!important;
  border-radius:999px!important;
  font-size:10px!important;
  line-height:14px!important;
  font-weight:800!important;
  background:#f1f5f9!important;
  border:1px solid #dbe3ec!important;
  color:#334155!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.makeup-controls .group-summary-chip.more{
  max-width:40px!important;
  background:#eaf1f8!important;
}
.makeup-controls .check.wide{
  min-height:58px!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  font-size:12px!important;
}
.makeup-controls .check.wide input{
  width:15px!important;
  min-width:15px!important;
  height:15px!important;
}
.makeup-controls #m_search{
  width:100%!important;
  min-height:58px!important;
  height:58px!important;
  align-self:stretch!important;
  border-radius:9px!important;
  font-size:12px!important;
  font-weight:900!important;
  padding:0 12px!important;
}
#makeupGroupTreeModal .group-tree-dialog{
  width:min(980px,calc(100vw - 28px))!important;
  max-height:calc(100vh - 34px)!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
#makeupGroupTreeModal .group-tree-head{
  padding:10px 14px!important;
  min-height:0!important;
}
#makeupGroupTreeModal .group-tree-head h3{
  font-size:16px!important;
  line-height:1.15!important;
  margin:0 0 2px!important;
}
#makeupGroupTreeModal .group-tree-head p{
  font-size:11.5px!important;
  line-height:1.25!important;
  margin:0!important;
}
#makeupGroupTreeModal .group-tree-toolbar.group-tree-toolbar-polished{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto!important;
  align-items:end!important;
  gap:8px!important;
  padding:9px 14px!important;
}
#makeupGroupTreeModal .group-tree-search-wrap{
  min-width:0!important;
  gap:3px!important;
}
#makeupGroupTreeModal #makeupGroupTreeSearch{
  height:31px!important;
  min-height:31px!important;
  font-size:12px!important;
  border-radius:7px!important;
}
#makeupGroupTreeModal .group-tree-toolbar-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  gap:5px!important;
}
#makeupGroupTreeModal .group-tree-toolbar-actions button,
#makeupGroupTreeModal #makeupGroupTreeClose,
#makeupGroupTreeModal #makeupGroupTreeApply{
  min-height:30px!important;
  height:30px!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  font-size:11px!important;
  font-weight:900!important;
}
#makeupGroupTreeModal .group-tree-meta-row{
  grid-template-columns:1fr!important;
  padding:6px 14px!important;
}
#makeupGroupTreeModal .group-tree-target-info{display:none!important;}
#makeupGroupTreeModal .group-tree-selected-preview{
  min-height:22px!important;
  max-height:26px!important;
  overflow:hidden!important;
  gap:3px!important;
}
#makeupGroupTreeModal .group-tree-selected-preview span{
  max-width:96px!important;
  height:19px!important;
  padding:1px 6px!important;
  font-size:10px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#makeupGroupTreeModal .group-tree-list{
  padding:8px 14px!important;
  min-height:260px!important;
  background:#fff!important;
}
#makeupGroupTreeModal .gt-node{margin:2px 0 2px 8px!important;}
#makeupGroupTreeModal .gt-row{min-height:24px!important;gap:4px!important;}
#makeupGroupTreeModal .gt-toggle{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  line-height:18px!important;
  font-size:10px!important;
}
#makeupGroupTreeModal .gt-branch-label{
  font-size:12px!important;
  gap:5px!important;
}
#makeupGroupTreeModal .gt-groups{
  grid-template-columns:repeat(auto-fill,minmax(118px,1fr))!important;
  gap:4px!important;
  margin:4px 0 5px 18px!important;
}
#makeupGroupTreeModal .gt-leaf{
  min-height:30px!important;
  padding:4px 5px!important;
  gap:5px!important;
  border-radius:6px!important;
  font-size:10.5px!important;
  line-height:1.1!important;
}
#makeupGroupTreeModal .gt-leaf b{font-size:10.8px!important;line-height:1.1!important;}
#makeupGroupTreeModal .gt-leaf small{display:none!important;}
#makeupGroupTreeModal input[type="checkbox"]{
  width:12px!important;
  min-width:12px!important;
  height:12px!important;
  margin-top:1px!important;
}
#makeupGroupTreeModal .group-tree-footer{
  padding:8px 14px!important;
  min-height:46px!important;
  font-size:12px!important;
}
@media(max-width:1100px){
  .makeup-controls{
    grid-template-columns:minmax(220px,1fr) minmax(250px,1fr)!important;
  }
  .makeup-controls #m_search{min-height:42px!important;height:42px!important;}
}
@media(max-width:720px){
  .makeup-controls{grid-template-columns:1fr!important;gap:7px!important;}
  .makeup-controls > label,
  .makeup-controls .makeup-group-picker.group-choice-box{min-height:52px!important;padding:7px 8px!important;}
  .makeup-controls .makeup-group-picker.group-choice-box{grid-template-columns:auto 72px minmax(0,1fr)!important;}
  .makeup-controls #m_search{min-height:42px!important;height:42px!important;}
  #makeupGroupTreeModal .group-tree-toolbar.group-tree-toolbar-polished{grid-template-columns:1fr!important;align-items:stretch!important;}
  #makeupGroupTreeModal .group-tree-toolbar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;}
  #makeupGroupTreeModal .gt-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-left:10px!important;}
}
@media(max-width:460px){
  .makeup-controls .makeup-group-picker.group-choice-box{grid-template-columns:1fr 72px!important;grid-template-rows:auto auto!important;}
  .makeup-controls .group-picker-summary{grid-column:1/-1!important;}
  #makeupGroupTreeModal .gt-groups{grid-template-columns:1fr!important;}
  #makeupGroupTreeModal .group-tree-toolbar-actions{grid-template-columns:1fr!important;}
}

/* v2.33: readable expanded schedule tiles with long words */
.public-grid-event,
.public-grid-event *,
.mobile-lesson-card,
.mobile-lesson-card *{
  min-width:0!important;
  max-width:100%!important;
}
.public-grid-event{
  cursor:pointer!important;
}
.public-grid-event:hover,
.public-grid-event:focus,
.public-grid-event:focus-within,
.public-grid-event.is-expanded{
  z-index:10000!important;
  overflow:hidden!important;
  min-height:150px!important;
  max-height:none!important;
  background:#fff!important;
  box-shadow:0 18px 42px rgba(15,23,42,.30)!important;
  border:2px solid #111!important;
  padding:10px!important;
  isolation:isolate!important;
}
.public-grid-event.is-expanded{
  transform:scale(1.10)!important;
}
.public-grid-event:hover b,
.public-grid-event:hover span,
.public-grid-event:hover em,
.public-grid-event:hover small,
.public-grid-event:focus b,
.public-grid-event:focus span,
.public-grid-event:focus em,
.public-grid-event:focus small,
.public-grid-event:focus-within b,
.public-grid-event:focus-within span,
.public-grid-event:focus-within em,
.public-grid-event:focus-within small,
.public-grid-event.is-expanded b,
.public-grid-event.is-expanded span,
.public-grid-event.is-expanded em,
.public-grid-event.is-expanded small{
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  hyphens:auto!important;
  line-height:1.24!important;
  color:#111!important;
}
.public-grid-event:hover .event-time,
.public-grid-event:focus .event-time,
.public-grid-event:focus-within .event-time,
.public-grid-event.is-expanded .event-time{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.public-grid-event:hover .event-kind,
.public-grid-event:hover .event-week,
.public-grid-event:focus .event-kind,
.public-grid-event:focus .event-week,
.public-grid-event:focus-within .event-kind,
.public-grid-event:focus-within .event-week,
.public-grid-event.is-expanded .event-kind,
.public-grid-event.is-expanded .event-week{
  display:inline-block!important;
  width:auto!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.public-grid-event.is-expanded .event-teacher,
.public-grid-event.is-expanded .event-group,
.public-grid-event.is-expanded .event-room,
.public-grid-event.is-expanded .event-notes{
  display:block!important;
}
.mobile-lesson-card b,
.mobile-lesson-card dd,
.mobile-lesson-card p{
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  hyphens:auto!important;
}
@media(max-width:900px){
  .public-grid-event.is-expanded{transform:scale(1.03)!important;min-height:124px!important;}
}


/* v2.34: expanded public schedule tiles - no vertical text clipping */
.public-grid-event:hover,
.public-grid-event:focus,
.public-grid-event:focus-within,
.public-grid-event.is-expanded{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  height:auto!important;
  max-height:min(72vh, 520px)!important;
  min-height:min(220px, 72vh)!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin!important;
}
.public-grid-event:hover b,
.public-grid-event:hover span,
.public-grid-event:hover em,
.public-grid-event:hover small,
.public-grid-event:focus b,
.public-grid-event:focus span,
.public-grid-event:focus em,
.public-grid-event:focus small,
.public-grid-event:focus-within b,
.public-grid-event:focus-within span,
.public-grid-event:focus-within em,
.public-grid-event:focus-within small,
.public-grid-event.is-expanded b,
.public-grid-event.is-expanded span,
.public-grid-event.is-expanded em,
.public-grid-event.is-expanded small{
  overflow:visible!important;
  max-height:none!important;
  height:auto!important;
  display:block!important;
}
.public-grid-event.is-expanded .event-kind,
.public-grid-event.is-expanded .event-week,
.public-grid-event:hover .event-kind,
.public-grid-event:hover .event-week,
.public-grid-event:focus .event-kind,
.public-grid-event:focus .event-week,
.public-grid-event:focus-within .event-kind,
.public-grid-event:focus-within .event-week{
  display:inline-block!important;
}
.public-grid-event.is-expanded::after,
.public-grid-event:hover::after,
.public-grid-event:focus::after,
.public-grid-event:focus-within::after{
  content:"";
  display:block;
  height:2px;
  clear:both;
}
@media(max-width:900px){
  .public-grid-event.is-expanded,
  .public-grid-event:hover,
  .public-grid-event:focus,
  .public-grid-event:focus-within{
    min-height:min(170px, 70vh)!important;
    max-height:70vh!important;
    transform:scale(1.02)!important;
  }
}

/* v2.35: konfigurowalna kolorystyka kafelków według formy zajęć */
.tile-color-settings{max-width:860px!important;}
.tile-colors-form{margin-top:12px!important;}
.tile-color-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;gap:10px!important;margin:14px 0!important;}
.tile-color-row{display:grid!important;grid-template-columns:28px 1fr 52px!important;align-items:center!important;gap:10px!important;padding:9px 10px!important;border:1px solid #d8e2ef!important;border-radius:10px!important;background:#fff!important;min-height:44px!important;}
.tile-color-preview{width:26px!important;height:26px!important;border:1px solid #94a3b8!important;border-radius:7px!important;display:inline-block!important;}
.tile-color-name{font-weight:800!important;color:#1f2937!important;text-transform:none!important;}
.tile-color-row input[type="color"]{width:52px!important;height:30px!important;padding:0!important;border:1px solid #cbd5e1!important;border-radius:7px!important;background:#fff!important;cursor:pointer!important;}
.public-grid-event,
.mobile-lesson-card,
.lesson-block,
.ghost-block{
  background:var(--tile-bg,#f1f5f9)!important;
  border-color:var(--tile-border,#64748b)!important;
  border-left-color:var(--tile-border,#64748b)!important;
  color:var(--tile-text,#111827)!important;
}
.public-grid-event b,
.public-grid-event span,
.public-grid-event em,
.public-grid-event small,
.mobile-lesson-card b,
.mobile-lesson-card p,
.mobile-lesson-card span,
.mobile-lesson-card dt,
.mobile-lesson-card dd,
.lesson-block b,
.lesson-block span,
.lesson-block small,
.ghost-block b,
.ghost-block span,
.ghost-block small{
  color:var(--tile-text,#111827)!important;
}
.public-grid-event .event-kind,
.public-grid-event .event-week,
.lesson-kind,
.lesson-week{
  background:rgba(255,255,255,.72)!important;
  color:#111827!important;
  border:1px solid rgba(15,23,42,.16)!important;
}
.mobile-lesson-top span{background:rgba(255,255,255,.72)!important;color:#111827!important;border:1px solid rgba(15,23,42,.16)!important;}
.public-grid-event:hover,
.public-grid-event:focus,
.public-grid-event:active,
.lesson-block:hover,
.ghost-block:hover{
  background:#fff!important;
  color:#111!important;
  border-color:#111!important;
}
@media(max-width:700px){.tile-color-grid{grid-template-columns:1fr!important}.tile-color-row{grid-template-columns:24px 1fr 48px!important;padding:8px!important}.tile-color-preview{width:22px!important;height:22px!important}}


/* v2.36: zbiorcza edycja metadanych w modułach */
.bulk-edit-form{display:block;max-width:100%;}
.bulk-edit-toolbar{position:sticky;top:0;z-index:5;background:#fff;border:1px solid #dbe4ed;border-radius:12px;padding:10px;margin-bottom:12px;box-shadow:0 2px 10px rgba(16,42,67,.06);}
.bulk-edit-wrap{max-height:70vh;border:1px solid #dbe4ed;border-radius:12px;background:#fff;}
.bulk-edit-table{min-width:980px;font-size:13px;}
.bulk-edit-table th{position:sticky;top:0;z-index:3;white-space:nowrap;}
.bulk-edit-table td{padding:6px;vertical-align:middle;}
.bulk-edit-table input,.bulk-edit-table select{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid #ccd6e0;border-radius:8px;background:#fff;font-size:13px;}
.bulk-edit-table input[type="number"]{min-width:74px;}
.bulk-edit-table .compact-check{justify-content:center;padding:6px 8px;min-width:64px;}
.bulk-edit-table .compact-check input{width:auto;}
.bulk-edit-table tr:focus-within{background:#f7fbff;}
@media(max-width:760px){.bulk-edit-toolbar{position:static}.bulk-edit-table{min-width:900px;font-size:12px}.bulk-edit-table td{padding:5px}.bulk-edit-table input,.bulk-edit-table select{font-size:12px;padding:6px}}


/* v3.1: skuteczne kolory kafelków z ustawień administratora
   Poprzednie reguły tygodnia/kontekstu miały twarde background/border !important,
   dlatego kolor z palety był zapisywany, ale wizualnie nadpisywany. */
.public-grid-event[style*="--tile-bg"],
.public-grid-event[style*="--tile-bg"].week-week1,
.public-grid-event[style*="--tile-bg"].week-week2,
.public-grid-event[style*="--tile-bg"].week-both,
.public-grid-event[style*="--tile-bg"].week-,
.public-grid-event[style*="--tile-bg"]:hover,
.public-grid-event[style*="--tile-bg"]:focus,
.public-grid-event[style*="--tile-bg"]:focus-within,
.public-grid-event[style*="--tile-bg"].is-expanded,
.mobile-lesson-card[style*="--tile-bg"],
.mobile-lesson-card[style*="--tile-bg"].week-week1,
.mobile-lesson-card[style*="--tile-bg"].week-week2,
.mobile-lesson-card[style*="--tile-bg"].week-both,
.lesson-block[style*="--tile-bg"],
.lesson-block[style*="--tile-bg"].selected-context,
.lesson-block[style*="--tile-bg"].context-primary,
.lesson-block[style*="--tile-bg"].context-group,
.lesson-block[style*="--tile-bg"].context-teacher,
.lesson-block[style*="--tile-bg"].context-room,
.live-lesson-card[style*="--tile-bg"]{
  background:var(--tile-bg)!important;
  border-color:var(--tile-border)!important;
  border-left-color:var(--tile-border)!important;
  color:var(--tile-text)!important;
}
.public-grid-event[style*="--tile-bg"] b,
.public-grid-event[style*="--tile-bg"] span,
.public-grid-event[style*="--tile-bg"] em,
.public-grid-event[style*="--tile-bg"] small,
.public-grid-event[style*="--tile-bg"] .event-time,
.public-grid-event[style*="--tile-bg"] .event-kind,
.public-grid-event[style*="--tile-bg"] .event-week,
.public-grid-event[style*="--tile-bg"] .event-week::after,
.mobile-lesson-card[style*="--tile-bg"] b,
.mobile-lesson-card[style*="--tile-bg"] p,
.mobile-lesson-card[style*="--tile-bg"] dt,
.mobile-lesson-card[style*="--tile-bg"] dd,
.mobile-lesson-card[style*="--tile-bg"] span,
.lesson-block[style*="--tile-bg"] b,
.lesson-block[style*="--tile-bg"] span,
.lesson-block[style*="--tile-bg"] small,
.live-lesson-card[style*="--tile-bg"] b,
.live-lesson-card[style*="--tile-bg"] span{
  color:var(--tile-text)!important;
}
.public-grid-event[style*="--tile-bg"] .event-kind,
.public-grid-event[style*="--tile-bg"] .event-week{
  background:rgba(255,255,255,.28)!important;
  border-color:rgba(0,0,0,.22)!important;
}
.public-grid-event[style*="--tile-bg"].is-expanded,
.public-grid-event[style*="--tile-bg"]:hover{
  filter:saturate(1.04) brightness(1.02)!important;
}
.mobile-lesson-card[style*="--tile-bg"] dl div{
  border-top-color:rgba(0,0,0,.18)!important;
}

/* v3.2: czytelne oznaczenie typu kolizji w interaktywnych planerach.
   Kolor kafelka nadal pochodzi z ustawień administratora; kolizje są oznaczane grubymi liniami ramki. */
.lesson-block.collision-marked,
.ghost-block.collision-marked{
  --collision-room:#d97706;
  --collision-group:#dc2626;
  --collision-teacher:#7c3aed;
  position:absolute!important;
}
.lesson-block.collision-teacher,
.ghost-block.collision-teacher{border-top:4px solid var(--collision-teacher)!important;}
.lesson-block.collision-group,
.ghost-block.collision-group{border-right:4px solid var(--collision-group)!important;}
.lesson-block.collision-room,
.ghost-block.collision-room{border-bottom:4px solid var(--collision-room)!important;}
.lesson-block.collision-marked::after,
.ghost-block.collision-marked::after{
  content:attr(data-collision-types);
  position:absolute;
  left:6px;
  right:6px;
  bottom:3px;
  padding:2px 4px;
  border-radius:4px;
  background:rgba(255,255,255,.82);
  color:#111827!important;
  font-size:8px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:.015em;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  pointer-events:none;
}
.collision-badges{
  position:absolute;
  top:4px;
  right:4px;
  display:flex!important;
  gap:3px;
  z-index:8;
}
.collision-badge{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  border-radius:50%;
  color:#fff!important;
  font-size:9px;
  font-style:normal;
  font-weight:900;
  line-height:1;
  box-shadow:0 0 0 1px rgba(255,255,255,.9),0 1px 3px rgba(15,23,42,.28);
}
.collision-badge-teacher{background:#7c3aed!important;}
.collision-badge-group{background:#dc2626!important;}
.collision-badge-room{background:#d97706!important;}
.lesson-block.collision-marked b,
.ghost-block.collision-marked b{padding-right:56px!important;}
.lesson-block.collision-marked,
.ghost-block.collision-marked{padding-bottom:17px!important;}
.lesson-block.collision-marked:hover::after,
.lesson-block.collision-marked.selected-entry::after,
.ghost-block.collision-marked:hover::after,
.ghost-block.collision-marked.selected-entry::after{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}


/* v3.3: jednoznaczne etykiety tekstowe typów kolizji w interaktywnych planerach.
   Zamiast skrótów N/G/S kafelek pokazuje napis: KOLIZJA NAUCZYCIEL, KOLIZJA GRUPA, KOLIZJA SALA. */
.collision-badges{display:none!important;}
.collision-labels{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:3px!important;
  align-items:flex-start!important;
  margin:0 34px 3px 0!important;
  max-width:calc(100% - 34px)!important;
  position:relative!important;
  z-index:9!important;
}
.collision-label{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:14px!important;
  padding:2px 5px!important;
  border-radius:5px!important;
  color:#fff!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  box-shadow:0 1px 3px rgba(15,23,42,.22),0 0 0 1px rgba(255,255,255,.75) inset!important;
}
.collision-label-teacher{background:#6d28d9!important;}
.collision-label-group{background:#b91c1c!important;}
.collision-label-room{background:#d97706!important;}
.lesson-block.collision-marked b,
.ghost-block.collision-marked b{padding-right:0!important;}
.lesson-block.collision-marked,
.ghost-block.collision-marked{padding-bottom:8px!important;}
.lesson-block.collision-marked::after,
.ghost-block.collision-marked::after{display:none!important;content:none!important;}
.lesson-block.collision-teacher,
.ghost-block.collision-teacher{border-top:4px solid #6d28d9!important;}
.lesson-block.collision-group,
.ghost-block.collision-group{border-right:4px solid #b91c1c!important;}
.lesson-block.collision-room,
.ghost-block.collision-room{border-bottom:4px solid #d97706!important;}
.ghost-block.room-conflict::before{
  content:"KOLIZJA SALI";
  display:inline-flex!important;
  width:max-content!important;
  max-width:100%!important;
  padding:2px 5px!important;
  margin:0 0 3px 0!important;
  border-radius:5px!important;
  background:#b91c1c!important;
  color:#fff!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  box-shadow:0 1px 3px rgba(15,23,42,.22),0 0 0 1px rgba(255,255,255,.75) inset!important;
}

/* v3.5: interaktywny planer — jawne etykiety typu kolizji z backendu i z kontroli JS.
   Pseudoetykieta .room-conflict::before była stała i mogła sugerować tylko kolizję sali,
   nawet gdy rzeczywista kolizja dotyczyła nauczyciela albo grupy. */
.ghost-block.room-conflict::before{
  display:none!important;
  content:none!important;
}
.lesson-block .collision-labels,
.ghost-block .collision-labels{
  margin:0 34px 4px 0!important;
}
.lesson-block.collision-marked,
.ghost-block.collision-marked{
  min-height:44px!important;
}
.collision-label-teacher::before{content:""!important;}
.collision-label-group::before{content:""!important;}
.collision-label-room::before{content:""!important;}


/* v3.6: przywrócenie widocznych napisów kolizji bezpośrednio na kafelku.
   Etykieta jest generowana także jako ::before, więc pozostaje widoczna nawet gdy HTML z .collision-labels
   zostanie ucięty przez małą wysokość kafelka albo przykryty przyciskiem edycji. */
.lesson-block.collision-marked::before,
.ghost-block.collision-marked::before{
  content:attr(data-collision-types)!important;
  display:inline-flex!important;
  width:max-content!important;
  max-width:calc(100% - 38px)!important;
  padding:2px 5px!important;
  margin:0 34px 3px 0!important;
  border-radius:5px!important;
  background:#b91c1c!important;
  color:#fff!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  box-shadow:0 1px 3px rgba(15,23,42,.22),0 0 0 1px rgba(255,255,255,.75) inset!important;
  position:relative!important;
  z-index:12!important;
}
.lesson-block.collision-teacher::before,
.ghost-block.collision-teacher::before{background:#6d28d9!important;}
.lesson-block.collision-group::before,
.ghost-block.collision-group::before{background:#b91c1c!important;}
.lesson-block.collision-room::before,
.ghost-block.collision-room::before{background:#d97706!important;}
.lesson-block.collision-teacher.collision-group::before,
.lesson-block.collision-teacher.collision-room::before,
.lesson-block.collision-group.collision-room::before,
.ghost-block.collision-teacher.collision-group::before,
.ghost-block.collision-teacher.collision-room::before,
.ghost-block.collision-group.collision-room::before{background:#111827!important;}
.ghost-block.room-conflict:not(.collision-marked)::before{
  content:"KOLIZJA SALA"!important;
  display:inline-flex!important;
  width:max-content!important;
  max-width:calc(100% - 38px)!important;
  padding:2px 5px!important;
  margin:0 34px 3px 0!important;
  border-radius:5px!important;
  background:#d97706!important;
  color:#fff!important;
  font-size:8px!important;
  line-height:1.05!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  box-shadow:0 1px 3px rgba(15,23,42,.22),0 0 0 1px rgba(255,255,255,.75) inset!important;
  position:relative!important;
  z-index:12!important;
}
.lesson-block .collision-labels,
.ghost-block .collision-labels{display:none!important;}
.lesson-block.collision-marked,
.ghost-block.collision-marked,
.ghost-block.room-conflict{padding-top:5px!important;}

/* Plan obsad nauczyciela akademickiego */
.filters-grid{display:grid;grid-template-columns:minmax(160px,220px) minmax(260px,1fr) auto;gap:12px;align-items:end}
.filters-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#1f2937}
.filter-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.teaching-load-report{margin:18px 0 28px;background:#fff;border:1px solid #d1d5db;padding:14px;overflow:hidden}
.teaching-load-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:10px;border-bottom:1px solid #d1d5db;padding-bottom:8px}
.teaching-load-title h2{margin:0;font-size:18px;color:#111827}
.teaching-load-title span{font-size:13px;color:#4b5563;font-weight:700}
.obsady-scroll{overflow:auto;width:100%;border:1px solid #9ca3af}
.obsady-table{border-collapse:collapse;min-width:1850px;width:100%;font-size:11px;background:#fff;color:#111827}
.obsady-table th,.obsady-table td{border:1px solid #9ca3af;padding:4px 5px;text-align:center;vertical-align:middle;line-height:1.15}
.obsady-table th{background:#e9eef5;font-weight:700;white-space:normal}
.obsady-table td{height:28px}
.obsady-table .teacher-cell,.obsady-table .subject-cell,.obsady-table .notes-cell{text-align:left;white-space:normal}
.obsady-table .teacher-cell{min-width:190px;font-weight:700}
.obsady-table .subject-cell{min-width:180px}
.obsady-table .notes-cell{min-width:160px}
.obsady-total-row td{background:#e5e7eb;font-weight:800}
@media print{
  .no-print,.pl-topbar,.pl-brandbar,.pl-mainnav,.adminnav,.site-footer{display:none!important}
  body{background:#fff}
  .wrap{max-width:none;margin:0;padding:0}
  .teaching-load-report{border:0;padding:0;page-break-after:always}
  .obsady-scroll{overflow:visible;border:0}
  .obsady-table{min-width:0;width:100%;font-size:7px}
  .obsady-table th,.obsady-table td{padding:2px}
}
@media (max-width:900px){.filters-grid{grid-template-columns:1fr}.filter-actions{align-items:stretch}.filter-actions .btnlink,.filter-actions button{width:100%;text-align:center}}

/* v3.24 - konsola ładowania interaktywnego planera */
.planner-load-console{
  margin:10px 0 12px 0;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  color:#0f172a;
  border-radius:10px;
  padding:10px 12px;
  font-size:12px;
}
.planner-load-console-head{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:space-between;
  flex-wrap:wrap;
}
.planner-load-console-head strong{
  font-size:13px;
  letter-spacing:.02em;
}
#plannerLoadSummary{
  margin-left:auto;
  color:#475569;
  font-variant-numeric:tabular-nums;
}
#plannerLoadClear{
  border:1px solid #cbd5e1;
  background:#fff;
  color:#334155;
  border-radius:8px;
  padding:4px 8px;
  cursor:pointer;
}
.planner-load-bar{
  margin-top:8px;
  height:6px;
  border-radius:999px;
  background:#e2e8f0;
  overflow:hidden;
}
.planner-load-bar span{
  display:block;
  height:100%;
  width:0;
  background:#334155;
  transition:width .18s ease;
}
.planner-load-console.is-loading .planner-load-bar span{
  background:#1e3a8a;
}
.planner-load-log{
  margin:8px 0 0 0;
  padding-left:20px;
  max-height:130px;
  overflow:auto;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  line-height:1.35;
}
.planner-load-log li{
  padding:2px 0;
  border-bottom:1px dashed rgba(148,163,184,.35);
}
.planner-load-log li small{
  float:right;
  color:#64748b;
  margin-left:12px;
  font-variant-numeric:tabular-nums;
}
@media (max-width: 760px){
  .planner-load-console{font-size:11px; padding:8px;}
  #plannerLoadSummary{margin-left:0; width:100%;}
  .planner-load-log{max-height:90px;}
}
