/* ==========================================================================
   LangGo Careers — Form "Nộp CV ứng tuyển"
   Tách khỏi recruitment.css vì trang chi tiết tin và trang Cẩm nang nghề nghiệp
   đều dùng. Dùng lại biến :root khai trong shell.css.
   ========================================================================== */

/* --------------------------------------------------------------------------
   NỘP CV ỨNG TUYỂN — card trắng viền đỏ, form 2 cột, cuối trang chi tiết
   -------------------------------------------------------------------------- */
.cvform {
    font-family: var(--font-shell);
    padding: 8px 0 64px;
}

.cvform__card {
    padding: 32px 36px 28px;
    border: 1px solid rgba(219, 31, 31, 1);
    border-radius: 16px;
    background: rgba(255, 255, 255, 1);
}

.cvform__title {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 1);
}

.cvform__sub {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(107, 114, 128, 1);
}

.cvform__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 32px;
}

.cvform__label {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 600;
    color: rgba(0, 0, 0, 1);
}

.cvform__label span { color: var(--brand); }

.cvform__input {
    width: 100%;
    height: 44px;
    padding: 0 16px;
    border: 0;
    border-radius: 8px;
    /* Ô nhập tô nền xám nhạt thay vì viền, cho khớp bản thiết kế */
    background: rgba(243, 243, 243, 1);
    font-family: inherit;
    font-size: 15px;
    color: rgba(0, 0, 0, 1);
}

.cvform__input::placeholder { color: #9a9a9a; }
.cvform__input:focus { outline: 2px solid rgba(219, 31, 31, .45); outline-offset: 1px; }

.cvform__select { cursor: pointer; }

.cvform__textarea {
    height: 118px;
    padding: 12px 16px;
    line-height: 1.5;
    resize: vertical;
}

.cvform__drop {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    /* Bằng chiều cao ô giới thiệu bên cạnh để hai cột kết thúc ngang nhau */
    height: 118px;
    padding: 16px;
    border: 1px dashed rgba(219, 31, 31, .55);
    border-radius: 10px;
    background: rgba(255, 241, 241, 1);
    text-align: center;
    cursor: pointer;
    transition: background .18s var(--ease);
}

.cvform__drop:hover { background: rgba(255, 230, 230, 1); }

.cvform__drop-main { font-size: 14px; font-weight: 500; color: rgba(0, 0, 0, 1); }
.cvform__drop-hint { font-size: 13px; color: rgba(107, 114, 128, 1); }

.cvform__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 290px;
    height: 48px;
    margin: 28px auto 0;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #DB1F1F 0%, #9D0B0F 100%);
    color: rgba(255, 255, 255, 1);
    font-family: inherit;
    font-size: 17px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}

.cvform__submit:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(157, 11, 15, .3); }
.cvform__submit:disabled { opacity: .7; cursor: not-allowed; }

.cvform__spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: rgba(255, 255, 255, 1);
    border-radius: 50%;
    animation: cvform-spin .7s linear infinite;
}

/* Keyframes riêng: @keyframes jd-quick-spin nằm ở recruitment.css, mà trang Cẩm
   nang không nạp file đó. */
@keyframes cvform-spin {
    to { transform: rotate(360deg); }
}

.cvform__note {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
    color: rgba(107, 114, 128, 1);
}

.cvform__note a { color: var(--brand); font-weight: 600; }

.cvform__alert {
    margin-bottom: 18px;
    padding: 12px 16px;
    border-radius: 10px;
    background: rgba(243, 243, 243, 1);
    font-size: 15px;
}

.cvform__alert--ok { color: #157347; }
.cvform__alert--err { color: var(--brand); }

@media (max-width: 860px) {
    .cvform__grid { grid-template-columns: 1fr; }
    .cvform__card { padding: 24px 20px; }
}
