@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap";.esa-status-banner[data-v-0ef4193d]{position:fixed;top:0;left:0;right:0;z-index:10000;padding:0 16px;height:75px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.01em;box-shadow:0 2px 16px #00000040;transition:background .3s ease}.banner--offline[data-v-0ef4193d]{background:linear-gradient(90deg,#d97706,#b45309);color:#fff}.banner--syncing[data-v-0ef4193d]{background:linear-gradient(90deg,#2563eb,#1d4ed8);color:#fff}.banner-inner[data-v-0ef4193d]{display:flex;align-items:center;gap:9px}.banner-icon[data-v-0ef4193d]{font-size:15px;line-height:1}.banner-text[data-v-0ef4193d]{font-size:13px}.banner-spinner[data-v-0ef4193d]{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-0ef4193d .75s linear infinite;flex-shrink:0}.banner-sync-btn[data-v-0ef4193d]{margin-left:8px;padding:3px 10px;font-size:12px;font-weight:700;border:1.5px solid rgba(255,255,255,.6);border-radius:6px;background:transparent;color:#fff;cursor:pointer;transition:background .2s;font-family:inherit}.banner-sync-btn[data-v-0ef4193d]:hover{background:#ffffff26}@keyframes spin-0ef4193d{to{transform:rotate(360deg)}}.banner-slide-enter-active[data-v-0ef4193d],.banner-slide-leave-active[data-v-0ef4193d]{transition:all .35s cubic-bezier(.4,0,.2,1)}.banner-slide-enter-from[data-v-0ef4193d],.banner-slide-leave-to[data-v-0ef4193d]{opacity:0;transform:translateY(-100%)}.force-logout-overlay[data-v-0ef4193d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.force-logout-modal[data-v-0ef4193d]{background:#1e293b;border:1px solid #ef4444;border-radius:20px;padding:40px 36px;max-width:420px;width:100%;text-align:center;box-shadow:0 25px 60px #ef44444d;animation:slideUp-0ef4193d .4s ease}.flm-icon[data-v-0ef4193d]{font-size:52px;margin-bottom:16px;color:#ef4444;font-weight:700}.force-logout-modal h2[data-v-0ef4193d]{color:#ef4444;font-size:22px;font-weight:800;margin:0 0 12px}.force-logout-modal p[data-v-0ef4193d]{color:#94a3b8;font-size:15px;line-height:1.6;margin:0 0 28px}.flm-btn[data-v-0ef4193d]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:12px;padding:14px 32px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .2s,box-shadow .2s}.flm-btn[data-v-0ef4193d]:hover{transform:translateY(-2px);box-shadow:0 8px 20px #ef444466}@keyframes slideUp-0ef4193d{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #3b82f6;--primary-glow: rgba(37, 99, 235, .28);--accent: #06b6d4;--accent-dark: #0891b2;--success: #10b981;--success-dark: #059669;--warning: #f59e0b;--warning-dark: #d97706;--danger: #ef4444;--danger-dark: #dc2626;--info: #8b5cf6;--bg: #f0f4ff;--bg-secondary: #e6edff;--surface: rgba(255, 255, 255, .88);--surface-hover: rgba(255, 255, 255, .98);--surface-border: rgba(37, 99, 235, .11);--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--sidebar-bg: rgba(255, 255, 255, .94);--card-shadow: 0 4px 24px rgba(37, 99, 235, .09);--card-shadow-lg: 0 12px 48px rgba(37, 99, 235, .14);--glass-blur: 18px;--font: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--radius-xs: 6px;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--radius-xl: 28px;--transition: .22s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}.dark{--bg: #060c1a;--bg-secondary: #0a1428;--surface: rgba(13, 25, 58, .88);--surface-hover: rgba(20, 40, 82, .95);--surface-border: rgba(59, 130, 246, .16);--text: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #475569;--sidebar-bg: rgba(7, 14, 38, .97);--card-shadow: 0 4px 32px rgba(0, 0, 0, .5);--card-shadow-lg: 0 12px 56px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition),color var(--transition);overflow-x:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:700}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font);-webkit-tap-highlight-color:transparent}input,select,textarea{font-family:var(--font)}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none}body,h1,h2,h3,h4,h5,h6,p,span,div,label,li,td,th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}img{-webkit-user-drag:none;pointer-events:none}img.clickable{pointer-events:auto}.glass{background:var(--surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--surface-border);border-radius:var(--radius);box-shadow:var(--card-shadow)}.glass-lg{background:var(--surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--surface-border);border-radius:var(--radius-xl);box-shadow:var(--card-shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;border:none;transition:all var(--transition);cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;font-family:var(--font)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 16px var(--primary-glow)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px var(--primary-glow)}.btn-accent{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 4px 16px #06b6d44d}.btn-accent:hover:not(:disabled){transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,var(--success),var(--success-dark));color:#fff;box-shadow:0 4px 16px #10b9814d}.btn-success:hover:not(:disabled){transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,var(--danger),var(--danger-dark));color:#fff;box-shadow:0 4px 16px #ef44444d}.btn-danger:hover:not(:disabled){transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--surface-border)}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--primary);border-color:#2563eb59}.btn-sm{padding:6px 14px;font-size:13px;gap:6px}.btn-lg{padding:14px 28px;font-size:16px}.btn-xl{padding:16px 36px;font-size:17px}.btn-icon{padding:9px;border-radius:50%}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.form-input{padding:11px 14px;background:var(--surface);border:1.5px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;transition:all var(--transition);width:100%;font-family:var(--font)}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:var(--surface-hover)}.form-input::placeholder{color:var(--text-muted)}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;white-space:nowrap;letter-spacing:.02em}.badge-present{background:#10b98124;color:#10b981}.badge-late{background:#f59e0b24;color:#f59e0b}.badge-absent{background:#ef444424;color:#ef4444}.badge-active{background:#10b98124;color:#10b981}.badge-inactive{background:#ef444424;color:#ef4444}.badge-info{background:#8b5cf624;color:#8b5cf6}.badge-primary{background:#2563eb24;color:var(--primary)}.badge-warning{background:#f59e0b24;color:#f59e0b}.badge-success{background:#10b98124;color:#10b981}.badge-danger{background:#ef444424;color:#ef4444}.table-wrap{overflow-x:auto;border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:14px}thead{background:linear-gradient(135deg,#2563eb0f,#06b6d40a);position:sticky;top:0;z-index:1}th{padding:13px 16px;text-align:left;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none}td{padding:13px 16px;border-bottom:1px solid var(--surface-border);vertical-align:middle}tr:hover td{background:#2563eb06}tr:last-child td{border-bottom:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.spinner{width:36px;height:36px;border:3px solid var(--surface-border);border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite}.spinner-sm{width:18px;height:18px;border:2px solid var(--surface-border);border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.loading-screen p{font-size:14px;color:var(--text-muted);font-weight:500}.app-layout{display:flex;min-height:100vh}.layout-main{flex:1;margin-left:264px;min-height:100vh;display:flex;flex-direction:column}.layout-content{flex:1;padding:28px;box-sizing:border-box;overflow-x:hidden;max-width:100%}.bg-mesh{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 8% 16%,rgba(37,99,235,.09) 0%,transparent 52%),radial-gradient(ellipse at 92% 82%,rgba(6,182,212,.07) 0%,transparent 52%),radial-gradient(ellipse at 52% 52%,rgba(139,92,246,.04) 0%,transparent 62%)}.dark .bg-mesh{background:radial-gradient(ellipse at 8% 16%,rgba(37,99,235,.18) 0%,transparent 52%),radial-gradient(ellipse at 92% 82%,rgba(6,182,212,.12) 0%,transparent 52%),radial-gradient(ellipse at 52% 52%,rgba(139,92,246,.08) 0%,transparent 62%)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.alert{padding:13px 16px;border-radius:var(--radius-sm);font-size:14px;border-left:3px solid;display:flex;align-items:center;gap:10px;font-weight:500}.alert-success{background:#10b98114;border-color:#10b981;color:#10b981}.alert-error{background:#ef444414;border-color:#ef4444;color:#ef4444}.alert-warning{background:#f59e0b14;border-color:#f59e0b;color:#f59e0b}.alert-info{background:#2563eb14;border-color:var(--primary);color:var(--primary)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.present,.status-dot.active{background:var(--success);box-shadow:0 0 0 3px #10b98133}.status-dot.late{background:var(--warning);box-shadow:0 0 0 3px #f59e0b33}.status-dot.absent,.status-dot.inactive{background:var(--danger);box-shadow:0 0 0 3px #ef444433}.progress-bar{height:6px;background:var(--surface-border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .8s cubic-bezier(.4,0,.2,1)}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;z-index:9999;animation:fadeIn .15s ease}.empty-state{text-align:center;padding:52px 24px;color:var(--text-secondary)}.empty-state h3{font-size:17px;margin-bottom:8px;color:var(--text)}.empty-state p{font-size:14px;color:var(--text-muted)}.divider{height:1px;background:var(--surface-border);border:none;margin:0}.live-indicator{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);font-size:11px;font-weight:700;color:var(--success);letter-spacing:.05em}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--success);animation:livePulse 1.5s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-14px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideIn{0%{transform:translate(-24px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.93);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .3s cubic-bezier(.4,0,.2,1)}.slide-enter-from{transform:translateY(14px);opacity:0}.slide-leave-to{transform:translateY(-10px);opacity:0}.page-enter-active,.page-leave-active{transition:all .28s cubic-bezier(.4,0,.2,1)}.page-enter-from{opacity:0;transform:translateY(12px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.modal-enter-active{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.modal-leave-active{transition:all .2s ease}.modal-enter-from,.modal-leave-to{opacity:0}.animate-in{animation:scaleIn .35s cubic-bezier(.34,1.56,.64,1) both}.animate-up{animation:slideUp .35s cubic-bezier(.34,1.56,.64,1) both}.animate-float{animation:float 3.5s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,var(--surface-border) 25%,var(--surface) 50%,var(--surface-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.text-right{text-align:right}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.show-mobile{display:none}@media (max-width: 1280px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.layout-main{margin-left:0}.layout-content{padding:16px;box-sizing:border-box}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.hide-mobile{display:none!important}.show-mobile{display:block}.data-table-wrap,.table-wrap,.glass{max-width:100%;box-sizing:border-box}.section-header{flex-direction:column;gap:10px}.section-header .btn{align-self:flex-start}}@media (max-width: 480px){.layout-content{padding:12px}}@media print{.sidebar,.topbar,.btn,.modal-overlay{display:none!important}.layout-main{margin-left:0}.glass{box-shadow:none;border:1px solid #ccc}}.orb,.modal-overlay,.sidebar,.glass{will-change:transform;transform:translateZ(0);backface-visibility:hidden}.modal-overlay{will-change:opacity,transform}.sidebar{will-change:transform}.table-wrap td,.data-table-wrap td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrap td:first-child,.data-table-wrap td:first-child{max-width:180px}.data-table-wrap td:last-child{max-width:unset;overflow:visible;white-space:normal}.data-table-wrap td>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.data-table-wrap td .fw-600,.data-table-wrap td .fw-500{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block}.login-page{scrollbar-width:none;-ms-overflow-style:none}.login-page::-webkit-scrollbar{display:none}@media (max-height: 700px){.login-page{scrollbar-width:thin;-ms-overflow-style:auto}.login-page::-webkit-scrollbar{display:block;width:4px}.login-page::-webkit-scrollbar-thumb{background:var(--primary);border-radius:99px}}
