:root {
    --primary: #00d2ff;
    --secondary: #3a7bd5;
    --dark: #1a1a2e;
    --success: #00ff88;
    --grey: #64748b;
    --white: #ffffff;
    --glass: rgba(255, 255, 255, 0.95);
}

body { margin: 0; font-family: 'Poppins', sans-serif; background: #f0f4f8; }

/* --- FLOATING PILL --- */
.vacancy-tab {
    position: fixed; 
    right: -250px; 
    top: 35%; 
    transform: translateY(-50%);
    z-index: 9999; 
    display: flex; 
    align-items: center; 
    background: linear-gradient(135deg, var(--dark) 30%, #972e4e 80%); 
    padding: 14px 28px 14px 18px; 
    border-radius: 14px 0 0 14px; 
    color: white; 
    cursor: pointer; 
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: -10px 10px 30px rgba(0, 0, 0, 0.2); 
    transition: all 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.vacancy-tab.show { right: -5px; }

.vacancy-tab:hover {
    right: 0 !important;
    background: linear-gradient(135deg, #2e90f2, #972e4e);
    box-shadow: -10px 10px 40px rgba(58, 123, 213, 0.4);
}

.status-dot { 
    width: 10px; 
    height: 10px; 
    background: var(--success); 
    border-radius: 50%; 
    margin-right: 14px; 
    position: relative; 
    box-shadow: 0 0 10px var(--success);
}

.status-dot::after { 
    content: ''; 
    position: absolute; 
    width: 100%; height: 100%; 
    background: var(--success); 
    border-radius: 50%; 
    animation: pulse-ring 1.8s infinite; 
}

@keyframes pulse-ring { 
    0% { transform: scale(0.6); opacity: 0.9; } 
    100% { transform: scale(2.8); opacity: 0; } 
}

/* --- MODAL SYSTEM --- */
.modal-overlay { 
    position: fixed; top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(10, 10, 30, 0.8); 
    backdrop-filter: blur(12px); 
    display: none; align-items: center; justify-content: center; 
    z-index: 10000; 
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-overlay.active { display: flex; opacity: 1; }

.modal-content { 
    background: var(--white); 
    width: 92%; max-width: 580px; 
    border-radius: 35px; 
    padding: 35px; 
    position: relative; 
    max-height: 85vh; 
    overflow-y: auto; 
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    transform: translateY(30px);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}

.modal-overlay.active .modal-content { transform: translateY(0); }

/* --- JOB CARDS --- */
.job-card { 
    background: #fcfdfe; 
    padding: 18px; 
    border-radius: 20px; 
    margin-bottom: 14px; 
    display: flex; justify-content: space-between; align-items: center; 
    border: 1px solid #f0f3f7; 
    transition: all 0.3s ease;
}

.job-card:hover { 
    border-color: var(--primary); 
    transform: translateY(-3px) scale(1.01); 
    background: var(--white);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.category-header { 
    color: var(--secondary); 
    font-size: 0.75rem; 
    font-weight: 800; 
    text-transform: uppercase; 
    margin: 25px 0 12px; 
    border-left: 4px solid var(--primary); 
    padding-left: 12px; 
    letter-spacing: 1.5px;
}

/* --- FORM & INPUTS --- */
.form-view { display: none; }
.form-view.active { display: block; animation: fadeIn 0.4s ease; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 15px; }

input, select, textarea { 
    width: 100%; padding: 14px; 
    border-radius: 12px; 
    border: 2px solid #edf2f7; 
    font-family: inherit; 
    font-size: 0.95rem;
    box-sizing: border-box; 
    transition: border-color 0.3s ease;
}

input:focus, select:focus, textarea:focus { 
    border-color: var(--secondary); 
    outline: none; 
    background-color: #f8faff; 
}

label { font-size: 0.8rem; font-weight: 700; color: var(--dark); margin-bottom: 6px; display: block; }

.btn-apply { 
    background: var(--dark); 
    color: white; border: none; 
    padding: 10px 22px; 
    border-radius: 12px; 
    font-weight: 600; 
    cursor: pointer; 
    transition: 0.3s; 
}

.btn-apply:hover { background: var(--secondary); transform: scale(1.05); }

.btn-submit { 
    width: 100%; 
    background: linear-gradient(to right, var(--secondary), var(--primary)); 
    color: white; border: none; 
    padding: 18px; border-radius: 15px; 
    font-size: 1.05rem; font-weight: 700; 
    cursor: pointer; margin-top: 25px;
    box-shadow: 0 10px 20px rgba(58, 123, 213, 0.2);
    transition: 0.3s;
}

.btn-submit:hover { opacity: 0.9; transform: translateY(-2px); }

@media (max-width: 600px) { .form-grid { grid-template-columns: 1fr; } .modal-content { padding: 20px; } }

