/* Group training workflow: compact repeatable sections keep the booking record scannable. */
.gt-workspace {
  display: grid;
  gap: 12px;
}

.gt-workspace > .portal-heading {
  margin-bottom: 0;
}

.gt-workspace > .portal-heading h2 {
  margin-bottom: 4px;
  font-size: clamp(21px, 2vw, 26px);
}

.gt-workspace .portal-tabs {
  margin: 0 0 4px;
}

.gt-workspace .gt-card {
  margin: 0;
  padding: 15px;
  border-radius: 3px;
}

.gt-workspace .gt-card h3 {
  margin-top: 0;
}

.gt-workspace .gt-record-heading {
  margin: 0;
  padding: 12px 14px;
  border-left: 3px solid #df8a50;
  background: #f1f5f7;
}

.gt-workspace .gt-filters {
  margin: 0 0 10px;
  padding: 12px;
}

.gt-workspace .table-scroll {
  margin-block: 0 8px;
}

.gt-workspace .gt-actions {
  gap: 8px;
}

@media (max-width: 760px) {
  .gt-workspace .gt-card {
    padding: 12px;
  }
}
.gt-public h1 {
  margin: 12px 0 20px;
  color: var(--navy);
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.15;
}
.gt-public h2 { margin-bottom: 12px; font-size: 24px; line-height: 1.3; }
.gt-public p { max-width: 76ch; margin-bottom: 16px; line-height: 1.6; }
.gt-public .portal-panel {
  padding: clamp(18px, 3vw, 30px);
  margin-top: 24px;
  border: 1px solid var(--line);
  background: #fff;
}
.gt-public .form-grid { gap: 20px; }
.gt-public .form-grid p:has(input[type="checkbox"]) { grid-column: 1 / -1; }
.gt-workspace {
  min-width: 0;
  color: var(--navy, #172f46);
}

.gt-workspace .gt-card {
  min-width: 0;
  margin-block: 18px;
  padding: 20px;
  border: 1px solid var(--line, #d6dfe5);
  background: #fff;
}

.gt-workspace h3 {
  margin: 0 0 12px;
  font-size: 20px;
}

.gt-workspace h4 {
  font-size: 18px;
}

.gt-workspace p,
.gt-workspace label,
.gt-workspace td {
  color: #233c50;
  font-size: 15px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.gt-workspace small {
  display: block;
  color: #4b5d6b;
  font-size: 14px;
  line-height: 1.5;
}

.gt-workspace .gt-filters,
.gt-workspace .gt-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  margin-block: 16px;
}

.gt-workspace .gt-filters label {
  flex: 1 1 220px;
  min-width: 0;
}

/* Keep request-filter actions attached to their fields rather than allowing
   the button and clear link to drift to different vertical positions. */
.gt-workspace .gt-filters .gt-filter-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  min-height: 44px;
}

.gt-workspace .gt-filters .gt-filter-actions .button {
  margin: 0;
  white-space: nowrap;
}

.gt-workspace .gt-filters .gt-filter-actions > a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 4px;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .gt-workspace .gt-filters .gt-filter-actions {
    flex-basis: 100%;
  }
}

.gt-workspace .gt-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px;
}

.gt-workspace .gt-form p {
  min-width: 0;
  margin-block: 10px;
}

.gt-workspace .gt-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.gt-workspace input:not([type="checkbox"]):not([type="hidden"]),
.gt-workspace select,
.gt-workspace textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid #8f9eac;
  border-radius: 3px;
  color: #172f46;
  background: #fff;
  font: inherit;
}

.gt-workspace textarea {
  min-height: 120px;
}

.gt-workspace input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: #163b58;
}

.gt-workspace .button {
  min-height: 42px;
  margin-block: 8px;
  font-size: 14px;
  line-height: 1.4;
  white-space: normal;
}

.gt-workspace :is(a, button, summary):focus-visible {
  outline: 3px solid #176268;
  outline-offset: 2px;
}

.gt-workspace .portal-tabs {
  flex-wrap: wrap;
  gap: 4px;
}

.gt-workspace .portal-tabs a {
  min-height: 44px;
  padding: 11px 13px;
  font-size: 14px;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
}

.gt-workspace .portal-tabs a[aria-current="page"] {
  border-color: var(--navy, #172f46);
  color: var(--navy, #172f46);
  background: #eef2f4;
}

.gt-workspace .gt-details {
  margin-top: 14px;
  padding-block: 14px;
  border-top: 1px solid var(--line, #d6dfe5);
}

.gt-workspace summary {
  padding: 8px 0;
  color: #163b58;
  cursor: pointer;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.gt-workspace .gt-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.gt-workspace dt {
  margin-bottom: 4px;
  color: #4b5d6b;
  font-size: 14px;
}

.gt-workspace dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.gt-workspace .gt-line {
  margin-block: 16px;
  padding: 16px;
  border: 1px solid var(--line, #d6dfe5);
}

.gt-workspace .gt-invoice {
  margin-top: 20px;
  padding-left: 16px;
  border-left: 3px solid #c49c38;
}

.gt-workspace .errorlist {
  color: #9c1b2b;
  font-size: 15px;
}

.gt-workspace .table-scroll {
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.gt-workspace .finance-data-table {
  font-size: 14px;
}

.gt-workspace .finance-data-table th {
  font-size: 12px;
  font-weight: 700;
}

@media (max-width: 760px) {
  .gt-workspace .gt-form,
  .gt-workspace .gt-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .gt-workspace .gt-card {
    padding: 14px;
  }

  .gt-workspace .gt-tabs {
    align-items: stretch;
  }
}
