@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.na-bell{border:1px solid var(--mantine-color-gray-3);background:var(--mantine-color-body);width:44px;height:44px;color:var(--mantine-color-gray-7);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s,border-color .15s,color .15s;display:flex}.na-bell:hover,.na-bell.is-active{border-color:var(--mantine-color-gray-4);color:var(--mantine-color-gray-9);background:#0000000a}.na-bell:focus-visible{outline:2px solid var(--mantine-color-violet-5);outline-offset:2px}.na-panel{max-height:min(640px,100dvh - 120px);backdrop-filter:blur(12px)!important;background:#ffffffd9!important;border:1px solid #0f172a0f!important;flex-direction:column!important;width:min(400px,100vw - 32px)!important;display:flex!important;overflow:hidden!important;box-shadow:0 8px 28px #0f172a14!important}.na-panel__header{flex-shrink:0;align-items:center;gap:8px;padding:18px 22px 10px;display:flex}.na-panel__count{text-align:center;min-width:22px;height:22px;color:var(--mantine-color-gray-7);background:#0f172a0f;border-radius:999px;padding:0 7px;font-size:12px;font-weight:700;line-height:22px}.na-panel__body{overscroll-behavior:contain;scrollbar-width:thin;flex:auto;min-height:0;padding:4px 14px 8px;overflow-y:auto}.na-rise{animation:.32s cubic-bezier(.32,.72,0,1) both na-rise;animation-delay:calc(60ms + var(--i,0) * 60ms)}@keyframes na-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.na-rise{animation:none}}.na-list{flex-direction:column;display:flex}.na-item{padding-bottom:8px}.na-note-card{border:1px solid var(--mantine-color-gray-2);background:var(--mantine-color-white);border-radius:28px;transition:border-color .2s ease-out,box-shadow .2s ease-out}.na-note-card.is-clickable:hover,.na-note-card.is-open{border-color:var(--mantine-color-gray-3);box-shadow:0 6px 18px #0f172a0f}.na-note,.na-more-link{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0}.na-note{border-radius:28px;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 18px 8px 8px;display:flex}.na-note:disabled{cursor:default}.na-note:focus-visible{outline:2px solid var(--mantine-color-violet-5);outline-offset:-2px}.na-note__text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.na-note__top{align-items:center;gap:8px;min-width:0;display:flex}.na-note__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--mantine-font-size-sm);color:var(--mantine-color-gray-9);flex:1;font-weight:600;overflow:hidden}.na-note__time{color:var(--mantine-color-dimmed);flex-shrink:0;font-size:11px}.na-note__body{text-overflow:ellipsis;white-space:nowrap;font-size:var(--mantine-font-size-xs);color:var(--mantine-color-gray-6);overflow:hidden}.na-chevron{color:var(--mantine-color-dimmed);flex-shrink:0;transition:transform .26s cubic-bezier(.32,.72,0,1)}.na-note-card.can-dismiss{position:relative}.na-dismiss{z-index:1;background:var(--mantine-color-gray-1);width:24px;height:24px;color:var(--mantine-color-gray-7);cursor:pointer;opacity:0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .15s ease-out,background-color .15s ease-out;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.na-dismiss:hover{background:var(--mantine-color-gray-2);color:var(--mantine-color-gray-9)}.na-note-card.can-dismiss:hover .na-dismiss,.na-note-card.can-dismiss:focus-within .na-dismiss,.na-dismiss:focus-visible{opacity:1}.na-note-card.can-dismiss:hover .na-note__time,.na-note-card.can-dismiss:focus-within .na-note__time{opacity:0}.na-note__time{transition:opacity .15s ease-out}@media (hover:none){.na-note-card.can-dismiss .na-dismiss{opacity:1}.na-note-card.can-dismiss .na-note__time{opacity:0}}.na-undo{appearance:none;background:var(--mantine-color-violet-0);height:32px;color:var(--mantine-color-violet-7);font:inherit;font-size:var(--mantine-font-size-sm);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;margin:0;padding:0 14px 0 3px;font-weight:600;transition:background-color .15s ease-out;display:inline-flex}.na-undo:hover{background:var(--mantine-color-violet-1)}.na-undo:focus-visible{outline:2px solid var(--mantine-color-violet-5);outline-offset:2px}.na-countdown{background:var(--mantine-color-white);font-variant-numeric:tabular-nums;width:26px;height:26px;color:var(--mantine-color-violet-7);border-radius:999px;flex-shrink:0;place-items:center;font-size:11px;font-weight:700;display:grid;position:relative}.na-countdown svg{position:absolute;inset:0;transform:rotate(-90deg)}.na-countdown circle{fill:none;stroke-width:2.5px}.na-countdown__track{stroke:var(--mantine-color-violet-1)}.na-countdown__bar{stroke:var(--mantine-color-violet-5);stroke-linecap:round;stroke-dasharray:62.83;stroke-dashoffset:0;animation-name:na-countdown;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes na-countdown{to{stroke-dashoffset:62.83px}}.na-note-card.is-dismissed{background:var(--mantine-color-gray-0);border-style:dashed}.na-note-card.is-dismissed .na-note{cursor:default;padding-right:10px}.na-note-card.is-dismissed .na-note__title{color:var(--mantine-color-gray-6)}.na-note-card.is-open .na-chevron{transform:rotate(180deg)}.na-note__more{padding:0 16px 12px 58px}.na-note__actions{gap:8px;margin-top:10px;display:flex}.na-note__actions>*{flex:1}.na-more-link{font-size:var(--mantine-font-size-xs);color:var(--mantine-color-violet-7);border-radius:999px;align-self:center;margin-top:2px;padding:6px 14px;font-weight:600}.na-more-link:hover{background:var(--mantine-color-violet-0)}.admin-layout{background:var(--page-bg);min-height:100vh;display:flex}.admin-sidebar{z-index:100;background:#fff;border-radius:0 24px 24px 0;flex-direction:column;width:72px;height:100vh;transition:width .24s cubic-bezier(.2,.8,.2,1) 60ms,box-shadow .24s ease-out 60ms;display:flex;position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 4px 20px #00000008}@media (hover:hover) and (width>=769px){.admin-sidebar:hover,.admin-sidebar:has(:focus-visible){width:260px;transition-delay:.12s;box-shadow:0 16px 48px #0f172a1f}.admin-sidebar:hover .sidebar-nav-label,.admin-sidebar:hover .sidebar-wordmark,.admin-sidebar:has(:focus-visible) .sidebar-nav-label,.admin-sidebar:has(:focus-visible) .sidebar-wordmark{opacity:1;transition:opacity .2s ease-out .2s}}.sidebar-header{flex-shrink:0;align-items:center;height:76px;padding:0 0 0 17px;display:flex;position:relative}.sidebar-company-switcher{flex-shrink:0;padding:0 16px 16px;display:none}@media (width<=768px){.sidebar-company-switcher{display:block}}.sidebar-logo{align-items:center;gap:10px;display:flex}.sidebar-logo-icon{object-fit:contain;background:0 0;flex-shrink:0;width:38px;height:38px}.sidebar-wordmark{font-family:Outfit,sans-serif;font-size:var(--mantine-font-size-xl);letter-spacing:-.5px;white-space:nowrap;align-items:baseline;gap:4px;display:flex}.sidebar-wordmark__mura{color:var(--text-primary);font-weight:800}.sidebar-wordmark__core{color:var(--purple-primary);font-weight:600}.sidebar-nav-label,.sidebar-wordmark{opacity:0;transition:opacity .12s ease-out}.sidebar-nav{scrollbar-width:none;flex-direction:column;flex:1;gap:2px;padding:12px 10px 16px;display:flex;overflow:hidden auto}.sidebar-nav-item{height:44px;color:var(--text-secondary);white-space:nowrap;border-radius:50px;flex-shrink:0;align-items:center;gap:12px;padding:0 16px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex;position:relative;overflow:hidden}.sidebar-nav-item>svg{flex-shrink:0}.sidebar-nav-item:hover{color:var(--text-primary);background-color:#9333ea0f}.sidebar-nav-item.active{color:var(--purple-dark);font-weight:600}.sidebar-nav-indicator{background-color:#9333ea1a;border-radius:50px;position:absolute;inset:0}.sidebar-nav-label{white-space:nowrap;display:inline-block;overflow:hidden}.admin-main{flex-direction:column;flex:1;min-width:0;min-height:100vh;margin-left:72px;display:flex}.admin-header{height:var(--header-height);backdrop-filter:blur(12px);z-index:50;background:#ffffffd9;border-radius:50px;justify-content:space-between;align-items:center;margin:16px 16px 0;padding:0 24px;display:flex;position:sticky;top:16px;box-shadow:0 4px 20px #00000008}.admin-header-left,.admin-header-right{align-items:center;gap:12px;display:flex}.header-user-btn{appearance:none;border:1px solid var(--mantine-color-gray-3);background:var(--mantine-color-body);height:44px;color:var(--mantine-color-text);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box;border-radius:999px;align-items:center;gap:10px;min-width:max-content;padding:0 14px 0 4px;transition:background-color .15s,border-color .15s;display:flex}.header-user-btn:hover,.header-user-btn[aria-expanded=true]{border-color:var(--mantine-color-gray-4);background-color:#0000000a}.header-user-btn:focus-visible{outline:2px solid var(--mantine-color-violet-5);outline-offset:2px}.header-user-info{flex-direction:column;line-height:1.2;display:flex}.header-user-name{font-size:var(--mantine-font-size-sm);color:var(--mantine-color-gray-9);white-space:nowrap;font-weight:600}.header-user-role{color:var(--mantine-color-dimmed);white-space:nowrap;font-size:11px;font-weight:500}.header-user-chevron{color:var(--mantine-color-gray-5);flex-shrink:0;transition:transform .2s}.header-user-btn[aria-expanded=true] .header-user-chevron{transform:rotate(180deg)}.mobile-burger{display:none}.admin-content{flex:1;width:100%;min-width:0;max-width:1440px;padding:24px 28px}.admin-sidebar-backdrop{display:none}@media (width<=768px){.admin-sidebar{z-index:200;width:260px;transition:transform .28s cubic-bezier(.25,.46,.45,.94);transform:translate(-100%);box-shadow:0 8px 32px #0000001f}.admin-sidebar.open{transform:translate(0)}.admin-sidebar .sidebar-nav-label,.admin-sidebar .sidebar-wordmark{opacity:1}.admin-sidebar-backdrop{backdrop-filter:blur(2px);z-index:150;background:#00000059;display:block;position:fixed;inset:0}.admin-main{margin-left:0!important}.mobile-burger{background:#9333ea14;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .18s,transform .12s;display:flex}.mobile-burger:active{background:#9333ea29;transform:scale(.92)}.admin-header{margin:12px 12px 0;padding:0 12px}.header-user-btn{padding:0 10px 0 4px}.admin-content{padding:16px}.header-user-info{display:none}}@media (width>=768px) and (width<=991px){.admin-sidebar{transform:none}.mobile-burger{display:none}}.employee-mobile-nav,.employee-mobile-logo{display:none}@media (width<=768px){.employee-layout .employee-sidebar{display:none!important}.employee-layout .employee-main{padding-bottom:90px;margin-left:0!important}.employee-mobile-nav{backdrop-filter:blur(12px);z-index:100;background:#ffffffe6;border-radius:50px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 8px 32px #00000014}.employee-mobile-nav-item{color:var(--text-muted);-webkit-tap-highlight-color:transparent;border-radius:50px;flex-direction:column;justify-content:center;align-items:center;padding:8px;text-decoration:none;transition:color .2s;display:flex;position:relative}.employee-mobile-nav-item.active{color:var(--purple-dark)}.employee-mobile-nav-indicator{z-index:-1;background-color:#9333ea1a;border-radius:50px;position:absolute;inset:0}.employee-mobile-logo{align-items:center;gap:8px;display:flex}.employee-desktop-profile{display:none!important}.employee-layout .employee-header{border-radius:50px!important;margin:16px!important}}:root{--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--page-bg:#f9f5ff;--card-bg:#fff;--border-light:#e9ecef;--text-primary:#1a1b1e;--text-secondary:#5c5f66;--text-muted:#909296;--purple-primary:#9333ea;--purple-light:#f3e8ff;--purple-dark:#7e22ce;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-smooth:.3s cubic-bezier(.25, .46, .45, .94)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--page-bg);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:#00000040}*{scrollbar-width:thin;scrollbar-color:#00000026 transparent}::selection{color:var(--text-primary);background-color:#9333ea33}:focus-visible{outline:2px solid var(--purple-primary);outline-offset:2px}a{color:var(--purple-dark);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--purple-primary)}.stat-card{transition:all var(--transition-normal);cursor:default}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px #00000014}.data-table-row{transition:background-color var(--transition-fast)}.data-table-row:hover{background-color:#9333ea0a}.page-wrapper{max-width:1400px;margin:0 auto;padding:24px 32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{color:var(--text-primary);font-size:1.5rem;font-weight:700}.page-header-subtitle{color:var(--text-muted);margin-top:2px;font-size:.875rem}.status-present{--badge-color:#1ac96c}.status-absent{--badge-color:#e55454}.status-half-day{--badge-color:#ffc205}.status-late{--badge-color:#ff8c00}.status-on-leave{--badge-color:#7c5cfc}.status-holiday{--badge-color:#3b82f6}.nav-item{color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:10px 16px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:var(--text-primary);background-color:#9333ea14}.nav-item.active{color:var(--purple-dark);background-color:#9333ea1f;font-weight:600}.nav-item.active:before{content:"";background-color:var(--purple-primary);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.stat-value{letter-spacing:-.02em;font-size:2rem;font-weight:800;line-height:1}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.3s ease-out forwards fadeInUp}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.empty-state-icon{color:var(--text-muted);opacity:.5;margin-bottom:16px}.empty-state-title{color:var(--text-primary);margin-bottom:6px;font-size:1.1rem;font-weight:600}.empty-state-text{color:var(--text-muted);max-width:400px;font-size:.875rem}@media (width<=768px){.page-wrapper{padding:16px}.card-grid{grid-template-columns:1fr}[data-modal-content]{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important}}.mantine-Menu-dropdown{border-radius:20px!important;padding:6px!important}.mantine-Menu-item{border-radius:999px!important;padding-left:14px!important;padding-right:14px!important}.mantine-Menu-label{padding-left:14px!important}.mantine-Menu-divider{margin:6px 10px!important}.context-menu-item{border-radius:999px!important}@keyframes att-row-flash{0%,60%{background-color:var(--mantine-color-violet-1)}to{background-color:var(--mantine-color-violet-0)}}tr.att-row--highlight>td{animation:2.4s ease-out forwards att-row-flash}.nav-progress{z-index:1000;background:var(--mantine-color-violet-6);opacity:0;pointer-events:none;border-radius:0 999px 999px 0;width:0;height:3px;transition:width .2s ease-out,opacity .2s ease-out;position:fixed;top:0;left:0;box-shadow:0 0 8px #7c3aed73}.nav-progress.is-active{opacity:1;width:85%;transition:width 6s cubic-bezier(.1,.7,.1,1),opacity .12s ease-out}
