.support-session-banner {
  position: sticky;
  top: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px clamp(18px, 4vw, 56px);
  color: #201400;
  background: #ffd166;
  border-bottom: 2px solid #bd7800;
  font-family: var(--bs-font-family);
}
.support-session-banner.hidden { display: none; }
.support-session-banner div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.support-session-banner strong { font-size: 16px; }
.support-session-banner span { font-size: 16px; line-height: 1.45; }
.support-session-banner button {
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #704700;
  border-radius: 8px;
  color: #201400;
  background: #fff7df;
  font: 600 14px/1.2 var(--bs-font-family);
  cursor: pointer;
}
.support-session-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.support-session-form > label:not(.support-confirmation) { display: grid; gap: 7px; }
.support-session-form label > span,
.support-resource-scope legend { font: 600 16px/1.35 var(--bs-font-family); }
.support-session-form input,
.support-session-form select,
.support-session-form textarea { font: 400 16px/1.45 var(--bs-font-family); }
.support-session-form textarea { min-height: 112px; resize: vertical; }
.support-session-form .wide { grid-column: 1 / -1; }
.support-resource-scope {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line, #d8dee6);
  border-radius: 10px;
}
.support-resource-scope label,
.support-confirmation { display: flex; align-items: flex-start; gap: 10px; }
.support-resource-scope input,
.support-confirmation input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; }
.support-resource-scope label span,
.support-confirmation span { font: 400 16px/1.45 var(--bs-font-family); }
.support-form-actions { display: flex; justify-content: flex-end; }
.support-session-list { display: grid; gap: 12px; }
.support-session-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line, #d8dee6);
  border-radius: 10px;
}
.support-session-row div { display: grid; gap: 4px; }
.support-session-row strong,
.support-session-row span,
.support-session-row small,
.support-exclusions p { font-family: var(--bs-font-family); }
.support-session-row strong,
.support-session-row span { font-size: 16px; }
.support-session-row small { font-size: 14px; line-height: 1.4; }
.support-session-status { padding: 6px 10px; border-radius: 999px; background: #edf1f5; font-weight: 700; }
.support-session-status.active { color: #0c5132; background: #dff5e9; }
.support-session-status.expired,
.support-session-status.revoked { color: #5d6570; background: #eef0f2; }

@media (max-width: 760px) {
  .support-session-banner { align-items: flex-start; flex-direction: column; }
  .support-session-form { grid-template-columns: 1fr; }
  .support-session-form .wide { grid-column: auto; }
  .support-session-row { grid-template-columns: 1fr; }
}
