.form-group{margin-bottom:1.5rem}label{display:block;font-weight:700;margin-bottom:.5rem;color:var(--text)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],textarea,select{width:100%;padding:.75rem;font-size:1rem;border:2px solid var(--secondary);border-radius:.25rem;background-color:var(--background);color:var(--text);box-sizing:border-box;box-shadow:.25rem .25rem 0 var(--shadow);transition:all .2s ease}textarea{resize:vertical;min-height:120px}input[type=checkbox],input[type=radio]{margin-right:.5rem;transform:scale(1.2)}input[type=checkbox]+label,input[type=radio]+label{display:inline-block;margin-bottom:0}button,input[type=submit]{padding:.75rem 1.5rem;font-size:1rem;font-weight:700;color:var(--background);background-color:var(--primary);border:none;border-radius:.25rem;cursor:pointer;text-align:center;transition:background-color .2s ease}button:hover,input[type=submit]:hover{background-color:var(--accent)}button:disabled,input[type=submit]:disabled{background-color:var(--secondary);cursor:not-allowed;opacity:.7}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{color:var(--text);border-color:var(--primary);box-shadow:.25rem .25rem 0 var(--primary)}input.error,textarea.error,select.error{border-color:var(--accent);background-color:var(--background);box-shadow:.25rem .25rem 0 var(--accent)}input.success,textarea.success,select.success{border-color:var(--primary);background-color:var(--background);box-shadow:.25rem .25rem 0 var(--primary)}.error-message{color:var(--accent);font-size:.875rem;margin-top:.5rem}.success-message{color:var(--primary);font-size:.875rem;margin-top:.5rem}.success{color:var(--text);font-size:.9rem;border:1px solid var(--primary);background-color:var(--background);padding:.75rem 1rem;border-radius:.25rem;margin-top:1rem;display:flex;gap:.75rem;align-items:center}.error{border:1px solid var(--accent);color:var(--text);padding:.75rem 1rem;margin-bottom:1rem;border-radius:.25rem;font-size:.8rem;font-style:italic;display:inline-flex;gap:.75rem;align-items:center}.error svg{width:1.4rem;height:1.4rem;fill:var(--background);flex-shrink:0}.error a{color:var(--background);text-decoration:underline}
