.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f0f9ff,#e0f7ff);padding:1rem}.login-card{background:#fff;padding:3rem 2.5rem;border-radius:12px;box-shadow:0 8px 32px #006bb326;max-width:420px;width:100%;border-top:6px solid #006BB3;text-align:center}.login-logo h1{color:#006bb3;font-size:2.2rem;font-weight:800;margin:.5rem 0 .25rem;letter-spacing:2px}.login-logo img{height:70px;object-fit:contain}.login-subtitle{color:#666;font-size:.95rem;margin-bottom:2rem}.login-error{background:#fff0f0;border:1px solid #ffcccc;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;color:#c00;font-size:.9rem}.login-success{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;color:#047857;font-size:.9rem}.login-form{text-align:left}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-size:.9rem;font-weight:600}.form-group input{width:100%;padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#006bb3;box-shadow:0 0 0 3px #006bb31a}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-login{width:100%;padding:.85rem 1.5rem;background:#006bb3;border:none;border-radius:8px;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.btn-login:hover:not(:disabled){background:#005a96;box-shadow:0 2px 8px #006bb34d}.btn-login:disabled{opacity:.7;cursor:not-allowed}.btn-login-link{width:100%;margin-top:.85rem;padding:.45rem;border:0;background:transparent;color:#006bb3;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.btn-login-link:hover:not(:disabled){text-decoration:underline}.btn-login-link:disabled{opacity:.6;cursor:not-allowed}.recovery-help{margin:-.25rem 0 1.25rem;color:#64748b;font-size:.85rem;line-height:1.5}.btn-spinner{width:20px;height:20px;border:3px solid #e0f0ff;border-top:3px solid #006BB3;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{margin-top:1.5rem;color:#999;font-size:.8rem}.validator-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100vw;padding:2rem;text-align:center;background:linear-gradient(135deg,#f0f9ff,#e0f7ff);overflow-y:auto}.validator-card{background-color:#fff;padding:3rem 2.5rem;border-radius:8px;box-shadow:0 8px 24px #006bb326;max-width:600px;width:90%;border-top:6px solid #006BB3;border-bottom:3px solid #4ECDC4;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 8px 24px #006bb326}50%{transform:scale(1.02);box-shadow:0 12px 32px #006bb340}}.validator-card h2{color:#006bb3;font-size:2rem;font-weight:700;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:1px}.validator-spinner{margin:2rem auto;width:60px;height:60px;border:6px solid #e0f7ff;border-top:6px solid #4ECDC4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.validator-message{color:#333;font-size:1.1rem;line-height:1.6;margin-top:1rem}@media(max-width:768px){.validator-card{padding:2rem 1.5rem;width:95%}.validator-card h2{font-size:1.6rem}.validator-message{font-size:1rem}}.invalid-link-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100vw;padding:2rem;text-align:center;background:linear-gradient(135deg,#f0f9ff,#e0f7ff);overflow-y:auto}.invalid-link-card{background-color:#fff;padding:3rem 2.5rem;border-radius:8px;box-shadow:0 8px 24px #006bb326;max-width:600px;width:90%;border-top:6px solid #dc3545;border-bottom:3px solid #4ECDC4;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:4rem;margin-bottom:1rem;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px) rotate(-5deg)}75%{transform:translate(10px) rotate(5deg)}}.invalid-link-card h1{color:#dc3545;font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:1px}.invalid-link-card p{color:#333;font-size:1.1rem;line-height:1.8;margin-bottom:1rem}.invalid-link-card p:last-child{margin-top:1.5rem;color:#006bb3;font-weight:600}@media(max-width:768px){.invalid-link-card{padding:2rem 1.5rem;width:95%}.invalid-link-card h1{font-size:2rem}.invalid-link-card p{font-size:1rem}}.web-navbar{height:70px;background:#fff;border-bottom:3px solid #006BB3;box-shadow:0 4px 20px #0046780f;display:flex;justify-content:space-between;align-items:center;padding:0 2rem;position:sticky;top:0;left:0;width:100%;box-sizing:border-box;z-index:1000;font-family:Inter,sans-serif}.navbar-brand-section{display:flex;align-items:center;gap:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.brand-logo{height:38px;width:auto}.brand-texts h2{font-size:1.35rem;font-weight:850;color:#006bb3;margin:0;letter-spacing:.5px}.brand-texts span{font-size:.72rem;color:#0d9488;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:block;margin-top:-2px}.navbar-menus-section{display:flex;align-items:center;gap:.5rem;flex-grow:1;margin-left:2.5rem;height:100%}.menu-dropdown-container{position:relative;height:100%;display:flex;align-items:center}.menu-dropdown-btn{background:transparent;border:none;color:#475569;font-size:.9rem;font-weight:600;padding:.5rem .85rem;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.4rem;letter-spacing:0;text-transform:none}.menu-dropdown-btn:hover{background:#f1f5f9;color:#006bb3}.menu-dropdown-btn.active{background:#eff6ff;color:#006bb3}.arrow-icon{transition:transform .2s ease}.menu-dropdown-btn.active .arrow-icon{transform:rotate(180deg)}.menu-dropdown-panel{position:absolute;top:60px;left:0;background:#fff;border-radius:10px;box-shadow:0 10px 25px #0000001a;border:1px solid #e2e8f0;min-width:250px;max-width:320px;padding:.5rem;display:flex;flex-direction:column;gap:.2rem;animation:dropdownFadeIn .2s cubic-bezier(.16,1,.3,1);z-index:1100}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item-btn{background:transparent;border:none;text-align:left;padding:.65rem .85rem;font-size:.85rem;font-weight:550;color:#334155;border-radius:6px;cursor:pointer;transition:all .15s ease;width:100%;box-sizing:border-box;text-transform:none;letter-spacing:0}.dropdown-item-btn:hover{background:#f8fafc;color:#006bb3;padding-left:1.1rem}.dropdown-item-btn.current{background:#f0f7ff;color:#006bb3;font-weight:700}.navbar-user-section{display:flex;align-items:center;gap:1.5rem}.admin-permisos-link{display:flex;align-items:center;gap:.4rem;color:#64748b;text-decoration:none;font-size:.85rem;font-weight:650;padding:.45rem .75rem;border-radius:6px;border:1px dashed #cbd5e1;transition:all .2s ease}.admin-permisos-link:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.user-profile-widget{position:relative}.user-profile-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:.75rem;padding:.35rem .5rem;border-radius:8px;transition:background .2s ease;text-transform:none}.user-profile-btn:hover{background:#f8fafc}.avatar-circle{width:36px;height:36px;background:linear-gradient(135deg,#006bb3,#0052a3);color:#fff;font-weight:700;font-size:1rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.user-meta-info{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.profile-name{font-size:.88rem;font-weight:700;color:#1e293b}.profile-role{font-size:.72rem;color:#64748b;font-weight:650}.profile-dropdown-menu{position:absolute;top:55px;right:0;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001f;border:1px solid #e2e8f0;width:260px;padding:1rem;box-sizing:border-box;animation:dropdownFadeIn .2s ease-out;z-index:1200}.profile-header-info{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}.profile-header-info strong{font-size:.92rem;color:#0f172a}.profile-header-info p{font-size:.78rem;color:#64748b;margin:0;word-break:break-all}.profile-client-tag{font-size:.7rem;background:#f0fdfa;color:#0d9488;font-weight:700;padding:.15rem .45rem;border-radius:4px;margin-top:.4rem;border:1px solid #ccfbf1}.profile-divider{height:1px;background:#e2e8f0;margin:.85rem 0}.profile-menu-item{background:transparent;border:none;width:100%;text-align:left;padding:.6rem .85rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;box-sizing:border-box;text-transform:none;letter-spacing:0}.profile-menu-item.logout{color:#dc2626;background:#fef2f2}.profile-menu-item.logout:hover{background:#fee2e2;color:#b91c1c}.main-layout-wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.main-content-area{flex-grow:1;width:100%;display:flex;flex-direction:column}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;--primary-color: #006BB3;--secondary-color: #4ECDC4;--error-color: #dc3545;--success-color: #28a745;--text-color: #333;--bg-gradient-start: #f0f9ff;--bg-gradient-end: #e0f7ff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;width:100%;min-height:100vh;color:var(--text-color);background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-end) 100%)}#root{width:100%;min-height:100vh}a{font-weight:500;color:var(--primary-color);text-decoration:none;transition:color .3s ease}a:hover{color:var(--secondary-color)}h1,h2,h3,h4,h5,h6{color:var(--primary-color);margin:0}button{border-radius:6px;border:2px solid transparent;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}button:focus,button:focus-visible{outline:none;box-shadow:0 0 0 3px #4ecdc44d}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-gradient-start)}::-webkit-scrollbar-thumb{background:var(--secondary-color);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}
