html {
  font-size: 14px;
}

:root {
  --ksd-charcoal: #2B3542;
  --ksd-white: #FFFFFF;
  --ksd-copper: #A96845;
  --ksd-teal: #3F7476;
  --ksd-sand: #E8DDCF;
  --ksd-mist: #DDE7EA;
  --bs-primary: #A96845;
  --bs-primary-rgb: 169, 104, 69;
  --bs-primary-text-emphasis: #74452F;
  --bs-primary-bg-subtle: #E8DDCF;
  --bs-primary-border-subtle: #A96845;
  --bs-link-color: #3F7476;
  --bs-link-color-rgb: 63, 116, 118;
  --bs-link-hover-color: #2F5C5E;
  --bs-link-hover-color-rgb: 47, 92, 94;
  --bs-focus-ring-color: rgba(169, 104, 69, .30);
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(169, 104, 69, .35);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

body.public-site { background:#F9F8F6; color:#2B3542; }
body.public-site .navbar,
body.public-site footer { background:#F9F8F6 !important; color:#2B3542 !important; }
body.public-site .email-hero,
body.public-site .judge-hero,
body.public-site .verify-hero,
body.public-site .confirmation-hero,
body.public-site .pricing-hero,
body.public-site .purpose-banner,
body.public-site .jc-hero,
body.public-site .billing-hero,
body.public-site .coordinator-cta {
  background:#F9F8F6 !important;
  color:#2B3542 !important;
  border:1px solid #3F7476;
  box-shadow:0 18px 48px rgba(43,53,66,.12);
}
body.public-site .purpose-banner {
  background:linear-gradient(120deg,#F9F8F6 0%,#EDF3F4 100%) !important;
  border-color:rgba(63,116,118,.45);
  box-shadow:0 .4rem 1.2rem rgba(43,53,66,.08);
}
body.public-site .email-hero p,
body.public-site .judge-hero p,
body.public-site .verify-hero p,
body.public-site .confirmation-hero p,
body.public-site .pricing-hero p,
body.public-site .purpose-banner-title,
body.public-site .jc-hero p { color:#2B3542 !important; }
body.public-site .purpose-banner-tagline { color:#667085 !important; }
body.public-site .email-eyebrow,
body.public-site .judge-eyebrow,
body.public-site .verify-eyebrow,
body.public-site .confirmation-eyebrow,
body.public-site .pricing-eyebrow {
  color:#3F7476;
  background:transparent;
  border-color:#3F7476;
}
body.public-site .purpose-banner-icon,
body.public-site .jc-icon { background:#3F7476; color:#FFFFFF; border-color:#3F7476; }
body.public-site .coordinator-cta .btn-light { background:#A96845; color:#FFFFFF !important; border-color:#A96845; }
body.public-site .coordinator-cta .btn-light:hover,
body.public-site .coordinator-cta .btn-light:focus-visible,
body.public-site .coordinator-cta .btn-light:active {
  background:#8E5437;
  color:#FFFFFF !important;
  border-color:#8E5437;
}

body.admin-site { background:#2B3542; color:#F9F8F6; }
body.admin-site .navbar,
body.admin-site footer { background:#2B3542 !important; color:#F9F8F6 !important; border-color:rgba(249,248,246,.3) !important; }
body.admin-site .navbar-brand,
body.admin-site .nav-link,
body.admin-site footer,
body.admin-site footer * { color:#F9F8F6 !important; }
body.admin-site .navbar .nav-link:hover,
body.admin-site .navbar .nav-link:focus {
  color:#fff !important;
  background:rgba(249,248,246,.12);
  border-radius:.45rem;
}
body.admin-site .navbar .nav-link.active {
  color:#fff !important;
  background:#A96845;
  border-radius:.45rem;
}
body.admin-site .navbar .dropdown-menu {
  background:#F9F8F6;
  color:#2B3542;
  border-color:#C8D0D5;
}
body.admin-site .navbar .dropdown-item,
body.admin-site .navbar .dropdown-item-text { color:#2B3542 !important; }
body.admin-site .navbar .dropdown-item:hover,
body.admin-site .navbar .dropdown-item:focus { color:#2B3542 !important; background:#DDE7EA; }
body.admin-site .navbar .dropdown-item.active,
body.admin-site .navbar .dropdown-item:active { color:#fff !important; background:#A96845; }
body.admin-site .navbar .dropdown-divider { border-color:#C8D0D5; }
body.admin-site .admin-logo-backdrop {
  padding:.3rem .5rem;
  border-radius:.75rem;
  background:#F9F8F6;
  border:1px solid rgba(249,248,246,.78);
}
body.admin-site .card,
body.admin-site .table,
body.admin-site .list-group-item,
body.admin-site .modal-content {
  --bs-table-bg:#2B3542;
  --bs-table-color:#F9F8F6;
  --bs-table-striped-bg:rgba(249,248,246,.075);
  --bs-table-striped-color:#F9F8F6;
  --bs-table-active-bg:rgba(63,116,118,.55);
  --bs-table-active-color:#fff;
  background:#2B3542;
  color:#F9F8F6;
  border-color:rgba(249,248,246,.35);
}
body.admin-site .table-hover {
  --bs-table-hover-bg:rgba(249,248,246,.12);
  --bs-table-hover-color:#fff;
}
body.admin-site .round-time-range {
  display:inline-block;
  margin-top:.2rem;
  padding:.15rem .4rem;
  color:#FFFFFF;
  background:#435365;
  border:1px solid #AFC3D1;
  border-radius:.3rem;
  font-weight:700;
  letter-spacing:.01em;
}
body.admin-site .text-muted { color:#C3CBD0 !important; }
body.admin-site .text-secondary { color:#D3D8DC !important; }
body.admin-site #page-content-wrapper a:not(.btn) { color:#C7E3E4 !important; }
body.admin-site #page-content-wrapper a:not(.btn):hover,
body.admin-site #page-content-wrapper a:not(.btn):focus { color:#fff !important; }
/* Links on explicitly light admin surfaces need the light-surface palette,
   rather than the pale link color used against the charcoal admin shell. */
body.admin-site #page-content-wrapper .bg-light a:not(.btn),
body.admin-site #page-content-wrapper .bg-white a:not(.btn) {
  color:#24595B !important;
  text-decoration:underline;
  text-underline-offset:.15em;
}
body.admin-site #page-content-wrapper .bg-light a:not(.btn):hover,
body.admin-site #page-content-wrapper .bg-light a:not(.btn):focus-visible,
body.admin-site #page-content-wrapper .bg-white a:not(.btn):hover,
body.admin-site #page-content-wrapper .bg-white a:not(.btn):focus-visible {
  color:#173F41 !important;
}
body.admin-site .bg-light,
body.admin-site .bg-white { color:#2B3542 !important; }
body.admin-site .bg-light .text-muted,
body.admin-site .bg-white .text-muted,
body.admin-site .card-header.bg-light .text-muted,
body.admin-site .card-header.bg-white .text-muted { color:#56616D !important; }
body.admin-site .btn-outline-secondary {
  --bs-btn-color:#F9F8F6;
  --bs-btn-border-color:#AEB8C0;
  --bs-btn-hover-color:#2B3542;
  --bs-btn-hover-bg:#F9F8F6;
  --bs-btn-hover-border-color:#F9F8F6;
  --bs-btn-active-color:#2B3542;
  --bs-btn-active-bg:#F9F8F6;
  --bs-btn-active-border-color:#F9F8F6;
}
body.admin-site .btn-outline-primary {
  --bs-btn-color:#C7E3E4;
  --bs-btn-border-color:#8FB4B9;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#3F7476;
  --bs-btn-hover-border-color:#8FB4B9;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:#3F7476;
  --bs-btn-active-border-color:#8FB4B9;
}
/* Link buttons need explicit colors because the global anchor color is !important. */
body.admin-site a.btn-outline-secondary { color:#F9F8F6 !important; }
body.admin-site a.btn-outline-secondary:hover,
body.admin-site a.btn-outline-secondary:focus,
body.admin-site a.btn-outline-secondary:active { color:#2B3542 !important; }
body.admin-site a.btn-outline-primary { color:#C7E3E4 !important; }
body.admin-site a.btn-outline-primary:hover,
body.admin-site a.btn-outline-primary:focus,
body.admin-site a.btn-outline-primary:active { color:#fff !important; }
body.admin-site .btn-outline-danger {
  --bs-btn-color:#FFB8BF;
  --bs-btn-border-color:#FF9FA9;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#A62936;
  --bs-btn-hover-border-color:#C43D4A;
}
body.admin-site a.btn-outline-danger { color:#FFB8BF !important; }
body.admin-site a.btn-outline-danger:hover,
body.admin-site a.btn-outline-danger:focus,
body.admin-site a.btn-outline-danger:active { color:#fff !important; }
body.admin-site .btn-outline-success {
  --bs-btn-color:#BCE5CB;
  --bs-btn-border-color:#9ED4B2;
  --bs-btn-hover-color:#182C21;
  --bs-btn-hover-bg:#BCE5CB;
  --bs-btn-hover-border-color:#BCE5CB;
}
body.admin-site a.btn-outline-success { color:#BCE5CB !important; }
body.admin-site a.btn-outline-success:hover,
body.admin-site a.btn-outline-success:focus,
body.admin-site a.btn-outline-success:active { color:#182C21 !important; }
body.admin-site .btn-outline-warning {
  --bs-btn-color:#FFE3A3;
  --bs-btn-border-color:#F2C96D;
  --bs-btn-hover-color:#2B3542;
  --bs-btn-hover-bg:#FFE3A3;
  --bs-btn-hover-border-color:#FFE3A3;
}
body.admin-site a.btn-outline-warning { color:#FFE3A3 !important; }
body.admin-site a.btn-outline-warning:hover,
body.admin-site a.btn-outline-warning:focus,
body.admin-site a.btn-outline-warning:active { color:#2B3542 !important; }
body.admin-site a.btn-light { color:#2B3542 !important; }
body.admin-site a.btn-primary,
body.admin-site a.btn-secondary,
body.admin-site a.btn-danger,
body.admin-site a.btn-success { color:#fff !important; }

/* Event-management links should read as controls without competing with the
   solid copper primary action. */
body.admin-site .event-management-action {
  color:#173F41 !important;
  background-color:#DDE7EA;
  border:2px solid #8FB4B9;
  font-weight:600;
  box-shadow:0 .125rem .25rem rgba(0,0,0,.22);
}
body.admin-site .event-management-action:hover,
body.admin-site .event-management-action:focus-visible,
body.admin-site .event-management-action:active {
  color:#fff !important;
  background-color:#3F7476;
  border-color:#B7D5D7;
}
body.admin-site .event-management-action:focus-visible {
  box-shadow:0 0 0 .25rem rgba(199,227,228,.38);
}

/* Notification attachment links sit inside user-selected Bootstrap alert
   colors. Give them their own high-contrast surface so global admin/public
   link colors cannot make them unreadable. */
a.notification-file-link,
a.notification-file-link:visited,
body.admin-site #page-content-wrapper a.notification-file-link,
body.admin-site #page-content-wrapper a.notification-file-link:visited {
  display:inline-flex !important;
  align-items:center;
  max-width:100%;
  padding:.35rem .6rem;
  color:#173F41 !important;
  background-color:rgba(255,255,255,.92);
  border:2px solid #3F7476;
  border-radius:.4rem;
  font-weight:700;
  line-height:1.35;
  text-decoration:underline;
  text-decoration-thickness:.1em;
  text-underline-offset:.15em;
  overflow-wrap:anywhere;
}
a.notification-file-link:hover,
a.notification-file-link:focus-visible,
a.notification-file-link:active,
body.admin-site #page-content-wrapper a.notification-file-link:hover,
body.admin-site #page-content-wrapper a.notification-file-link:focus-visible,
body.admin-site #page-content-wrapper a.notification-file-link:active {
  color:#FFFFFF !important;
  background-color:#2F5C5E;
  border-color:#173F41;
}
a.notification-file-link:focus-visible,
body.admin-site #page-content-wrapper a.notification-file-link:focus-visible {
  outline:3px solid #FFFFFF;
  outline-offset:2px;
  box-shadow:0 0 0 5px #2B3542;
}

/* Tournament wizard accessibility palette.
   The admin shell is dark, while wizard work surfaces are deliberately light. */
body.admin-site .tournament-wizard {
  --wizard-dark:#2B3542;
  --wizard-muted:#56616D;
  --wizard-surface:#F9F8F6;
  --wizard-input:#FFFFFF;
  --wizard-border:#87939D;
  --wizard-teal:#2F5C5E;
  --wizard-copper:#7A4932;
  --wizard-danger:#842029;
}

/* Headings and explanatory copy above the light cards sit on charcoal. */
body.admin-site .tournament-wizard > .row > div > .mb-4,
body.admin-site .tournament-wizard > .row > div > .mb-4 .text-muted {
  color:#F9F8F6 !important;
}
body.admin-site .tournament-wizard > .row > div > .mb-4 .text-muted {
  color:#D3DADF !important;
}

/* Every wizard work surface uses one explicit foreground/background pairing. */
body.admin-site .tournament-wizard .card,
body.admin-site .tournament-wizard .card-body,
body.admin-site .tournament-wizard .card-footer,
body.admin-site .tournament-wizard .list-group-item {
  background-color:var(--wizard-surface) !important;
  color:var(--wizard-dark) !important;
  border-color:#C5CDD2 !important;
}
body.admin-site .tournament-wizard .card label,
body.admin-site .tournament-wizard .card legend,
body.admin-site .tournament-wizard .card h2,
body.admin-site .tournament-wizard .card h3,
body.admin-site .tournament-wizard .card dt,
body.admin-site .tournament-wizard .card dd,
body.admin-site .tournament-wizard .card p,
body.admin-site .tournament-wizard .card small {
  color:inherit;
}
body.admin-site .tournament-wizard .card .text-muted,
body.admin-site .tournament-wizard .list-group-item .text-muted,
body.admin-site .tournament-wizard .table .text-muted {
  color:var(--wizard-muted) !important;
}

/* Wizard modals use the same light work surface as the surrounding cards.
   This overrides the admin shell's default dark modal without leaving dark
   wizard labels or help text on a dark background. */
body.admin-site .tournament-wizard .modal-content,
body.admin-site .tournament-wizard .modal-header,
body.admin-site .tournament-wizard .modal-body,
body.admin-site .tournament-wizard .modal-footer {
  background-color:var(--wizard-surface) !important;
  color:var(--wizard-dark) !important;
  border-color:#C5CDD2 !important;
}
body.admin-site .tournament-wizard .modal-title,
body.admin-site .tournament-wizard .modal-body label {
  color:var(--wizard-dark) !important;
}
body.admin-site .tournament-wizard .modal-body .form-text,
body.admin-site .tournament-wizard .modal-body .text-muted {
  color:var(--wizard-muted) !important;
}
body.admin-site .tournament-wizard .modal-header .btn-close {
  opacity:.78;
}
body.admin-site .tournament-wizard .modal-header .btn-close:hover,
body.admin-site .tournament-wizard .modal-header .btn-close:focus-visible {
  opacity:1;
}

/* Inputs retain dark text, visible borders, placeholders, and disabled copy. */
body.admin-site .tournament-wizard .form-label,
body.admin-site .tournament-wizard .form-check-label,
body.admin-site .tournament-wizard .form-text {
  color:var(--wizard-dark) !important;
}
body.admin-site .tournament-wizard .form-control,
body.admin-site .tournament-wizard .form-select {
  background-color:var(--wizard-input) !important;
  color:var(--wizard-dark) !important;
  border-color:var(--wizard-border) !important;
}
body.admin-site .tournament-wizard .form-control::placeholder {
  color:#626D78 !important;
  opacity:1;
}
/* CKEditor sits on a white work surface, so it must not inherit the admin
   shell's pale link color intended for charcoal backgrounds. */
body.admin-site #page-content-wrapper .ck-content a:not(.btn) {
  color:#24595B !important;
  text-decoration:underline;
  text-decoration-thickness:.1em;
  text-underline-offset:.15em;
}
body.admin-site #page-content-wrapper .ck-content a:not(.btn):hover,
body.admin-site #page-content-wrapper .ck-content a:not(.btn):focus-visible {
  color:#173F41 !important;
}
body.admin-site #page-content-wrapper .ck-content a:not(.btn):focus-visible {
  outline:3px solid #A96845;
  outline-offset:2px;
}
body.admin-site .tournament-wizard .form-control:disabled,
body.admin-site .tournament-wizard .form-select:disabled {
  background-color:#E5E9EC !important;
  color:#46515C !important;
  opacity:1;
}
body.admin-site .tournament-wizard .text-danger,
body.admin-site .tournament-wizard .invalid-feedback,
body.admin-site .tournament-wizard .field-validation-error {
  color:var(--wizard-danger) !important;
}

/* Override the inverted admin table variables on the light wizard surface. */
body.admin-site .tournament-wizard .table {
  --bs-table-bg:#FFFFFF;
  --bs-table-color:#2B3542;
  --bs-table-border-color:#B7C0C7;
  --bs-table-striped-bg:#EBF0F2;
  --bs-table-striped-color:#2B3542;
  --bs-table-hover-bg:#DDE7EA;
  --bs-table-hover-color:#24303C;
  --bs-table-active-bg:#DCE9E4;
  --bs-table-active-color:#24372F;
  color:var(--wizard-dark) !important;
}
body.admin-site .tournament-wizard .table-light,
body.admin-site .tournament-wizard .table-light > th,
body.admin-site .tournament-wizard .table-light > td {
  --bs-table-bg:#E3E9EC;
  --bs-table-color:#2B3542;
  color:#2B3542 !important;
}
body.admin-site .tournament-wizard .table-success,
body.admin-site .tournament-wizard .table-success > th,
body.admin-site .tournament-wizard .table-success > td {
  --bs-table-bg:#DCE9E4;
  --bs-table-color:#24372F;
  color:#24372F !important;
}

/* Outline controls are dark-on-white at rest and invert on interaction. */
body.admin-site .tournament-wizard .btn-outline-secondary {
  color:var(--wizard-dark) !important;
  background-color:#fff !important;
  border-color:var(--wizard-muted) !important;
}
body.admin-site .tournament-wizard .btn-outline-secondary:hover,
body.admin-site .tournament-wizard .btn-outline-secondary:focus-visible,
body.admin-site .tournament-wizard .btn-outline-secondary:active {
  color:#fff !important;
  background-color:#46515C !important;
  border-color:#46515C !important;
}
body.admin-site .tournament-wizard .btn-outline-danger {
  color:var(--wizard-danger) !important;
  background-color:#fff !important;
  border-color:#A52A38 !important;
}
body.admin-site .tournament-wizard .btn-outline-danger:hover,
body.admin-site .tournament-wizard .btn-outline-danger:focus-visible,
body.admin-site .tournament-wizard .btn-outline-danger:active {
  color:#fff !important;
  background-color:var(--wizard-danger) !important;
  border-color:var(--wizard-danger) !important;
}
body.admin-site .tournament-wizard .btn-outline-primary {
  color:var(--wizard-teal) !important;
  background-color:#fff !important;
  border-color:#3F7476 !important;
}
body.admin-site .tournament-wizard .btn-outline-primary:hover,
body.admin-site .tournament-wizard .btn-outline-primary:focus-visible,
body.admin-site .tournament-wizard .btn-outline-primary:active {
  color:#fff !important;
  background-color:var(--wizard-teal) !important;
  border-color:var(--wizard-teal) !important;
}

/* Primary and completion actions use solid colors with white text. */
body.admin-site .tournament-wizard .btn-primary {
  color:#fff !important;
  background-color:var(--wizard-copper) !important;
  border-color:var(--wizard-copper) !important;
}
body.admin-site .tournament-wizard .btn-primary:hover,
body.admin-site .tournament-wizard .btn-primary:focus-visible,
body.admin-site .tournament-wizard .btn-primary:active {
  color:#fff !important;
  background-color:#603823 !important;
  border-color:#603823 !important;
}
body.admin-site .tournament-wizard .btn-success {
  color:#fff !important;
  background-color:#146C43 !important;
  border-color:#146C43 !important;
}
body.admin-site .tournament-wizard .btn-success:hover,
body.admin-site .tournament-wizard .btn-success:focus-visible,
body.admin-site .tournament-wizard .btn-success:active {
  color:#fff !important;
  background-color:#0F5132 !important;
  border-color:#0F5132 !important;
}
body.admin-site .tournament-wizard .btn:disabled {
  color:#46515C !important;
  background-color:#E5E9EC !important;
  border-color:#87939D !important;
  opacity:1;
}

body.admin-site .tournament-wizard .progress {
  background-color:#D5DEE2;
}
body.admin-site .tournament-wizard .progress-bar,
body.admin-site .tournament-wizard .badge.text-bg-primary {
  background-color:var(--wizard-copper) !important;
  color:#fff !important;
}
body.admin-site .tournament-wizard .badge.text-bg-secondary {
  background-color:#56616D !important;
  color:#fff !important;
}
body.admin-site .tournament-wizard .btn:focus-visible,
body.admin-site .tournament-wizard .form-control:focus-visible,
body.admin-site .tournament-wizard .form-select:focus-visible,
body.admin-site .tournament-wizard .form-check-input:focus-visible {
  outline:3px solid #FFFFFF;
  outline-offset:2px;
  box-shadow:0 0 0 6px #1F6F78;
}
body.admin-site .form-control,
body.admin-site .form-select { background:#F9F8F6; color:#2B3542; border-color:#AEB8C0; }
body.admin-site .form-control::placeholder { color:#626D78; opacity:1; }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.ksd-title-color:link {font-size:2.4rem; color:#2B3542;}
body.public-site .public-masthead {
    position:relative;
    padding:1rem 0;
    background:linear-gradient(105deg,#F9F8F6 0%,#EDF3F4 100%) !important;
    border-bottom:5px solid #3F7476;
    box-shadow:0 .4rem 1.2rem rgba(43,53,66,.09);
}
body.public-site .public-masthead::after {
    content:"";
    position:absolute;
    left:max(calc((100% - 1320px)/2 + .75rem),.75rem);
    bottom:-5px;
    width:7rem;
    height:5px;
    background:#A96845;
}
.public-brand {
    max-width:calc(100% - 4.25rem);
    min-width:0;
    gap:clamp(.55rem,1.5vw,.8rem);
    white-space:nowrap;
    text-align:left;
    word-break:normal;
}
.public-brand-logo {
    width:auto;
    height:clamp(2rem,8vw,3.25rem);
    max-height:3.25rem;
    flex:0 0 auto;
}
.public-brand-title {
    display:block;
    min-width:0;
    white-space:nowrap;
    font-size:clamp(1rem,4.4vw,2rem);
    line-height:1.05;
    letter-spacing:-.03em;
}
body.public-site .public-brand-logo {
    height:clamp(2.75rem,5vw,3.75rem);
    max-height:3.75rem;
}
body.public-site .public-brand-copy { display:flex; flex-direction:column; min-width:0; }
body.public-site .public-brand-title {
    color:#3F7476;
    font-size:clamp(1.5rem,3vw,2.35rem);
    font-weight:700;
    line-height:1;
    letter-spacing:-.035em;
}
body.public-site .public-brand-tagline {
    display:block;
    margin-top:.3rem;
    color:#56616D;
    font-size:.78rem;
    font-weight:500;
    line-height:1.1;
    letter-spacing:.01em;
}

.coordinator-nav-group {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    margin-top:0;
}
.coordinator-nav-title {
    position:static;
    margin:0 .55rem .3rem 0;
    padding:0;
    background:transparent;
    color:#2B3542;
    font-size:.68rem;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.09em;
    text-transform:uppercase;
    white-space:nowrap;
}
body.public-site .public-masthead .nav-link {
    position:relative;
    margin:0 .1rem;
    padding:.45rem .6rem;
    color:#3F7476 !important;
    font-weight:600;
}
body.public-site .public-masthead .nav-link:not(.public-login-link)::after {
    content:"";
    position:absolute;
    left:.6rem;
    right:.6rem;
    bottom:.2rem;
    height:2px;
    background:#A96845;
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .16s ease;
}
body.public-site .public-masthead .nav-link:not(.public-login-link):hover::after,
body.public-site .public-masthead .nav-link:not(.public-login-link):focus::after { transform:scaleX(1); }
body.public-site .public-masthead .public-login-link {
    margin-left:.45rem;
    padding:.4rem .8rem;
    color:#A96845 !important;
    background:transparent;
    border:1px solid #A96845;
    border-radius:.5rem;
}
body.public-site .public-masthead .public-login-link:hover,
body.public-site .public-masthead .public-login-link:focus,
body.public-site .public-masthead .public-login-link:active {
    color:#fff !important;
    background:#8E5437;
    border-color:#8E5437;
}
body.public-site .public-masthead .navbar-toggler {
    color:#3F7476;
    background:#DDE7EA;
    border-color:#8FA9AD;
}
@media (max-width:991.98px) {
    body.public-site .public-masthead { padding:.65rem 0; }
    body.public-site .public-masthead .public-brand { max-width:100%; }
    body.public-site .public-masthead .navbar-toggler { display:none; }
    body.public-site .public-masthead .navbar-collapse {
        display:block !important;
        flex-basis:100%;
        width:100%;
    }
    .coordinator-nav-group {
        align-items:center;
        width:100%;
        margin-top:.35rem;
        padding:.35rem .5rem;
        background:#F9F8F6;
        border:1px solid #B8C9CC;
        border-radius:.75rem;
        box-shadow:0 .5rem 1.25rem rgba(43,53,66,.08);
    }
    .coordinator-nav-title {
        display:none;
    }
    body.public-site .public-masthead .navbar-nav {
        flex-direction:row;
        flex-wrap:wrap;
        justify-content:center;
        align-items:center;
        width:100%;
    }
    body.public-site .public-masthead .nav-link {
        padding:.4rem .65rem;
        text-align:center;
        white-space:nowrap;
    }
    body.public-site .public-masthead .public-login-link { margin:0 .1rem; }
}
@media (max-width:575.98px) {
    body.public-site .public-brand-logo { height:2.8rem; }
    body.public-site .public-brand-title { font-size:clamp(1.35rem,6.2vw,1.7rem); }
    body.public-site .public-brand-tagline { font-size:.68rem; }
}
@media (max-width:374.98px) {
    body.public-site .public-brand { gap:.4rem; }
    body.public-site .public-brand-logo { height:2.5rem; }
    body.public-site .public-brand-title { font-size:1.25rem; }
    body.public-site .public-brand-tagline { font-size:.62rem; }
}
.secure-login-brand-title { white-space:nowrap; font-size:clamp(1.25rem,4.5vw,2rem); line-height:1.05; letter-spacing:-.03em; }
a {color:#3F7476 !important}
a:hover {color:#2F5C5E !important}

/* Preserve each Bootstrap button variant's intended foreground color. The
   global anchor color above must not override link-buttons on hover. */
a.btn { color:var(--bs-btn-color) !important; }
a.btn:hover,
a.btn:focus-visible { color:var(--bs-btn-hover-color) !important; }
a.btn:focus:not(:focus-visible) { color:var(--bs-btn-color) !important; }
a.btn:active,
a.btn.active,
a.btn.show { color:var(--bs-btn-active-color) !important; }
a.btn.disabled,
a.btn:disabled { color:var(--bs-btn-disabled-color) !important; }
.form-label {margin-bottom:.25rem}
.form-control, .form-select {background-color: #F9F8F6}
.form-control:focus {background-color: #F9F8F6; border-color:#A96845}

/* Minimum input heights */
input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], textarea, select, select option[value="1"], select option[value="2"] {
    min-height: 44px;
    box-sizing: border-box; /* Ensures padding is included in the 44px */
}

/* Improve Checkbox touch area styling - override bootstrap .form-check style */
.form-check-label {margin-left: .5rem;}
.form-check {display: flex; align-items: center; margin-bottom: 1.5rem; margin-left: .5rem;}
.form-check:last-child {margin-bottom:.5rem}
.form-check-input {width: 1.5rem;height: 1.5rem;margin-right: 0.75rem;background-color: #F9F8F6}
.form-check-input:checked {background-color:#A96845; border-color:#A96845}
.form-check-label {font-size: 1rem;}
.round-item.conflict {opacity:1; filter:none; transition:background-color .2s ease, border-color .2s ease;}
.round-item.conflict label {cursor: not-allowed;}

/* Form Label JN */
.form-label {font-size:1.1rem; font-weight:600}

/* Updated ShowMessage notifications with Toast styling */
.toast-container {
    z-index: 2000;
}

.custom-toast {
    min-width: 320px;
    border-radius: 12px;
    overflow: hidden;
    animation: toastSlide .25s ease-out;
    box-shadow: 0 10px 25px rgba(0,0,0,.15);
}

.toast-progress {
    height: 3px;
    background: white;
    opacity: .7;
    margin-top: 8px;
    animation: toastProgress 5s linear forwards;
}

@keyframes toastSlide {
    from {
        transform: translateX(50px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes toastProgress {
    from {
        width: 100%
    }

    to {
        width: 0%
    }
}

.conf-email-parent-div {
    max-width: 50%;
    min-width: 480px;
    background-color: #E8DDCF;
    color: #000000;
    margin: 4px auto;
    padding: .5em;
    border-radius: 8px;
}
.conf-email-parent-div * {
    color:#ffffff;
    text-align: left;
}
.conf-email a {
    color: #3F7476;
}
.conf-email p {
    margin: 0;
    padding: 0;
}

/* Admin Nav */
.navbar-nav {
    --bs-nav-link-active-color: #A96845;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #A96845;
    --bs-btn-border-color: #A96845;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #8E5437;
    --bs-btn-hover-border-color: #8E5437;
    --bs-btn-active-bg: #7E4A31;
    --bs-btn-active-border-color: #7E4A31;
    --bs-btn-disabled-bg: #A96845;
    --bs-btn-disabled-border-color: #A96845;
}

a.btn-primary,
a.btn-primary:hover,
a.btn-primary:focus { color:#fff !important; }

.btn-outline-primary {
    --bs-btn-color: #3F7476;
    --bs-btn-border-color: #3F7476;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #3F7476;
    --bs-btn-hover-border-color: #3F7476;
    --bs-btn-active-bg: #2F5C5E;
    --bs-btn-active-border-color: #2F5C5E;
}

a.btn-outline-primary:hover,
a.btn-outline-primary:focus { color:#fff !important; }

.border-primary { border-color:#A96845 !important; }

/* Smooth scrolling for Reports/Index */
html {
    scroll-behavior: smooth;
}

/* Prevent sticky navbar from covering headings */
#roundsSection,
#judgesSection {
    scroll-margin-top: 90px;
}

/* Date plus native select controls. On iOS, the selects open as wheel scrollers. */
.five-minute-datetime-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) repeat(3, calc(3ch + 1.8rem));
    gap: .5rem;
    align-items: center;
    min-width: 0;
}

.five-minute-datetime-picker .form-control,
.five-minute-datetime-picker .form-select {
    min-height: 2.75rem;
    min-width: 0;
}

.five-minute-datetime-picker .five-minute-hour,
.five-minute-datetime-picker .five-minute-minute,
.five-minute-datetime-picker .five-minute-period {
    width: calc(3ch + 1.8rem);
    padding-left: .45rem;
    padding-right: 1.35rem;
    background-position: right .3rem center;
}

@media (max-width: 575.98px) {
    .five-minute-datetime-picker {
        grid-template-columns: minmax(0, 1fr) repeat(3, calc(3ch + 1.6rem));
        gap: .35rem;
    }

    .five-minute-datetime-picker .five-minute-hour,
    .five-minute-datetime-picker .five-minute-minute,
    .five-minute-datetime-picker .five-minute-period {
        width: calc(3ch + 1.6rem);
        padding-right: 1.2rem;
    }
}

.review-details-editor .ck.ck-editor__top {
    display: none;
}

.review-details-editor .ck.ck-editor__main > .ck-editor__editable {
    min-height: 7rem;
    background: var(--bs-light-bg-subtle, #f8f9fa);
    color: var(--bs-body-color, #212529);
    border-radius: .375rem;
}
