/* Global Styles */
:root {
    --primary-color: #0d6efd;
    --secondary-color: #6c757d;
    --success-color: #198754;
    --danger-color: #dc3545;
    --warning-color: #ffc107;
    --info-color: #0dcaf0;
    --light-color: #f8f9fa;
    --dark-color: #212529;
    --border-radius: 6px;
    --box-shadow: 0 1px 6px rgba(0,0,0,0.08);
    --transition: all 0.3s ease;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.5;
    font-size: 0.95rem;
    color: var(--dark-color);
    background-color: #f8f9fa;
}

.main-content {
    min-height: calc(100vh - 200px);
    padding: 1rem 0;
}

/* Navigation Styles - Enhanced to prevent shaking */
.navbar {
    box-shadow: var(--box-shadow);
}

.navbar-brand {
    font-size: 1.25rem;
    font-weight: 700;
}

.navbar-nav .nav-link {
    font-weight: 500;
    transition: var(--transition);
    padding: 0.35rem 0.75rem;
    font-size: 0.95rem;
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

.navbar-nav .nav-link:hover {
    color: rgba(255, 255, 255, 0.8) !important;
    /* Remove transform to prevent shaking */
}

.navbar-nav .nav-link:active {
    /* Prevent any movement on click */
    transform: none;
}

.dropdown-menu {
    border: none;
    box-shadow: var(--box-shadow);
    border-radius: var(--border-radius);
    /* Prevent layout shift */
    margin-top: 0;
}

.dropdown-item {
    padding: 0.5rem 1rem;
    transition: var(--transition);
    /* Prevent layout shift */
    display: block;
    position: relative;
    font-size: 0.95rem;
}

.dropdown-item:hover {
    background-color: var(--light-color);
    /* Remove transform to prevent shaking */
}

.dropdown-item:active {
    /* Prevent any movement on click */
    transform: none;
}

/* Card Styles - Enhanced to prevent shaking */
.card {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    transition: var(--transition);
    overflow: hidden;
    /* Prevent layout shift */
    position: relative;
}

.card:hover {
    /* Remove transform to prevent shaking */
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

.card-header {
    background: linear-gradient(135deg, var(--primary-color) 0%, #0b5ed7 100%);
    color: white;
    border: none;
    padding: 1rem;
    font-weight: 600;
}

.card-body {
    padding: 1.25rem;
}

/* Form Styles - Fixed to prevent shaking */
.form-label {
    font-weight: 600;
    color: var(--dark-color);
    margin-bottom: 0.4rem;
}

.form-control, .form-select {
    border-radius: var(--border-radius);
    border: 1px solid #e2e6ea;
    padding: 0.5rem 0.75rem;
    transition: var(--transition);
    font-size: 0.95rem;
    /* Prevent layout shift on hover/focus */
    box-sizing: border-box;
    min-height: 40px;
}

/* Ensure room for the Bootstrap select arrow */
.form-select:not([multiple]):not([size]),
.form-select[size="1"] {
    padding-right: 2.25rem; /* space for arrow */
    background-position: right 0.75rem center;
    background-repeat: no-repeat;
    background-size: 16px 12px;
}

/* Do not reserve extra space for multi-selects or sized lists */
.form-select[multiple],
.form-select[size]:not([size="1"]) {
    padding-right: 0.75rem;
    background-image: none;
}

/* Size variants keep appropriate right padding */
.form-select-sm:not([multiple]):not([size]),
.form-select-sm[size="1"] { padding-right: 2rem; }
.form-select-lg:not([multiple]):not([size]),
.form-select-lg[size="1"] { padding-right: 2.75rem; }

/* Legacy selects styled with form-control need arrow space too */
select.form-control:not([multiple]):not([size]) {
    padding-right: 2.25rem;
}

/* SurveyJS dropdowns: ensure space for the arrow/indicator */
.sv_q_dropdown_control select:not([multiple]):not([size]),
.sd-selectbase select:not([multiple]):not([size]) {
    padding-right: 2.25rem;
}

.form-control:hover, .form-select:hover {
    border-color: #adb5bd;
    /* No transform to prevent shaking */
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary-color);
    /* Reduce focus shadow to avoid apparent height growth */
    box-shadow: 0 0 0 0.1rem rgba(13, 110, 253, 0.25);
    /* Remove transform to prevent shaking */
    outline: none;
}

.form-control.is-invalid, .form-select.is-invalid {
    border-color: var(--danger-color);
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-control.is-valid, .form-select.is-valid {
    border-color: var(--success-color);
    box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25);
}

.form-text {
    font-size: 0.825rem;
    color: var(--secondary-color);
    margin-top: 0.2rem;
}

.invalid-feedback {
    font-size: 0.825rem;
    color: var(--danger-color);
    margin-top: 0.2rem;
}

/* Button Styles - Enhanced to prevent shaking */
.btn {
    border-radius: var(--border-radius);
    padding: 0.5rem 1rem;
    font-weight: 600;
    transition: var(--transition);
    border: none;
    text-decoration: none;
    display: inline-block;
    /* Prevent layout shift */
    position: relative;
    overflow: hidden;
    font-size: 0.95rem;
}

/* Ensure oversized buttons remain compact */
.btn-lg, .btn-group-lg > .btn {
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
    line-height: 1.5;
}

.btn:hover {
    /* Remove transform to prevent shaking */
    box-shadow: 0 3px 10px rgba(0,0,0,0.15);
    text-decoration: none;
}

.btn:active {
    /* Prevent any movement on click */
    transform: none;
}

.btn:focus {
    /* Prevent focus outline movement */
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary-color) 0%, #0b5ed7 100%);
}

.btn-success {
    background: linear-gradient(135deg, var(--success-color) 0%, #157347 100%);
}

.btn-secondary {
    background: linear-gradient(135deg, var(--secondary-color) 0%, #5c636a 100%);
}

.btn-danger {
    background: linear-gradient(135deg, var(--danger-color) 0%, #bb2d3b 100%);
}

.btn-warning {
    background: linear-gradient(135deg, var(--warning-color) 0%, #e0a800 100%);
    color: var(--dark-color);
}

.btn-info {
    background: linear-gradient(135deg, var(--info-color) 0%, #0aa2c0 100%);
    color: white;
}

.btn-outline-primary {
    border: 2px solid var(--primary-color);
    color: var(--primary-color);
    background: transparent;
}

.btn-outline-primary:hover {
    background: var(--primary-color);
    color: white;
}

/* Form Check Styles - Enhanced to prevent shaking */
.form-check-input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    border-radius: 4px;
    /* Prevent layout shift */
    position: relative;
}

.form-check-input:checked {
    background-color: var(--success-color);
    border-color: var(--success-color);
}

.form-check-input:focus {
    /* Prevent focus outline movement */
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.form-check-label {
    font-weight: 500;
    color: var(--dark-color);
    margin-left: 0.5rem;
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

/* Alert Styles - Enhanced to prevent shaking */
.alert {
    border-radius: var(--border-radius);
    border: none;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
    /* Prevent layout shift */
    position: relative;
}

.alert-danger {
    background: linear-gradient(135deg, #f8d7da 0%, #f5c2c7 100%);
    color: #721c24;
    border-left: 4px solid var(--danger-color);
}

.alert-warning {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    color: #856404;
    border-left: 4px solid var(--warning-color);
}

.alert-success {
    background: linear-gradient(135deg, #d1e7dd 0%, #badbcc 100%);
    color: #0f5132;
    border-left: 4px solid var(--success-color);
}

.alert-info {
    background: linear-gradient(135deg, #cff4fc 0%, #b6effb 100%);
    color: #055160;
    border-left: 4px solid var(--info-color);
}

.alert-heading {
    color: inherit;
    font-weight: 700;
}

/* Table Styles - Enhanced to prevent shaking */
.table {
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--box-shadow);
    /* Prevent layout shift */
    position: relative;
}

.table thead th {
    background: linear-gradient(135deg, var(--primary-color) 0%, #0b5ed7 100%);
    color: white;
    border: none;
    font-weight: 600;
    padding: 0.75rem;
    /* Prevent layout shift */
    position: relative;
}

.table tbody tr {
    transition: var(--transition);
    /* Prevent layout shift */
    position: relative;
    font-size: 0.95rem;
}

.table tbody tr:hover {
    background-color: rgba(13, 110, 253, 0.05);
    /* Remove transform to prevent shaking */
}

.table tbody tr:active {
    /* Prevent any movement on click */
    transform: none;
}

/* Compact table cell padding */
.table td, .table th {
    padding: 0.5rem 0.75rem;
}

/* Badge Styles - Enhanced to prevent shaking */
.badge {
    font-size: 0.8rem;
    padding: 0.35rem 0.5rem;
    border-radius: var(--border-radius);
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

/* Toast Styles - Enhanced to prevent shaking */
.toast {
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    /* Prevent layout shift */
    position: relative;
}

.toast-header {
    background: linear-gradient(135deg, var(--primary-color) 0%, #0b5ed7 100%);
    color: white;
    border: none;
}

/* Footer Styles - Enhanced to prevent shaking */
.footer {
    background: linear-gradient(135deg, var(--light-color) 0%, #e9ecef 100%);
    border-top: 1px solid #dee2e6;
}

.footer a {
    color: var(--primary-color);
    transition: var(--transition);
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
    font-size: 0.95rem;
}

.footer a:hover {
    color: #0b5ed7;
    /* No transform to prevent shaking */
}

/* Utility Classes */
.shadow-custom {
    box-shadow: var(--box-shadow);
}

.rounded-custom {
    border-radius: var(--border-radius);
}

.transition-custom {
    transition: var(--transition);
}

/* Enhanced Anti-Shaking Styles for Common Elements */
/* Links and anchor tags */
a {
    transition: var(--transition);
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

a:hover {
    /* No transform to prevent shaking */
    text-decoration: none;
}

a:active {
    /* Prevent any movement on click */
    transform: none;
}

/* List items */
.list-group-item {
    transition: var(--transition);
    /* Prevent layout shift */
    position: relative;
}

.list-group-item:hover {
    background-color: rgba(13, 110, 253, 0.05);
    /* No transform to prevent shaking */
}

.list-group-item:active {
    /* Prevent any movement on click */
    transform: none;
}

/* Modal elements */
.modal-content {
    /* Prevent layout shift */
    position: relative;
}

.modal-header, .modal-body, .modal-footer {
    /* Prevent layout shift */
    position: relative;
}

/* Pagination */
.page-link {
    transition: var(--transition);
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

.page-link:hover {
    background-color: var(--light-color);
    /* No transform to prevent shaking */
}

.page-link:active {
    /* Prevent any movement on click */
    transform: none;
}

.page-item.active .page-link {
    /* Prevent layout shift */
    position: relative;
}

/* Tabs and pills */
.nav-tabs .nav-link, .nav-pills .nav-link {
    transition: var(--transition);
    /* Prevent layout shift */
    display: inline-block;
    position: relative;
}

.nav-tabs .nav-link.active, .nav-pills .nav-link.active {
    /* Prevent layout shift */
    position: relative;
}

/* Accordion elements */
.accordion-button {
    transition: var(--transition);
    /* Prevent layout shift */
    position: relative;
}

.accordion-button:not(.collapsed) {
    /* Prevent layout shift */
    position: relative;
}

/* Progress bars */
.progress {
    /* Prevent layout shift */
    position: relative;
}

.progress-bar {
    transition: var(--transition);
    /* Prevent layout shift */
    position: relative;
}

/* Tooltips and popovers */
.tooltip, .popover {
    /* Prevent layout shift */
    position: absolute;
}

/* Custom form elements */
.custom-control, .form-check {
    /* Prevent layout shift */
    position: relative;
}

.custom-control-input, .form-check-input {
    /* Prevent layout shift */
    position: relative;
}

.custom-control-label, .form-check-label {
    /* Prevent layout shift */
    position: relative;
}

/* Input groups */
.input-group {
    /* Prevent layout shift */
    position: relative;
}

.input-group-text {
    /* Prevent layout shift */
    position: relative;
}

/* Responsive Design */
@media (max-width: 768px) {
    .main-content {
        padding: 0.75rem 0;
    }
    
    .card-body {
        padding: 1rem;
    }
    
    .btn {
        width: 100%;
        margin-bottom: 0.4rem;
    }
    
    .d-md-flex {
        flex-direction: column;
    }
    
    .me-md-2 {
        margin-right: 0 !important;
    }
    
    .navbar-brand {
        font-size: 1.1rem;
    }
}

/* Animation Classes - Enhanced to prevent shaking */
.fade-in-up {
    animation: fadeInUp 0.6s ease-out;
}

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

.slide-in-left {
    animation: slideInLeft 0.6s ease-out;
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: var(--primary-color);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #0b5ed7;
}

/* Form Field Specific Styles */
.form_field{
    padding-left: 20px;
}

.total {
    border-style: solid;
}

.figure_4v{
    width: 400px;
}

.figure_4v_vert{
    width: 250px;
}

.figure_4v_line{
    height: 260px;
}

.sv-completedpage{
    min-height: 50em;
    height:auto;
    font-size: 1em;
    font-style:normal;
}

.hidden {
    visibility : hidden;
    outline : none; /*Used to avoid keyboard events*/
    pointer-events : none; /*used to avoid mouse events*/
    max-height: 0;
}

.receipts{
    position: relative;
}

.fa-trash-can{
    position: absolute;
    top: 0;
    right: 0;
    min-height: 30px;
    height: 20%;
    min-width: 30px;
    z-index: 10;
    color:black;
}

.img-receipt{
    display: block;
    z-index:1;
}

.img-wrapper {
    overflow: hidden;
}

.img-wrapper img {
    top:0;
    left:0;
    height:200px;
}

.left-column {
    background-color: #f5f5f5;
    padding: 20px;
}

.right-column {
    background-color: #e9ecef;
    padding: 20px;
}

.pagination-section {
    margin-top: 20px;
}

/* Horizontal Pagination */
.horizontal-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
}

.pagination {
    flex-wrap: nowrap;
}

/* Enhanced Edit Profile Styles */
.edit-profile-card {
    transition: all 0.3s ease;
    border: none;
    border-radius: 15px;
    /* Prevent layout shift */
    position: relative;
}

.edit-profile-card:hover {
    /* Remove transform to prevent shaking */
    box-shadow: 0 8px 25px rgba(0,0,0,0.15) !important;
}

.edit-profile-card .card-header {
    border-radius: 15px 15px 0 0 !important;
    border: none;
    padding: 1rem;
}

.edit-profile-card .card-body {
    padding: 1.25rem;
}

/* Custom scrollbar for select elements */
.form-select::-webkit-scrollbar {
    width: 8px;
}

.form-select::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.form-select::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}

.form-select::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* Additional form consistency styles */
.form-control:disabled, .form-select:disabled {
    background-color: #e9ecef;
    opacity: 0.65;
    cursor: not-allowed;
}

.form-control:read-only {
    background-color: #f8f9fa;
    cursor: default;
}

/* Consistent spacing for form groups */
.form-group {
    margin-bottom: 1rem;
}

/* Consistent input sizing */
.form-control-lg, .form-select-lg {
    padding: 0.75rem 1rem;
    font-size: 1rem;
    min-height: 48px;
}

.form-control-sm, .form-select-sm {
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
    min-height: 36px;
}

/* Consistent validation states */
.was-validated .form-control:valid,
.was-validated .form-select:valid {
    border-color: var(--success-color);
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .form-control:invalid,
.was-validated .form-select:invalid {
    border-color: var(--danger-color);
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath d='m5.8 4.6 1.4 1.4m0 0-1.4 1.4'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

/* Additional anti-shaking styles for specific elements */
/* File inputs */
.form-control[type="file"] {
    /* Prevent layout shift */
    position: relative;
}

/* Range inputs */
.form-control[type="range"] {
    /* Prevent layout shift */
    position: relative;
}

/* Color inputs */
.form-control[type="color"] {
    /* Prevent layout shift */
    position: relative;
}

/* Date and time inputs */
.form-control[type="date"],
.form-control[type="time"],
.form-control[type="datetime-local"] {
    /* Prevent layout shift */
    position: relative;
}

/* Search inputs */
.form-control[type="search"] {
    /* Prevent layout shift */
    position: relative;
}

/* Number inputs */
.form-control[type="number"] {
    /* Prevent layout shift */
    position: relative;
}

/* Tel inputs */
.form-control[type="tel"] {
    /* Prevent layout shift */
    position: relative;
}

/* URL inputs */
.form-control[type="url"] {
    /* Prevent layout shift */
    position: relative;
}

/* Password inputs */
.form-control[type="password"] {
    /* Prevent layout shift */
    position: relative;
}

/* Email inputs */
.form-control[type="email"] {
    /* Prevent layout shift */
    position: relative;
}

/* Textarea elements */
textarea.form-control {
    /* Prevent layout shift */
    position: relative;
    resize: vertical;
}

/* Select multiple */
.form-select[multiple] {
    /* Prevent layout shift */
    position: relative;
}

/* Custom checkbox and radio button containers */
.form-check {
    /* Prevent layout shift */
    position: relative;
    display: flex;
    align-items: center;
}

/* Hide the native radio for Bootstrap 5 .btn-check to avoid stray bullet/dot */
.btn-check {
    position: absolute;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
}

/* Switch elements */
.form-check-input[type="checkbox"].form-switch {
    /* Prevent layout shift */
    position: relative;
}

/* Floating labels */
.form-floating {
    /* Prevent layout shift */
    position: relative;
}

.form-floating > .form-control,
.form-floating > .form-select {
    /* Prevent layout shift */
    position: relative;
}

.form-floating > label {
    /* Prevent layout shift */
    position: absolute;
}

/* Input group addons */
.input-group-addon {
    /* Prevent layout shift */
    position: relative;
}

/* Spinner buttons */
.btn-group-vertical .btn {
    /* Prevent layout shift */
    position: relative;
}

/* Split button dropdowns */
.dropdown-toggle-split {
    /* Prevent layout shift */
    position: relative;
}

/* Button groups */
.btn-group {
    /* Prevent layout shift */
    position: relative;
}

/* Button toolbars */
.btn-toolbar {
    /* Prevent layout shift */
    position: relative;
}

/* Navbar toggler */
.navbar-toggler {
    /* Prevent layout shift */
    position: relative;
}

/* Navbar collapse */
.navbar-collapse {
    /* Prevent layout shift */
    position: relative;
}

/* Offcanvas elements */
.offcanvas {
    /* Prevent layout shift */
    position: fixed;
}

/* Carousel elements */
.carousel {
    /* Prevent layout shift */
    position: relative;
}

.carousel-item {
    /* Prevent layout shift */
    position: relative;
}

/* Collapse elements */
.collapse {
    /* Prevent layout shift */
    position: relative;
}

/* Dropdown menus */
.dropdown-menu {
    /* Prevent layout shift */
    position: absolute;
}

/* Popover elements */
.popover {
    /* Prevent layout shift */
    position: absolute;
}

/* Tooltip elements */
.tooltip {
    /* Prevent layout shift */
    position: absolute;
}

/* Modal elements */
.modal {
    /* Prevent layout shift */
    position: fixed;
}

/* Tab content */
.tab-content {
    /* Prevent layout shift */
    position: relative;
}

.tab-pane {
    /* Prevent layout shift */
    position: relative;
}

/* Accordion content */
.accordion-collapse {
    /* Prevent layout shift */
    position: relative;
}

.accordion-body {
    /* Prevent layout shift */
    position: relative;
}

/* List group flush */
.list-group-flush .list-group-item {
    /* Prevent layout shift */
    position: relative;
}

/* Breadcrumb elements */
.breadcrumb {
    /* Prevent layout shift */
    position: relative;
}

.breadcrumb-item {
    /* Prevent layout shift */
    position: relative;
}

/* Spinner elements */
.spinner-border,
.spinner-grow {
    /* Prevent layout shift */
    position: relative;
}

/* Placeholder elements */
.placeholder {
    /* Prevent layout shift */
    position: relative;
}

/* Ratio elements */
.ratio {
    /* Prevent layout shift */
    position: relative;
}

/* Position utilities */
.position-relative {
    position: relative !important;
}

.position-absolute {
    position: absolute !important;
}

.position-fixed {
    position: fixed !important;
}

.position-sticky {
    position: sticky !important;
}

/* Ensure all interactive elements have consistent positioning */
[class*="btn"],
[class*="form-"],
[class*="nav-"],
[class*="dropdown-"],
[class*="list-group-"],
[class*="card"],
[class*="table"],
[class*="alert"],
[class*="badge"],
[class*="toast"],
[class*="modal"],
[class*="popover"],
[class*="tooltip"],
[class*="carousel"],
[class*="accordion"],
[class*="tab"],
[class*="breadcrumb"],
[class*="pagination"],
[class*="spinner"],
[class*="placeholder"],
[class*="ratio"] {
    /* Prevent layout shift */
    position: relative;
    box-sizing: border-box;
}

/* Ensure all hover effects don't cause movement */
[class*="btn"]:hover,
[class*="form-"]:hover,
[class*="nav-"]:hover,
[class*="dropdown-"]:hover,
[class*="list-group-"]:hover,
[class*="card"]:hover,
[class*="table"]:hover,
[class*="alert"]:hover,
[class*="badge"]:hover,
[class*="toast"]:hover,
[class*="modal"]:hover,
[class*="popover"]:hover,
[class*="tooltip"]:hover,
[class*="carousel"]:hover,
[class*="accordion"]:hover,
[class*="tab"]:hover,
[class*="breadcrumb"]:hover,
[class*="pagination"]:hover,
[class*="spinner"]:hover,
[class*="placeholder"]:hover,
[class*="ratio"]:hover {
    /* No transform to prevent shaking */
    transform: none !important;
}

/* Ensure all active states don't cause movement */
[class*="btn"]:active,
[class*="form-"]:active,
[class*="nav-"]:active,
[class*="dropdown-"]:active,
[class*="list-group-"]:active,
[class*="card"]:active,
[class*="table"]:active,
[class*="alert"]:active,
[class*="badge"]:active,
[class*="toast"]:active,
[class*="modal"]:active,
[class*="popover"]:active,
[class*="tooltip"]:active,
[class*="carousel"]:active,
[class*="accordion"]:active,
[class*="tab"]:active,
[class*="breadcrumb"]:active,
[class*="pagination"]:active,
[class*="spinner"]:active,
[class*="placeholder"]:active,
[class*="ratio"]:active {
    /* Prevent any movement on click */
    transform: none !important;
}

/* Headings and general compact spacing */
h1, h2, h3, h4, h5, h6 {
    margin-bottom: 0.75rem;
    line-height: 1.25;
}

/* SurveyJS compact overrides */
#surveyElement {
    margin: 0;
}

/* Root containers */
.sd-root-modern, .sv_main {
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Internal containers and spacing */
.sd-container-modern, .sv_container {
    padding: 0.5rem 0;
}

.sd-title, .sv_title {
    font-size: 1.05rem;
    margin-bottom: 0.5rem;
}

.sd-page, .sv_page {
    padding: 0;
}

.sd-row, .sv_row {
    margin-bottom: 0.5rem;
}

.sd-question, .sv_q {
    margin: 0.5rem 0;
}

/* Inputs and selects */
.sd-input, .sd-selectbase, .sv_q_text_root, .sv_q_dropdown_control {
    min-height: 40px;
    padding: 0.5rem 0.75rem;
    border-radius: var(--border-radius);
    border: 1px solid #e2e6ea;
    box-sizing: border-box;
}

/* Buttons */
.sd-btn, .sv_btn {
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
    border-radius: var(--border-radius);
    transition: var(--transition);
    position: relative;
}

.sd-btn:hover, .sv_btn:hover { transform: none; }
.sd-btn:active, .sv_btn:active { transform: none; }

/* Footer/navigation spacing */
.sd-footer, .sv_nav {
    padding-top: 0.5rem;
}

/* Progress bar */
.sd-body__progress, .sv_progress {
    height: 6px;
}

/* SurveyJS button normalization */
#surveyElement .sd-btn,
#surveyElement .sd-footer .sd-btn,
#surveyElement .sd-action-bar .sd-btn,
#surveyElement .sd-navigation .sd-btn,
#surveyElement .sd-body__navigation .sd-btn,
#surveyElement .sd-pagination .sd-btn,
#surveyElement .sd-page-selector .sd-btn,
#surveyElement button.sv_btn,
#surveyElement .sv_prev_btn,
#surveyElement .sv_next_btn,
#surveyElement .sv_complete_btn,
#surveyElement .sv_q_button,
#surveyElement .sv_q_remove_button {
  padding: 0.5rem 1rem !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  border-radius: var(--border-radius) !important;
  border: 1px solid #e2e6ea !important;
  background: #fff !important;
  color: var(--dark-color) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Primary/complete actions */
#surveyElement .sd-btn--primary,
#surveyElement .sd-btn--action,
#surveyElement .sd-complete-btn,
#surveyElement .sv_complete_btn {
  background: linear-gradient(135deg, var(--primary-color) 0%, #0b5ed7 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
}

/* Secondary/neutral actions (e.g., Clear) */
#surveyElement .sd-btn--secondary,
#surveyElement .sd-btn--default,
#surveyElement .sd-question__clear-button,
#surveyElement .sv_q_remove_button {
  background: #fff !important;
  color: var(--dark-color) !important;
  border: 1px solid #e2e6ea !important;
}

/* Pagination / page selector buttons look the same size */
#surveyElement .sd-pagination button,
#surveyElement .sd-page-selector button {
  padding: 0.35rem 0.6rem !important;
  min-width: 2rem;
  border-radius: var(--border-radius) !important;
}

/* Hover/active without movement */
#surveyElement .sd-btn:hover,
#surveyElement .sd-btn:active,
#surveyElement .sv_btn:hover,
#surveyElement .sv_btn:active {
  transform: none !important;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08) !important;
}