:root{--primary: #00838F;--primary-light: #0097A7;--primary-dark: #006064;--primary-subtle: #E0F7FA;--accent: #26A69A;--accent-orange: #FF7043;--success: #2E7D32;--success-bg: #E8F5E9;--warning: #F57F17;--warning-bg: #FFFDE7;--danger: #C62828;--danger-bg: #FFEBEE;--text-main: #1E293B;--text-muted: #64748B;--text-light: #94A3B8;--bg-page: #F1F5F9;--bg-card: #FFFFFF;--border-color: #E2E8F0;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0, 131, 143, .08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 25px -5px rgba(0, 131, 143, .15), 0 8px 10px -6px rgba(0,0,0,.05);--shadow-float: 0 12px 30px rgba(0, 131, 143, .35)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none!important;overscroll-behavior-y:none!important;overscroll-behavior-x:none!important;touch-action:pan-y;-webkit-overflow-scrolling:touch}body{font-family:Outfit,Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-page);color:var(--text-main);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}.app-container{max-width:480px;margin:0 auto;background-color:#fff;min-height:100vh;position:relative;box-shadow:0 0 35px #00000012;display:flex;flex-direction:column;overscroll-behavior:none!important;overscroll-behavior-y:none!important;overscroll-behavior-x:none!important;touch-action:pan-y}.admin-container{max-width:1400px;margin:0 auto;min-height:100vh;background-color:var(--bg-page)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes authFadeSlideUp{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes authSlideLeft{0%{opacity:0;transform:translate(36px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes authSlideRight{0%{opacity:0;transform:translate(-36px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes floatLogo{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pulseGlow{0%,to{box-shadow:0 8px 20px #00838f47}50%{box-shadow:0 12px 28px #00838f73}}.auth-card-animate{animation:authFadeSlideUp .5s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity}.auth-register-animate{animation:authSlideLeft .45s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity}.auth-login-animate{animation:authSlideRight .45s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity}.logo-float-animate{animation:floatLogo 3.5s ease-in-out infinite}.logo-glow-animate{animation:pulseGlow 3s ease-in-out infinite}.smooth-fade-in{animation:fadeIn .3s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sipp-header{display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px 16px;background-color:#fff}.header-title-group{display:flex;align-items:center;gap:12px}.sipp-logo-title{font-size:1.55rem;font-weight:800;color:#00838f;letter-spacing:-.5px}.header-action-icons{display:flex;align-items:center;gap:10px}.icon-btn{background:#f8fafc;border:1px solid #E2E8F0;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#475569;cursor:pointer;position:relative;transition:all .2s}.icon-badge-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background-color:#ef4444;border-radius:50%;border:1.5px solid #FFFFFF}.verified-badge{width:38px;height:38px;border-radius:50%;background-color:#e8f5e9;color:#2e7d32;display:flex;align-items:center;justify-content:center;border:1px solid #C8E6C9}.integrity-banner{background:#f0fdfa;border-top:1px solid #CCFBF1;border-bottom:1px solid #CCFBF1;padding:6px 14px;overflow:hidden;white-space:nowrap}.running-text{display:inline-block;font-size:.78rem;font-weight:600;color:#0f766e;animation:marquee 20s linear infinite}@keyframes marquee{0%{transform:translate(100%)}to{transform:translate(-100%)}}@keyframes faceLaserScan{0%{top:10%;opacity:.8}50%{top:85%;opacity:1}to{top:10%;opacity:.8}}.mobile-content{padding:14px 16px 95px;flex:1;display:flex;flex-direction:column;gap:14px;background-color:#f8fafc}.profile-card{background:#fff;border-radius:20px;padding:16px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 16px #00838f12;border:1px solid #EEF2F6}.avatar-wrapper{position:relative;width:80px;height:80px;border-radius:50%;border:3px solid #00ACC1;padding:3px;flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:center}.avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:#e2e8f0}.online-dot{position:absolute;bottom:4px;right:2px;width:14px;height:14px;background-color:#22c55e;border-radius:50%;border:2px solid #FFFFFF}.profile-info{display:flex;flex-direction:column;gap:3px}.profile-name{font-size:1.05rem;font-weight:800;color:#1e293b;text-transform:uppercase;letter-spacing:.2px}.profile-nip{font-size:.85rem;font-weight:600;color:#64748b;letter-spacing:.3px}.skpd-badge{display:inline-flex;align-items:center;gap:8px;background-color:#f0fdfa;border:1px solid #CCFBF1;padding:4px 10px;border-radius:8px;margin-top:4px}.skpd-icon-box{color:#00acc1;display:flex;align-items:center}.skpd-text-group{display:flex;flex-direction:column}.skpd-label{font-size:.65rem;font-weight:700;color:#64748b;text-transform:uppercase}.skpd-name{font-size:.78rem;font-weight:700;color:#00838f}.presence-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 16px #00838f14;border:1px solid #EEF2F6}.presence-header{background-color:#0097a7;color:#fff;padding:10px 16px;display:flex;justify-content:space-between;align-items:center}.presence-title{font-size:.95rem;font-weight:700}.presence-date-group{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:500}.header-action-icon-small{cursor:pointer;opacity:.9}.header-action-icon-small:hover{opacity:1}.presence-body{padding:18px 16px 16px;display:flex;flex-direction:column;gap:16px}.presence-columns{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;gap:12px}.presence-divider{background-color:#e2e8f0;height:55px;width:1px}.presence-item{display:flex;align-items:center;gap:12px}.presence-icon-box{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.presence-icon-box.masuk{background-color:#e8f8f5;color:#059669;border:1px solid #A7F3D0}.presence-icon-box.pulang{background-color:#fee2e2;color:#dc2626;border:1px solid #FECACA}.presence-details{display:flex;flex-direction:column}.presence-type-label{font-size:.95rem;font-weight:800;color:#1e293b}.presence-time{font-size:1.15rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;margin:1px 0}.presence-tag{font-size:.65rem;font-weight:700;color:#64748b;text-transform:uppercase}.btn-selengkapnya{width:100%;background-color:#00acc1;color:#fff;border:none;border-radius:12px;padding:12px;font-size:.95rem;font-weight:800;letter-spacing:.5px;cursor:pointer;box-shadow:0 4px 12px #00acc159;transition:all .2s}.btn-selengkapnya:hover{background-color:#0097a7}.map-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 4px 20px #0000000d;border:1px solid #E2E8F0;isolation:isolate;position:relative;z-index:1}.map-header{padding:14px 20px;display:flex;justify-content:space-between;align-items:center;background-color:#00838f;border-bottom:1px solid #00838F}.map-title{font-size:.95rem;font-weight:800;color:#fff}.btn-refresh-peta{background-color:#fff;color:#00838f;border:none;padding:6px 14px;border-radius:20px;font-size:.75rem;font-weight:700;display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 2px 6px #00000014;transition:all .15s cubic-bezier(.34,1.56,.64,1);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline:none;position:relative;overflow:hidden}.btn-refresh-peta:hover{background-color:#f0fdfa;box-shadow:0 4px 10px #00838f2e;transform:translateY(-1px);color:#00727d}.btn-refresh-peta:active{transform:scale(.92) translateY(1px);background-color:#e0f7fa;box-shadow:inset 0 2px 4px #0000001f;color:#006064}.btn-refresh-peta.is-refreshing{transform:scale(.95);background-color:#e0f7fa;color:#006064;box-shadow:inset 0 1px 3px #0000001a;pointer-events:none}.btn-refresh-peta .refresh-icon{display:inline-flex;transition:transform .25s ease}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin .7s cubic-bezier(.4,0,.2,1) infinite!important}.map-card-body-wrapper{position:relative;height:300px;width:100%;background-color:#e2e8f0;overflow:hidden;isolation:isolate;z-index:1}.leaflet-tile{visibility:inherit!important;max-width:none!important;max-height:none!important}.leaflet-container{background:#e2e8f0!important;font-family:inherit!important}.sipp-gps-active-pill{position:absolute;top:14px;left:14px;background:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:6px 14px;border-radius:20px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #00000026;z-index:10;border:1px solid #E2E8F0;pointer-events:auto}.gps-green-dot{width:10px;height:10px;background-color:#22c55e;border-radius:50%;box-shadow:0 0 8px #22c55e}.gps-pill-text{font-size:.82rem;font-weight:700;color:#1e293b}.sipp-map-controls-group{position:absolute;bottom:20px;right:14px;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:10;pointer-events:auto}.sipp-compass-radar-circle{width:48px;height:48px;border-radius:50%;background:#a7f3d0;border:4px solid #D1FAE5;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #00838f40;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background-color .15s;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.sipp-compass-radar-circle:hover{transform:scale(1.08)}.sipp-compass-radar-circle:active{transform:scale(.9);background:#6ee7b7}.sipp-zoom-pill{background:#fff;border-radius:12px;box-shadow:0 4px 14px #00000026;display:flex;flex-direction:column;overflow:hidden;border:1px solid #E2E8F0}.sipp-zoom-button{background:transparent;border:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:#00838f;cursor:pointer;transition:all .12s ease;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.sipp-zoom-button:hover{background-color:#f1f5f9}.sipp-zoom-button:active{background-color:#e2e8f0;transform:scale(.88)}.zoom-split-line{height:1px;background-color:#e2e8f0;width:100%}.user-teardrop-wrapper{position:relative;display:flex;flex-direction:column;align-items:center}.user-teardrop-bubble{width:36px;height:36px;border-radius:50%;border:3px solid #FACC15;background-color:#fff;box-shadow:0 4px 10px #0000004d;overflow:hidden;z-index:2;display:flex;align-items:center;justify-content:center}.user-teardrop-point{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #00838F;margin-top:-3px;z-index:1}.sipp-bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid #E2E8F0;display:flex;justify-content:space-around;align-items:center;padding:8px 16px 12px;box-shadow:0 -4px 20px #0000000f;z-index:50}.nav-item{background:transparent;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:#0097a7;cursor:pointer;padding:6px;transition:transform .15s}.nav-item.active{color:#00838f;font-weight:700}.fab-fingerprint{width:62px;height:62px;border-radius:50%;background:#00acc1;color:#fff;border:4px solid #FFFFFF;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:-30px;box-shadow:0 10px 25px #00acc166;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.fab-fingerprint:hover{transform:scale(1.08)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a00;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);z-index:900;display:flex;justify-content:flex-start;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,background-color .35s ease,backdrop-filter .35s ease,visibility .35s;-webkit-tap-highlight-color:transparent}.drawer-overlay.active{background-color:#0f172a8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:1;visibility:visible;pointer-events:auto}.drawer-content{width:82%;max-width:340px;height:100%;background-color:#f8fafc;display:flex;flex-direction:column;overflow-y:auto;box-shadow:6px 0 25px #00000040;transform:translate(-100%);transition:transform .35s cubic-bezier(.22,1,.36,1);will-change:transform}.drawer-overlay.active .drawer-content{transform:translate(0)}.drawer-header-card{background:linear-gradient(145deg,#0097a7,#00838f);padding:36px 20px 24px;border-radius:0 0 32px 32px;display:flex;flex-direction:column;align-items:center;position:relative;text-align:center;box-shadow:0 6px 20px #00838f40}.drawer-close-btn{position:absolute;top:14px;right:14px;background:#fff3;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background-color .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.drawer-close-btn:hover{background:#ffffff59;transform:scale(1.1)}.drawer-close-btn:active{transform:scale(.9);background:#ffffff73}.drawer-avatar-wrapper{width:84px;height:84px;border-radius:50%;border:4px solid #FFFFFF;background-color:#fff3;display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden}.drawer-avatar-img{width:100%;height:100%;object-fit:cover}.drawer-user-name{color:#fff;font-size:1.15rem;font-weight:800;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.drawer-skpd-pill{background:#ffffff2e;color:#fff;padding:4px 14px;border-radius:20px;font-size:.75rem;font-weight:600;border:1px solid rgba(255,255,255,.25)}.drawer-menu-list{padding:18px 16px;display:flex;flex-direction:column;gap:12px;flex:1}.drawer-menu-item{background:#fff;border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 8px #00000008;border:1px solid #F1F5F9;cursor:pointer;transition:all .2s}.drawer-menu-item:hover{background-color:#f0fdfa;transform:translate(3px);border-color:#ccfbf1}.drawer-icon-box{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.drawer-icon-box.bg-blue{background-color:#e0f2fe}.drawer-icon-box.bg-green{background-color:#dcfce7}.drawer-icon-box.bg-teal{background-color:#ccfbf1}.drawer-icon-box.bg-cyan{background-color:#e0f7fa}.drawer-icon-box.bg-purple{background-color:#f3e8ff}.drawer-icon-box.bg-orange{background-color:#ffedd5}.drawer-icon-box.bg-red{background-color:#fee2e2}.drawer-item-label{flex:1;font-size:.9rem;font-weight:700;color:#334155}.drawer-item-label.text-red{color:#dc2626}.drawer-chevron{color:#94a3b8}.drawer-chevron.text-red{color:#dc2626}.app-container{overflow-x:hidden;position:relative}.app-pages-slider{display:flex;width:200%;min-height:100vh;transform:translate(0);transition:transform .38s cubic-bezier(.22,1,.36,1);will-change:transform}.app-pages-slider.tab-home{transform:translate(0)}.app-pages-slider.tab-history{transform:translate(-50%)}.app-page-pane{width:50%;flex-shrink:0;display:flex;flex-direction:column;min-height:100vh;position:relative}.history-page-container{min-height:100vh;background-color:#f1f5f9;display:flex;flex-direction:column}.history-screen-header{background:linear-gradient(135deg,#0097a7,#00838f);padding:calc(16px + env(safe-area-inset-top,0px)) 20px 24px 20px;display:flex;justify-content:space-between;align-items:center;color:#fff}.history-back-btn{background:#fff3;border:none;border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background-color .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex-shrink:0}.history-back-btn:hover{background:#ffffff59;transform:scale(1.08)}.history-back-btn:active{transform:scale(.9);background:#ffffff73}.history-screen-title{font-size:1.5rem;font-weight:800;letter-spacing:-.3px}.history-screen-subtitle{font-size:.82rem;opacity:.9;margin-top:2px}.history-bell-btn{width:44px;height:44px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .15s;flex-shrink:0}.history-bell-btn:active{transform:scale(.92)}.bell-badge-count{position:absolute;top:6px;right:6px;background-color:#ef4444;color:#fff;font-size:.65rem;font-weight:800;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:2px solid #00838F}.history-screen-body{padding:16px 16px 95px;flex:1;display:flex;flex-direction:column;gap:16px}.history-tab-pill-box{display:flex}.tab-pill-absensi{background:#fff;border-radius:20px;padding:10px 24px;display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:800;color:#00838f;box-shadow:0 4px 12px #00838f14;width:100%;justify-content:center}.filter-presensi-card{background:#fff;border-radius:20px;padding:18px;box-shadow:0 4px 16px #0000000a;border:1px solid #E2E8F0;display:flex;flex-direction:column;gap:14px}.filter-card-header{display:flex;align-items:center;gap:12px}.filter-icon-box{width:44px;height:44px;border-radius:12px;background-color:#e0f7fa;display:flex;align-items:center;justify-content:center}.filter-card-title{font-size:1rem;font-weight:800;color:#1e293b}.filter-card-subtitle{font-size:.78rem;color:#64748b}.filter-date-input-wrapper{position:relative;background-color:#f8fafc;border:1px solid #E2E8F0;border-radius:14px;padding:4px 12px;display:flex;align-items:center}.date-input-icon{color:#64748b;margin-right:8px}.filter-date-input{border:none;background:transparent;width:100%;padding:8px 0;font-size:.95rem;font-weight:700;color:#1e293b;outline:none}.date-input-chevron{color:#64748b;pointer-events:none}.attendance-cards-list{display:flex;flex-direction:column;gap:14px}.sipp-log-card{background:linear-gradient(135deg,#00acc1,#00838f);color:#fff;border-radius:24px;padding:16px;display:flex;gap:14px;box-shadow:0 8px 24px #00838f40;position:relative;transition:transform .2s ease,box-shadow .2s ease}.sipp-log-card.card-harian-masuk{background:linear-gradient(135deg,#00acc1,#00838f);box-shadow:0 8px 24px #00838f40}.sipp-log-card.card-harian-pulang{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 8px 24px #ea580c47}.sipp-log-card.card-shift-masuk{background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 8px 24px #0284c740}.sipp-log-card.card-shift-pulang{background:linear-gradient(135deg,#e11d48,#9f1239);box-shadow:0 8px 24px #e11d4847}.sipp-log-card.card-izin{background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 8px 24px #6d28d940}.log-card-photo-box{width:82px;height:82px;border-radius:16px;overflow:hidden;border:2px solid rgba(255,255,255,.6);flex-shrink:0;background-color:#fff3}.log-photo-img{width:100%;height:100%;object-fit:cover}.log-card-details{flex:1;display:flex;flex-direction:column;gap:5px}.log-card-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.log-type-tag{background:#ffffff38;border:1px solid rgba(255,255,255,.35);padding:3px 10px;border-radius:12px;font-size:.72rem;font-weight:800;letter-spacing:.3px}.log-arrow-icon{color:#fff}.log-detail-row{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;opacity:.95}.log-terkirim-pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff38;border:1px solid rgba(255,255,255,.35);padding:3px 12px;border-radius:12px;font-size:.72rem;font-weight:800;width:fit-content;margin-top:4px}.empty-history-card{background:#fff;border-radius:20px;padding:32px 20px;text-align:center;color:#94a3b8;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:.88rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:1000}.modal-sheet{background:#fff;width:100%;max-width:480px;border-radius:28px 28px 0 0;padding:24px 20px 32px;display:flex;flex-direction:column;gap:20px;box-shadow:0 -10px 40px #00000026;max-height:90vh;overflow-y:auto}.modal-drag-indicator{width:42px;height:5px;background-color:#e2e8f0;border-radius:4px;margin:0 auto -6px}.modal-grid-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:10px}.menu-item-card{background:#f8fafc;border:1px solid #E2E8F0;background:#fff;border:1.5px solid #F1F5F9;border-radius:18px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;box-shadow:0 3px 12px #00000008;transition:all .22s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.menu-item-card:hover{background:#f0fdfa;border-color:#99f6e4;transform:translateY(-4px);box-shadow:0 10px 24px #00838f1f}.menu-item-card:active{transform:scale(.92)}.menu-item-card:hover .menu-icon-wrapper{transform:scale(1.1) rotate(-4deg)}.menu-icon-wrapper{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:transform .22s cubic-bezier(.16,1,.3,1)}.menu-label{font-size:.82rem;font-weight:700;color:#334155;text-align:center}.harian-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:10px 0}.choice-card-harian{background:#fff;border:2px solid #E2E8F0;border-radius:22px;padding:24px 16px;display:flex;flex-direction:column;align-items:center;gap:14px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 14px #0000000a;transition:all .25s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.choice-card-harian:hover{transform:translateY(-5px) scale(1.02)}.choice-card-harian:active{transform:scale(.93)}.choice-card-harian.masuk{border-color:#b2ebf2;background:linear-gradient(180deg,#fff,#f0fdfa)}.choice-card-harian.masuk:hover{border-color:#00838f;background:linear-gradient(180deg,#fff,#e0f7fa);box-shadow:0 14px 28px #00838f38}.choice-card-harian.masuk:active{background:#ccfbf1;box-shadow:0 2px 8px #00838f26}.choice-card-harian.masuk-d3{border-color:#a7f3d0;background:linear-gradient(180deg,#fff,#ecfdf5)}.choice-card-harian.masuk-d3:hover{border-color:#059669;background:linear-gradient(180deg,#fff,#d1fae5);box-shadow:0 14px 28px #05966938}.choice-card-harian.masuk-d3:active{background:#a7f3d0;box-shadow:0 2px 8px #05966926}.choice-card-harian.pulang{border-color:#ffcdd2;background:linear-gradient(180deg,#fff,#fff5f5)}.choice-card-harian.pulang:hover{border-color:#dc2626;background:linear-gradient(180deg,#fff,#fee2e2);box-shadow:0 14px 28px #dc262638}.choice-card-harian.pulang:active{background:#fecdd3;box-shadow:0 2px 8px #dc262626}.choice-card-icon-wrap{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.16,1,.3,1)}.choice-card-harian:hover .choice-card-icon-wrap{transform:scale(1.12) rotate(-5deg)}.choice-card-harian:active .choice-card-icon-wrap{transform:scale(.9)}.choice-label-masuk{font-size:1.1rem;font-weight:800;color:#00838f}.choice-label-pulang{font-size:1.1rem;font-weight:800;color:#dc2626}.choice-card-shift{background:#fff;border-radius:18px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;border:2px solid transparent;box-shadow:0 3px 10px #0000000a;transition:all .25s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.choice-card-shift:hover{transform:translateY(-3px) scale(1.015)}.choice-card-shift:active{transform:scale(.95)}.choice-card-shift.pagi{border-color:#ccfbf1;background:linear-gradient(90deg,#fff,#f0fdfa)}.choice-card-shift.pagi:hover{border-color:#00838f;background:linear-gradient(90deg,#fff,#e0f7fa);box-shadow:0 8px 24px #0d948833}.choice-card-shift.sore{border-color:#fef3c7;background:linear-gradient(90deg,#fff,#fffbeb)}.choice-card-shift.sore:hover{border-color:#d97706;background:linear-gradient(90deg,#fff,#fef3c7);box-shadow:0 8px 24px #d9770633}.choice-card-shift.malam{border-color:#f3e8ff;background:linear-gradient(90deg,#fff,#faf5ff)}.choice-card-shift.malam:hover{border-color:#7c3aed;background:linear-gradient(90deg,#fff,#f3e8ff);box-shadow:0 8px 24px #7c3aed33}.choice-card-shift:hover .shift-icon-wrap{transform:scale(1.12) rotate(-5deg)}.choice-card-shift:active .shift-icon-wrap{transform:scale(.9)}.shift-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.16,1,.3,1)}.modal-back-btn{background:#f1f5f9;border:none;border-radius:14px;padding:12px;color:#475569;font-weight:700;font-size:.88rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.modal-back-btn:hover{background:#e2e8f0;color:#1e293b;transform:translateY(-1px)}.modal-back-btn:active{transform:scale(.96)}.camera-view-container{position:relative;width:100%;height:340px;background:#000;border-radius:20px;overflow:hidden}.camera-video-feed{width:100%;height:100%;object-fit:cover}.face-oval-guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:190px;height:250px;border:3px dashed rgba(255,255,255,.85);border-radius:50%;pointer-events:none;box-shadow:0 0 0 9999px #00000059}.camera-controls-bar{display:flex;justify-content:space-around;align-items:center;padding:14px 0 6px}.btn-capture-snap{width:70px;height:70px;border-radius:50%;background:#fff;border:5px solid #00ACC1;display:flex;align-items:center;justify-content:center;cursor:pointer}.monitoring-modal-sheet{padding:0!important;border-radius:28px 28px 0 0!important;max-height:88vh;display:flex;flex-direction:column;background-color:#f8fafc!important}.monitoring-header-card{background:linear-gradient(135deg,#0097a7,#00838f);padding:24px 20px 20px;position:relative;color:#fff;border-radius:28px 28px 24px 24px;box-shadow:0 4px 18px #00838f38}.monitoring-close-btn{position:absolute;top:16px;right:16px;background:#fff3;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background-color .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.monitoring-close-btn:hover{background:#ffffff59;transform:scale(1.1)}.monitoring-close-btn:active{transform:scale(.9)}.monitoring-badge-top{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#00838f;font-size:.7rem;font-weight:800;padding:4px 10px;border-radius:20px;margin-bottom:8px;box-shadow:0 2px 6px #00000014}.monitoring-title{font-size:1.35rem;font-weight:800;letter-spacing:-.3px;margin-bottom:2px}.monitoring-user-name{font-size:.95rem;font-weight:700;opacity:.95;text-transform:uppercase}.monitoring-user-meta{display:flex;align-items:center;gap:8px;font-size:.75rem;opacity:.85;margin-top:2px}.monitoring-tabs-bar{display:flex;background:#fff;margin:12px 16px 0;padding:4px;border-radius:14px;border:1px solid #E2E8F0;gap:4px}.monitoring-tab-item{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:none;border-radius:10px;font-size:.78rem;font-weight:700;background:transparent;color:#64748b;cursor:pointer;transition:all .18s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.monitoring-tab-item.active{background:#00838f;color:#fff;box-shadow:0 2px 8px #00838f47}.monitoring-tab-content{padding:14px 16px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.discipline-hero-card{background:#fff;border-radius:18px;padding:16px;border:1px solid #E2E8F0;box-shadow:0 2px 10px #0000000a;display:flex;flex-direction:column;gap:14px}.discipline-score-box{display:flex;align-items:center;gap:14px}.score-circle{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#e0f7fa,#b2ebf2);border:3px solid #00ACC1;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.score-num{font-size:1.15rem;font-weight:800;color:#00838f;line-height:1}.score-label{font-size:.6rem;font-weight:700;color:#006064;text-transform:uppercase;margin-top:2px}.score-info{display:flex;flex-direction:column;gap:3px}.score-tag-badge{display:inline-flex;align-items:center;gap:4px;color:#059669;font-size:.72rem;font-weight:800}.score-heading{font-size:.95rem;font-weight:800;color:#1e293b}.score-desc{font-size:.75rem;color:#64748b;line-height:1.3}.weekly-target-progress-box{background:#f8fafc;border-radius:12px;padding:12px;border:1px solid #EEF2F6;display:flex;flex-direction:column;gap:6px}.progress-label-row{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:700}.progress-title{color:#334155}.progress-val{color:#00838f;font-weight:800}.progress-track-bg{width:100%;height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.progress-fill-bar{height:100%;background:linear-gradient(90deg,#00acc1,#22c55e);border-radius:10px;transition:width .4s ease}.progress-caption-row{display:flex;justify-content:space-between;font-size:.68rem;color:#64748b;font-weight:600}.monitoring-section-title{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:800;color:#1e293b;margin-top:4px}.monitoring-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-card{background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;gap:10px;border:1px solid #EEF2F6;box-shadow:0 2px 6px #00000008}.stat-card.green .stat-icon-wrap{background:#e8f5e9;color:#2e7d32}.stat-card.orange .stat-icon-wrap{background:#fff3e0;color:#e65100}.stat-card.amber .stat-icon-wrap{background:#fef3c7;color:#d97706}.stat-card.blue .stat-icon-wrap{background:#e0f2fe;color:#0284c7}.stat-icon-wrap{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.05rem;font-weight:800;color:#0f172a;line-height:1.1}.stat-title{font-size:.68rem;font-weight:700;color:#64748b;margin-top:2px}.schedule-rules-card{background:#fff;border-radius:16px;padding:14px;border:1px solid #E2E8F0}.rules-card-title{font-size:.82rem;font-weight:800;color:#1e293b;margin-bottom:8px}.rules-list{display:flex;flex-direction:column;gap:6px}.rule-item{display:flex;justify-content:space-between;align-items:center;font-size:.74rem;padding:4px 0;border-bottom:1px dashed #F1F5F9}.rule-item:last-child{border-bottom:none}.rule-day{font-weight:700;color:#334155}.rule-time{font-weight:600;color:#00838f}.weekly-intro-note{background:#e0f7fa;border:1px solid #B2EBF2;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:.75rem;color:#006064}.weekly-cards-stack{display:flex;flex-direction:column;gap:12px}.weekly-summary-item-card{background:#fff;border-radius:16px;padding:14px;border:1px solid #E2E8F0;box-shadow:0 2px 8px #00000008;display:flex;flex-direction:column;gap:10px}.weekly-item-header{display:flex;justify-content:space-between;align-items:flex-start}.week-name-label{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase}.week-hours-headline{font-size:1.1rem;font-weight:800;color:#0f172a;margin-top:1px}.target-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:800}.target-status-badge.met{background:#dcfce7;color:#16a34a}.target-status-badge.unmet{background:#fee2e2;color:#dc2626}.weekly-progress-mini-track{width:100%;height:6px;background:#f1f5f9;border-radius:6px;overflow:hidden}.weekly-progress-mini-fill.met{background:#22c55e}.weekly-progress-mini-fill.unmet{background:#f59e0b}.weekly-daily-chips-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.daily-chip-pill{flex:1;min-width:44px;padding:4px 6px;border-radius:8px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #E2E8F0}.daily-chip-pill.present{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.daily-chip-pill.holiday{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}.daily-chip-pill.absent{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.chip-day-name{font-size:.62rem;font-weight:800}.chip-status-text{font-size:.65rem;font-weight:700}.monitoring-logs-list{display:flex;flex-direction:column;gap:10px}.monitoring-log-row-card{background:#fff;border-radius:14px;padding:12px;border:1px solid #E2E8F0;display:grid;grid-template-columns:70px 1fr 65px;align-items:center;gap:10px}.log-row-date-badge{display:flex;flex-direction:column;background:#f1f5f9;padding:6px 8px;border-radius:10px;text-align:center}.log-row-day{font-size:.65rem;font-weight:800;color:#00838f;text-transform:uppercase}.log-row-date-num{font-size:.65rem;font-weight:700;color:#64748b}.log-row-times-group{display:flex;align-items:center;gap:8px}.log-time-col{display:flex;flex-direction:column;gap:1px}.log-time-label{font-size:.6rem;font-weight:700;color:#94a3b8;text-transform:uppercase}.log-time-val{font-size:.78rem;font-weight:800;color:#0f172a}.log-diff-pill{font-size:.58rem;font-weight:700;padding:1px 4px;border-radius:4px;display:inline-block}.log-diff-pill.early{background:#dcfce7;color:#16a34a}.log-diff-pill.late{background:#fee2e2;color:#dc2626}.log-row-divider{width:1px;height:24px;background:#e2e8f0}.log-row-status-col{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.log-status-pill{font-size:.65rem;font-weight:800;padding:2px 6px;border-radius:6px;text-transform:uppercase}.log-status-pill.green{background:#dcfce7;color:#15803d}.log-status-pill.gray{background:#f1f5f9;color:#64748b}.log-duration-sub{font-size:.65rem;font-weight:700;color:#00838f}.empty-logs-placeholder{text-align:center;padding:30px 16px;color:#94a3b8;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.85rem}.ios-header{display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px 16px;background:#ffffffe0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:sticky;top:0;z-index:45;border-bottom:1px solid rgba(226,232,240,.85)}.ios-header-left{display:flex;align-items:center;gap:12px}.ios-header-btn{background:#f8fafc;border:1px solid #E2E8F0;border-radius:12px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:#334155;cursor:pointer;position:relative;transition:all .2s cubic-bezier(.16,1,.3,1)}.ios-header-btn:active{transform:scale(.92);background:#f1f5f9}.ios-bell-badge{position:absolute;top:6px;right:6px;width:8px;height:8px;background-color:#ef4444;border-radius:50%;border:2px solid #FFFFFF}.ios-header-brand{display:flex;align-items:center;gap:6px}.ios-brand-title{font-size:1.35rem;font-weight:800;color:#00838f;letter-spacing:-.5px}.ios-brand-badge{background:#e0f2fe;color:#0369a1;font-size:.7rem;font-weight:800;padding:2px 7px;border-radius:8px}.ios-header-right{display:flex;align-items:center;gap:8px}.ios-system-status-pill{display:flex;align-items:center;gap:6px;background:#ecfdf5;border:1px solid #A7F3D0;padding:4px 10px;border-radius:12px}.ios-pulse-dot{width:7px;height:7px;background-color:#10b981;border-radius:50%;box-shadow:0 0 6px #10b981cc;animation:iosDotPulse 2s infinite}@keyframes iosDotPulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.3);opacity:1}to{transform:scale(.95);opacity:.8}}.ios-status-text{font-size:.72rem;font-weight:700;color:#047857}.ios-admin-btn{display:flex;align-items:center;gap:5px;background:linear-gradient(135deg,#00838f,#006064);color:#fff;border:none;padding:6px 12px;border-radius:10px;font-size:.75rem;font-weight:700;cursor:pointer;box-shadow:0 2px 6px #00838f4d;transition:all .15s ease}.ios-admin-btn:active{transform:scale(.95)}.ios-styled-content{padding:16px 16px 110px;display:flex;flex-direction:column;gap:16px;background-color:#f8fafc}.ios-hero-widget-card{background:#fff;border-radius:24px;padding:18px 18px 16px;box-shadow:0 10px 30px -5px #00838f14,0 2px 6px #00000005;border:1px solid #EEF2F6;display:flex;flex-direction:column;gap:14px}.ios-hero-top-row{display:flex;align-items:center;gap:14px}.ios-hero-avatar-wrapper{position:relative;width:66px;height:66px;border-radius:20px;padding:2.5px;background:linear-gradient(135deg,#00acc1,#3b82f6);flex-shrink:0;cursor:pointer;transition:transform .2s}.ios-hero-avatar-wrapper:active{transform:scale(.95)}.ios-hero-avatar-img{width:100%;height:100%;border-radius:17px;object-fit:cover;background:#fff}.ios-hero-avatar-placeholder{width:100%;height:100%;border-radius:17px;background:#f0fdfa;display:flex;align-items:center;justify-content:center}.ios-hero-online-dot{position:absolute;bottom:-2px;right:-2px;width:15px;height:15px;background-color:#10b981;border-radius:50%;border:2.5px solid #FFFFFF;box-shadow:0 2px 5px #0000001a}.ios-hero-user-details{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ios-greeting-text{font-size:.76rem;font-weight:700;color:#0d9488}.ios-user-name{font-size:1.15rem;font-weight:800;color:#0f172a;margin:0;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ios-nip-skpd-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px}.ios-user-nip{font-size:.72rem;font-weight:600;color:#64748b}.ios-skpd-tag{display:inline-flex;align-items:center;gap:4px;background:#f1f5f9;color:#00838f;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:6px}.ios-clock-bar{background:linear-gradient(135deg,#f0fdfa,#e0f2fe);border-radius:18px;padding:12px 16px;border:1px solid #CCFBF1;display:flex;justify-content:space-between;align-items:center}.ios-clock-time-display{display:flex;align-items:baseline;gap:6px}.ios-digital-time{font-size:1.55rem;font-weight:800;font-family:JetBrains Mono,Plus Jakarta Sans,monospace;color:#0f172a;letter-spacing:-.5px;line-height:1}.ios-clock-zone{font-size:.75rem;font-weight:800;color:#00838f}.ios-clock-date-group{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ios-date-badge{display:flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;color:#334155}.ios-status-badge{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:8px;text-transform:uppercase}.status-badge-emerald{background:#dcfce7;color:#15803d;border:1px solid #BBF7D0}.status-badge-amber{background:#fef3c7;color:#b45309;border:1px solid #FDE68A}.status-badge-blue{background:#dbeafe;color:#1e40af;border:1px solid #BFDBFE}.status-badge-slate{background:#f1f5f9;color:#64748b;border:1px solid #E2E8F0}.ios-status-pulse-dot{width:6px;height:6px;border-radius:50%}.ios-presence-section{display:flex;flex-direction:column;gap:10px}.ios-section-header{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.ios-section-title-wrap{display:flex;align-items:center;gap:6px}.ios-section-title{font-size:.95rem;font-weight:800;color:#1e293b;margin:0;letter-spacing:-.2px}.ios-history-link-btn{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid #E2E8F0;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:700;color:#00838f;cursor:pointer;transition:all .15s ease}.ios-history-link-btn:active{transform:scale(.95);background:#f8fafc}.ios-presence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ios-presence-card{background:#fff;border-radius:22px;padding:14px 14px 16px;border:1.5px solid #F1F5F9;box-shadow:0 6px 18px #00000008;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.ios-presence-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00838f17;border-color:#ccfbf1}.ios-presence-card:active{transform:scale(.97)}.ios-presence-card.has-checked{background:linear-gradient(180deg,#fff,#f8fafc)}.ios-presence-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.ios-card-icon-circle{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ios-card-icon-circle.in{background:#ecfdf5;color:#059669}.ios-card-icon-circle.out{background:#fef2f2;color:#dc2626}.ios-card-tag{font-size:.62rem;font-weight:800;padding:3px 6px;border-radius:6px;text-transform:uppercase;white-space:nowrap}.tag-ontime{background:#dcfce7;color:#15803d}.tag-late{background:#fee2e2;color:#dc2626}.tag-checkout{background:#e0f2fe;color:#0369a1}.tag-empty{background:#f1f5f9;color:#94a3b8}.ios-presence-card-body{display:flex;flex-direction:column;gap:2px}.ios-card-label{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase}.ios-card-time-large{font-size:1.4rem;font-weight:800;font-family:JetBrains Mono,Plus Jakarta Sans,monospace;color:#0f172a;letter-spacing:-.5px}.ios-card-subtext{font-size:.68rem;font-weight:600;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ios-quick-shortcuts-widget{background:#fff;border-radius:22px;padding:16px 16px 18px;border:1px solid #EEF2F6;box-shadow:0 4px 20px #0000000a;display:flex;flex-direction:column;gap:14px}.ios-quick-shortcuts-header{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:800;color:#1e293b;letter-spacing:.2px}.ios-quick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.ios-quick-btn{background:transparent;border:none;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:4px 2px;border-radius:16px;transition:all .2s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ios-quick-btn:hover{transform:translateY(-3px)}.ios-quick-btn:active{transform:scale(.9)}.ios-quick-icon-wrap{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:#fff;transition:all .2s ease;border:1px solid rgba(255,255,255,.4)}.ios-quick-icon-wrap:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#ffffff47,#fff0);border-top-left-radius:16px;border-top-right-radius:16px;pointer-events:none}.ios-quick-icon-wrap.grad-harian{background:linear-gradient(135deg,#38bdf8,#0284c7);box-shadow:0 6px 16px #0284c761,inset 0 1px 1px #fff9}.ios-quick-icon-wrap.grad-shift{background:linear-gradient(135deg,#2dd4bf,#0d9488);box-shadow:0 6px 16px #0d948861,inset 0 1px 1px #fff9}.ios-quick-icon-wrap.grad-d3{background:linear-gradient(135deg,#34d399,#059669);box-shadow:0 6px 16px #05966961,inset 0 1px 1px #fff9}.ios-quick-icon-wrap.grad-dinas{background:linear-gradient(135deg,#fbbf24,#d97706);box-shadow:0 6px 16px #d9770661,inset 0 1px 1px #fff9}.ios-quick-icon-wrap.grad-izin{background:linear-gradient(135deg,#c084fc,#7c3aed);box-shadow:0 6px 16px #7c3aed61,inset 0 1px 1px #fff9}.ios-quick-text{font-size:.72rem;font-weight:800;color:#334155;text-align:center;white-space:nowrap;letter-spacing:-.1px}.ios-map-widget-card{background:#fff;border-radius:24px;padding:16px;border:1px solid #EEF2F6;box-shadow:0 6px 20px #00838f0f;display:flex;flex-direction:column;gap:12px}.ios-map-header{display:flex;justify-content:space-between;align-items:center}.ios-map-title-group{display:flex;align-items:center;gap:10px}.ios-map-icon-box{width:34px;height:34px;border-radius:10px;background:#f0fdfa;color:#00838f;display:flex;align-items:center;justify-content:center}.ios-map-title{font-size:.9rem;font-weight:800;color:#0f172a;margin:0}.ios-map-subtitle{font-size:.72rem;font-weight:600;color:#64748b}.ios-btn-refresh-peta{display:flex;align-items:center;gap:6px;background:#f0fdfa;border:1px solid #CCFBF1;color:#00838f;font-size:.75rem;font-weight:700;padding:6px 12px;border-radius:12px;cursor:pointer;transition:all .2s}.ios-btn-refresh-peta:active{transform:scale(.95)}.ios-btn-refresh-peta.is-refreshing{background:#e0f2fe;color:#0284c7;border-color:#bae6fd}.ios-map-body-wrapper{height:220px;border-radius:18px;overflow:hidden;position:relative;border:1px solid #E2E8F0}.ios-gps-status-pill{position:absolute;top:12px;left:12px;z-index:10;background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:6px 12px;border-radius:20px;font-size:.72rem;font-weight:700;color:#1e293b;box-shadow:0 4px 12px #00000014;display:flex;align-items:center;gap:6px;border:1px solid rgba(226,232,240,.8)}.ios-gps-indicator-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ios-gps-pill-text{white-space:nowrap}.ios-bottom-nav-container{position:fixed;bottom:14px;left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:440px;z-index:100;pointer-events:none}.ios-floating-dock{pointer-events:auto;background:#ffffffeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:32px;border:1px solid rgba(255,255,255,.9);box-shadow:0 14px 38px #0f172a1f,0 2px 6px #0000000a;display:flex;justify-content:space-around;align-items:center;padding:6px 16px;height:64px}.ios-dock-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:6px 14px;border-radius:16px;transition:all .2s cubic-bezier(.16,1,.3,1)}.ios-dock-item:active{transform:scale(.92)}.ios-dock-item.active{color:#00838f}.ios-dock-label{font-size:.7rem;font-weight:700;letter-spacing:-.2px}.ios-fab-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.ios-fab-fingerprint{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#00acc1,#00838f);color:#fff;border:4px solid #FFFFFF;display:flex;align-items:center;justify-content:center;margin-top:-34px;box-shadow:0 10px 25px #00838f73;cursor:pointer;position:relative;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.ios-fab-fingerprint:hover{transform:scale(1.08);box-shadow:0 14px 30px #00838f99}.ios-fab-fingerprint:active{transform:scale(.94)}.ios-fab-pulse-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(0,172,193,.45);animation:iosFabPulse 2.4s infinite;pointer-events:none}@keyframes iosFabPulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.15);opacity:.2}to{transform:scale(.95);opacity:.8}}.ios-fab-inner{display:flex;align-items:center;justify-content:center}.ios-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a00;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);z-index:900;display:flex;justify-content:flex-start;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,background-color .35s ease,backdrop-filter .35s ease,visibility .35s;-webkit-tap-highlight-color:transparent}.ios-drawer-overlay.active{background-color:#0f172a85;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:1;visibility:visible;pointer-events:auto}.ios-drawer-content{width:84%;max-width:330px;height:100%;background-color:#f8fafc;display:flex;flex-direction:column;overflow-y:auto;border-radius:0 28px 28px 0;box-shadow:8px 0 32px #0f172a38;transform:translate(-100%);transition:transform .35s cubic-bezier(.22,1,.36,1);will-change:transform}.ios-drawer-overlay.active .ios-drawer-content{transform:translate(0)}.ios-drawer-header{background:linear-gradient(135deg,#00838f,#006064);padding:calc(18px + env(safe-area-inset-top,0px)) 18px 16px 18px;border-radius:0 0 26px 26px;color:#fff;position:relative;box-shadow:0 6px 20px #00838f40;display:flex;flex-direction:column;gap:14px}.ios-drawer-close-btn{position:absolute;top:16px;right:16px;background:#fff3;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .15s ease}.ios-drawer-close-btn:hover{background:#ffffff59;transform:scale(1.08)}.ios-drawer-close-btn:active{transform:scale(.92)}.ios-drawer-profile-box{display:flex;align-items:center;gap:14px}.ios-drawer-avatar-wrap{width:62px;height:62px;border-radius:20px;padding:2px;background:#fff6;flex-shrink:0;position:relative;cursor:pointer;transition:transform .2s}.ios-drawer-avatar-wrap:active{transform:scale(.95)}.ios-drawer-avatar-img{width:100%;height:100%;border-radius:18px;object-fit:cover;background:#fff}.ios-drawer-avatar-fallback{width:100%;height:100%;border-radius:18px;background:#e0f7fa;display:flex;align-items:center;justify-content:center}.ios-drawer-online-dot{position:absolute;bottom:-2px;right:-2px;width:14px;height:14px;background-color:#10b981;border-radius:50%;border:2.5px solid #00838F}.ios-drawer-user-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ios-drawer-name{font-size:1.05rem;font-weight:800;color:#fff;margin:0;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ios-drawer-nip{font-size:.74rem;font-weight:600;color:#ffffffd9}.ios-drawer-skpd-tag{display:inline-flex;align-items:center;gap:5px;background:#ffffff2e;color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:6px;margin-top:2px;width:fit-content}.ios-drawer-status-strip{background:#0000002e;border-radius:12px;padding:6px 12px;display:flex;justify-content:space-between;align-items:center}.ios-drawer-status-item{display:flex;align-items:center;gap:6px}.ios-status-indicator-dot{width:6px;height:6px;background-color:#10b981;border-radius:50%}.ios-drawer-status-label{font-size:.7rem;font-weight:700;color:#ffffffe6}.ios-drawer-version-badge{font-size:.68rem;font-weight:800;background:#ffffff40;color:#fff;padding:2px 6px;border-radius:6px}.ios-drawer-body{padding:16px 14px 28px;display:flex;flex-direction:column;gap:14px;flex:1}.ios-drawer-group-title{font-size:.68rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;padding-left:6px;margin-bottom:-6px}.ios-drawer-group-card{background:#fff;border-radius:18px;border:1px solid #EEF2F6;box-shadow:0 4px 12px #00000005;overflow:hidden}.ios-drawer-row{display:flex;align-items:center;gap:12px;padding:11px 14px;cursor:pointer;transition:background-color .15s ease}.ios-drawer-row:active{background-color:#f1f5f9}.ios-row-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ios-row-icon.bg-blue{background-color:#e0f2fe;color:#0284c7}.ios-row-icon.bg-teal{background-color:#ccfbf1;color:#0d9488}.ios-row-icon.bg-green{background-color:#dcfce7;color:#16a34a}.ios-row-icon.bg-cyan{background-color:#e0f7fa;color:#0891b2}.ios-row-icon.bg-purple{background-color:#f3e8ff;color:#9333ea}.ios-row-icon.bg-orange{background-color:#ffedd5;color:#ea580c}.ios-row-icon.bg-red{background-color:#fee2e2;color:#dc2626}.ios-row-content{display:flex;flex-direction:column;flex:1;min-width:0}.ios-row-title{font-size:.85rem;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ios-row-title.text-red{color:#dc2626}.ios-row-sub{font-size:.68rem;font-weight:500;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ios-row-chevron{color:#cbd5e1;flex-shrink:0}.ios-row-chevron.text-red{color:#dc2626}.ios-drawer-row-divider{height:1px;background:#f1f5f9;margin-left:62px}.ios-drawer-footer{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.68rem;font-weight:600;color:#94a3b8;margin-top:8px;text-align:center}.admin-layout-container{min-height:100vh;display:flex;background-color:#f8fafc;width:100%}.admin-sidebar{width:275px;min-width:275px;background:linear-gradient(180deg,#00363a,#004d40 60%,#006064);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:1200;box-shadow:4px 0 24px #004d4033;border-right:1px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none}.admin-sidebar-header{padding:24px 20px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-sidebar-brand{display:flex;align-items:center;gap:12px}.admin-sidebar-logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#00acc1,#26a69a);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #00acc159;flex-shrink:0}.admin-sidebar-title{font-size:1.15rem;font-weight:800;color:#fff;letter-spacing:-.3px;margin:0;line-height:1.2}.admin-sidebar-subtitle{font-size:.72rem;color:#80deea;font-weight:600;margin:2px 0 0;letter-spacing:.2px}.admin-sidebar-skpd-badge{margin-top:10px;display:inline-flex;align-items:center;gap:6px;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:700;color:#e0f7fa;letter-spacing:.3px}.admin-sidebar-category{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-category-label{font-size:.68rem;font-weight:800;color:#80cbc4;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;display:block}.admin-category-toggle{display:flex;flex-direction:column;gap:6px}.admin-category-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid transparent;background:#ffffff0f;color:#b2dfdb;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .2s ease;text-align:left}.admin-category-btn:hover{background:#ffffff1f;color:#fff}.admin-category-btn.active-harian{background:#00acc140;border-color:#26c6da;color:#fff;box-shadow:0 2px 8px #00acc140}.admin-category-btn.active-shift{background:#a855f740;border-color:#c084fc;color:#fff;box-shadow:0 2px 8px #a855f740}.admin-sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.admin-nav-group-title{font-size:.65rem;font-weight:800;color:#80cbc4;text-transform:uppercase;letter-spacing:.8px;padding:0 10px 4px}.admin-nav-items{display:flex;flex-direction:column;gap:3px}.admin-nav-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;border:none;background:transparent;color:#b2dfdb;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .18s ease;width:100%;text-align:left}.admin-nav-item-left{display:flex;align-items:center;gap:10px}.admin-nav-item:hover{background:#ffffff1a;color:#fff;transform:translate(3px)}.admin-nav-item.active{background:linear-gradient(135deg,#00838f,#00695c);color:#fff;font-weight:700;box-shadow:0 4px 12px #00838f59;border:1px solid rgba(255,255,255,.2)}.admin-nav-badge{font-size:.72rem;font-weight:800;padding:2px 7px;border-radius:12px;background:#ffffff2e;color:#fff}.admin-nav-item.active .admin-nav-badge{background:#fff;color:#00695c}.admin-sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1);background:#0000001f;display:flex;flex-direction:column;gap:10px}.admin-sidebar-profile-card{display:flex;align-items:center;justify-content:space-between;background:#ffffff14;padding:8px 12px;border-radius:10px;cursor:pointer;transition:all .2s ease;border:1px solid rgba(255,255,255,.12)}.admin-sidebar-profile-card:hover{background:#ffffff29;border-color:#ffffff40}.admin-sidebar-user-avatar{width:32px;height:32px;border-radius:8px;background:#fff;color:#00695c;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center}.admin-sidebar-user-name{font-size:.8rem;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.admin-sidebar-user-role{font-size:.68rem;color:#80deea;display:flex;align-items:center;gap:3px}.admin-sidebar-actions{display:flex;gap:6px}.btn-sidebar-switch{flex:1;padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#e0f7fa;font-size:.75rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .2s ease}.btn-sidebar-switch:hover{background:#ffffff2e;color:#fff}.btn-sidebar-logout{padding:7px 12px;border-radius:8px;border:none;background:#ef4444;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .2s ease}.btn-sidebar-logout:hover{background:#dc2626}.admin-main-viewport{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto}.admin-viewport-header{background:#fff;padding:16px 28px;border-bottom:1px solid #E2E8F0;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:1100;box-shadow:0 2px 10px #0000000d}.admin-page-heading h2{font-size:1.25rem;font-weight:800;color:#0f172a;margin:0;display:flex;align-items:center;gap:8px}.admin-page-heading p{font-size:.8rem;color:#64748b;margin:2px 0 0}.admin-viewport-content{padding:24px 28px 40px;display:flex;flex-direction:column;gap:22px;width:100%;box-sizing:border-box}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.metric-card{background:#fff;border-radius:16px;padding:18px 20px;border:1px solid #E2E8F0;box-shadow:0 2px 6px #0000000a;display:flex;align-items:center;justify-content:space-between;transition:transform .2s ease,box-shadow .2s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000000f}.metric-label{font-size:.78rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.metric-value{font-size:1.75rem;font-weight:900;color:#0f172a;margin-top:4px;line-height:1}.metric-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;background:#fff;padding:16px 20px;border-radius:14px;border:1px solid #E2E8F0;box-shadow:0 2px 6px #00000005}.search-input-wrapper{position:relative;min-width:260px}.search-input-wrapper input{width:100%;padding:9px 14px 9px 36px;border:1px solid #CBD5E1;border-radius:8px;font-size:.88rem;outline:none;transition:border-color .2s}.search-input-wrapper input:focus{border-color:#00838f;box-shadow:0 0 0 3px #00838f26}.search-icon-inside{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.btn-excel-export{background:linear-gradient(135deg,#107c41,#1e8e3e);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-size:.9rem;font-weight:700;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 12px #107c4140;transition:all .2s}.btn-excel-export:hover{filter:brightness(1.08);transform:translateY(-1px)}.table-card{background:#fff;border-radius:14px;border:1px solid #E2E8F0;overflow:hidden;box-shadow:0 2px 6px #00000008}.table-responsive{overflow-x:auto;width:100%}.admin-data-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}.admin-data-table th{background-color:#f8fafc;color:#475569;font-weight:700;padding:12px 14px;border-bottom:2px solid #E2E8F0;white-space:nowrap}.admin-data-table td{padding:12px 14px;border-bottom:1px solid #F1F5F9;color:#334155;vertical-align:middle}.admin-data-table tr:hover{background-color:#f8fafc}.badge-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:.75rem;font-weight:700}.badge-status.ontime{background-color:#e8f8f5;color:#059669}.badge-status.late{background-color:#fef3c7;color:#d97706}.badge-status.early{background-color:#fee2e2;color:#dc2626}.badge-status.target-met{background-color:#e8f5e9;color:#2e7d32;border:1px solid #C8E6C9}.badge-status.target-missed{background-color:#fff3e0;color:#e65100;border:1px solid #FFE0B2}.drive-link-btn{display:inline-flex;align-items:center;gap:4px;color:#00838f;text-decoration:none;font-weight:600}.drive-link-btn:hover{text-decoration:underline}
