.fm-root{min-height:100vh;min-height:100dvh;-ms-flex-direction:column;flex-direction:column;background:linear-gradient(165deg,#0f172a,#1e293b 50%,#0f172a);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;color:#fff;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.fm-loading,.fm-root{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal}.fm-loading{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:16px}.fm-loading-pulse{width:48px;height:48px;border-radius:50%;background:#534ab7;-webkit-animation:fm-pulse 1.4s ease-in-out infinite;animation:fm-pulse 1.4s ease-in-out infinite}@-webkit-keyframes fm-pulse{0%,to{-webkit-transform:scale(.85);transform:scale(.85);opacity:.5}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes fm-pulse{0%,to{-webkit-transform:scale(.85);transform:scale(.85);opacity:.5}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.fm-loading-text{font-size:.82rem;color:#94a3b8;font-weight:500}.fm-header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:16px 20px 8px}.fm-header,.fm-header-brand{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-header-brand{gap:8px}.fm-logo{width:32px;height:32px;border-radius:9px;background:#534ab7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fm-brand-text{font-size:1rem;font-weight:700;color:#fff;letter-spacing:-.02em}.fm-header-geo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-geo-text{font-size:.68rem;color:#86efac;font-weight:600}.fm-geo-text--err{color:#fca5a5}.fm-clock-section{text-align:center;padding:20px 20px 12px}.fm-clock{font-size:3.2rem;font-weight:200;letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums;line-height:1}.fm-date{font-size:.82rem;color:#94a3b8;font-weight:500;margin-top:4px;text-transform:capitalize}.fm-status-card{margin:8px 20px 16px;padding:18px;background:hsla(0,0%,100%,.06);border-radius:16px;border:1px solid hsla(0,0%,100%,.08);backdrop-filter:blur(12px)}.fm-user-row{gap:12px;margin-bottom:14px}.fm-avatar,.fm-user-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-avatar{width:42px;height:42px;border-radius:12px;background:rgba(83,74,183,.2);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.82rem;font-weight:700;color:#c4b5fd;border:2px solid #534ab7;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:border-color .3s;transition:border-color .3s}.fm-user-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0}.fm-user-name{font-size:.92rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-user-dept{font-size:.72rem;color:#94a3b8;font-weight:500}.fm-estado-pill{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:5px 12px;border-radius:20px;font-size:.72rem;font-weight:700;border:1px solid;margin-bottom:14px}.fm-estado-pill,.fm-stats-row{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-stats-row{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fm-stat,.fm-stats-row{display:-webkit-box;display:-ms-flexbox;display:flex}.fm-stat{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center}.fm-stat-value{font-size:.92rem;font-weight:800;color:#fff;letter-spacing:-.02em}.fm-stat-label{font-size:.6rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.fm-stat-sep{width:1px;height:28px;background:hsla(0,0%,100%,.08)}.fm-action-zone{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:8px 20px;gap:16px}.fm-action-zone,.fm-ausencia-banner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-ausencia-banner{padding:8px 16px;background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.25);border-radius:10px;font-size:.76rem;font-weight:600;color:#c4b5fd;width:100%}.fm-btn-fichar{width:140px;height:140px;border-radius:50%;border:none;background:var(--btn-color);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:6px;cursor:pointer;position:relative;overflow:hidden;-webkit-box-shadow:0 0 0 6px hsla(0,0%,100%,.04),0 8px 32px rgba(0,0,0,.3),0 0 60px color-mix(in srgb,var(--btn-color) 25%,transparent);box-shadow:0 0 0 6px hsla(0,0%,100%,.04),0 8px 32px rgba(0,0,0,.3),0 0 60px color-mix(in srgb,var(--btn-color) 25%,transparent);-webkit-transition:-webkit-transform .15s,-webkit-box-shadow .15s;transition:-webkit-transform .15s,-webkit-box-shadow .15s;transition:transform .15s,box-shadow .15s;transition:transform .15s,box-shadow .15s,-webkit-transform .15s,-webkit-box-shadow .15s}.fm-btn-fichar:active{-webkit-transform:scale(.94);transform:scale(.94)}.fm-btn-fichar:disabled{opacity:.7;cursor:not-allowed}.fm-btn-ripple{position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--btn-color);opacity:.3;-webkit-animation:fm-ripple 2s ease-out infinite;animation:fm-ripple 2s ease-out infinite}@-webkit-keyframes fm-ripple{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.3}to{-webkit-transform:scale(1.25);transform:scale(1.25);opacity:0}}@keyframes fm-ripple{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.3}to{-webkit-transform:scale(1.25);transform:scale(1.25);opacity:0}}.fm-btn-text{font-size:.72rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.fm-acciones-grid{width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.fm-accion-btn,.fm-acciones-grid{display:-webkit-box;display:-ms-flexbox;display:flex}.fm-accion-btn{-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;padding:12px 16px;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;cursor:pointer;-webkit-transition:all .15s;transition:all .15s;text-align:left;color:#fff}.fm-accion-btn:active{background:hsla(0,0%,100%,.1);-webkit-transform:scale(.98);transform:scale(.98)}.fm-accion-icon{width:40px;height:40px;border-radius:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0}.fm-accion-text{font-size:.85rem;font-weight:700;color:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1}.fm-accion-desc{font-size:.68rem;color:#94a3b8;font-weight:500}.fm-resultado{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 16px;border-radius:12px;width:100%}.fm-resultado--ok{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.25)}.fm-resultado--err{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25)}.fm-resultado-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fm-resultado-msg{font-size:.8rem;font-weight:600;color:#fff}.fm-resultado-hora{font-size:.68rem;color:#94a3b8;font-weight:500}.fm-historial{margin:8px 20px 0}.fm-historial-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;width:100%;padding:10px 0;background:none;border:none;border-top:1px solid hsla(0,0%,100%,.06);cursor:pointer;font-size:.76rem;font-weight:600;color:#94a3b8}.fm-historial-list{padding-bottom:8px}.fm-historial-empty{gap:8px;padding:16px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.76rem;color:#64748b}.fm-historial-empty,.fm-historial-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-historial-item{gap:10px;padding:8px 0;border-bottom:1px solid hsla(0,0%,100%,.04)}.fm-historial-item:last-child{border-bottom:none}.fm-historial-dot{width:24px;height:24px;border-radius:6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0}.fm-historial-data,.fm-historial-dot{display:-webkit-box;display:-ms-flexbox;display:flex}.fm-historial-data{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fm-historial-horas{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fm-historial-hora{font-size:.8rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.fm-historial-obs{font-size:.68rem;color:#94a3b8;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-historial-device{-ms-flex-negative:0;flex-shrink:0}.fm-geo-warning{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;margin:4px 20px;padding:8px 12px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);border-radius:8px;font-size:.7rem;color:#fcd34d}.fm-geo-retry{margin-left:auto;padding:3px 10px;background:rgba(245,158,11,.2);border:none;border-radius:5px;font-size:.68rem;font-weight:700;color:#fcd34d;cursor:pointer}.fm-geo-retry:active{background:rgba(245,158,11,.3)}.fm-footer{padding:12px 20px 16px;text-align:center;font-size:.62rem;color:#475569;font-weight:500}.fm-fade-enter-active,.fm-fade-leave-active{-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s;transition:opacity .3s,transform .3s,-webkit-transform .3s}.fm-fade-enter,.fm-fade-leave-to{opacity:0;-webkit-transform:translateY(-8px);transform:translateY(-8px)}.fm-slide-enter-active,.fm-slide-leave-active{-webkit-transition:all .3s cubic-bezier(.16,1,.3,1);transition:all .3s cubic-bezier(.16,1,.3,1);max-height:500px;overflow:hidden}.fm-slide-enter,.fm-slide-leave-to{max-height:0;opacity:0;overflow:hidden}@supports(padding:env(safe-area-inset-top)){.fm-header{padding-top:calc(16px + env(safe-area-inset-top))}.fm-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}}