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 .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-kicker,
body.public-site .purpose-banner-title,
body.public-site .purpose-banner-tagline,
body.public-site .jc-hero p { color:#2B3542 !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.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 .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; }
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; }
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;}
.public-brand { max-width:calc(100% - 4rem); min-width:0; gap:clamp(.35rem,1.5vw,.65rem); 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 { min-width:0; white-space:nowrap; font-size:clamp(1rem,4.4vw,2rem); line-height:1.05; letter-spacing:-.03em; }
@media (max-width:374.98px) { .public-brand-title { font-size:.88rem; } .public-brand-logo { height:1.9rem; } }

.coordinator-nav-group {
    position:relative;
    margin-top:.65rem;
    padding:.35rem .45rem .2rem;
    border:1px solid #AEBBC2;
    border-radius:.5rem;
}
.coordinator-nav-title {
    position:absolute;
    top:-.72rem;
    right:.65rem;
    padding:0 .35rem;
    background:#fff;
    color:#52616d;
    font-size:.7rem;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.025em;
    white-space:nowrap;
}
@media (max-width:991.98px) {
    .coordinator-nav-group { margin-top:1.25rem; }
    .coordinator-nav-title { left:.65rem; right:auto; }
}
.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}
.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: .45; filter: grayscale(.5); transition: opacity .25s 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;
}
