.session-request-admin-fields {
  min-width: 0;
  margin: 18px 0 12px;
  padding: 16px;
  border: 1px solid #b7ccea;
  border-radius: 12px;
  background: #f4f8ff;
  display: grid;
  gap: 14px;
}
.session-request-admin-fields legend { font-size: 1.05rem; font-weight: 750; color: #254f88; padding: 0 6px; }
.session-request-admin-fields p { margin: 0; }
.session-request-admin-fields textarea {
  width: 100%; min-height: 82px; padding: 10px; border: 1px solid #b9c8dd;
  border-radius: 8px; box-sizing: border-box; font: inherit; resize: vertical;
}
.session-request-admin-fields .session-request-admin-ack { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; }
.session-request-admin-ack input[type=checkbox] { width: 20px; height: 20px; flex: 0 0 20px; margin: 2px 0 0; }
.session-request-admin-fields button { justify-self: start; max-width: 100%; white-space: normal; min-height: 44px; }
.session-request-admin-quick { display: flex; flex-wrap: wrap; gap: 10px; }
.session-request-admin-quick [data-admin-reject] { color: #8f3030; border: 1px solid #dfb9b9; background: #fff6f6; }
.session-request-admin-history { color: #315c8e; background: #edf3fc; border-radius: 6px; padding: 4px 8px; font-size: .9rem; }
.session-request-expand-hint,.session-request-collapse-hint { white-space: nowrap; }
#session-request-admin-preview {
  width: min(660px,calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto;
  box-sizing: border-box; border: 1px solid #b7ccea; border-radius: 16px; padding: 22px;
  overflow-wrap: anywhere; color: #172033;
}
#session-request-admin-preview::backdrop { background: #17243b99; }
#session-request-admin-preview h2 { margin-top: 0; }
#session-request-admin-preview ul { padding: 0; list-style: none; display: grid; gap: 10px; }
#session-request-admin-preview li { display: grid; gap: 4px; padding: 12px; border: 1px solid #d5deeb; border-radius: 8px; }
#session-request-admin-preview li span { color: #50617a; }
#session-request-admin-preview .button-row {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end;
  position: sticky; bottom: -22px; background: white; padding: 12px 22px 22px;
  margin: 0 -22px -22px; border-top: 1px solid #e2e8f0;
}
#session-request-admin-preview button { min-height: 44px; white-space: normal; }
.session-request-admin-note { white-space: pre-wrap; }
@media(max-width:600px) {
  .session-request-student > label { flex-basis: 100%; width: 100%; }
  .session-request-student select { max-width: 100%; }
  .session-request-admin-fields { padding: 12px; }
  .session-request-admin-fields button { width: 100%; }
  #session-request-admin-preview { padding: 16px; }
  #session-request-admin-preview .button-row { bottom: -16px; padding: 12px 16px 16px; margin: 0 -16px -16px; }
  #session-request-admin-preview .button-row button { flex: 1 1 100%; }
}
