.form-grid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 25px;

}

.form-group {

    display: flex;

    flex-direction: column;

    position: relative;

}

.form-group.full {

    grid-column: 1/-1;

}

.form-group label {

    font-size: 14px;

    font-weight: 600;

    color: var(--gray-700);

    margin-bottom: 10px;

}

.form-group label span {

    color: #d63031;

}

.form-group input,
.form-group select,
.form-group textarea {

    width: 100%;

    border: 2px solid var(--gray-200);

    border-radius: 14px;

    background: #fff;

    padding: 16px 18px;

    font-size: 15px;

    color: var(--gray-900);

    transition: .30s;

    outline: none;

}

.form-group textarea {

    resize: vertical;

    min-height: 130px;

}

.form-group input::placeholder,
.form-group textarea::placeholder {

    color: #9ba9b7;

}

.form-group input:hover,
.form-group select:hover,
.form-group textarea:hover {

    border-color: #b8c7d6;

}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {

    border-color: var(--primary);

    box-shadow:

        0 0 0 5px rgba(0, 102, 179, .08);

}

.form-group input[readonly] {

    background: #f5f7fa;

}

.form-group small {

    margin-top: 8px;

    color: var(--gray-500);

    font-size: 13px;

}

.radio-group {

    display: flex;

    gap: 25px;

    flex-wrap: wrap;

    min-height: 54px;

    align-items: center;

}

.radio-group label {

    display: flex;

    align-items: center;

    gap: 10px;

    cursor: pointer;

    margin: 0;

    font-weight: 500;

}

.radio-group input {

    width: 18px;

    height: 18px;

    accent-color: var(--primary);

}

.checkbox {

    display: flex;

    align-items: flex-start;

    gap: 14px;

    cursor: pointer;

    line-height: 1.6;

}

.checkbox input {

    width: 22px;

    height: 22px;

    margin-top: 2px;

    accent-color: var(--primary);

}

.upload-area {

    border: 2px dashed #b7cde5;

    border-radius: 20px;

    background: #f9fcff;

    padding: 50px 30px;

    text-align: center;

    transition: .30s;

    cursor: pointer;

}

.upload-area:hover {

    border-color: var(--primary);

    background: #eef7ff;

}

.upload-area.dragover {

    border-color: var(--success);

    background: #eefcf4;

    transform: scale(1.01);

}

.upload-icon {

    font-size: 56px;

    margin-bottom: 18px;

}

.upload-area h3 {

    font-size: 24px;

    margin-bottom: 10px;

    color: var(--gray-900);

}

.upload-area p {

    color: var(--gray-500);

    margin-bottom: 12px;

}

.upload-area span {

    display: block;

    color: var(--gray-400);

    font-size: 14px;

}

.arquivo-selecionado {

    display: none;

    margin-top: 20px;

    padding: 18px;

    border-radius: 14px;

    background: #eefcf4;

    border-left: 5px solid var(--success);

    color: #2f5d3b;

    font-weight: 600;

}

.resume-box {

    margin-top: 35px;

    padding: 25px;

    border-radius: 18px;

    background: #f8fbfe;

    border: 1px solid #dde8f2;

}

.resume-box h3 {

    margin-bottom: 12px;

    font-size: 22px;

}

.resume-box p {

    color: var(--gray-600);

    line-height: 1.8;

}

.experience-card {

    border: 1px solid #dfe8f2;

    border-radius: 18px;

    padding: 28px;

    margin-bottom: 25px;

    background: #fafcff;

    transition: .30s;

}

.experience-card:hover {

    border-color: var(--primary);

    box-shadow:

        0 8px 24px rgba(0, 0, 0, .05);

}

.experience-card h3 {

    margin-bottom: 22px;

    color: var(--primary);

}

.experience-actions {

    margin-top: 20px;

}

input.error,
select.error,
textarea.error {

    border-color: #e74c3c;

    background: #fff6f6;

}

input.success,
select.success,
textarea.success {

    border-color: #2ecc71;

}

.error-message {

    margin-top: 8px;

    color: #d63031;

    font-size: 13px;

}

.success-message {

    margin-top: 8px;

    color: #27ae60;

    font-size: 13px;

}

.loading-input {

    position: relative;

}

.loading-input::after {

    content: "";

    position: absolute;

    right: 18px;

    top: 50%;

    width: 18px;

    height: 18px;

    margin-top: -9px;

    border: 2px solid #d8e4ef;

    border-top: 2px solid var(--primary);

    border-radius: 50%;

    animation: spin .8s linear infinite;

}

@keyframes spin {

    from {

        transform: rotate(0deg);

    }

    to {

        transform: rotate(360deg);

    }

}

.hidden {

    display: none !important;

}

.fade-in {

    animation: fadeIn .35s;

}

@keyframes fadeIn {

    from {

        opacity: 0;

        transform: translateY(15px);

    }

    to {

        opacity: 1;

        transform: none;

    }

}

.form-group input[type="date"],
.form-group input[type="month"] {

    min-height: 56px;

}

.form-group input[type="file"] {

    display: none;

}

@media(max-width:900px) {

    .form-grid {

        grid-template-columns: 1fr;

        gap: 20px;

    }

    .form-group.full {

        grid-column: auto;

    }

    .radio-group {

        flex-direction: column;

        align-items: flex-start;

        gap: 12px;

    }

    .upload-area {

        padding: 35px 20px;

    }

    .upload-icon {

        font-size: 42px;

    }

    .upload-area h3 {

        font-size: 20px;

    }

    .resume-box {

        padding: 20px;

    }

    .experience-card {

        padding: 20px;

    }

}