*{box-sizing:border-box}:root{--color-bg: #f6f1e7;--color-surface: #fdfbf6;--color-surface-muted: #efe8d8;--color-border: #e2d9c3;--color-text: #1e2b21;--color-text-muted: #6b6a5c;--color-text-faint: #9c9a86;--color-primary: #17281d;--color-primary-dark: #0d1712;--color-primary-soft: #e1e6de;--color-accent: #e3b650;--color-accent-dark: #b98f28;--color-accent-soft: #faf0d8;--color-danger: #b3453d;--altura-topbar: 7rem;--font-display: "Cormorant Garamond", Georgia, serif;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--shadow-sm: 0 1px 2px rgba(23, 22, 15, .05), 0 1px 1px rgba(23, 22, 15, .04);--shadow-md: 0 10px 30px -12px rgba(23, 22, 15, .2);--shadow-lg: 0 24px 60px -16px rgba(23, 22, 15, .32);--transition: .15s cubic-bezier(.4, 0, .2, 1)}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}html,body{margin:0;height:100%;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}button,input,select{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-sm);padding:.7rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;transition:transform var(--transition),background var(--transition),box-shadow var(--transition),opacity var(--transition)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 6px 16px -6px #17281d8c}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-accent{background:var(--color-accent);color:#fff;box-shadow:0 6px 16px -6px #e3b65080}.btn-accent:hover:not(:disabled){background:var(--color-accent-dark)}.btn-ghost{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);border-color:#d7d7e6}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at 15% 15%,rgba(23,40,29,.1),transparent 45%),radial-gradient(circle at 85% 85%,rgba(227,182,80,.16),transparent 45%),var(--color-bg)}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2.75rem 2.5rem;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-card .brand-mark{width:80px;height:80px;border-radius:0;border:none;object-fit:contain;margin-bottom:1.25rem}.auth-card h1{margin:0 0 .3rem;font-size:1.6rem;color:var(--color-text)}.auth-card .subtitle{margin:0 0 1.75rem;color:var(--color-text-muted);font-size:.92rem}.auth-card form{display:flex;flex-direction:column;gap:1.1rem}.auth-card label{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.auth-card input,.auth-card select{padding:.72rem .85rem;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition)}.auth-card input:hover,.auth-card select:hover{border-color:#cfcfe3}.auth-card input:focus,.auth-card select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft)}.auth-card .password-field{position:relative}.auth-card .password-field input{width:100%;padding-right:2.6rem}.auth-card .password-field .toggle-visibility{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-faint);padding:.3rem;display:flex;border-radius:6px}.auth-card .password-field .toggle-visibility:hover{color:var(--color-text-muted);background:var(--color-surface-muted)}.auth-card .forgot-link{margin:-.4rem 0 0;text-align:right;font-size:.8rem}.auth-card .forgot-link a{color:var(--color-text-muted);text-decoration:none}.auth-card .forgot-link a:hover{color:var(--color-primary);text-decoration:underline}.auth-card .role-toggle{display:flex;gap:.5rem}.auth-card .role-toggle button{flex:1;padding:.6rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;font-size:.86rem;font-weight:600;transition:all var(--transition)}.auth-card .role-toggle button:hover{border-color:#cfcfe3}.auth-card .role-toggle button.active{background:var(--color-primary);color:var(--color-accent);border-color:var(--color-primary)}.auth-card button[type=submit]{margin-top:.4rem;padding:.75rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;box-shadow:0 8px 20px -8px #17281d80;transition:background var(--transition),transform var(--transition),opacity var(--transition)}.auth-card button[type=submit]:hover:not(:disabled){background:var(--color-primary-dark)}.auth-card button[type=submit]:active:not(:disabled){transform:translateY(1px)}.auth-card button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.auth-card .error{display:flex;align-items:center;gap:.4rem;background:#fdeced;color:var(--color-danger);border:1px solid #f7d2d3;border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.82rem;margin:0}.auth-card .hint{margin-top:1.5rem;font-size:.75rem;color:var(--color-text-faint);text-align:center;line-height:1.5}.auth-card .ayuda-password{display:block;margin-top:.35rem;font-size:.75rem;color:var(--color-text-faint)}.auth-card .error-campo{display:block;margin-top:.35rem;font-size:.78rem;color:var(--color-danger)}.auth-card .nota-cv{margin:-.5rem 0 0;font-size:.76rem;color:var(--color-text-faint)}.auth-card .dropzone-cv{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);cursor:pointer;transition:border-color var(--transition),background var(--transition),transform var(--transition)}.auth-card .dropzone-cv:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.auth-card .dropzone-cv.arrastrando{border-color:var(--color-accent);background:var(--color-accent-soft);transform:scale(1.01)}.auth-card .dropzone-cv.tiene-archivo{border-style:solid;border-color:var(--color-accent);background:var(--color-accent-soft)}.auth-card .dropzone-cv .dropzone-icono{font-size:1.6rem;flex-shrink:0}.auth-card .dropzone-cv .dropzone-texto{display:flex;flex-direction:column;gap:.15rem;min-width:0}.auth-card .dropzone-cv .dropzone-texto strong{font-size:.86rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-card .dropzone-cv .dropzone-texto small{font-size:.74rem;color:var(--color-text-muted);font-weight:500}.auth-card .pendiente-aviso{display:flex;flex-direction:column;gap:.75rem;text-align:center}.auth-card .pendiente-aviso p{margin:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.auth-card .pendiente-aviso p:first-child{color:var(--color-text);font-weight:600;font-size:1rem}.auth-card .pendiente-aviso .btn-volver{margin-top:.5rem;padding:.75rem;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:600;text-decoration:none}.auth-card .pendiente-aviso .btn-volver:hover{background:var(--color-primary-dark)}.auth-card .switch{margin-top:.6rem;font-size:.86rem;color:var(--color-text-muted);text-align:center}.auth-card .switch a,.auth-card .switch .link-button{color:var(--color-accent-dark);font-weight:600;text-decoration:none;background:none;border:none;padding:0;font:inherit;cursor:pointer}.auth-card .switch a:hover,.auth-card .switch .link-button:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1.5rem;background:#17281df0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);margin:.85rem 1rem 0;border-radius:999px;box-shadow:0 10px 30px -8px #17281d8c,0 2px 10px #00000026;position:sticky;top:.85rem;z-index:10}.topbar .brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;border-radius:var(--radius-sm);padding:.2rem .3rem;margin:-.2rem -.3rem;transition:background var(--transition)}.topbar .brand:hover{background:#ffffff0f}.topbar .brand{font-family:var(--font-sans);font-weight:600;letter-spacing:.01em;color:#fff;font-size:.92rem}.topbar .brand .brand-icon{width:80px;height:80px;border-radius:0;border:none;object-fit:contain}.topbar .user-info{display:flex;align-items:center;gap:1.1rem;font-size:.86rem}.topbar .user-info .nav-links-group{display:flex;align-items:center;gap:1.1rem}.topbar .user-info .user-meta{display:flex;align-items:center;gap:.55rem;text-decoration:none;padding:.2rem .4rem .2rem .2rem;border-radius:999px;transition:background var(--transition)}.topbar .user-info .user-meta:hover{background:#ffffff14}.topbar .user-info .user-meta .user-meta-texto{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.topbar .user-info .user-meta .user-name{font-family:var(--font-sans);font-weight:600;font-size:.92rem;color:#fff}.topbar .user-info .user-meta .user-role{font-family:var(--font-sans);font-size:.78rem;color:#fff9}.topbar .user-info .topbar-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.topbar .user-info .topbar-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-primary);font-family:var(--font-sans);font-size:.95rem;font-weight:700}.topbar .user-info .nav-link{color:#ffffffbf;text-decoration:none;font-family:var(--font-sans);font-size:.88rem;font-weight:600;padding:.45rem .75rem;border-radius:var(--radius-sm);transition:all var(--transition)}.topbar .user-info .nav-link:hover{background:#ffffff14;color:#fff}.topbar .user-info a.nav-link-saldo{display:flex;align-items:center;gap:.4rem;background:#17281de6;color:var(--color-accent);box-shadow:inset 0 0 0 1px #e3b65059}.topbar .user-info a.nav-link-saldo:hover{background:#17281d;color:var(--color-accent)}.topbar .user-info a.nav-link-saldo .nav-saldo-monto{font-weight:800}.topbar .user-info button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;padding:.45rem .95rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.84rem;transition:all var(--transition)}.topbar .user-info button:hover{background:#ffffff1a;border-color:#ffffff80}.page-content{flex:1;padding:2.25rem 1.75rem 3rem;max-width:1000px;width:100%;margin:0 auto}.page-header{margin-bottom:1.75rem}.page-header h1{margin:0 0 .35rem;font-size:1.5rem}.lead{color:var(--color-text-muted);margin:0;font-size:.94rem}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm);margin-bottom:1.25rem}.panel h2{margin:0 0 1rem;font-size:1.05rem;color:var(--color-text)}.panel form{display:flex;flex-direction:column;gap:1rem;max-width:420px}.panel label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.panel input,.panel select{padding:.65rem .8rem;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition)}.panel input:focus,.panel select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft)}.panel select{cursor:pointer}.error{display:flex;align-items:center;gap:.4rem;background:#fdeced;color:var(--color-danger);border:1px solid #f7d2d3;border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.82rem;margin:0}.mensaje{font-size:.85rem;color:#0f7a5f;font-weight:600;margin:0}.nota{font-size:.8rem;color:var(--color-text-muted);line-height:1.5}.nota-dev{color:var(--color-primary-dark);font-weight:600;word-break:break-all}.aviso-verificacion{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:#fff8e6;border:1px solid #f6e4b8;color:#8a5a00;padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.88rem;font-weight:600}.menu-toggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-sm);color:#fff;font-size:1.05rem;cursor:pointer;flex-shrink:0}@media(max-width:900px){.topbar{padding:.7rem 1rem;position:relative}.topbar .user-info{gap:.5rem}.topbar .user-info .nav-links-group{display:none;position:absolute;top:calc(100% + .5rem);left:0;right:0;flex-direction:column;align-items:stretch;gap:.15rem;background:#17281df0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:20px;box-shadow:0 10px 30px -8px #17281d8c,0 2px 10px #00000026;padding:.6rem}.topbar .user-info .nav-links-group.nav-links-abierto{display:flex}.topbar .user-info .nav-links-group .nav-link{padding:.7rem .85rem}.topbar .user-info .nav-links-group a.nav-link-saldo{justify-content:flex-start}.topbar .user-info .user-role{display:none}.menu-toggle{display:flex}.user-info button{padding:.45rem .7rem}.page-content{padding:1.5rem 1rem 2.5rem}.page-header h1{font-size:1.3rem}.auth-page{padding:1rem}.auth-card{padding:2rem 1.5rem}.panel{padding:1rem}.panel form{max-width:none}}@media(max-width:420px){.brand .brand-texto,.user-meta .user-meta-texto{display:none}.user-info .user-meta{padding:.2rem}}
