.field-error,.form-error,.form-info,.form-success,.form-warning{font-size:.875rem;font-weight:500}.form-error,.form-info,.form-success,.form-warning,.validation-summary{padding:1rem 1.5rem;margin-bottom:1.5rem}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545!important;box-shadow:0 0 0 .1875rem rgba(220,53,69,.25)!important}.form-group.has-error label{color:#dc3545!important;font-weight:600}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:#dc3545!important;box-shadow:0 0 0 .1875rem rgba(220,53,69,.25)!important;background-color:#fff5f5}.form-group input.valid,.form-group select.valid,.form-group textarea.valid{border-color:#28a745!important;box-shadow:0 0 0 .1875rem rgba(40,167,69,.25)!important}.field-error{color:#dc3545;margin-top:.25rem;display:block}.field-error::before{content:"⚠ ";margin-right:.25rem}.form-error{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:.5rem}.form-error::before,.form-warning::before{content:"⚠ ";margin-right:.5rem;font-size:1rem}.form-success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:.5rem}.form-success::before{content:"\2713 ";margin-right:.5rem;font-size:1rem}.form-warning{color:#856404;background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:.5rem}.form-info{color:#0c5460;background-color:#d1ecf1;border:1px solid #bee5eb;border-radius:.5rem}.form-info::before{content:"ℹ ";margin-right:.5rem;font-size:1rem}.form-group{position:relative}.form-group input.valid+.validation-icon::after,.form-group select.valid+.validation-icon::after,.form-group textarea.valid+.validation-icon::after{content:"\2713";color:#28a745;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-weight:700;font-size:1rem}.form-group input.error+.validation-icon::after,.form-group select.error+.validation-icon::after,.form-group textarea.error+.validation-icon::after{content:"\2717";color:#dc3545;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-weight:700;font-size:1rem}.form-group label.required::after{content:" *";color:#dc3545;font-weight:700}.field-hint{color:#6c757d;font-size:.75rem;margin-top:.25rem;font-style:italic}.validation-summary{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:.5rem}.validation-summary h4{color:#495057;margin-bottom:.75rem;font-size:1rem;font-weight:600}.validation-summary ul{margin:0;padding-left:1.5rem}.validation-summary li{color:#6c757d;font-size:.875rem;margin-bottom:.25rem}.form-group input:focus:not(.error):not(.valid),.form-group select:focus:not(.error):not(.valid),.form-group textarea:focus:not(.error):not(.valid){border-color:#c9a34e!important;box-shadow:0 0 0 .1875rem rgba(201,163,78,.25)!important}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.form-group input[readonly],.form-group select[readonly],.form-group textarea[readonly]{background-color:#f8f9fa;color:#6c757d}@media (max-width:768px){.field-error,.form-error,.form-info,.form-success,.form-warning{font-size:.8rem;padding:.75rem 1rem;margin-bottom:1rem}.validation-icon::after{right:.5rem;font-size:.875rem}}.form-group input,.form-group select,.form-group textarea{transition:border-color .3s,box-shadow .3s,background-color .3s}.form-group label{transition:color .3s}.form-group.has-error{animation:.5s ease-in-out errorPulse}@keyframes errorPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}.field-error,.form-error,.form-info,.form-success,.form-warning{animation:.3s slideIn}@keyframes slideIn{from{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0}@media (prefers-contrast:high){.form-group input.error,.form-group select.error,.form-group textarea.error{border-width:3px}.field-error{font-weight:700}}@media (prefers-reduced-motion:reduce){.field-error,.form-error,.form-group input,.form-group select,.form-group textarea,.form-info,.form-success,.form-warning{transition:none;animation:none}}