:root {
  --primary: #007bff;
  --page: #f4f6f9;
  --text: #212529;
  --muted: #6c757d;
  --line: #dee2e6;
  --sidebar: 250px;
  --topbar: 57px;
  --shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--page); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background: var(--page);
  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

button, input, select, textarea { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
a { color: #007bff; text-decoration: none; }

.main-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1038;
  width: var(--sidebar);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22);
  transition: width .28s ease, transform .28s ease;
}
.sidebar-backdrop { display: none; }

.brand-link {
  display: flex;
  align-items: center;
  height: var(--topbar);
  padding: 10px 13px;
  color: rgba(0,0,0,.8);
  background: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
  white-space: nowrap;
}

.brand-image {
  width: 35px;
  height: 35px;
  margin-right: 8px;
  object-fit: contain;
  object-position: left center;
}

.brand-name { font-size: 20px; line-height: 30px; }
.brand-name span { color: #dc3545; }
.sidebar-inner { height: calc(100vh - var(--topbar)); overflow-y: auto; padding: 16px 8px 18px; }
.user-panel { margin: 16px 0; padding: 0 12px 16px; border-bottom: 1px solid #dee2e6; }
.user-panel a { color: #495057; white-space: nowrap; }

.sidebar-nav { display: flex; flex-direction: column; gap: 2px; }
.sidebar-nav .instructor-schedule-menu-hidden { display: none !important; }
.nav-link {
  display: grid;
  grid-template-columns: 29px minmax(0,1fr) auto;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 8px 12px;
  border: 0;
  border-radius: 4px;
  color: #343a40;
  background: transparent;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.nav-link:hover, .nav-link.active { color: #fff; background: var(--primary); }
.nav-icon { width: 22px; color: inherit; text-align: center; font-size: 18px; font-weight: 700; }
.menu-arrow { font-size: 24px; line-height: 1; transition: transform .2s; }
.nav-parent[aria-expanded="true"] .menu-arrow { transform: rotate(-90deg); }
.nav-submenu { display: none; padding: 2px 0 5px 43px; }
.nav-submenu.open { display: grid; }
.nav-submenu a { padding: 7px 10px; color: #495057; border-radius: 3px; }
.nav-submenu a::before { content: "○"; margin-right: 8px; }
.nav-submenu a:hover, .nav-submenu a.active { color: #0069d9; background: #eaf4ff; }
.nav-submenu a.active::before { content: "●"; }
.nav-parent.section-active { color: #0056b3; background: #e7f2ff; }

.main-header {
  position: sticky;
  top: 0;
  z-index: 1037;
  display: flex;
  align-items: center;
  min-height: var(--topbar);
  margin-left: var(--sidebar);
  padding: 8px;
  color: #fff;
  background: var(--primary);
  transition: margin-left .28s ease;
}
.main-header button, .front-link {
  padding: 8px 12px;
  border: 0;
  color: rgba(255,255,255,.82);
  background: transparent;
  cursor: pointer;
}
.main-header button:hover, .front-link:hover { color: #fff; }
.nav-button { width: 46px; font-size: 19px; }
.header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }

.content-wrapper {
  min-height: calc(100vh - var(--topbar));
  margin-left: var(--sidebar);
  background: var(--page);
  transition: margin-left .28s ease;
}
.content-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 15px 8px 12px; }
.content-header h1 { margin: 0; font-size: 28.8px; line-height: 1.2; font-weight: 500; }
.season-range { margin-top: 6px; color: #6c757d; font-size: 12px; }
.breadcrumb { display: flex; align-items: center; gap: 12px; padding: 7px 8px; color: #6c757d; font-size: 14px; }
.breadcrumb strong { color: #6c757d; font-weight: 400; }
.content { padding: 0 8px 28px; }

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 0 solid rgba(0,0,0,.125);
  border-radius: 4px;
  background: #fff;
  box-shadow: var(--shadow);
}
.card-header { padding: 12px 20px; border-bottom: 1px solid rgba(0,0,0,.125); border-radius: 4px 4px 0 0; background: #f8f9fa; }
.card-header h2 { margin: 0; color: #1f2d3d; font-size: 17px; font-weight: 400; }
.trip-card { margin-bottom: 16px; }
.trip-card-body { display: grid; gap: 14px; padding: 18px 20px 16px; }
.trip-card label { display: block; margin-bottom: 8px; font-weight: 700; }
.trip-overview { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(410px, .8fr); align-items: end; gap: 16px; }
.trip-select-field { min-width: 0; }
.trip-picker { position: relative; min-width: 0; font-size: 13px; }
.trip-picker-trigger { display: grid; grid-template-columns: minmax(280px, 1fr) auto auto; align-items: center; gap: 10px; width: 100%; min-height: 42px; padding: 5px 10px 5px 12px; color: #263746; background: #fff; border: 1px solid #b8c4cf; border-radius: 5px; text-align: left; cursor: pointer; }
.trip-picker-trigger:hover { border-color: #80a9ce; background: #fafdff; }
.trip-picker-trigger[aria-expanded="true"] { border-color: #2684c7; box-shadow: 0 0 0 3px rgba(38,132,199,.17); }
.trip-picker-trigger-main { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.trip-picker-trigger-meta { color: #5f6d79; font-size: 11px; font-weight: 700; white-space: nowrap; }
.trip-picker-arrow { color: #607588; font-size: 18px; line-height: 1; transition: transform .15s; }
.trip-picker-trigger[aria-expanded="true"] .trip-picker-arrow { transform: rotate(180deg); }
.trip-picker-panel { position: fixed; z-index: 2100; top: 0; left: 0; width: min(1420px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow-x: auto; overflow-y: scroll; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 7px; border: 1px solid #bfcbd6; border-radius: 6px; background: #fff; box-shadow: 0 14px 34px rgba(31,45,61,.22); }
.trip-picker-panel[hidden] { display: none; }
.trip-picker-week { position: sticky; top: -7px; z-index: 2; margin: 0 0 4px; padding: 7px 9px; color: #23415f; background: #eaf2f9; border-bottom: 1px solid #cfdeea; font-size: 12px; font-weight: 800; }
.trip-picker-week:not(:first-child) { margin-top: 7px; }
.trip-picker-columns, .trip-picker-option { display: grid; grid-template-columns: minmax(430px, 1fr) 82px 76px 82px 112px 102px; align-items: center; gap: 7px; min-width: 1030px; }
.trip-picker-columns { padding: 5px 10px; color: #697785; background: #f7f9fb; border-bottom: 1px solid #e1e6eb; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.trip-picker-option { width: 100%; margin: 2px 0; padding: 6px 8px; color: #263746; background: #fff; border: 1px solid transparent; border-left: 4px solid #aeb8c1; border-radius: 4px; text-align: left; cursor: pointer; }
.trip-picker-option.trip-picker-instructor-option { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.trip-picker-option:hover, .trip-picker-option:focus-visible { outline: 0; border-color: #8db9dc; background: #f3f9fd; }
.trip-picker-option[aria-selected="true"] { border-color: #2684c7; background: #eaf5fd; box-shadow: inset 0 0 0 1px #2684c7; }
.trip-picker-option.trip-option-ready { border-left-color: #28a745; }
.trip-picker-option.trip-option-warning { border-left-color: #e0a800; }
.trip-picker-option.trip-option-empty { border-left-color: #adb5bd; color: #6c757d; }
.trip-picker-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.trip-picker-stat { display: block; padding: 5px 6px; border-radius: 4px; text-align: center; font-size: 11px; font-weight: 800; white-space: nowrap; }
.trip-picker-stat.people { color: #086579; background: #dff4f8; }
.trip-picker-stat.groups { color: #705500; background: #fff3c4; }
.trip-picker-stat.free { color: #176b2a; background: #e1f4e5; }
.trip-picker-stat.assigned { color: #155b91; background: #e1effa; }
.trip-picker-stat.unassigned { color: #922331; background: #f9e3e6; }
.trip-picker-all { grid-template-columns: minmax(430px, 1fr); min-width: 0; border-left-color: #2684c7; }
.trip-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.trip-stat { display: grid; align-content: center; min-height: 62px; padding: 9px 12px; border: 1px solid #dfe5ea; border-left: 5px solid #17a2b8; border-radius: 4px; background: #f8fafb; }
.trip-stat.yellow { border-left-color: #e0a800; }
.trip-stat.green { border-left-color: #28a745; }
.trip-stat span { color: #6c757d; font-size: 12px; font-weight: 700; }
.trip-stat strong { margin-top: 2px; color: #1f2d3d; font-size: 22px; line-height: 1; }
.trip-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }

.form-control, textarea {
  display: block;
  width: 100%;
  min-height: 38px;
  padding: 6px 12px;
  color: #495057;
  background: #fff;
  border: 1px solid #ced4da;
  border-radius: 4px;
  box-shadow: inset 0 0 0 transparent;
}
.form-control:focus, textarea:focus { outline: 0; border-color: #80bdff; box-shadow: 0 0 0 3px rgba(0,123,255,.22); }
.form-control-sm { min-height: 31px; height: 31px; padding: 4px 8px; font-size: 14px; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 38px; padding: 6px 12px; border: 1px solid transparent; border-radius: 4px; cursor: pointer; transition: background .15s, border-color .15s, box-shadow .15s; }
.btn:disabled { opacity: .65; cursor: wait; }
.btn:focus-visible { outline: 3px solid rgba(0,123,255,.3); outline-offset: 1px; }
.btn-primary { color: #fff; background: #007bff; border-color: #007bff; }
.btn-primary:hover { background: #0069d9; border-color: #0062cc; }
.btn-info { color: #fff; background: #17a2b8; border-color: #17a2b8; }
.btn-info:hover { background: #138496; border-color: #117a8b; }
.btn-warning { color: #212529; background: #ffc107; border-color: #ffc107; }
.btn-warning:hover { background: #e0a800; }
.btn-danger { color: #fff; background: #dc3545; border-color: #dc3545; }
.btn-danger:hover { background: #c82333; border-color: #bd2130; }
.btn-default { color: #444; background: #f8f9fa; border-color: #ddd; }
.btn-default:hover { background: #e9ecef; }
.btn-sm { min-height: 31px; padding: 4px 8px; font-size: 14px; }
.btn-success { color: #fff; background: #28a745; border-color: #28a745; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 14px; }
.toolbar p { margin: 0; color: #6c757d; font-size: 14px; }
.toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.calendar-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.save-status { display: inline-flex; align-items: center; min-height: 31px; padding: 4px 9px; color: #495057; background: #fff; border: 1px solid #ced4da; border-radius: 12px; font-size: 12px; font-weight: 700; }
.save-status.saving { color: #856404; background: #fff3cd; border-color: #ffeeba; }
.save-status.saved { color: #155724; background: #d4edda; border-color: #c3e6cb; }
.save-status.error { color: #721c24; background: #f8d7da; border-color: #f5c6cb; }
.group-training-value { color: #155724; background: #eaf8ee; border-color: #b7e2c3; }
.unassigned-training-value { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding:10px 14px; color:#155724; background:#eaf8ee; border:1px solid #b7e2c3; border-radius:10px; }
.unassigned-training-value strong { font-size:16px; }
#groupsView.persistence-loading { cursor: progress; }
#groupsView.persistence-loading .content { opacity: .72; }

.group-filters { margin-bottom: 18px; overflow: hidden; }
.group-filters-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; }
.group-filters-heading h2 { margin: 0; font-size: 16px; font-weight: 600; }
.group-filters-heading p { margin: 3px 0 0; color: #6c757d; font-size: 12px; }
.group-filters-heading > span { color: #495057; font-size: 12px; font-weight: 700; white-space: nowrap; }
.group-filter-grid { display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(145px, 1fr)) auto; gap: 10px; align-items: end; padding: 14px 16px; }
.group-filter-grid label { display: grid; gap: 5px; color: #495057; font-size: 12px; font-weight: 600; }
.group-filter-grid .btn { white-space: nowrap; }

.instructor-baskets-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.instructor-basket { margin-bottom: 0; overflow: hidden; transition: outline-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.instructor-basket-header { padding: 12px 20px; background: #f4f6f9; }
.basket-header-row { display: grid; grid-template-columns: minmax(105px, 1fr) minmax(210px, 2fr) auto auto; align-items: center; gap: 12px; }
.basket-remove { white-space: nowrap; }
.basket-label { font-weight: 700; }
.basket-hours { display: inline-flex; align-items: center; gap: 5px; justify-self: end; padding: 4px 8px; color: #495057; background: #fff; border: 1px solid #dee2e6; border-radius: 3px; font-size: 12px; white-space: nowrap; }
.instructor-slot { position: relative; border-bottom: 1px solid #d7d7d7; transition: opacity .15s ease, transform .15s ease; }
.instructor-slot:last-child { border-bottom: 0; }
.group-type-0 { background: #d9e8fb; }.group-type-1 { background: #e2efd9; }.group-type-2 { background: #e5def2; }.group-type-3 { background: #f8ebc9; }
.instructor-slot-main { display: grid; grid-template-columns: minmax(240px, 1fr) 300px 330px; align-items: center; gap: 14px; min-height: 72px; padding: 11px 14px; }
.instructor-slot-title { display: grid; min-width: 0; gap: 7px; text-align: left; }
.group-title-line, .group-training-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.group-drag-handle { display: inline-grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; color: #425466; background: rgba(255,255,255,.72); border: 1px solid rgba(66,84,102,.28); border-radius: 5px; font-size: 17px; font-weight: 900; line-height: 1; letter-spacing: -3px; cursor: grab; user-select: none; touch-action: none; }
.group-drag-handle:hover, .group-drag-handle:focus-visible { color: #1769aa; background: #fff; border-color: #68a8d7; outline: 0; box-shadow: 0 0 0 3px rgba(23,105,170,.16); }
.group-drag-handle:active { cursor: grabbing; }
.instructor-slot.is-group-dragging-card { opacity: .42; transform: scale(.995); }
.is-group-dragging .instructor-basket, .is-group-dragging .unassigned-section { outline: 2px dashed #8aa2b7; outline-offset: 3px; }
.is-group-dragging .instructor-basket { min-height: 96px; }
.instructor-basket.is-group-drop-target, .unassigned-section.is-group-drop-target { outline: 3px solid #2f9e44; outline-offset: 3px; background: #effaf2; box-shadow: 0 0 0 6px rgba(47,158,68,.13); }
.instructor-basket.is-group-drop-target .instructor-basket-header, .unassigned-section.is-group-drop-target .unassigned-header { background: #e3f5e8; }
.group-category-name { color: #17212b; font-size: 16px; line-height: 1.2; }
.group-level-chip, .group-sequence-chip { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 9px; border-radius: 12px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.group-level-chip { color: #fff; }
.group-sequence-chip { color: #3d4b58; background: #eef1f4; border: 1px solid #d7dde2; }
.group-time { display: inline-flex; align-items: baseline; gap: 6px; color: #253748; }
.group-time small { color: #7a8793; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.group-time strong { font-size: 13px; }
.group-training-note { color: #65727e; font-size: 12px; }
.occupancy-status { display: inline-block; margin-left: 0; padding: 3px 8px; border: 1px solid transparent; border-radius: 10px; font-size: 10px; font-weight: 700; white-space: nowrap; vertical-align: 1px; }
.occupancy-status.occupancy-available { color: #23683a; background: rgba(212,237,218,.88); border-color: #b8dfc2; }
.occupancy-status.occupancy-full { color: #725900; background: rgba(255,243,205,.92); border-color: #f1dc92; }
.occupancy-status.occupancy-overbooked { color: #8b2632; background: rgba(248,215,218,.92); border-color: #edb9bf; }
.occupancy-status.occupancy-pool { color: #7d3038; background: #fff1f2; border-color: #e6b8bd; }
.instructor-slot.occupancy-available { box-shadow: inset 3px 0 #70b786; }
.instructor-slot.occupancy-full { box-shadow: inset 3px 0 #ddb83d; }
.instructor-slot.occupancy-overbooked { box-shadow: inset 3px 0 #d86a75; }
.instructor-slot.occupancy-pool { box-shadow: inset 3px 0 #dc3545; }
.instructor-slot-meta { display: grid; grid-template-columns: 68px 52px 58px 101px; align-items: center; gap: 7px; width: 300px; }
.instructor-slot-meta > * { justify-self: stretch; }
.instructor-slot-meta > .badge { text-align: center; }
.group-status-row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 7px; min-width: 0; }
.group-status-row .occupancy-status { flex: 0 0 auto; width: max-content; max-width: 100%; overflow: visible; }
.group-status-flags { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.group-status-row .badge-warning { width: max-content; padding: 4px 8px; color: #765800; background: #fff3cd; border: 1px solid #ecd778; border-radius: 10px; text-align: center; white-space: nowrap; }
.group-metric { display: grid; min-width: 54px; padding: 4px 8px; color: #273746; background: #f7f9fa; border: 1px solid #dde3e8; border-radius: 5px; text-align: center; line-height: 1.05; }
.group-metric strong { font-size: 12px; }
.group-metric small { margin-top: 2px; color: #7a8793; font-size: 9px; text-transform: uppercase; }
.group-actions { display: grid; grid-template-columns: 78px 54px 102px 78px; gap: 6px; width: 330px; }
.group-actions .btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 34px; white-space: normal; }
.badge { display: inline-block; padding: 4px 6px; border-radius: 3px; font-size: 11px; font-weight: 700; line-height: 1; }
.badge-primary { color: #fff; background: #007bff; }
.badge-light { color: #1f2d3d; background: #f8f9fa; }
.instructor-slot-details { flex-shrink: 0; }
.group-linked-reservations { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; background: rgba(255,255,255,.72); border-top: 1px dashed rgba(0,0,0,.16); }
.group-linked-heading { color: #495057; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.group-linked-item { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; color: var(--cohort-text); background: var(--cohort-bg); border: 1px solid var(--cohort-border); border-left-width: 4px; border-radius: 5px; font-size: 11px; line-height: 1.25; }
.group-linked-count { padding: 2px 5px; color: #fff; background: var(--cohort-border); border-radius: 9px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.cohort-tone-1 { --cohort-bg: #e7f3ff; --cohort-border: #3284c7; --cohort-text: #174f7c; }
.cohort-tone-2 { --cohort-bg: #e7f7ed; --cohort-border: #3b9460; --cohort-text: #245b3c; }
.cohort-tone-3 { --cohort-bg: #f2eafa; --cohort-border: #8b5fb3; --cohort-text: #5d3d7a; }
.cohort-tone-4 { --cohort-bg: #fff0df; --cohort-border: #d67b22; --cohort-text: #82470d; }
.cohort-tone-5 { --cohort-bg: #fdebf2; --cohort-border: #c6537e; --cohort-text: #7c3450; }
.cohort-tone-6 { --cohort-bg: #e1f7f5; --cohort-border: #2b9189; --cohort-text: #1d5e59; }
.instructor-slot-participants { padding: 10px; background: #fff; border-top: 1px solid rgba(0,0,0,.12); }
.details-panel[hidden] { display: none; }
.hours-panel { display: flex; justify-content: flex-end; padding: 10px; background: #f8f9fa; border-top: 1px solid rgba(0,0,0,.12); }
.hours-panel[hidden] { display: none; }
.hours-panel .schedule-card { width: min(430px, 100%); }
.table-responsive { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { padding: 7px 8px; border: 1px solid #dee2e6; text-align: left; vertical-align: middle; }
th { font-weight: 700; }
.participants-table { min-width: 980px; font-size: 13px; }
.participants-table th:nth-child(1) { width: 82px; }
.participants-table th:nth-child(3) { width: 55px; }
.participants-table th:nth-child(4) { width: 190px; }
.participants-table th:nth-child(5) { width: 125px; }
.participants-table th:nth-child(6) { width: 105px; }
.participants-table th:last-child { width: 130px; }
.participant-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.participant-linked-row td { background: var(--cohort-bg); border-top-color: var(--cohort-border); border-bottom-color: var(--cohort-border); }
.participant-linked-row td:first-child { border-left: 4px solid var(--cohort-border); }
.participant-linked-badge { display: block; width: max-content; margin-top: 4px; padding: 2px 6px; color: var(--cohort-text); background: rgba(255,255,255,.72); border: 1px solid var(--cohort-border); border-radius: 9px; font-size: 10px; font-weight: 700; }
.move-panel { display: none; grid-template-columns: 1fr auto; gap: 7px; align-items: center; padding: 8px; background: #eaf3ff; border-top: 1px solid #c7dcf5; }
.move-panel.open { display: grid; }
.move-cohort-note { grid-column: 1 / -1; padding: 6px 8px; color: var(--cohort-text); background: var(--cohort-bg); border: 1px solid var(--cohort-border); border-radius: 3px; font-size: 12px; font-weight: 600; }
.move-target-field { display: grid; min-width: 0; gap: 4px; }
.move-target-field > span { color: #33536f; font-size: 12px; font-weight: 700; }
.move-target-field > span small { margin-left: 5px; color: #6c7c89; font-size: 10px; font-weight: 600; }
[data-move-target] { min-height: 38px; color: #24384a; background-color: #fff; font-family: "Segoe UI", Arial, sans-serif; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0; }
[data-move-target] optgroup { color: #1d4f7a; font-weight: 800; }
[data-move-target] option { padding-block: 5px; color: #263746; font-family: "Segoe UI", Arial, sans-serif; font-weight: 500; font-variant-numeric: tabular-nums; }
.group-assignment-panel { display: none; grid-template-columns: auto minmax(220px, 1fr) auto; gap: 10px; align-items: center; padding: 10px; background: #eaf3ff; border-top: 1px solid #c7dcf5; }
.group-assignment-panel.open { display: grid; }
.group-assignment-panel label { font-size: 13px; font-weight: 700; }
.group-merge-panel { display: none; grid-template-columns: auto minmax(260px, 1fr) auto; gap: 10px; align-items: center; padding: 10px; background: #edf7f0; border-top: 1px solid #c9e4d0; }
.group-merge-panel.open { display: grid; }
.group-merge-panel label { font-size: 13px; font-weight: 700; }
.merge-empty { color: #6c757d; font-size: 13px; }
.basket-no-results { padding: 16px 20px; color: #6c757d; background: #fff; font-size: 13px; font-style: italic; }
.schedule-card { align-self: start; border: 1px solid #dee2e6; border-radius: 3px; overflow: hidden; background: #fff; }
.schedule-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; background: #f4f6f9; }
.schedule-card h3 { margin: 0; color: #495057; font-size: 14px; }
.schedule-heading span { color: #6c757d; font-size: 11px; }
.schedule-table { font-size: 12px; }
.schedule-table td { padding: 5px 6px; }
.hours-edit-cell { display: flex; align-items: center; gap: 4px; }
.hours-input { width: 64px; min-height: 28px; padding: 3px 5px; border: 1px solid #ced4da; border-radius: 3px; }
.hours-input:focus { outline: 0; border-color: #80bdff; box-shadow: 0 0 0 2px rgba(0,123,255,.18); }
.hours-input.friday-hours { color: #315f3d; background: #e7f5eb; border-color: #8fc89e; font-weight: 700; }
.time-range-input { width: 136px; min-height: 28px; padding: 3px 7px; border: 1px solid #ced4da; border-radius: 3px; color: #343a40; background: #fff; font-size: 12px; }
.time-range-input:focus { outline: 0; border-color: #80bdff; box-shadow: 0 0 0 2px rgba(0,123,255,.18); }
.schedule-total { display: flex; justify-content: space-between; padding: 8px 10px; font-size: 13px; font-weight: 700; background: #f8ebc9; }
.schedule-save { width: calc(100% - 16px); margin: 8px; }
.unassigned-section { margin-top: 24px; overflow: hidden; border-top: 3px solid #dc3545; transition: outline-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.unassigned-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #fff; }
.unassigned-header h2 { color: #212529; font-size: 20px; font-weight: 600; }
.unassigned-header p { margin: 3px 0 0; color: #6c757d; font-size: 13px; }
.unassigned-header-actions { display: flex; align-items: center; gap: 8px; }
.unassigned-count { padding: 5px 10px; color: #fff; background: #dc3545; border-radius: 12px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.unassigned-groups { display: block; padding: 18px; background: #f1f3f5; }
.unassigned-participants-list { margin-bottom: 22px; overflow: hidden; border: 1px solid #e2b8bd; border-radius: 6px; background: #fff; }
.unassigned-participants-table-wrap { margin-bottom: 22px; border: 1px solid #dee2e6; border-radius: 5px; background: #fff; }
.unassigned-participants-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; background: #fff3f4; border-bottom: 1px solid #e8c4c8; }
.unassigned-participants-heading h3 { margin: 0; color: #7d3038; font-size: 16px; }
.unassigned-participants-heading p { margin: 3px 0 0; color: #6c757d; font-size: 12px; }
.unassigned-heading-actions { display: flex; align-items: center; gap: 8px; }
.unassigned-heading-actions > span { padding: 4px 9px; color: #fff; background: #dc3545; border-radius: 11px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.unassigned-participants-table { min-width: 1180px; font-size: 12px; }
.unassigned-participants-table th { padding: 8px; color: #495057; background: #f8f9fa; white-space: nowrap; }
.unassigned-participants-table .unassigned-person-row.row-alt td { background: #fafbfc; }
.unassigned-participants-table .unassigned-person-row:hover td { background: #eef6ff; }
.unassigned-participants-table th:nth-child(1) { width: 90px; }
.unassigned-participants-table th:nth-child(2) { width: 105px; }
.unassigned-participants-table th:nth-child(3) { width: 60px; text-align: center; }
.unassigned-participants-table th:nth-child(4) { width: 250px; }
.unassigned-participants-table th:nth-child(6) { width: 85px; }
.unassigned-participants-table th:nth-child(7) { width: 90px; }
.unassigned-participants-table th:last-child { width: 245px; }
.unassigned-participants-table td:nth-child(3) { text-align: center; }
.unassigned-move-row td { background: #fff; }
.level-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 7px; color: #fff; border-radius: 12px; }
.level-tone-0 { background: #596775; }
.level-tone-1 { background: #278557; }
.level-tone-2 { background: #1976c9; }
.level-tone-3 { background: #7a48aa; }
.level-tone-4 { background: #c34f32; }
.level-tone-other { background: #343a40; }
.no-target-label { color: #8a6267; font-size: 11px; font-weight: 600; }
.waiting-group-label { display: inline-flex; align-items: center; white-space: nowrap; padding: 4px 8px; color: #7a5a00; background: #fff4cc; border: 1px solid #f0d77b; border-radius: 12px; font-size: 11px; font-weight: 700; }
.unassigned-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }

.instructor-schedule-card { overflow: hidden; border-top: 3px solid #28a745; }
.instructor-schedule-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.instructor-schedule-header h2 { margin: 0; }
.instructor-schedule-header p { margin: 3px 0 0; color: #6c757d; font-size: 13px; }
.instructor-schedule-stats { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.instructor-schedule-stats span { padding: 6px 9px; color: #53606c; background: #fff; border: 1px solid #dee2e6; border-radius: 4px; font-size: 11px; white-space: nowrap; }
.instructor-schedule-stats strong { color: #1f2d3d; font-size: 13px; }
.instructor-schedule-stats .schedule-stat-warning { color: #8a5b00; background: #fff7df; border-color: #f0d58a; }
.instructor-schedule-stats .schedule-stat-warning strong { color: #8a5b00; }
.instructor-schedule-filters { display: grid; grid-template-columns: minmax(230px, 1fr) 210px minmax(230px, auto) auto; gap: 12px; align-items: end; padding: 14px 16px; background: #fff; border-bottom: 1px solid #dee2e6; }
.instructor-schedule-filters > label:not(.schedule-filled-filter) { display: grid; gap: 5px; color: #495057; font-size: 12px; font-weight: 600; }
.schedule-filled-filter { display: flex; align-items: center; gap: 8px; min-height: 38px; color: #495057; font-size: 12px; font-weight: 600; }
.schedule-filled-filter input { width: 16px; height: 16px; }
.instructor-schedule-week-nav { border-bottom: 0; }
.instructor-schedule-period { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 16px; color: #4e5964; background: #edf7f0; border-top: 1px solid #d5eadb; border-bottom: 1px solid #d5eadb; font-size: 12px; }
.instructor-schedule-period > div { display: flex; align-items: baseline; gap: 10px; }
.instructor-schedule-period strong { color: #1e5631; font-size: 15px; }
.instructor-schedule-period .calendar-detail-period-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.calendar-detail-period-summary > span { padding: 4px 8px; color: #3d5b48; background: rgba(255,255,255,.72); border: 1px solid #cfe2d5; border-radius: 11px; font-size: 11px; font-weight: 700; }
.calendar-detail-period-summary > span > strong { margin-right: 2px; font-size: 13px; }
.calendar-detail-period-summary .calendar-detail-period-destination { color: #155724; background: #dff1e4; border-color: #bddcc6; }
.instructor-schedule-wrap { max-width: 100%; max-height: calc(100vh - 337px); min-height: 430px; overflow: auto; background: #edf1f5; }
.instructor-schedule-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.instructor-schedule-table th, .instructor-schedule-table td { min-width: 218px; width: 218px; padding: 6px; border-color: #e4e8ec; vertical-align: middle; }
.instructor-schedule-table th:first-child, .instructor-schedule-table td:first-child { position: sticky; left: 0; z-index: 2; min-width: 225px; width: 225px; max-width: 225px; background: #f8f9fa; box-shadow: 3px 0 8px rgba(31,45,61,.1); }
.instructor-schedule-table thead th { position: sticky; top: 0; z-index: 3; height: 72px; color: #fff; background: #343a40; text-align: center; }
.instructor-schedule-table thead th:first-child { z-index: 4; color: #fff; background: #343a40; text-align: left; }
.instructor-schedule-table thead th strong { display: block; max-width: 220px; overflow: hidden; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.instructor-schedule-table thead th span { display: block; margin-top: 4px; color: rgba(255,255,255,.67); font-size: 10px; }
.instructor-schedule-table thead th small { display: block; margin-top: 4px; color: #9fe1b0; font-size: 9px; font-weight: 700; }
.instructor-schedule-person { text-align: left; }
.instructor-schedule-person > strong { display: block; color: #263746; font-size: 13px; line-height: 1.25; }
.instructor-schedule-person > span { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 6px; color: #7b8792; font-size: 10px; font-weight: 500; }
.instructor-schedule-person b { padding: 2px 6px; color: #fff; background: #007bff; border-radius: 10px; font-size: 9px; }
.instructor-schedule-cell { height: 74px; background: #fafbfc; }
.instructor-schedule-cell.has-assignments { vertical-align: top; }
.instructor-schedule-cell.has-warning { background: #fff9ea; box-shadow: inset 0 0 0 1px #f2cc73; }
.schedule-assignment { display: grid; gap: 4px; min-height: 54px; padding: 7px 8px; color: #176b35; background: #dff4e4; border: 1px solid #bfe4c8; border-left: 4px solid #28a745; border-radius: 5px; box-shadow: 0 1px 2px rgba(31,45,61,.1); }
.schedule-assignment + .schedule-assignment { margin-top: 6px; }
.schedule-assignment.is-snowboard { color: #145a8d; background: #e2f1fd; border-color: #bbdaf1; border-left-color: #007bff; }
.schedule-assignment-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; }
.schedule-assignment-heading strong { max-width: 155px; overflow: hidden; font-size: 11px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.schedule-assignment-heading span { flex: 0 0 auto; padding: 2px 5px; color: inherit; background: rgba(255,255,255,.65); border-radius: 8px; font-size: 8px; font-weight: 700; }
.schedule-assignment-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; font-size: 10px; font-weight: 600; }
.schedule-assignment-meta span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-assignment-meta span:last-child { flex: 0 0 auto; }
.schedule-empty-slot { display: grid; place-items: center; min-height: 54px; color: #c8ced4; font-size: 14px; }
.schedule-more-groups { display: block; margin-top: 5px; padding: 3px 6px; color: #6c757d; background: #e9ecef; border-radius: 3px; text-align: center; font-size: 9px; font-weight: 700; }
.schedule-cell-warning { display: block; margin-top: 5px; padding: 4px 6px; color: #815400; background: #fff1bd; border: 1px solid #efd073; border-radius: 4px; text-align: center; font-size: 9px; font-weight: 800; }
.schedule-empty-person { height: 160px; color: #c8ced4; text-align: center; }
.schedule-no-results { height: 160px; padding: 28px; color: #6c757d; background: #fff; text-align: left; font-size: 14px; }

.calendar-card { overflow: hidden; border-top: 3px solid var(--primary); }
.calendar-card-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.calendar-card-header h2 { margin: 0; }
.calendar-card-header p { margin: 3px 0 0; color: #6c757d; font-size: 13px; }
.calendar-roster { padding: 16px 18px 18px; border-bottom: 1px solid #e1e5e9; background: #f8f9fa; }
.calendar-roster[hidden] { display: none; }
.calendar-roster > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.calendar-roster h3 { margin: 0; font-size: 16px; }.calendar-roster p { margin: 4px 0 0; color: #6c757d; font-size: 12px; }
.calendar-roster > header > span { flex: 0 0 auto; padding: 5px 9px; color: #5f6872; background: #fff; border: 1px solid #dce1e5; border-radius: 12px; font-size: 11px; font-weight: 800; }
.calendar-roster form { display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(130px, .65fr) minmax(145px, .7fr) minmax(145px, .7fr) auto; align-items: end; gap: 10px; }
.calendar-roster form label { display: grid; gap: 5px; color: #4e5964; font-size: 11px; font-weight: 700; }
.calendar-roster-list { display: grid; gap: 7px; max-height: 270px; margin-top: 14px; overflow-y: auto; }
.calendar-roster-row { display: grid; grid-template-columns: minmax(190px, 1fr) 130px 110px auto; align-items: center; gap: 12px; min-height: 50px; padding: 8px 10px; background: #fff; border: 1px solid #e1e5e9; border-radius: 8px; }
.calendar-roster-row strong, .calendar-roster-row small { display: block; }.calendar-roster-row small { margin-top: 2px; color: #7a8793; }.calendar-roster-row > span { color: #5f6872; font-size: 12px; }
.calendar-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 170px 220px 190px auto auto; gap: 12px; align-items: end; padding: 14px 16px; background: #fff; border-bottom: 1px solid #dee2e6; }
.calendar-filters label { display: grid; gap: 5px; color: #495057; font-size: 12px; font-weight: 600; }
.calendar-visible-count { align-self: center; padding-top: 18px; color: #6c757d; white-space: nowrap; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 16px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; }
.calendar-legend span { padding: 4px 8px; border-radius: 3px; font-size: 11px; font-weight: 700; }
.calendar-week-nav { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: stretch; gap: 8px; padding: 12px 16px; background: #fff; border-bottom: 1px solid #dee2e6; }
.calendar-week-rail { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: thin; scroll-behavior: smooth; }
.calendar-week-arrow, .calendar-week-chip { border: 1px solid #d7dde3; color: #495057; background: #f8f9fa; cursor: pointer; }
.calendar-week-arrow { border-radius: 5px; font-size: 24px; line-height: 1; }
.calendar-week-arrow:hover, .calendar-week-chip:hover { color: #0069d9; border-color: #80bdff; background: #eef6ff; }
.calendar-week-chip { display: grid; flex: 0 0 112px; gap: 1px; padding: 6px 9px; border-radius: 5px; text-align: center; }
.calendar-week-chip strong { font-size: 11px; }
.calendar-week-chip span { color: #6c757d; font-size: 10px; }
.calendar-week-chip.active { color: #fff; border-color: var(--primary); background: var(--primary); box-shadow: 0 2px 7px rgba(0,123,255,.25); }
.calendar-week-chip.active span { color: rgba(255,255,255,.85); }
.calendar-table-wrap { max-width: 100%; max-height: calc(100vh - 318px); min-height: 460px; overflow: auto; background: #edf1f5; }
.calendar-table { width: max-content; min-width: 100%; font-size: 12px; border-collapse: separate; border-spacing: 0; }
.calendar-table th, .calendar-table td { min-width: 184px; width: 184px; padding: 7px; vertical-align: middle; border-color: #dfe4e9; }
.calendar-table th:first-child, .calendar-table td:first-child { position: sticky; left: 0; z-index: 2; min-width: 220px; width: 220px; max-width: 220px; background: #f8f9fa; box-shadow: 3px 0 8px rgba(31,45,61,.1); }
.calendar-table thead th { position: sticky; top: 0; z-index: 3; height: 92px; color: #fff; background: #343a40; text-align: center; }
.calendar-table thead th:first-child { z-index: 4; color: #fff; background: #343a40; text-align: left; }
.calendar-instructor-cell { text-align: left; }
.calendar-instructor-name { display: block; color: #243447; font-size: 13px; line-height: 1.25; }
.calendar-instructor-meta { display: flex; align-items: center; justify-content: space-between; gap: 7px; margin-top: 5px; color: #7a8793; font-size: 10px; font-weight: 500; }
.calendar-instructor-sport { display: inline-block; padding: 2px 6px; border-radius: 10px; color: #fff; background: #007bff; font-size: 9px; font-weight: 700; }
.calendar-week-title { display: block; margin-bottom: 3px; font-size: 12px; }
.calendar-week-dates { display: block; color: rgba(255,255,255,.68); font-size: 10px; line-height: 1.35; }
.calendar-week-counts { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; margin-top: 8px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.16); }
.calendar-week-count { min-width: 27px; padding: 2px 4px; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; font-size: 9px; line-height: 1.2; white-space: nowrap; }
.calendar-cell { height: 72px; background: #f7f9fb; }
.calendar-cell-summary { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; min-height: 56px; padding: 8px 9px; border-left: 4px solid transparent; border-radius: 5px; box-shadow: 0 1px 3px rgba(31,45,61,.12); }
.calendar-cell-summary strong { grid-column: 1 / -1; overflow: hidden; font-size: 11px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.calendar-cell-summary span { font-size: 10px; font-weight: 600; }
.calendar-cell-summary span:last-child { text-align: right; }
.calendar-cell-summary .calendar-hourly-rate { grid-column: 1 / -1; text-align: left; }
.calendar-cell.status-P .calendar-cell-summary { color: #176b35; background: #dff4e4; border-left-color: #28a745; }
.calendar-cell.status-N .calendar-cell-summary { color: #8b2632; background: #f9e1e4; border-left-color: #dc3545; }
.calendar-cell.status-Q .calendar-cell-summary { color: #7a5a00; background: #fff3cd; border-left-color: #ffc107; }
.calendar-cell.status-U .calendar-cell-summary { color: #5f6870; background: #e9ecef; border-left-color: #8a949e; }
.calendar-cell.status-I .calendar-cell-summary { color: #12606c; background: #d9f1f5; border-left-color: #17a2b8; }
.status-P { background: #d4edda; color: #155724; }
.status-N { background: #f8d7da; color: #721c24; }
.status-Q { background: #fff3cd; color: #856404; }
.status-U { background: #e2e3e5; color: #383d41; }
.status-I { background: #d1ecf1; color: #0c5460; }
.calendar-cell.status-P, .calendar-cell.status-N, .calendar-cell.status-Q, .calendar-cell.status-U, .calendar-cell.status-I { background: #f7f9fb; }
.calendar-cell-editor { display: none; }
.calendar-field { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px; margin-top: 6px; }
.calendar-field label { grid-column: 1 / -1; color: #6c757d; font-size: 10px; font-weight: 600; }
.calendar-field input { width: 100%; min-height: 30px; padding: 4px 6px; border: 1px solid #ced4da; border-radius: 3px; }
.calendar-status { width: 100%; min-height: 32px; border: 1px solid #ced4da; border-radius: 3px; background: #fff; }
.calendar-save { width: 100%; margin-top: 7px; }
.calendar-card.calendar-editing .calendar-cell { height: 242px; background: #fff; vertical-align: top; }
.calendar-card.calendar-editing .calendar-cell-summary { display: none; }
.calendar-card.calendar-editing .calendar-cell-editor { display: block; }
.calendar-empty { height: 170px; color: #6c757d; background: #fff; text-align: center; font-size: 14px; }

.calendar-detail-card { overflow: hidden; border-top: 3px solid #7a48aa; }
.calendar-detail-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.calendar-detail-header h2 { margin: 0; }
.calendar-detail-header p { margin: 3px 0 0; color: #6c757d; font-size: 13px; }
.calendar-detail-filters { display: grid; grid-template-columns: minmax(210px, 1fr) 165px 220px auto auto auto; gap: 10px; align-items: end; padding: 12px 16px; background: #fff; border-bottom: 1px solid #dee2e6; }
.calendar-detail-trip-picker { padding: 14px 16px; background: #f8fafb; border-bottom: 1px solid #dee2e6; }
.calendar-detail-trip-picker > label { display: block; margin-bottom: 6px; color: #495057; font-size: 12px; font-weight: 800; }
.calendar-detail-filters > label:not(.calendar-detail-check) { display: grid; gap: 5px; color: #495057; font-size: 12px; font-weight: 600; }
.calendar-detail-check { display: flex; align-items: center; gap: 7px; min-height: 38px; color: #495057; font-size: 11px; font-weight: 700; white-space: nowrap; }
.calendar-detail-check input { width: 16px; height: 16px; }
.calendar-detail-wrap { max-width: 100%; max-height: calc(100vh - 337px); min-height: 430px; overflow: auto; background: #edf1f5; }
.calendar-detail-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.calendar-detail-table th, .calendar-detail-table td { height: 60px; min-width: 148px; width: 148px; padding: 7px 8px; vertical-align: middle; border-color: #dfe4e9; text-align: center; }
.calendar-detail-table thead th { position: sticky; top: 0; z-index: 3; height: 48px; color: #fff; background: #343a40; font-size: 12px; }
.calendar-detail-table .calendar-detail-instructor { position: sticky; left: 0; z-index: 2; min-width: 220px; width: 220px; max-width: 220px; background: #f8f9fa; box-shadow: 3px 0 8px rgba(31,45,61,.1); text-align: left; }
.calendar-detail-table thead .calendar-detail-instructor { z-index: 4; color: #fff; background: #343a40; }
.calendar-detail-order { min-width: 54px !important; width: 54px !important; color: #596775; background: #f8f9fa; font-weight: 800; }
.calendar-detail-time-compact { min-width: 82px !important; width: 82px !important; }
.calendar-detail-table .calendar-detail-time-header, .calendar-detail-table .calendar-detail-timeline-cell { min-width: 960px !important; width: 960px !important; padding: 0 !important; }
.calendar-detail-time-axis { display: grid; height: 100%; grid-template-columns: repeat(16, minmax(52px, 1fr)); align-items: stretch; }
.calendar-detail-time-axis span { display: grid; place-items: center; border-left: 1px solid rgba(255,255,255,.22); font-size: 12px; }
.calendar-detail-time-axis span:last-child { border-right: 1px solid rgba(255,255,255,.22); }
.calendar-detail-timeline-cell { background: #fff; vertical-align: top !important; }
.calendar-detail-timeline-grid { display: grid; min-height: 72px; padding: 7px 0; grid-template-columns: repeat(16, minmax(52px, 1fr)); grid-auto-rows: minmax(58px, auto); gap: 6px 0; background-color: #fafbfc; background-image: linear-gradient(to right, #d7dde3 1px, transparent 1px), linear-gradient(to right, #edf0f3 1px, transparent 1px); background-position: 0 0, 0 0; background-size: 12.5% 100%, 6.25% 100%; }
.calendar-detail-timeline-item { min-width: 0; padding: 0 5px; align-self: start; container-type: inline-size; }
.calendar-detail-name { display: block; overflow: hidden; color: #263746; font-size: 13px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.calendar-detail-name.is-unassigned { color: #9aa3ab; font-style: italic; font-weight: 500; }
.calendar-detail-sport { display: inline-flex; margin-top: 4px; padding: 2px 7px; color: #fff; background: #007bff; border-radius: 9px; font-size: 10px; font-weight: 700; }
.calendar-detail-sport + .calendar-detail-sport { margin-left: 4px; }
.calendar-detail-sport.is-snowboard { background: #7a48aa; }
.calendar-detail-slot { background: #fff; }
.calendar-detail-slot.is-empty { color: #c5cbd1; background: #fafbfc; }
.calendar-detail-group-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 8px; width: 100%; transition: opacity .15s ease, transform .15s ease; }
.calendar-detail-group-card + .calendar-detail-group-card { margin-top: 6px; }
.calendar-detail-group { display: grid; grid-template-columns: minmax(0, auto) minmax(180px, 1fr); align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 8px 10px; color: #244b29; background: #e2f1dd; border: 1px solid #c4dfbc; border-radius: 4px; font: inherit; font-size: 12px; font-weight: 750; line-height: 1.15; cursor: pointer; }
.calendar-detail-group:hover { border-color: #80bd91; box-shadow: 0 1px 4px rgba(31,45,61,.16); }
.calendar-detail-group-actions { display: grid; grid-template-columns: 28px minmax(76px, 1fr); align-items: stretch; gap: 6px; }
.calendar-detail-drag-handle { display: inline-grid; width: 28px; min-height: 56px; place-items: center; color: #42634a; background: rgba(255,255,255,.82); border: 1px solid rgba(66,99,74,.3); border-radius: 7px; font-size: 14px; font-weight: 900; line-height: 1; letter-spacing: -3px; cursor: grab; user-select: none; }
.calendar-detail-drag-handle:hover, .calendar-detail-drag-handle:focus-visible { color: #176b35; background: #fff; border-color: #55a36b; outline: 0; box-shadow: 0 0 0 3px rgba(49,149,77,.17); }
.calendar-detail-drag-handle:active { cursor: grabbing; }
.calendar-detail-group-card.is-calendar-detail-dragging-card { opacity: .38; transform: scale(.98); }
.calendar-detail-unassign-drop { display: none; position: sticky; top: 0; z-index: 7; min-height: 58px; align-items: center; justify-content: center; gap: 10px; color: #7a3038; background: #fff1f2; border: 2px dashed #cf6a75; font-size: 12px; }
.calendar-detail-unassign-drop strong { font-size: 14px; }
.is-calendar-detail-dragging .calendar-detail-unassign-drop { display: flex; }
.is-calendar-detail-dragging [data-calendar-detail-drop-instructor] > * { transition: background-color .15s ease, box-shadow .15s ease; }
.is-calendar-detail-dragging .calendar-detail-table tbody > tr[data-calendar-detail-drop-instructor] > th { box-shadow: inset 0 0 0 2px #9bb2a1, 3px 0 8px rgba(31,45,61,.1); }
.calendar-detail-table tr.is-calendar-detail-drop-target > th, .calendar-detail-table tr.is-calendar-detail-drop-target > td { background-color: #e3f5e8 !important; box-shadow: inset 0 0 0 3px #2f9e44; }
.calendar-detail-table tr.is-calendar-detail-drop-target .calendar-detail-timeline-grid { background-color: #e3f5e8; }
.calendar-detail-unassign-drop.is-calendar-detail-drop-target { color: #8b2632; background: #ffe2e5; border-style: solid; border-color: #c84050; box-shadow: inset 0 0 0 3px rgba(200,64,80,.16); }
.calendar-detail-group.is-snowboard { color: #174e73; background: #e2f1fd; border-color: #bbdaf1; }
.calendar-detail-group.has-exceptions { border-color: #edc45d; border-left: 4px solid #e7a600; }
.calendar-detail-group-info { display: flex; min-width: 0; align-items: center; gap: 5px; overflow: hidden; white-space: nowrap; }
.calendar-detail-group-info > strong { overflow: hidden; text-overflow: ellipsis; }
.calendar-detail-group .calendar-detail-exception-label { flex: 0 0 auto; padding: 2px 4px; color: #805600; background: #fff0c7; border-radius: 3px; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.calendar-detail-group-destination { display: inline-block; flex: 0 1 auto; max-width: 150px; padding: 3px 6px; overflow: hidden; border-radius: 9px; font-size: 10px; font-weight: 900; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.calendar-detail-assign-toggle { width: 100%; min-width: 76px; margin: 0; padding: 6px 8px; color: #28733d; background: #f5fbf6; border: 1px solid #c9e2cf; border-radius: 7px; font-size: 10px; font-weight: 800; line-height: 1.2; white-space: nowrap; cursor: pointer; }
.calendar-detail-assign-toggle:hover, .calendar-detail-group-card.is-assigning .calendar-detail-assign-toggle { color: #fff; background: #31954d; border-color: #31954d; }
.calendar-detail-assign-panel { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 5px; padding: 4px; background: #eef8f0; border: 1px solid #c9e2cf; border-radius: 4px; }
.calendar-detail-assign-panel[hidden] { display: none; }
.calendar-detail-assign-panel select { min-width: 0; height: 34px; padding: 4px 7px; font-size: 12px; }
.calendar-detail-assign-panel .btn { min-height: 34px; padding: 4px 9px; font-size: 11px; }
.calendar-detail-group .calendar-detail-capacity { flex: 0 0 auto; color: inherit; font-size: 10px; font-weight: 700; opacity: .78; }
.calendar-detail-tile-schedule { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 5px; overflow: hidden; font-size: 10px; font-weight: 650; white-space: nowrap; }
.calendar-detail-tile-schedule > span { overflow: hidden; text-overflow: ellipsis; }
.calendar-detail-tile-schedule > .is-standard { flex: 0 0 auto; padding: 3px 5px; color: #4d5b66; background: rgba(255,255,255,.58); border-radius: 3px; }
.calendar-detail-tile-schedule > .is-exception { flex: 0 0 auto; padding: 3px 5px; color: #805600; background: #fff0c7; border-radius: 3px; }
@container (max-width: 420px) {
  .calendar-detail-group { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .calendar-detail-group-info { width: 100%; flex-wrap: wrap; gap: 4px; }
  .calendar-detail-group-info > strong { min-width: 60px; flex: 1 1 80px; }
  .calendar-detail-group-destination { max-width: 90px; flex: 0 1 90px; }
  .calendar-detail-tile-schedule { width: 100%; justify-content: flex-start; }
}
.destination-tone-0 { color: #176b35; background: #d9efcf; }
.destination-tone-1 { color: #593583; background: #e4d1f4; }
.destination-tone-2 { color: #145a8d; background: #d7eaf9; }
.destination-tone-3 { color: #805b00; background: #f8e7b8; }
.destination-tone-4 { color: #8b2632; background: #f6d8dc; }
.destination-tone-5 { color: #12606c; background: #d6eef1; }
.calendar-detail-no-results { height: 180px !important; color: #6c757d; background: #fff; text-align: center !important; font-size: 14px; }
.calendar-detail-empty { display: grid; min-height: 220px; place-items: center; padding: 24px; color: #6c757d; background: #fff; text-align: center; font-size: 14px; }
.calendar-detail-table tr.destination-start > * { border-top: 3px solid #b9c2ca; }
.calendar-detail-table tr.has-conflict > * { background-color: #fff9ea; }
.calendar-detail-conflict { display: inline-flex; margin-top: 5px; padding: 3px 6px; color: #815400; background: #fff1bd; border: 1px solid #efd073; border-radius: 3px; font-size: 9px; font-weight: 800; }
.calendar-detail-days-row td { height: auto; padding: 0 !important; background: #f7f9fb; text-align: left; }
.calendar-detail-days-panel { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); gap: 7px; padding: 10px 14px 12px 74px; border-bottom: 1px solid #dfe4e9; }
.calendar-detail-days-title { grid-column: 1 / -1; color: #263746; font-size: 11px; }
.calendar-detail-day { display: grid; gap: 2px; padding: 7px 9px; color: #4c5965; background: #fff; border: 1px solid #dfe4e9; border-radius: 4px; font-size: 10px; }
.calendar-detail-day strong { color: #263746; font-size: 11px; }
.calendar-detail-day.is-exception { color: #805600; background: #fff4d8; border-color: #edc45d; }
.calendar-detail-day.is-exception::after { content: "zmiana godzin"; font-size: 8px; font-weight: 900; text-transform: uppercase; }

/* Rozliczenia */
#payrollView > .content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
#payrollView .payroll-trip-card, #payrollView .payroll-summary, #payrollView .payroll-layout { min-width: 0; margin: 0; }
.payroll-trip-card { overflow: hidden; border-top: 3px solid #007bff; }
.payroll-trip-card .card-header p, .payroll-people-card .card-header p { margin: 4px 0 0; color: #6c757d; font-size: 13px; }
.payroll-trip-controls { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: end; gap: 18px; padding: 18px 20px; }
.payroll-trip-controls label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
.payroll-load-status { min-height: 20px; color: #6c757d; font-size: 12px; }
.payroll-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.payroll-kpi { display: grid; align-content: start; gap: 8px; min-width: 0; min-height: 112px; padding: 19px 20px; background: #fff; border: 1px solid #e1e5e9; border-top: 3px solid #6c757d; border-radius: 6px; box-shadow: 0 1px 3px rgba(31,45,61,.08); }
.payroll-kpi.blue { border-top-color: #007bff; }.payroll-kpi.green { border-top-color: #28a745; }.payroll-kpi.amber { border-top-color: #e0a800; }.payroll-kpi.red { border-top-color: #dc3545; }
.payroll-kpi span { color: #71808f; font-size: 12px; font-weight: 600; line-height: 1.35; }.payroll-kpi strong { min-width: 0; overflow-wrap: anywhere; color: #1f2d3d; font-size: clamp(20px, 1.6vw, 26px); line-height: 1.2; }.payroll-kpi small { color: #7b8792; font-size: 11px; font-weight: 600; line-height: 1.4; }
.payroll-layout { display: grid; grid-template-columns: minmax(270px, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
.payroll-people-card, .payroll-detail-card { overflow: hidden; margin-bottom: 0; }
.payroll-people { max-height: calc(100vh - 390px); min-height: 410px; overflow-y: auto; padding: 8px; background: #f4f6f9; }
.payroll-person { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 12px 10px; color: #263746; background: #fff; border: 1px solid #e0e4e8; border-radius: 5px; text-align: left; cursor: pointer; }
.payroll-person + .payroll-person { margin-top: 7px; }
.payroll-person:hover { border-color: #90bceb; background: #f7fbff; }.payroll-person.active { color: #fff; background: #007bff; border-color: #007bff; box-shadow: 0 3px 9px rgba(0,123,255,.2); }
.payroll-person-avatar { display: grid; place-items: center; width: 38px; height: 38px; color: #1769aa; background: #eaf4ff; border-radius: 50%; font-weight: 800; }
.payroll-person.active .payroll-person-avatar { color: #0056b3; background: #fff; }.payroll-person-copy { min-width: 0; }.payroll-person-copy strong, .payroll-person-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.payroll-person-copy span { margin-top: 3px; color: #7a8793; font-size: 11px; }.payroll-person.active .payroll-person-copy span { color: rgba(255,255,255,.78); }
.payroll-status-dot { width: 10px; height: 10px; background: #adb5bd; border-radius: 50%; }.payroll-status-dot.approved { background: #ffc107; }.payroll-status-dot.paid { background: #28a745; }
.payroll-empty-list { padding: 42px 18px; color: #7c8791; text-align: center; line-height: 1.5; }
.payroll-detail-card { min-height: 490px; border-top: 3px solid #28a745; }
.payroll-empty-detail { display: grid; justify-items: center; padding: 110px 24px; color: #87939e; text-align: center; }.payroll-empty-detail > span { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 12px; color: #fff; background: #aab4bd; border-radius: 50%; font-size: 30px; }.payroll-empty-detail h2 { margin: 0; color: #53606c; }.payroll-empty-detail p { margin: 7px 0 0; }
.payroll-empty-detail[hidden] { display: none; }
.payroll-layout.is-empty { grid-template-columns: minmax(0, 1fr); }
.payroll-layout.is-empty .payroll-people-card { display: none; }
.payroll-layout.is-empty .payroll-detail-card { min-height: 0; }
.payroll-layout.is-empty .payroll-empty-detail { grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: auto auto; justify-items: start; align-items: center; column-gap: 14px; padding: 22px 24px; text-align: left; }
.payroll-layout.is-empty .payroll-empty-detail > span { grid-row: 1 / 3; width: 48px; height: 48px; margin: 0; font-size: 21px; }
.payroll-layout.is-empty .payroll-empty-detail h2 { align-self: end; font-size: 18px; }
.payroll-layout.is-empty .payroll-empty-detail p { align-self: start; margin-top: 3px; }
.payroll-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; }.payroll-detail-head h2 { margin: 0; font-size: 20px; }.payroll-detail-head p { margin: 5px 0 0; color: #6c757d; font-size: 12px; }
.payroll-status { display: inline-flex; align-items: center; padding: 6px 9px; color: #5e6872; background: #e9ecef; border-radius: 14px; font-size: 11px; font-weight: 800; text-transform: uppercase; }.payroll-status.approved { color: #7a5700; background: #fff1bd; }.payroll-status.paid { color: #176b2a; background: #dff3e4; }
.payroll-availability { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 20px; background: #edf7f0; border-bottom: 1px solid #d0e8d6; }.payroll-availability span { padding: 5px 8px; color: #496254; background: #fff; border: 1px solid #d1e4d5; border-radius: 4px; font-size: 11px; font-weight: 600; }
.payroll-breakdown { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 18px 20px; }.payroll-breakdown-item { padding: 13px; background: #f8f9fa; border: 1px solid #e3e7eb; border-radius: 5px; }.payroll-breakdown-item span { display: block; color: #74808b; font-size: 11px; font-weight: 600; }.payroll-breakdown-item strong { display: block; margin-top: 5px; color: #263746; font-size: 18px; }.payroll-breakdown-item small { display: block; margin-top: 4px; color: #8a949d; font-size: 10px; }
.payroll-total { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 20px 18px; padding: 15px 17px; color: #fff; background: linear-gradient(125deg,#1f7a3e,#28a745); border-radius: 6px; box-shadow: 0 4px 12px rgba(40,167,69,.2); }.payroll-total span { font-size: 13px; font-weight: 600; }.payroll-total strong { font-size: 26px; }
.payroll-section { padding: 0 20px 18px; }.payroll-section h3 { margin: 0 0 10px; color: #34404b; font-size: 15px; }.payroll-adjustments { display: grid; gap: 7px; }.payroll-adjustment { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 9px 10px; background: #f8f9fa; border: 1px solid #e2e6ea; border-radius: 4px; font-size: 12px; }.payroll-adjustment-type { padding: 4px 7px; color: #176b2a; background: #dff3e4; border-radius: 3px; font-size: 10px; font-weight: 800; text-transform: uppercase; }.payroll-adjustment.penalty .payroll-adjustment-type { color: #98212e; background: #f8dfe2; }.payroll-adjustment strong { color: #176b2a; }.payroll-adjustment.penalty strong { color: #c82333; }.payroll-adjustment-empty { padding: 12px; color: #87919a; background: #f8f9fa; border: 1px dashed #ccd2d8; border-radius: 4px; text-align: center; font-size: 12px; }
.payroll-adjustment-form { display: grid; grid-template-columns: 150px 130px minmax(180px, 1fr) auto; gap: 8px; margin-top: 10px; }.payroll-adjustment-form .form-control { min-width: 0; }.payroll-admin-controls { display: grid; grid-template-columns: 190px minmax(220px, 1fr) auto; gap: 10px; align-items: end; padding: 15px 20px; background: #f4f6f9; border-top: 1px solid #dee2e6; }.payroll-admin-controls label { display: grid; gap: 5px; color: #59636d; font-size: 11px; font-weight: 700; }
body.role-instructor .payroll-layout { grid-template-columns: minmax(0, 900px); }.role-instructor .payroll-people-card { display: none; }.role-instructor .payroll-trip-controls { grid-template-columns: 1fr; }.role-instructor .payroll-detail-card { min-height: 420px; }

@media (max-width: 900px) {
  .calendar-filters { grid-template-columns: 1fr; }
  .calendar-visible-count { padding-top: 0; }
  .calendar-table-wrap { max-height: calc(100vh - 290px); }
  .instructor-schedule-filters { grid-template-columns: 1fr; }
  .instructor-schedule-header { align-items: flex-start; flex-direction: column; }
  .instructor-schedule-stats { justify-content: flex-start; }
  .instructor-schedule-wrap { max-height: calc(100vh - 300px); }
  .calendar-detail-header { align-items: flex-start; flex-direction: column; }
  .calendar-detail-filters { grid-template-columns: 1fr; }
  .calendar-detail-wrap { max-height: calc(100vh - 300px); }
  .calendar-detail-days-panel { grid-template-columns: repeat(2, minmax(120px, 1fr)); padding-left: 14px; }
  .group-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-filter-search { grid-column: 1 / -1; }
  .payroll-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-layout { grid-template-columns: 1fr; }.payroll-people { max-height: 300px; min-height: 0; }.payroll-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); }.payroll-adjustment-form, .payroll-admin-controls { grid-template-columns: 1fr 1fr; }.payroll-adjustment-form > :nth-child(3), .payroll-admin-controls > :nth-child(2) { grid-column: 1 / -1; }
}
.unassigned-category + .unassigned-category { margin-top: 20px; }
.unassigned-category-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; padding: 0 3px; }
.unassigned-category-header h3 { margin: 0; color: #343a40; font-size: 15px; font-weight: 700; }
.unassigned-category-header span { color: #6c757d; font-size: 12px; font-weight: 600; }
.unassigned-category-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.unassigned-category-grid .instructor-slot { overflow: hidden; background: #fff; border: 1px solid #d8dee5; border-left: 5px solid #adb5bd; border-radius: 6px; box-shadow: 0 1px 3px rgba(31,45,61,.08); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.unassigned-category-grid .instructor-slot:hover { border-color: #bcc5ce; box-shadow: 0 3px 9px rgba(31,45,61,.13); transform: translateY(-1px); }
.unassigned-category-grid .group-type-0 { border-left-color: #5b9bd5; }.unassigned-category-grid .group-type-1 { border-left-color: #70ad47; }.unassigned-category-grid .group-type-2 { border-left-color: #8064a2; }.unassigned-category-grid .group-type-3 { border-left-color: #d6a21f; }
.unassigned-category-grid .instructor-slot-main { min-height: 76px; padding: 11px 14px; }
.unassigned-category-grid .instructor-slot-title { text-align: left; }
.unassigned-category-grid .group-assignment-panel, .unassigned-category-grid .group-merge-panel, .unassigned-category-grid .instructor-slot-participants { border-top-color: #e2e6ea; }
.unassigned-category-pool { margin-bottom: 22px; padding: 12px; border: 1px dashed #dfb2b7; border-radius: 6px; background: #fff6f7; }
.unassigned-category-pool .unassigned-category-header h3 { color: #8b2632; }
.unassigned-category-grid .is-unassigned-pool { border-left-color: #dc3545; background: #fff; }
.unassigned-empty { grid-column: 1 / -1; display: grid; place-items: center; gap: 4px; min-height: 110px; padding: 24px; color: #6c757d; background: #fff; text-align: center; }
.unassigned-empty strong { color: #28a745; }

.main-footer { margin-left: var(--sidebar); padding: 16px; color: #869099; background: #fff; border-top: 1px solid #dee2e6; transition: margin-left .28s ease; }

body.sidebar-collapsed { --sidebar: 74px; }
body.sidebar-collapsed .brand-name, body.sidebar-collapsed .user-panel, body.sidebar-collapsed .nav-link > span:nth-child(2), body.sidebar-collapsed .menu-arrow, body.sidebar-collapsed .nav-submenu { display: none; }
body.sidebar-collapsed .brand-link { justify-content: center; padding-inline: 8px; }
body.sidebar-collapsed .brand-image { margin: 0; }
body.sidebar-collapsed .nav-link { display: flex; justify-content: center; padding-inline: 8px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.46); }
.modal-backdrop[hidden] { display: none; }
.modal { width: min(610px, 100%); max-height: calc(100vh - 40px); overflow: auto; border-radius: 5px; background: #fff; box-shadow: 0 15px 45px rgba(0,0,0,.3); }
.modal > header, .modal > footer { display: flex; align-items: center; padding: 14px 18px; }
.modal > header { border-bottom: 1px solid #dee2e6; }.modal > footer { justify-content: flex-end; gap: 8px; border-top: 1px solid #dee2e6; }
.modal h2 { margin: 0; font-size: 20px; font-weight: 500; }
.modal-close { margin-left: auto; border: 0; background: none; color: #6c757d; font-size: 26px; cursor: pointer; }
.modal-body { display: grid; gap: 12px; padding: 18px; }
.modal-body > footer { display: flex; justify-content: flex-end; gap: 8px; margin: 6px -18px -18px; padding: 14px 18px; border-top: 1px solid #dee2e6; }
.temporary-password-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 14px; border: 1px solid #d8dee5; border-radius: 10px; background: #f7f9fb; }
.temporary-password-result[hidden] { display: none; }
.temporary-password-result span { grid-column: 1 / -1; color: #68727d; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.temporary-password-result code { min-width: 0; padding: 10px 12px; overflow-wrap: anywhere; color: #1f2933; background: #fff; border: 1px solid #d8dee5; border-radius: 7px; font-size: 18px; font-weight: 800; user-select: all; }
.modal fieldset { border: 1px solid #dee2e6; border-radius: 4px; }
.recipient-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; padding: 8px 4px; }
.recipient-list label { display: flex; gap: 8px; align-items: center; }
textarea { resize: vertical; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 3000; display: flex; align-items: center; gap: 14px; max-width: 430px; padding: 12px 14px 12px 16px; color: #fff; background: #343a40; border-radius: 4px; box-shadow: 0 5px 20px rgba(0,0,0,.25); opacity: 0; transform: translateY(14px); pointer-events: none; transition: .2s ease; }
.toast.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.toast button { flex: 0 0 auto; padding: 5px 9px; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.65); border-radius: 4px; font-size: 11px; font-weight: 800; cursor: pointer; }
.toast button:hover { color: #343a40; background: #fff; }

@media (max-width: 991.98px) {
  :root { --sidebar: 0px; }
  .main-sidebar { width: 250px; transform: translateX(-260px); }
  body.mobile-sidebar-open .main-sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 1036; display: block; padding: 0; border: 0; background: rgba(15, 18, 23, .42); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility .22s ease; }
  body.mobile-sidebar-open { overflow: hidden; }
  body.mobile-sidebar-open .sidebar-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
  body.sidebar-collapsed .main-sidebar { width: 250px; }
  body.sidebar-collapsed .brand-name, body.sidebar-collapsed .user-panel, body.sidebar-collapsed .nav-link > span:nth-child(2), body.sidebar-collapsed .menu-arrow { display: initial; }
  body.sidebar-collapsed .nav-link { display: grid; justify-content: initial; padding-inline: 12px; }
  .instructor-baskets-grid { grid-template-columns: 1fr; }
  .unassigned-category-grid { grid-template-columns: 1fr; }
  .basket-header-row { grid-template-columns: 1fr minmax(200px,2fr); }
  .basket-hours { grid-column: 1; justify-self: start; }
  .basket-remove { grid-column: 2; grid-row: 2; justify-self: end; }
  .instructor-slot-main { grid-template-columns: minmax(0, 1fr) auto; }
  .group-actions { grid-column: 1 / -1; justify-self: end; }
}

@media (max-width: 1250px) {
  .unassigned-category-grid { grid-template-columns: 1fr; }
  .group-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-filter-search { grid-column: 1 / -1; }
  .trip-overview { grid-template-columns: 1fr; }
}

@media (max-width: 1250px) {
  .instructor-slot-main { grid-template-columns: minmax(0, 1fr) 300px; }
  .group-actions { grid-column: 1 / -1; justify-self: end; }
}

@media (max-width: 680px) {
  .content-header { flex-direction: column; gap: 2px; }
  .content-header h1 { font-size: 25px; }
  .breadcrumb { padding-left: 0; }
  .trip-summary { grid-template-columns: 1fr; }
  .trip-actions { justify-content: stretch; }
  .trip-actions .btn { width: 100%; }
  .trip-picker-trigger { grid-template-columns: minmax(0, 1fr) auto; }
  .trip-picker-trigger-meta { display: none; }
  .trip-picker-panel { width: calc(100vw - 24px); }
  .toolbar { align-items: stretch; flex-direction: column; }
  .toolbar-actions { justify-content: flex-start; }
  .instructor-slot-main { grid-template-columns: 1fr; }
  .instructor-slot-title { width: 100%; text-align: left; }
  .instructor-slot-meta { width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .group-actions { width: 100%; }
  .group-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .group-actions .btn { flex: 1; }
  .group-assignment-panel { grid-template-columns: 1fr; }
  .group-merge-panel { grid-template-columns: 1fr; }
  .group-filter-grid { grid-template-columns: 1fr; }
  .group-filter-search { grid-column: auto; }
  .move-panel { grid-template-columns: 1fr; }
  .move-panel .btn { width: 100%; }
  .recipient-list { grid-template-columns: 1fr; }
  .payroll-summary, .payroll-breakdown, .payroll-adjustment-form, .payroll-admin-controls, .payroll-trip-controls { grid-template-columns: 1fr; }.payroll-adjustment-form > :nth-child(3), .payroll-admin-controls > :nth-child(2) { grid-column: auto; }.payroll-adjustment { grid-template-columns: auto 1fr auto; }.payroll-adjustment [data-payroll-delete] { grid-column: 1 / -1; }.payroll-detail-head { align-items: flex-start; flex-direction: column; }.payroll-total strong { font-size: 21px; }
}
body.auth-pending > :not(.auth-screen) { visibility: hidden; }
.auth-screen { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #edf7f1, #f7faf9 55%, #e5f0ea); }
.auth-screen[hidden] { display: none; }
.auth-card { width: min(440px, 100%); padding: 34px; border: 1px solid #d3e1da; border-radius: 18px; background: #fff; box-shadow: 0 22px 70px rgba(20, 56, 39, .16); }
.auth-logo { display: block; width: 170px; max-height: 64px; object-fit: contain; margin: 0 auto 20px; }
.auth-card h1 { margin: 0 0 8px; text-align: center; color: #183d2b; }
.auth-card > p { margin: 0 0 24px; text-align: center; color: #66746d; }
.auth-card form { display: grid; gap: 16px; }
.auth-card form[hidden] { display: none; }
.auth-card label { display: grid; gap: 7px; font-weight: 700; color: #2d3b34; }
.auth-card .btn { min-height: 45px; }
.auth-error { min-height: 20px; margin: 0 !important; color: #b42318 !important; font-weight: 700; text-align: left !important; }
.auth-token { margin-top: 18px; padding: 14px; border: 1px solid #e5bd48; border-radius: 10px; background: #fff8dc; color: #5c490f; overflow-wrap: anywhere; }
.current-user { margin-right: 8px; color: #fff; font-size: 13px; font-weight: 700; }
body.role-instructor .admin-only,
body.role-instructor .calendar-detail-filters,
body.role-instructor .calendar-detail-assign-toggle,
body.role-instructor .calendar-detail-assign-panel,
body.role-instructor .calendar-detail-drag-handle { display: none !important; }
body.role-instructor .calendar-detail-group-card { grid-template-columns: minmax(0, 1fr); }
body.role-instructor .calendar-detail-group-actions { display: none; }
body.role-admin .instructor-only { display: none !important; }
body.role-instructor .sidebar-nav [data-app-view="weekly-schedule"] { order: 1; }
body.role-instructor .sidebar-nav [data-app-view="instructor-schedule"] { order: 2; }
body.role-instructor .sidebar-nav [data-app-view="payroll"] { order: 3; }
body.role-instructor .sidebar-nav [data-app-view="documents"] { order: 4; }
body.role-instructor .sidebar-nav [data-app-view="instructor-panel"] { order: 5; }
body.role-instructor .sidebar-nav [data-app-view="help"] { order: 6; }

.instructor-dashboard { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; width: 100%; min-width: 0; }
.instructor-dashboard > .card { margin: 0; }
.instructor-hero { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 24px; overflow: hidden; color: #fff; background: linear-gradient(125deg, #15191f 0%, #292f38 62%, #dc2430 160%); border: 0; }
.instructor-avatar { width: 76px; height: 76px; overflow: hidden; border: 3px solid rgba(255,255,255,.3); border-radius: 22px; background: rgba(255,255,255,.12); }
.instructor-avatar img { width: 100%; height: 100%; object-fit: cover; }
.instructor-hero .eyebrow { display: block; margin-bottom: 4px; color: rgba(255,255,255,.65); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.instructor-hero h2 { margin: 0; font: 700 27px/1.15 "Space Grotesk", sans-serif; }
.instructor-hero p { margin: 6px 0 0; color: rgba(255,255,255,.72); }
.instructor-hero-stats { display: flex; gap: 9px; }
.instructor-hero-stat { min-width: 105px; padding: 12px 14px; text-align: center; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
.instructor-hero-stat strong, .instructor-hero-stat span { display: block; }
.instructor-hero-stat strong { font: 700 21px/1.15 "Space Grotesk", sans-serif; }
.instructor-hero-stat span { margin-top: 3px; color: rgba(255,255,255,.65); font-size: 10px; }
.instructor-season-card, .instructor-week-card { grid-column: 1 / -1; }
.instructor-profile-card, .instructor-contract-card { grid-column: span 6; }
.instructor-documents-card { grid-column: 1 / -1; }
.instructor-season-summary { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px 0; }
.instructor-summary-pill { padding: 7px 10px; color: #4b5560; background: #f7f8fa; border: 1px solid #e4e7eb; border-radius: 999px; font-size: 12px; }
.instructor-summary-pill strong { color: #20252b; }
.instructor-season-weeks { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; padding: 14px 16px 18px; }
.instructor-season-week { padding: 11px; color: #727b85; background: #fafbfc; border: 1px solid #e5e8eb; border-radius: 10px; }
.instructor-season-week.is-confirmed { color: #176b2a; background: #eff9f2; border-color: #bae2c4; box-shadow: inset 0 3px #28a745; }
.instructor-season-week.is-individual { color: #73510d; background: #fff8e5; border-color: #efd58a; box-shadow: inset 0 3px #d39e00; }
.instructor-season-week strong, .instructor-season-week span, .instructor-season-week small { display: block; }
.instructor-season-week span { margin-top: 4px; font-size: 11px; }
.instructor-season-week small { margin-top: 8px; font-size: 10px; font-weight: 700; }
.instructor-week-rates { display: grid; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(23,107,42,.14); }
.instructor-week-rates > span { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; color: #52605a; font-size: 10px; }
.instructor-week-rates strong { color: #176b2a; font-size: 11px; }
.instructor-season-empty { grid-column: 1 / -1; }
.instructor-profile-avatar { flex: 0 0 auto; width: 58px; height: 58px; border-color: #e1e5e9; background: #f1f3f5; }
.instructor-profile-avatar::before { color: #dc2430; font-size: 16px; }
.instructor-week-header { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.instructor-week-header label { display: grid; gap: 5px; min-width: 260px; color: #5e6872; font-size: 11px; font-weight: 700; }
.instructor-week-content { display: grid; gap: 14px; padding: 16px; background: #f5f6f8; }
.instructor-trip-block { display: grid; gap: 10px; }
.instructor-trip-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.instructor-trip-heading h3 { margin: 0; font-size: 15px; }
.instructor-group-card { overflow: hidden; background: #fff; border: 1px solid #dde2e7; border-left: 4px solid #dc2430; border-radius: 11px; }
.instructor-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; background: #fff; }
.instructor-group-head h4 { margin: 0; font-size: 14px; }
.instructor-group-head p { margin: 4px 0 0; color: #77818c; font-size: 11px; }
.instructor-group-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.instructor-group-badges span { padding: 5px 7px; color: #515b66; background: #f4f5f7; border-radius: 7px; font-size: 10px; font-weight: 700; }
.instructor-participant-list { display: grid; }
.instructor-participant { display: grid; grid-template-columns: minmax(200px, 1.35fr) repeat(4, minmax(125px, 1fr)); gap: 12px; align-items: start; padding: 14px; border-top: 1px solid #edf0f2; }
.instructor-participant > div { min-width: 0; }
.instructor-participant strong, .instructor-participant span, .instructor-participant small { display: block; }
.instructor-participant small { margin-bottom: 3px; color: #8a929b; font-size: 9px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.instructor-participant span { overflow-wrap: anywhere; color: #4f5963; font-size: 11px; }
.instructor-participant-note { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(260px, 1fr) auto; gap: 6px 8px; align-items: end; padding-top: 10px; border-top: 1px dashed #e3e7eb; }
.instructor-participant-note > small { grid-column: 1 / -1; margin-bottom: 0; }
.instructor-participant-note textarea { min-height: 58px; resize: vertical; font-size: 11px; }
.instructor-participant-note .btn { min-height: 38px; white-space: nowrap; }
.instructor-participant-action { grid-column: 1 / -1; padding-top: 10px; border-top: 1px dashed #e3e7eb; }
.instructor-move-select { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 8px; align-items: center; width: 100%; min-width: 0; }
.instructor-move-select .form-control { min-width: 0; }
.instructor-move-select .btn { min-height: 38px; white-space: nowrap; }
.instructor-empty { padding: 34px; color: #77818b; text-align: center; background: #fff; border: 1px dashed #ccd2d8; border-radius: 10px; }
.instructor-profile-form, .instructor-contract-form { display: grid; gap: 12px; padding: 16px; }
.instructor-profile-form label, .instructor-contract-form label, .instructor-upload-row label { display: grid; gap: 5px; color: #505a64; font-size: 11px; font-weight: 700; }
.profile-bio-field { grid-column: 1 / -1; }
.instructor-contract-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contract-wide { grid-column: 1 / -1; }
.contract-field-help { color: #77818b; font-size: 10px; font-weight: 500; line-height: 1.45; }
.instructor-contract-form textarea { resize: vertical; }
.contract-form-spacer { min-height: 1px; }
.instructor-profile-form textarea { resize: vertical; }
.instructor-upload-row { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(240px, 1.3fr) auto; gap: 10px; align-items: end; padding: 0 16px 16px; }
.instructor-profile-card .instructor-upload-row { grid-template-columns: minmax(0, 1fr) auto; padding-top: 0; }
.instructor-documents-list { display: grid; gap: 8px; padding: 0 16px 16px; }
.instructor-document-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px; background: #f8f9fa; border: 1px solid #e5e8eb; border-radius: 9px; }
.instructor-document-icon { display: grid; width: 38px; height: 38px; place-items: center; color: #b72029; background: #fff0f1; border-radius: 9px; font-size: 10px; font-weight: 800; }
.instructor-document-row strong, .instructor-document-row span, .instructor-document-row small { display: block; }
.instructor-document-row span { margin-top: 2px; overflow-wrap: anywhere; }
.instructor-document-row small { margin-top: 3px; color: #7b858f; }
.documents-page { display: grid; gap: 18px; }
.admin-documents-header { align-items: center; }
.admin-documents-header > span { padding: 6px 10px; color: #59636e; background: #f1f3f5; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.admin-documents-filters { padding: 14px 16px; border-bottom: 1px solid #e5e8eb; background: #fafbfc; }
.admin-documents-filters label { display: grid; max-width: 520px; gap: 5px; color: #505a64; font-size: 11px; font-weight: 700; }
.admin-instructor-documents { display: grid; gap: 12px; padding: 16px; }
.admin-instructor-document-group { overflow: hidden; border: 1px solid #dde2e7; border-radius: 12px; background: #fff; }
.admin-instructor-document-group > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #f5f6f8; border-bottom: 1px solid #e3e6ea; }
.admin-instructor-document-group > header strong, .admin-instructor-document-group > header small { display: block; }
.admin-instructor-document-group > header small { margin-top: 2px; color: #78828d; }
.admin-instructor-document-group > header > span { color: #626d78; font-size: 11px; font-weight: 700; white-space: nowrap; }
.admin-instructor-document-group .instructor-documents-list { padding: 12px; }

body.role-instructor .payroll-layout { width: 100%; grid-template-columns: minmax(0, 1fr); }
body.role-instructor .payroll-detail-card { width: 100%; min-height: 420px; }
body.role-instructor .payroll-summary { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
body.role-instructor .payroll-breakdown { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
body.role-instructor .payroll-detail-head > *,
body.role-instructor .payroll-breakdown > *,
body.role-instructor .payroll-section,
body.role-instructor .payroll-total { min-width: 0; }

@media (max-width: 1100px) {
  .instructor-profile-card, .instructor-contract-card { grid-column: 1 / -1; }
  .instructor-participant { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .instructor-hero { grid-template-columns: auto minmax(0, 1fr); }
  .instructor-hero-stats { grid-column: 1 / -1; width: 100%; }
  .instructor-hero-stat { flex: 1; min-width: 0; }
  .instructor-season-weeks { grid-template-columns: 1fr; }
  .instructor-week-header { align-items: stretch; flex-direction: column; }
  .instructor-week-header label { min-width: 0; }
  .instructor-group-head { align-items: flex-start; flex-direction: column; }
  .instructor-group-badges { justify-content: flex-start; }
  .instructor-participant, .instructor-contract-form, .instructor-upload-row, .instructor-profile-card .instructor-upload-row, .instructor-participant-note, .instructor-move-select { grid-template-columns: 1fr; }
  .instructor-participant-note > small { grid-column: auto; }
  .instructor-participant > div { padding-bottom: 5px; border-bottom: 1px dashed #edf0f2; }
  .contract-wide { grid-column: auto; }
}
.users-layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; align-items: start; }
.user-create-card, .user-list-card { overflow: hidden; }
.user-form { display: grid; gap: 14px; padding: 20px; }
.user-form label { display: grid; gap: 6px; font-weight: 700; }
.users-layout .card-header p { margin: 4px 0 0; color: #6c757d; font-size: 13px; }
.payroll-settings-card { grid-column: span 3; }
.manual-account-card { grid-column: span 9; }
.account-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
.account-create-form .btn { min-height: 38px; }
.instructor-accounts-card { grid-column: span 8; }
.active-accounts-card { grid-column: span 4; }
.api-token-card { grid-column: 1 / -1; }
.participant-purge-card { grid-column: 1 / -1; border-color: #e9a4aa; }
.participant-purge-card .card-header { border-bottom-color: #efc7cb; background: #fff7f8; }
.participant-purge-card .card-header h2 { color: #a8162c; }
.participant-purge-form { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(300px, 1fr) auto; gap: 14px 18px; align-items: end; padding: 20px; }
.participant-purge-warning { grid-column: 1 / -1; display: grid; gap: 5px; padding: 14px 16px; border-left: 4px solid #be2330; border-radius: 5px; color: #6d1723; background: #fff0f2; }
.participant-purge-warning span { color: #70434a; font-size: 13px; }
.participant-purge-form > label { display: grid; gap: 6px; font-weight: 700; }
.participant-purge-check { grid-template-columns: auto minmax(0, 1fr) !important; align-items: start; align-self: center; }
.participant-purge-check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #be2330; }
.participant-purge-form .btn { min-height: 38px; white-space: nowrap; }
.participant-purge-status { grid-column: 1 / -1; min-height: 18px; margin: 0; color: #a8162c; font-size: 13px; font-weight: 700; }
.instructor-accounts-header { display: grid; gap: 12px; }
.instructor-account-toolbar { display: grid; grid-template-columns: minmax(180px, 1fr) 150px auto; gap: 8px; align-items: center; }
.instructor-account-count { min-width: 72px; color: #65727e; font-size: 12px; font-weight: 700; text-align: right; }
.instructor-accounts-list { display: grid; gap: 7px; max-height: 650px; padding: 12px 14px 14px; overflow-y: auto; scrollbar-gutter: stable; }
.instructor-account-row { display: grid; grid-template-columns: minmax(150px, .85fr) minmax(220px, 1.35fr) auto; align-items: center; gap: 10px; min-height: 58px; padding: 9px 10px; border: 1px solid #e1e5e9; border-radius: 5px; background: #f8f9fa; }
.instructor-account-row[hidden] { display: none; }
.instructor-account-row strong, .instructor-account-row small { display: block; }.instructor-account-row small { margin-top: 3px; color: #7a8793; }
.instructor-account-status { color: #176b2a; font-size: 12px; font-weight: 700; }
.instructor-account-actions { display: flex; gap: 7px; align-items: center; justify-content: flex-end; }
.instructor-account-actions .btn { white-space: nowrap; }
.auth-invite-identity { padding: 10px; color: #425466; background: #eef5fb; border-radius: 5px; }
.users-list { display: grid; gap: 0; }
#usersList { max-height: 650px; overflow-y: auto; }
.user-row { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(130px, 1fr) auto; gap: 14px; align-items: center; padding: 15px 20px; border-top: 1px solid #e3e9e6; }
.user-row:first-child { border-top: 0; }
.user-identity strong, .user-identity > span { display: block; }
.user-identity { min-width: 0; }
.user-email-copy { display: inline-flex; max-width: 100%; align-items: center; gap: 7px; padding: 0; border: 0; color: #212529; background: transparent; font-weight: 700; text-align: left; cursor: copy; user-select: text; }
.user-email-copy > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-email-copy-icon { flex: 0 0 auto; color: #007bff; font-size: 12px; font-weight: 800; user-select: none; }
.user-email-copy:hover > span:first-child, .user-email-copy:focus-visible > span:first-child { color: #0056b3; text-decoration: underline; }
.user-email-copy:focus-visible { outline: 3px solid rgba(0,123,255,.22); outline-offset: 3px; }
.user-identity > span, .user-meta { color: #6d7772; font-size: 12px; }
.user-role { display: inline-flex; width: fit-content; margin-bottom: 4px; padding: 3px 8px; border-radius: 999px; background: #e9f5ee; color: #24623f; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.user-row.is-disabled { opacity: .6; }
.user-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.api-token-card { min-width: 0; }
.api-token-card #apiTokenForm { grid-template-columns: minmax(220px, 1fr) 180px auto; align-items: end; }
.api-token-card #apiTokenForm .btn { min-height: 38px; white-space: nowrap; }
.api-token-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.api-token-row .user-actions { justify-content: flex-start; }
#newApiToken { display: grid; gap: 9px; margin: 0 20px 20px; }
#newApiToken[hidden] { display: none; }
#newApiToken code { display: block; max-width: 100%; padding: 9px; overflow-wrap: anywhere; border-radius: 4px; background: rgba(255,255,255,.72); user-select: all; }
#newApiToken .btn { justify-self: start; }
@media (max-width: 1280px) { .payroll-settings-card { grid-column: span 4; }.manual-account-card { grid-column: span 8; }.instructor-accounts-card { grid-column: span 7; }.active-accounts-card { grid-column: span 5; }.instructor-account-row { grid-template-columns: minmax(135px, .75fr) minmax(180px, 1.25fr); }.instructor-account-actions { grid-column: 2; justify-content: flex-start; }.active-accounts-card .user-row { grid-template-columns: 1fr; }.active-accounts-card .user-actions { justify-content: flex-start; } }
@media (max-width: 980px) { .users-layout { grid-template-columns: 1fr; }.payroll-settings-card, .manual-account-card, .instructor-accounts-card, .active-accounts-card, .api-token-card, .participant-purge-card { grid-column: 1; }.account-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }.user-row { grid-template-columns: minmax(0, 1.4fr) minmax(130px, 1fr) auto; }.participant-purge-form { grid-template-columns: 1fr; }.participant-purge-warning, .participant-purge-status { grid-column: 1; }.participant-purge-form .btn { justify-self: start; } }
@media (max-width: 980px) { .calendar-roster form { grid-template-columns: repeat(2, minmax(0, 1fr)); }.calendar-roster-row { grid-template-columns: minmax(0, 1fr) auto; }.calendar-roster-row > span { display: none; } }
@media (max-width: 760px) { .account-create-form, .api-token-card #apiTokenForm, .instructor-account-toolbar, .instructor-account-row, .user-row { grid-template-columns: 1fr; }.instructor-account-actions { grid-column: auto; align-items: stretch; flex-direction: column; }.user-actions { justify-content: flex-start; }.current-user { display: none; }.instructor-account-count { text-align: left; } }
@media (max-width: 560px) { .temporary-password-result { grid-template-columns: 1fr; }.temporary-password-result .btn { width: 100%; } }

/* Historia aktualizacji */
.updates-card { grid-column: 1 / -1; overflow: hidden; }
.updates-card-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 22px; }
.updates-eyebrow, .help-eyebrow { display: block; margin-bottom: 5px; color: #c8102e; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.updates-current { flex: 0 0 auto; display: grid; gap: 3px; min-width: 190px; padding: 11px 14px; border: 1px solid #dce3ea; border-radius: 10px; background: #fff; }
.updates-current span { color: #768391; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.updates-current strong { color: #263746; font-size: 13px; }
.latest-update { padding: 22px; }
.latest-update-lead { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: 24px; align-items: center; padding: 20px; border: 1px solid #ead6da; border-radius: 12px; background: linear-gradient(135deg, #fff7f8, #fff 62%); }
.latest-update-badge { display: inline-flex; padding: 5px 9px; border-radius: 999px; color: #96172c; background: #fde5e9; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.latest-update-lead h3 { margin: 11px 0 7px; color: #243442; font-size: 19px; line-height: 1.3; }
.latest-update-lead p { max-width: 820px; margin: 0; color: #62707e; font-size: 12px; line-height: 1.65; }
.latest-update-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid #e1e6eb; border-radius: 10px; background: #fff; }
.latest-update-summary span { display: grid; gap: 3px; align-content: center; min-height: 76px; padding: 10px; color: #778391; font-size: 9px; font-weight: 700; text-align: center; }
.latest-update-summary span + span { border-left: 1px solid #e5e9ed; }
.latest-update-summary strong { color: #c8102e; font-size: 17px; }
.latest-update-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.latest-update-grid article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 13px; padding: 17px; border: 1px solid #e0e5ea; border-radius: 10px; background: #fff; }
.latest-update-number { display: grid; width: 34px; height: 28px; place-items: center; border-radius: 7px; color: #9d1730; background: #fdecef; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.latest-update-grid h4 { margin: 2px 0 9px; color: #293a49; font-size: 14px; }
.latest-update-grid ul { margin: 0; padding-left: 17px; color: #647280; font-size: 11px; line-height: 1.6; }
.latest-update-grid li + li { margin-top: 4px; }
.latest-update-footer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-top: 16px; padding: 13px 15px; border-radius: 8px; color: #405a6d; background: #eef6fa; font-size: 11px; line-height: 1.5; }

/* Instrukcja systemu */
.help-page-header { align-items: flex-end; }
.help-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px; align-items: start; }
.help-toc { position: sticky; top: 78px; overflow: hidden; }
.help-toc-heading { display: grid; gap: 4px; padding: 18px; border-bottom: 1px solid #e3e8ed; background: #f8f9fa; }
.help-toc-heading span { color: #7a8692; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.help-toc-heading strong { color: #273746; font-size: 14px; }
.help-toc nav { display: grid; padding: 8px; }
.help-toc a { padding: 9px 10px; border-radius: 7px; color: #536171; font-size: 11px; font-weight: 700; text-decoration: none; transition: color .15s ease, background .15s ease; }
.help-toc a:hover, .help-toc a:focus-visible { color: #b20d29; background: #fcecef; outline: 0; }
.help-content { display: grid; gap: 18px; min-width: 0; }
.help-content > section { scroll-margin-top: 78px; }
.help-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 28px; padding: 26px; border-top: 4px solid #c8102e; }
.help-hero h2, .help-section h2 { margin: 5px 0 7px; color: #233342; font-size: 21px; }
.help-hero p, .help-section header p { margin: 0; color: #687583; font-size: 13px; line-height: 1.6; }
.help-section-number { display: inline-grid; min-width: 30px; height: 24px; padding: 0 7px; place-items: center; border-radius: 6px; color: #a4132b; background: #fdecef; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.help-section { padding: 0 22px 22px; }
.help-section > header { display: flex; align-items: flex-start; gap: 13px; margin: 0 -22px 20px; padding: 20px 22px 16px; border-bottom: 1px solid #e4e8ed; background: #fafbfc; }
.help-section > header h2 { margin-top: 0; }
.help-steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: help-step; }
.help-steps li { position: relative; display: grid; gap: 3px; min-height: 52px; padding: 10px 12px 10px 48px; border: 1px solid #e0e5ea; border-radius: 9px; background: #fff; counter-increment: help-step; }
.help-steps li::before { content: counter(help-step); position: absolute; top: 11px; left: 12px; display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: #fff; background: #c8102e; font-size: 10px; font-weight: 800; }
.help-steps strong { color: #273746; font-size: 12px; }.help-steps span { color: #697684; font-size: 11px; line-height: 1.5; }
.help-steps.is-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.help-role-grid, .help-procedure-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.help-role-grid > div, .help-procedure-grid > div { padding: 17px; border: 1px solid #e0e5ea; border-radius: 10px; background: #fff; }
.help-role-grid h3, .help-procedure-grid h3 { margin: 10px 0 6px; color: #293a49; font-size: 14px; }.help-role-grid p, .help-procedure-grid p { margin: 0; color: #687583; font-size: 12px; line-height: 1.6; }
.help-procedure-grid ol { margin: 9px 0 0; padding-left: 18px; color: #61707e; font-size: 11px; line-height: 1.7; }
.help-role-badge { display: inline-flex; padding: 5px 9px; border-radius: 999px; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.help-role-badge.is-admin { color: #8f1529; background: #fdecef; }.help-role-badge.is-instructor { color: #176542; background: #e4f7eb; }
.help-callout, .help-tip { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-top: 16px; padding: 13px 15px; border-radius: 8px; font-size: 12px; line-height: 1.5; }
.help-callout { color: #7b2633; background: #fff0f2; border-left: 4px solid #c8102e; }.help-tip { color: #34566f; background: #edf6fb; border-left: 4px solid #3d8dbb; }
.help-subheading { margin: 20px 0 12px; color: #304151; font-size: 14px; }
.help-feature-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.help-feature-list > div { padding: 14px 15px; border-left: 3px solid #c8102e; border-radius: 5px 9px 9px 5px; background: #f7f9fb; }
.help-feature-list strong { color: #2a3b4a; font-size: 12px; }.help-feature-list p { margin: 4px 0 0; color: #697684; font-size: 11px; line-height: 1.55; }
.help-note { margin: 15px 0 0; padding: 12px 14px; border: 1px solid #dce4eb; border-radius: 8px; color: #596977; background: #fafbfc; font-size: 12px; line-height: 1.55; }
.help-checklist { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.help-checklist li { position: relative; padding: 11px 14px 11px 42px; border: 1px solid #e1e6eb; border-radius: 8px; color: #5c6a78; background: #fff; font-size: 12px; line-height: 1.5; }
.help-checklist li::before { content: "✓"; position: absolute; top: 10px; left: 14px; display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #18794e; background: #e4f7eb; font-size: 10px; font-weight: 900; }
.help-status-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.help-status-grid span { display: grid; gap: 5px; min-height: 70px; place-content: center; padding: 10px; border: 1px solid; border-radius: 9px; font-size: 10px; font-weight: 700; text-align: center; }
.help-status-grid strong { font-size: 18px; }
.help-faq { display: grid; gap: 8px; }.help-faq details { border: 1px solid #e0e5ea; border-radius: 8px; background: #fff; }.help-faq summary { padding: 13px 15px; color: #304151; font-size: 12px; font-weight: 800; cursor: pointer; }.help-faq p { margin: 0; padding: 0 15px 14px; color: #687583; font-size: 12px; line-height: 1.6; }
.help-back-link { display: inline-flex; margin-top: 18px; color: #a4132b; font-size: 11px; font-weight: 800; text-decoration: none; }

@media (max-width: 1100px) { .latest-update-lead { grid-template-columns: 1fr; }.help-layout { grid-template-columns: 1fr; }.help-toc { position: static; }.help-toc nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }.help-hero { grid-template-columns: 1fr; }.help-status-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .updates-card-header { align-items: stretch; flex-direction: column; }.updates-current { min-width: 0; }
  .latest-update { padding: 14px; }.latest-update-lead, .latest-update-grid { grid-template-columns: 1fr; }.latest-update-lead { padding: 16px; }.latest-update-summary { grid-template-columns: 1fr; }.latest-update-summary span { min-height: 54px; }.latest-update-summary span + span { border-top: 1px solid #e5e9ed; border-left: 0; }
  .help-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }.help-section, .help-hero { padding-right: 16px; padding-left: 16px; }.help-section > header { margin-right: -16px; margin-left: -16px; padding-right: 16px; padding-left: 16px; }
  .help-role-grid, .help-procedure-grid, .help-feature-list, .help-steps.is-compact { grid-template-columns: 1fr; }.help-status-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) { .help-toc nav, .help-status-grid { grid-template-columns: 1fr; }.help-role-grid > div, .help-procedure-grid > div { padding: 14px; } }
/* Połączony grafik tygodniowy */
.weekly-timetable-card { overflow: hidden; }
.weekly-timetable-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.weekly-timetable-controls { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(310px, 1.4fr) minmax(190px, .8fr) auto; align-items: end; gap: 12px; padding: 16px 18px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; }
.weekly-timetable-controls label { display: grid; gap: 5px; color: #495057; font-size: 12px; font-weight: 700; }
.weekly-timetable-identity { display: grid; gap: 4px; min-height: 44px; align-content: center; padding: 7px 12px; border: 1px solid #d9dfe5; border-radius: 9px; background: #fff; }
.weekly-timetable-identity span { color: #77818c; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.weekly-timetable-identity strong { color: #263746; font-size: 14px; }
.weekly-timetable-legend { display: flex; flex-wrap: wrap; gap: 9px 18px; padding: 11px 18px; border-bottom: 1px solid #dee2e6; background: #fff; }
.weekly-timetable-legend span { display: inline-flex; align-items: center; gap: 7px; color: #596571; font-size: 11px; font-weight: 700; }
.weekly-timetable-legend i { width: 12px; height: 12px; border-radius: 3px; border: 1px solid transparent; }
.weekly-timetable-legend .is-group-ski { background: #e1efff; border-color: #80acf0; }
.weekly-timetable-legend .is-group-snowboard { background: #eee5fb; border-color: #a783da; }
.weekly-timetable-legend .is-individual { background: #ffe1e4; border-color: #e45d68; }
.weekly-timetable-wrap { max-width: 100%; overflow: auto; background: #fff; scrollbar-gutter: stable; }
.weekly-timetable { min-width: 1180px; --weekly-body-height: 704px; }
.weekly-timetable-head, .weekly-timetable-body { display: grid; grid-template-columns: 72px repeat(7, minmax(150px, 1fr)); }
.weekly-timetable-head { position: sticky; top: 0; z-index: 8; min-height: 56px; color: #2f3944; background: #f5f6f8; border-bottom: 1px solid #cfd5dc; }
.weekly-timetable-corner, .weekly-timetable-day-head { display: grid; align-content: center; padding: 8px 10px; border-right: 1px solid #d9dee4; text-align: center; }
.weekly-timetable-corner { position: sticky; left: 0; z-index: 10; color: #68737f; background: #f5f6f8; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.weekly-timetable-day-head strong, .weekly-timetable-day-head span { display: block; }
.weekly-timetable-day-head strong { font-size: 12px; }.weekly-timetable-day-head span { margin-top: 3px; color: #7a8590; font-size: 10px; }
.weekly-timetable-body { min-height: var(--weekly-body-height); }
.weekly-timetable-times { position: sticky; left: 0; z-index: 5; height: var(--weekly-body-height); background: #f8f9fa; border-right: 1px solid #cfd5dc; }
.weekly-timetable-times span { position: absolute; top: var(--time-top); right: 10px; color: #68737f; font-size: 10px; font-weight: 700; transform: translateY(-50%); }
.weekly-timetable-times span.is-first { transform: none; }.weekly-timetable-times span.is-last { transform: translateY(-100%); }
.weekly-timetable-day { position: relative; height: var(--weekly-body-height); border-right: 1px solid #d9dee4; background-color: #fff; background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 31px, #e5e9ee 31px, #e5e9ee 32px), repeating-linear-gradient(to bottom, transparent 0, transparent 63px, #c9d0d8 63px, #c9d0d8 64px); }
.weekly-timetable-day:nth-child(even) { background-color: #fcfcfd; }
.weekly-timetable-event { position: absolute; z-index: 2; top: var(--event-top); left: calc(var(--event-left) + 2px); width: calc(var(--event-width) - 4px); height: calc(var(--event-height) - 3px); min-height: 28px; display: grid; align-content: center; gap: 3px; padding: 6px 7px; overflow: hidden; border: 1px solid; border-left-width: 4px; border-radius: 7px; box-shadow: 0 3px 9px rgba(31, 45, 61, .11); font: inherit; text-align: left; cursor: pointer; }
.weekly-timetable-event strong, .weekly-timetable-event span { overflow: hidden; text-overflow: ellipsis; }
.weekly-timetable-event strong { font-size: 10px; line-height: 1.2; }.weekly-timetable-event span { font-size: 9px; line-height: 1.2; white-space: nowrap; }
.weekly-timetable-event.is-group-ski { color: #174d82; background: #e8f2ff; border-color: #5590d1; }
.weekly-timetable-event.is-group-snowboard { color: #56347d; background: #f0e9fa; border-color: #936bc2; }
.weekly-timetable-event.is-individual { color: #84202c; background: #ffe5e8; border-color: #d74755; }
.weekly-timetable-empty { display: grid; place-items: center; min-height: 320px; padding: 30px; color: #6c757d; text-align: center; }
.weekly-instructor-control { display: grid; grid-template-columns: minmax(140px, .8fr) minmax(190px, 1.2fr); gap: 8px; align-items: end; }
.weekly-instructor-switcher { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 6px; }
.weekly-instructor-switcher .btn { min-width: 0; padding: 8px; font-size: 20px; line-height: 1; }
.weekly-timetable-actions { display: flex; gap: 8px; }.weekly-timetable-actions .btn { min-height: 42px; white-space: nowrap; }
.weekly-mobile-day-control { display: none !important; }
.weekly-timetable-legend .is-block { background: #fff0c2; border-color: #d69b22; }
.weekly-conflict-legend i { background: repeating-linear-gradient(135deg, #fff 0 3px, #f6b6bd 3px 6px); border: 2px solid #c8102e !important; }
.weekly-block-editor { border-bottom: 1px solid #dee2e6; background: #fff; }
.weekly-block-editor summary { padding: 12px 18px; color: #334155; font-size: 12px; font-weight: 800; cursor: pointer; }
.weekly-block-editor[open] summary { border-bottom: 1px solid #e4e8ed; background: #fafbfc; }
.weekly-block-form { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 12px; align-items: end; padding: 16px 18px 18px; }
.weekly-block-form label { display: grid; gap: 5px; color: #596571; font-size: 11px; font-weight: 700; }
.weekly-block-title, .weekly-block-note { grid-column: span 2; }.weekly-block-form .btn { min-height: 42px; }
.weekly-timetable-event:hover, .weekly-timetable-event:focus-visible { z-index: 4; filter: brightness(.97); box-shadow: 0 6px 16px rgba(31, 45, 61, .2); outline: 2px solid rgba(20, 113, 170, .22); }
.weekly-timetable-event.is-block { color: #674813; background: #fff3c9; border-color: #d69b22; }
.weekly-timetable-event.is-block-unavailable { color: #4b5563; background: #e7e9ed; border-color: #7c8794; }
.weekly-timetable-event.is-block-briefing { color: #155d50; background: #dff5ef; border-color: #3d9f8a; }
.weekly-timetable-event.has-conflict { z-index: 3; border-color: #c8102e; outline: 2px solid rgba(200, 16, 46, .28); outline-offset: -2px; }
.weekly-conflict-stat { color: #a3132c !important; background: #fff0f2 !important; border-color: #efbbc4 !important; }
.weekly-event-modal { width: min(780px, calc(100vw - 28px)); }
.weekly-event-modal .modal-body { display: grid; gap: 0; padding: 6px 20px 20px; }
.weekly-event-modal .weekly-event-detail-row { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 18px; padding: 12px 0; border-bottom: 1px solid #e7ebef; }
.weekly-event-modal .weekly-event-detail-row > span { color: #73808c; font-size: 12px; font-weight: 700; }.weekly-event-modal .weekly-event-detail-row > strong { overflow-wrap: anywhere; color: #273746; font-size: 13px; }
.weekly-event-participants { margin-top: 18px; padding-top: 16px; border-top: 2px solid #e3e7eb; }
.weekly-event-participants > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.weekly-event-participants > header span, .weekly-event-participants > header strong { display: block; }.weekly-event-participants > header span { color: #334155; font-size: 14px; font-weight: 800; }.weekly-event-participants > header strong { margin-top: 3px; color: #75808c; font-size: 11px; }
.weekly-event-participant-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.weekly-event-participant { min-width: 0; padding: 12px; border: 1px solid #dfe4e9; border-radius: 10px; background: #f8f9fb; }
.weekly-event-participant-toggle { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; width: 100%; margin: 0 0 11px; padding: 0; color: inherit; border: 0; background: transparent; text-align: left; pointer-events: none; }
.weekly-event-participant-number { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff !important; background: #df0a16; font-size: 11px !important; font-weight: 800; }
.weekly-event-participant-name { min-width: 0; }.weekly-event-participant-name strong, .weekly-event-participant-name small { display: block; overflow-wrap: anywhere; }.weekly-event-participant-name strong { color: #263746; font-size: 13px; }.weekly-event-participant-name small { margin-top: 2px; color: #7a8590; font-size: 10px; }
.weekly-event-participant-more { display: none; align-items: center; gap: 5px; color: #a80b16; font-size: 11px; font-weight: 800; }.weekly-event-participant-more i { font-style: normal; font-size: 16px; transition: transform .18s ease; }
.weekly-event-participant-details { display: block; }
.weekly-event-participant dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; }
.weekly-event-participant dl > div { min-width: 0; padding: 7px 8px; border-radius: 7px; background: #fff; }
.weekly-event-participant dt { color: #7a8590; font-size: 9px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }.weekly-event-participant dd { margin: 3px 0 0; overflow-wrap: anywhere; color: #2e3b47; font-size: 11px; font-weight: 700; }.weekly-event-participant dd strong, .weekly-event-participant dd span { display: block; }.weekly-event-participant dd span { margin-top: 2px; color: #697582; font-weight: 600; line-height: 1.35; }.weekly-event-participant dd a { color: #a80b16; font-weight: 800; text-decoration: none; }.weekly-event-participant dd a:hover { text-decoration: underline; }
.weekly-event-participant .weekly-event-participant-profile { grid-column: 1 / -1; }.weekly-event-participant-profile dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 9px; }.weekly-event-participant-profile dd span { margin: 0; }
.weekly-event-participant .weekly-event-participant-wide { grid-column: 1 / -1; }
.weekly-event-participant-actions { display: grid; gap: 9px; margin-top: 9px; padding-top: 9px; border-top: 1px dashed #d9dfe5; }
.weekly-event-note-editor, .weekly-event-move-editor { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: end; }
.weekly-event-note-editor label, .weekly-event-move-editor label { display: grid; min-width: 0; gap: 4px; color: #7a8590; font-size: 9px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.weekly-event-note-editor textarea { min-height: 56px; resize: vertical; font-size: 11px; text-transform: none; }
.weekly-event-note-editor .btn, .weekly-event-move-editor .btn { min-height: 38px; white-space: nowrap; }
.weekly-event-move-editor select.form-control { min-width: 0; font-size: 12px; font-weight: 600; line-height: 1.3; text-transform: none; }
.weekly-event-move-editor select.form-control option { font-size: 12px; font-weight: 500; }
.weekly-event-move-empty { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #7a8590; font-size: 9px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.weekly-event-move-empty strong { color: #697582; font-size: 10px; text-transform: none; }
@media (max-width: 1180px) { .weekly-timetable-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }.weekly-block-form { grid-template-columns: repeat(3, minmax(120px, 1fr)); } }
@media (max-width: 900px) {
  .weekly-timetable-header { flex-direction: column; }.weekly-timetable-controls, .weekly-block-form { grid-template-columns: 1fr; }
  .weekly-timetable-controls .btn, .weekly-block-form .btn { width: 100%; }.weekly-instructor-control { grid-template-columns: 1fr; }
  .weekly-mobile-day-control { display: grid !important; }.weekly-block-title, .weekly-block-note { grid-column: auto; }
  .weekly-timetable { min-width: 0; }.weekly-timetable-head, .weekly-timetable-body { grid-template-columns: 64px minmax(260px, 1fr); }
  .weekly-timetable-day-head:not(.is-selected), .weekly-timetable-day:not(.is-selected) { display: none; }
}
@media print {
  @page { size: landscape; margin: 8mm; }
  body { background: #fff !important; }
  .content-wrapper { margin-left: 0 !important; padding-top: 0 !important; }
  .main-sidebar, .main-header, .content-header, #weeklyScheduleView .weekly-timetable-controls, #weeklyScheduleView .weekly-timetable-legend, #weeklyScheduleView .weekly-block-editor { display: none !important; }
  #weeklyScheduleView, #weeklyScheduleView .content, #weeklyScheduleView .weekly-timetable-card { display: block !important; width: 100% !important; margin: 0 !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; }
  #weeklyScheduleView .weekly-timetable-wrap { overflow: visible; } #weeklyScheduleView .weekly-timetable { min-width: 0; }
  #weeklyScheduleView .weekly-timetable-head, #weeklyScheduleView .weekly-timetable-body { grid-template-columns: 52px repeat(7, minmax(90px, 1fr)); }
  #weeklyScheduleView .weekly-timetable-event { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
/* Szkolenia indywidualne */
.statistics-layout { display: grid; gap: 18px; }
.statistics-filters-card { padding-bottom: 20px; }
.statistics-heading { align-items: flex-start; gap: 18px; }
.statistics-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.statistics-filter-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px 13px; }
.statistics-filter-head > div { display: flex; align-items: baseline; gap: 10px; }
.statistics-filter-head small { color: #778391; }
.statistics-filter-grid { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 13px; padding: 0 20px; }
.statistics-filter-grid label { display: flex; flex-direction: column; gap: 5px; color: #65727e; font-size: 12px; }
.statistics-tabs { display: flex; gap: 7px; padding: 5px; max-width: 100%; overflow-x: auto; border: 1px solid #dfe5eb; border-radius: 12px; background: #f3f5f8; }
.statistics-tabs button { flex: 0 0 auto; padding: 10px 18px; border: 0; border-radius: 8px; color: #687685; background: transparent; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.statistics-tabs button.active { color: #c8102e; background: #fff; box-shadow: 0 2px 8px rgba(25, 39, 55, .11); }
.statistics-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.statistics-kpis article { min-width: 0; padding: 18px; }
.statistics-kpis span { display: block; color: #75818d; font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.statistics-kpis strong { display: block; margin: 8px 0 5px; color: #1f2d3d; font-size: 24px; line-height: 1.2; overflow-wrap: anywhere; }
.statistics-kpis small { color: #8b969f; font-size: 11px; }
.statistics-kpis .statistics-kpi-warning { border-color: #f0d58a; background: #fff9e8; }
.statistics-kpis .statistics-kpi-warning strong { color: #8a5b00; }
.statistics-kpis .statistics-kpi-success { border-color: #b7e2c3; background: #f1fbf4; }
.statistics-kpis .statistics-kpi-success strong { color: #18794e; }
.statistics-section-head { margin: 26px 0 13px; padding-bottom: 10px; border-bottom: 1px solid #dfe5eb; }
.statistics-section-head h2 { color: #263746; font-size: 20px; }
.statistics-section-head p { margin-top: 4px; color: #76828e; font-size: 13px; }
.statistics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.statistics-panel { min-height: 300px; padding: 20px; }
.statistics-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
.statistics-panel > header h2 { font-size: 16px; }
.statistics-panel > header p { margin-top: 5px; color: #778391; font-size: 12px; }
.statistics-panel-tools { display: flex; flex: 0 0 auto; align-items: flex-end; gap: 12px; }
.statistics-panel-tools > span { padding-bottom: 9px; color: #83909c; font-size: 10px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; white-space: nowrap; }
.statistics-panel-tools label { display: grid; gap: 4px; color: #778391; font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; }
.statistics-panel-tools select { min-width: 170px; padding: 7px 30px 7px 9px; border: 1px solid #d9e0e7; border-radius: 8px; background: #fff; color: #263442; font: inherit; font-size: 11px; font-weight: 600; text-transform: none; }
.statistics-bars { display: flex; flex-direction: column; gap: 12px; }
.statistics-bar-row { display: grid; grid-template-columns: minmax(170px, 1.5fr) minmax(100px, 2.5fr) 58px; align-items: center; gap: 10px; font-size: 12px; }
.statistics-bar-row > span { min-width: 0; line-height: 1.3; overflow-wrap: anywhere; }
.statistics-bar-row progress { appearance: none; width: 100%; height: 10px; overflow: hidden; border: 0; border-radius: 10px; background: #edf1f7; }
.statistics-bar-row progress::-webkit-progress-bar { border-radius: 10px; background: #edf1f7; }
.statistics-bar-row progress::-webkit-progress-value { border-radius: 10px; background: linear-gradient(90deg, #c8102e, #ef526c); }
.statistics-bar-row progress::-moz-progress-bar { border-radius: 10px; background: linear-gradient(90deg, #c8102e, #ef526c); }
.statistics-bar-row strong { text-align: right; }
.statistics-empty { padding: 45px 10px; color: #7d8892; text-align: center; }
.statistics-ranking { overflow: hidden; }
.statistics-ranking .table-wrap { max-height: 560px; overflow: auto; }
.statistics-ranking table { width: 100%; border-collapse: collapse; }
.statistics-ranking th, .statistics-ranking td { padding: 13px 15px; border-bottom: 1px solid #e5e9ee; text-align: right; }
.statistics-ranking th { position: sticky; top: 0; z-index: 1; background: #f7f8fa; color: #65727e; font-size: 11px; text-transform: uppercase; }
.statistics-ranking th:nth-child(2), .statistics-ranking td:nth-child(2) { min-width: 310px; text-align: left; white-space: normal; }
.statistics-rank { display: inline-grid; width: 25px; height: 25px; place-items: center; border-radius: 6px; color: #c8102e; background: #fdecef; font-size: 11px; font-weight: 800; }
.statistics-alerts { display: grid; gap: 10px; }
.statistics-alert { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 13px 15px; border: 1px solid #dfe5eb; border-radius: 9px; background: #fff; }
.statistics-alert > i { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #fff2d5; color: #9a6500; font-style: normal; font-weight: 800; }
.statistics-alert.danger > i { color: #a8162c; background: #fdecef; }
.statistics-alert.success > i { color: #18794e; background: #e9f8ee; }
.statistics-alert strong { display: block; font-size: 13px; }
.statistics-alert small { color: #7b8792; }
.statistics-alert > span { color: #6b7783; font-size: 12px; font-weight: 700; }
.statistics-data-quality { padding: 20px; }
.statistics-quality-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.statistics-quality-item > div { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; font-size: 12px; }
.statistics-quality-item progress { appearance: none; width: 100%; height: 8px; border: 0; border-radius: 8px; overflow: hidden; background: #edf1f7; }
.statistics-quality-item progress::-webkit-progress-bar { background: #edf1f7; }
.statistics-quality-item progress::-webkit-progress-value { background: #168a55; }
.statistics-quality-item progress::-moz-progress-bar { background: #168a55; }
.statistics-note { padding: 13px 15px; border: 1px solid #d9e3f0; border-radius: 8px; color: #536579; background: #f5f8fc; font-size: 12px; }

@media (max-width: 1350px) {
  .statistics-filter-grid { grid-template-columns: repeat(3, 1fr); }
  .statistics-kpis { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1180px) {
  .statistics-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .statistics-filter-grid { grid-template-columns: 1fr; }
  .statistics-kpis { grid-template-columns: repeat(2, 1fr); }
  .statistics-heading, .statistics-filter-head { align-items: flex-start; flex-direction: column; }
  .statistics-actions { width: 100%; }
  .statistics-actions .btn { flex: 1; }
  .statistics-bar-row { grid-template-columns: minmax(0, 1fr) 52px; }
  .statistics-bar-row > span { grid-column: 1 / -1; }
  .statistics-quality-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .statistics-panel { min-height: 0; padding: 14px; }
  .statistics-panel > header { flex-direction: column; margin-bottom: 16px; }
  .statistics-panel-tools { width: 100%; align-items: end; justify-content: space-between; }
  .statistics-panel-tools label { flex: 1; }
  .statistics-panel-tools select { width: 100%; min-width: 0; }
  .statistics-bar-row { gap: 7px; }
  .statistics-tabs button { padding: 9px 13px; }
}

.individual-training-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; width: 100%; min-width: 0; align-items: start; }
.individual-training-layout > .card { width: 100%; min-width: 0; margin: 0; overflow: hidden; }
.individual-list-card { min-width: 0; }
.individual-trip-card label { display: grid; gap: 8px; max-width: 760px; padding: 18px 20px 20px; font-weight: 700; }
.individual-lesson-form { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; padding: 18px 20px 20px; align-items: end; }
.individual-lesson-form label { display: grid; gap: 6px; font-weight: 700; }
.individual-lesson-form label:nth-child(-n+4) { grid-column: span 3; }
.individual-customer-field { grid-column: span 5; }
.individual-instructor-field { grid-column: span 5; }
.individual-lesson-form .btn { grid-column: span 2; min-width: 0; min-height: 40px; white-space: normal; }
.individual-lesson-form .form-control { width: 100%; min-width: 0; }
.individual-lesson-list { display: grid; gap: 8px; padding: 16px 20px 20px; }
.individual-lesson-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) minmax(190px, .45fr); gap: 18px; min-width: 0; align-items: center; padding: 14px 16px; border: 1px solid #dfe4ea; border-radius: 10px; background: #fff; }
.individual-lesson-row time, .individual-lesson-row > div { display: grid; gap: 3px; }
.individual-lesson-row > * { min-width: 0; }
.individual-lesson-row span { color: #667085; font-size: 13px; }
.individual-lesson-assignment { padding: 9px 12px; overflow-wrap: anywhere; border-radius: 8px; background: #eefaf3; color: #187646; font-weight: 700; }
.individual-availability-card { grid-column: 1 / -1; width: 100%; min-width: 0; overflow: hidden; }
.individual-hour-grid { display: grid; gap: 24px; min-width: 0; padding: 16px 20px 6px; }
.individual-availability-trip h3 { margin: 0 0 10px; }
.individual-hour-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.individual-hour-table-wrap table { width: 100%; min-width: 840px; table-layout: fixed; border-collapse: separate; border-spacing: 4px; }
.individual-hour-table-wrap th:first-child { width: 64px; }
.individual-hour-table-wrap th { padding: 5px; color: #667085; font-size: 12px; text-align: center; }
.individual-hour-table-wrap thead th span { display: block; font-weight: 400; }
.individual-hour { width: 100%; min-height: 34px; border: 1px solid #d9dee7; border-radius: 6px; background: #f7f8fa; color: #98a2b3; cursor: pointer; font-size: 11px; }
.individual-hour:hover:not(:disabled) { border-color: #38a4dc; color: #1478ad; }
.individual-hour.is-free { border-color: #29a965; background: #dff7e9; color: #157441; font-weight: 800; }
.individual-hour.is-group { border-color: #f1b8b8; background: #fde8e8; color: #a43131; cursor: not-allowed; font-weight: 700; }
.individual-legend { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 10px; padding: 0 20px 18px; color: #667085; font-size: 12px; }
.individual-legend span { display: inline-flex; gap: 7px; align-items: center; }
.individual-legend i { width: 16px; height: 16px; border: 1px solid #d9dee7; border-radius: 4px; background: #f7f8fa; }
.individual-legend i.is-free { border-color: #29a965; background: #dff7e9; }
.individual-legend i.is-group { border-color: #f1b8b8; background: #fde8e8; }
html[data-theme="dark"] .individual-lesson-row { border-color: #354052; background: #202836; }
html[data-theme="dark"] .individual-hour { border-color: #465267; background: #252e3d; }
@media (max-width: 1180px) { .individual-lesson-form label:nth-child(-n+4), .individual-customer-field, .individual-instructor-field { grid-column: span 6; } .individual-lesson-form .btn { grid-column: 1 / -1; justify-self: start; min-width: 190px; } }
@media (max-width: 720px) { .individual-trip-card label, .individual-lesson-form, .individual-lesson-list, .individual-hour-grid { padding-right: 14px; padding-left: 14px; } .individual-lesson-form { grid-template-columns: minmax(0, 1fr); } .individual-lesson-form label:nth-child(-n+4), .individual-customer-field, .individual-instructor-field, .individual-lesson-form .btn { grid-column: 1; width: 100%; } .individual-lesson-row { grid-template-columns: minmax(0, 1fr); gap: 8px; } .individual-legend { padding-right: 14px; padding-left: 14px; } }
