/* /Components/Controls/DropPicker.razor.rz.scp.css */
.drop-picker[b-c18f9jf663] {
    position: relative;
    display: inline-block;
}

/* Bootstrap's own .dropdown-menu has no top/left offset of its own - normally Popper.js
   supplies it at runtime. That's not loaded here, so without this the menu falls back to its
   flex "static position" instead of appearing below the button (see SplitButton.razor.css,
   which does the same thing for its own scope). */
.dropdown-menu[b-c18f9jf663] {
    top: 100%;
    left: 0;
    margin-top: 0.125rem;
}

.drop-picker-backdrop[b-c18f9jf663] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}
/* /Components/Controls/ModifierBadge.razor.rz.scp.css */
/* A plain-text (abbreviation) badge is still just text, which browsers default to an I-beam
   cursor and make selectable - this is an inert hover-for-info label, not editable text. */
.modifier-badge[b-kgd44mgg9r] {
    cursor: default;
    user-select: none;
}
/* /Components/Controls/ModifierBadgeGroup.razor.rz.scp.css */
.modifier-badge-group[b-cviwoh3vgk] {
    position: relative;
    display: inline-block;
}

.modifier-badge-trigger[b-cviwoh3vgk] {
    cursor: default;
    user-select: none;
}

.modifier-badge-popover[b-cviwoh3vgk] {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    background: var(--bs-body-bg, #fff);
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 0.375rem;
    padding: 0.35rem 0.5rem;
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.15);
    white-space: nowrap;
    gap: 0.35rem;
}

.modifier-badge-group:hover .modifier-badge-popover[b-cviwoh3vgk],
.modifier-badge-group:focus-within .modifier-badge-popover[b-cviwoh3vgk] {
    display: flex;
}
/* /Components/Controls/SplitButton.razor.rz.scp.css */
.split-button-backdrop[b-alux5kj7po] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

/* Bootstrap's own .dropdown-menu has no top/right offset of its own - normally Popper.js
   supplies it at runtime. That's not loaded here, so without this the menu falls back to
   its flex "static position" inside .btn-group, which reads as appearing on/above the
   button instead of below it. */
.dropdown-menu[b-alux5kj7po] {
    top: 100%;
    left: auto;
    right: 0;
    margin-top: 0.125rem;
}
/* /Components/Controls/TimeEntry.razor.rz.scp.css */
.time-entry-control[b-8ertr8hicr] {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    gap: 4px;
}

.time-entry-display[b-8ertr8hicr] {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: var(--bs-border-radius, 0.375rem);
    padding: 0.25rem 0.5rem;
    background-color: var(--bs-body-bg, #fff);
    outline: none;
}

.time-entry-display:focus[b-8ertr8hicr] {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.time-entry-sep[b-8ertr8hicr] {
    padding: 0 2px;
}

.time-entry-segment[b-8ertr8hicr] {
    padding: 0 2px;
    border-radius: 3px;
    cursor: pointer;
    font-variant-numeric: tabular-nums;
}

.time-entry-segment.active[b-8ertr8hicr] {
    background-color: #0d6efd;
    color: #fff;
}

.time-entry-panel[b-8ertr8hicr] {
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    margin-top: 4px;
    display: inline-flex;
}

.time-entry-col[b-8ertr8hicr] {
    max-height: 180px;
    overflow-y: auto;
    overflow-x: hidden;
    width: 56px;
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    border-top: 3px solid transparent;
}

.time-entry-col:last-child[b-8ertr8hicr] {
    border-right: none;
}

.time-entry-col.active-col[b-8ertr8hicr] {
    border-top-color: #0d6efd;
}

.time-entry-item[b-8ertr8hicr] {
    padding: 4px 0;
    text-align: center;
    cursor: pointer;
    user-select: none;
}

.time-entry-item:hover[b-8ertr8hicr] {
    background-color: rgba(13, 110, 253, 0.1);
}

.time-entry-item.selected[b-8ertr8hicr] {
    background-color: #0d6efd;
    color: #fff;
    font-weight: 600;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-i09u2ivuv8] {
  position: relative;
  display: flex;
  flex-direction: column;
}

main[b-i09u2ivuv8] {
  flex: 1;
  /* Flex items default to min-width:auto, which refuses to shrink below content's natural
     width - a wide table inside would grow the whole page instead of scrolling internally
     (e.g. inside .table-responsive) like it's supposed to. */
  min-width: 0;
}

.sidebar[b-i09u2ivuv8] {
  /*    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); */
  background-color: black;
}

.top-row[b-i09u2ivuv8] {
  background-color: black;
  border-bottom: 1px solid #d6d5d5;
  justify-content: space-between;
  height: 3.5rem;
  display: flex;
  align-items: center;
  /* Keep the top bar fixed at the top of the viewport when scrolling */
  position: sticky;
  top: 0;
  z-index: 1000;
}
.top-row-title[b-i09u2ivuv8] {
  color: gray;
}

  .top-row[b-i09u2ivuv8]  a, .top-row[b-i09u2ivuv8]  .btn-link {
    white-space: nowrap;
    margin-left: 1.5rem;
    text-decoration: none;
  }

    .top-row[b-i09u2ivuv8]  a:hover, .top-row[b-i09u2ivuv8]  .btn-link:hover {
      text-decoration: underline;
    }

    .top-row[b-i09u2ivuv8]  a:first-child {
      overflow: hidden;
      text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
  .top-row[b-i09u2ivuv8] {
    justify-content: space-between;
  }

    .top-row[b-i09u2ivuv8]  a, .top-row[b-i09u2ivuv8]  .btn-link {
      margin-left: 0;
    }
}

@media (min-width: 641px) {
  .page[b-i09u2ivuv8] {
    flex-direction: row;
  }

  .sidebar[b-i09u2ivuv8] {
    /* rem, not px, so the sidebar scales with the text-size setting (NavMenu.razor) */
    width: 17.1rem;
    /* Allow sidebar to grow with page content so the background continues to the bottom
       Removed fixed viewport height and sticky positioning to avoid internal scrolling */
  }

  .top-row[b-i09u2ivuv8] {
    position: sticky;
    top: 0;
    z-index: 1;
  }

    .top-row.auth[b-i09u2ivuv8]  a:first-child {
      flex: 1;
      text-align: right;
      width: 0;
    }

  .top-row[b-i09u2ivuv8], article[b-i09u2ivuv8] {
    padding-left: 2rem !important;
    padding-right: 1.5rem !important;
  }
}

#blazor-error-ui[b-i09u2ivuv8] {
  color-scheme: light only;
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

  #blazor-error-ui .dismiss[b-i09u2ivuv8] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
  }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-htjnhy98fd] {
  appearance: none;
  cursor: pointer;
  width: 3.5rem;
  height: 2.5rem;
  color: white;
  position: absolute;
  top: 0.5rem;
  right: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-htjnhy98fd] {
  background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-htjnhy98fd] {
  min-height: 3.5rem;
  background-color: rgba(0,0,0,0.4);
  /* Keep the small navbar (brand/title) fixed so the app title does not move */
  position: sticky;
  top: 0;
  z-index: 1020;
}

.navbar-brand[b-htjnhy98fd] {
  font-size: 1.1rem;
}

.theme-toggle-button[b-htjnhy98fd] {
  color: #dee2e6;
}

.text-size-control[b-htjnhy98fd] {
  position: relative;
}

.text-size-control .btn[b-htjnhy98fd] {
  color: #dee2e6;
  padding: 0.15rem 0.4rem;
}

.text-size-control .btn:disabled[b-htjnhy98fd] {
  opacity: 0.35;
}

.text-size-reset[b-htjnhy98fd] {
  font-size: 0.75rem;
}

/* Taken out of flow and revealed as a floating overlay on hover/focus, so the
   collapsed control always has a fixed footprint (just the reset icon) and
   never causes the top row to wrap at small text sizes. */
.text-size-button[b-htjnhy98fd] {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.6);
  border-radius: 0.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
  z-index: 2;
}

.text-size-button-left[b-htjnhy98fd] {
  right: 100%;
}

.text-size-button-right[b-htjnhy98fd] {
  left: 100%;
}

.text-size-control:hover .text-size-button[b-htjnhy98fd],
.text-size-control:focus-within .text-size-button[b-htjnhy98fd] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.fa-solid[b-htjnhy98fd] {
  display: inline-block;
  margin-right: 0.75rem;
  width: 1.25rem;
  color: inherit;
}
.nomargin[b-htjnhy98fd] {
  margin: 0;
}
.nopadding[b-htjnhy98fd] {
  padding: 0;
}

.nav-item[b-htjnhy98fd] {
  font-size: 0.9rem;
}

  .nav-item:first-of-type[b-htjnhy98fd] {
  }

  .nav-item:last-of-type[b-htjnhy98fd] {
    padding-bottom: 0.2rem;
  }

  .nav-item[b-htjnhy98fd]  .nav-link {
    color: #8f8f8f;
    background: none;
    border: none;
    border-radius: 4px;
    height: 2rem;
    display: flex;
    align-items: center;
    line-height: 3rem;
    width: 100%;
  }

  .nav-item[b-htjnhy98fd]  a.active {
    /* Keep active item visible but don't increase weight */
    color: #ffffff;
    font-weight: normal;
    background-color: rgba(255,255,255,0.06);
  }

  .nav-item[b-htjnhy98fd]  .nav-link:hover {
    background-color: rgba(255,255,255,0.12);
    color: #ffffff;
  }

.nav-scrollable[b-htjnhy98fd] {
  display: none;
}

.folder-toggle[b-htjnhy98fd] {
  padding-bottom: 0.25rem; /* space below the text for border */
  border-bottom: 1px solid #e6e6e6; /* light gray bottom border to indicate folder */
  margin-bottom: 0.25rem; /* small gap to next item */
}

.folder-toggle-button[b-htjnhy98fd] {
  margin-right: 0.1875em; /* smaller gap (~3px) using ems */
  line-height: 1; /* keep button tight */
}

.folder-toggle-link[b-htjnhy98fd] {
  padding-left: 0; /* remove extra padding so border aligns */
}

.navbar-toggler:checked ~ .nav-scrollable[b-htjnhy98fd] {
  display: block;
}

@media (min-width: 641px) {
  .navbar-toggler[b-htjnhy98fd] {
    display: none;
  }

  .nav-scrollable[b-htjnhy98fd] {
    /* Never collapse the sidebar for wide screens */
    display: block;
    /* Let the page handle scrolling; do not set fixed height/overflow so the sidebar
       background stretches with the main content. */
  }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-ca4yxub6s6],
.components-reconnect-repeated-attempt-visible[b-ca4yxub6s6],
.components-reconnect-failed-visible[b-ca4yxub6s6],
.components-pause-visible[b-ca4yxub6s6],
.components-resume-failed-visible[b-ca4yxub6s6],
.components-rejoining-animation[b-ca4yxub6s6] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-retrying[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-failed[b-ca4yxub6s6],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-ca4yxub6s6] {
    display: block;
}


#components-reconnect-modal[b-ca4yxub6s6] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-ca4yxub6s6 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-ca4yxub6s6 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-ca4yxub6s6 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-ca4yxub6s6]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-ca4yxub6s6 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-ca4yxub6s6 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-ca4yxub6s6 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-ca4yxub6s6 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-ca4yxub6s6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-ca4yxub6s6] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-ca4yxub6s6] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-ca4yxub6s6] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-ca4yxub6s6] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-ca4yxub6s6] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-ca4yxub6s6] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-ca4yxub6s6 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-ca4yxub6s6] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-ca4yxub6s6 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Club/SeriesResults/EntrantEditModal.razor.rz.scp.css */
/* Subtle zebra striping so adjacent attached modifiers are easy to tell apart - a neutral
   semi-transparent overlay (rather than a fixed light-grey) so it reads correctly in both light
   and dark theme without needing to know which is active. */
.modifier-row-even[b-zt9z0ol9z9] {
    background: rgba(127, 127, 127, 0.08);
}

.modifier-row-odd[b-zt9z0ol9z9] {
    background: transparent;
}
/* /Components/Pages/Club/SeriesResults/QuickResultEntry.razor.rz.scp.css */
.quick-entry-search[b-rc29tws126] {
    position: relative;
}

.quick-entry-dropdown[b-rc29tws126] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 10;
    max-height: 260px;
    overflow-y: auto;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.quick-entry-item[b-rc29tws126] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    cursor: pointer;
}

.quick-entry-item:hover[b-rc29tws126] {
    background-color: rgba(13, 110, 253, 0.1);
}

.quick-entry-item.highlighted[b-rc29tws126] {
    background-color: rgba(13, 110, 253, 0.2);
}

.quick-entry-sailno[b-rc29tws126] {
    font-weight: 600;
    min-width: 3.5rem;
}

.quick-entry-boat[b-rc29tws126] {
    color: var(--bs-secondary-color, #6c757d);
    min-width: 6rem;
}

.quick-entry-name[b-rc29tws126] {
    flex: 1;
}

.quick-entry-item.entered[b-rc29tws126] {
    opacity: 0.6;
}

.quick-entry-entered-badge[b-rc29tws126] {
    font-size: 0.75rem;
    color: #198754;
    white-space: nowrap;
}

.quick-entry-item mark[b-rc29tws126] {
    background-color: #fff3a0;
    padding: 0;
}
/* /Components/Pages/Club/SeriesResults/ResultEditModal.razor.rz.scp.css */
/* Subtle zebra striping so adjacent attached modifiers are easy to tell apart - a neutral
   semi-transparent overlay (rather than a fixed light-grey) so it reads correctly in both light
   and dark theme without needing to know which is active. */
.modifier-row-even[b-hozcsn1vpa] {
    background: rgba(127, 127, 127, 0.08);
}

.modifier-row-odd[b-hozcsn1vpa] {
    background: transparent;
}
/* /Components/Pages/Club/SeriesResults/SeriesGrid.razor.rz.scp.css */
/* table-bordered sets border-collapse:collapse, which stops position:sticky from working on
   table cells in most browsers - separate borders (with 0 spacing, so nothing visually shifts)
   is what actually lets the sticky columns hold still while the races section scrolls. */
table[b-0x4ittf9un] {
    border-collapse: separate;
    border-spacing: 0;
}

.race-header[b-0x4ittf9un] {
    cursor: pointer;
    white-space: nowrap;
    min-width: 100px;
}

.race-header:hover[b-0x4ittf9un] {
    background-color: rgba(13, 110, 253, 0.15);
}

.race-header-draft[b-0x4ittf9un] {
    background-color: #495057;
    color: #fff;
}

.race-header-draft:hover[b-0x4ittf9un] {
    background-color: #3d4247;
}

.race-header-draft small[b-0x4ittf9un] {
    color: #ced4da !important;
}

.race-header-provisional[b-0x4ittf9un] {
    background-color: #b200ff;
}

.race-header-provisional:hover[b-0x4ittf9un] {
    background-color: #ca5df9;
}

.race-header-icons[b-0x4ittf9un] {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
    margin-bottom: 2px;
}

.race-icon-btn[b-0x4ittf9un] {
    background: none;
    border: none;
    padding: 0 2px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.6;
}

.race-icon-btn:hover:not(:disabled)[b-0x4ittf9un] {
    opacity: 1;
}

.race-icon-btn:disabled[b-0x4ittf9un] {
    cursor: not-allowed;
    opacity: 0.3;
}

.visibility-hidden[b-0x4ittf9un] {
    color: #6c757d;
}

.visibility-members[b-0x4ittf9un] {
    color: #fd7e14;
}

.visibility-public[b-0x4ittf9un] {
    color: #198754;
}

.result-cell[b-0x4ittf9un] {
    cursor: pointer;
}

.result-cell:hover[b-0x4ittf9un] {
    background-color: rgba(13, 110, 253, 0.15);
}

/* Skipper/Boat/Sail No/Yardstick/Total stay pinned via position:sticky so only the races
   section (which can be arbitrarily wide) scrolls, inside the existing .table-responsive
   horizontal scroll container. The table uses auto layout, so real column widths depend on
   content - "left" is measured and set at runtime (see SeriesGrid's JS interop); only
   .col-total's "right:0" is a fixed anchor and doesn't need measuring. */
.col-skipper[b-0x4ittf9un], .col-boat[b-0x4ittf9un], .col-sailno[b-0x4ittf9un], .col-yardstick[b-0x4ittf9un], .col-total[b-0x4ittf9un], .col-skipper-group[b-0x4ittf9un] {
    position: sticky;
    z-index: 2;
    background-color: var(--bs-table-bg, var(--bs-body-bg));
}

.col-skipper-group[b-0x4ittf9un] {
    left: 0;
}

.col-skipper[b-0x4ittf9un], .col-skipper-group[b-0x4ittf9un] {
    min-width: 160px;
}

.col-boat[b-0x4ittf9un] {
    min-width: 140px;
}

.col-sailno[b-0x4ittf9un], .col-yardstick[b-0x4ittf9un], .col-total[b-0x4ittf9un] {
    min-width: 80px;
}

.col-total[b-0x4ittf9un] {
    right: 0;
}

td.Drop[b-0x4ittf9un] {
    color: green !important;
    text-decoration: line-through;
}

td.DUT[b-0x4ittf9un] {
    color: red;
}

td.DNC[b-0x4ittf9un] {
    color: lightblue;
}

td.DNF[b-0x4ittf9un] {
    color: coral;
}

td.DNS[b-0x4ittf9un] {
    color: coral;
}

td.ABN[b-0x4ittf9un] {
    background-color: #3d4247;
    color: grey;
}
/* /Components/Pages/Public/RaceResultSection.razor.rz.scp.css */
.race-result-section[b-xg6eljqlkt] {
    position: relative;
    margin-bottom: 2rem;
}

.public-results-table[b-xg6eljqlkt] {
    width: auto;
    table-layout: auto;
    word-break: break-word;
}

/* Headers never wrap to a second line, even if that pushes the table wider than the viewport -
   the surrounding .table-responsive wrapper (see RaceResultSection.razor) scrolls horizontally
   instead of every column title squeezing down to fit. */
.public-results-table th[b-xg6eljqlkt] {
    white-space: nowrap;
}

.race-header-draft[b-xg6eljqlkt] {
    background-color: #495057;
    color: #fff;
}

.race-header-draft small[b-xg6eljqlkt] {
    color: #ced4da !important;
}

.race-header-provisional[b-xg6eljqlkt] {
    background-color: #b200ff;
}

/* Tints the whole race section (header, banner and results table alike) so a provisional race
   visually reads as "not final yet" at a glance, on top of the text banner already saying so. */
.provisional-overlay[b-xg6eljqlkt]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-color: rgba(178, 0, 255, 0.1);
}

/* Same idea for a privileged viewer's early Draft preview - a plain 10% grey wash rather than
   the provisional purple, since nothing is being asserted about the results yet. */
.draft-overlay[b-xg6eljqlkt]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-color: rgba(128, 128, 128, 0.1);
}

.division-row th[b-xg6eljqlkt] {
    vertical-align: middle;
}

td.DNC[b-xg6eljqlkt] {
    color: lightblue;
}

td.DNF[b-xg6eljqlkt], td.DNS[b-xg6eljqlkt] {
    color: coral;
}

td.DUT[b-xg6eljqlkt] {
    color: red;
}

td.ABN[b-xg6eljqlkt] {
    background-color: #3d4247;
    color: grey;
}
/* /Components/Pages/Public/SeriesStandings.razor.rz.scp.css */
.public-results-table[b-w7q9mljk81] {
    width: auto;
    table-layout: auto;
    word-break: break-word;
}

/* Headers never wrap to a second line, even if that pushes the table wider than the viewport -
   the surrounding .table-responsive wrapper (see SeriesStandings.razor) scrolls horizontally
   instead of every column title squeezing down to fit. */
.public-results-table th[b-w7q9mljk81] {
    white-space: nowrap;
}

.col-rank[b-w7q9mljk81] {
    text-align: center;
}

.race-header-col a[b-w7q9mljk81] {
    text-decoration: none;
}

.division-row th[b-w7q9mljk81] {
    vertical-align: middle;
}

.division-row .d-flex[b-w7q9mljk81] {
    gap: 1rem;
}

/* Tints a whole race column (header, division-row cell, every score cell) for a Draft/Provisional
   race - box-shadow rather than background-color so it composites over whatever background a
   cell already has (e.g. td.ABN's dark background below) instead of replacing it outright. */
.col-provisional[b-w7q9mljk81] {
    box-shadow: inset 0 0 0 999px rgba(178, 0, 255, 0.1);
}

.col-draft[b-w7q9mljk81] {
    box-shadow: inset 0 0 0 999px rgba(128, 128, 128, 0.1);
}

td.Drop[b-w7q9mljk81] {
    color: green !important;
    text-decoration: line-through;
}

td.DUT[b-w7q9mljk81] {
    color: red;
}

td.DNC[b-w7q9mljk81] {
    color: lightblue;
}

td.DNF[b-w7q9mljk81] {
    color: coral;
}

td.DNS[b-w7q9mljk81] {
    color: coral;
}

td.ABN[b-w7q9mljk81] {
    background-color: #3d4247;
    color: grey;
}
