.fitjob-functional-page,
.fitjob-auth-page {
    min-height: 70vh;
    padding: 104px 0 64px;
    background: #f7f8fa;
}

.fitjob-app-shell,
.fitjob-auth-card {
    max-width: 980px;
    margin: 0 auto;
    padding: 32px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(17, 24, 39, .07);
}

.fitjob-auth-page .container { max-width: 920px; }
.fitjob-auth-card { max-width: 520px; padding: 38px; }
.fitjob-auth-wide { max-width: 700px; }
.fitjob-auth-card,
.fitjob-app-shell { width: 100%; min-width: 0; }
.fitjob-auth-card h1,
.fitjob-app-shell h1 { margin: 0 0 10px; }
.fitjob-auth-card h1 {
    max-width: 100%;
    font-size: clamp(2.25rem, 4vw, 3.35rem);
    line-height: 1.02;
    letter-spacing: -.045em;
    text-wrap: balance;
}
.fitjob-auth-card > p { margin: 14px 0 0; color: #687386; font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.fitjob-auth-card > p:last-child { margin-top: 20px; text-align: center; }
.fitjob-auth-card a { color: #c92724; font-weight: 650; text-underline-offset: 3px; }
.fitjob-app-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 26px; }
.fitjob-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; margin: 24px 0; }
.fitjob-dashboard-card { padding: 22px; border: 1px solid #e5e7eb; border-radius: 16px; background: #fbfbfc; }
.fitjob-dashboard-card h3 { margin: 0 0 8px; }
.fitjob-form { display: grid; gap: 16px; margin-top: 24px; }
.fitjob-form label,
.fitjob-form fieldset { display: grid; gap: 7px; font-weight: 600; }
.fitjob-form fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; }
.fitjob-form fieldset legend { grid-column: 1 / -1; margin-bottom: 2px; padding: 0; font-weight: 700; }
.fitjob-form input,
.fitjob-form textarea,
.fitjob-form select { width: 100%; min-width: 0; box-sizing: border-box; padding: 13px 14px; border: 1px solid #cfd4dc; border-radius: 10px; background: #fff; font: inherit; }
.fitjob-form textarea { min-height: 130px; resize: vertical; }
.fitjob-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fitjob-form .fitjob-radio,
.fitjob-form .fitjob-consent { display: flex; align-items: flex-start; gap: 9px; font-weight: 500; }
.fitjob-form .fitjob-radio { align-items: center; min-height: 48px; padding: 11px 14px; border: 1px solid #d7dbe2; border-radius: 10px; cursor: pointer; transition: .2s ease; }
.fitjob-form .fitjob-radio:has(input:checked) { border-color: #e53935; background: #fff5f5; box-shadow: 0 0 0 2px rgba(229,57,53,.08); }
.fitjob-form .fitjob-consent { line-height: 1.45; }
.fitjob-form .fitjob-consent span { min-width: 0; }
.fitjob-form .fitjob-radio input,
.fitjob-form .fitjob-consent input { width: auto; margin-top: 3px; }
.fitjob-action { display: inline-flex; justify-content: center; align-items: center; width: 100%; min-height: 50px; padding: 0 22px; border: 0; border-radius: 10px; color: #fff !important; background: #e53935; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.fitjob-action:hover { background: #c92724; transform: translateY(-1px); }
.fitjob-notice { margin: 18px 0; padding: 14px 16px; border-radius: 10px; }
.fitjob-notice.success { color: #166534; background: #dcfce7; }
.fitjob-notice.error { color: #991b1b; background: #fee2e2; }
.fitjob-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.fitjob-list { display: grid; gap: 14px; margin-top: 24px; }
.fitjob-list-item,
.fitjob-empty { padding: 20px; border: 1px solid #e5e7eb; border-radius: 14px; background: #fbfbfc; }
.fitjob-list-item h3 { margin: 0 0 8px; }
.fitjob-link-muted { color: #4b5563; }
.fitjob-profile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 24px; }
.fitjob-directory-filter { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(180px, .8fr) auto; gap: 12px; align-items: end; margin: 24px 0 8px; }
.fitjob-directory-filter label { display: grid; gap: 7px; font-weight: 600; }
.fitjob-directory-filter input { width: 100%; min-width: 0; box-sizing: border-box; padding: 13px 14px; border: 1px solid #cfd4dc; border-radius: 10px; background: #fff; font: inherit; }
.fitjob-profile-card { display: block; padding: 22px; border: 1px solid #e5e7eb; border-radius: 16px; color: inherit; background: #fbfbfc; text-decoration: none; transition: .2s ease; }
.fitjob-profile-card:hover { border-color: #e53935; transform: translateY(-2px); }
.fitjob-profile-card h2 { margin: 0 0 7px; font-size: 20px; }
.fitjob-profile-position { color: #e53935; font-weight: 700; }
.fitjob-profile-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.fitjob-profile-meta span { padding: 6px 10px; border-radius: 999px; background: #f1f3f5; font-size: 13px; }
.fitjob-profile-content { margin: 26px 0; line-height: 1.7; }
.fitjob-profile-photo { width: 72px; height: 72px; margin-bottom: 14px; overflow: hidden; border-radius: 50%; background: #f1f2f4; }
.fitjob-profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.fitjob-candidate-photo { width: 150px; height: 150px; margin: 20px 0; overflow: hidden; border-radius: 24px; background: #f1f2f4; }
.fitjob-candidate-photo img { width: 100%; height: 100%; object-fit: cover; }
.fitjob-upload-preview { display: flex; align-items: center; gap: 14px; }
.fitjob-upload-preview img { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; }
.fitjob-file-hint { color: #6b7280; font-size: .88rem; font-weight: 400; }

@media (max-width: 640px) {
    .fitjob-functional-page,
    .fitjob-auth-page { min-height: auto; padding: 84px 0 36px; }
    .fitjob-app-shell,
    .fitjob-auth-card { padding: 22px; border-radius: 16px; }
    .fitjob-auth-card h1 { font-size: clamp(2rem, 9vw, 2.6rem); overflow-wrap: normal; }
    .fitjob-app-shell h1 { font-size: clamp(1.75rem, 9vw, 2.25rem); overflow-wrap: anywhere; }
    .fitjob-auth-card > p { font-size: .98rem; line-height: 1.55; }
    .fitjob-form input,
    .fitjob-form textarea,
    .fitjob-form select { font-size: 16px; }
    .fitjob-form-row { grid-template-columns: 1fr; }
    .fitjob-form fieldset { grid-template-columns: 1fr; }
    .fitjob-directory-filter { grid-template-columns: 1fr; }
    .fitjob-app-head { flex-direction: column; }
}
