:root{
  --cream:#F6F4EC;
  --panel:#FFFFFF;
  --ink:#1D1B2E;
  --ink-soft:#5A5770;
  --yellow:#FFC93C;
  --yellow-dark:#8A5A00;
  --red:#E8483A;
  --red-dark:#7A1F17;
  --blue:#2E6E9E;
  --blue-dark:#173C55;
  --green:#3FA65B;
  --green-bg:#E5F4E9;
  --green-dark:#1F5C33;
  --border:#E4E0D2;
  --radius:14px;
  --stud:14px;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.5;}
h1,h2,h3,.brand,.brick-title{font-family:'Baloo 2',sans-serif;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px 80px;}

header.top{background:#fff;color:var(--ink);padding:12px 0;border-bottom:6px solid var(--yellow);}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:0;padding-bottom:0;}
.brand{font-size:22px;font-weight:800;display:flex;align-items:center;gap:14px;}
.logo-img{height:52px;width:auto;display:block;}
.brand-suffix{font-family:'Baloo 2',sans-serif;font-size:16px;font-weight:700;color:var(--ink-soft);padding-left:14px;border-left:2px solid var(--border);}
.admin-link{color:var(--ink);text-decoration:none;font-size:14px;border:1.5px solid var(--border);padding:8px 16px;border-radius:999px;}
.admin-link:hover{background:var(--cream);}

.hero{padding:44px 0 8px;}
.hero h1{font-size:34px;margin:0 0 8px;font-weight:800;}
.hero p{color:var(--ink-soft);font-size:16px;max-width:560px;margin:0;}

.banner{margin-top:22px;background:var(--green-bg);border:1.5px solid var(--green);color:var(--green-dark);border-radius:var(--radius);padding:14px 18px;font-size:14px;display:none;font-weight:600;}
.banner.show{display:block;}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:28px;}

.brick{background:var(--panel);border-radius:var(--radius);border:2px solid var(--border);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(29,27,46,.05);transition:transform .15s ease, box-shadow .15s ease;}
.brick:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(29,27,46,.14);}
.brick-top{padding:14px 16px 12px;display:flex;gap:7px;}
.brick-top span{width:var(--stud);height:var(--stud);border-radius:50%;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);}
.brick-body{padding:10px 20px 20px;flex:1;display:flex;flex-direction:column;}

.cat-a{border-color:var(--yellow);} .cat-a .brick-top{background:#FFF3D6;} .cat-a .brick-top span{background:var(--yellow);}
.cat-b{border-color:var(--red);} .cat-b .brick-top{background:#FBE4E1;} .cat-b .brick-top span{background:var(--red);}
.cat-c{border-color:var(--blue);} .cat-c .brick-top{background:#E3EFF7;} .cat-c .brick-top span{background:var(--blue);}
.cat-d{border-color:var(--green);} .cat-d .brick-top{background:var(--green-bg);} .cat-d .brick-top span{background:var(--green);}
.cat-e{border-color:#9B6BD6;} .cat-e .brick-top{background:#F0E8FA;} .cat-e .brick-top span{background:#9B6BD6;}
.cat-f{border-color:#E8748A;} .cat-f .brick-top{background:#FCE7EB;} .cat-f .brick-top span{background:#E8748A;}
.cat-g{border-color:#2AA9A0;} .cat-g .brick-top{background:#E1F5F3;} .cat-g .brick-top span{background:#2AA9A0;}
.cat-h{border-color:#E8863A;} .cat-h .brick-top{background:#FCEADB;} .cat-h .brick-top span{background:#E8863A;}

.badge{align-self:flex-start;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;margin-bottom:10px;}
.cat-a .badge{background:#FFF3D6;color:var(--yellow-dark);}
.cat-b .badge{background:#FBE4E1;color:var(--red-dark);}
.cat-c .badge{background:#E3EFF7;color:var(--blue-dark);}
.cat-d .badge{background:var(--green-bg);color:var(--green-dark);}
.cat-e .badge{background:#F0E8FA;color:#5B3B8C;}
.cat-f .badge{background:#FCE7EB;color:#A33352;}
.cat-g .badge{background:#E1F5F3;color:#1B6A63;}
.cat-h .badge{background:#FCEADB;color:#8A4B18;}

.brick-title{font-size:19px;font-weight:700;margin:0 0 6px;}
.meta{font-size:13.5px;color:var(--ink-soft);margin:2px 0;}
.meta b{color:var(--ink);font-weight:600;}

.spots{margin:14px 0 6px;}
.spots-row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-soft);margin-bottom:5px;}
.spots-bar{height:8px;background:#EDEAE0;border-radius:999px;overflow:hidden;}
.spots-fill{height:100%;background:var(--green);}
.spots-fill.full{background:var(--red);}

.price-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:14px;}
.price{font-family:'Baloo 2',sans-serif;font-size:20px;font-weight:700;white-space:nowrap;}
.price span{font-size:12px;font-weight:500;color:var(--ink-soft);}
.loc-link{color:inherit;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px;}
.loc-link:hover{color:var(--blue);text-decoration-color:var(--blue);}

button.cta{font-family:'Baloo 2',sans-serif;background:var(--ink);color:#fff;border:none;padding:10px 20px;border-radius:999px;font-size:14.5px;font-weight:700;cursor:pointer;}
button.cta:hover{background:#33304a;}
button.cta.waitlist{background:var(--yellow);color:var(--ink);}

.modal-overlay{display:none;position:fixed;inset:0;background:rgba(29,27,46,.55);align-items:center;justify-content:center;z-index:50;padding:20px;}
.modal-overlay.show{display:flex;}
.modal{background:#fff;border-radius:18px;max-width:440px;width:100%;padding:28px 26px;max-height:88vh;overflow-y:auto;transition:max-width .15s;}
.modal.wide{max-width:720px;}
.modal h2{margin:0 0 14px;font-size:19px;}
.modal .sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 18px;}

.signup-grid{display:flex;gap:26px;flex-wrap:wrap;}
.signup-form-col{flex:1 1 280px;min-width:260px;}
.signup-info-col{flex:1 1 250px;min-width:230px;background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:16px 18px;align-self:flex-start;}
.signup-info-col h3{margin:0 0 2px;font-size:16px;color:var(--ink);font-family:'Baloo 2',sans-serif;}
.signup-info-schedule{font-size:13px;color:var(--ink-soft);margin:0 0 10px;font-weight:600;}
.signup-info-row{border-top:1px solid var(--border);padding:8px 0;}
.signup-info-row .label{font-size:10px;text-transform:uppercase;color:var(--ink-soft);font-weight:700;letter-spacing:.3px;}
.signup-info-row .value{font-size:13.5px;color:var(--ink);margin-top:2px;line-height:1.4;}
.signup-info-row .value a{color:var(--blue);text-decoration:underline;}
.signup-progress{margin-top:6px;padding-top:12px;border-top:1px solid var(--border);font-size:12.5px;color:var(--ink-soft);line-height:1.6;}
.signup-progress b{color:var(--ink);}
.signup-desc-box{margin-top:6px;padding-top:12px;border-top:1px solid var(--border);}
.signup-desc-heading{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13px;margin-bottom:6px;color:var(--ink);}
.signup-desc-text{font-size:12.5px;color:var(--ink-soft);white-space:pre-wrap;line-height:1.55;}
.signup-full-note{background:#FFF3D6;border:1px solid var(--yellow);border-radius:9px;padding:10px 12px;font-size:12.5px;color:var(--yellow-dark);margin-bottom:14px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;}
.field input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;}
.field input:focus{outline:none;border-color:var(--blue);}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.check{display:flex;gap:9px;align-items:flex-start;margin-bottom:12px;font-size:13px;color:var(--ink-soft);}
.check input{margin-top:3px;}
.error{color:var(--red);font-size:12.5px;margin-bottom:10px;}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions button.ghost{flex:1;background:transparent;border:1.5px solid var(--border);color:var(--ink-soft);padding:10px;border-radius:999px;font-family:'Baloo 2',sans-serif;font-weight:600;cursor:pointer;}
.modal-actions button.cta{flex:2;}

table.admin{width:100%;border-collapse:collapse;margin-top:20px;font-size:13.5px;background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);}
table.admin th{background:var(--ink);color:#fff;text-align:left;padding:10px 14px;font-weight:600;font-size:12.5px;}
table.admin td{padding:10px 14px;border-top:1px solid var(--border);}
.empty{color:var(--ink-soft);font-size:13.5px;padding:30px 0;text-align:center;}

.note{margin-top:34px;padding:16px 18px;border-radius:var(--radius);background:#FFF3D6;border:1px solid var(--yellow);font-size:13px;color:var(--yellow-dark);}

.groups-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 4px;}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.filters select{padding:8px 12px;border:1.5px solid var(--border);border-radius:9px;font-size:13.5px;font-family:'Inter',sans-serif;background:#fff;color:var(--ink);}
.filters .clear-filters{background:transparent;border:none;color:var(--blue);font-size:13px;cursor:pointer;text-decoration:underline;padding:0;}
.view-toggle{display:flex;border:1.5px solid var(--border);border-radius:999px;overflow:hidden;}
.view-toggle button{background:#fff;border:none;padding:8px 16px;font-family:'Baloo 2',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;}
.view-toggle button.active{background:var(--ink);color:#fff;}

.groups-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px;}
.group-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;}
.group-card .badge{align-self:flex-start;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;margin-bottom:8px;display:inline-block;background:var(--cream);color:var(--ink-soft);}
.group-card h4{margin:0 0 6px;font-size:15.5px;font-family:'Baloo 2',sans-serif;}
.group-card .meta{font-size:12.5px;color:var(--ink-soft);margin:2px 0;}
.group-card .tag{display:inline-block;margin-top:10px;font-size:11px;color:var(--ink-soft);background:var(--cream);padding:3px 9px;border-radius:999px;}
.no-results{color:var(--ink-soft);font-size:13.5px;padding:26px 0;text-align:center;}

.catalog-list-item{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.catalog-list-item .info b{font-size:15px;}
.catalog-list-item .info .meta{margin-top:2px;}
.catalog-list-item .price-row{margin:0;flex-shrink:0;gap:16px;}
.catalog-list-item .price-row button.cta{flex-shrink:0;}

.icon-btn{background:transparent;border:1.5px solid var(--border);color:var(--ink);width:38px;height:38px;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.icon-btn:hover{background:var(--cream);}
.icon-btn.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.header-actions{display:flex;align-items:center;gap:10px;}

.settings-layout{display:grid;grid-template-columns:220px 1fr;gap:28px;margin-top:24px;align-items:start;}
.settings-sidebar{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.settings-sidebar button{display:block;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);padding:13px 16px;font-family:'Baloo 2',sans-serif;font-size:14px;font-weight:600;color:var(--ink-soft);cursor:pointer;}
.settings-sidebar button:last-child{border-bottom:none;}
.settings-sidebar button.active{background:var(--cream);color:var(--ink);}
.settings-content{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.settings-content h3{margin:0 0 4px;font-size:18px;}
.settings-content .sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 20px;}

.level-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:10px 12px;margin-bottom:8px;}
.level-row .swatch{width:14px;height:14px;border-radius:50%;flex-shrink:0;}
.level-row input{flex:1;border:1.5px solid transparent;background:transparent;font-size:14px;font-family:'Inter',sans-serif;padding:4px 6px;border-radius:6px;}
.level-row input:focus{outline:none;border-color:var(--blue);background:#fff;}
.level-row .level-actions{display:flex;gap:6px;}
.level-row .level-actions button{background:transparent;border:1.5px solid var(--border);border-radius:7px;padding:5px 10px;font-size:12px;font-family:'Baloo 2',sans-serif;font-weight:600;color:var(--ink);cursor:pointer;}
.level-row .level-actions button:hover{background:var(--cream);}
.level-row .level-actions button.danger{color:var(--red);}
.add-level-row{display:flex;gap:8px;margin-top:14px;}
.add-level-row input{flex:1;padding:9px 12px;border:1.5px solid var(--border);border-radius:9px;font-size:14px;}

.color-picker{display:flex;gap:7px;}
.color-picker .swatch-btn{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;}
.color-picker .swatch-btn.selected{border-color:var(--ink);box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--ink);}

.instructor-row{border:1px solid var(--border);border-radius:9px;padding:14px 16px;margin-bottom:10px;}
.instructor-row .instructor-head{display:flex;justify-content:space-between;align-items:center;}
.instructor-row .instructor-head b{font-size:14.5px;}
.instructor-row .instructor-meta{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.instructor-row .instructor-actions{display:flex;gap:8px;}
.instructor-row .instructor-actions button{background:transparent;border:1.5px solid var(--border);border-radius:7px;padding:6px 12px;font-size:12.5px;font-family:'Baloo 2',sans-serif;font-weight:600;color:var(--ink);cursor:pointer;}
.instructor-row .instructor-actions button:hover{background:var(--cream);}
.instructor-row .instructor-actions button.danger{color:var(--red);}
.instructor-edit-box{margin-top:12px;padding:14px;background:var(--cream);border-radius:9px;display:none;}
.instructor-edit-box.show{display:block;}
.groups-checklist{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;}
.groups-checklist label{display:flex;align-items:center;gap:6px;font-size:13px;background:#fff;border:1.5px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;}
.add-instructor-box{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}

.location-row{border:1px solid var(--border);border-radius:9px;padding:14px 16px;margin-bottom:10px;}
.location-row .location-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.location-row b{font-size:14.5px;}
.location-row .location-meta{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.location-row .location-actions{display:flex;gap:8px;flex-shrink:0;}
.location-row .location-actions button{background:transparent;border:1.5px solid var(--border);border-radius:7px;padding:6px 12px;font-size:12.5px;font-family:'Baloo 2',sans-serif;font-weight:600;color:var(--ink);cursor:pointer;}
.location-row .location-actions button:hover{background:var(--cream);}
.location-row .location-actions button.danger{color:var(--red);}
.location-edit-box{margin-top:12px;padding:14px;background:var(--cream);border-radius:9px;display:none;}
.location-edit-box.show{display:block;}
.add-location-box{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}

/* --- Harmonogram / kalendarz / obecnosc --- */
.schedule-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 4px;}
.generate-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-top:16px;}
.generate-box h3{margin:0 0 4px;font-size:16px;}
.generate-box .sub{color:var(--ink-soft);font-size:13px;margin:0 0 16px;}
.generate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;}
.generate-grid select, .generate-grid input{width:100%;padding:9px 10px;border:1.5px solid var(--border);border-radius:9px;font-size:13.5px;font-family:'Inter',sans-serif;}
.generate-grid .field label{font-size:12px;}

.month-nav{display:flex;align-items:center;gap:12px;}
.month-nav button{background:transparent;border:1.5px solid var(--border);border-radius:999px;width:32px;height:32px;cursor:pointer;font-size:15px;color:var(--ink);}
.month-nav button:hover{background:var(--cream);}
.month-nav .month-label{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;min-width:150px;text-align:center;}

.calendar-grid{display:grid;grid-template-columns:1.6fr 1.6fr 1.6fr 1.6fr 1.6fr 1fr 1fr;gap:6px;margin-top:16px;}
.calendar-weekday{font-size:11.5px;font-weight:700;color:var(--ink-soft);text-align:center;padding-bottom:4px;text-transform:uppercase;}
.calendar-cell{background:#fff;border:1px solid var(--border);border-radius:9px;height:92px;padding:6px;display:flex;flex-direction:column;gap:3px;overflow:hidden;}
.calendar-cell.other-month{background:var(--cream);opacity:.55;}
.calendar-cell .cell-date{font-size:12px;font-weight:700;color:var(--ink-soft);flex-shrink:0;}
.lesson-pill{font-size:10.5px;padding:2px 6px;border-radius:6px;cursor:pointer;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;flex-shrink:0;}
.lesson-pill.status-zaplanowana{background:#E3EFF7;color:var(--blue-dark);}
.lesson-pill.status-zakonczona{background:var(--green-bg);color:var(--green-dark);}
.lesson-pill.status-odwolana{background:#FBE4E1;color:var(--red-dark);text-decoration:line-through;}

.week-grid-wrap{margin-top:16px;border:1px solid var(--border);border-radius:9px;background:#fff;overflow-x:auto;width:100%;}
.week-header-row{display:grid;grid-template-columns:52px 1.6fr 1.6fr 1.6fr 1.6fr 1.6fr 1fr 1fr;border-bottom:1px solid var(--border);min-width:812px;}
.week-header-row .week-day-head{padding:9px 6px;font-size:11px;font-weight:700;color:var(--ink-soft);text-align:center;text-transform:uppercase;border-left:1px solid var(--border);}
.week-header-row .week-day-head span{display:block;font-size:15px;color:var(--ink);font-family:'Baloo 2',sans-serif;text-transform:none;margin-top:1px;}
.week-body-row{display:flex;min-width:812px;}
.week-time-axis{width:52px;flex-shrink:0;position:relative;}
.week-time-axis .week-time-label{position:absolute;left:2px;right:6px;text-align:right;font-size:10.5px;color:var(--ink-soft);transform:translateY(-6px);white-space:nowrap;}
.week-days-track{flex:1;display:grid;grid-template-columns:1.6fr 1.6fr 1.6fr 1.6fr 1.6fr 1fr 1fr;}
.week-day-track{position:relative;border-left:1px solid var(--border);background-image:repeating-linear-gradient(to bottom, var(--border) 0, var(--border) 1px, transparent 1px, transparent var(--hour-px));}
.week-event-block{position:absolute;border-radius:6px;padding:3px 6px;font-size:10.5px;line-height:1.25;overflow:hidden;cursor:pointer;box-sizing:border-box;border:1px solid rgba(255,255,255,.6);}
.week-event-block b{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.week-event-block.status-zaplanowana{background:#E3EFF7;color:var(--blue-dark);}
.week-event-block.status-zakonczona{background:var(--green-bg);color:var(--green-dark);}
.week-event-block.status-odwolana{background:#FBE4E1;color:var(--red-dark);text-decoration:line-through;}

.lesson-list-group{margin-bottom:18px;}
.lesson-list-group .date-heading{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;margin-bottom:8px;color:var(--ink-soft);}
.lesson-list-item{background:#fff;border:1px solid var(--border);border-radius:9px;padding:10px 14px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.lesson-list-item:hover{border-color:var(--ink);}
.lesson-status-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;}
.lesson-status-badge.status-zaplanowana{background:#E3EFF7;color:var(--blue-dark);}
.lesson-status-badge.status-zakonczona{background:var(--green-bg);color:var(--green-dark);}
.lesson-status-badge.status-odwolana{background:#FBE4E1;color:var(--red-dark);}

.attendance-row{display:flex;align-items:center;justify-content:space-between;padding:9px 4px;border-top:1px solid var(--border);font-size:13.5px;}
.attendance-row:first-child{border-top:none;}
.attendance-toggle{display:flex;gap:6px;}
.attendance-toggle button{border:1.5px solid var(--border);background:#fff;padding:5px 12px;border-radius:7px;font-size:12px;font-family:'Baloo 2',sans-serif;font-weight:600;color:var(--ink-soft);cursor:pointer;}
.attendance-toggle button.present.active{background:var(--green);border-color:var(--green);color:#fff;}
.attendance-toggle button.absent.active{background:var(--red);border-color:var(--red);color:#fff;}
.mark-all-btn{margin:14px 0 4px;background:transparent;border:1.5px dashed var(--border);color:var(--ink-soft);padding:9px 14px;border-radius:9px;font-family:'Baloo 2',sans-serif;font-weight:600;font-size:13px;cursor:pointer;width:100%;}

/* --- Dziennik obecnosci (siatka) --- */
.attendance-grid-wrap{overflow-x:auto;overflow-y:auto;max-height:380px;border:1px solid var(--border);border-radius:9px;margin-top:10px;}
table.attendance-grid{border-collapse:collapse;font-size:12.5px;white-space:nowrap;}
table.attendance-grid th, table.attendance-grid td{border:1px solid var(--border);padding:6px 8px;text-align:center;}
table.attendance-grid th.name-col, table.attendance-grid td.name-col{position:sticky;left:0;background:#fff;text-align:left;z-index:2;min-width:150px;font-weight:600;}
table.attendance-grid thead th{position:sticky;top:0;background:var(--cream);z-index:1;font-size:11px;color:var(--ink-soft);}
table.attendance-grid thead th.name-col{z-index:3;background:var(--cream);}
.attendance-cell-btn{width:30px;height:30px;border-radius:7px;border:1.5px solid var(--border);background:#fff;cursor:pointer;font-size:13px;font-weight:700;color:var(--ink-soft);}
.attendance-cell-btn:hover{border-color:var(--ink);}
.attendance-cell-btn.present{background:var(--green);border-color:var(--green);color:#fff;}
.attendance-cell-btn.absent{background:var(--red);border-color:var(--red);color:#fff;}
.attendance-legend{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--ink-soft);}
.attendance-legend span{display:inline-flex;align-items:center;gap:5px;}
.attendance-legend .dot{width:10px;height:10px;border-radius:3px;display:inline-block;}

/* --- Pasek wyszukiwania/sortowania/eksportu uczestnikow --- */
.participants-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:2px 0 10px;}
.participants-toolbar input[type=text]{flex:1 1 180px;min-width:160px;padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:'Inter',sans-serif;}
.participants-toolbar select{padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:'Inter',sans-serif;background:#fff;color:var(--ink);}
.participants-toolbar .export-btn{white-space:nowrap;background:var(--green);color:#fff;border:none;padding:8px 14px;border-radius:8px;font-family:'Baloo 2',sans-serif;font-weight:600;font-size:12.5px;cursor:pointer;}
.participants-toolbar .export-btn:hover{background:var(--green-dark);}
.participants-count{font-size:12px;color:var(--ink-soft);margin:0 0 8px;}
