/* Base Styles */
html {
    margin: 0;
    padding: 0;
    height: 100%;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    overflow-x: hidden;
    width: 100%;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background: linear-gradient(135deg, #a8b8d8 0%, #b8a8c8 50%, #c8b8d8 100%);
    min-height: 100vh;
    min-height: 100dvh;
    padding: 40px 20px;
    color: #1a202c;
    position: relative;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: inherit;
    z-index: -1;
}

h2 {
    text-align: center;
    color: #ffffff;
    margin-bottom: 30px;
    font-size: 2rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

/* Form Container */
.form-container {
    max-width: 600px;
    margin: 0 auto;
    position: relative;
    width: 100%;
}

.form-tag {
    max-width: 600px;
    margin: 0 auto;
    background: #ffffff;
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
    border-top: 4px solid #7c8fb8;
    width: 100%;
}

/* Desktop: Center form with right offset for fixed menu */
@media (min-width: 900px) {
    body {
        padding-right: 0;
    }

    .form-container {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Field Wrapper */
.field-wrapper {
    margin-bottom: 1.5rem;
}

/* Labels */
label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #1a202c;
    font-size: 0.95rem;
}

/* Subheader for fields */
.form-field-subheader {
    display: block;
    margin-top: -4px;
    margin-bottom: 10px;
    font-size: 0.85rem;
    color: #718096;
    font-weight: 400;
    line-height: 1.4;
}

/* Form Controls */
.form-control {
    width: 100%;
    padding: 14px 18px;
    border: 2px solid #cbd5e0;
    border-radius: 10px;
    font-size: 1rem;
    transition: all 0.3s ease;
    background: #f8fafc;
    color: #1a202c;
}

.form-control:focus {
    outline: none;
    border-color: #7c8fb8;
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(124, 143, 184, 0.2);
}

.form-control:hover {
    border-color: #a0aec0;
}

/* Password Input Styling */
.field-wrapper-PasswordInput {
    position: relative;
}

.field-wrapper-PasswordInput .form-control {
    letter-spacing: 2px;
    font-family: 'Courier New', monospace;
    padding-right: 50px;
}

/* Show/hide password button */
.field-wrapper-PasswordInput .password-toggle {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 10;
    opacity: 0.6;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.field-wrapper-PasswordInput .password-toggle:hover {
    opacity: 1;
    background: rgba(124, 143, 184, 0.1);
    border-radius: 4px;
}

.field-wrapper-PasswordInput .password-toggle svg {
    width: 20px;
    height: 20px;
    stroke: #718096;
    transition: stroke 0.2s ease;
}

.field-wrapper-PasswordInput .password-toggle:hover svg {
    stroke: #7c8fb8;
}

/* Textarea */
textarea.form-control {
    resize: vertical;
    min-height: 120px;
    font-family: inherit;
    line-height: 1.6;
}

/* Select */
select.form-control {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237c8fb8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
}

/* Checkboxes and Radios */
.form-field-CheckboxSelectMultiple .form-control,
.form-field-RadioSelect .form-control {
    background: transparent;
    border: none;
    padding: 0;
}

.form-field-RadioSelect label {
    display: flex;
    align-items: center;
    font-weight: 400;
    padding: 12px 16px;
    margin: 8px 0;
    background: #f7fafc;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.25s ease;
    border: 2px solid transparent;
}

.form-field-RadioSelect label:hover {
    background: #edf2f7;
    border-color: #7c8fb8;
    transform: translateX(5px);
}

.form-field-RadioSelect input[type="radio"] {
    width: 20px;
    height: 20px;
    margin-right: 12px;
    cursor: pointer;
    accent-color: #7c8fb8;
}

/* RadioSelect - Two column layout */
.field-wrapper-RadioSelect .form-field-RadioSelect .form-control {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 10px !important;
    background: #f8fafc !important;
    border-radius: 10px !important;
    border: 2px solid #e2e8f0 !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control > div {
    display: block !important;
    width: 100% !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control label {
    display: flex !important;
    align-items: center !important;
    font-weight: 400 !important;
    padding: 12px 14px !important;
    margin: 0 !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    border: 2px solid transparent !important;
    min-height: 44px !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control label:hover {
    background: #edf2f7 !important;
    border-color: #cbd5e0 !important;
    transform: translateX(3px) !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control input[type="radio"] {
    width: 20px !important;
    height: 20px !important;
    margin-right: 12px !important;
    cursor: pointer !important;
    accent-color: #7c8fb8 !important;
    flex-shrink: 0 !important;
}

/* Custom radio for RadioSelect */
.field-wrapper-RadioSelect .form-field-RadioSelect .form-control input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid #cbd5e0 !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    cursor: pointer !important;
    position: relative !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control input[type="radio"]:hover {
    border-color: #7c8fb8 !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control input[type="radio"]:checked {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%) !important;
    border-color: #7c8fb8 !important;
}

.field-wrapper-RadioSelect .form-field-RadioSelect .form-control input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 5px !important;
    top: 5px !important;
    width: 6px !important;
    height: 6px !important;
    background: white !important;
    border-radius: 50% !important;
}

/* If label text is too long, span full width - using JS class */
.field-wrapper-RadioSelect .form-field-RadioSelect .form-control > div.long-option {
    grid-column: span 2 !important;
}

/* Mobile - single column */
@media (max-width: 640px) {
    .field-wrapper-RadioSelect .form-field-RadioSelect .form-control {
        grid-template-columns: 1fr !important;
    }

    .field-wrapper-RadioSelect .form-field-RadioSelect .form-control > div.long-option {
        grid-column: span 1 !important;
    }
}

/* Focus state */
.field-wrapper-RadioSelect .form-field-RadioSelect .form-control:focus-within {
    border-color: #7c8fb8 !important;
    box-shadow: 0 0 0 3px rgba(124, 143, 184, 0.2) !important;
}

/* CheckboxSelectMultiple - Two column layout */
.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 10px !important;
    background: #f8fafc !important;
    border-radius: 10px !important;
    border: 2px solid #e2e8f0 !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control > div {
    display: block !important;
    width: 100% !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control label {
    display: flex !important;
    align-items: center !important;
    font-weight: 400 !important;
    padding: 12px 14px !important;
    margin: 0 !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    border: 2px solid transparent !important;
    min-height: 44px !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control label:hover {
    background: #edf2f7 !important;
    border-color: #cbd5e0 !important;
    transform: translateX(3px) !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    margin-right: 12px !important;
    cursor: pointer !important;
    accent-color: #7c8fb8 !important;
    flex-shrink: 0 !important;
}

/* Custom checkbox for CheckboxSelectMultiple */
.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control input[type="checkbox"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid #cbd5e0 !important;
    border-radius: 5px !important;
    background: #ffffff !important;
    cursor: pointer !important;
    position: relative !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control input[type="checkbox"]:hover {
    border-color: #7c8fb8 !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control input[type="checkbox"]:checked {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%) !important;
    border-color: #7c8fb8 !important;
}

.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control input[type="checkbox"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 4px !important;
    top: 1px !important;
    width: 4px !important;
    height: 9px !important;
    border: solid white !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}

/* Long text - full width */
.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control label:has(input[type="checkbox"]) {
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    hyphens: auto !important;
}

/* If label text is too long, span full width - using JS class */
.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control > div.long-option {
    grid-column: span 2 !important;
}

/* Mobile - single column */
@media (max-width: 640px) {
    .field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control {
        grid-template-columns: 1fr !important;
    }

    .field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control > div.long-option {
        grid-column: span 1 !important;
    }
}

/* Focus state */
.field-wrapper-CheckboxSelectMultiple .form-field-CheckboxSelectMultiple .form-control:focus-within {
    border-color: #7c8fb8 !important;
    box-shadow: 0 0 0 3px rgba(124, 143, 184, 0.2) !important;
}

.form-field-RadioSelect label:hover {
    background: #edf2f7;
    border-color: #7c8fb8;
    transform: translateX(5px);
}

/* CheckboxInput */
.field-wrapper-CheckboxInput {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    grid-template-rows: auto auto auto !important;
    align-items: center !important;
    gap: 8px 14px !important;
    position: relative !important;
    padding-bottom: 35px !important;
}

.field-wrapper-CheckboxInput .form-field-CheckboxInput {
    grid-column: 1 / 2 !important;
    grid-row: 1 / 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f7fafc !important;
    padding: 10px 14px !important;
    border-radius: 10px !important;
    border: 2px solid transparent !important;
    transition: all 0.25s ease !important;
    height: auto !important;
    align-self: center !important;
}

.field-wrapper-CheckboxInput .form-field-CheckboxInput:hover {
    background: #edf2f7 !important;
    border-color: #cbd5e0 !important;
}

/* Toggle Switch Styling */
.field-wrapper-CheckboxInput input[type="checkbox"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 50px !important;
    height: 28px !important;
    background: #cbd5e0 !important;
    border-radius: 14px !important;
    position: relative !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    flex-shrink: 0 !important;
    border: none !important;
    outline: none !important;
}

/* Toggle knob */
.field-wrapper-CheckboxInput input[type="checkbox"]::before {
    content: '' !important;
    position: absolute !important;
    top: 3px !important;
    left: 3px !important;
    width: 22px !important;
    height: 22px !important;
    background: #ffffff !important;
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

/* Checked state */
.field-wrapper-CheckboxInput input[type="checkbox"]:checked {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%) !important;
}

.field-wrapper-CheckboxInput input[type="checkbox"]:checked::before {
    left: 25px !important;
    background: #ffffff !important;
}

/* Hover state */
.field-wrapper-CheckboxInput input[type="checkbox"]:hover {
    background: #a0aec0 !important;
}

.field-wrapper-CheckboxInput input[type="checkbox"]:checked:hover {
    background: linear-gradient(135deg, #8b9ec7 0%, #7a89ab 100%) !important;
}

/* Focus state */
.field-wrapper-CheckboxInput input[type="checkbox"]:focus {
    box-shadow: 0 0 0 3px rgba(124, 143, 184, 0.3) !important;
}

/* Disabled state */
.field-wrapper-CheckboxInput input[type="checkbox"]:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}

.field-wrapper-CheckboxInput > label {
    grid-column: 2 / 3 !important;
    grid-row: 1 / 2 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 600 !important;
    color: #1a202c !important;
    font-size: 0.95rem !important;
    line-height: 1.2 !important;
}

.field-wrapper-CheckboxInput .form-field-subheader {
    grid-column: 2 / 3 !important;
    grid-row: 2 / 3 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.85rem !important;
    color: #718096 !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
}

.field-wrapper-CheckboxInput .form-field-error {
    grid-column: 1 / 3 !important;
    grid-row: 3 / 4 !important;
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Checkbox ripple animation */
@keyframes checkbox-ripple-animation {
    to {
        transform: scale(2);
        opacity: 0;
    }
}

/* Date Input with Flatpickr */
.field-wrapper-DateInput {
    position: relative !important;
    display: block !important;
    width: 100% !important;
}

.field-wrapper-DateInput .form-control {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

/* Hide jQuery UI datepicker trigger button */
.ui-datepicker-trigger,
button.ui-datepicker-trigger,
.ui-datepicker-trigger.ui-button,
.ui-datepicker-trigger.ui-button-icon-only {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    pointer-events: none !important;
    opacity: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    z-index: -9999 !important;
}

/* Also hide any button after date input */
.field-wrapper-DateInput input + button,
.field-wrapper-DateInput input + .ui-button,
.field-wrapper-DateInput + button,
.field-wrapper-DateInput + .ui-button,
.field-wrapper-DateInput input ~ button,
.field-wrapper-DateInput input ~ .ui-button {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
}

/* Flatpickr Custom Styling */
.flatpickr-calendar {
    border-radius: 12px !important;
    border: 2px solid #e2e8f0 !important;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.2) !important;
    padding: 15px !important;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
    font-size: 14px !important;
    background: #ffffff !important;
    width: 380px !important;
    max-width: 95vw !important;
}

.flatpickr-months {
    margin-bottom: 15px !important;
}

.flatpickr-months .flatpickr-month {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%) !important;
    border-radius: 8px !important;
    height: 40px !important;
    line-height: 40px !important;
}

.flatpickr-months .flatpickr-month svg {
    fill: #ffffff !important;
}

.flatpickr-months .flatpickr-month .flatpickr-current-month {
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 15px !important;
}

.flatpickr-months .flatpickr-month .flatpickr-current-month select {
    color: #ffffff !important;
    font-weight: 600 !important;
}

.flatpickr-months .flatpickr-month .flatpickr-current-month input.cur-year {
    color: #ffffff !important;
    font-weight: 600 !important;
}

.flatpickr-weekdays {
    margin-top: 15px !important;
}

.flatpickr-weekday {
    color: #718096 !important;
    font-weight: 600 !important;
    font-size: 12px !important;
}

.flatpickr-day {
    color: #2d3748 !important;
    font-weight: 500 !important;
    border-radius: 6px !important;
    transition: all 0.2s ease !important;
}

.flatpickr-day:hover {
    background: #edf2f7 !important;
    color: #7c8fb8 !important;
    border-color: transparent !important;
}

.flatpickr-day.selected {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%) !important;
    color: #ffffff !important;
    border-color: transparent !important;
    font-weight: 600 !important;
}

.flatpickr-day.today {
    border-color: #7c8fb8 !important;
}

.flatpickr-day.inRange {
    background: #f7fafc !important;
    color: #7c8fb8 !important;
    border-color: transparent !important;
}

.flatpickr-days {
    border: none !important;
}

/* Mobile responsive */
@media (max-width: 640px) {
    .flatpickr-calendar {
        width: 300px !important;
        font-size: 13px !important;
    }
}

/* Calendar icon for date inputs - handled by JS */
.field-wrapper-DateInput .form-control {
    cursor: pointer !important;
}

/* File Input */
.form-field-ClearableFileInput .form-control {
    padding: 12px;
    cursor: pointer;
}

.form-field-ClearableFileInput input[type="file"] {
    background: #f8fafc;
    border-radius: 8px;
}

.form-field-ClearableFileInput input[type="file"]::file-selector-button {
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    margin-right: 10px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.form-field-ClearableFileInput input[type="file"]::file-selector-button:hover {
    background: linear-gradient(135deg, #6b7a9f 0%, #5a6a8f 100%);
    transform: translateY(-1px);
}

/* Error Messages */
.form-field-error {
    color: #c53030;
    font-size: 0.8rem;
    margin-top: 6px;
    display: block;
    font-weight: 500;
    min-height: 18px;
    line-height: 1.2;
}

/* Submit Button */
button[type="submit"] {
    width: 100%;
    padding: 16px 24px;
    background: linear-gradient(135deg, #7c8fb8 0%, #6b7a9f 100%);
    color: #ffffff;
    border: none;
    border-radius: 10px;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.35s ease;
    margin-top: 25px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    box-shadow: 0 4px 15px rgba(124, 143, 184, 0.4);
}

button[type="submit"]:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(124, 143, 184, 0.5);
    background: linear-gradient(135deg, #6b7a9f 0%, #5a6a8f 100%);
}

button[type="submit"]:active {
    transform: translateY(-1px);
}

/* Focus styles for accessibility */
button[type="submit"]:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(124, 143, 184, 0.5), 0 4px 15px rgba(124, 143, 184, 0.4);
}

/* Responsive */
@media (max-width: 768px) {
    html,
    body {
        margin: 0;
        padding: 0;
        overflow-x: hidden;
        width: 100%;
    }

    body {
        padding: 15px 10px;
    }

    .form-container {
        width: 100%;
        max-width: 100%;
        padding: 0;
        margin: 0;
    }

    .form-tag {
        padding: 25px 15px;
        width: 100%;
        max-width: 100%;
    }

    h2 {
        font-size: 1.4rem;
        display: none;
    }
}

/* Small phones */
@media (max-width: 380px) {
    body {
        padding: 10px 5px;
    }

    .form-tag {
        padding: 20px 12px;
    }

    h2 {
        font-size: 1.2rem;
    }
}

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
    .nav-link {
        padding: 14px 18px;
        font-size: 0.9rem;
    }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
    .nav-list.open {
        max-height: 250px;
        overflow-y: auto;
    }

    .has-dropdown.open > .dropdown-menu {
        max-height: 200px;
        overflow-y: auto;
    }
}

/* High DPI / Retina displays */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .main-nav {
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(25px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(124, 143, 184, 0.4);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(124, 143, 184, 0);
    }
}

.form-tag {
    animation: fadeIn 0.6s ease-out;
}

.field-wrapper {
    animation: fadeIn 0.4s ease-out;
}

/* Valid/Invalid states (for JS) */
.form-control.valid {
    border-color: #38a169;
    background: #f0fff4;
    box-shadow: 0 0 0 3px rgba(56, 161, 105, 0.2);
}

.form-control.invalid {
    border-color: #fc8181;
    background: #fff5f5;
    box-shadow: 0 0 0 3px rgba(252, 129, 129, 0.2);
    animation: shake 0.4s ease;
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

/* Focus animation */
.field-wrapper.focused .form-control {
    box-shadow: 0 0 0 4px rgba(124, 143, 184, 0.2);
}

/* File selected state */
.file-selected {
    color: #38a169 !important;
}

/* Rating stars hover effect */
.form-field-RadioSelect label:has(input[type="radio"]:checked) {
    background: linear-gradient(135deg, #e6fffa 0%, #b2f5ea 100%);
    border-color: #7c8fb8;
}

/* Hobby checkboxes selected */
.form-field-CheckboxSelectMultiple input[type="checkbox"]:checked + label,
input[type="checkbox"]:checked ~ label:has(input[type="checkbox"]:checked) {
    background: linear-gradient(135deg, #f0fff4 0%, #c6f6d5 100%);
    border-color: #38a169;
}
