/* BBS CRM – egységes fejléc-műveletsáv + olvashatóbb naptár
   Build: 2026-10-06-ui1
   Ez a lap a legutolsóként töltődik, ezért egységesíti a korábbi stíluslapok
   fejléc-gombjait anélkül, hogy a modálok vagy az űrlapok gombjait érintené. */

:root {
  --hb-accent: #4f718c;
  --hb-accent-hover: #3d5d77;
  --hb-border: #d9e2ea;
  --hb-border-hover: #bfcfdb;
  --hb-text: #2c4a63;
  --hb-soft: #f4f8fb;
  --hb-radius: 10px;
  --hb-shadow: 0 1px 2px rgba(24, 46, 66, .06);
}

/* ---------- 1. A fejléc műveletsáv elrendezése ---------- */

.heading-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
}

.heading-actions > * { order: 1; flex: 0 0 auto; }
/* Az elsődleges művelet mindig a sor végére kerül – egységes elrendezés. */
.heading-actions > .primary-button { order: 2; }

/* ---------- 2. Egységes gombgeometria a fejlécekben ---------- */

.page-heading > .primary-button,
.page-heading > .secondary-button,
.page-heading > a.primary-button,
.page-heading > a.secondary-button,
.heading-actions > .primary-button,
.heading-actions > .secondary-button,
.heading-actions > a.primary-button,
.heading-actions > a.secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 38px;
  min-height: 38px;
  padding: 0 15px;
  margin: 0;
  border: 1px solid var(--hb-border);
  border-radius: var(--hb-radius);
  background: #fff;
  color: var(--hb-text) !important;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .012em;
  text-transform: none;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: var(--hb-shadow);
  transform: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.page-heading > .secondary-button:hover,
.page-heading > a.secondary-button:hover,
.heading-actions > .secondary-button:hover,
.heading-actions > a.secondary-button:hover {
  background: var(--hb-soft);
  border-color: var(--hb-border-hover);
  color: #23405a !important;
  box-shadow: 0 2px 6px rgba(24, 46, 66, .08);
  transform: none;
}

.page-heading > .primary-button,
.page-heading > a.primary-button,
.heading-actions > .primary-button,
.heading-actions > a.primary-button {
  background: var(--hb-accent) !important;
  border-color: var(--hb-accent) !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(24, 46, 66, .12), 0 6px 16px rgba(79, 113, 140, .18);
}

.page-heading > .primary-button:hover,
.page-heading > a.primary-button:hover,
.heading-actions > .primary-button:hover,
.heading-actions > a.primary-button:hover {
  background: var(--hb-accent-hover) !important;
  border-color: var(--hb-accent-hover) !important;
  color: #fff !important;
  box-shadow: 0 2px 4px rgba(24, 46, 66, .14), 0 10px 22px rgba(79, 113, 140, .24);
  transform: none;
}

.page-heading > .primary-button:active,
.page-heading > .secondary-button:active,
.heading-actions > .primary-button:active,
.heading-actions > .secondary-button:active {
  transform: none;
  box-shadow: 0 1px 2px rgba(24, 46, 66, .16);
}

.page-heading :is(.primary-button, .secondary-button):focus-visible,
.heading-actions :is(.primary-button, .secondary-button):focus-visible {
  outline: 2px solid #86abc6;
  outline-offset: 2px;
}

.page-heading :is(.primary-button, .secondary-button):disabled,
.heading-actions :is(.primary-button, .secondary-button):disabled {
  opacity: .5;
  box-shadow: none;
  cursor: not-allowed;
}

/* Szöveges (ghost) művelet ugyanabban a ritmusban, keret nélkül. */
.heading-actions > .text-button,
.page-heading > .text-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 38px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--hb-radius);
  background: transparent;
  color: var(--hb-accent) !important;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .012em;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: none;
  transform: none;
}

.heading-actions > .text-button:hover,
.page-heading > .text-button:hover {
  background: var(--hb-soft);
  color: var(--hb-accent-hover) !important;
}

/* ---------- 3. Egységes ikonhely ---------- */

.hb-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  color: currentColor;
  opacity: .92;
}

.hb-ico svg { width: 100%; height: 100%; display: block; }

.hb-ico.hb-ext { width: 13px; height: 13px; flex-basis: 13px; opacity: .7; }

.heading-actions .hb-ico,
.page-heading .hb-ico { color: currentColor !important; font-size: inherit; }

/* ---------- 4. Oktatói felület: szélesebb, olvashatóbb naptár ---------- */

body.portal-mode .content {
  width: 100%;
  max-width: none;
  padding-left: clamp(16px, 1.6vw, 28px);
  padding-right: clamp(16px, 1.6vw, 28px);
}

#teacherPortal .shared-portal-schedule, #bookingPortal .shared-portal-schedule { padding: 20px 18px 22px; }

/* A portál naptára – a fő Órarend nézethez hasonlóan – egyetlen sorban fut:
   mind a hét nap egymás mellett, és a naptár vízszintesen görgethető. */
#teacherPortal .portal-shared-calendar.week-calendar,
#bookingPortal .portal-shared-calendar.week-calendar {
  width: 100%;
  min-width: 0;
  grid-template-columns: repeat(7, minmax(280px, 1fr));
  grid-auto-rows: minmax(0, auto);
  gap: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #c8b89f transparent;
  padding-bottom: 8px;
}

/* Látható, vékony görgetősáv, hogy egyértelmű legyen: tovább lehet menni jobbra. */
.portal-shared-calendar.week-calendar::-webkit-scrollbar { height: 9px; }
.portal-shared-calendar.week-calendar::-webkit-scrollbar-track { background: transparent; }
.portal-shared-calendar.week-calendar::-webkit-scrollbar-thumb {
  background: #c8b89f;
  border-radius: 6px;
}

#teacherPortal .portal-shared-calendar .week-class-card, #bookingPortal .portal-shared-calendar .week-class-card { padding: 13px 13px 14px; }

/* A rövid (kompakt) órakártyák olvashatóbb tipográfiája – minden naptárban. */
.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] {
  padding: 9px 9px 10px;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] h3 {
  margin: 5px 0 3px;
  font: 500 12.5px/1.25 Georgia, serif;
  white-space: normal;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: clip;
  word-break: break-word;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] .week-class-time {
  font-size: 11px;
  line-height: 13px;
  gap: 6px;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] p {
  font-size: 10.5px;
  line-height: 1.35;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] .calendar-card-people {
  flex-wrap: wrap;
  gap: 4px;
  margin: 4px 0 0;
  overflow: visible;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] .calendar-card-people .calendar-enrolled,
.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] .calendar-card-people .calendar-teacher-initials {
  min-height: 19px;
  padding: 1px 5px;
  font-size: 9.5px;
}

.week-calendar .time-grid-event.time-grid-compact[data-calendar-category] .bbs-program-badge {
  display: inline-flex;
  font-size: 9.5px;
}

/* ---------- 5. Mobilon a korábbi, teljes szélességű műveletsáv marad ---------- */

@media (max-width: 760px) {
  .heading-actions { width: 100%; justify-content: stretch; gap: 8px; }
  .heading-actions > * { flex: 1 1 auto; }
  .page-heading > .primary-button,
  .page-heading > .secondary-button,
  .page-heading > a.primary-button,
  .page-heading > a.secondary-button,
  .heading-actions > .primary-button,
  .heading-actions > .secondary-button,
  .heading-actions > a.primary-button,
  .heading-actions > a.secondary-button,
  .heading-actions > .text-button {
    height: 44px;
    min-height: 44px;
    font-size: 13px;
    width: 100%;
  }
}

/* Instructor settlement month navigation */
#settlements .settlement-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px;border-radius:14px;background:#f5f7fa}
#settlements .settlement-tabs label{display:grid;gap:3px;font-size:11px;color:#64748b}
#settlements .settlement-tabs input{font:inherit;font-size:15px;font-weight:600;border:0;background:transparent;color:#173653;min-height:32px}
#settlements #settlementPrevious,#settlements #settlementNext{width:44px;height:44px;padding:0;font-size:28px;background:white;color:#173653;border:1px solid #dbe2e9;border-radius:10px}
#settlementLoadStatus{flex-basis:100%;font-size:12px;color:#64748b}

#settlementMonthLabel{min-width:165px;text-align:center;font-size:17px;color:#173653}#settlementBreakdown{padding:0 20px}#settlementBreakdown details{border:1px solid #e1e7ee;border-radius:10px;margin:10px 0;padding:12px 16px}#settlementBreakdown summary{cursor:pointer;font-weight:600;color:#173653}#settlementBreakdown p{font-size:13px;line-height:1.6;border-top:1px solid #edf0f4;padding-top:8px}

#examForm .exam-staff-picker{grid-column:1/-1;padding:16px;border:1px solid #d8e2ef;border-radius:14px;background:#f8fafd}#examTeachers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}#examTeachers label{display:flex;align-items:center;gap:10px;padding:12px;background:white;border:1px solid #d8e2ef;border-radius:10px}#examTeachers input{width:18px;height:18px;margin:0}#examForm .exam-staff-picker h3{margin:0 0 6px}

#examForm .exam-extra-fields{grid-column:1/-1;margin:0}#examForm .bbs-room-picker-host{grid-column:1/-1}

#examForm{padding:27px 34px 29px}@media(max-width:680px){#examForm{padding:20px 16px 22px}}

.admin-enrollment-dialog{width:min(800px,calc(100vw - 24px));max-height:90dvh;border:1px solid #d9e1eb;border-radius:20px;padding:26px;color:#173763;box-shadow:0 24px 80px #13284350}.admin-enrollment-dialog::backdrop{background:#10243d88;backdrop-filter:blur(3px)}.admin-enrollment-dialog header,.admin-enrollment-dialog footer{display:flex;gap:14px;align-items:center;justify-content:space-between}.admin-enrollment-dialog h2{margin:8px 0}.admin-enrollment-dialog p{font-size:14px;line-height:1.5}.admin-enrollment-dialog header button{border:0;background:#edf2f8;border-radius:50%;font-size:24px;width:38px;height:38px}.enroll-filters{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.enroll-filters label{display:grid;gap:8px;font-size:13px}.enroll-filters input,.enroll-filters select{width:100%;min-width:0;padding:12px;border:1px solid #d9e1eb;border-radius:10px;background:white}.enroll-list{max-height:42dvh;overflow:auto;border:1px solid #d9e1eb;border-radius:12px}.enroll-list label{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid #eef1f6}.enroll-list label>span{flex:1}.enroll-list input{width:20px;height:20px;accent-color:#173763}.enroll-list small{display:block;color:#66788e;margin-top:4px}.admin-enrollment-dialog [role=status]{white-space:pre-wrap}.admin-enrollment-dialog footer{padding-top:16px}.admin-enrollment-dialog button:disabled{opacity:.5}@media(max-width:600px){.admin-enrollment-dialog{padding:18px}.enroll-filters{grid-template-columns:1fr}.admin-enrollment-dialog footer{flex-wrap:wrap}}
