.basic label::after { 
    background-color: #0464cc; 
}

.basic .dropdown-item:focus, 
.basic .dropdown-item:hover { 
    background-color: #0464cc; 
}

.basic .btn-check .btn-primary:focus, 
.basic .btn-check:focus + .btn-primary {
    background-color: #0464cc;
    border-color: #0464cc;
    box-shadow: none;
}

.bootstrap .bg-primary {
    background-color: #0464cc;
}

.top-container.space-col {
   margin-top: 0 !important;
}

.top-container {
   margin-top: 0 !important;
}

.space-col {
   margin-top: 0 !important;
}

.top-content.container-fluid {
   margin-bottom: 12px;
}

.survey-description:empty,
.survey-description.text-info:empty,
.survey-description.text-center:empty,
.survey-description.text-info.text-center:empty {
    display: none;
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
    border: none;
    position: absolute;
    left: -9999px;
}

div.survey-description:empty,
div.survey-description.text-info:empty,
div.survey-description.text-center:empty,
div.survey-description.text-info.text-center:empty {
    display: none;
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
    border: none;
}

.survey-description.text-info.text-center:not(:has(img)):not(:has(input)):not(:has(button)):not(:has(a)):not(:has(span)):not(:has(strong)):not(:has(em)):not(:has(b)):not(:has(i)) {
    display: none;
}

.question-help:empty,
.question-help-container:empty,
.questionhelp:empty,
.help-block:empty,
.question-description:empty {
    display: none;
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
    border: none;
}

div.question-help:empty,
div.question-help-container:empty,
div.questionhelp:empty,
div.help-block:empty,
div.question-description:empty {
    display: none;
}

.question-valid-container:empty,
.question-valid-container.bg-primary:empty,
.question-valid-container.text-info:empty,
.question-valid-container.col-12:empty,
.question-valid-container.bg-primary.text-info:empty,
.question-valid-container.bg-primary.col-12:empty,
.question-valid-container.text-info.col-12:empty,
.question-valid-container.bg-primary.text-info.col-12:empty {
    display: none;
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
    border: none;
}

.group-description:empty,
.ls-questionhelp:empty,
.top-content:empty {
    display: none;
}

body .survey-description:empty,
body .survey-description.text-info:empty,
body .survey-description.text-center:empty,
body .survey-description.text-info.text-center:empty,
body .question-help:empty,
body .question-help-container:empty,
body .question-valid-container:empty,
body .question-valid-container.bg-primary.text-info.col-12:empty {
    display: none;
}

html body .survey-description:empty,
html body .survey-description.text-info.text-center:empty,
html body .question-valid-container.bg-primary.text-info.col-12:empty {
    display: none;
}

.navbar.navbar-default.navbar-fixed-top,
.navbar-default,
html body .navbar.navbar-default.navbar-fixed-top {
    background: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
    border-color: #0464cc;
    z-index: 2000;
}

.navbar-brand {
    color: #ffffff;
    font-weight: 600;
}

.navbar-brand:hover,
.navbar-brand:focus {
    color: #f7d107;
}

.navbar-default .navbar-nav > li > a,
.nav-link {
    color: #ffffff;
}

.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.nav-link:hover {
    color: #f7d107;
    background-color: rgba(255, 255, 255, 0.1);
}

.top-container {
    background: linear-gradient(45deg, #f8f9fa, #fff8e1);
    border-bottom: 3px solid #f7d107;
}

.progress {
    background-color: #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}

.progress .progress-bar {
    background: linear-gradient(45deg, #f7d107, #e6c406);
    color: #333333;
    font-weight: bold;
    line-height: 19px;
    transition: all 0.3s ease;
}

.progress-bar.bg-primary {
    background-color: #f7d107;
    color: #333333;
}

.group-outer-container {
    margin-bottom: 2rem;
}

.group-title-container {
    background: linear-gradient(135deg, #0464cc, #0356b3);
    color: #ffffff;
    padding: 1.5rem;
    border-radius: 8px 8px 0 0;
    margin-bottom: 0;
}

.group-title-container.bg-primary {
    background-color: #0464cc;
    background-image: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
    color: #ffffff;
}

.group-title-container.bg-primary .group-title {
    color: #ffffff;
}

.group-title-container.bg-primary h3 {
    color: #ffffff;
}

.group-title {
    color: #ffffff;
    font-size: 1.4rem;
    font-weight: 600;
    margin: 0;
}

.group-description {
    color: rgba(255, 255, 255, 0.9);
    margin-top: 0.5rem;
    font-size: 0.95rem;
}

.question-container {
    background: #ffffff;
    border: 2px solid #e9ecef;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 2px 10px rgba(4, 100, 204, 0.1);
    margin-bottom: 2rem;
    overflow: hidden;
    animation: fadeInUp 0.5s ease-in-out;
}

.question-title-container {
    background-color: #f8f9fa;
    border-bottom: 2px solid #f7d107;
    padding: 1rem 1.5rem;
}

.question-title-container.bg-primary {
    background-color: #0464cc;
    background-image: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
    color: #ffffff;
    border-bottom: 2px solid #f7d107;
    display: flex;
    align-items: center;
    gap: 4px;
}

.question-title-container.bg-primary.col-12 {
    display: flex;
    align-items: center;
    gap: 4px;
}

.question-title-container .question-title {
    color: #0464cc;
    font-weight: 600;
}

.question-title-container.bg-primary .question-title {
    color: #ffffff;
}

.question-title-container.bg-primary h3 {
    color: #ffffff;
}

.question-container .question-title-container.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.question-container .bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.question-title {
    color: #0464cc;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
}

.answer-container {
    padding: 1.5rem;
    border: none;
}

.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

div.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.container.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

body .question-title-container.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

body div.question-title-container.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

body .bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

body .bg-primary h1,
body .bg-primary h2,
body .bg-primary h3,
body .bg-primary h4,
body .bg-primary h5,
body .bg-primary h6 {
    color: #ffffff;
}

body .bg-primary .question-title {
    color: #ffffff;
}

body .bg-primary span {
    color: #ffffff;
}

body .bg-primary p {
    color: #ffffff;
}

html body div.question-title-container.bg-primary {
    background-color: #0464cc;
    background-image: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
    color: #ffffff;
}

html body .bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

html body .question-title-container.bg-primary.col-12 {
    display: flex;
    align-items: center;
    gap: 4px;
}

.bg-primary .question-title {
    color: #ffffff;
}

.bg-primary h3 {
    color: #ffffff;
}

.bg-primary h3.question-title {
    color: #ffffff;
}

.form-control,
input[type="text"],
input[type="email"],
input[type="number"],
input[type="date"],
textarea,
select {
    border: 2px solid #e9ecef;
    border-radius: 6px;
    padding: 0.75rem;
    transition: all 0.3s ease;
}

.form-control:focus,
input:focus,
textarea:focus,
select:focus {
    border-color: #0464cc;
    box-shadow: 0 0 0 0.2rem rgba(4, 100, 204, 0.25);
    outline: none;
}

.bg-primary input {
    color: #333333;
    background-color: #ffffff;
}

.bg-primary textarea {
    color: #333333;
    background-color: #ffffff;
}

.bg-primary select {
    color: #333333;
    background-color: #ffffff;
}

.bg-primary .form-group label {
    color: #ffffff;
}

.bg-primary .form-label {
    color: #ffffff;
}

.bg-primary .form-text {
    color: rgba(255, 255, 255, 0.8);
}

input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #0464cc;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-right: 8px;
}

input[type="radio"]:hover {
    border-color: #f7d107;
    box-shadow: 0 0 0 3px rgba(247, 209, 7, 0.2);
}

input[type="radio"]:checked {
    background: #0464cc;
    border-color: #0464cc;
}

input[type="radio"]:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
}

input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #0464cc;
    border-radius: 4px;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-right: 8px;
}

input[type="checkbox"]:hover {
    border-color: #f7d107;
    box-shadow: 0 0 0 3px rgba(247, 209, 7, 0.2);
}

input[type="checkbox"]:checked {
    background: #0464cc;
    border-color: #0464cc;
}

input[type="checkbox"]:checked::after {
    content: '✓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #ffffff;
    font-size: 12px;
    font-weight: bold;
}

.radio-item label,
.checkbox-item label {
    cursor: pointer;
    padding: 8px 12px;
    margin: 0;
    border-radius: 6px;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
}

.radio-item label:hover,
.checkbox-item label:hover {
    background: rgba(4, 100, 204, 0.05);
}

.btn-primary,
.btn-default,
input[type="submit"],
button[type="submit"] {
    background: linear-gradient(135deg, #0464cc, #0356b3);
    border: none;
    color: #ffffff;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(4, 100, 204, 0.2);
}

.btn-primary:hover,
.btn-default:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
    background: linear-gradient(135deg, #f7d107, #e6c406);
    border-color: transparent;
    color: #333333;
    box-shadow: 0 4px 8px rgba(247, 209, 7, 0.3);
}

.btn-primary:active,
.btn-default:active {
    transform: translateY(0);
}

.btn.btn-primary {
    background-color: #0464cc;
    border-color: #0464cc;
    color: #ffffff;
}

button.btn-primary {
    background-color: #0464cc;
    border-color: #0464cc;
    color: #ffffff;
}

input.btn-primary {
    background-color: #0464cc;
    border-color: #0464cc;
    color: #ffffff;
}

.btn.btn-primary:hover {
    background-color: #f7d107;
    border-color: #f7d107;
    color: #333333;
}

button.btn-primary:hover {
    background-color: #f7d107;
    border-color: #f7d107;
    color: #333333;
}

input.btn-primary:hover {
    background-color: #f7d107;
    border-color: #f7d107;
    color: #333333;
}

.btn.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.btn-secondary,
.btn-outline-primary {
    background: transparent;
    border: 2px solid #0464cc;
    color: #0464cc;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-secondary:hover,
.btn-outline-primary:hover {
    background: #0464cc;
    color: #ffffff;
}

.ls-answers table,
table.ls-answers {
    border-collapse: collapse;
    width: 100%;
    background: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(4, 100, 204, 0.1);
}

.ls-answers thead th,
table.ls-answers thead th {
    background: linear-gradient(135deg, #0464cc, #0356b3);
    color: #ffffff;
    padding: 1rem;
    text-align: center;
    font-weight: 600;
    border: none;
}

.ls-answers tbody td,
table.ls-answers tbody td {
    padding: 0.75rem;
    border-bottom: 1px solid #e9ecef;
    text-align: center;
    transition: all 0.3s ease;
}

.ls-answers tbody tr:nth-child(even),
table.ls-answers tbody tr:nth-child(even),
.ls-even {
    background: #f8f9ff;
}

.ls-answers tbody tr:hover,
table.ls-answers tbody tr:hover {
    background: rgba(247, 209, 7, 0.1);
    transform: translateY(-1px);
}

.ls-answers tbody td:first-child,
table.ls-answers tbody td:first-child {
    background: #f8f9fa;
    font-weight: 600;
    color: #0464cc;
    text-align: left;
    border-right: 3px solid #f7d107;
}

.table.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.table.bg-primary th {
    background-color: #0356b3;
    color: #ffffff;
}

.table.bg-primary td {
    color: #ffffff;
}

.matrix-table,
.subquestion-list table,
table.question {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(4, 100, 204, 0.1);
}

.matrix-table thead,
.subquestion-list table thead,
table.question thead {
    background: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
}

.matrix-table thead th,
.subquestion-list table thead th,
table.question thead th {
    color: #ffffff;
    padding: 15px 10px;
    text-align: center;
    font-weight: 600;
    font-size: 14px;
    border: none;
    position: relative;
}

.matrix-table tbody td:first-child,
.subquestion-list table tbody td:first-child,
table.question tbody td:first-child {
    background: #f8f9ff;
    border-right: 3px solid #0464cc;
    font-weight: 600;
    color: #0464cc;
    padding: 15px;
    text-align: left;
}

.matrix-table tbody td,
.subquestion-list table tbody td,
table.question tbody td {
    padding: 12px 8px;
    text-align: center;
    border-bottom: 1px solid #e8f2ff;
    transition: all 0.3s ease;
    position: relative;
}

.matrix-table tbody tr:nth-child(even),
.subquestion-list table tbody tr:nth-child(even),
table.question tbody tr:nth-child(even) {
    background: #fafbff;
}

.matrix-table tbody tr:nth-child(odd),
.subquestion-list table tbody tr:nth-child(odd),
table.question tbody tr:nth-child(odd) {
    background: #ffffff;
}

.matrix-table tbody tr:hover,
.subquestion-list table tbody tr:hover,
table.question tbody tr:hover {
    background: #fff8e1;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(247, 209, 7, 0.2);
}

.matrix-table tbody td:nth-child(2) { 
    background: #ffebee; 
}

.matrix-table tbody td:nth-child(3) { 
    background: #fff3e0; 
}

.matrix-table tbody td:nth-child(4) { 
    background: #f9f9f9; 
}

.matrix-table tbody td:nth-child(5) { 
    background: #e8f5e8; 
}

.matrix-table tbody td:nth-child(6) { 
    background: #e1f5fe; 
}

#navigator-container {
    background: #f8f9fa;
    padding: 1.5rem;
    border-radius: 8px;
    margin-top: 2rem;
    border-top: 3px solid #f7d107;
}

#navigator-container > hr {
    border-color: #f7d107;
    border-width: 2px;
    margin: 1rem 0;
}

.nav.bg-primary {
    background-color: #0464cc;
}

.nav.bg-primary .nav-link {
    color: #ffffff;
}

.nav.bg-primary .nav-link:hover {
    color: #f7d107;
}

.breadcrumb.bg-primary {
    background-color: #0464cc;
}

.breadcrumb.bg-primary .breadcrumb-item {
    color: #ffffff;
}

.breadcrumb.bg-primary .breadcrumb-item a {
    color: #f7d107;
}

.question-valid-container {
    padding: 1rem;
    margin-top: 1rem;
}

.text-danger,
.input-error,
.has-error {
    color: #dc3545;
    background: #f8d7da;
    border-color: #dc3545;
    padding: 0.5rem;
    border-radius: 4px;
    border-left: 4px solid #dc3545;
}

.text-info {
    color: #0464cc;
    background: #e3f2fd;
    padding: 0.5rem;
}

.ls-questionhelp,
.question-help-container {
    background: #fff8e1;
    border: 1px solid #f7d107;
    border-radius: 6px;
    padding: 1rem;
    margin-top: 0.5rem;
    color: #333333;
}

.bg-primary a {
    color: #f7d107;
}

.bg-primary a:hover {
    color: #ffffff;
}

.card.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.panel.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.card.bg-primary .card-header {
    background-color: #0356b3;
    color: #ffffff;
}

.card.bg-primary .card-body {
    background-color: #0464cc;
    color: #ffffff;
}

.alert.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
    border-color: #0356b3;
}

.badge.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

span.badge.bg-primary {
    background-color: #0464cc;
    color: #ffffff;
}

.dropdown-menu.bg-primary {
    background-color: #0464cc;
}

.dropdown-menu.bg-primary .dropdown-item {
    color: #ffffff;
}

.dropdown-menu.bg-primary .dropdown-item:hover {
    background-color: #f7d107;
    color: #333333;
}

.text-primary {
    color: #0464cc;
}

.text-accent {
    color: #f7d107;
}

.bg-accent {
    background: #f7d107;
    color: #333333;
}

.border-primary {
    border-color: #0464cc;
}

.border-accent {
    border-color: #f7d107;
}

.shadow-primary {
    box-shadow: 0 4px 12px rgba(4, 100, 204, 0.15);
}

.shadow-accent {
    box-shadow: 0 4px 12px rgba(247, 209, 7, 0.15);
}

.superset.text-danger.asterisk.fa.fa-asterisk.small,
.text-danger.asterisk.fa.fa-asterisk.small,
.asterisk.fa.fa-asterisk.small,
span.superset.text-danger.asterisk.fa.fa-asterisk.small,
span.text-danger.asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    font-size: 10px;
    font-weight: bold;
    padding: 3px 5px;
    border-radius: 6px;
    margin-left: 4px;
    vertical-align: super;
    border: none;
    display: inline-block;
    line-height: 1;
    text-shadow: none;
    font-family: FontAwesome;
}

.superset.text-danger.asterisk.fa.fa-asterisk.small::before,
.text-danger.asterisk.fa.fa-asterisk.small::before,
.asterisk.fa.fa-asterisk.small::before {
    color: #ffffff;
    text-shadow: none;
}

.asterisk.float-start sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    font-size: 10px;
    font-weight: bold;
    padding: 3px 5px;
    border-radius: 6px;
    border: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-shadow: none;
    font-family: FontAwesome;
    vertical-align: baseline;
    position: relative;
    top: 0;
    margin: 0;
    min-width: 16px;
    min-height: 16px;
    text-align: center;
}

sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    font-size: 10px;
    font-weight: bold;
    padding: 3px 5px;
    border-radius: 6px;
    border: none;
    display: inline-block;
    line-height: 1;
    text-shadow: none;
    vertical-align: super;
}

.asterisk sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

div.asterisk.float-start sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

.asterisk.float-start sup.text-danger.fa.fa-asterisk.small::before,
sup.text-danger.fa.fa-asterisk.small::before {
    color: #ffffff;
    text-shadow: none;
}

sup.text-danger {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
}

.question-title .asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
.question-title sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

label .asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
label sup.text-danger.fa.fa-asterisk.small,
.form-label .asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
.form-label sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

.bg-primary .asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
.bg-primary sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    text-shadow: none;
    padding: 3px 5px;
}

.asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
sup.text-danger.fa.fa-asterisk.small {
    border-left: none;
    border-right: none;
    border-top: none;
    border-bottom: none;
}

.asterisk.float-start span.visually-hidden.text-danger {
    color: #dc3545;
}

.asterisk.float-start {
    margin-right: 4px;
}

div.asterisk.float-start {
    margin-right: 4px;
}

.question-title-container .asterisk.float-start {
    display: flex;
    align-items: center;
    margin-right: 4px;
    margin-top: 0;
    margin-bottom: 0;
    float: none;
}

.question-title-container .question-text {
    display: flex;
    align-items: center;
    flex: 1;
    margin: 0;
    padding: 0;
}

div.question-text {
    display: flex;
    align-items: center;
    flex: 1;
    margin: 0;
    padding: 0;
}

.question-text .ls-label-question {
    margin: 0;
    padding: 0;
    line-height: 1.4;
    display: flex;
    align-items: center;
}

.question-title-container .float-start {
    float: none;
    display: flex;
    align-items: center;
}

html body .question-title-container .asterisk.float-start {
    display: flex;
    align-items: center;
    margin-right: 4px;
    float: none;
}

html body .question-title-container .asterisk.float-start sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
    vertical-align: baseline;
    margin: 0;
    top: 0;
    position: relative;
}

html body .superset.text-danger.asterisk.fa.fa-asterisk.small,
html body .text-danger.asterisk.fa.fa-asterisk.small,
html body .asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

html body span.superset.text-danger.asterisk.fa.fa-asterisk.small,
html body span.text-danger.asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

html body .asterisk.float-start sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

html body sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

html body div.asterisk.float-start sup.text-danger.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

html body .asterisk.float-start sup.text-danger.fa.fa-asterisk.small[aria-hidden],
html body sup.text-danger.fa.fa-asterisk.small[aria-hidden] {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    text-shadow: none;
}

.fa-asterisk.superset.text-danger.asterisk.small,
.fa-asterisk.text-danger.asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
}

html body .question-title .superset.text-danger.asterisk.fa.fa-asterisk.small,
html body .question-title .text-danger.asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    margin-left: 3px;
    text-shadow: none;
}

html body label .superset.text-danger.asterisk.fa.fa-asterisk.small,
html body label .text-danger.asterisk.fa.fa-asterisk.small,
html body .form-label .superset.text-danger.asterisk.fa.fa-asterisk.small,
html body .form-label .text-danger.asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
    margin-left: 3px;
    text-shadow: none;
}

html body .bg-primary .superset.text-danger.asterisk.fa.fa-asterisk.small,
html body .bg-primary .text-danger.asterisk.fa.fa-asterisk.small {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    text-shadow: none;
    padding: 3px 5px;
}

html body .superset.text-danger.asterisk.fa.fa-asterisk.small[style],
html body .text-danger.asterisk.fa.fa-asterisk.small[style] {
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 6px;
    border: none;
    padding: 3px 5px;
}

.text-danger.asterisk {
    color: #ffffff;
}

.text-danger.fa-asterisk {
    color: #ffffff;
}

.question-title-container h1 .asterisk.float-start,
.question-title-container h2 .asterisk.float-start,
.question-title-container h3 .asterisk.float-start {
    align-self: flex-start;
    margin-top: 2px;
}

.question-title-container .ls-label-question {
    font-size: inherit;
    line-height: 1.4;
}

.question-title-container::after {
    content: "";
    display: table;
    clear: both;
}

.no-flexbox .question-title-container.bg-primary.col-12 {
    display: block;
}

.no-flexbox .question-title-container .asterisk.float-start {
    float: left;
    margin-top: 2px;
    margin-right: 8px;
}

.no-flexbox .question-title-container .question-text {
    overflow: hidden;
}

.radio-item,
.checkbox-item,
.form-control,
.btn-primary,
.btn-secondary {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media only screen and (max-width: 767px) {
    body {
        padding-top: 120px;
    }
    
    .group-title-container {
        padding: 1rem;
        border-radius: 6px 6px 0 0;
    }
    
    .group-title {
        font-size: 1.2rem;
    }
    
    .question-title-container {
        padding: 0.75rem 1rem;
    }
    
    .question-title {
        font-size: 1rem;
    }
    
    .answer-container {
        padding: 1rem;
    }
    
    .form-control,
    input,
    textarea,
    select {
        font-size: 16px;
        padding: 1rem;
    }
    
    input[type="radio"],
    input[type="checkbox"] {
        width: 22px;
        height: 22px;
        margin-right: 12px;
    }
    
    .radio-item label,
    .checkbox-item label {
        padding: 12px 16px;
        min-height: 44px;
        font-size: 16px;
    }
    
    .btn-primary,
    .btn-default,
    input[type="submit"],
    button[type="submit"] {
        padding: 1rem 2rem;
        font-size: 16px;
        min-height: 44px;
        width: 100%;
        margin-bottom: 0.5rem;
    }
    
    .ls-answers table,
    table.ls-answers {
        font-size: 14px;
    }
    
    .ls-answers thead th,
    table.ls-answers thead th {
        padding: 0.5rem;
        font-size: 12px;
    }
    
    .ls-answers tbody td,
    table.ls-answers tbody td {
        padding: 0.5rem;
        font-size: 14px;
    }
    
    .matrix-table,
    .subquestion-list table,
    table.question {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
    
    .matrix-table thead,
    .subquestion-list table thead,
    table.question thead {
        display: none;
    }
    
    .matrix-table tbody,
    .subquestion-list table tbody,
    table.question tbody {
        display: block;
    }
    
    .matrix-table tr,
    .subquestion-list table tr,
    table.question tr {
        display: block;
        margin-bottom: 20px;
        padding: 15px;
        background: #ffffff;
        border-radius: 8px;
        box-shadow: 0 2px 8px rgba(4, 100, 204, 0.1);
    }
    
    .matrix-table td,
    .subquestion-list table td,
    table.question td {
        display: block;
        text-align: left;
        padding: 8px 0;
        border: none;
    }
    
    .matrix-table td:first-child,
    .subquestion-list table td:first-child,
    table.question td:first-child {
        font-size: 16px;
        color: #0464cc;
        font-weight: bold;
        margin-bottom: 10px;
        border-bottom: 2px solid #f7d107;
        padding-bottom: 10px;
    }
    
    .matrix-table td:nth-child(2)::before { 
        content: "Muy insatisfecho: "; 
        font-weight: bold; 
    }
    
    .matrix-table td:nth-child(3)::before { 
        content: "Insatisfecho: "; 
        font-weight: bold; 
    }
    
    .matrix-table td:nth-child(4)::before { 
        content: "Neutral: "; 
        font-weight: bold; 
    }
    
    .matrix-table td:nth-child(5)::before { 
        content: "Satisfecho: "; 
        font-weight: bold; 
    }
    
    .matrix-table td:nth-child(6)::before { 
        content: "Muy satisfecho: "; 
        font-weight: bold; 
    }
    
    #navigator-container {
        padding: 1rem;
        margin-top: 1rem;
    }
    
    .progress {
        height: 25px;
        margin-bottom: 1rem;
    }
    
    .progress .progress-bar {
        font-size: 14px;
        line-height: 23px;
    }
    
    .question-title-container.bg-primary.col-12 {
        display: flex;
        align-items: center;
        gap: 3px;
        flex-wrap: wrap;
    }
    
    .question-title-container .asterisk.float-start {
        display: flex;
        align-items: center;
        margin-right: 3px;
        order: 1;
    }
    
    .question-title-container .question-text {
        order: 2;
        flex: 1;
    }
    
    .asterisk.float-start sup.text-danger.fa.fa-asterisk.small,
    sup.text-danger.fa.fa-asterisk.small {
        font-size: 12px;
        padding: 4px 6px;
        border-radius: 6px;
        border: none;
        color: #ffffff;
        background-color: #dc3545;
        text-shadow: none;
        margin: 0;
        vertical-align: baseline;
    }
    
    html body .superset.text-danger.asterisk.fa.fa-asterisk.small,
    html body .text-danger.asterisk.fa.fa-asterisk.small {
        font-size: 12px;
        padding: 4px 6px;
        margin-left: 5px;
        border-radius: 6px;
        border: none;
        color: #ffffff;
        background-color: #dc3545;
        text-shadow: none;
    }
}

@media only screen and (min-width: 768px) and (max-width: 1024px) {
    .question-title {
        font-size: 1.1rem;
    }
    
    .ls-answers thead th,
    table.ls-answers thead th {
        padding: 0.75rem;
        font-size: 14px;
    }
    
    .ls-answers tbody td,
    table.ls-answers tbody td {
        padding: 0.75rem;
    }
    
    .matrix-table th,
    .matrix-table td {
        padding: 10px 6px;
        font-size: 13px;
    }
    
    .matrix-table thead th {
        padding: 12px 8px;
    }
    
    .question-title-container.bg-primary.col-12 {
        display: flex;
        align-items: center;
        gap: 4px;
    }
    
    .question-title-container .asterisk.float-start {
        display: flex;
        align-items: center;
        margin-right: 4px;
    }
}

/* ========================================
   CSS CORRECCIONES FINALES COMPLETAS
   ======================================== */

/* RESET ABSOLUTO CONTENEDOR VALIDACIÓN - SIN BORDES */
.question-valid-container,
div.question-valid-container,
.question-valid-container.bg-primary,
.question-valid-container.text-info,
.question-valid-container.col-12,
.question-valid-container.bg-primary.text-info,
.question-valid-container.bg-primary.col-12,
.question-valid-container.text-info.col-12,
.question-valid-container.bg-primary.text-info.col-12,
div.question-valid-container.bg-primary.text-info.col-12 {
    background: none;
    background-color: transparent;
    background-image: none;
    color: #0464cc;
    border: 0;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-width: 0;
    border-style: none;
    border-color: transparent;
    border-radius: 0;
    padding: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: none;
    outline: none;
    display: block;
}

body .question-valid-container,
body div.question-valid-container,
body .question-valid-container.bg-primary,
body .question-valid-container.text-info,
body .question-valid-container.col-12,
body .question-valid-container.bg-primary.text-info.col-12,
html body .question-valid-container,
html body div.question-valid-container,
html body .question-valid-container.bg-primary.text-info.col-12 {
    background: none;
    background-color: transparent;
    background-image: none;
    color: #0464cc;
    border: 0;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-width: 0;
    border-style: none;
    border-radius: 0;
    padding: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: none;
    outline: none;
}

/* ELIMINAR PSEUDO-ELEMENTOS */
.question-valid-container::before,
.question-valid-container::after,
div.question-valid-container::before,
div.question-valid-container::after,
.question-valid-container.bg-primary::before,
.question-valid-container.bg-primary::after,
.question-valid-container.text-info::before,
.question-valid-container.text-info::after {
    display: none;
    content: none;
    background: none;
    border: none;
}

/* MENSAJE OBLIGATORIO - FONDO ROJO CLARO */
.ls-question-mandatory,
.ls-question-mandatory.text-danger,
.ls-question-mandatory.ls-question-mandatory-initial,
.ls-question-mandatory.ls-question-mandatory-initial.text-danger,
.text-danger.ls-question-mandatory,
.text-danger.ls-question-mandatory-initial,
div.ls-question-mandatory,
div.ls-question-mandatory.text-danger,
div.text-danger.ls-question-mandatory,
div.ls-question-mandatory.ls-question-mandatory-initial.text-danger {
    background: #f8d7da;
    background-color: #f8d7da;
    background-image: none;
    color: #dc3545;
    border: none;
    padding: 8px 12px;
    display: block;
    margin: 0;
}

body .ls-question-mandatory,
body .ls-question-mandatory.text-danger,
body .text-danger.ls-question-mandatory,
body div.ls-question-mandatory.text-danger,
html body .ls-question-mandatory,
html body .ls-question-mandatory.text-danger,
html body .text-danger.ls-question-mandatory,
html body div.ls-question-mandatory.ls-question-mandatory-initial.text-danger {
    background: #f8d7da;
    background-color: #f8d7da;
    background-image: none;
    color: #dc3545;
    border: none;
    padding: 8px 12px;
}

/* ÍCONO ROJO */
.ls-question-mandatory .fa,
.ls-question-mandatory .fa.fa-exclamation-circle,
.ls-question-mandatory .ri-error-warning-fill,
.text-danger .fa.fa-exclamation-circle,
.text-danger .ri-error-warning-fill,
body .ls-question-mandatory .fa,
html body .ls-question-mandatory .fa {
    color: #dc3545;
    background: transparent;
    background-color: transparent;
    margin-right: 6px;
}

/* CONTENEDOR PRINCIPAL CON ERROR - FONDO BLANCO + BORDE ROJO IZQUIERDO */
.question-container.input-error,
.row.text-short.mandatory.input-error.question-container,
.input-error.question-container,
.mandatory.input-error.question-container,
.has-error.question-container,
.error.question-container,
div.question-container.input-error,
div.row.text-short.mandatory.input-error.question-container {
    background: #ffffff;
    background-color: #ffffff;
    background-image: none;
    color: #333333;
    border: 2px solid #e9ecef;
    border-left: 4px solid #dc3545;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 2px 10px rgba(4, 100, 204, 0.1);
    margin-bottom: 2rem;
    overflow: hidden;
}

body .question-container.input-error,
body .row.text-short.mandatory.input-error.question-container,
html body .question-container.input-error,
html body .row.text-short.mandatory.input-error.question-container {
    background: #ffffff;
    background-color: #ffffff;
    background-image: none;
    color: #333333;
    border: 2px solid #e9ecef;
    border-left: 4px solid #dc3545;
    border-radius: 0 0 8px 8px;
}

/* TÍTULO EN CONTENEDOR CON ERROR */
.question-container.input-error .question-title-container {
    background-color: #f8f9fa;
    border-bottom: 2px solid #f7d107;
    color: #333333;
}

.question-container.input-error .question-title {
    color: #0464cc;
}

.question-container.input-error .question-title-container.bg-primary {
    background-color: #0464cc;
    background-image: linear-gradient(135deg, #0464cc 0%, #0356b3 100%);
    color: #ffffff;
    border-bottom: 2px solid #f7d107;
}

.question-container.input-error .question-title-container.bg-primary .question-title {
    color: #ffffff;
}

/* ANSWER CONTAINER - QUITAR PADDING */
.ls-answers.answer-item.text-item,
.answer-item.text-item,
div.ls-answers.answer-item.text-item,
.ls-answers.answer-item,
.answer-item {
    padding: 0;
    margin: 0;
}

body .ls-answers.answer-item.text-item,
body .answer-item.text-item,
body .ls-answers.answer-item,
html body .ls-answers.answer-item.text-item,
html body .answer-item.text-item {
    padding: 0;
    margin: 0;
}

/* ELIMINACIÓN COMPLETA DE BORDES BOOTSTRAP */
body .bg-primary.question-valid-container,
html body .bg-primary.question-valid-container,
.bg-primary.question-valid-container,
.text-info.question-valid-container,
.col-12.question-valid-container {
    background: transparent;
    background-color: transparent;
    background-image: none;
    border: none;
    border-top: none;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-width: 0;
    border-style: none;
    border-radius: 0;
    margin: 0;
    padding: 0;
}

body .text-info.question-valid-container,
html body .text-info.question-valid-container {
    color: #0464cc;
    background: transparent;
    background-color: transparent;
    background-image: none;
    border: none;
    border-top: none;
    border-bottom: none;
    border-width: 0;
    border-radius: 0;
}

body .text-danger.ls-question-mandatory,
html body .text-danger.ls-question-mandatory {
    color: #dc3545;
    background: #f8d7da;
    background-color: #f8d7da;
    background-image: none;
}

/* FUERZA BRUTA CON ATRIBUTOS - SIN BORDES */
div[class~="question-valid-container"] {
    background: transparent;
    color: #0464cc;
    border: none;
    border-top: none;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-width: 0;
    border-style: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
}

div[class~="question-valid-container"][class~="bg-primary"] {
    background: transparent;
    background-color: transparent;
    color: #0464cc;
    border: none;
    border-top: none;
    border-bottom: none;
    border-width: 0;
    border-radius: 0;
}

div[class~="question-valid-container"][class~="text-info"] {
    background: transparent;
    color: #0464cc;
    border: none;
    border-top: none;
    border-bottom: none;
    border-width: 0;
    border-radius: 0;
}

div[class~="ls-question-mandatory"][class~="text-danger"] {
    background: #f8d7da;
    background-color: #f8d7da;
    color: #dc3545;
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
}

div[class~="question-container"][class~="input-error"] {
    background: #ffffff;
    background-color: #ffffff;
    border: 2px solid #e9ecef;
    border-left: 4px solid #dc3545;
    color: #333333;
}

div[class~="ls-answers"][class~="answer-item"] {
    padding: 0;
    margin: 0;
}

/* OVERRIDE INLINE STYLES - SIN BORDES */
.question-valid-container[style] {
    background: transparent;
    background-color: transparent;
    color: #0464cc;
    border: none;
    border-top: none;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-width: 0;
    border-style: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
}

.question-valid-container[style*="border"] {
    border: none;
    border-top: none;
    border-bottom: none;
    border-width: 0;
}

.question-valid-container[style*="background"] {
    background: transparent;
    background-color: transparent;
}

.ls-question-mandatory[style] {
    background: #f8d7da;
    background-color: #f8d7da;
    color: #dc3545;
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
}

.question-container[style] {
    background: #ffffff;
    background-color: #ffffff;
    border-left: 4px solid #dc3545;
}

.ls-answers[style] {
    padding: 0;
}

/* ELIMINACIÓN COMPLETA DE ESTILOS PROBLEMÁTICOS */
.question-valid-container[class*="bg-"],
.question-valid-container[class*="text-"],
div.question-valid-container[class*="bg-"],
div.question-valid-container[class*="text-"] {
    background: transparent;
    background-color: transparent;
    background-image: none;
    border: none;
    border-top: none;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-width: 0;
    border-style: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    outline: none;
}

/* OVERRIDE MÁS ESPECÍFICO PARA ELIMINAR BORDES COMPLETAMENTE */
html body div.question-valid-container.bg-primary.text-info.col-12,
html body .question-valid-container.bg-primary.text-info.col-12,
html body div[class*="question-valid-container"][class*="bg-primary"],
html body div[class*="question-valid-container"][class*="text-info"] {
    background: none;
    background-color: transparent;
    background-image: none;
    color: #0464cc;
    border: 0;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    border-width: 0;
    border-style: none;
    border-color: transparent;
    border-radius: 0;
    padding: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: none;
    outline: none;
    display: block;
    position: static;
}

/* RESPONSIVO */
@media only screen and (max-width: 767px) {
    .ls-question-mandatory,
    .ls-question-mandatory.text-danger,
    body .ls-question-mandatory.text-danger,
    html body .ls-question-mandatory.text-danger {
        background: #f8d7da;
        background-color: #f8d7da;
        color: #dc3545;
        border: none;
        border-radius: 6px;
        padding: 10px 14px;
        font-size: 14px;
        margin: 8px 0;
    }
    
    .question-valid-container,
    .question-valid-container.bg-primary,
    body .question-valid-container.bg-primary,
    html body .question-valid-container.bg-primary {
        background: transparent;
        background-color: transparent;
        color: #0464cc;
        border: none;
        border-top: none;
        border-bottom: none;
        border-width: 0;
        border-radius: 0;
        padding: 0;
        margin: 0;
        box-shadow: none;
    }
    
    .ls-answers.answer-item,
    body .ls-answers.answer-item,
    html body .ls-answers.answer-item {
        padding: 0;
        margin: 0;
    }
    
    .question-container.input-error {
        border-left: 4px solid #dc3545;
        background: #ffffff;
    }
}

.bootstrap-buttons-div .form-check input[type="checkbox"].btn-check {
   position: absolute;
   opacity: 0;
   pointer-events: none;
   width: 0;
   height: 0;
}

.bootstrap-buttons-div .form-check label.btn {
   background: #ffffff;
   border: 2px solid #0464cc;
   color: #0464cc;
   padding: 0.75rem 1rem;
   border-radius: 6px;
   font-weight: 600;
   transition: all 0.3s ease;
   cursor: pointer;
   display: block;
   text-align: center;
   width: 100%;
}

.bootstrap-buttons-div .form-check label.btn:hover {
   background: rgba(4, 100, 204, 0.1);
   border-color: #0464cc;
   transform: translateY(-1px);
   box-shadow: 0 2px 8px rgba(4, 100, 204, 0.2);
}

.bootstrap-buttons-div .form-check input[type="checkbox"]:checked + label.btn {
   background: #f7d107;
   border-color: #f7d107;
   color: #333333;
   transform: translateY(-1px);
   box-shadow: 0 4px 12px rgba(247, 209, 7, 0.3);
}

.bootstrap-buttons-div .form-check input[type="checkbox"]:checked + label.btn:hover {
   background: #e6c406;
   border-color: #e6c406;
   color: #333333;
}

@media only screen and (max-width: 767px) {
   .bootstrap-buttons-div .form-check label.btn {
       padding: 1rem;
       font-size: 14px;
       min-height: 50px;
       display: flex;
       align-items: center;
       justify-content: center;
   }
}

.question-valid-container.bg-primary.text-info.col-12 {
   background: transparent !important;
   background-color: transparent !important;
   background-image: none !important;
   border: none !important;
   border-top: none !important;
   border-bottom: none !important;
   border-left: none !important;
   border-right: none !important;
   border-width: 0 !important;
   border-style: none !important;
   border-radius: 0 !important;
   padding: 0 !important;
   padding-top: 0 !important;
   padding-bottom: 0 !important;
   padding-left: 0 !important;
   padding-right: 0 !important;
   margin: 0 !important;
   margin-top: 0 !important;
   margin-bottom: 0 !important;
   margin-left: 0 !important;
   margin-right: 0 !important;
   box-shadow: none !important;
   outline: none !important;
}

.question-valid-container .ls-questionhelp {
   background: transparent !important;
   background-color: transparent !important;
   border: none !important;
   padding: 0 !important;
   margin: 0 !important;
   box-shadow: none !important;
}

.question-valid-container .ls-questionhelp .ls-question-message {
   background: #fff8e1 !important;
   border: 1px solid #f7d107 !important;
   border-radius: 6px !important;
   padding: 1rem !important;
   margin: 0 !important;
   color: #333333 !important;
   font-weight: 500 !important;
   text-align: center !important;
}

.question-valid-container .ls-questionhelp .ls-question-message.ls-em-tip {
   background: #fff8e1 !important;
   border-color: #f7d107 !important;
   color: #333333 !important;
}

@media only screen and (max-width: 767px) {
   .question-valid-container .ls-questionhelp .ls-question-message {
       padding: 0.75rem !important;
       font-size: 14px !important;
   }
}

.navbar .logo-container .logo {
   max-height: 80px;
   height: auto;
   width: auto;
   object-fit: contain;
}

.navbar .logo-container {
   max-width: 250px;
}

.navbar .nav-link {
   background: #0464cc !important;
   border: 2px solid #0464cc !important;
   color: #ffffff !important;
   padding: 0.75rem 1.25rem;
   border-radius: 6px;
   font-weight: 600;
   transition: all 0.3s ease;
   text-decoration: none !important;
   margin: 0 0.25rem;
   display: inline-block;
   line-height: 1.2;
   white-space: nowrap;
}

.navbar .nav-link:hover {
   background: #f7d107 !important;
   border-color: #f7d107 !important;
   color: #333333 !important;
}

.navbar .nav-link:focus {
   background: #0464cc !important;
   border-color: #0464cc !important;
   color: #ffffff !important;
   box-shadow: 0 0 0 0.2rem rgba(4, 100, 204, 0.25);
}

.navbar .nav-link:visited {
   color: #ffffff !important;
}

.navbar .navbar-nav .nav-item {
   margin: 0 0.25rem;
}

.navbar-brand {
   padding: 0.5rem 0;
}

@media only screen and (max-width: 767px) {
   .navbar .logo-container .logo {
       max-height: 60px;
   }
   
   .navbar .logo-container {
       max-width: 200px;
   }
   
   .navbar .nav-link {
       padding: 0.875rem 1.5rem;
       margin: 0.25rem 0;
       width: 100%;
       text-align: center;
       white-space: normal;
   }
   
   .navbar .navbar-nav .nav-item {
       margin: 0.25rem 0;
   }
}

@media only screen and (min-width: 768px) and (max-width: 1024px) {
   .navbar .logo-container .logo {
       max-height: 70px;
   }
   
   .navbar .logo-container {
       max-width: 220px;
   }
   
   .navbar .nav-link {
       padding: 0.8rem 1.3rem;
   }
}

.ls-answers.radio-list .answer-item.radio-item {
   margin-bottom: 0.75rem;
   padding: 0 1.5rem;
}

.ls-answers.radio-list .answer-item.radio-item label {
   display: flex;
   align-items: center;
   padding: 0.25rem 1rem;
   margin: 0;
   cursor: pointer;
   font-weight: 500;
   width: 100%;
}

.ls-answers.radio-list .answer-item.radio-item input[type="radio"] {
   margin-right: 1rem;
   flex-shrink: 0;
}

.ls-answers.radio-list .radio-text-item {
   align-items: center;
   gap: 0.75rem;
   margin-bottom: 0.75rem;
   padding: 0 1.5rem;
}

.ls-answers.radio-list .radio-text-item .othertext-label-checkox-container {
   flex-shrink: 0;
   margin: 0;
   padding: 0;
}

.ls-answers.radio-list .radio-text-item .othertext-label-checkox-container label {
   display: flex;
   align-items: center;
   padding: 0.25rem 1rem;
   margin: 0;
   cursor: pointer;
   font-weight: 500;
   white-space: nowrap;
}

.ls-answers.radio-list .radio-text-item .othertext-label-checkox-container input[type="radio"] {
   margin-right: 1rem;
   flex-shrink: 0;
}

@media only screen and (max-width: 767px) {
   .ls-answers.radio-list .answer-item.radio-item {
       margin-bottom: 0.5rem;
       padding: 0 1.5rem;
   }
   
   .ls-answers.radio-list .answer-item.radio-item label {
       padding: 0.75rem 1.25rem;
       font-size: 16px;
       min-height: 50px;
   }
   
   .ls-answers.radio-list .answer-item.radio-item input[type="radio"] {
       margin-right: 1.25rem;
   }
   
   .ls-answers.radio-list .radio-text-item {
       flex-direction: column;
       align-items: stretch;
       gap: 0.5rem;
       padding: 0 1.5rem;
       margin-bottom: 0.5rem;
   }
   
   .ls-answers.radio-list .radio-text-item .othertext-label-checkox-container,
   .ls-answers.radio-list .radio-text-item .text-item {
       width: 100%;
   }
   
   .ls-answers.radio-list .radio-text-item .othertext-label-checkox-container label {
       padding: 0.75rem 1.25rem;
       min-height: 50px;
   }
   
   .ls-answers.radio-list .radio-text-item .othertext-label-checkox-container input[type="radio"] {
       margin-right: 1.25rem;
   }
}

.ls-answers.radio-list .list-unstyled {
   margin-bottom: 0 !important;
}

.ls-answers.answer-item {
   width: 100%;
}

.ls-answers.answer-item .col-auto {
   width: auto;
   flex: none;
   min-width: 300px;
   max-width: 500px;
}

.ls-answers.answer-item select.form-select {
   border: 2px solid #e9ecef;
   border-radius: 8px;
   padding: 0.75rem 1rem;
   font-size: 1rem;
   font-weight: 500;
   color: #333333;
   background-color: #ffffff;
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 6 7 7 7-7'/%3e%3c/svg%3e");
   background-repeat: no-repeat;
   background-position: right 0.75rem center;
   background-size: 16px 12px;
   transition: all 0.3s ease;
   appearance: none;
   -webkit-appearance: none;
   -moz-appearance: none;
   min-height: 50px;
   cursor: pointer;
   width: 100%;
   min-width: 300px;
}

.ls-answers.answer-item select.form-select:hover {
   border-color: #0464cc;
   background-color: rgba(4, 100, 204, 0.05);
   transform: translateY(-1px);
   box-shadow: 0 2px 8px rgba(4, 100, 204, 0.15);
}

.ls-answers.answer-item select.form-select:focus {
   border-color: #0464cc;
   background-color: #ffffff;
   box-shadow: 0 0 0 0.2rem rgba(4, 100, 204, 0.25);
   outline: none;
}

.ls-answers.answer-item select.form-select option {
   padding: 0.75rem 1rem;
   font-size: 1rem;
   color: #333333 !important;
   background-color: #ffffff !important;
}

.ls-answers.answer-item select.form-select option:hover,
.ls-answers.answer-item select.form-select option:focus {
   background-color: #0464cc !important;
   color: #ffffff !important;
}

.ls-answers.answer-item select.form-select option:checked {
   background-color: #0464cc !important;
   color: #ffffff !important;
}

.ls-answers.answer-item select.form-select option[selected] {
   background-color: #0464cc !important;
   color: #ffffff !important;
}

.ls-answers.answer-item select.form-select option[value=""] {
   color: #666666 !important;
   font-style: italic;
   background-color: #f8f9fa !important;
}

@media only screen and (max-width: 767px) {
   .ls-answers.answer-item .col-auto {
       width: 100%;
       min-width: auto;
       max-width: none;
   }
   
   .ls-answers.answer-item select.form-select {
       padding: 1rem;
       font-size: 16px;
       min-height: 55px;
       background-position: right 1rem center;
       min-width: auto;
       width: 100%;
   }
   
   .ls-answers.answer-item select.form-select option {
       padding: 1rem;
       font-size: 16px;
       min-height: 50px;
   }
}

/* ========================================
   EMOJI SLIDER PERSONALIZADO 100% CUSTOM
   Diseño completamente nuevo y personalizado
   ======================================== */

/* Contenedor principal personalizado */
.custom-emoji-slider {
    width: 100%;
    max-width: 450px;
    margin: 2rem auto;
    padding: 1.5rem;
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    border: 1px solid #e9ecef;
    position: relative;
    box-sizing: border-box;
}

/* Área de emojis */
.custom-emoji-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding: 0 1rem;
    position: relative;
}

/* Emoji individual */
.custom-emoji-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    padding: 0.75rem;
    border-radius: 12px;
    transition: all 0.3s ease;
    position: relative;
    flex: 1;
    max-width: 80px;
}

.custom-emoji-item:hover {
    background: rgba(4, 100, 204, 0.05);
    transform: translateY(-2px);
}

.custom-emoji-item.selected {
    background: linear-gradient(135deg, #0464cc, #0356b3);
    transform: translateY(-4px) scale(1.05);
    box-shadow: 0 8px 24px rgba(4, 100, 204, 0.3);
}

/* Emoji icons */
.custom-emoji-icon {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    filter: grayscale(0.2);
    transition: all 0.3s ease;
    line-height: 1;
}

.custom-emoji-item:hover .custom-emoji-icon {
    filter: grayscale(0);
    transform: scale(1.1);
}

.custom-emoji-item.selected .custom-emoji-icon {
    filter: grayscale(0) brightness(1.2);
    transform: scale(1.15);
    text-shadow: 0 0 20px rgba(255, 255, 255, 0.5);
}

/* Texto descriptivo */
.custom-emoji-text {
    font-size: 0.75rem;
    font-weight: 600;
    color: #666;
    text-align: center;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.custom-emoji-item:hover .custom-emoji-text {
    color: #0464cc;
}

.custom-emoji-item.selected .custom-emoji-text {
    color: white;
    font-weight: 700;
}

/* Contenedor del slider */
.custom-slider-container {
    position: relative;
    width: 100%;
    height: 40px;
    display: flex;
    align-items: center;
    padding: 0 1rem;
    box-sizing: border-box;
}

/* Track del slider */
.custom-slider-track {
    width: 100%;
    height: 8px;
    background: linear-gradient(
        90deg,
        #ff4757 0%,
        #ffa726 20%,
        #ffeb3b 40%,
        #66bb6a 60%,
        #42a5f5 80%,
        #ab47bc 100%
    );
    border-radius: 4px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Handle del slider */
.custom-slider-handle {
    position: absolute;
    top: 50%;
    left: 0%;
    width: 24px;
    height: 24px;
    background: white;
    border: 3px solid #0464cc;
    border-radius: 50%;
    cursor: grab;
    transform: translate(-50%, -50%);
    box-shadow: 0 4px 12px rgba(4, 100, 204, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10;
}

.custom-slider-handle:hover {
    transform: translate(-50%, -50%) scale(1.2);
    box-shadow: 0 6px 20px rgba(4, 100, 204, 0.5);
    border-width: 4px;
}

.custom-slider-handle:active,
.custom-slider-handle.dragging {
    cursor: grabbing;
    transform: translate(-50%, -50%) scale(1.1);
}

/* Indicadores de valor */
.custom-value-indicators {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    padding: 0 1rem;
}

.custom-value-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #dee2e6;
    transition: all 0.3s ease;
}

.custom-value-dot.active {
    background: #0464cc;
    transform: scale(1.5);
    box-shadow: 0 0 12px rgba(4, 100, 204, 0.5);
}

/* Ocultar elementos originales de LimeSurvey */
.ls-emojislider {
    display: none !important;
}

.answers-list.slidered-list.visually-hidden {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */

/* Desktop grande */
@media (min-width: 1200px) {
    .custom-emoji-slider {
        max-width: 550px;
        padding: 2rem;
    }
    
    .custom-emoji-icon {
        font-size: 3rem;
    }
    
    .custom-emoji-text {
        font-size: 0.875rem;
    }
    
    .custom-slider-handle {
        width: 28px;
        height: 28px;
        border-width: 4px;
    }
    
    .custom-slider-track {
        height: 10px;
    }
}

/* Tablet */
@media (max-width: 768px) {
    .custom-emoji-slider {
        max-width: 100%;
        margin: 1.5rem auto;
        padding: 1.25rem;
    }
    
    .custom-emoji-container {
        margin-bottom: 1.5rem;
        padding: 0 0.5rem;
    }
    
    .custom-emoji-item {
        padding: 0.5rem;
        max-width: 70px;
    }
    
    .custom-emoji-icon {
        font-size: 2rem;
        margin-bottom: 0.375rem;
    }
    
    .custom-emoji-text {
        font-size: 0.6875rem;
    }
    
    .custom-slider-handle {
        width: 20px;
        height: 20px;
        border-width: 2px;
    }
    
    .custom-slider-track {
        height: 6px;
    }
    
    .custom-slider-container {
        padding: 0 0.5rem;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .custom-emoji-slider {
        margin: 1rem auto;
        padding: 1rem;
    }
    
    .custom-emoji-container {
        margin-bottom: 1.25rem;
        padding: 0 0.25rem;
    }
    
    .custom-emoji-item {
        padding: 0.375rem;
        max-width: 60px;
    }
    
    .custom-emoji-icon {
        font-size: 1.75rem;
        margin-bottom: 0.25rem;
    }
    
    .custom-emoji-text {
        font-size: 0.625rem;
    }
    
    .custom-slider-handle {
        width: 18px;
        height: 18px;
        border-width: 2px;
    }
    
    .custom-slider-track {
        height: 5px;
    }
    
    .custom-value-dot {
        width: 6px;
        height: 6px;
    }
}

/* Mobile pequeño */
@media (max-width: 320px) {
    .custom-emoji-slider {
        padding: 0.75rem;
    }
    
    .custom-emoji-item {
        padding: 0.25rem;
        max-width: 50px;
    }
    
    .custom-emoji-icon {
        font-size: 1.5rem;
    }
    
    .custom-emoji-text {
        font-size: 0.5625rem;
    }
    
    .custom-slider-handle {
        width: 16px;
        height: 16px;
        border-width: 1px;
    }
    
    .custom-slider-track {
        height: 4px;
    }
}

/* ========================================
   ACCESIBILIDAD
   ======================================== */

@media (prefers-reduced-motion: reduce) {
    .custom-emoji-item,
    .custom-emoji-icon,
    .custom-emoji-text,
    .custom-slider-handle,
    .custom-value-dot {
        transition: none;
    }
}

@media (prefers-contrast: high) {
    .custom-emoji-slider {
        border: 2px solid #000;
        background: #fff;
    }
    
    .custom-slider-track {
        background: linear-gradient(
            90deg,
            #c00 0%,
            #f60 20%,
            #ff0 40%,
            #0c0 60%,
            #06c 80%,
            #90c 100%
        );
    }
    
    .custom-slider-handle {
        border-color: #000;
        border-width: 3px;
    }
    
    .custom-emoji-text {
        color: #000;
        font-weight: 700;
    }
}

/* ========================================
   VALIDACIÓN DE EMAIL - DISEÑO WARNING
   ======================================== */

/* Ocultar contenedores vacíos */
.question-valid-container:empty {
    display: none !important;
}

/* Mostrar solo cuando hay contenido de validación */
.question-valid-container:not(:empty) {
    display: block !important;
    visibility: visible !important;
    background: transparent !important;
    border: none !important;
    padding: 0.5rem 0 !important;
    margin: 0 !important;
}

/* Estilo para el mensaje de warning/ayuda - TEMA AMARILLO */
.question-valid-container .ls-questionhelp {
    background: #fff8e1 !important;
    border: 1px solid #f7d107 !important;
    border-left: 4px solid #f7d107 !important;
    border-radius: 6px !important;
    padding: 0.75rem 1rem !important;
    margin: 0.5rem 0 !important;
    color: #8a6d00 !important;
    font-weight: 500 !important;
    position: relative !important;
}

/* Quitar el ícono problemático */
.question-valid-container .ls-questionhelp::before {
    display: none !important;
    content: none !important;
}

/* El mensaje específico dentro */
.question-valid-container .ls-questionhelp .ls-question-message {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #8a6d00 !important;
    font-weight: 500 !important;
}

/* Forzar el color del texto para todas las clases */
.question-valid-container .ls-questionhelp .ls-question-message.text-danger,
.question-valid-container .ls-questionhelp .text-danger,
.question-valid-container .text-danger {
    color: #8a6d00 !important;
    background: transparent !important;
}

/* Quitar iconos de Font Awesome o similares */
.question-valid-container .ls-questionhelp .fa,
.question-valid-container .ls-questionhelp .fa-exclamation-circle,
.question-valid-container .ls-questionhelp .ri-error-warning-fill,
.question-valid-container .fa,
.question-valid-container .fa-exclamation-circle {
    display: none !important;
}

/* Agregar nuestro propio ícono de warning */
.question-valid-container .ls-questionhelp .ls-question-message::before {
    content: "⚠️ ";
    margin-right: 0.5rem;
    font-size: 0.9rem;
}

/* Ocultar el contenedor cuando no hay errores */
.question-container:not(.input-error) .question-valid-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Solo mostrar cuando hay error */
.question-container.input-error .question-valid-container {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
}

/* Forzar ocultación cuando no hay error */
body .question-container:not(.input-error) .question-valid-container,
html body .question-container:not(.input-error) .question-valid-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Responsivo */
@media only screen and (max-width: 767px) {
    .question-valid-container .ls-questionhelp {
        padding: 0.5rem 0.75rem !important;
        font-size: 14px !important;
    }
    
    .question-valid-container .ls-questionhelp .ls-question-message::before {
        font-size: 0.8rem;
    }
}

/* ========================================
   OCULTAR MENSAJE CUANDO EMAIL ES VÁLIDO
   ======================================== */

/* Ocultar el contenedor de validación cuando no hay errores */
.question-container:not(.input-error) .question-valid-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Solo mostrar cuando hay error (contenedor tiene clase input-error) */
.question-container.input-error .question-valid-container {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
}

/* Alternativamente, ocultar cuando el input no tiene clase de error */
.question-container .form-control:valid ~ .question-valid-container,
.question-container .form-control.is-valid ~ .question-valid-container {
    display: none !important;
}

/* Forzar ocultación cuando no hay clase input-error */
body .question-container:not(.input-error) .question-valid-container,
html body .question-container:not(.input-error) .question-valid-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}