:root {
    --primary-green: #4caf50;
    --accent-green: #69f0ae;
    --bg-dark: #1e1e1e;
    --bg-card: #2a2a2a;
    --text-color: #e0e0e0;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: var(--bg-dark);
    color: var(--text-color);
    margin: 0;
    padding: 0;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

/* Buttons */
.btn-primary {
    background-color: var(--primary-green);
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s;
}

.btn-primary:hover {
    background-color: #388e3c;
}

.btn-secondary {
    background-color: #555;
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s;
}

.btn-secondary:hover {
    background-color: #666;
}

.btn-action {
    background-color: var(--primary-green);
    color: black;
    padding: 5px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: bold;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: background-color 0.3s;
}

.btn-action:hover {
    background-color: #45a049;
}

.btn-icon {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.2rem;
    padding: 4px;
    transition: transform 0.2s;
}

.btn-icon:hover {
    transform: scale(1.1);
}

/* Inputs */
.input-group {
    margin-bottom: 15px;
}

.input-group label {
    display: block;
    margin-bottom: 5px;
    color: #ccc;
}

.input-group input, .input-group textarea, .input-group select {
    width: 100%;
    padding: 10px;
    background-color: #333;
    border: 1px solid #444;
    border-radius: 4px;
    color: white;
    box-sizing: border-box;
}

.input-group input:focus {
    border-color: var(--primary-green);
    outline: none;
}

/* Modal */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.7);
    justify-content: center;
    align-items: center;
}

.modal-content {
    background-color: var(--bg-card);
    padding: 2rem;
    border: 1px solid var(--primary-green);
    width: 90%;
    max-width: 500px;
    border-radius: 8px;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.close {
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    color: #aaa;
}

.close:hover {
    color: white;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: 2rem;
}

/* Identidad visual Green Software · Portal de Empleos */
:root{--primary-green:#22a35a;--accent-green:#72f0a8;--bg-dark:#070b18;--bg-card:#111a33;--text-color:#eef2ff}body{background:radial-gradient(circle at 12% 8%,rgba(34,163,90,.18),transparent 28%),radial-gradient(circle at 88% 92%,rgba(100,88,255,.18),transparent 30%),var(--bg-dark);min-height:100vh}.login-page{background:transparent!important}.login-page::before{content:"";position:fixed;inset:0;background:linear-gradient(120deg,rgba(4,8,24,.8),rgba(6,13,32,.6));pointer-events:none;z-index:-1}.login-container{padding:2rem}.login-card{border:1px solid rgba(114,240,168,.28)!important;border-radius:1.4rem!important;background:rgba(12,20,46,.86)!important;box-shadow:0 2rem 5rem rgba(0,0,0,.45)!important;backdrop-filter:blur(18px)}.logo{filter:drop-shadow(0 .6rem 1rem rgba(40,194,112,.28))}.login-header h2{font-size:2rem;letter-spacing:-.05em}.login-header p{color:#b8c5dd}.input-group input,.input-group textarea,.input-group select{border-radius:.75rem;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.13)}.btn-primary{border-radius:.75rem;background:linear-gradient(100deg,#1b9d57,#52d889);font-weight:800;box-shadow:0 .75rem 1.6rem rgba(34,163,90,.26)}.btn-secondary{border-radius:.75rem}.modal{background:rgba(2,5,16,.72);backdrop-filter:blur(8px)}.modal-content{border-color:rgba(114,240,168,.34);border-radius:1.2rem;background:linear-gradient(145deg,#111a33,#172041);box-shadow:0 1.8rem 5rem rgba(0,0,0,.45)}

/* Modal específico para gestión de candidatos - más ancho */
#userModal .modal-content {
    max-width: 800px;
}

/* Tables */
.table-container {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

.data-table th, .data-table td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid #444;
}

.data-table th {
    background-color: #333;
    color: var(--primary-green);
}

.data-table tr:hover {
    background-color: rgba(255,255,255,0.05);
}

/* Specifics */
.slide-section {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out, opacity 0.5s ease-out, margin-top 0.5s ease;
    opacity: 0;
    margin-top: 0;
}

.slide-section.active {
    max-height: 800px;
    opacity: 1;
    margin-top: 1rem;
}

.vacancy-option {
    background: rgba(255, 255, 255, 0.05);
    padding: 10px;
    margin-bottom: 8px;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.3s;
    display: flex;
    align-items: center;
}

.vacancy-option:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--primary-green);
}

.vacancy-option input[type="radio"] {
    margin-right: 10px;
    accent-color: var(--primary-green);
}

.action-card {
    background-color: var(--bg-card);
    padding: 20px;
    border-radius: 8px;
    text-align: center;
    cursor: pointer;
    transition: transform 0.2s, background-color 0.2s;
    border: 1px solid #444;
}

.action-card:hover {
    transform: translateY(-5px);
    background-color: rgba(76, 175, 80, 0.15);
    border-color: var(--primary-green);
    box-shadow: 0 5px 15px rgba(76, 175, 80, 0.2);
}

.badge {
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.8rem;
}

.badge.success {
    background-color: rgba(76, 175, 80, 0.2);
    color: #81c784;
}

.badge.error {
    background-color: rgba(211, 47, 47, 0.2);
    color: #e57373;
}

/* Checkbox group */
.checkbox-group label {
    display: block;
    margin-bottom: 8px;
    cursor: pointer;
}

/* Dashboard Layout */
.dashboard-body {
    background-color: #121212;
    min-height: 100vh;
}

.navbar {
    background-color: #1e1e1e;
    padding: 1rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #333;
}

.nav-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--primary-green);
}

.nav-logo {
    height: 30px;
}

.btn-logout {
    background-color: transparent;
    border: 1px solid #d32f2f;
    color: #ef5350;
    padding: 6px 16px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-logout:hover {
    background-color: #d32f2f;
    color: white;
}

.dashboard-container {
    max-width: 1200px;
    margin: 2rem auto;
    padding: 0 20px;
}

.admin-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-top: 2rem;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    border-bottom: 1px solid #333;
    padding-bottom: 1rem;
}

/* Login Page Specifics */
.login-page {
    background-color: transparent;
}

#bgVideo {
    position: fixed;
    right: 0;
    bottom: 0;
    min-width: 100%;
    min-height: 100%;
    z-index: -1;
    object-fit: cover;
}

.login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: rgba(0, 0, 0, 0.6); /* Overlay oscuro para legibilidad */
}

.login-card {
    background-color: rgba(42, 42, 42, 0.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 2.5rem;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
    width: 100%;
    max-width: 400px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.logo-container {
    text-align: center;
    margin-bottom: 1.5rem;
}

.logo {
    max-width: 150px;
    height: auto;
}

.login-header {
    text-align: center;
    margin-bottom: 2rem;
}

.login-header h2 {
    color: var(--primary-green);
    margin: 0 0 10px 0;
}

.login-header p {
    color: #aaa;
    margin: 0;
    font-size: 0.9rem;
}

.login-form .btn-primary {
    width: 100%;
    margin-top: 1rem;
    padding: 12px;
}

/* Acceso de Empleos: fondo propio, ligero y consistente con Green Software. */
.login-page{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;background:#07111d!important}.login-page::before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 14% 17%,rgba(71,221,139,.27),transparent 26rem),radial-gradient(circle at 87% 84%,rgba(85,107,255,.28),transparent 30rem),linear-gradient(135deg,#06121e 0%,#0a1a2b 48%,#10112c 100%)}.login-page::after{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;opacity:.45;background-image:linear-gradient(rgba(137,255,194,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(137,255,194,.1) 1px,transparent 1px);background-size:4.5rem 4.5rem;transform:perspective(38rem) rotateX(58deg) translateY(17rem)}.login-container{position:relative;min-height:100vh;padding:2rem;box-sizing:border-box;background:linear-gradient(90deg,rgba(4,12,24,.26),rgba(4,12,24,.05))!important}.login-container::before{content:"GREEN SOFTWARE\A TALENTO · OPORTUNIDADES · CRECIMIENTO";white-space:pre;position:absolute;left:max(2rem,calc(50% - 31rem));bottom:2.5rem;color:rgba(223,255,239,.57);font:600 .66rem/1.9 "Segoe UI",sans-serif;letter-spacing:.16em}.login-card{position:relative;overflow:hidden}.login-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#22a35a,#72f0a8,#5c70ff)}.login-card::after{content:"";position:absolute;width:15rem;height:15rem;right:-9rem;top:-9rem;border-radius:50%;background:radial-gradient(circle,rgba(78,230,147,.16),transparent 68%);pointer-events:none}.login-card>*{position:relative;z-index:1}@media(max-width:680px){.login-container{padding:1.15rem}.login-container::before{left:1.3rem;bottom:1.25rem;font-size:.54rem}.login-page::after{opacity:.25}.login-card{width:100%;box-sizing:border-box}}

.error-message {
    color: #ef5350;
    font-size: 0.8rem;
    margin-top: 4px;
    display: block;
}

/* Sistema visual compartido: candidatos, evaluaciones y administración. */
.dashboard-body{min-height:100vh;background:radial-gradient(circle at 9% 0%,rgba(39,184,104,.16),transparent 28rem),radial-gradient(circle at 90% 16%,rgba(91,96,255,.16),transparent 29rem),#080f20;color:#eef3ff}.dashboard-body::before{content:"";position:fixed;inset:0;z-index:-1;opacity:.18;background-image:linear-gradient(rgba(136,164,218,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(136,164,218,.2) 1px,transparent 1px);background-size:5rem 5rem;mask-image:linear-gradient(to bottom,black,transparent 65%)}.navbar{position:sticky;top:0;z-index:20;min-height:4.7rem;padding:0 max(1.4rem,calc((100vw - 1180px)/2));background:rgba(8,15,32,.78);border-bottom:1px solid rgba(173,192,243,.15);backdrop-filter:blur(16px)}.nav-brand{gap:.85rem;color:#f5f8ff;font-size:.92rem;letter-spacing:-.015em}.nav-logo{height:2.15rem;width:2.15rem;object-fit:contain;filter:drop-shadow(0 .45rem .75rem rgba(54,219,125,.2))}.btn-logout{padding:.58rem .9rem;border-color:rgba(255,142,151,.5);border-radius:.7rem;color:#ffafb7;font-size:.78rem;font-weight:700}.btn-logout:hover{background:#d34e62;border-color:#d34e62}.dashboard-container{max-width:1120px;margin:0 auto;padding:3.4rem 1.5rem 4rem}.dashboard-heading{margin-bottom:2.45rem;max-width:41rem}.dashboard-heading p{margin:0 0 .65rem;color:#72f0a8;font:700 .67rem "Segoe UI",sans-serif;letter-spacing:.13em}.dashboard-heading h1{margin:0;color:#f6f8ff;font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.065em;line-height:1.04}.dashboard-heading span{display:block;margin-top:.8rem;color:#aebbd3;font-size:.98rem;line-height:1.6}.admin-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:0}.action-card{position:relative;min-height:10.5rem;padding:1.55rem;text-align:left;border:1px solid rgba(164,184,235,.16);border-radius:1.15rem;background:linear-gradient(145deg,rgba(25,37,72,.96),rgba(14,24,51,.93));box-shadow:0 1rem 2rem rgba(0,0,0,.13);overflow:hidden}.action-card::before{display:grid;place-items:center;width:2.6rem;height:2.6rem;margin-bottom:2.1rem;border-radius:.78rem;background:rgba(114,240,168,.12);color:#79f4ab;font-size:1.15rem}.action-card:nth-child(1)::before{content:"+"}.action-card:nth-child(2)::before{content:"◉"}.action-card:nth-child(3)::before{content:"↗"}.action-card:nth-child(4)::before{content:"▦"}.action-card:nth-child(5)::before{content:"⚙"}.action-card h3{margin:0 0 .45rem;color:#f3f6ff;font-size:1.05rem;letter-spacing:-.035em}.action-card p{margin:0;color:#aebbd3;font-size:.82rem;line-height:1.55}.action-card:hover{transform:translateY(-6px);background:linear-gradient(145deg,rgba(28,60,78,.98),rgba(23,30,69,.98));border-color:rgba(114,240,168,.52);box-shadow:0 1.3rem 2.5rem rgba(1,7,22,.35)}.section-header{margin-bottom:1.35rem;padding-bottom:1.15rem;border-bottom-color:rgba(164,184,235,.16)}.section-header h2{margin:0;color:#f4f7ff;font-size:1.65rem;letter-spacing:-.05em}.section-header>div{flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.7rem 1rem;border-radius:.72rem;font-size:.83rem}.btn-secondary{border:1px solid rgba(174,191,234,.2);background:rgba(255,255,255,.07)}.btn-secondary:hover{background:rgba(255,255,255,.13)}.table-container{border:1px solid rgba(164,184,235,.15);border-radius:1rem;background:rgba(15,25,53,.7);box-shadow:0 1rem 2rem rgba(0,0,0,.11)}.data-table{margin:0}.data-table th,.data-table td{padding:1rem 1.1rem;border-bottom-color:rgba(164,184,235,.12);font-size:.82rem}.data-table th{background:rgba(101,129,200,.13);color:#a8f5c6;font-size:.68rem;letter-spacing:.07em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover{background:rgba(114,240,168,.055)}.badge{padding:.32rem .6rem;border-radius:100px;font-size:.7rem;font-weight:700}.badge.success{background:rgba(78,213,131,.14);color:#86f5b0}.badge.error{background:rgba(255,100,115,.13);color:#ffabb5}.modal-content{border-color:rgba(121,244,171,.28);background:linear-gradient(145deg,#132247,#0f1938)}.modal-header{padding-bottom:1rem;border-bottom:1px solid rgba(164,184,235,.14)}.modal-header h2{font-size:1.4rem;letter-spacing:-.04em}.close{width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.07);font-size:1.4rem;line-height:1}.modal-body{padding-top:.25rem}.input-group label{color:#dfe7fa;font-size:.78rem;font-weight:700}.input-group input,.input-group textarea,.input-group select{padding:.78rem .85rem;border-radius:.72rem;background:rgba(255,255,255,.055);border-color:rgba(174,191,234,.17);color:#f4f7ff}.input-group input:focus,.input-group textarea:focus,.input-group select:focus{border-color:#72f0a8;box-shadow:0 0 0 3px rgba(114,240,168,.12)}
.candidate-dashboard{max-width:900px}.progress-section,.user-form-container,.welcome-card,.test-area{border:1px solid rgba(164,184,235,.16);border-radius:1.15rem;background:linear-gradient(145deg,rgba(23,37,75,.9),rgba(13,23,50,.94));box-shadow:0 1.2rem 2.6rem rgba(0,0,0,.16)}.progress-section{padding:1.2rem 1.35rem;margin-bottom:1rem}.progress-section>p{margin:0 0 .75rem;color:#dce6fb;font-size:.83rem;font-weight:700}.progress-bar-container{height:.62rem;overflow:hidden;border-radius:100px;background:rgba(255,255,255,.1)}.progress-bar{height:100%;border-radius:100px;background:linear-gradient(90deg,#25a65e,#72f0a8)!important;color:transparent!important;transition:width .3s}.user-form-container{padding:2rem}.form-header{margin-bottom:2rem;padding-bottom:1.3rem;border-bottom:1px solid rgba(164,184,235,.15)}.form-header h2{margin:0 0 .5rem;color:#f4f7ff;font-size:1.7rem;letter-spacing:-.05em}.form-header p{margin:0;color:#aebbd3;font-size:.88rem;line-height:1.55}.form-section{margin-top:1.7rem;padding-top:1.6rem;border-top:1px solid rgba(164,184,235,.13)}.form-section:first-of-type{margin-top:0;padding-top:0;border-top:0}.form-section h3{margin:0 0 1.2rem;color:#a8f5c6;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.readonly-input{opacity:.65}.file-input-group{padding:1.1rem;border:1px dashed rgba(114,240,168,.34);border-radius:.9rem;background:rgba(114,240,168,.04)}.file-input-group small{color:#aebbd3;font-size:.72rem}.form-actions{display:flex;justify-content:flex-end;margin-top:1.8rem}.welcome-card,.test-area{padding:2.25rem;max-width:760px;margin:0 auto}.welcome-card h1,.welcome-card h2,.test-header h2{margin:0;color:#f5f8ff;letter-spacing:-.055em}.welcome-card h1 span{color:#72f0a8}.welcome-card>p{color:#aebbd3;line-height:1.65}.test-info{margin:1.5rem 0;padding:1.15rem 1.25rem;border-left:3px solid #72f0a8;border-radius:0 .8rem .8rem 0;background:rgba(114,240,168,.06);color:#cbd7ed}.test-info p,.test-info li{color:#cbd7ed}.test-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(164,184,235,.14)}.timer{padding:.5rem .75rem;border:1px solid rgba(255,154,161,.36);border-radius:.62rem;background:rgba(255,98,116,.1);color:#ffb2ba;font:700 .88rem monospace}.test-section{margin-top:1.4rem;padding:1.4rem;border:1px solid rgba(164,184,235,.14);border-radius:1rem;background:rgba(6,13,33,.26)}.test-section h3{margin:0 0 1rem;color:#a8f5c6;font-size:1rem}.question-item{padding:1.15rem 0;border-top:1px solid rgba(164,184,235,.11)}.question-item:first-of-type{border-top:0}.question-item p{margin:.1rem 0 .85rem;color:#eef3ff;font-size:.92rem;line-height:1.55}.option{margin:.45rem 0}.option label,.likert-options label{display:block;padding:.75rem .85rem;border:1px solid rgba(164,184,235,.15);border-radius:.72rem;background:rgba(255,255,255,.035);color:#cdd8ed;font-size:.83rem;cursor:pointer;transition:border-color .2s,background .2s}.option label:hover,.likert-options label:hover{border-color:rgba(114,240,168,.48);background:rgba(114,240,168,.07)}.option input,.likert-options input{accent-color:#53d98c;margin-right:.55rem}.case-text{padding:1rem;border-radius:.8rem;background:rgba(255,255,255,.04);color:#cdd8ed;line-height:1.65}.likert-options{display:grid;gap:.45rem}.checkbox-group label{padding:.5rem 0;color:#d7e1f5;font-size:.84rem}.checkbox-group input{accent-color:#53d98c}
@media(max-width:820px){.admin-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-container{padding:2.25rem 1.1rem 3rem}.navbar{padding:0 1.1rem}.grid-2{grid-template-columns:1fr}.user-form-container,.welcome-card,.test-area{padding:1.35rem}.dashboard-heading h1{font-size:2.15rem}}@media(max-width:520px){.admin-actions{grid-template-columns:1fr}.nav-brand span{font-size:.76rem}.nav-logo{height:1.85rem;width:1.85rem}.btn-logout{padding:.52rem .65rem;font-size:.68rem}.section-header,.test-header{align-items:flex-start;flex-direction:column}.form-actions .btn-primary{width:100%}.data-table th,.data-table td{padding:.8rem;font-size:.75rem}}
