/* club overrides */

.landing-logo {
  max-width: 400px;
}


/* general overrides */
.homepage-header {
  background-image: url("/assets/images/chi_race_1k5x600x100pct.jpg");
  background-position: center;
  height: 600px;
}

.profile-header .container-inner {
  max-width: 400px;
}

.feature-container {
  box-sizing: border-box;
}

.feature-container .feature-image img {
  max-width: 300px;
}

.feature-container .feature-content {
  width: auto;
}

.highlight {
    background-color: #fff;
    border-color: #d3e0e9;
}

.list-group-item .glyphicon {
  line-height: 1.4;
}

/* Accept Cookies Banner */
.cookie-alert {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 !important;
  z-index: 999;
  opacity: 0;
  border-radius: 0;
  transform: translateY(100%);
  transition: all 500ms ease-out;
  color: #ecf0f1;
  background: #212327;
}

.cookie-alert.show {
  opacity: 1;
  transform: translateY(0%);
  transition-delay: 1000ms;
}

.cookie-alert a {
  text-decoration: underline
}

.cookie-alert .accept-cookies {
  margin-left: 10px;
  vertical-align: baseline;
}

/* navbar */
.app-navbar {
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  padding-top: 4px;
  padding-bottom: 4px;
}
.app-navbar .form-control {
  box-shadow: none;
}
.app-navbar .navbar-brand {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.app-navbar .navbar-brand img {
  height: 40px;
}
.app-navbar .navbar-collapse {
  max-height: inherit;
}
.app-navbar .navbar-collapse:after {
  height: 100vh;
}
.app-navbar .form-control {
  border-color: #1C73A5;
}
.app-navbar .app-notifications {
  margin-left: 1rem;
  padding-bottom: 4px !important;
  padding-top: 4px !important;
}
.app-notifications .icon:before {
  font-size: 20px;
}
.app-search {
  margin-top: -1px;
  padding-left: 15px;
  padding-right: 15px;
}

@media (min-width: 768px) {
  .app-navbar .navbar-collapse:after {
    height: auto;
  }
}
@media (max-width: 768px) {
  .app-search {
    margin-top: -1px;
  }
}

.search-clear {
  margin-left: -37px;
  z-index: 100;
}

/* Results match navigator (floating pill, browser-find style) */
.results-match-nav {
  position: fixed;
  z-index: 1035;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 6px;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
  font-size: .875rem;
}
.results-match-nav .rmn-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  border-radius: 999px;
}
.results-match-nav .rmn-btn:hover,
.results-match-nav .rmn-btn:focus {
  background-color: rgba(0, 0, 0, .06);
  outline: none;
}
.results-match-nav .rmn-count {
  font-variant-numeric: tabular-nums;
  min-width: 3.5em;
  text-align: center;
  white-space: nowrap;
}
/* Current series name — only rendered when matches span 2+ series.
   Fixed display length; full name is on the title attribute. */
.results-match-nav .rmn-series {
  max-width: 12ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-left: 6px;
  border-left: 1px solid rgba(0, 0, 0, .15);
  color: #6c757d;
}
.results-match-nav .rmn-close {
  margin-left: 2px;
}

@media (min-width: 768px) {
  /* JS sets `top` inline (live navbar height + 12); CSS anchors the right edge. */
  .results-match-nav {
    right: 16px;
    left: auto;
    bottom: auto;
  }
}
@media (max-width: 767.98px) {
  .results-match-nav {
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    /* !important: JS may leave an inline `top` from a prior desktop layout;
       fixed + top + bottom would stretch the pill to full viewport height. */
    top: auto !important;
    right: auto;
  }
  /* less room in the bottom-center pill on mobile */
  .results-match-nav .rmn-series {
    max-width: 8ch;
  }
}

/* Current match — stronger than the pale .table-success on all matches.
   Bootstrap's `.table-success > *` uses !important, so this must too. */
tr.current-match > * {
  background-color: #fff3cd !important;
}
tr.current-match > :first-child {
  box-shadow: inset 3px 0 0 0 #f0ad4e;
}

/* misc */
.app-login-form {
  max-width: 350px;
}
.app-new-msg {
  margin-right: 10px;
}
.app-brand {
  width: 40%;
  display: inline-block;
}
.app-brand img {
  width: 100%;
}

.navbar-static-top {
  margin-bottom: 19px;
}

.content-middle {
  vertical-align: middle;
}

.weight-normal {
  font-weight: 300 !important;
}

.m-t-6 {
  margin-top: 6px !important;
}

.p-y-6 {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

/*
 * Authentication - Silhouette
 */
.social-providers,
.sign-in-now,
.already-member,
.not-a-member {
  text-align: center;
  margin-top: 20px;
}

.provider {
  display: inline-block;
  width: 64px;
  height: 64px;
  border-radius: 4px;
  outline: none;
}
.facebook { background: #3B5998; }
.google { background: #D14836; }
.twitter { background: #00ACED; }
.yahoo { background: #731A8B; }
.xing { background: #006567; }
.vk { background: #567ca4; }

/**
  * New Login / Registration Forms
 */
form .login-divider:before {
  content: "";
  border-bottom: 1px solid #666e76;
  height: 0;
  width: 44%;
  position: absolute;
  left: 0;
  top: 11px;
}
form .login-divider:after {
  content: "";
  border-bottom: 1px solid #666e76;
  height: 0;
  width: 44%;
  position: absolute;
  right: 0;
  top: 11px;
}

form .login-divider--no-lines:before,
form .login-divider--no-lines:after {
  display: none;
}

.last-used-bar {
  background-color: #007bff;
  color: #fff;
  font-size: 0.75rem;
  text-align: center;
  padding: 2px 0;
  border-radius: 0 0 4px 4px;
}

form .login-divider {
  float: left;
  display: block;
  width: 100%;
  text-align: center;
  color: #666e76;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 0 5px;
  margin: 10px 0;
  position: relative;
}
.button-google {
  border: 1px solid #d34836;
  color: #d34836;
  display: inline-block;
  background-color: transparent;
  text-decoration: none;
  text-shadow: none;
  background-clip: padding-box;
  text-align: center;
  outline: none;
  position: relative;
}
.button-facebook {
  border: 1px solid #3b5a9b;
  color: #3b5a9b;
  display: inline-block;
  background-color: transparent;
  text-decoration: none;
  text-shadow: none;
  background-clip: padding-box;
  text-align: center;
  outline: none;
  position: relative;
}
.button-facebook span, .button-google span {
  background-size: 15px;
  background-repeat: no-repeat;
  display: inline-block;
  height: 15px;
  margin: 0 0 0 .3em;
  vertical-align: sub;
  width: 15px;
}
.button-google:hover:not(:disabled) {
  -webkit-box-shadow: none;
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
  color: #d66a5c;
  border: 1px solid #d66a5c;
  background-color: transparent;
}
.button-facebook:hover:not(:disabled) {
  -webkit-box-shadow: none;
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
  color: #4b6db3;
  border: 1px solid #4b6db3;
  background-color: transparent;
}
.button-facebook:hover:not(:disabled), .button-google:hover:not(:disabled) {
  background-color: #fff;
}

.button-google span {
  background-image: url("/assets/images/providers/google_button_icon.png");
}
.button-facebook span {
  background-image: url("/assets/images/providers/facebook_button_icon.png");
}

meter {
  /* Reset the default appearance */
  -moz-appearance: none;
  appearance: none;

  margin: 0 auto 1em;
  width: 100%;
  height: .5em;

  /* Applicable only to Firefox */
  background: none;
  background-color: rgba(0,0,0,0.1);
}

meter::-webkit-meter-bar {
  background: none;
  background-color: rgba(0,0,0,0.1);
}

meter[value="0"]::-webkit-meter-optimum-value,
meter[value="1"]::-webkit-meter-optimum-value { background: red; }
meter[value="2"]::-webkit-meter-optimum-value { background: orange; }
meter[value="3"]::-webkit-meter-optimum-value { background: yellow; }
meter[value="4"]::-webkit-meter-optimum-value { background: green; }

meter::-webkit-meter-even-less-good-value { background: red; }
meter::-webkit-meter-suboptimum-value { background: orange; }
meter::-webkit-meter-optimum-value { background: green; }

meter[value="1"]::-moz-meter-bar,
meter[value="1"]::-moz-meter-bar { background: red; }
meter[value="2"]::-moz-meter-bar { background: orange; }
meter[value="3"]::-moz-meter-bar { background: yellow; }
meter[value="4"]::-moz-meter-bar { background: green; }

meter::-webkit-meter-optimum-value {
  transition: width .4s ease-out;
}

th.rotate {
  height: 120px;
  white-space: nowrap;
}
th.rotate > span > div {
  transform: rotate(270deg);
  width: 10px;
}
th.rotate > span > div > span {
  padding: 5px 5px;
}

.status > span {
  width: 30px;
  height: 30px;
}

.status > span > .info {
  background-color: #d9edf7;
}

.top-buffer { margin-top:20px; }

.table tbody > tr > td.vert-align{
  vertical-align: middle;
  width: 250px
}

.sfilter {
  float: left !important;
}

/*
 * Signup/confirmation buttons
 */
.opt-available, .btn-available {
  color: #31708f;
  opacity: 1;
}
.btn-available.active {
  background-color: #d9edf7 !important;
  border-color: #bce8f1 !important;
}
.opt-maybe, .btn-maybe {
  color: #8a6d3b;
}
.btn-maybe.active {
  background-color: #fcf8e3 !important;
  border-color: #faebcc !important;
}
.opt-unavailable, .btn-unavailable {
  color: #a94442;
}
.btn-unavailable.active {
  background-color: #f2dede !important;
  border-color: #ebccd1 !important;
}
.opt-confirmed, .btn-confirmed {
  color: #3c763d;
}
.btn-confirmed.active, .btn-confirmed.disabled.active
{
  background-color: #dff0d8 !important;
  border-color: #d6e9c6 !important;
}

.opt-standby, .btn-standby {
  color: #8a6d3b;
}
.btn-standby.active, .btn-standby.disabled.active {
  background-color: #fcf8e3 !important;
  border-color: #faebcc !important;
}
.opt-unknown, .btn-unknown {
  color: #333;
}
.btn-unknown.active {
  background-color: #eeeeee;
  border-color: #adadad;
}

/**
  * Icon ring
 */

.icon-ring {
  width: 30px;
  height: 30px;
  /*border-radius: 50%;
  border: 4px solid white;
  color: white;*/
  display: inline-table;
  text-align: center;
}
/**CSS FOR ICON WITH NO BACKGROUND COLOR**/

.icon-ring .icon-bordered {
  font-size: 14px;
  vertical-align: middle;
  display: table-cell;
}
/**WITH AN ADDED BACKGROUND COLOR**/

.icon-white {
  background: white;
  color: black;
  border: 4px solid black;
}
.icon-teal {
  background: teal;
  color: orange;
}
.icon-red {
  background: red;
}

/** Set all data table content to white background **/
table.dataTable thead tr th {
  background-color: #ffffff;
}

table.dataTable.link-rows tbody tr {
  cursor: pointer;
}

table.dataTable tbody tr:not(.selected):not(.info) td {
  background-color: #ffffff;
}

div.dt-container div.dt-length label {
  font-weight: 300 !important;
}

div.dropdown-menu.dt-button-collection {
  width: max-content !important;
}

/*table td, table th {*/
/*  font-size: 14px;*/
/*  font-weight: 300;*/
/*}*/

/** Multi-field boxes */
.input-multi-field {
  width: 100% !important;
}

.input-group-joiner {
  display: table-cell;
}

/** Phone field skinning  **/
.iti-flag {background-image: url("/assets/images/flags.png") !important;}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .iti-flag {background-image: url("/assets/images/flags@2x.png") !important;}
}

.intl-tel-input .country-list {
  z-index: 99 !important;
}

.intl-tel-input {
  width: 100% !important;
}

.select-index {
  z-index: 2 !important;
}


/** Discover Boat/Crew: Boat Finder, Crew Finder **/
@media (min-width: 992px) {
  #filter-panel.collapse,
  #applied-filter-panel.collapse {
    display: block;
  }
}

.filters {
  list-style: none;
}

.filter-content a {
  color: #ffffff;
}

.filter-content a:hover {
  text-decoration: none;
}

/* */
.multi-checkbox-list.inline>div {
  display:inline-block;
  margin-right:20px
}

/* PDF Exports */
.body-report {
  background: #FFFFFF !important;
}
.container-report {
  width: 700px !important;
  max-width: 700px !important;
  background: #FFFFFF;
}

.table-report th {
  font-weight: bold;
}

.keep-together {
  page-break-inside: avoid;
}

.break-before {
  page-break-before: always;
}

.break-after {
  page-break-after: always;
}

.row-report {
  height: 80px;
}

.header-box {
  height: 105px;
}

.header-qrcode {
  position: absolute;
  top: 0;
  right: 0;
  height: 100px;
}


.notes-container {
  height: 300px;
}

/* PWA iOS Install Modal */
.pwa-logo {
  height: 80px;
}
.pwa-share-icon {
  height: 22px;
}

.pwa-footer {
  background: #f5f8fa;
}

/* Enabling collapse divs to work on iOS */
[data-toggle~="collapse"] {
  cursor: pointer;
}

/* Signup tables, hide active buttons and inputs under fixed left column */
.btn-group > .btn.active,
.btn-group-vertical > .btn.active,
.input-group .form-control {
  z-index: 0 !important;
}

/* Vertical button group on the md breakpoint (767px) */
@media only screen and (max-width: 767px) {
  .btn-group-md-vertical {
    display: block;
  }

  .btn-group-md-vertical .btn {
    display: block;
    float: none;
    width: 100%;
  }
}

.no-wrap {
  white-space: nowrap;
}

.pre-wrap {
  white-space: pre-wrap;
}

.ql-editor {
  min-height: 150px;
  max-height: 300px;
  font-size: 14px;
}

.ql-container.ql-snow {
  height: auto;
}

/* Tighten up the message list in the messages drop-down */
.media-body-text p {
  margin-bottom: 0;
}

.image-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(2.25rem + 2px);
  margin-bottom: 0;
}

.image-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(2.25rem + 2px);
  margin: 0;
  opacity: 0;
}

.image-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(2.25rem + 2px);
  padding: .375rem .75rem;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: .25rem;
}
.image-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(calc(2.25rem + 2px) - 1px * 2);
  padding: .375rem .75rem;
  line-height: 1.5;
  color: #495057;
  content: "Browse";
  background-color: #e9ecef;
  border-left: 1px solid #ced4da;
  border-radius: 0 .25rem .25rem 0;
}

.filter .badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  background-color: #337ab7;
  border-radius: 10px;
  float: right;
}

.filter .node-selected .badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  background-color: #34495e;
  border-radius: 10px;
  float: right;
}

.filter .node-selected{
  background-color: #ecf0f1 !important;
  color: #000!important;
}
.list-img{
  width: 100%;
  height: auto;
}

.img-bordered {
  border: 1px solid #ced4da;
}

.rm-icon::before {
  position: relative;
  top: 2px;
  display: inline-block;
  speak: none;
  font-size: 100%;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.rm-icon-summary {
  font-size: 1.5rem;
}

@font-face {
  font-family: 'rm-icons';
  src:  url('/assets/fonts/rm-icons.eot?o6yllk');
  src:  url('/assets/fonts/rm-icons.eot?o6yllk#iefix') format('embedded-opentype'),
  url('/assets/fonts/rm-icons.ttf?o6yllk') format('truetype'),
  url('/assets/fonts/rm-icons.woff?o6yllk') format('woff'),
  url('/assets/fonts/rm-icons.svg?o6yllk#rm-icons') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="rm-"], [class*=" rm-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'rm-icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.rm-drinks-circle:before {
  content: "\e903";
}
.rm-confirmed-circle:before {
  content: "\e906";
}
.rm-confirmed:before {
  content: "\e906";
}
.rm-unknown-circle:before {
  content: "\e907";
}
.rm-guests-circle:before {
  content: "\e900";
}
.rm-guest:before {
  content: "\e901";
}
.rm-available-circle:before {
  content: "\e902";
}
.rm-available:before {
  content: "\e902";
}
.rm-confirmed-count:before {
  content: "\e904";
}
.rm-confirmed-weight:before {
  content: "\e905";
}
.rm-race-time:before {
  content: "\41";
}
.rm-leave-dock-time:before {
  content: "\42";
}
.rm-meet-time:before {
  content: "\43";
}
.rm-guests:before {
  content: "\45";
}
.rm-standby-circle:before {
  content: "\46";
}
.rm-standby:before {
  content: "\46";
}
.rm-location:before {
  content: "\47";
}
.rm-date:before {
  content: "\49";
}
.rm-drinks:before {
  content: "\4a";
}
.rm-food-circle:before {
  content: "\4b";
}
.rm-maybe-circle:before {
  content: "\4f";
}
.rm-maybe:before {
  content: "\4f";
}
.rm-standby:before {
  content: "\50";
}
.rm-unavailable-circle:before {
  content: "\51";
}
.rm-unavailable:before {
  content: "\51";
}
.rm-unknown:before {
  content: "\53";
}

/* Datatables sort arrows
 * We use the Bootstrap Application Theme, they replaced FontAwesome with Entypo
 * But the same approach to overriding the CSS applies here: https://datatables.net/blog/2014-06-06
 * Nov-2024: adding sorting icons for sorting generic divs - initially race result entry
 **/
table.dataTable thead th,
div.table-container div.table-head {
  position: relative;
  background-image: none !important;
}

table.dataTable thead th.sorting:after,
table.dataTable thead th.sorting_asc:after,
table.dataTable thead th.sorting_desc:after,
div.table-container .table-head .sorting:after,
div.table-container .table-head .sorting_asc:after,
div.table-container .table-head .sorting_desc:after {
  position: absolute;
  top: 12px;
  right: 8px;
  display: block;
  font-family: "toolkit-entypo";
}

table.dataTable thead th.sorting:after,
div.table-container .table-head .sorting:after{
  content: "\EB3E";
  /*color: #ddd;*/
  font-size: 0.8em;
  padding-top: 0.12em;
}
table.dataTable thead th.sorting_asc:after,
div.table-container .table-head .sorting_asc:after {
  content: "\EB77";
}
table.dataTable thead th.sorting_desc:after,
div.table-container .table-head .sorting_desc:after {
  content: "\EB74";
}
table.dataTable thead th.sorting:after,
table.dataTable thead th.sorting_asc:after,
table.dataTable thead th.sorting_desc:after,
div.table-container .table-head .sorting:after,
div.table-container .table-head .sorting_asc:after,
div.table-container .table-head .sorting_desc:after {
  position: inherit;
  display: inline;
}
table.dataTable thead th.sorting:after,
table.dataTable thead th.sorting_asc:after,
table.dataTable thead th.sorting_desc:after {
  right: -.5em;
}

table.table thead th.sorting_asc:after,
table.table thead th.sorting_desc:after {
  top: 0;
}

div.table-container .table-head .sorting:after {
  font-size: 1.0em;
  position: absolute;
  top: 0.5rem;
  bottom: 0;
  width: 12px;
  opacity: .6;
  line-height: 9px;
}

.table-body .result-entry { border-bottom: 1px solid #e7ebee; }
.table-body .result-entry:last-child{ border-bottom: none; } /* padding: 0 0 10px 46px; */


table.dataTable td > i {
  margin-left: 0.5em;
  opacity: 0.3;
  float: right;
  cursor: pointer;
}

/** JQuery Table Sort - sort arrows
 */
th.sorted.ascending:after {
  content: " \2191";
}

th.sorted.descending:after {
  content: " \2193";
}

/* Crew and Boat Finder summary background */
.bg-lightblue{
  background-color: #ebf6fc;
}

/* General helper to place things in the top right corner*/
.top-right {
  position: absolute;
  right: 0;
  top: 0
}

.profile-img {
  max-width: 100px;
  border-radius: 100%;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}

/* generic helper to render newlines in messages */
.nl2br {
  white-space: pre-line;
}

/* Clamp long formatted summary/motto content on discovery cards so it doesn't blow up card height */
.summary-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.summary-clamp-sm {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.recipient:first-child:not(:last-child) {
  padding-right: 0;
}
.recipient:not(:first-child):not(:last-child) {
  padding-left: 0;
  padding-right: 0;
}
.recipient:last-child:not(:first-child) {
  padding-left: 0;
}

/* Bootstrap collapse - support state labels */
[aria-expanded="false"] > .expanded,
[aria-expanded="true"] > .collapsed {
  display: none;
}
/* BS Collapse, allow for default open state - MD breakpoint
   Breakpoints: https://getbootstrap.com/docs/4.6/layout/overview/#containers */
@media (min-width: 768px) {
  .collapse.collapse-reverse.show {display:none!important}
  .collapse.collapse-reverse:not(.show) {display:block!important}
}

/* Bootstrap 4.2 backport */
.mt-n1 {
  margin-top: -0.25rem !important;
}
.mt-n2 {
  margin-top: -0.5rem !important;
}
.mt-n3 {
  margin-top: -1rem !important;
}
.mt-n4 {
  margin-top: -1.5rem !important;
}
.mt-n5 {
  margin-top: -3.75rem !important;
}
.mt-n6 {
  margin-top: -4rem !important;
}
.mt-n7 {
  margin-top: -6rem !important;
}

/* Charts */
.h-200 {
  height: 200px !important;
}

.race-col-header .race-link {
    text-decoration: underline;
    font-weight: 600;
}
.race-col-header .race-link:hover {
    text-decoration: underline;
}

/* ===================== #426 Mobile fleet-results cards ( < md ) ===================== */
.frc-fleet {
    margin-bottom: 1.5rem;
}
.frc-fleet-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    border-bottom: 1px solid #dee2e6;
    padding-bottom: .25rem;
    margin-bottom: .5rem;
}
.frc-fleet-head h6 {
    font-weight: 600;
}
.frc-boatcount {
    font-size: .8rem;
    flex: none;
}
.frc-fleet.frc-collapsed .frc-latest,
.frc-fleet.frc-collapsed .frc-spark,
.frc-fleet.frc-collapsed .frc-mini-head,
.frc-fleet.frc-collapsed .frc-cardlist,
.frc-fleet.frc-collapsed .frc-roster {
    display: none;
}

/* Latest-race banner */
.frc-latest {
    background-color: #fff3cd;
    border-radius: .375rem;
    padding: .5rem .625rem;
    margin-bottom: .625rem;
    font-size: .8rem;
    line-height: 1.5;
}
.frc-latest-pending {
    background-color: #e9ecef;
}
.frc-latest-notstarted {
    background-color: #e2e3e5;
}
.frc-latest-complete {
    background-color: #d4edda;
}
.frc-latest-label {
    font-weight: 600;
}
.frc-podium {
    display: block;
}
.frc-podium-spot {
    margin-right: .625rem;
    white-space: nowrap;
}
.frc-latest-link {
    white-space: nowrap;
}

/* Sparkline */
.frc-spark {
    border: 1px solid #dee2e6;
    border-radius: .375rem;
    padding: .5rem .625rem;
    margin-bottom: .625rem;
    color: #6c757d;
}
.frc-spark-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .375rem;
}
.frc-spark-cap {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6c757d;
}
.frc-spark-pick {
    margin: 0;
    flex: 0 1 11rem;
    min-width: 0;
}
.frc-spark-pick .custom-select {
    font-size: .75rem;
    height: calc(1.5em + .5rem + 2px);
    padding-top: .15rem;
    padding-bottom: .15rem;
}
.frc-spark svg {
    display: block;
    width: 100%;
    height: 72px;
}
.frc-spark .frc-spark-line.frc-spark-me {
    stroke: #b5532e;
    stroke-width: 2.5;
    opacity: 1;
}
.frc-spark .frc-spark-dot {
    stroke: #b5532e;
    fill: #b5532e;
}

/* Sticky mini-header */
.frc-mini-head {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 3;
    background-color: #fff;
    border-bottom: 1px solid #dee2e6;
    padding: .25rem 0;
    font-size: .75rem;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    gap: .5rem;
}
.frc-mini-cols {
    font-weight: 400;
    color: #6c757d;
}

/* Card */
.frc-card {
    border: 1px solid #dee2e6;
    border-radius: .5rem;
    padding: .5rem .625rem;
    margin: .5rem 0;
    background-color: #fff;
}
.frc-card-me {
    border-color: #b5532e;
    box-shadow: 0 0 0 1px #b5532e;
}
.frc-row1 {
    display: flex;
    align-items: baseline;
    gap: .375rem;
}
.frc-pos {
    font-weight: 700;
    font-size: 1.15rem;
    color: #b5532e;
    font-variant-numeric: tabular-nums;
    flex: none;
}
.frc-move {
    font-size: .8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    flex: none;
}
.frc-move-up {
    color: #28a745;
}
.frc-move-down {
    color: #dc3545;
}
.frc-move-hold {
    color: #6c757d;
}
.frc-name {
    font-weight: 700;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.frc-total {
    color: #6c757d;
    font-variant-numeric: tabular-nums;
    flex: none;
}
.frc-sub {
    color: #6c757d;
    font-size: .8rem;
    margin: .125rem 0 .375rem;
}
.frc-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
}
.frc-chip {
    display: inline-block;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: .25rem;
    padding: .0625rem .3125rem;
    font-size: .75rem;
    font-variant-numeric: tabular-nums;
    color: #212529;
    text-decoration: none;
    white-space: nowrap;
}
a.frc-chip:hover {
    text-decoration: none;
    background-color: #e9ecef;
    color: #212529;
}
.frc-chip-drop {
    color: #6c757d;
    text-decoration: line-through;
}
.frc-chip-pen {
    border-color: #dc3545;
    color: #dc3545;
}
.frc-chip-latest {
    border-color: #b5532e;
    border-width: 2px;
    padding: 0 .25rem;
}
.frc-chip-abd,
.frc-chip-empty {
    color: #adb5bd;
}
.frc-more-toggle {
    background: none;
    border: none;
    color: #007bff;
    font-size: .75rem;
    padding: .0625rem .25rem;
    cursor: pointer;
}
.frc-standings {
    color: #6c757d;
    font-size: .8rem;
    margin-top: .375rem;
}
.frc-standings .frc-dot {
    margin: 0 .25rem;
}

/* Not-scored roster — lightweight rows, no card chrome */
.frc-roster {
    margin: .5rem 0;
}
.frc-roster-head {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6c757d;
    padding: .25rem 0;
    border-bottom: 1px solid #dee2e6;
}
.frc-roster-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .375rem;
    padding: .375rem .25rem;
    border-bottom: 1px solid #f1f3f5;
}
.frc-roster-row.frc-card-me {
    border: 1px solid #b5532e;
    border-radius: .375rem;
    box-shadow: 0 0 0 1px #b5532e;
}
.frc-roster-name {
    font-weight: 600;
}
.frc-roster-sub {
    font-size: .8rem;
}
.frc-roster-row.table-success {
    background-color: #d4edda;
}
.frc-roster-row.current-match {
    background-color: #fff3cd;
    box-shadow: inset 3px 0 0 0 #f0ad4e, 0 0 0 1px #f0ad4e;
}

/* Search highlight — card equivalents of .table-success / .current-match */
.frc-card.table-success {
    background-color: #d4edda;
    border-color: #b1dfbb;
}
.frc-card.current-match {
    background-color: #fff3cd;
    box-shadow: inset 3px 0 0 0 #f0ad4e, 0 0 0 1px #f0ad4e;
}

/* ===================== #426 Desktop fleet-results enrichments ( >= md ) ===================== */
@media (min-width: 768px) {
    /* On desktop the frc-latest elements read as captions above the table, not
       full-width alerts. Drop the solid mobile fill; keep a thin left rule. */
    .frc-latest-desktop {
        max-width: 640px;
        font-size: .8125rem;
        margin-top: .25rem;
        margin-bottom: .75rem;
        padding: .125rem 0 .125rem .625rem;
        background-color: transparent;
        border-radius: 0;
        border-left: 3px solid #ced4da;
    }
    .frc-latest-desktop.frc-latest-complete {
        border-left-color: #a3cfbb;
    }
    .frc-latest-desktop.frc-latest-notstarted,
    .frc-latest-desktop.frc-latest-pending {
        border-left-color: #ced4da;
    }
    .frc-latest-desktop .frc-podium {
        display: inline;
    }
    .frc-latest-desktop .frc-podium-spot {
        margin-right: .5rem;
        margin-left: 0;
    }
    .frc-latest-desktop .frc-latest-link {
        margin-left: .5rem;
    }
    .d-md-block .frc-roster {
        margin: .25rem 0 1rem;
    }
    .d-md-block .frc-roster-row {
        display: flex;
        flex-wrap: nowrap;
        gap: .75rem;
        padding: .25rem .5rem;
    }
    .d-md-block .frc-roster-name {
        flex: 0 0 14rem;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .d-md-block .frc-roster-sub {
        flex: 1 1 auto;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .d-md-block .frc-roster-head {
        font-size: .8125rem;
    }
    th[scope="row"] .frc-move {
        margin-left: .375rem;
        vertical-align: baseline;
        display: inline-block;
    }
    th[scope="row"] .frc-place-val {
        font-variant-numeric: tabular-nums;
    }
}

/* ===================== #427 Mobile regatta-results + race-results cards ===================== */
/* #427: these move to scoring.css per #428. Reuses every .frc-* primitive from the
   #426 block above; only new modifiers live here. */

/* Single-race card list (Page B) */
.vrc-list .vrc-meta div {
    line-height: 1.5;
}
.vrc-card {
    border-left-width: 3px;
}
.vrc-podium-1 {
    border-left-color: #d4af37;
}
.vrc-podium-2 {
    border-left-color: #a8a8a8;
}
.vrc-podium-3 {
    border-left-color: #cd7f32;
}
.vrc-medal {
    margin-left: .25rem;
    font-size: .95rem;
}
.vrc-status-chip {
    margin-left: .25rem;
    vertical-align: baseline;
}
/* Headline row: points is the prominent number for skippers; the corrected /
   elapsed time rides alongside it, muted. */
.vrc-card .frc-total {
    display: flex;
    align-items: baseline;
    gap: .375rem;
    color: inherit;
}
.vrc-points {
    font-weight: 700;
    color: #212529;
}
.vrc-headline-time {
    font-size: .8rem;
    color: #6c757d;
}
.vrc-detail {
    margin-top: .25rem;
    line-height: 1.6;
}
.vrc-detail .vrc-dot {
    margin: 0 .25rem;
    color: #adb5bd;
}
.vrc-detail-label {
    font-variant-numeric: normal;
}
.vrc-detail-cell {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.vrc-notes {
    margin-top: .375rem;
    color: #6c757d;
}

/* Overall regatta-results card list (Page A) */
.rr-list .frc-total {
    font-variant-numeric: tabular-nums;
}

/* ORC Certificate Rating Display Styles */
.cursor-pointer {
    cursor: pointer;
}

.badge-outline-secondary {
    color: #6c757d;
    border: 1px solid #6c757d;
    background-color: transparent;
}

.badge-outline-secondary:hover {
    background-color: #6c757d;
    color: white;
}

/* Contact Popover Styles */
.contact-clickable:hover {
    text-decoration: underline;
}

.contact-popover {
    max-width: 300px;
}

.contact-details .contact-item {
    margin: 4px 0;
    gap: 6px;
}

.contact-details .contact-item i {
    width: 16px;
    text-align: center;
}

.contact-details a:hover {
    text-decoration: underline;
}

/* Skipper Name Edit Icon Styles */
.edit-icon {
    margin-left: 8px;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.edit-icon:hover {
    opacity: 1;
}

.skipper-name-cell:hover .edit-icon {
    opacity: 0.8;
}

.contact-popover-close {
    background: none;
    border: none;
    font-size: 1.2rem;
    font-weight: bold;
    color: #6c757d;
    cursor: pointer;
    padding: 0;
    width: 20px;
    height: 20px;
    line-height: 1;
}

.contact-popover-close:hover {
    color: #000;
}

/* ============================================
   Priority Facet Value Styling
   ============================================ */

/* Priority value styling (bold, darker text) */
.tree .priority-value {
  font-weight: 600;
  color: #0056b3;
}

/* Optional: Highlight on hover for priority values */
.tree .priority-value:hover {
  color: #003d82;
  background-color: #f0f7ff;
}

/* Separator line after last priority value */
.tree .separator-top {
  border-top: 1px solid #dee2e6;
  padding-top: 8px;
  margin-top: 4px;
}

/* Navbar avatar tier rings — works on all dark-navy club themes */
.navbar-btn-avatar img.avatar-ring-premium {
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.navbar-btn-avatar img.avatar-ring-pro {
  border: 2px solid #00B4D8;
  box-shadow: 0 0 0 1px rgba(0, 180, 216, 0.35);
}

/* ── Fleet Tag Widget ──────────────────────────────────────────────────────── */

.fleet-tag-chip-area {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  min-height: 28px;
}

.fleet-tag-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.85rem;
  line-height: 1.4;
}

.fleet-tag-remove {
  background: none;
  border: none;
  padding: 0 0 0 4px;
  line-height: 1;
  cursor: pointer;
  color: inherit;
  opacity: 0.75;
  font-size: 1rem;
}

.fleet-tag-remove:hover {
  opacity: 1;
}

.fleet-tag-input {
  max-width: 320px;
}

.fleet-tag-dropdown {
  position: absolute;
  z-index: 1050;
  max-width: 360px;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid rgba(0,0,0,.125);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  background: #fff;
}

.fleet-tag-group-header {
  pointer-events: none;
  background-color: #f8f9fa;
  border-bottom: 1px solid rgba(0,0,0,.05);
}

.fleet-tag-option {
  cursor: pointer;
}

.fleet-tag-option:hover,
.fleet-tag-option:focus {
  background-color: #f0f4ff;
  outline: none;
}

.fleet-tag-widget-container {
  position: relative;
}

.badge-xs { font-size: 0.6em; }

/* ==========================================================================
   Empty State
   ========================================================================== */

.empty-state-icon {
  font-size: 48px;
  opacity: 0.3;
}