/* GenerateCV.ai – theme palette (logo: deep blue, teal, vibrant green) */
:root {
    --brand-primary: #0056B3;
    --brand-primary-hover: #004080;
    --brand-primary-light: #00BFFF;
    --brand-gradient-start: #0056B3;
    --brand-gradient-middle: #0080FF;
    --brand-gradient-end: #32CD32;
    --bg-app: #F8FAFC;
    --bg-card: #FFFFFF;
    --bg-sidebar: #0F3D5E;
    --bg-sidebar-hover: #1E4E6F;
    --bg-sidebar-active: #00BFFF;
    --text-primary: #0F3D5E;
    --text-secondary: #1E4E6F;
    --text-muted: #94A3B8;
    --text-inverse: #FFFFFF;
    --border-default: #E2E8F0;
    --border-soft: #F1F5F9;
    --border-strong: #CBD5E1;
    --status-success: #32CD32;
    --status-warning: #F59E0B;
    --status-error: #EF4444;
    --status-info: #00BFFF;
    --accent-ai: #32CD32;
    --accent-growth: #20B2AA;
    --platform-primary: var(--brand-primary);
    --platform-primary-hover: var(--brand-primary-hover);
    --platform-dark: var(--bg-sidebar);
    --platform-navbar: var(--bg-sidebar);
    --platform-card: var(--bg-card);
    --platform-border: var(--border-default);
    --platform-muted: var(--text-muted);
    --platform-bg: var(--bg-app);
    --platform-hero-bg: linear-gradient(135deg, var(--brand-gradient-start) 0%, var(--brand-gradient-middle) 50%, var(--brand-gradient-end) 100%);
}

/* --- Platform (dashboard, login, register) --- */
body { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; min-height: 100vh; background: var(--platform-bg); color: var(--text-primary); }
.platform-navbar { background: var(--platform-navbar) !important; padding: 0.5rem 0; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.platform-navbar .platform-navbar-inner { padding-left: 0.5rem !important; padding-right: 0.75rem !important; max-width: 100%; }
@media (min-width: 576px) { .platform-navbar .platform-navbar-inner { padding-right: 1rem !important; } }
.platform-navbar-sticky { position: sticky; top: 0; z-index: 1030; }
.platform-navbar .navbar-brand { font-weight: 700; font-size: 1.35rem; color: var(--text-inverse) !important; letter-spacing: -0.02em; padding: 0; margin-right: 0; }
.platform-navbar .navbar-brand { padding: 0.25rem 0.5rem; background: #fff; border-radius: 8px; border: 1px solid rgba(255,255,255,.5); }
.platform-navbar .navbar-logo { height: 32px; width: auto; max-width: 160px; object-fit: contain; display: block; }
.platform-navbar .navbar-slogan { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em; color: var(--text-primary); text-transform: uppercase; }
.platform-navbar .navbar-slogan .text-accent { color: var(--brand-primary-light); }
.platform-footer .footer-slogan { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; color: rgba(255,255,255,.9); text-transform: uppercase; }
.platform-footer .footer-slogan .text-accent { color: var(--brand-primary-light); }
.platform-navbar .nav-link { color: rgba(255,255,255,.85) !important; font-weight: 500; padding: 0.5rem 1rem !important; border-radius: 6px; }
.platform-navbar .nav-link:hover { color: var(--text-inverse) !important; background: var(--bg-sidebar-hover); }
.platform-navbar .btn-join { background: var(--platform-primary); color: var(--text-inverse) !important; font-weight: 600; padding: 0.5rem 1.25rem; border-radius: 24px; }
.platform-navbar .btn-join:hover { background: var(--platform-primary-hover); color: var(--text-inverse) !important; }
.platform-footer { background: var(--platform-dark); color: var(--text-muted); padding: 1.5rem 0; margin-top: auto; }
@media (min-width: 768px) { .platform-footer { padding: 2.5rem 0; } }
.platform-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.platform-footer a:hover { color: var(--text-inverse); }
/* --- Auth pages (login, register) --- */
.auth-page { min-height: calc(100vh - 56px); background: linear-gradient(135deg, #e8f4fc 0%, #f0f7ff 35%, #f5faf8 70%, #eef9f4 100%); position: relative; padding-top: 1rem; padding-bottom: 2rem; }
.auth-page::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 20% 80%, rgba(0,86,179,.03) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(50,205,50,.03) 0%, transparent 50%); pointer-events: none; }
.auth-page .container { position: relative; z-index: 1; max-width: 100%; }
.auth-page .auth-hero { padding: 1.5rem 0; }
.auth-page .auth-hero-title { font-size: clamp(1rem, 2.8vw, 2rem); font-weight: 700; letter-spacing: 0.04em; color: var(--text-primary); line-height: 1.25; text-transform: uppercase; }
.auth-page .auth-hero-title .text-accent { color: var(--brand-primary-light); }
@media (max-width: 575.98px) {
    .auth-page .auth-hero-title { font-size: 0.95rem; letter-spacing: 0.02em; white-space: normal; }
    .auth-page .auth-hero .lead { font-size: 0.95rem; }
    .auth-page .auth-feature { gap: 0.75rem; margin-bottom: 1rem; }
    .auth-page .auth-feature-icon { width: 2rem; height: 2rem; min-width: 2rem; font-size: 0.8rem; }
}
@media (min-width: 576px) and (max-width: 991.98px) {
    .auth-page .auth-hero-title { font-size: 1.25rem; }
}
.auth-page .auth-hero .lead { font-size: 1.05rem; color: var(--text-secondary); line-height: 1.6; }
.auth-page .auth-feature { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; }
.auth-page .auth-feature-icon { width: 2.5rem; height: 2.5rem; min-width: 2.5rem; border-radius: 10px; background: var(--platform-hero-bg); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.9rem; box-shadow: 0 2px 8px rgba(0,86,179,.2); }
.auth-page .auth-feature span { line-height: 1.5; color: var(--text-primary); }
.auth-card { max-width: 100%; border: none; border-radius: 16px; box-shadow: 0 8px 32px rgba(0,86,179,.1), 0 2px 8px rgba(0,0,0,.04); border: 1px solid rgba(255,255,255,.8); overflow: hidden; background: #fff; }
@media (min-width: 576px) { .auth-card { max-width: 520px; } }
.auth-card.wide { max-width: 100%; }
@media (min-width: 576px) { .auth-card.wide { max-width: 600px; } }
.auth-card .auth-card-accent { height: 4px; background: var(--platform-hero-bg); }
.auth-card .card-body { padding: 1.5rem; }
@media (min-width: 576px) { .auth-card .card-body { padding: 2rem; } }
@media (min-width: 992px) { .auth-card .card-body { padding: 2.5rem; } }
.auth-card .form-control, .auth-card .form-control-lg { border-radius: 10px; border: 1px solid var(--border-default); padding: 0.75rem 1rem; font-size: 1rem; transition: border-color .2s, box-shadow .2s; }
.auth-card .form-control:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 3px rgba(0,86,179,.12); }
.auth-card .btn-platform { border-radius: 10px; padding: 0.75rem 1.5rem; font-weight: 600; transition: transform .2s, box-shadow .2s; }
.auth-card .btn-platform:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,86,179,.3); }
.code-inputs .code-digit { width: 3rem; height: 3.25rem; font-size: 1.5rem; font-weight: 600; }
#codeModal .modal-body { padding: 1.25rem 1.5rem; }
#codeModal .modal-header { padding: 1.25rem 1.5rem 0; }
#codeModal #verifyBtn { padding: 0.75rem 1.5rem; font-size: 1rem; }
.btn-platform { background: var(--platform-primary); color: var(--text-inverse); font-weight: 600; border: none; border-radius: 8px; padding: 0.65rem 1.25rem; }
.btn-platform:hover { background: var(--platform-primary-hover); color: var(--text-inverse); }
.link-platform { color: var(--platform-primary); font-weight: 500; }
.link-platform:hover { color: var(--platform-primary-hover); }
.text-muted { color: var(--text-muted) !important; }
.btn-primary { background-color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-primary:hover { background-color: var(--brand-primary-hover); border-color: var(--brand-primary-hover); }
.bg-primary { background-color: var(--brand-primary) !important; }
a.text-primary, .link-primary { color: var(--brand-primary) !important; }
a.text-primary:hover, .link-primary:hover { color: var(--brand-primary-hover) !important; }
.form-control:focus, .form-select:focus { border-color: var(--platform-primary); box-shadow: 0 0 0 3px rgba(0,86,179,.15); }

/* --- Dashboard theme (premium look) --- */
.dashboard-main {
    background: linear-gradient(180deg, #f0f7ff 0%, var(--platform-bg) 120px);
    min-height: calc(100vh - 56px);
}
.dashboard-sidebar {
    position: relative;
    width: 280px;
    min-height: calc(100vh - 56px);
    background: linear-gradient(180deg, var(--bg-sidebar) 0%, #0a2d47 100%) !important;
    box-shadow: 4px 0 24px rgba(0,0,0,.08);
}
.dashboard-sidebar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--platform-hero-bg);
}
.dashboard-sidebar .nav-link {
    transition: all .2s ease;
    border-radius: 8px;
    padding: 0.5rem 0.75rem !important;
}
.dashboard-sidebar .nav-link:hover {
    transform: translateX(2px);
}
.dashboard-sidebar .nav-link.link-platform {
    box-shadow: 0 2px 8px rgba(0,191,255,.2);
}
.dashboard-sidebar .nav-link.link-create-cv {
    color: var(--accent-ai) !important;
}
.dashboard-sidebar .nav-link.link-create-cv:hover {
    background: rgba(50,205,50,.15) !important;
    color: var(--accent-ai) !important;
}
.dashboard-card {
    background: var(--bg-card);
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,86,179,.04);
    transition: box-shadow .2s ease, border-color .2s ease;
}
.dashboard-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,.06), 0 8px 24px rgba(0,86,179,.06);
    border-color: var(--border-default);
}
.dashboard-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border-soft);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: -0.01em;
}
.dashboard-card-body { padding: 1.5rem; }
.dashboard-profile-card {
    background: var(--bg-card);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,86,179,.1), 0 1px 3px rgba(0,0,0,.06);
}
.dashboard-profile-card .profile-banner {
    height: 120px;
    background: var(--platform-hero-bg);
}
.dashboard-profile-card .profile-avatar {
    width: 80px;
    height: 80px;
    border: 4px solid white;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    background: linear-gradient(135deg, var(--brand-primary-light), var(--accent-ai));
    font-weight: 700;
    font-size: 1.5rem;
    color: #fff !important;
}
.btn-platform {
    border-radius: 10px;
    padding: 0.6rem 1.35rem;
    box-shadow: 0 2px 8px rgba(0,86,179,.25);
    transition: all .2s ease;
}
.btn-platform:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,86,179,.35);
}
.btn-outline-primary {
    border-radius: 8px;
    transition: all .2s ease;
}
.btn-outline-primary:hover {
    transform: translateY(-1px);
}
.badge { font-weight: 500; padding: 0.35em 0.65em; border-radius: 6px; }
.dashboard-list-item {
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-soft);
    transition: background .15s ease;
}
.dashboard-list-item:last-child { border-bottom: none; }
.dashboard-list-item:hover { background: rgba(0,86,179,.02); }
.dashboard-list-item a { transition: color .15s ease; }
.dashboard-list-item a:hover { color: var(--brand-primary) !important; }

/* Section cards (titles, education, etc.) – same premium look */
.dashboard-main .card.rounded-3 {
    border: 1px solid var(--border-soft);
    border-radius: 16px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,86,179,.04);
    transition: box-shadow .2s ease;
}
.dashboard-main .card.rounded-3:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,.06), 0 8px 24px rgba(0,86,179,.06);
}
.dashboard-main .card .card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border-soft);
    font-weight: 600;
}
.dashboard-main .card .card-body { padding: 1.5rem; }
/* Dashboard: mobile offcanvas - smaller, rounded, no overflow */
#dashboardSidebar.offcanvas {
    max-width: min(260px, 78vw);
    width: min(260px, 78vw);
    border-radius: 0 1rem 1rem 0;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}
#dashboardSidebar.offcanvas .offcanvas-header {
    border-radius: 0 1rem 0 0;
    flex-shrink: 0;
}
#dashboardSidebar.offcanvas .offcanvas-body {
    overflow-x: hidden;
    overflow-y: auto;
    min-width: 0;
}
.offcanvas-body.dashboard-sidebar {
    background: linear-gradient(180deg, var(--bg-sidebar) 0%, #0a2d47 100%) !important;
    color: var(--text-inverse);
}
#dashboardSidebar.offcanvas .sidebar-brand-title,
#dashboardSidebar.offcanvas .sidebar-brand-slogan,
#dashboardSidebar.offcanvas .nav-link {
    word-wrap: break-word;
    overflow-wrap: break-word;
    min-width: 0;
}
.offcanvas-body.dashboard-sidebar .nav-link { color: var(--text-muted) !important; }
.offcanvas-body.dashboard-sidebar .nav-link:hover { color: var(--text-inverse) !important; background: var(--bg-sidebar-hover) !important; }
.offcanvas-body.dashboard-sidebar .nav-link.link-platform { color: var(--text-inverse) !important; background: var(--bg-sidebar-active) !important; }
.offcanvas-body.dashboard-sidebar .sidebar-brand-link { color: var(--text-inverse) !important; }
.offcanvas-body.dashboard-sidebar .sidebar-brand-slogan .text-accent { color: var(--brand-primary-light); }
/* Dashboard main: responsive padding */
@media (max-width: 575.98px) {
    .dashboard-main { padding: 1rem !important; }
}
/* Dashboard cards: responsive on small screens */
@media (max-width: 575.98px) {
    .dashboard-card-header, .dashboard-main .card .card-header { padding: 1rem !important; font-size: 0.95rem; }
    .dashboard-card-body, .dashboard-main .card .card-body { padding: 1rem !important; }
    .dashboard-list-item { flex-direction: column; align-items: flex-start !important; gap: 0.75rem; }
    .dashboard-profile-card .profile-banner { height: 80px; }
    .dashboard-profile-card .profile-avatar { width: 60px; height: 60px; font-size: 1.2rem; }
}

/* --- Admin (Jazzmin) overrides --- */
.main-sidebar,
[class*="sidebar-dark"] {
    background-color: var(--bg-sidebar) !important;
}
.nav-sidebar .nav-link > .right,
.nav-sidebar .nav-link > p {
    color: rgba(255,255,255,.8);
}
.nav-sidebar .nav-link:hover {
    background-color: var(--bg-sidebar-hover) !important;
    color: var(--text-inverse) !important;
}
.nav-sidebar .nav-link.active,
.nav-sidebar .menu-open > .nav-link {
    background-color: var(--bg-sidebar-active) !important;
    color: var(--text-inverse) !important;
}
.brand-link {
    background-color: var(--bg-sidebar) !important;
    border-bottom: 1px solid var(--border-default);
}
.brand-link:hover { color: var(--text-inverse); }

/* Top navbar (optional: keep dark or use sidebar color) */
.main-header .navbar {
    background-color: var(--brand-primary) !important;
}
.main-header .navbar-nav .nav-link { color: rgba(255,255,255,.9) !important; }
.main-header .navbar-nav .nav-link:hover { color: var(--text-inverse) !important; }

/* Content area */
.content-wrapper { background-color: var(--bg-app) !important; }
.card { background-color: var(--bg-card); border-color: var(--border-default); }

/* Status badges */
.badge-success, .bg-success { background-color: var(--status-success) !important; }
.badge-warning, .bg-warning { background-color: var(--status-warning) !important; }
.badge-danger, .bg-danger { background-color: var(--status-error) !important; }
.badge-info, .bg-info { background-color: var(--status-info) !important; }

/* Focus / inputs (admin) */
.custom-select:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 0.2rem rgba(0, 86, 179, 0.25);
}
.input-group-text { border-color: var(--border-default); }

/* --- Dashboard sidebar brand --- */
.dashboard-sidebar .sidebar-brand-link { color: var(--text-inverse) !important; }
.dashboard-sidebar .sidebar-brand-title { font-size: 1.1rem; letter-spacing: -0.02em; }
.dashboard-sidebar .sidebar-brand-slogan { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.1em; opacity: 0.85; }
.dashboard-sidebar .sidebar-brand-slogan .text-accent { color: var(--brand-primary-light); }

/* --- Skillset sidebar --- */
.skillset-sidebar.sticky-top { top: 1rem; }
.skillset-labels { line-height: 2; max-height: 400px; overflow-y: auto; }
.skillset-label { display: inline-block; vertical-align: middle; margin: 0 0.35rem 0.35rem 0; padding: 0.35rem 0.6rem; background: linear-gradient(135deg, rgba(15,61,94,0.06) 0%, rgba(0,184,255,0.04) 100%); border: 1px solid rgba(15,61,94,0.1); border-radius: 8px; font-size: 0.8rem; line-height: 1.35; white-space: nowrap; }
.skillset-key { font-weight: 600; color: var(--text-primary, #0f3d5e); }
.skillset-sep { color: var(--text-muted, #94a3b8); margin: 0 0.2rem; font-weight: 500; }
.skillset-val { color: var(--text-secondary, #1e4e6f); }

/* --- Skill picker (experience + skills sections) --- */
.exp-skill-labels-wrap,
.skill-detail-labels-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; min-height: 2.5rem; }
.exp-skill-add-wrap,
.skill-add-zone-wrap { position: relative; display: inline-block; }
.skill-detail-labels { line-height: 2; list-style: none; padding: 0; margin: 0; }
.skill-detail-chip { display: inline-block; vertical-align: middle; margin: 0 0.35rem 0.35rem 0; padding: 0.35rem 0.6rem; background: linear-gradient(135deg, rgba(15,61,94,0.06) 0%, rgba(0,184,255,0.04) 100%); border: 1px solid rgba(15,61,94,0.1); border-radius: 8px; font-size: 0.8rem; line-height: 1.35; white-space: nowrap; }
.skill-detail-chip .skill-detail-remove { margin-left: 0.25rem; padding: 0; background: none; border: none; color: #dc3545; font-size: 1.1em; line-height: 1; cursor: pointer; }
.skill-add-zone { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 2px dashed rgba(15,61,94,0.25); border-radius: 8px; color: rgba(15,61,94,0.5); cursor: pointer; transition: border-color 0.2s, color 0.2s; }
.skill-add-zone:hover, .skill-add-zone:focus { border-color: rgba(15,61,94,0.5); color: rgba(15,61,94,0.8); outline: none; }
.skill-add-zone-icon { font-size: 1.5rem; font-weight: 300; line-height: 1; transform: translateY(-1px); }
.skill-picker-search { margin-bottom: 0.5rem; }
.exp-skill-picker-lists,
.skill-picker-lists-wrap { max-height: 160px; overflow-y: auto; }
.skill-picker-popover { display: none; position: absolute; z-index: 1050; top: 100%; left: 0; margin-top: 0.25rem; padding: 0.5rem; background: #fff; border: 1px solid rgba(15,61,94,0.15); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); min-width: 220px; }
.skill-picker-popover.show { display: block; }
.skill-picker-list { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.skill-picker-item { display: inline-block; padding: 0.35rem 0.6rem; background: linear-gradient(135deg, rgba(15,61,94,0.06) 0%, rgba(0,184,255,0.04) 100%); border: 1px solid rgba(15,61,94,0.1); border-radius: 8px; font-size: 0.8rem; cursor: pointer; transition: background 0.15s; }
.skill-picker-item:hover { background: linear-gradient(135deg, rgba(15,61,94,0.12) 0%, rgba(0,184,255,0.08) 100%); }
.skill-details-selected-wrap { position: relative; }

/* --- Basics: photo previews --- */
.basics-photo-preview { width: 100px; height: 56px; }
.basics-photo-preview-square { width: 56px; height: 56px; }
.basics-photo-placeholder { font-size: 0.7rem; }
.basics-domain-input-wrap { min-width: 0; width: 100%; }
@media (min-width: 576px) { .basics-domain-input-wrap { min-width: 200px; width: auto; } }

/* --- Register: code modal --- */
#codeModal .modal-dialog { max-width: calc(100% - 2rem); margin: 1rem; }
@media (min-width: 576px) { #codeModal .modal-dialog { max-width: 420px; margin: 1.75rem auto; } }
#codeModal .code-inputs .code-digit { width: 2.5rem; height: 2.75rem; font-size: 1.25rem; }
@media (min-width: 576px) { #codeModal .code-inputs .code-digit { width: 3rem; height: 3.25rem; font-size: 1.5rem; } }

/* --- Profile: header card --- */
.profile-banner-placeholder { height: 120px; }
.profile-avatar-placeholder { width: 96px; height: 96px; }

/* --- Dynamic form rows (integrations, titles) --- */
.analytics-key { max-width: 100%; }
.analytics-type { max-width: 100%; }
.title-key { max-width: 100%; }
.title-type { max-width: 100%; }
@media (min-width: 576px) {
    .analytics-key { max-width: 180px; }
    .analytics-type { max-width: 120px; }
    .title-key { max-width: 180px; }
    .title-type { max-width: 140px; }
}

/* --- Responsive: section list items (education, experience, etc.) --- */
@media (max-width: 575.98px) {
    .dashboard-main .card .card-body { padding: 1rem !important; }
    .dashboard-main .card .card-header { padding: 1rem !important; }
    .dashboard-main .d-flex.flex-wrap.gap-2 .btn { font-size: 0.875rem; padding: 0.35rem 0.65rem; }
    .dashboard-main li.d-flex.align-items-center.justify-content-between { flex-wrap: wrap; gap: 0.5rem; }
    .dashboard-main li.d-flex.align-items-center.justify-content-between .flex-grow-1 { min-width: 0; overflow-wrap: break-word; }
    .dashboard-main li.d-flex.align-items-center.justify-content-between .d-flex.gap-3 { flex-wrap: wrap; }
}
