:root{--font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}body,html{width:100%;min-height:100%}body{margin:0;font-family:var(--font-family)}body:not(.dashboard-mode){min-height:100vh;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:20px 0;box-sizing:border-box}body:not(.dashboard-mode) #app_loader,body:not(.dashboard-mode) .bg-animation{position:fixed;inset:0}body.app_cargando #app_card,body.auth-bootstrapping #app_card{display:none!important;visibility:hidden!important}body.app_cargando #app_loader,body.auth-bootstrapping #app_loader{display:flex!important;visibility:visible!important}#frm_login{display:none}body:not(.dashboard-mode) #frm_login.visible{display:block!important}.cristal_card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:24px;padding:40px;backdrop-filter:blur(var(--blur-amount));-webkit-backdrop-filter:blur(var(--blur-amount));box-shadow:0 4px 30px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.1),inset 0 0 40px var(--card-glow);transition:transform .4s cubic-bezier(.34, 1.56, .64, 1),box-shadow .4s;margin:20px}.cristal_card:hover{box-shadow:0 30px 60px rgba(0,0,0,.6),0 1px 5px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.15),inset 0 0 50px rgba(99,102,241,.08)}.seccion_card{width:100%;animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}.header_card{text-align:center;margin-bottom:32px}.logo_contenedor{display:inline-flex;justify-content:center;align-items:center;width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,var(--primary) 0,#a855f7 100%);margin-bottom:20px;color:#fff;box-shadow:0 8px 20px rgba(99,102,241,.4)}.logo_imagen_contenedor{background:0 0;box-shadow:none;width:auto;height:auto;border-radius:0}.logo_imagen{width:180px;height:auto;object-fit:contain;transition:opacity .3s}.logo{width:32px;height:32px}.header_card h1,.header_card h2,.seccion_card h1,.seccion_card h2{font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:8px;background:linear-gradient(180deg,#fff 0,#d1d5db 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.lbl_subtitulo{font-size:14px;color:var(--text-muted);line-height:1.5}#form_login,.seccion_card form{display:flex;flex-direction:column;gap:20px}.group_input{display:flex;flex-direction:column;gap:8px;text-align:left}.group_input label{font-size:13px;font-weight:500;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase}.row_label{display:flex;justify-content:space-between;align-items:center}.wrapper_input{position:relative;display:flex;align-items:center}#form_login .wrapper_input input,.cristal_card .wrapper_input input,.wrapper_input input{width:100%!important;height:48px!important;background:var(--card-bg,rgba(255,255,255,.04))!important;border:1px solid var(--card-border,rgba(255,255,255,.08))!important;border-radius:12px!important;padding:0 44px!important;color:var(--text-main,#fff)!important;font-family:var(--font-family)!important;font-size:15px!important;outline:0!important;box-sizing:border-box!important;transition:var(--transition-smooth)!important}#form_login .wrapper_input input:focus,.cristal_card .wrapper_input input:focus,.wrapper_input input:focus{background:var(--card-bg,rgba(255,255,255,.07))!important;border-color:var(--primary)!important;box-shadow:0 0 0 4px var(--primary-glow)!important}.wrapper_input input::placeholder{color:var(--text-muted,rgba(255,255,255,.25))!important}.icon_input{position:absolute;left:14px;width:18px;height:18px;color:var(--text-muted);pointer-events:none;transition:var(--transition-fast);z-index:2}.wrapper_input input:focus~.icon_input{color:var(--primary)}.btn_ver_password{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;background:0 0;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:var(--transition-fast);z-index:2}.btn_ver_password:hover{color:#fff}.icon_ojo{position:absolute;width:18px;height:18px;transition:opacity .15s}.icon_ojo.oculto{display:none!important;opacity:0;pointer-events:none}#form_login #btn_login,.btn_principal,.cristal_card .btn_principal{width:100%!important;height:48px!important;background:var(--primary)!important;border:1px solid var(--primary)!important;border-radius:12px!important;padding:0 20px!important;color:#fff!important;font-family:var(--font-family)!important;font-size:15px!important;font-weight:600!important;cursor:pointer!important;position:relative!important;overflow:hidden!important;transition:var(--transition-smooth)!important;display:flex!important;justify-content:center!important;align-items:center!important;box-shadow:0 4px 15px rgba(0,0,0,.2)!important;margin-top:10px!important;box-sizing:border-box!important}.btn_principal:hover{transform:translateY(-2px);box-shadow:0 8px 25px var(--primary-glow);background:var(--primary-hover);border-color:var(--primary-hover)}.btn_principal:active{transform:translateY(0)}.btn-secondary{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px 20px;color:#fff;font-family:var(--font-family);font-size:15px;font-weight:500;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:10px;transition:var(--transition-smooth);margin-top:24px}.btn-secondary:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:#fca5a5}.btn-outline{background:0 0;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px 20px;color:var(--text-main);font-family:var(--font-family);font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition-smooth)}.btn-outline:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.25)}.btn-icon{width:18px;height:18px}.spinner{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:.8s linear infinite spin;position:absolute;display:none}.light-theme .spinner{border-color:rgba(0,0,0,.2);border-top-color:#1e293b}.btn_principal.loading .txt_btn{visibility:hidden;opacity:0}.btn_principal.loading .spinner{display:block!important}.login-history-container{margin-top:24px;text-align:left}.login-history-container h3{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase;margin-bottom:10px}.history-list{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:rgba(255,255,255,.02);border-radius:4px}.history-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:4px}.history-list::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}.history-item{background:rgba(0,0,0,.15);border:1px solid rgba(255,255,255,.03);border-radius:10px;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:4px;transition:var(--transition-fast)}.history-item:hover{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.06)}.history-item-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#fff}.history-item-device{display:flex;align-items:center;gap:6px}.history-item-ip{color:#a78bfa;font-family:monospace}.history-item-meta{display:flex;justify-content:space-between;color:var(--text-muted);font-size:11px}.history-item-empty,.history-item-placeholder{font-size:12px;color:var(--text-muted);text-align:center;padding:16px 0;background:rgba(0,0,0,.1);border:1px dashed rgba(255,255,255,.05);border-radius:10px}body.light-theme h1,body.light-theme h2{background:0 0;-webkit-background-clip:unset;background-clip:unset;-webkit-text-fill-color:var(--text-main);color:var(--text-main)}body.light-theme .lbl_subtitulo{color:var(--text-muted)}body.light-theme .group_input label{color:var(--text-muted)}body.light-theme .btn_ver_password{color:var(--text-muted)}body.light-theme .btn_ver_password:hover{color:var(--text-main)}body.light-theme .wrapper_input input{background:var(--card-bg,rgba(255,255,255,.6));border-color:var(--card-border,rgba(0,0,0,.2));color:var(--text-main,#0f172a)}body.light-theme .wrapper_input input:focus{background:var(--bg-primary)}body.light-theme .wrapper_input input::placeholder{color:var(--text-muted)}body.light-theme .btn_principal{background:var(--primary,rgba(255,255,255,.6));border-color:var(--card-border,rgba(0,0,0,.2));color:#fff}body.light-theme .btn_principal:hover{background:var(--primary-hover,rgba(255,255,255,.8));border-color:var(--primary)}body.light-theme .user-details{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.05)}body.light-theme .detail-value{color:#0f172a}body.light-theme .history-list::-webkit-scrollbar-track{background:rgba(0,0,0,.03)}body.light-theme .history-list::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15)}body.light-theme .history-item{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.05)}body.light-theme .history-item:hover{background:#fff;border-color:rgba(0,0,0,.1)}body.light-theme .history-item-header{color:#0f172a}body.light-theme .history-item-empty,body.light-theme .history-item-placeholder{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.08)}.contenedor_temas{position:absolute;top:60px;right:24px;z-index:1000;transition:var(--transition-smooth)}.theme-switch{display:inline-block;width:66px;height:32px;position:relative}.theme-switch input{opacity:0;width:0;height:0;position:absolute}.theme-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:34px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:.4s;box-shadow:inset 0 2px 4px rgba(0,0,0,.2)}.theme-slider-circle{position:absolute;height:24px;width:24px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .4s cubic-bezier(.68, -.55, .265, 1.55),background-color .4s;z-index:2;box-shadow:0 2px 5px rgba(0,0,0,.2)}.theme-icons{display:flex;width:100%;height:100%;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;padding:0 9px;z-index:3;pointer-events:none}.icon-moon-switch,.icon-sun-switch{width:14px;height:14px;transition:.4s}body:not(.light-theme) .theme-slider-circle{transform:translateX(34px);background-color:rgba(255,255,255,.15);box-shadow:0 2px 5px rgba(0,0,0,.2),inset 0 0 0 1px rgba(255,255,255,.05)}body:not(.light-theme) .icon-sun-switch{color:#6b7280}body:not(.light-theme) .icon-moon-switch{color:#e2e8f0}body.light-theme .theme-slider{background-color:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1);box-shadow:inset 0 2px 4px rgba(0,0,0,.05)}body.light-theme .theme-slider-circle{transform:translateX(0);background-color:#fff}body.light-theme .icon-sun-switch{color:#d97706}body.light-theme .icon-moon-switch{color:#9ca3af}body.light-theme .btn-secondary{color:#1e293b;border-color:rgba(0,0,0,.12);background:rgba(0,0,0,.05)}body.light-theme .btn-secondary:hover{background:rgba(0,0,0,.1);color:#0f172a}.btn-close-modal{background:0 0;border:none;color:var(--text-muted);font-size:28px;line-height:1;cursor:pointer;transition:.2s;padding:0}.btn-close-modal:hover{color:#fff}body.light-theme .btn-close-modal:hover{color:#000}#txt_email{text-transform:lowercase!important}#txt_password{text-transform:none!important}.wrapper_status_bridge{display:flex;justify-content:center;margin-top:12px}.badge_bridge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.06em;text-transform:uppercase;transition:background .3s,color .3s,border-color .3s;user-select:none}.badge_punto{width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge_estado_comprobando{background:rgba(148,163,184,.12);color:#94a3b8;border:1px solid rgba(148,163,184,.25)}.badge_estado_comprobando .badge_punto{background:#94a3b8;animation:1.4s ease-in-out infinite bridge-pulse-gray}.badge_estado_en_linea{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.4)}.badge_estado_en_linea .badge_punto{background:#22c55e;animation:1.6s ease-in-out infinite bridge-pulse-green}.badge_estado_desconectado{background:rgba(239,68,68,.13);color:#ef4444;border:1px solid rgba(239,68,68,.35)}.badge_estado_desconectado .badge_punto{background:#ef4444}@keyframes bridge-pulse-green{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(34,197,94,.5)}50%{opacity:.7;box-shadow:0 0 0 4px rgba(34,197,94,0)}}@keyframes bridge-pulse-gray{0%,100%{opacity:1}50%{opacity:.4}}body.light-theme .badge_estado_en_linea{background:rgba(34,197,94,.1);color:#16a34a}body.light-theme .badge_estado_desconectado{background:rgba(239,68,68,.08);color:#dc2626}body.light-theme .badge_estado_comprobando{color:#64748b}.overlay_calc{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.overlay_calc.oculto{display:none}.kicked-overlay{z-index:99999}.modal_calc{background:#1e1b2e;border:1px solid rgba(255,255,255,.1);border-radius:1rem;box-shadow:0 20px 40px rgba(0,0,0,.5);color:#fff;max-width:400px;width:90%}body.light-theme .modal_calc{background:#fff;border-color:rgba(0,0,0,.1);color:#1e293b;box-shadow:0 10px 25px rgba(0,0,0,.1)}.kicked-modal-box{text-align:center;padding:2rem}.kicked-icon{font-size:3rem;margin-bottom:1rem}.kicked-title{margin-bottom:.75rem;font-size:1.25rem;font-weight:600}.kicked-desc{margin-bottom:1.5rem;color:#94a3b8}body.light-theme .kicked-desc{color:#64748b}.kicked-btn-group{display:flex;justify-content:center}.kicked-btn{padding:.75rem 2rem;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:opacity .2s}.kicked-btn:hover{opacity:.9}