/* CV Form Widget */
.cvm-cv-form-wrapper {
    /* padding + font from common.css */
}
.cvm-cv-form-wrapper .cvm-section-inner { max-width: 760px; }

.cvm-cv-form__header { text-align: center; margin-bottom: 36px; }
.cvm-cv-form__header h2 {
    font-family: var(--cvm-font-display); font-size: 2rem;
    font-weight: 800; color: var(--cvm-blue-900); margin-bottom: 8px;
}
.cvm-cv-form__header p { color: var(--cvm-gray-600); font-size: 0.95rem; }

/* Step Indicator */
.cvm-cv-form__step-indicator {
    text-align: center; font-size: 0.9rem; font-weight: 600;
    color: var(--cvm-blue-700, #1d4ed8); margin-bottom: 12px;
    letter-spacing: 0.02em;
}

/* Progress Bar */
.cvm-cv-form__progress { margin-bottom: 36px; }
.cvm-cv-form__progress-bar {
    height: 4px; background: var(--cvm-accent, var(--cvm-blue-500));
    border-radius: 4px; transition: width 0.4s ease;
    margin-bottom: 14px;
}
.cvm-cv-form__steps-labels {
    display: flex; justify-content: space-between; gap: 4px;
}
.cvm-cv-form__steps-labels span {
    font-size: 0.72rem; color: var(--cvm-gray-400);
    font-weight: 500; text-align: center; flex: 1;
    transition: color 0.2s;
}
.cvm-cv-form__steps-labels span.active { color: var(--cvm-blue-500); font-weight: 700; }
.cvm-cv-form__steps-labels span.done { color: var(--cvm-blue-900); }

/* Steps */
.cvm-cv-form__step { display: none; animation: cvmStepIn 0.3s ease; }
.cvm-cv-form__step.active { display: block; }
@keyframes cvmStepIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.cvm-cv-form__step-title {
    font-family: var(--cvm-font-display); font-size: 1.3rem;
    font-weight: 700; color: var(--cvm-blue-900); margin-bottom: 8px;
}

/* Form Elements */
.cvm-form-hint {
    color: var(--cvm-gray-400); font-size: 0.85rem;
    margin-bottom: 24px; line-height: 1.5;
}
.cvm-form-subtitle {
    font-family: var(--cvm-font-display); font-size: 1rem;
    font-weight: 700; color: var(--cvm-blue-900);
    margin: 24px 0 12px; padding-top: 16px;
    border-top: 1px solid var(--cvm-gray-200);
}

.cvm-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.cvm-form-group { margin-bottom: 16px; }
.cvm-form-group label {
    display: block; font-size: 0.85rem; font-weight: 600;
    color: var(--cvm-gray-800); margin-bottom: 6px;
}
.cvm-form-group label .required { color: #ef4444; }

.cvm-form-group input,
.cvm-form-group select,
.cvm-form-group textarea {
    width: 100%; padding: 12px 16px;
    border: 1.5px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius-sm);
    font-family: var(--cvm-font-body); font-size: 0.9rem;
    color: var(--cvm-gray-800); background: var(--cvm-white);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}
.cvm-form-group input:focus,
.cvm-form-group select:focus,
.cvm-form-group textarea:focus {
    border-color: var(--cvm-blue-400);
    box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.cvm-form-group input.error,
.cvm-form-group select.error {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(239,68,68,0.1);
}
.cvm-form-group textarea { resize: vertical; }

.cvm-char-count { font-size: 0.75rem; color: var(--cvm-gray-400); margin-top: 4px; text-align: right; }

.cvm-checkbox-label,
.cvm-radio-label {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.85rem; color: var(--cvm-gray-600);
    cursor: pointer; margin-top: 6px;
}

/* Skills Suggestions */
.cvm-skills-suggestions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cvm-skill-chip {
    display: inline-flex; align-items: center;
    padding: 6px 14px; border-radius: 50px;
    background: var(--cvm-blue-50); color: var(--cvm-blue-600);
    font-size: 0.8rem; font-weight: 500; cursor: pointer;
    border: 1px solid var(--cvm-blue-200);
    transition: background 0.2s, color 0.2s;
}
.cvm-skill-chip:hover { background: var(--cvm-blue-100); }
.cvm-skill-chip.added { background: var(--cvm-blue-500); color: #fff; border-color: var(--cvm-blue-500); }

/* Repeater */
.cvm-repeater__items { display: flex; flex-direction: column; gap: 16px; }
.cvm-repeater__item {
    background: var(--cvm-gray-50); border: 1px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius-sm); padding: 20px;
}
.cvm-repeater__item-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 16px;
}
.cvm-repeater__item-title { font-weight: 600; font-size: 0.9rem; color: var(--cvm-blue-900); }
.cvm-repeater__remove {
    width: 28px; height: 28px; border-radius: 50%;
    background: #fef2f2; color: #ef4444; border: 1px solid #fecaca;
    font-size: 1.1rem; cursor: pointer; display: flex;
    align-items: center; justify-content: center;
    transition: background 0.2s;
}
.cvm-repeater__remove:hover { background: #fee2e2; }

.cvm-repeater__add {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 20px; border-radius: 50px; margin-top: 12px;
    background: var(--cvm-blue-50); color: var(--cvm-blue-600);
    font-size: 0.85rem; font-weight: 600; cursor: pointer;
    border: 1.5px dashed var(--cvm-blue-200);
    font-family: var(--cvm-font-body);
    transition: background 0.2s;
}
.cvm-repeater__add:hover { background: var(--cvm-blue-100); }

/* Review Summary */
.cvm-review-summary {
    background: var(--cvm-gray-50); border: 1px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius); padding: 24px;
    margin-bottom: 28px;
}
.cvm-review-summary h4 { font-family: var(--cvm-font-display); font-size: 0.95rem; color: var(--cvm-blue-900); margin: 16px 0 8px; }
.cvm-review-summary h4:first-child { margin-top: 0; }
.cvm-review-summary p { font-size: 0.875rem; color: var(--cvm-gray-600); margin: 4px 0; }
.cvm-review-summary .cvm-review-edit {
    color: var(--cvm-blue-500); font-size: 0.8rem; cursor: pointer;
    font-weight: 600; margin-left: 8px; text-decoration: none;
}

/* Template Selector */
.cvm-template-selector { display: flex; gap: 12px; margin-bottom: 24px; }
.cvm-template-option {
    flex: 1; cursor: pointer;
}
.cvm-template-option input { display: none; }
.cvm-template-option__label {
    display: block; text-align: center;
    padding: 14px; border: 2px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius-sm);
    font-weight: 600; font-size: 0.9rem; color: var(--cvm-gray-600);
    transition: all 0.2s;
}
.cvm-template-option input:checked + .cvm-template-option__label {
    border-color: var(--cvm-blue-500); color: var(--cvm-blue-500);
    background: var(--cvm-blue-50);
}

/* Plan Selector */
.cvm-plan-selector { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.cvm-plan-option {
    cursor: pointer; position: relative;
}
.cvm-plan-option input { display: none; }
.cvm-plan-option__content {
    padding: 20px 24px; border: 2px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius-sm);
    display: flex; align-items: center; gap: 16px;
    transition: all 0.2s;
}
.cvm-plan-option input:checked + .cvm-plan-option__content {
    border-color: var(--cvm-blue-500);
    background: var(--cvm-blue-50);
    box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.cvm-plan-option__tag {
    position: absolute; top: -10px; right: 16px;
    background: var(--cvm-blue-500); color: #fff;
    font-size: 0.65rem; font-weight: 700; padding: 3px 10px;
    border-radius: 50px; text-transform: uppercase; letter-spacing: 0.5px;
}
.cvm-plan-option__tag--green {
    background: #22c55e;
}
.cvm-plan-option__name { font-family: var(--cvm-font-display); font-weight: 700; color: var(--cvm-blue-900); flex: 1; }
.cvm-plan-option__price { font-family: var(--cvm-font-display); font-weight: 800; font-size: 1.3rem; color: var(--cvm-blue-600); }
.cvm-plan-option__desc { font-size: 0.8rem; color: var(--cvm-gray-400); flex: 2; }

/* Navigation */
.cvm-cv-form__nav {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
    margin-top: 32px; padding-top: 24px;
    border-top: 1px solid var(--cvm-gray-200);
    gap: 12px;
}

/* Loading */
.cvm-cv-form__loading { text-align: center; padding: 40px; }
.cvm-cv-form__loading p { color: var(--cvm-gray-600); margin-top: 16px; }

/* References toggle */
.cvm-references-fields { margin-top: 12px; }

/* Login Gate Overlay */
.cvm-login-gate {
    display: none; position: fixed; inset: 0; z-index: 99999;
    background: rgba(0,0,0,0.6); backdrop-filter: blur(4px);
    align-items: center; justify-content: center; padding: 20px;
}
.cvm-login-gate.open { display: flex; }
.cvm-login-gate__panel {
    background: var(--cvm-white); border-radius: var(--cvm-radius);
    padding: 36px 32px; max-width: 420px; width: 100%;
    box-shadow: 0 24px 48px rgba(0,0,0,0.2); position: relative;
}
.cvm-login-gate__close {
    position: absolute; top: 12px; right: 12px;
    background: transparent; border: none; cursor: pointer;
    color: var(--cvm-gray-400); padding: 4px; border-radius: 6px;
    transition: all 0.2s;
}
.cvm-login-gate__close:hover { background: var(--cvm-gray-100); color: var(--cvm-gray-800); }
.cvm-login-gate__title {
    font-family: var(--cvm-font-display); font-size: 1.3rem;
    font-weight: 700; color: var(--cvm-blue-900); margin-bottom: 6px;
}
.cvm-login-gate__desc {
    font-size: 0.88rem; color: var(--cvm-gray-500); margin-bottom: 20px; line-height: 1.5;
}
.cvm-login-gate__tabs {
    display: flex; gap: 0; margin-bottom: 20px;
    border-bottom: 2px solid var(--cvm-gray-200);
}
.cvm-login-gate__tab {
    flex: 1; padding: 10px; text-align: center; font-size: 0.88rem;
    font-weight: 600; color: var(--cvm-gray-400); cursor: pointer;
    background: transparent; border: none; border-bottom: 2px solid transparent;
    margin-bottom: -2px; transition: all 0.2s;
    font-family: var(--cvm-font-body);
}
.cvm-login-gate__tab.active {
    color: var(--cvm-blue-600); border-bottom-color: var(--cvm-blue-600);
}
.cvm-login-gate__form { display: none; }
.cvm-login-gate__form.active { display: block; }
.cvm-login-gate__form .cvm-form-group { margin-bottom: 14px; }
.cvm-login-gate__form .cvm-form-group label {
    display: block; font-size: 0.82rem; font-weight: 600;
    color: var(--cvm-gray-700); margin-bottom: 5px;
}
.cvm-login-gate__form .cvm-form-group input {
    width: 100%; padding: 11px 14px;
    border: 1.5px solid var(--cvm-gray-200); border-radius: var(--cvm-radius-sm);
    font-family: var(--cvm-font-body); font-size: 0.88rem;
    color: var(--cvm-gray-800); outline: none; transition: border-color 0.2s;
}
.cvm-login-gate__form .cvm-form-group input:focus {
    border-color: var(--cvm-blue-400);
}
.cvm-login-gate__submit {
    width: 100%; padding: 12px; border: none; border-radius: 50px;
    background: linear-gradient(90deg, var(--cvm-blue-500), var(--cvm-blue-400));
    color: #fff; font-size: 0.9rem; font-weight: 700; cursor: pointer;
    font-family: var(--cvm-font-body); transition: opacity 0.2s;
}
.cvm-login-gate__submit:hover { opacity: 0.92; }
.cvm-login-gate__submit:disabled { opacity: 0.6; cursor: not-allowed; }
.cvm-login-gate__feedback {
    text-align: center; padding: 10px; border-radius: var(--cvm-radius-sm);
    font-size: 0.82rem; font-weight: 600; margin-top: 12px; display: none;
}
.cvm-login-gate__feedback.success { display: block; background: rgba(34,197,94,0.12); color: #22c55e; }
.cvm-login-gate__feedback.error { display: block; background: rgba(239,68,68,0.12); color: #ef4444; }
.cvm-login-gate__footer {
    text-align: center; margin-top: 14px; font-size: 0.82rem; color: var(--cvm-gray-400);
}
.cvm-login-gate__footer a {
    color: var(--cvm-blue-500); font-weight: 600; text-decoration: none;
}

/* Upload CV Panel */
.cvm-upload-panel {
    margin-bottom: 36px;
}
.cvm-upload-panel__box {
    text-align: center; max-width: 520px; margin: 0 auto;
    background: var(--cvm-white); border: 1.5px solid var(--cvm-gray-200);
    border-radius: var(--cvm-radius); padding: 48px 36px;
}
.cvm-upload-panel__icon { margin-bottom: 16px; }
.cvm-upload-panel__box h3 {
    font-family: var(--cvm-font-display); font-size: 1.3rem;
    font-weight: 700; color: var(--cvm-blue-900); margin-bottom: 8px;
}
.cvm-upload-panel__box p {
    color: var(--cvm-gray-600); font-size: 0.9rem; line-height: 1.6; margin-bottom: 24px;
}
.cvm-upload-panel__drop {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 40px 24px; border: 2px dashed var(--cvm-blue-200);
    border-radius: var(--cvm-radius-sm); cursor: pointer;
    transition: all 0.2s; background: var(--cvm-blue-50);
}
.cvm-upload-panel__drop:hover,
.cvm-upload-panel__drop.dragover {
    border-color: var(--cvm-blue-400); background: var(--cvm-blue-100);
}
.cvm-upload-panel__drop-text {
    color: var(--cvm-gray-600); font-size: 0.9rem; line-height: 1.6;
}
.cvm-upload-panel__drop-text strong { color: var(--cvm-blue-600); }
.cvm-upload-panel__drop-text small { color: var(--cvm-gray-400); font-size: 0.8rem; }
.cvm-upload-panel__status {
    padding: 24px; display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.cvm-upload-panel__status p { color: var(--cvm-gray-600); font-size: 0.88rem; margin: 0; }
.cvm-upload-panel__error {
    background: rgba(239,68,68,0.1); color: #ef4444;
    padding: 12px 16px; border-radius: var(--cvm-radius-sm);
    font-size: 0.85rem; font-weight: 600; margin-top: 16px;
}
.cvm-upload-panel__skip {
    margin-top: 20px; font-size: 0.85rem; color: var(--cvm-gray-400);
}
.cvm-upload-panel__skip a {
    color: var(--cvm-blue-500); font-weight: 600; text-decoration: none;
}
.cvm-upload-panel__skip a:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .cvm-form-row { grid-template-columns: 1fr; }
    .cvm-template-selector { flex-direction: column; }
    .cvm-plan-option__content { flex-direction: column; align-items: flex-start; gap: 8px; }
    .cvm-cv-form__steps-labels { display: none; }
    .cvm-cv-form__nav {
        flex-wrap: wrap;
    }
    .cvm-cv-form__prev,
    .cvm-cv-form__next {
        flex: 1; min-width: 0;
    }
    .cvm-cv-form__submit {
        width: 100%; order: 3;
    }
    .cvm-upload-panel__box { padding: 32px 20px; }
}
