/* === BASIC RESET === */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
}

html, body {
    height: 100%;
    background-color: white;
    color: #333;
}

.logo-bar *, .main-nav * {
    margin: 0;
    padding: 0;
}

/* === BODY FLEX === */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;           /* Ensures no weird white gaps at edges */
    padding-top: 85px;  /* IMPORTANT: Adjust this to the height of your logo + nav */
}

/* === HEADER === */
/* 1. Ensure the header allows the submenu to overflow its boundaries */
.main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: white; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    
    /* Layout */
    display: flex;
    align-items: stretch;
    padding: 0; 
    box-sizing: border-box;
    
    /* CRITICAL: Allows sub-menus to drop down outside the blue bar */
    overflow: visible; 
}

/* The Logo Bar area */
.logo-bar {
    display: flex;
    align-items: center;
    background: #0c101c; /* Changed from white to transparent */
    padding: 0;
    flex-shrink: 0; /* Prevents logo area from shrinking */
}

.logo-container {
    display: flex;
    align-items: center;
    gap: 0;
}

/* The Logo Shape - Now Square */
.logo-thumbnail {
    height: 9px;          /* Sets a crisp height that fits inside the header bar */
    width: auto;           /* Automatically keeps the correct aspect ratio without squishing */
    display: block;
    object-fit: contain;   /* Ensures clean rendering */
    margin-right: 0;         /* Changed from 12px */
}


/* The Site Name */
.logo-name {
    font-size: 1.3rem;
    font-weight: 700;
    color: white; /* Changed to white to sit on the blue header - new #333 */
    line-height: 1;
    display: flex;
    align-items: center;
    transform: translateY(-1px);
}

/* Highlighting the A and I in white/light-blue for contrast */
.logo-name .highlight {
    color: #e0e0e0; 
    margin-left: 4px;
}

/* === NAVIGATION MENU === */
.main-nav {
    flex-grow: 1;
    display: flex;
    align-items: center;
    background: #007bff;
    padding: 0 20px;
    overflow: visible; /* CRITICAL */
}

.main-nav ul {
    list-style: none;
    display: flex;
    justify-content: flex-start; 
    margin: 0;
    padding: 0;
}

.main-nav ul li {
    position: relative; /* This is the anchor for the submenu */
    margin: 0 15px;
}

.main-nav ul li a {
    color: white;
    text-decoration: none;
    padding: 15px 20px;
    display: block;
    font-weight: 600;
    font-size: 0.875rem;
}

.main-nav ul li a:hover {
    background-color: #0056b3;
    border-radius: 5px;
}

/* === SUBMENU === */
.submenu {
    display: none !important;
    position: absolute; 	
    top: 100%; /* Drops down from the bottom of the header */
    left: 0;
    background-color: #007bff;
    min-width: 220px; 	
    z-index: 1010;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border-radius: 0 0 5px 5px;
    padding: 0;
    margin: 0;
}

/* Nested submenus still appear to the right */
.main-nav ul li:hover > .submenu {
    display: block !important;
}

/* Nested submenus appearing to the right */
.submenu li:hover > .submenu {
    display: block !important;
    top: 0;
    left: 100%;
}

/* 1. Remove the global 15px margin underneath submenu list items */
.submenu li {
    margin: 0;
}

/* Submenu Link Styling */
.submenu li a {
    font-size: 0.8rem; /* ~14px (or 0.8rem / 13px) */
    padding: 8px 15px; /* Adjusts vertical & horizontal spacing inside dropdowns */
    font-weight: 500;  /* Slightly lighter weight than main menu */
    line-height: 1.3;  /* Keeps line height compact */
}

/* 1. Hide the checkbox and hamburger on Desktop */
.menu-toggle, .hamburger {
    display: none;
}

/* 2. Mobile Specific Styles */
@media (max-width: 768px) {
    .hamburger {
        display: flex;
        flex-direction: column;
        gap: 5px;
        cursor: pointer;
        padding: 20px;
    }

    .hamburger span {
        width: 25px;
        height: 3px;
        background: #007bff; /* Matches your theme */
        transition: 0.3s;
    }

    /* Hide the nav by default on mobile */
    .main-nav {
        display: none; 
        position: absolute;
        top: 100%; /* Sits right under the header */
        left: 0;
        width: 100%;
        background: #007bff;
        flex-direction: column;
    }

    /* When the hidden checkbox is checked, show the nav */
    .menu-toggle:checked ~ .main-nav {
        display: block;
    }

    .main-nav ul {
        flex-direction: column; /* Stack menu items vertically */
    }
}

/* === MAIN CONTENT === */
main {
    flex: 1;
    padding: 40px 20px;
    max-width: 1000px;
    margin: 0 auto;
}

/* Intro section */
.intro h2 {
    font-size: 2rem;
    margin-bottom: 20px;
    color: #007bff;
}

.intro p {
    font-size: 1.1rem;
    line-height: 1.8;
}

/* === ARTICLE PAGE === */
h1 {
    font-size: 2rem;
    color: #007bff;
    margin-bottom: 20px;
}

article img, img {
    max-width: 100%;
    height: auto;
    display: block;
    margin-bottom: 20px;
}

p, li {
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 15px;
}

/* Use ordered list for steps */
ol.steps {
    margin-left: 20px;
    margin-bottom: 20px;
}

/* === FOOTER === */
footer {
    background-color: #007bff;
    color: #fff;
    text-align: center;
    padding: 7.5px 0; /* Reduced from 15px to 50% */
    margin-top: auto;
}

/* === RESPONSIVE MENU FOR SMALL SCREENS === */
@media (max-width: 768px) {
    .main-nav ul {
        flex-direction: column;
        align-items: flex-start;
    }

    .submenu, .submenu li:hover > .submenu {
        position: static;
        display: none !important; 	/* keep hidden until clicked */
        border-radius: 0;
    }

    .main-nav ul li a {
        width: 100%;
    }
}

/* Add indentation for ordered list and list items */
ol {
    margin-left: 20px; /* Indentation from the left */
}

ol li {
    margin-left: 20px; /* Indentation between the numbers and text */
}

/* Add indentation for ordered list and list items */
ul {
    margin-left: 20px; /* Indentation from the left */
}

ul li {
    margin-left: 20px; /* Indentation between the numbers and text */
}

/* --- GENERAL HEADER SPACING - Added on 12/6/2025 --- */

/* Largest space for major sections (h2) */
h2 {
  margin-top: 35px;    /* Space above to separate from previous content */
  margin-bottom: 20px; /* Space below to separate from sub-sections or text */
}

/* Medium space for sub-sections (h3) */
h3 {
  margin-top: 25px;    /* Less space above than h2 */
  margin-bottom: 15px; /* Less space below than h2 */
}

/* Smallest space for minor sub-sections (h4) */
h4 {
  margin-top: 15px;    /* Even less space above */
  margin-bottom: 10px; /* Smallest space below before content starts */
}

/* --- CENTER ALIGNING IMAGES - Added on 12/6/2025 --- */
img {
  display: block;  /* 1. Change the image from inline to block */
  margin-left: auto; /* 2. Set the left margin to automatically expand */
  margin-right: auto; /* 3. Set the right margin to automatically expand (centering it) */
}

/* --- AUTHOR NAME AND PUBLISHED DATE - Added on 12/6/2025 --- */
.byline {
  margin-top: 20px;
  margin-bottom: 20px;
}


/* --- INDENTATION FOR PITFALLS - Added on 12/6/2025 --- */
.indented-heading {
  margin-left: 30px; /* Indentation for both h3 and h4 */
  margin-top: 20px;  /* Spacing above for both h3 and h4 */
  color: blue;       /* <--- Add this line to make the text blue */
}

/*
 * Watermark styles for Alps Intelligence
 * Target the main chart container (replace #my-plotly-chart with your actual ID/Class)
 */

#my-plotly-chart {
    position: relative; /* Essential for positioning the ::before element */
}

#my-plotly-chart::before {
    content: "Alps Intelligence"; 
    
    /* 1. Positioning for Center */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-45deg); 
    
    /* 2. Styling for Visibility */
    font-size: 5em; /* Large size */
    font-weight: bold;
    color: rgba(0, 0, 0, 0.1); /* Highly transparent light black/gray */
    white-space: nowrap; /* Prevents text from wrapping */
    
    /* 3. Functionality */
    pointer-events: none; /* Crucial: Allows interaction with the chart underneath */
    z-index: 1000; /* Ensures it sits above the background but below the chart data points/lines */
}

table {
    border-collapse: collapse;
    margin: 20px 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    background-color: #ffffff;
    border-radius: 8px;
    overflow: hidden;
}

th, td {
    padding: 12px;
    text-align: center;
    border: 1px solid #ddd;
    font-size: 14px;
}

th {
   background-color: #007BFF;
   color: #ffffff;
   font-weight: bold;
}

td {
    background-color: #f9f9f9;
}

tr:nth-child(even) td {
    background-color: #f2f2f2;
}

tr:hover td {
    background-color: #f1f1f1;
}

.table-container {
    width: 90%;
    margin: 20px auto;
    overflow-x: auto;
}

/* Specific class to avoid impacting other tables */
.custom-governance-table {
    width: 100%;
    border-collapse: collapse;
}

/* Headers: Always center justified for this specific table */
.custom-governance-table th {
    text-align: center;
    padding: 12px;
    border: 1px solid #ddd;
    background-color: #007bff;
}

/* General cell padding for this table */
.custom-governance-table td {
    padding: 10px;
    border: 1px solid #ddd;
}

/* Column 1: Records are center justified */
.custom-governance-table td:nth-child(1) {
    text-align: center;
}

/* Columns 2 & 3: Values are left justified */
.custom-governance-table td:nth-child(2), 
.custom-governance-table td:nth-child(3) {
    text-align: left;
}

/* Callout Styling */
.callout-insight {
  background-color: #f0f8ff; 
  border-top: 1px solid #d1e7ff; 
  border-bottom: 1px solid #d1e7ff;
  padding: 24px 20px;
  margin: 32px 0;
  text-align: center;
  border-radius: 8px; /* Slightly rounder for a "card" look */
  
  /* The Shadow: Horizontal, Vertical, Blur, Spread, Color */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); 
}

.callout-insight .label {
  display: block;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.75rem;
  color: #0056b3; /* Professional blue for the label */
  margin-bottom: 8px;
  letter-spacing: 2px;
}

.callout-insight p {
  font-size: 1.2rem;
  font-family: serif; /* Gives a sophisticated, editorial feel */
  color: #222;
  margin: 0;
}

.article-footnote a:hover {
  color: #007bff !important;
}

.spaced-image {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
    margin-bottom: 50px; /* Increased space before the next paragraph */
}

.clickable-image {
    cursor: zoom-in;
    border: 1px solid #ddd;
    transition: 0.3s;
}

.clickable-image:hover {
    opacity: 0.8;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.callout-box {
  background-color: #f8f9fa;
  border-left: 5px solid #007bff; /* Blue accent line */
  padding: 20px;
  margin: 20px 0;
  border-radius: 4px;
  font-family: sans-serif;
  line-height: 1.6;
}

.callout-box h4 {
  margin-top: 0;
  color: #0056b3;
}

.matrix-list {
  list-style-type: none;
  padding-left: 0;
}

.matrix-list li {
  margin-bottom: 10px;
}

.high-risk {
  color: #d9534f; /* Red text for the highest risk item */
  background-color: #fdf2f2;
  padding: 5px;
  border-radius: 3px;
}

/* --- Added styles for Job Seeker portal form & toggles --- */
.hidden {
    display: none !important;
}

input, select {
    width: 100%;
    padding: 10px;
    margin: 8px 0;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1em;
}

/* --- Added styles for Job Seeker portal form & toggles --- */
/* Style secondary buttons to match the primary blue color */

.nav-links {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.nav-links button {
    display: inline-block;
    width: auto;
    min-width: 150px;
    padding: 12px 24px;
    border: none;
    border-radius: 6px;
    background-color: #0066cc;
    color: #ffffff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

.nav-links button:hover {
    background-color: #0052a3;
}

.nav-links button:active {
    transform: translateY(1px);
}

/* Job Seeker Portal Buttons */

#new-user-form button,
#returning-user-form button,
#search-section button,
#candidate-fit-submit-button {
    display: inline-block;
    width: auto;
    min-width: 180px;
    padding: 12px 24px;
    margin-top: 12px;
    border: none;
    border-radius: 6px;
    background-color: #0066cc;
    color: #ffffff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

#new-user-form button:hover,
#returning-user-form button:hover,
#search-section button:hover,
#candidate-fit-submit-button:hover {
    background-color: #0052a3;
}

#new-user-form button:active,
#returning-user-form button:active,
#search-section button:active,
#candidate-fit-submit-button:active {
    transform: translateY(1px);
}


#new-user-form .btn-secondary,
#returning-user-form .btn-secondary {
    background-color: #6c757d;
    margin-left: 10px;
}

#new-user-form .btn-secondary:hover,
#returning-user-form .btn-secondary:hover {
    background-color: #5a6268;
}
#landing-buttons {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}

/* Job Search results table only */

#results-container {
    width: 100%;
    max-width: none;
}

#results-container > div {
    width: 100%;
    max-width: none;
}

#jobs-table {
    width: 100% !important;
    min-width: 1800px !important;
    table-layout: auto !important;
}

#jobs-table th,
#jobs-table td {
    font-size: 12px !important;
    vertical-align: top !important;
}

/* Rationale */
#jobs-table th:nth-child(6),
#jobs-table td:nth-child(6) {
    min-width: 340px !important;
    width: 340px !important;
    text-align: left !important;
}

/* Matching Skills */
#jobs-table th:nth-child(7),
#jobs-table td:nth-child(7) {
    min-width: 340px !important;
    width: 340px !important;
    text-align: left !important;
}

/* Missing Skills */
#jobs-table th:nth-child(8),
#jobs-table td:nth-child(8) {
    min-width: 340px !important;
    width: 340px !important;
    text-align: left !important;
}

/* Widen Job Search results area only */
#results-container {
    width: calc(100vw - 40px) !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw + 20px) !important;
    margin-right: calc(50% - 50vw + 20px) !important;
}

/* Job Title column */
#jobs-table th:nth-child(2),
#jobs-table td:nth-child(2) {
    width: 110px !important;
    min-width: 110px !important;
    max-width: 110px !important;
    white-space: normal !important;
    word-wrap: break-word;
}

/* --------------------------------------------
   APPLICATION MESSAGE MODAL
   -------------------------------------------- */

.app-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(15, 23, 42, 0.45);

    z-index: 9999;
}

.app-modal.hidden {
    display: none;
}

.app-modal-box {
    width: calc(100% - 40px);
    max-width: 420px;

    background: #0F172A;

    border-radius: 12px;

    padding: 24px;

    box-shadow:
        0 12px 35px rgba(0, 0, 0, 0.22);

    text-align: center;
}

.app-modal-title {
    font-size: 20px;
    font-weight: 600;

    margin-bottom: 12px;

    color: #ffffff;
}

.app-modal-message {
    font-size: 15px;
    line-height: 1.5;

    margin-bottom: 20px;

    color: #ffffff;

    white-space: pre-line;
}

.app-modal-button {
    min-width: 100px;

    padding: 10px 18px;

    border: none;
    border-radius: 6px;

    background: #38BDF8;
    color: #0F172A;

    cursor: pointer;

    font-size: 14px;
    font-weight: 500;
}

.app-modal-button:hover {
    opacity: 0.9;
}


/* GEM - Scope everything strictly to your unique panel ID */
#candidate-fit-assessment-panel {
  display: inline;
  flex-direction: column;
  align-items: stretch;
}

/* Force all labels inside this panel to sit on their own line and align left */
#candidate-fit-assessment-panel label {
  display: inline;
  text-align: left !important;
/*  margin-left: 0 !important;*/
/*  padding-left: 0 !important;*/
  margin-bottom: 6px; /* Adds breathing room above the input */
  width: 100%;
}

/* Ensure textareas, inputs, and file upload boxes stay full-width and stacked */
#candidate-fit-assessment-panel input,
#candidate-fit-assessment-panel textarea {
  display: inline;
  width: 100%;
  margin-top: 8px; /* Space out the form fields cleanly */
  margin-bottom: 16px; /* Space out the form fields cleanly */
  margin-left: 0;
}


/* Candidate/Recruiter Job Fit Assessment results table */
#candidate-fit-results-table {
    font-size: 75%;
}

#candidate-fit-results-table th,
#candidate-fit-results-table td {
    font-size: inherit;
}​

#candidate-fit-results-table th:nth-child(3),
#candidate-fit-results-table th:nth-child(4),
#candidate-fit-results-table th:nth-child(5),
#candidate-fit-results-table td:nth-child(3),
#candidate-fit-results-table td:nth-child(4),
#candidate-fit-results-table td:nth-child(5) {
    text-align: left;
}

/* Candidate Search Jobs - keep all column headers centered */
#jobs-table th {
    text-align: center;
}​

/* Fit Assessment - center Matching Skills and Missing Skills headers */
#candidate-fit-results-table th:nth-child(4),
#candidate-fit-results-table th:nth-child(5) {
    text-align: center;
}​