/* v0.7.9.15 category-based invoice deposit split */
.deposit-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0.75rem;
  width: 100%;
}
.deposit-category-grid label {
  margin: 0;
}


/* v0.7.9.16 configurable navigation + inline payments */
.sortable-nav-settings {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.sortable-nav-settings li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}
.nav-sort-buttons {
  display: inline-flex;
  gap: 0.35rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.payment-history-table td {
  vertical-align: middle;
}
.payment-edit-row[hidden], .payment-display-row[hidden] {
  display: none !important;
}
@media (max-width: 720px) {
  .sortable-nav-settings li {
    align-items: flex-start;
    flex-direction: column;
  }
  .nav-sort-buttons {
    width: 100%;
  }
  .nav-sort-buttons button {
    flex: 1;
  }
}

/* v0.7.9.17 refreshed theme palette and added Coral Reef, Homebrew, Anemone Pink, and Sea Turtle Green themes */

/* v0.7.9.18 client form/list polish */
select {
  min-height: 40px;
  line-height: 1.25;
}
.client-address-notes-grid textarea {
  min-height: 92px;
}
.typeahead-results {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0 10px;
}
.typeahead-results button {
  background: #f4f7fb;
  color: #17324d;
  border: 1px solid #cbd7e3;
  padding: 6px 9px;
}
.selected-token-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 12px;
}
.selected-token {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #cbd7e3;
  border-radius: 999px;
  padding: 5px 8px 5px 10px;
  background: #fff;
}
.selected-token button {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  padding: 0;
  line-height: 1;
}
@media (max-width: 720px) {
  .client-address-notes-grid {
    grid-template-columns: 1fr;
  }
}


/* v0.7.9.19 dashboard fix, boxed date picker, and class selector filter */
.course-event-filter {
  margin: 0.25rem 0 0.4rem;
  width: 100%;
}
input.date-field {
  background-image: linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 2.3rem;
}
.solodive-datepicker {
  position: fixed;
  z-index: 9999;
  width: 390px;
  padding: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
}
.dp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.dp-head strong {
  color: #0f172a;
  font-size: 0.98rem;
  display: inline-flex;
  gap: 4px;
  align-items: center;
}
.dp-head button,
.dp-actions button,
.dp-grid button,
.dp-picker-grid button,
.dp-manual-row button {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #0f172a;
  border-radius: 10px;
  min-height: 34px;
  padding: 0.35rem 0.55rem;
  box-sizing: border-box;
}
.solodive-datepicker .dp-grid button:not(.selected),
.solodive-datepicker .dp-picker-grid button:not(.selected) {
  color: #0f172a !important;
}
.dp-head > button {
  width: 38px;
  font-size: 1.25rem;
  line-height: 1;
}
.dp-head strong button {
  font-size: .95rem;
  font-weight: 800;
  width: auto;
}
.dp-manual-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-bottom: 10px;
}
.dp-manual-row input {
  min-height: 38px;
}
.dp-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.dp-week {
  margin-bottom: 5px;
}
.dp-week span {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  text-align: center;
}
.dp-grid button {
  aspect-ratio: 1 / 1;
  font-weight: 700;
  min-width: 0;
  width: 100%;
  padding: 0;
}
.dp-grid button:hover,
.dp-head button:hover,
.dp-actions button:hover,
.dp-picker-grid button:hover,
.dp-manual-row button:hover {
  background: #0f75bc;
  border-color: #0f75bc;
  color: #fff !important;
}
.dp-grid button.selected,
.dp-picker-grid button.selected {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff !important;
}
.dp-empty {
  min-height: 34px;
}
.dp-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.dp-picker-grid button {
  min-height: 44px;
  font-weight: 800;
}
.dp-actions {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
}
.dp-actions button {
  flex: 1;
}
@media (max-width: 420px) {
  .solodive-datepicker {
    left: 10px !important;
    right: 10px;
    width: auto;
  }
}

.column-picker summary {
  border-radius: 999px;
}

/* v0.7.9.20 dashboard pie modes and form-control alignment */
.pie-graphic {
  background: conic-gradient(var(--pie-stops, #1f9d55 0 var(--paid-pct), #f4c430 var(--paid-pct) var(--open-pct), #dc2626 var(--open-pct) 100%));
}
.row > label,
.row > .field,
.inline-form label {
  align-self: start;
}
.row input,
.row select,
.row textarea,
.inline-form input,
.inline-form select,
.mini-actions input,
.mini-actions select,
.table-tools input,
.table-tools select,
.deposit-box input,
.deposit-box select {
  min-height: 42px;
  line-height: 1.25;
}
.course-event-picker {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.course-event-picker .course-event-filter {
  margin-top: 0;
}
.course-event-picker select[multiple] {
  min-height: 148px;
}


/* v0.7.9.21 gratuity note */
.gratuity-note-box{
  border:1px solid var(--border,#d8dee8);
  border-radius:14px;
  padding:14px 16px;
  margin:16px 0;
  background:rgba(255,160,65,.10);
}
.gratuity-note-box h3{
  margin-top:0;
  margin-bottom:8px;
}
.gratuity-note-box p{
  margin-bottom:0;
}


/* v0.7.9.23 table tool and invoice action polish */
.table-tools-left,
.table-tools-left label,
.table-show-control,
.column-picker summary {
  font-size: 0.95rem;
  line-height: 1.2;
}
.column-picker summary {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  padding: 0.55rem 0.75rem;
}
.table-show-control select {
  height: auto;
  min-height: 38px;
  padding: 9px;
}
.invoice-action-dropdown summary,
.invoice-action-popover input,
.invoice-action-popover button {
  min-height: 42px;
}
.invoice-action-popover label {
  font-size: 0.95rem;
  line-height: 1.25;
}

/* v0.7.9.22 secure invoice placement and public action buttons */
.public-invoice-actions{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin:18px 0 4px;
}
.public-invoice-action-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.public-invoice-actions .btn,
.public-invoice-actions button.btn,
.admin-preview-actions .btn{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  font-size:0.95rem;
  line-height:1.2;
}
.secure-invoice-inline{
  flex:1 1 310px;
  max-width:420px;
  border:1px solid var(--border,#d8dee8);
  border-radius:12px;
  background:rgba(255,255,255,.75);
  padding:10px 12px;
  box-sizing:border-box;
}
.secure-invoice-inline form{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:8px 10px;
  align-items:center;
}
.secure-invoice-inline strong{
  white-space:nowrap;
}
.secure-invoice-inline .checkline{
  margin:0;
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.92rem;
}
.secure-invoice-inline input[name="pin"]{
  grid-column:2 / span 1;
  min-width:110px;
}
.secure-invoice-inline button{
  grid-row:1 / span 2;
  grid-column:3;
  align-self:stretch;
  margin:0;
}
.secure-invoice-card-top{
  margin-bottom:14px;
}
.admin-preview-actions{
  max-width:850px;
  margin:0 auto 12px;
}
@media (max-width:720px){
  .public-invoice-actions{
    display:block;
  }
  .public-invoice-action-buttons{
    margin-bottom:12px;
  }
  .public-invoice-action-buttons .btn,
  .public-invoice-action-buttons button.btn{
    flex:1 1 180px;
  }
  .secure-invoice-inline{
    max-width:none;
  }
  .secure-invoice-inline form{
    grid-template-columns:1fr;
  }
  .secure-invoice-inline input[name="pin"],
  .secure-invoice-inline button{
    grid-column:auto;
    grid-row:auto;
  }
}

/* v0.7.9.24 invoice/UI polish */
input,
select,
textarea {
  font-size: 1rem;
}
.table-search input::placeholder,
.course-event-filter::placeholder,
.autocomplete input::placeholder,
input::placeholder,
textarea::placeholder {
  color: #6b7280;
}
.table-show-control select {
  height: auto;
  min-height: 38px;
  padding: 9px;
  line-height: normal;
}
.invoice-top-row {
  align-items: start;
}
.invoice-top-row > label,
.invoice-top-row .course-event-picker {
  align-self: start;
}
.course-event-picker .course-event-filter,
.invoice-top-row input[type="date"],
.invoice-top-row .autocomplete input {
  min-height: 42px;
}
#elearning_panel {
  margin-top: 12px;
  border: 1px solid #d7dee8;
  border-left: 4px solid var(--accent, #2563eb);
}
#lines select,
#lines input,
#lines button.line-remove-button {
  min-height: 42px;
  box-sizing: border-box;
}
#lines button.line-remove-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
  padding-bottom: 0;
}
.line-tax-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.line-tax-amount {
  font-weight: 700;
  white-space: nowrap;
}
.line-tax-options {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.line-tax-picker {
  position: relative;
  display: inline-block;
}
.line-tax-picker summary {
  cursor: pointer;
  list-style: none;
  border: 1px solid rgba(15, 117, 188, .28);
  border-radius: 999px;
  background: #e8f4fb;
  color: #0f4f7b;
  font-weight: 700;
  padding: .35rem .65rem;
  white-space: nowrap;
}
.line-tax-picker summary::-webkit-details-marker {
  display: none;
}
.line-tax-popout {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 30;
  min-width: 220px;
  padding: .75rem;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.35);
  background: #fff;
  box-shadow: 0 14px 35px rgba(15,23,42,.18);
}
.line-tax-popout .tax-check {
  display: flex;
  margin-bottom: .45rem;
}
.line-tax-popout .tax-check:last-child {
  margin-bottom: 0;
}
.line-discount-picker {
  position: relative;
  display: inline-block;
}
.line-discount-picker summary {
  cursor: pointer;
  list-style: none;
  border: 1px solid rgba(15, 117, 188, .28);
  border-radius: 999px;
  background: #e8f4fb;
  color: #0f4f7b;
  font-weight: 700;
  padding: .35rem .65rem;
  white-space: nowrap;
}
.line-discount-picker summary::-webkit-details-marker {
  display: none;
}
.line-discount-popout {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  z-index: 30;
  width: 210px;
  padding: .75rem;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.35);
  background: #fff;
  box-shadow: 0 14px 35px rgba(15,23,42,.18);
}
.line-discount-popout label {
  display: block;
  margin-bottom: .55rem;
}
.line-discount-popout select,
.line-discount-popout input {
  width: 100%;
  margin-top: .25rem;
}
.line-discount-popout .small {
  display: block;
  font-weight: 700;
}
.tax-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  white-space: nowrap;
}
.tax-check input {
  width: auto;
  min-height: 0;
  margin: 0;
}
@media (max-width: 700px) {
  .line-tax-cell,
  .line-tax-options {
    align-items: flex-start;
  }
}

/* v0.7.9.25 keep table search placeholder text compact */
.table-search input::placeholder {
  font-size: 0.85rem;
  line-height: 1.2;
}

/* v0.7.9.26 restore class picker compact text and align top invoice controls */
.invoice-top-row .course-event-picker {
  gap: 0;
}
.invoice-top-row .course-event-picker .course-event-filter {
  margin: 0;
}
.invoice-top-row .course-event-picker select[multiple] {
  margin-top: 12px;
}
.course-event-picker .course-event-filter,
.course-event-picker .course-event-filter::placeholder,
.course-event-picker select[multiple] {
  font-size: 0.92rem;
  line-height: 1.2;
}
.course-event-picker .course-event-filter {
  min-height: 42px;
}


/* v0.7.9.27 compact horizontal deposit rule controls */
.deposit-rule-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.deposit-mode-field,
.deposit-inline-field {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.deposit-mode-field {
  flex: 1 1 520px;
  max-width: 680px;
}
.deposit-mode-field span,
.deposit-inline-field span {
  white-space: nowrap;
  font-weight: 600;
}
.deposit-mode-field select {
  width: auto;
  flex: 1 1 360px;
  min-width: 300px;
}
.deposit-inline-field {
  flex: 0 0 auto;
}
.deposit-inline-field input {
  width: 118px;
  max-width: 118px;
}
.deposit-fixed input {
  width: 136px;
  max-width: 136px;
}
.deposit-split.deposit-category-grid {
  margin-top: 12px;
}
@media (max-width: 780px) {
  .deposit-rule-row {
    align-items: stretch;
  }
  .deposit-mode-field,
  .deposit-inline-field {
    flex: 1 1 100%;
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .deposit-mode-field select,
  .deposit-inline-field input,
  .deposit-fixed input {
    width: 100%;
    max-width: none;
    min-width: 0;
  }
}

/* v0.7.9.27 keep invoice action buttons on one desktop line */
.invoice-actions-expanded {
  grid-template-columns: repeat(7, minmax(112px, 1fr));
  max-width: 1180px;
}
.invoice-actions-expanded .btn,
.invoice-actions-expanded button,
.invoice-actions-expanded summary {
  padding-left: 0.65rem;
  padding-right: 0.65rem;
  font-size: 0.95rem;
}
@media (max-width: 1050px) {
  .invoice-actions-expanded {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    max-width: 980px;
  }
}

/* v0.7.9.28 invoice form polish */
.course-event-picker select[multiple] {
  overflow-x: auto;
  white-space: nowrap;
}
.course-event-picker select[multiple] option {
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.deposit-rule-row {
  align-items: center;
  gap: 10px;
}
.deposit-mode-field,
.deposit-inline-field {
  align-items: center;
  min-height: 44px;
}
.deposit-mode-field {
  flex: 0 1 auto;
  max-width: none;
}
.deposit-mode-field select {
  flex: 0 0 auto;
  width: 340px;
  min-width: 280px;
  max-width: 38vw;
}
.deposit-inline-field input {
  width: 108px;
  max-width: 108px;
}
.deposit-fixed input {
  width: 124px;
  max-width: 124px;
}
.deposit-category-grid {
  align-items: start;
}
.deposit-category-control {
  min-width: 0;
}
.deposit-category-control .deposit-category-name {
  white-space: nowrap;
}
.deposit-category-control .deposit-due-now {
  white-space: nowrap;
}
.deposit-category-control input {
  margin-top: 5px;
}
@media (max-width: 900px) {
  .deposit-mode-field select {
    width: 300px;
    max-width: 52vw;
  }
}
@media (max-width: 780px) {
  .deposit-mode-field,
  .deposit-inline-field {
    min-height: 0;
  }
  .deposit-mode-field select,
  .deposit-inline-field input,
  .deposit-fixed input {
    width: 100%;
    max-width: none;
  }
}

/* v0.7.9.28 compact client-view gratuity note */
.gratuity-note-box {
  border-radius: 10px;
  padding: 9px 12px;
  margin: 10px 0;
}
.gratuity-note-box h3 {
  font-size: 0.98rem;
  margin-bottom: 4px;
}
.gratuity-note-box p {
  font-size: 0.92rem;
  line-height: 1.35;
}

/* v0.7.9.28 admin-only public invoice return box */
.admin-back-box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 10px 14px;
  margin-bottom: 10px;
}

/* v0.7.9.29 deposit category and class selector polish */
.course-event-select-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  border-radius: 10px;
}
.course-event-select-scroll select[multiple] {
  display: block;
  width: max-content;
  min-width: 100%;
  max-width: none;
}
.course-event-select-scroll select[multiple] option {
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}
.deposit-category-control {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  padding: 0.35rem 0;
}
.deposit-category-control .deposit-category-name {
  display: block;
  color: #6b7280;
  font-size: 0.88rem;
  line-height: 1.2;
  white-space: normal;
  overflow-wrap: anywhere;
}
.deposit-category-control input {
  width: 100%;
  margin-top: 0;
}
.deposit-category-control input::placeholder {
  color: #9ca3af;
  opacity: 1;
}
.deposit-category-control .deposit-due-now {
  display: none;
}


/* v0.7.9.30 public/admin link and client record logo polish */
.public-admin-actions{
  max-width: 850px;
  margin: 0 auto 12px;
}
.public-client-logo-wrap{
  display:flex;
  justify-content:center;
  margin-bottom:0.75rem;
}
.public-client-logo{
  max-height:72px;
  width:auto;
}
.public-client-business-name{
  text-align:center;
  margin-top:-0.25rem;
  margin-bottom:1rem;
}

/* v0.7.9.32 client tab/client detail polish */
.client-simple-form select,
.client-detail-wrap select,
.client-document-upload-grid select {
  min-height: 42px;
  box-sizing: border-box;
}
.client-simple-form label.check {
  display: flex !important;
  align-items: center;
  gap: 0.45rem;
  min-height: 42px;
  margin: 0;
}
.client-simple-form label.check input {
  width: auto;
  margin: 0;
}
.client-address-notes-grid textarea,
.client-simple-form textarea[name="address_block"],
.client-simple-form textarea[name="notes"] {
  height: 96px;
  min-height: 96px;
  resize: vertical;
}
.client-read-address-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}
.client-read-address-notes .client-address,
.client-read-address-notes .client-notes {
  margin: 0;
}
.client-document-upload-grid {
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(125px, 0.65fr) minmax(125px, 0.65fr) minmax(220px, 1.2fr);
  gap: 12px;
  align-items: end;
}
.client-document-upload-grid .client-doc-course-field {
  grid-column: 1 / span 2;
}
.client-document-upload-grid .client-document-file-field {
  grid-column: 4;
  grid-row: 1;
}
.client-document-file-field input[type="file"] {
  min-height: var(--sd-control-height);
  padding: 7px 9px;
  font-size: 0.92rem;
}
.client-document-notes {
  display: block;
  margin-top: 12px;
}
.client-document-upload-actions {
  margin-top: 12px;
}
.document-row-card select,
.document-row-card input {
  min-height: var(--sd-control-height);
}
@media (max-width: 820px) {
  .client-document-upload-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}
@media (max-width: 560px) {
  .client-read-address-notes,
  .client-document-upload-grid {
    grid-template-columns: 1fr;
  }
}


/* v0.7.9.33 client form alignment corrections */
.client-simple-form input,
.client-simple-form select,
.client-detail-wrap input,
.client-detail-wrap select,
.client-document-upload-grid input,
.client-document-upload-grid select {
  min-height: var(--sd-control-height);
  height: var(--sd-control-height);
  line-height: 1.25;
  padding-top: 9px;
  padding-bottom: 9px;
}
.client-simple-form label.check,
.client-detail-wrap label.check {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-height: var(--sd-control-height);
  height: var(--sd-control-height);
  padding-top: 0.65rem;
  box-sizing: border-box;
}
.client-simple-form label.check input,
.client-detail-wrap label.check input {
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
}
#member_number_wrap[style*="display:none"],
#edit_member_number_wrap[style*="display:none"] {
  display: none !important;
}
.client-document-upload-grid select,
.document-row-card select {
  height: var(--sd-control-height);
  min-height: var(--sd-control-height);
}

/* v0.7.9.34 client add/edit grid alignment */
.client-identity-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}
.client-identity-grid > label {
  align-self: start;
}
.client-identity-grid input,
.client-identity-grid select {
  height: var(--sd-control-height);
  min-height: var(--sd-control-height);
  line-height: 1.25;
  box-sizing: border-box;
}
.client-identity-grid .client-field-name { grid-column: 1; grid-row: 1; }
.client-identity-grid .client-field-email { grid-column: 2; grid-row: 1; }
.client-identity-grid .client-field-phone { grid-column: 3; grid-row: 1; }
.client-identity-grid .client-field-country { grid-column: 4; grid-row: 1; }
.client-identity-grid .client-field-dob { grid-column: 1; grid-row: 2; }
.client-identity-grid .client-field-sex { grid-column: 2; grid-row: 2; }
.client-identity-grid .client-field-dan { grid-column: 3; grid-row: 2; }
.client-identity-grid .client-field-cert { grid-column: 4; grid-row: 2; }
.client-identity-grid .client-field-pro-status { grid-column: 1; grid-row: 3; }
.client-identity-grid .client-field-member-number { grid-column: 2 / span 2; grid-row: 3; }
.client-identity-grid label.check {
  padding-top: 0;
  margin-top: 1.35rem;
  height: var(--sd-control-height);
  min-height: var(--sd-control-height);
  align-items: center;
}
.client-identity-grid [hidden],
.client-simple-form [hidden],
.client-detail-wrap [hidden] {
  display: none !important;
}
@media (max-width: 900px) {
  .client-identity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .client-identity-grid .client-field-name,
  .client-identity-grid .client-field-email,
  .client-identity-grid .client-field-phone,
  .client-identity-grid .client-field-country,
  .client-identity-grid .client-field-dob,
  .client-identity-grid .client-field-sex,
  .client-identity-grid .client-field-dan,
  .client-identity-grid .client-field-cert,
  .client-identity-grid .client-field-pro-status,
  .client-identity-grid .client-field-member-number {
    grid-column: auto;
    grid-row: auto;
  }
}
@media (max-width: 560px) {
  .client-identity-grid {
    grid-template-columns: 1fr;
  }
}

/* v0.7.9.35 client record link and medical waiver status */
.card-title-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.public-medical-waiver-card {
  margin-top: 1rem;
}
.medical-waiver-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  align-items: center;
}
.medical-waiver-summary strong {
  display: block;
  font-size: 1.05rem;
}
.medical-waiver-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0.25rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
  border: 1px solid transparent;
}
.medical-waiver-valid {
  color: #0f5132;
  background: #d1e7dd;
  border-color: #badbcc;
}
.medical-waiver-soon,
.medical-waiver-unknown {
  color: #664d03;
  background: #fff3cd;
  border-color: #ffecb5;
}
.medical-waiver-expired,
.medical-waiver-missing {
  color: #842029;
  background: #f8d7da;
  border-color: #f5c2c7;
}

/* Client document review / client-record uploads */
.nav-review-badge{position:relative;display:inline-flex;align-items:center;gap:.35rem;}
.nav-review-badge span{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:#d92323;color:#fff;font-size:.78rem;font-weight:800;line-height:1;}
.medical-waiver-two-col{grid-template-columns:repeat(2,minmax(0,1fr));}
.medical-waiver-two-col>div{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start;}
.medical-waiver-pending{background:#fff4d6;color:#7a4a00;border:1px solid #f2c45a;}
.client-record-upload-form{display:grid;grid-template-columns:minmax(130px,180px) minmax(220px,1fr) auto;gap:.75rem;align-items:end;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#d7dee8);}
.client-record-upload-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.88rem;font-weight:600;}
.client-record-upload-form [hidden]{display:none!important;}
.client-record-upload-form input,.client-record-upload-form select{width:100%;}
.inline-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:0;}
.small-btn{padding:.35rem .65rem;font-size:.86rem;}
@media (max-width: 820px){
  .medical-waiver-two-col{grid-template-columns:1fr;}
  .client-record-upload-form{grid-template-columns:1fr;}
}

/* v0.7.9.37 pro status settings and client form cleanup */
.settings-mini-table { width: 100%; border-collapse: collapse; margin: 0.4rem 0 0.75rem; }
.settings-mini-table th, .settings-mini-table td { padding: 0.35rem; border-bottom: 1px solid rgba(148,163,184,0.25); text-align: left; vertical-align: middle; }
.settings-mini-table input[type="text"] { width: 100%; }
.settings-inline-check { display: flex; align-items: center; gap: 0.4rem; margin-top: 1.35rem; }
.client-identity-grid .client-field-pro-status select { height: 42px; min-height: 42px; }


/* v0.7.9.38 client list and client record polish */
.client-list-actions{margin:0 0 16px;display:flex;justify-content:flex-start;}
.add-client-card[hidden]{display:none!important;}
.client-identity-grid .client-field-member-number{grid-column:2;grid-row:3;}
.public-client-logo-above-card{max-width:850px;margin:0 auto .75rem;justify-content:flex-start;padding-left:0;}
.public-client-logo-above-card .public-client-logo{max-height:78px;}

/* v0.7.9.39 reports top layout and tax summary card */
.reports-top-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1rem;
}
.reports-top-grid .card {
  margin: 0;
}
.reports-range-form {
  align-items: flex-end;
}
.compact-report-export-row {
  gap: .55rem;
}
.compact-report-export-row .button {
  white-space: nowrap;
}
.tax-total-card {
  margin: 1rem 0;
}
.tax-total-card h2 {
  margin-bottom: .35rem;
}
.tax-total-main {
  font-size: 1.85rem;
  line-height: 1.1;
  font-weight: 800;
  margin-bottom: .65rem;
}
.tax-total-breakdown {
  display: grid;
  gap: .4rem;
  max-width: 620px;
}
.tax-total-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: .45rem .55rem;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: .65rem;
  background: rgba(248,250,252,.65);
}
.tax-total-line span {
  font-weight: 700;
}
.tax-total-line em {
  font-style: normal;
  font-weight: 500;
  color: var(--muted, #64748b);
  margin-left: .25rem;
  white-space: nowrap;
}
.tax-total-line b {
  white-space: nowrap;
}
@media (max-width: 900px) {
  .reports-top-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .tax-total-line {
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
  }
}


/* v0.7.9.40 client list and inline client info edit */
.client-list-card > table:first-child { margin-top: 0; }
.client-edit-panel[hidden] { display: none !important; }
.client-info-card .card-title-row { align-items: center; }


/* v0.7.9.42 client record logo and medical/waiver upload alignment */
.public-client-record-card .public-client-logo-wrap {
  justify-content: center;
  margin-bottom: 0.75rem;
}
.public-client-record-card .public-client-logo {
  max-height: 72px;
}
.client-record-upload-form input,
.client-record-upload-form select {
  min-height: 42px;
  height: 42px;
  box-sizing: border-box;
  line-height: 1.25;
}
.client-record-upload-form input[type="file"] {
  padding-top: 7px;
  padding-bottom: 7px;
}
.client-delete-form {
  display: none;
}
.settings-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .35rem .6rem;
}

/* v0.7.9.43 reports range/export compact alignment */
.reports-range-card,
.reports-export-card {
  padding: 14px 16px;
}
.reports-range-form {
  flex-wrap: nowrap;
  gap: .55rem;
  width: 100%;
}
.reports-range-form label {
  flex: 0 0 auto;
  min-width: 0;
}
.reports-range-form select[name="range"] {
  width: 116px;
  min-width: 116px;
}
.reports-range-form input[type="date"] {
  width: 122px;
  min-width: 122px;
}
.reports-range-form button {
  min-width: 68px;
  padding-left: .75rem;
  padding-right: .75rem;
}
.reports-range-card .small {
  margin: .55rem 0 0;
  line-height: 1.28;
}
.reports-export-card h2 {
  margin: 0 0 .35rem;
  line-height: 1.15;
}
.reports-export-card p.small {
  margin: 0 0 .6rem;
  line-height: 1.28;
}
.compact-report-export-row {
  gap: .4rem;
}
.compact-report-export-row .button {
  padding: .42rem .6rem;
  min-height: 36px;
  font-size: .88rem;
}
@media (max-width: 900px) {
  .reports-range-form {
    flex-wrap: wrap;
  }
}
@media (max-width: 520px) {
  .reports-range-form select[name="range"],
  .reports-range-form input[type="date"] {
    width: 100%;
    min-width: 0;
  }
  .reports-range-form label,
  .reports-range-form button {
    width: 100%;
  }
}


/* v0.7.9.44 client waiver course linking */
.linked-waiver-list {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0,0,0,.08);
}
.danger-text { color: #b42318; }
.document-row-card select[name="course_event_id"] { min-width: 220px; }


/* v0.7.9.45 client document review/upload layout */
.nav-review-badge span{background:#d92323;color:#fff;}
.nav-review-badge.nav-review-clear span{background:#16803a;color:#fff;}
.nav-review-badge span:empty::before{content:"0";}
[data-waiver-class-field][hidden]{display:none!important;}
.client-document-upload-grid .client-doc-course-field select{width:100%;}
@media (max-width: 820px){
  .client-document-upload-grid .client-doc-course-field,
  .client-document-upload-grid .client-document-file-field{grid-column:auto;grid-row:auto;}
}

/* v0.7.9.49 reports top grid and tax summary refinement */
.reports-top-grid {
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
}
.reports-export-card {
  align-self: stretch;
}
.tax-total-card {
  padding-top: .85rem;
  padding-bottom: .85rem;
}
.tax-total-grid {
  display: grid;
  grid-template-columns: minmax(170px, .78fr) minmax(0, 1.11fr) minmax(0, 1.11fr);
  gap: .8rem 1rem;
  align-items: start;
}
.tax-total-heading h2 {
  margin: 0 0 .2rem;
}
.tax-total-main {
  margin-bottom: 0;
}
.tax-total-breakdown {
  max-width: none;
  gap: .32rem;
}
.tax-total-line {
  padding: .36rem .5rem;
}
@media (max-width: 900px) {
  .reports-top-grid,
  .tax-total-grid {
    grid-template-columns: 1fr;
  }
  .tax-total-breakdown-right:empty {
    display: none;
  }
}

/* v0.7.9.51 reports export spacing and hierarchical tax summary */
.reports-export-card {
  padding-top: 12px;
  padding-bottom: 12px;
}
.reports-export-card h2 {
  margin-bottom: .25rem;
}
.reports-export-card p.small {
  margin-bottom: .45rem;
  line-height: 1.22;
}
.compact-report-export-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .22rem;
}
.compact-report-export-row .button {
  width: 100%;
  min-height: 31px;
  padding: .28rem .55rem;
  line-height: 1.25;
}
.tax-total-line.tax-depth-1 {
  margin-left: .7rem;
}
.tax-total-line.tax-depth-2 {
  margin-left: 1.4rem;
}
.tax-total-line.tax-depth-3 {
  margin-left: 2.1rem;
}

/* v0.8.4.14.12 control conformity and document workspace polish */
.invoice-top-row .course-event-picker {
  min-width: min(560px, 100%);
  max-width: 760px;
}
.course-event-picker .course-event-filter {
  max-width: 320px;
}
.course-event-select-scroll {
  max-width: 100%;
  overflow-x: auto;
}
.course-event-picker select[multiple] {
  min-width: min(720px, 100%);
}

/* v0.8.4.14.15 invoice/date picker polish */
.invoice-top-row {
  grid-template-columns: minmax(360px, 1.65fr) minmax(260px, 1.1fr) minmax(150px, .7fr) minmax(150px, .7fr);
}
.invoice-top-row .course-event-picker {
  min-width: 0;
}
.invoice-top-row input.date-field {
  min-width: 150px;
}
.manual-catalog-panel {
  margin-top: 12px;
  border: 1px solid #d7dee8;
  border-left: 4px solid var(--accent, #2563eb);
}
.manual-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.manual-catalog-grid label,
.manual-catalog-agency {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
}
.suggestions .inline-client-create {
  display: grid;
  gap: 8px;
  padding: 10px;
  cursor: default;
  background: #fff;
}
.suggestions .inline-client-create:hover {
  background: #fff;
}
.inline-client-create strong {
  color: #0f172a;
  font-size: .95rem;
}
.inline-client-create label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  color: #475569;
  font-size: .82rem;
  font-weight: 600;
}
.inline-client-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .45rem;
}
.inline-client-fields label:has(textarea) {
  grid-column: 1 / -1;
}
.inline-client-create input,
.inline-client-create select,
.inline-client-create textarea {
  width: 100%;
  min-height: 34px;
}
.inline-client-create .inline-client-save {
  justify-self: start;
}
.inline-client-error {
  min-height: 1rem;
  color: #b42318;
  font-size: .82rem;
}
.line-discount-cell {
  display: grid;
  grid-template-columns: minmax(72px, .9fr) minmax(72px, 1fr);
  gap: 4px;
  min-width: 150px;
}
.line-discount-cell .small {
  grid-column: 1 / -1;
}
.invoice-discount-card {
  margin-top: 12px;
}
@media (max-width: 980px) {
  .invoice-top-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .invoice-top-row {
    grid-template-columns: 1fr;
  }
  .course-event-picker .course-event-filter {
    max-width: 100%;
  }
}
.invoice-actions-expanded .btn,
.invoice-actions-expanded button,
.invoice-actions-expanded summary {
  border-radius: 999px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
}
.invoice-action-dropdown summary {
  list-style: none;
}
.invoice-action-dropdown summary::-webkit-details-marker {
  display: none;
}
.payment-action-buttons .danger,
.inline-payment-edit button.danger,
button.danger {
  color: #fff;
}
.invoice-actions-expanded a[href*="public_invoice"],
.invoice-actions-expanded a[href*="client_detail"] {
  background: #1f6f9f;
  border-color: #1f6f9f;
  color: #fff !important;
}
.invoice-actions-expanded a[href*="public_invoice"]:hover,
.invoice-actions-expanded a[href*="client_detail"]:hover {
  background: #17577d;
  border-color: #17577d;
}
.blank-document-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
  margin: .85rem 0 1rem;
  padding: .8rem;
  border: 1px solid rgba(148,163,184,.35);
  border-radius: 14px;
  background: #f8fafc;
}
.blank-document-links > div {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  align-items: stretch;
  min-width: 0;
}
.blank-document-links .label {
  margin-bottom: .1rem;
}
.blank-document-links .btn {
  justify-content: center;
  width: 100%;
  min-height: 38px;
  white-space: normal;
  text-align: center;
}
.public-record-brand-footer {
  margin-top: 1.25rem;
  padding-bottom: 0;
}
.client-record-note {
  margin-top: -.2rem;
  max-width: 860px;
}
.course-document-upload-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: .75rem;
  align-items: end;
}
.course-document-active-check {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: .45rem;
}
.course-document-active-check input {
  width: auto;
}
.course-document-group {
  margin-top: .85rem;
}
.course-document-group h3 {
  margin: 0 0 .45rem;
  color: #334155;
}
.compact-document-list {
  gap: .55rem;
}
.course-document-card {
  grid-template-columns: minmax(180px, 1.2fr) minmax(160px, .8fr) minmax(160px, 1fr);
}
@media (max-width: 720px) {
  .course-document-card {
    grid-template-columns: 1fr;
  }
}

/* v0.8.4.14.41 client docs, invoice action, and report alignment fixes */
.document-row-card {
  grid-template-columns: minmax(130px, .85fr) minmax(180px, 1.05fr) 118px minmax(260px, 1.55fr) 96px;
  gap: .75rem .85rem;
  align-items: end;
}
.document-row-card .document-field {
  min-width: 0;
}
.document-row-card .document-type-field {
  grid-column: 1;
  grid-row: 1;
}
.document-row-card .document-file-field {
  grid-column: 2;
  grid-row: 1;
}
.document-row-card .document-status-field {
  grid-column: 3;
  grid-row: 1;
}
.document-row-card .client-doc-course-field {
  grid-column: 4;
  grid-row: 1;
}
.document-row-card .document-valid-field {
  grid-column: 1;
  grid-row: 2;
}
.document-row-card .document-expires-field {
  grid-column: 2;
  grid-row: 2;
}
.document-row-card .document-signature-field {
  grid-column: 3;
  grid-row: 2;
}
.document-row-card .document-notes-field {
  grid-column: 3 / 5;
  grid-row: 2;
}
.document-row-card .document-signature-field + .document-notes-field {
  grid-column: 4;
}
.document-row-card .document-save-field {
  grid-column: 5;
  grid-row: 1;
  align-self: end;
  margin: 0;
}
.document-row-card .document-delete-field {
  grid-column: 5;
  grid-row: 2;
  align-self: end;
  margin: 0;
}
.document-row-card .document-save-field button,
.document-row-card .document-delete-field button {
  width: 100%;
  min-height: 42px;
}
.document-row-card .document-notes-field input {
  min-width: 0;
}
.document-row-card .client-doc-course-field select {
  min-width: 0;
  width: 100%;
}
.document-row-card .client-doc-course-field .small {
  display: none;
}
.document-row-card .document-delete-field button.danger {
  background: #b42318 !important;
  border-color: #b42318 !important;
  color: #fff !important;
}
.reports-range-card .reports-range-form {
  width: 100%;
  justify-content: flex-start;
  justify-items: start;
  grid-template-columns: 136px 200px 200px auto;
}
.reports-range-card .reports-range-form label {
  width: 100%;
}
.reports-range-card .reports-range-form select[name="range"] {
  width: 136px;
  min-width: 136px;
}
.reports-range-card .small {
  margin-left: 0;
}
@media (max-width: 1200px) {
  .document-row-card {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
  .document-row-card .document-field,
  .document-row-card .document-type-field,
  .document-row-card .document-file-field,
  .document-row-card .document-status-field,
  .document-row-card .client-doc-course-field,
  .document-row-card .document-valid-field,
  .document-row-card .document-expires-field,
  .document-row-card .document-signature-field,
  .document-row-card .document-notes-field,
  .document-row-card .document-save-field,
  .document-row-card .document-delete-field {
    grid-column: auto;
    grid-row: auto;
  }
}

/* v0.8.4.14.37 invoice editor spacing and inline picker usability */
.page-title-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  flex-wrap: wrap;
}
.page-title-actions .btn,
.page-title-actions button.btn {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.15;
  min-height: 40px;
  padding: .62rem .9rem;
}
.invoice-form-card,
.invoice-form-card .card,
#lines,
#lines tbody,
#lines tr,
#lines td {
  overflow: visible;
}
.invoice-top-row {
  grid-template-columns: minmax(320px, 1.25fr) minmax(250px, .95fr) minmax(150px, .62fr) minmax(150px, .62fr);
  column-gap: 1rem;
}
.invoice-top-row .course-event-picker {
  max-width: 620px;
}
.invoice-top-row .invoice-client-search-label {
  margin-left: -.4rem;
}
#qty,
.line-qty-input {
  width: 72px;
  min-width: 64px;
  max-width: 78px;
}
.line-tax-picker summary,
.line-discount-picker summary {
  min-height: 30px;
  padding: .25rem .5rem;
  font-size: .78rem;
  line-height: 1.1;
}
.line-tax-popout,
.line-discount-popout {
  z-index: 1200;
}
.line-tax-cell,
.line-discount-cell {
  position: relative;
}
@media (max-width: 980px) {
  .invoice-top-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .invoice-top-row .invoice-client-search-label {
    margin-left: 0;
  }
}

/* v0.8.4.14.38 invoice alignment corrections */
.invoice-top-row {
  grid-template-columns: 320px minmax(250px, 320px) minmax(150px, 1fr) minmax(150px, 1fr);
  column-gap: 16px;
}
.invoice-top-row .course-event-picker {
  width: 320px;
  max-width: 320px;
  overflow: visible;
}
.course-event-picker .course-event-filter {
  width: 320px;
  max-width: 320px;
}
.course-event-select-scroll {
  max-width: none;
  overflow: visible;
}
.course-event-picker select[multiple] {
  width: max-content;
  min-width: 320px;
  max-width: calc(100vw - 96px);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}
.invoice-top-row .invoice-client-search-label {
  margin-left: 0;
}
.line-entry-row {
  display: grid;
  grid-template-columns: minmax(260px, 320px) 78px 132px;
  gap: 10px 12px;
  align-items: end;
  justify-content: start;
}
.line-entry-row label {
  margin: 0;
}
.line-entry-row #prod_search {
  width: 100%;
}
.line-entry-row #qty {
  width: 72px;
}
.line-entry-row #price {
  width: 132px;
}
.line-qty-input::-webkit-outer-spin-button,
.line-qty-input::-webkit-inner-spin-button,
.line-price-input::-webkit-outer-spin-button,
.line-price-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.line-qty-input,
.line-price-input {
  appearance: textfield;
  -moz-appearance: textfield;
}
.invoice-discount-card .compact-row {
  display: grid;
  grid-template-columns: 190px 124px;
  align-items: end;
  gap: 12px;
  justify-content: start;
}
.invoice-discount-card #invoice_discount_type {
  width: 190px;
  height: 42px;
  min-height: 42px;
}
.invoice-discount-card #invoice_discount_value {
  width: 124px;
  height: 42px;
  min-height: 42px;
}
@media (max-width: 980px) {
  .invoice-top-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .invoice-top-row .course-event-picker,
  .course-event-picker .course-event-filter {
    width: 100%;
    max-width: 100%;
  }
  .course-event-picker select[multiple] {
    min-width: 100%;
  }
}
@media (max-width: 640px) {
  .invoice-top-row,
  .line-entry-row {
    grid-template-columns: 1fr;
  }
  .line-entry-row #qty,
  .line-entry-row #price,
  .invoice-discount-card #invoice_discount_type,
  .invoice-discount-card #invoice_discount_value {
    width: 100%;
  }
  .invoice-discount-card .compact-row {
    grid-template-columns: 1fr;
  }
}

/* v0.8.4.14.39 docs and footer corrections */
.app-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  text-align: center;
}
.app-logo-link,
.app-footer-logo-link,
.login-app-logo-link,
.public-footer-logo-link,
.app-logo-preview-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  text-decoration: none;
}
.app-footer-logo {
  width: auto;
  height: 26px;
  max-width: 120px;
  object-fit: contain;
}
.app-version-text {
  color: rgba(226, 232, 240, .72);
  font-weight: 700;
  font-size: .75rem;
}
.public-brand-footer a,
.app-footer .powered-by-text a {
  color: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}
main:has(.docs-review-card) {
  display: flex;
  flex-direction: column;
}
.docs-summary-grid {
  order: 5;
}
.docs-review-card {
  order: 10;
}
.docs-course-library-card {
  order: 20;
}
.docs-all-card {
  order: 30;
}
.docs-inline-edit-form {
  margin: 0;
}
.docs-course-library-card td input,
.docs-course-library-card td select,
.docs-all-card td input,
.docs-all-card td select {
  min-height: 34px;
  font-size: .86rem;
  margin: .15rem 0;
}
.danger,
button.danger,
.btn.danger {
  color: #fff !important;
}
.public-client-record-card .blank-document-links .btn {
  width: auto;
  justify-content: flex-start;
  padding-inline: .7rem;
}
.course-document-assignment-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: .5rem;
  max-height: 340px;
  overflow: auto;
  padding: .25rem;
  border: 1px solid var(--border, #d7dee8);
  border-radius: 10px;
  background: rgba(248, 250, 252, .75);
}
.course-document-assignment-tools {
  margin: .5rem 0 .55rem;
  max-width: 420px;
}
.course-document-assignment-option {
  align-items: flex-start;
  gap: .45rem;
  padding: .45rem .55rem;
  border: 1px solid rgba(148,163,184,.3);
  border-radius: 8px;
  background: #fff;
}
.course-document-assignment-option input {
  width: auto;
  margin-top: .15rem;
}
.course-document-assignment-option span,
.course-document-assignment-option small {
  display: block;
}
.course-document-assignment-option em {
  display: inline-flex;
  width: fit-content;
  margin-top: .18rem;
  padding: .08rem .38rem;
  border-radius: 999px;
  background: #e8f3ff;
  color: #0b5cad;
  font-size: .72rem;
  font-style: normal;
  font-weight: 800;
}
.course-document-assignment-option[hidden] {
  display: none !important;
}
.public-client-record-card .blank-document-links .label,
.public-client-record-card .course-document-group h3 {
  color: #fff;
}
.public-course-location {
  display: block;
  margin-top: .25rem;
  line-height: 1.35;
}
.client-login-card label {
  display: block;
  margin-top: .8rem;
}
.client-login-help {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, #d7dee8);
  text-align: center;
}
.client-login-help p {
  margin-bottom: 0;
}
.client-login-error {
  margin: 1rem 0;
  text-align: left;
}
