.btn,
button.btn,
.btn-link,
.page-link,
.chip {
  min-height: 42px;
  padding: .62rem 1rem;
  border-radius: 6px;
  border-width: 1px;
  font: 600 .9rem/1.2 system-ui, sans-serif;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.btn:hover,
button.btn:hover,
.page-link:hover,
.chip:hover { transform: translateY(-1px); }
.btn:active,
button.btn:active,
.page-link:active,
.chip:active { transform: translateY(0); }
.btn:focus-visible,
button.btn:focus-visible,
.page-link:focus-visible,
.chip:focus-visible { outline: 3px solid rgba(246, 76, 114, .38); outline-offset: 2px; }
.btn-dark, .btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn-dark:hover, .btn-dark:focus, .btn-primary:hover, .btn-primary:focus-visible { background: var(--primary-strong); border-color: var(--primary-strong); color: #fff; box-shadow: 0 7px 18px rgba(36, 37, 130, .2); }
.btn-outline-dark { color: var(--primary); border-color: var(--mauve); background: #fff; }
.btn-outline-dark:hover, .btn-outline-dark:focus { color: var(--primary); background: var(--mint); border-color: var(--primary); }
.btn-danger { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-danger:hover, .btn-danger:focus { background: #d9365c; border-color: #d9365c; color: #fff; }
.btn:disabled, .btn.disabled, button:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.navbar .btn { min-height: 38px; padding: .5rem .9rem; }
.navbar .nav-link { color: var(--purple); transition: color .16s ease, background-color .16s ease; border-radius: 6px; }
.navbar .nav-link:hover, .navbar .nav-link:focus-visible, .navbar .nav-link.active { color: var(--primary); background: #f0efff; }
.btn-accent { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-accent:hover, .btn-accent:focus-visible { background: #d9365c; border-color: #d9365c; color: #fff; box-shadow: 0 7px 18px rgba(246, 76, 114, .25); }
.btn-outline-primary { color: var(--primary); border-color: var(--primary); background: #fff; }
.btn-outline-primary:hover, .btn-outline-primary:focus-visible { color: #fff; background: var(--primary); border-color: var(--primary); }
.navbar .btn-link { min-height: 38px; padding: .5rem .75rem; color: var(--ink); text-decoration: none; }
.pagination .page-link { color: var(--primary); background: #fff; border-color: var(--line); }
.pagination .active .page-link { color: #fff; background: var(--primary); border-color: var(--primary); }
.chip { min-height: 36px; padding: .45rem .8rem; font-weight: 500; }
.form-control, .form-select { min-height: 42px; }

.btn-secondary { background: #fff; border-color: var(--purple); color: var(--purple); }
.btn-secondary:hover, .btn-secondary:focus-visible, .btn-secondary.is-active { background: var(--mint); border-color: var(--primary-strong); color: var(--primary); }
.btn-ghost { background: transparent; border-color: transparent; color: var(--purple); }
.btn-ghost:hover, .btn-ghost:focus-visible { background: #f0edf5; color: var(--primary); }
.btn-icon { width: 42px; padding: .4rem; font-size: 1.25rem; }

.jobs-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.7rem; }
.jobs-heading h1 { margin-bottom:.45rem; }
.jobs-subtitle { color:var(--muted); margin:0; font-family:system-ui,sans-serif; }
.jobs-count, .results-count { color:var(--muted); font:600 .9rem system-ui,sans-serif; }
.jobs-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) auto auto auto; gap:.7rem; align-items:center; position:relative; margin-bottom:1rem; }
.search-control { display:flex; align-items:center; gap:.55rem; min-height:48px; padding:0 .85rem; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 3px 12px rgba(36,37,130,.07); }
.search-control:focus-within { border-color:var(--primary-strong); box-shadow:0 0 0 3px rgba(47,47,162,.14); }
.search-control .form-control { flex:1; min-width:0; border:0; box-shadow:none; min-height:44px; padding:.55rem .2rem; }
.control-icon { font:1.5rem/1 system-ui,sans-serif; color:var(--primary); transform:rotate(-20deg); }
.sort-control { display:flex; align-items:center; gap:.45rem; color:var(--muted); font:600 .78rem system-ui,sans-serif; white-space:nowrap; }
.sort-control .form-select { min-width:130px; background:#fff; }
.filter-drawer { position:absolute; z-index:5; top:calc(100% + .7rem); left:0; right:0; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 18px 45px rgba(36,37,130,.18); padding:1.25rem; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s ease, transform .18s ease; }
.filter-drawer.is-open { opacity:1; pointer-events:auto; transform:translateY(0); }
.filter-drawer-header, .filter-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.filter-drawer-header { border-bottom:1px solid #e5ebe5; padding-bottom:.8rem; margin-bottom:1rem; }
.filter-drawer-header h2 { font:700 1.05rem system-ui,sans-serif; margin:0; }
.filter-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.filter-grid label { display:grid; gap:.4rem; color:var(--purple); font:600 .78rem system-ui,sans-serif; }
.filter-actions { justify-content:flex-end; margin-top:1.1rem; padding-top:1rem; border-top:1px solid #e5ebe5; }
.active-filters { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin:1rem 0 1.5rem; }
.active-label { color:var(--muted); font:600 .78rem system-ui,sans-serif; }
.filter-chip { color:var(--primary); background:#eeeafa; border:1px solid #c7bfda; border-radius:999px; padding:.4rem .7rem; font:600 .8rem system-ui,sans-serif; text-decoration:none; }
.filter-chip:hover { background:#ded8ef; color:var(--primary); }
.clear-inline { color:var(--purple); font:600 .8rem system-ui,sans-serif; margin-left:.25rem; }
.results-row { margin:0 0 .9rem; }
.results-row .results-count { display:none; }
.empty-state { background:#fff; border:1px solid #dfe5dd; border-radius:8px; padding:3rem 1.5rem; text-align:center; }
.empty-state h2 { font-size:1.4rem; }
@media (max-width: 767px) { .jobs-heading { align-items:start; flex-direction:column; } .jobs-count { display:none; } .jobs-toolbar { grid-template-columns:1fr auto; } .search-control { grid-column:1 / -1; } .sort-control { grid-column:1 / -1; justify-content:space-between; } .filter-drawer { position:fixed; top:auto; bottom:0; left:0; right:0; border-radius:14px 14px 0 0; max-height:85vh; overflow:auto; transform:translateY(100%); } .filter-drawer.is-open { transform:translateY(0); } .filter-grid { grid-template-columns:1fr 1fr; } .search-submit { display:none; } }
@media (max-width: 420px) { .filter-grid { grid-template-columns:1fr; } .filter-actions { flex-direction:column-reverse; align-items:stretch; } .filter-actions .btn { width:100%; } }
.empty-state { background:var(--surface); border-color:var(--line); }
.cv-preview, .cv-template-card { background:var(--surface); border-color:var(--line); }
.cv-template-card:hover { border-color:var(--primary-strong); box-shadow:0 10px 22px rgba(36,37,130,.12); }
.cv-template-card:has(input:checked) { border-color:var(--primary); box-shadow:0 0 0 4px rgba(246,76,114,.18); }
.cv-preview { min-height:520px; overflow:hidden; }
.cv-preview h3 { color:var(--primary); }
.cv-modern { display:grid; grid-template-columns:145px 1fr; padding:0; }
.cv-modern-sidebar { background:var(--primary); color:#fff; padding:1.5rem 1rem; }
.cv-modern-sidebar h3 { color:#ffd9e2; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }
.cv-modern-sidebar p { font-size:.8rem; line-height:1.55; }
.cv-modern-main { padding:2rem; }
.cv-modern-main h2 { color:var(--primary); font-size:2rem; }
.cv-role { color:var(--purple); font:600 .8rem system-ui,sans-serif; }
.cv-professional { padding:0; border-left:8px solid var(--purple); }
.cv-professional-header { display:flex; justify-content:space-between; align-items:center; padding:1.6rem; background:linear-gradient(120deg,var(--purple),var(--primary)); color:#fff; }
.cv-professional-header h2, .cv-professional-header p { margin:0; color:#fff; }
.cv-two-column { display:grid; grid-template-columns:1.5fr 1fr; gap:1.4rem; padding:1.5rem; }
.cv-two-column aside { border-left:1px solid var(--line); padding-left:1.2rem; }
.cv-two-column h3 { border-bottom:2px solid var(--mauve); padding-bottom:.35rem; }
.cv-minimal { padding:2.5rem; box-shadow:none; border-color:#c9c9c9; font-family:Georgia,'Times New Roman',serif; }
.cv-minimal-header { display:flex; align-items:center; gap:1rem; }
.cv-minimal-header h2 { font-size:2.2rem; font-weight:400; margin:0; }
.cv-minimal-header p { color:#555; margin:0; }
.cv-minimal-rule { border-top:1px solid #222; margin:1.5rem 0; }
.cv-minimal h3 { color:#222; font:700 .72rem system-ui,sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.cv-minimal-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:2rem; }
.cv-creative { padding:1.5rem; border-top:12px solid var(--accent); background:#fff9fb; }
.cv-creative-banner { display:flex; justify-content:space-between; align-items:center; padding:1.2rem; background:var(--accent); color:#fff; transform:rotate(-1deg); }
.cv-creative-banner h2, .cv-creative-banner p { margin:0; color:#fff; }
.cv-creative h3 { color:var(--purple); font-family:Georgia,'Times New Roman',serif; font-size:1.2rem; }
.cv-creative-sections { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:767px) { .cv-modern { grid-template-columns:1fr; } .cv-modern-sidebar { display:flex; gap:1rem; flex-wrap:wrap; } .cv-two-column, .cv-minimal-grid, .cv-creative-sections { grid-template-columns:1fr; } .cv-two-column aside { border-left:0; border-top:1px solid var(--line); padding:1rem 0 0; } .cv-minimal { padding:1.3rem; } }

.account-page { background: radial-gradient(circle at 90% 5%, #eeeafa 0, transparent 28rem); min-height: calc(100vh - 70px); }
.account-shell { max-width: 1080px; }
.account-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:1.8rem; }
.profile-heading-actions { display:flex; align-items:center; gap:.7rem; }
.completion-pill { color:var(--primary); background:#eeeafa; border:1px solid #c7bfda; border-radius:999px; padding:.5rem .75rem; font:700 .78rem system-ui,sans-serif; }
.account-heading h1 { margin:.25rem 0 .45rem; }
.account-heading p:not(.eyebrow) { color:var(--muted); margin:0; }
.profile-hero { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.4rem; padding:1.5rem; margin-bottom:1rem; background:linear-gradient(120deg,#fff 0%,#f5f3ff 100%); border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 30px rgba(36,37,130,.08); }
.profile-avatar { width:92px; height:92px; display:grid; place-items:center; overflow:hidden; border-radius:24px; background:linear-gradient(135deg,var(--primary),var(--purple)); color:#fff; font:700 2rem system-ui,sans-serif; }
.profile-avatar img { width:100%; height:100%; object-fit:cover; }
.profile-identity h2 { margin:.15rem 0; }
.profile-identity p:not(.eyebrow) { color:var(--muted); margin:.2rem 0; font-family:system-ui,sans-serif; }
.profile-photo-actions form { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; max-width:230px; }
.profile-photo-actions input[type=file] { position:absolute; width:1px; height:1px; opacity:0; }
.remove-photo { width:100%; color:var(--muted); font: .78rem system-ui,sans-serif; text-align:right; }
.account-card { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:1.5rem; margin-top:1rem; box-shadow:0 8px 24px rgba(36,37,130,.05); }
.card-heading { display:flex; justify-content:space-between; margin-bottom:1.2rem; }
.card-heading h2 { margin:.2rem 0 0; font-size:1.35rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.form-field, .auth-field { display:grid; gap:.4rem; }
.form-field-wide { grid-column:1 / -1; }
.form-field label, .auth-field label, .form-label { color:var(--purple); font:600 .8rem system-ui,sans-serif; }
.form-field input, .form-field select, .form-field textarea, .auth-field input { width:100%; }
.form-field textarea { min-height:110px; }
.form-error { color:#b4234d; font: .78rem system-ui,sans-serif; }
.account-actions { display:flex; justify-content:flex-end; margin-top:1rem; }
.history-list { display:grid; gap:.75rem; }
.history-item { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.2rem 1.35rem; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:9px; }
.history-item h2 { margin:.35rem 0; font-size:1.05rem; }
.history-item p, .history-meta time { color:var(--muted); font: .82rem system-ui,sans-serif; margin:0; }
.source-label { color:var(--primary); font:700 .72rem system-ui,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.history-meta { display:flex; flex-direction:column; align-items:flex-end; gap:.65rem; flex-shrink:0; }
.empty-icon { color:var(--accent); font-size:2rem; }
.auth-page { min-height:calc(100vh - 70px); display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,480px); align-items:center; gap:4rem; max-width:1100px; margin:auto; padding:4rem 1.5rem; background:radial-gradient(circle at 5% 20%,#eeeafa 0,transparent 24rem); }
.auth-intro { padding:2rem 0; }
.auth-intro h1 { max-width:520px; margin:.5rem 0 1rem; font-size:clamp(2.5rem,6vw,5rem); line-height:.98; color:var(--primary); }
.auth-intro p:not(.eyebrow) { max-width:420px; color:var(--muted); font:1.05rem/1.6 system-ui,sans-serif; }
.auth-card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:2rem; box-shadow:0 20px 50px rgba(36,37,130,.13); }
.auth-card h2 { margin:.25rem 0 1.4rem; }
.auth-form { display:grid; gap:1rem; }
.auth-field input { min-height:48px; border-radius:7px; border:1px solid #c7c6dc; padding:.7rem .85rem; }
.auth-field input:focus { border-color:var(--primary-strong); outline:0; box-shadow:0 0 0 3px rgba(47,47,162,.14); }
.password-field { position:relative; display:grid; gap:.4rem; }
.password-field input { width:100%; padding-right:76px; }
.password-toggle { position:absolute; right:10px; bottom:10px; border:0; background:transparent; color:var(--primary); font:600 .8rem system-ui,sans-serif; cursor:pointer; }
.auth-button { width:100%; min-height:48px; }
.auth-footer { color:var(--muted); margin:1.4rem 0 0; text-align:center; font: .9rem system-ui,sans-serif; }
.auth-footer a, .text-link { color:var(--primary); font-weight:700; }
.auth-error { background:#fff0f4; border:1px solid #f4b4c4; padding:.7rem; border-radius:7px; margin-bottom:1rem; }
.cv-builder-shell { max-width:1120px; }
.cv-builder-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.85fr); gap:1.25rem; align-items:start; }
.cv-photo-row { display:flex; align-items:center; gap:1rem; }
.profile-avatar.small { width:68px; height:68px; border-radius:18px; font-size:1.4rem; flex-shrink:0; }
.photo-form { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.photo-form input[type=file] { position:absolute; width:1px; height:1px; opacity:0; }
.cv-preview-panel { position:sticky; top:90px; }
.cv-preview-identity { display:flex; align-items:center; gap:1rem; }
.cv-preview-photo { width:72px; height:72px; object-fit:cover; border-radius:16px; border:3px solid var(--accent); }
@media (max-width:767px) { .cv-builder-grid { grid-template-columns:1fr; } .cv-preview-panel { position:static; } }
@media (max-width:767px) { .account-heading, .profile-hero, .history-item { align-items:flex-start; flex-direction:column; } .profile-hero { display:flex; } .profile-photo-actions form { justify-content:flex-start; max-width:none; } .remove-photo { text-align:left; } .form-grid { grid-template-columns:1fr; } .form-field-wide { grid-column:auto; } .auth-page { grid-template-columns:1fr; gap:1rem; padding:2.5rem 1rem; } .auth-intro { padding:0; } .auth-intro h1 { font-size:2.8rem; } .auth-card { padding:1.35rem; } .history-meta { align-items:flex-start; } }
