/*
 * NDMA Candidate Portal — brand color overrides
 *
 * Add this file AFTER your existing shared candidate-portal CSS file.
 * It preserves existing layouts and component styling while replacing
 * the blue theme accents with NDMA green.
 */

body.cp-auth-page {
    --cp-primary: #087516;
    --cp-primary-dark: #055B10;
    --cp-primary-deep: #06420D;
    --cp-primary-light: #EAF7EC;
    --cp-primary-soft: #CDECCF;
    --cp-accent: #39A9F4;
    --cp-ink: #111827;
    --cp-muted: #6B7280;
    --cp-border: #E5E7EB;
    color: var(--cp-ink);
}

body.cp-portal-page {
    --cp-primary: #087516;
    --cp-primary-dark: #055B10;
    --cp-primary-deep: #06420D;
    --cp-primary-light: #EAF7EC;
    --cp-primary-soft: #CDECCF;
    --cp-accent: #39A9F4;
    --cp-ink: #111827;
    --cp-muted: #6B7280;
    --cp-border: #E5E7EB;
    --cp-bg: #F6F8F6;
}

/* Authentication pages */
body.cp-auth-page .cp-auth-left {
    background:
        radial-gradient(circle at 12% 12%, rgba(8,117,22,.10), transparent 45%),
        radial-gradient(circle at 88% 92%, rgba(5,91,16,.08), transparent 40%),
        #f8fbf8;
}

body.cp-auth-page .cp-auth-box {
    border-color: rgba(8,117,22,.14);
    box-shadow: 0 1px 2px rgba(17,24,39,.04),
                0 20px 45px -12px rgba(8,117,22,.15);
}

body.cp-auth-page .cp-auth-brand .cp-brand-mark {
    background: linear-gradient(135deg, var(--cp-primary), var(--cp-primary-dark));
    box-shadow: 0 6px 14px -4px rgba(8,117,22,.35);
}

body.cp-auth-page .cp-input-group input:focus {
    outline: none;
    background: #fff;
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 4px var(--cp-primary-light);
}

body.cp-auth-page .cp-input-group:focus-within i.cp-input-icon {
    color: var(--cp-primary);
}

body.cp-auth-page .btn-cp-primary {
    background: linear-gradient(135deg, var(--cp-primary), var(--cp-primary-dark));
    box-shadow: 0 10px 20px -8px rgba(8,117,22,.40);
}

body.cp-auth-page .btn-cp-primary:hover {
    color: #fff;
    box-shadow: 0 14px 24px -8px rgba(8,117,22,.45);
}

body.cp-auth-page .cp-auth-footer a,
body.cp-auth-page .cp-link-sm {
    color: var(--cp-primary-dark);
}

body.cp-auth-page .cp-auth-right {
    background: linear-gradient(135deg, #168A27 0%, #087516 55%, #06420D 100%);
}

/* Navbar, branding and shared buttons */
body.cp-portal-page .cp-navbar .cp-brand .cp-brand-mark,
body.cp-portal-page .cp-avatar-circle {
    background: linear-gradient(135deg, var(--cp-primary), var(--cp-primary-dark));
}

body.cp-portal-page .btn-cp-primary {
    background: linear-gradient(135deg, var(--cp-primary), var(--cp-primary-dark));
}

body.cp-portal-page .btn-cp-outline:hover {
    border-color: var(--cp-primary);
    color: var(--cp-primary);
    background: var(--cp-primary-light);
}

body.cp-portal-page .btn-cp-nav-outline {
    color: var(--cp-primary);
    border-color: var(--cp-primary);
}

body.cp-portal-page .btn-cp-nav-outline:hover {
    background: var(--cp-primary-light);
    border-color: var(--cp-primary-dark);
    color: var(--cp-primary-dark);
}

body.cp-portal-page .btn-cp-nav-primary {
    background: linear-gradient(135deg, #168A27, #055B10);
    box-shadow: 0 8px 16px -6px rgba(8,117,22,.40);
}

body.cp-portal-page .cp-nav-link:hover,
body.cp-portal-page .cp-nav-link.active {
    color: var(--cp-primary);
    background: var(--cp-primary-light);
}

/* Dashboard */
body.cp-portal-page .cp-hero-banner {
    background: linear-gradient(135deg, #168A27 0%, #087516 55%, #06420D 100%);
}

body.cp-portal-page .cp-icon-circle-lg,
body.cp-portal-page .cp-skill-badge {
    background: var(--cp-primary-light);
    color: var(--cp-primary-dark);
}

/* Embedded login and registration cards */
body.cp-portal-page .cp-auth-input-group input:focus {
    outline: none;
    background: #fff;
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 4px var(--cp-primary-light);
}

body.cp-portal-page .cp-auth-input-group:focus-within i {
    color: var(--cp-primary);
}

body.cp-portal-page .cp-auth-submit-btn {
    background: linear-gradient(135deg, var(--cp-primary), var(--cp-primary-dark));
    box-shadow: 0 10px 20px -8px rgba(8,117,22,.40);
}

body.cp-portal-page .cp-auth-submit-btn:hover {
    color: #fff;
    box-shadow: 0 14px 24px -8px rgba(8,117,22,.45);
}

body.cp-portal-page .cp-auth-card-footer a,
body.cp-portal-page .cp-auth-link-sm {
    color: var(--cp-primary-dark);
}

/* Careers hero and benefits */
body.cp-portal-page .cp-careers-hero {
    background: linear-gradient(180deg, #EAF7EC 0%, #F3F9F3 55%, var(--cp-bg) 100%);
}

body.cp-portal-page .cp-hero-vertical-text {
    color: rgba(8,117,22,.06);
}

body.cp-portal-page .cp-hero-search-btn {
    background: var(--cp-primary);
}

body.cp-portal-page .cp-benefit-icon {
    background: var(--cp-primary-light);
    color: var(--cp-primary);
}

/* Job cards, badges and filters */
body.cp-portal-page .cp-jobcard:hover {
    border-color: rgba(8,117,22,.35);
}

body.cp-portal-page .cp-tag-type {
    background: var(--cp-primary-light);
    color: var(--cp-primary-dark);
}

body.cp-portal-page .cp-jobcard-cta {
    background: var(--cp-primary);
}

body.cp-portal-page .cp-jobcard-cta:hover {
    background: var(--cp-primary-dark);
    color: #fff;
}

body.cp-portal-page .cp-filters-applied {
    color: var(--cp-primary);
}

body.cp-portal-page .cp-filter-group--category {
    background: #EAF7EC;
}

body.cp-portal-page .cp-filter-group--jobtype {
    background: #F0F7F0;
}

body.cp-portal-page .cp-filter-group--career {
    background: #E1F3E4;
}

body.cp-portal-page .cp-filter-group--skills {
    background: #F3F8E9;
}

body.cp-portal-page .cp-check-item input[type="checkbox"] {
    accent-color: var(--cp-primary);
}

body.cp-portal-page .cp-view-btn.active {
    background: var(--cp-primary-light);
    color: var(--cp-primary);
}

/* Onboarding */
body.cp-portal-page .cp-stepper-item.is-complete::before,
body.cp-portal-page .cp-stepper-item.is-active::before {
    background: var(--cp-primary);
}

body.cp-portal-page .cp-stepper-item.is-active .cp-stepper-circle {
    background: linear-gradient(135deg, #168A27, #055B10);
    box-shadow: 0 0 0 4px var(--cp-primary-light);
}

body.cp-portal-page .cp-stepper-item.is-complete .cp-stepper-circle {
    background: var(--cp-primary);
}

body.cp-portal-page .cp-stepper-item.is-active .cp-stepper-label {
    color: var(--cp-primary-dark);
}

body.cp-portal-page .cp-onboard-alert {
    background: var(--cp-primary-light);
    border-color: var(--cp-primary-soft);
    color: var(--cp-primary-deep);
}

body.cp-portal-page .cp-onboard-form .form-control:focus {
    background: #fff;
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 4px var(--cp-primary-light);
}

body.cp-portal-page .cp-onboard-form .form-check-input:checked {
    background-color: var(--cp-primary);
    border-color: var(--cp-primary);
}

body.cp-portal-page .cp-onboard-form .form-check-input:focus {
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 4px var(--cp-primary-light);
}

body.cp-portal-page .cp-add-row-btn {
    background: var(--cp-primary-light);
    color: var(--cp-primary-dark);
    border-color: var(--cp-primary);
}

body.cp-portal-page .cp-add-row-btn:hover {
    background: var(--cp-primary-soft);
}

/* Candidate profile */
body.cp-portal-page .cp-profile-header {
    background: linear-gradient(135deg, #F3F9F3 0%, #fff 60%);
}

body.cp-portal-page .cp-profile-avatar {
    background: linear-gradient(135deg, #168A27, #055B10);
}

body.cp-portal-page .cp-profile-headline,
body.cp-portal-page .cp-profile-contact-list li i {
    color: var(--cp-primary-dark);
}

body.cp-portal-page .cp-profile-section-title {
    border-bottom-color: var(--cp-primary-light);
}

body.cp-portal-page .cp-timeline-item {
    border-left-color: var(--cp-primary-light);
}

body.cp-portal-page .cp-timeline-dot {
    background: var(--cp-primary);
    box-shadow: 0 0 0 2px var(--cp-primary-light);
}

/* Footer */
body.cp-portal-page .cp-footer {
    background: #06420D;
}

/* Keyboard focus accessibility */
body.cp-auth-page a:focus-visible,
body.cp-auth-page button:focus-visible,
body.cp-portal-page a:focus-visible,
body.cp-portal-page button:focus-visible {
    outline: 2px solid var(--cp-primary);
    outline-offset: 3px;
}
