/******************
    User custom CSS — extended Fruity (survey runtime only)
    Migrated from LimeSurvey 3.28.51 (old-custom.css) toward 6.16.14.
    Admin/backend rules (#sidebar, #sideMenu, #pjax-content, comfort update,
    preload animations, etc.) were dropped.

    Brand tokens (declared on body.fruity for easy edits):
      primary #0050D7, primary-hover #000E9C, hover-surface #BEF1FF,
      text #35363f, success #40ab46, info #1c575a / #133d3f,
      warning #f6863a, danger #a94442, accent green #163c19

    Cascade notes (LS 6.16 extended Fruity):
      1) variations/sea_green.css  (parent Fruity — still loaded, cannot be removed)
      2) variations/bay_of_many.css (extended template — closer to brand, acts as fallback)
      3) theme.css (LS core Fruity)
      4) this custom.css (loaded last)
      Do NOT edit variation files. This file intentionally overrides their
      Bootstrap 5 CSS variables and utilities to lock the exact brand blue
      (#0050D7) on buttons, links and .text- / .bg- utility classes.

    Staging checks: confirm body has class "fruity"; inspect .btn-* names
    (Bootstrap 5 uses .btn-secondary instead of .btn-default); clear template
    / asset cache (Configuration → General Settings → Delete asset cache, or
    empty tmp/assets/); walk welcome → questions → submit.
*/

body.fruity {
    --ls-primary: #0050d7;
    --ls-primary-deep: #000e9c;
    --ls-primary-hover-bg: #bef1ff;
    --ls-text: #35363f;
    --ls-success: #40ab46;
    --ls-info: #4d5592;
    --ls-info-border: #000e9c;
    --ls-warning: #f6863a;
    --ls-warning-strong: #80431e;
    --ls-warning-border: #5c2e15;
    --ls-danger: #a94442;
    --ls-danger-bar: #a0352f;
    --ls-list-hover: #9cba9e;
    --ls-border: #dadada;
    --ls-progress-track: #f5f5f5;
    color: var(--ls-text);
    background-color: #fff;
}

/* --- Bootstrap 5 CSS variable overrides ---
   BS5 derives utilities (.text-primary, .bg-primary, .link-primary, outline
   buttons, focus rings, etc.) from these custom properties. Overriding them
   here re-skins anything that honours the token system without touching
   individual rules. */
body.fruity {
    --bs-primary: #0050d7;
    --bs-primary-rgb: 0, 80, 215;
    --bs-link-color: #0050d7;
    --bs-link-color-rgb: 0, 80, 215;
    --bs-link-hover-color: #000e9c;
    --bs-link-hover-color-rgb: 0, 14, 156;
}

/* --- Bootstrap 5 utility overrides ---
   BS5 compiles utilities with !important, and the Fruity variations
   (sea_green / bay_of_many) set them to their own palette. These rules
   re-point every utility-class occurrence (.text-primary on welcome text,
   .text-info on description, .bg-primary, .border-primary, .link-primary)
   to the brand blue. Scoped under body.fruity so nothing leaks. */
body.fruity .text-primary {
    color: var(--ls-primary) !important;
}

body.fruity .bg-primary {
    background-color: var(--ls-primary) !important;
    color: #fff !important;
}

body.fruity .border-primary {
    border-color: var(--ls-primary) !important;
}

body.fruity .link-primary {
    color: var(--ls-primary) !important;
}

body.fruity .link-primary:hover,
body.fruity .link-primary:focus {
    color: var(--ls-primary-deep) !important;
}

body.fruity .text-info {
    color: var(--ls-info) !important;
}

body.fruity .bg-info {
    background-color: var(--ls-info) !important;
    color: #fff !important;
}

/* --- Navbar (BS5 .navbar-light.bg-light on top bar) --- */
body.fruity .navbar.navbar-light .nav-link:hover,
body.fruity .navbar.navbar-light .nav-link:focus {
    color: var(--ls-primary);
}

/* --- Links & highlights --- */
.fruity mark {
    background: #ff6cb6;
    color: #000;
}

.fruity a {
    color: var(--ls-primary);
}

.fruity a:hover,
.fruity a:focus {
    color: var(--ls-primary);
}

.fruity a.badge:hover,
.fruity a.badge:focus {
    color: #fff;
}

/* --- Buttons: default states for BS5 primary/outline variants --- */
body.fruity .btn-primary {
    color: #fff;
    background-color: var(--ls-primary);
    border-color: var(--ls-primary);
}

body.fruity .btn-outline-primary {
    color: var(--ls-primary);
    border-color: var(--ls-primary);
    background-color: transparent;
}

body.fruity .btn-outline-primary:hover,
body.fruity .btn-outline-primary:focus,
body.fruity .btn-outline-primary:active,
body.fruity .btn-outline-primary.active,
body.fruity .show > .dropdown-toggle.btn-outline-primary {
    color: #fff;
    background-color: var(--ls-primary);
    border-color: var(--ls-primary);
}

body.fruity .btn-outline-secondary {
    color: var(--ls-primary);
    border-color: var(--ls-primary);
    background-color: transparent;
}

body.fruity .btn-outline-secondary:hover,
body.fruity .btn-outline-secondary:focus,
body.fruity .btn-outline-secondary:active,
body.fruity .btn-outline-secondary.active,
body.fruity .show > .dropdown-toggle.btn-outline-secondary {
    color: var(--ls-primary);
    background-color: var(--ls-primary-hover-bg);
    border-color: var(--ls-primary);
}

body.fruity .btn-close:focus {
    box-shadow: 0 0 0 0.25rem rgba(0, 80, 215, 0.5);
}

/* --- Buttons: Bootstrap 3 + 5 + open/show dropdown states (hover/focus/active) --- */
.fruity .btn-default:hover,
.fruity .btn-default:focus,
.fruity .btn-default:active,
.fruity .btn-default.active,
.fruity .open .dropdown-toggle.btn-default,
.fruity .show > .dropdown-toggle.btn-default,
.fruity .btn-secondary:hover,
.fruity .btn-secondary:focus,
.fruity .btn-secondary:active,
.fruity .btn-secondary.active,
.fruity .open .dropdown-toggle.btn-secondary,
.fruity .show > .dropdown-toggle.btn-secondary {
    color: var(--ls-primary);
    border: 2px solid var(--ls-primary);
    background-color: var(--ls-primary-hover-bg);
}

.fruity .btn-primary:hover,
.fruity .btn-primary:focus,
.fruity .btn-primary:active,
.fruity .btn-primary.active,
.fruity .btn-primary.active:focus,
.fruity .open .dropdown-toggle.btn-primary,
.fruity .show > .dropdown-toggle.btn-primary {
    color: #fff;
    background-color: var(--ls-primary-deep);
    border: 2px solid var(--ls-primary-deep);
}

.fruity .btn-success:hover,
.fruity .btn-success:focus,
.fruity .btn-success:active,
.fruity .btn-success.active,
.fruity .open .dropdown-toggle.btn-success,
.fruity .show > .dropdown-toggle.btn-success {
    color: var(--ls-primary);
    background-color: var(--ls-primary-hover-bg);
    border: 2px solid var(--ls-primary);
}

.fruity .btn-info:hover,
.fruity .btn-info:focus,
.fruity .btn-info:active,
.fruity .btn-info.active,
.fruity .open .dropdown-toggle.btn-info,
.fruity .show > .dropdown-toggle.btn-info {
    color: #fff;
    background-color: var(--ls-info);
    border: 2px solid var(--ls-info-border);
}

.fruity .btn-warning:hover,
.fruity .btn-warning:focus,
.fruity .btn-warning:active,
.fruity .btn-warning.active,
.fruity .open .dropdown-toggle.btn-warning,
.fruity .show > .dropdown-toggle.btn-warning {
    color: #fff;
    background-color: var(--ls-warning-strong);
    border: 2px solid var(--ls-warning-border);
}

/* --- Tabs (token / bootstrap tabs on survey) --- */
.fruity .nav-tabs > li.active > a,
.fruity .nav-tabs > li.active > a:hover,
.fruity .nav-tabs > li.active > a:focus,
.fruity .nav-tabs .nav-link.active,
.fruity .nav-tabs .nav-link.active:hover,
.fruity .nav-tabs .nav-link.active:focus {
    color: #636363;
    background-color: #fff;
    border: 1px solid var(--ls-border);
}

/* --- Pagination (fixed missing dot in legacy file) --- */
.fruity .pagination > li > a,
.fruity .pagination > li > span,
.fruity .pagination .page-link {
    color: var(--ls-primary);
    background-color: #fff;
    border: 1px solid var(--ls-border);
}

/* --- Survey headings --- */
.fruity .side-body h3,
.fruity .pagetitle,
.fruity .list-surveys h3 {
    color: #333;
    border-bottom: solid 2px var(--ls-primary);
}

/* --- List group (survey list / public listing) --- */
.fruity list-group-item {
    color: #545454;
}

.fruity list-group-item:hover,
.fruity list-group-item:focus {
    background-color: var(--ls-list-hover);
}

.fruity list-group-item.active,
.fruity list-group-item.active:hover,
.fruity list-group-item.active:focus {
    color: #fff;
    background-color: var(--ls-primary);
    border: 1px solid var(--ls-primary);
}

.fruity list-group-item.active .list-group-item-text,
.fruity list-group-item.active:hover .list-group-item-text,
.fruity list-group-item.active:focus .list-group-item-text {
    color: #afdbb1;
}

.fruity list-group-item.active > .badge {
    color: var(--ls-primary);
    background-color: #fff;
}

.fruity list-group-item .list-group-item-heading {
    color: #333;
}

.fruity list-group-item-success.active,
.fruity list-group-item-success.active:hover,
.fruity list-group-item-success.active:focus {
    color: #fff;
    background-color: var(--ls-primary);
    border: 1px solid var(--ls-primary);
}

.fruity list-group-item-info.active,
.fruity list-group-item-info.active:hover,
.fruity list-group-item-info.active:focus {
    color: #fff;
    background-color: var(--ls-primary);
    border: 1px solid var(--ls-primary);
}

.fruity list-group-item-warning.active,
.fruity list-group-item-warning.active:hover,
.fruity list-group-item-warning.active:focus {
    color: #fff;
    background-color: #f8a46e;
    border: 1px solid #f8a46e;
}

.fruity list-group-item-danger.active,
.fruity list-group-item-danger.active:hover,
.fruity list-group-item-danger.active:focus {
    color: #fff;
    background-color: var(--ls-danger);
    border: 1px solid var(--ls-danger);
}

/* --- Alerts --- */
.fruity .alert-success {
    background-color: transparent;
    border: 1px solid var(--ls-success);
    color: var(--ls-success);
}

.fruity .alert-success .alert-link {
    color: var(--ls-success);
    text-decoration: underline;
}

.fruity .alert-info {
    background-color: transparent;
    border: 1px solid var(--ls-primary);
    color: var(--ls-primary);
}

.fruity .alert-info .alert-link {
    color: var(--ls-primary);
    text-decoration: underline;
}

.fruity .alert-warning {
    background-color: transparent;
    border: 1px solid var(--ls-warning);
    color: var(--ls-warning);
}

.fruity .alert-warning .alert-link {
    color: var(--ls-warning);
    text-decoration: underline;
}

.fruity .alert-danger {
    background-color: transparent;
    border: 1px solid var(--ls-danger);
    color: var(--ls-danger);
}

.fruity .alert-danger .alert-link {
    color: var(--ls-danger);
    text-decoration: underline;
}

/* --- Progress (completion bar) --- */
body.fruity .progress {
    background-color: var(--ls-progress-track);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

body.fruity .progress .progress-bar {
    color: #fff;
    background-color: var(--ls-primary);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
}

body.fruity .progress .progress-bar.bg-success,
body.fruity .progress .progress-bar-success {
    background-color: var(--ls-primary);
}

body.fruity .progress .progress-bar.bg-info,
body.fruity .progress .progress-bar-info {
    background-color: var(--ls-primary);
}

body.fruity .progress .progress-bar.bg-warning,
body.fruity .progress .progress-bar-warning {
    background-color: var(--ls-warning);
}

body.fruity .progress .progress-bar.bg-danger,
body.fruity .progress .progress-bar-danger {
    background-color: var(--ls-danger-bar);
}

/* --- jQuery UI datepicker (if still present on date questions) --- */
#ui-datepicker-div {
    background-color: #fff;
    border: 1px solid #ccc;
}

/* --- LimeSurvey question UI --- */
.fruity .question-item {
    padding-top: 1em;
}

.fruity .placeholder {
    background-color: #84b39a;
}

.fruity .slider.slider-horizontal .slider-tick.triangle,
.fruity .slider.slider-horizontal .slider-handle.triangle {
    border-bottom-color: var(--ls-primary);
}

.fruity .slider.slider-vertical .slider-tick.triangle,
.fruity .slider.slider-vertical .slider-handle.triangle {
    border-left-color: var(--ls-primary);
    border-right-color: var(--ls-primary);
}

.fruity .slider-handle {
    background-color: var(--ls-primary);
}

.fruity .slider-handle.custom,
.fruity .slider-handle.triangle {
    background-color: transparent;
}

.fruity .slider-handle.custom::before,
.fruity .slider-tick.custom::before {
    color: var(--ls-primary);
}

.fruity .slider-selection {
    background-image: linear-gradient(to bottom, #84b39a 0%, var(--ls-primary) 100%);
}

.fruity .input-error input {
    border: 1px solid var(--ls-warning);
    color: var(--ls-warning);
}

.fruity .input-error input:focus {
    border: 1px solid var(--ls-danger);
    color: var(--ls-danger);
}

.fruity .question-container.input-error {
    box-shadow: 0 10px 20px rgba(169, 68, 66, 0.9);
}

body.fruity .answer-item label::after {
    background-color: var(--ls-primary);
}

body.fruity .checkbox-item input[type="checkbox"]:checked + label::after,
body.fruity .checkbox-item input[type="radio"]:checked + label::after {
    background-color: var(--ls-primary);
    color: #fff;
}
