:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-soft:#eff6ff;--color-bg:#f8fafc;--color-surface:#fff;--color-sidebar:linear-gradient(225deg, #76b6ed 0.0%, #5d98e7 20.0%, #477fc5 40.0%, #366b9b 60%, #2b5d82 80.0%, #245487 100.0%);--color-sidebar-active:#0f172a61;--color-sidebar-text:#eef6ff;--color-sidebar-text-active:#fff;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text:#111827;--color-text-muted:#6b7280;--color-text-subtle:#9ca3af;--color-success:#16a34a;--color-success-hover:#15803d;--color-success-bg:#dcfce7;--color-success-text:#166534;--color-warning:#d97706;--color-warning-bg:#fef9c3;--color-warning-text:#854d0e;--color-danger:#dc2626;--color-danger-bg:#fee2e2;--color-danger-text:#991b1b;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 16px #0f172a14;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box;margin:0}html,body{height:100%}body{color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4{color:var(--color-text);font-weight:600;line-height:1.3}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}::selection{background:var(--color-primary-soft)}#app{min-height:100vh}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-header__title{color:var(--color-text);font-size:20px;font-weight:600}.page-header__description{color:var(--color-text-muted);margin-top:4px;font-size:13px}.page-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.empty-state{text-align:center;color:var(--color-text-muted);padding:40px 20px;font-size:13px}@media (width<=640px){.page-header{flex-direction:column;align-items:stretch}.page-toolbar{justify-content:flex-start}}.sidebar[data-v-e3df1fb9]{background:var(--color-sidebar);width:232px;color:var(--color-sidebar-text);flex-direction:column;flex-shrink:0;height:100%;transition:width .18s;display:flex;overflow:hidden}.sidebar-brand[data-v-e3df1fb9]{color:#fff;flex-shrink:0;justify-content:center;align-items:center;gap:10px;padding:20px 20px 16px;font-size:22px;font-weight:700;display:flex}.sidebar--collapsed .sidebar-brand[data-v-e3df1fb9]{padding:20px 0 16px}.sidebar-brand__text[data-v-e3df1fb9]{white-space:nowrap}.sidebar-close[data-v-e3df1fb9]{color:var(--color-sidebar-text);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px;font-size:22px;line-height:1;display:none}.sidebar-brand__logo[data-v-e3df1fb9]{object-fit:contain;background:#fff;border-radius:8px;flex-shrink:0;width:40px;height:40px;padding:3px}.sidebar-link__badge[data-v-e3df1fb9]{color:#fff;background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:18px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.sidebar--collapsed .sidebar-link__badge[data-v-e3df1fb9]{margin-left:0;position:absolute;top:2px;right:2px}.sidebar-nav[data-v-e3df1fb9]{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;--fade:26px;flex:1;min-height:0;padding:4px 12px 20px;overflow:hidden auto}.sidebar-nav[data-v-e3df1fb9]::-webkit-scrollbar{width:10px}.sidebar-nav[data-v-e3df1fb9]::-webkit-scrollbar-track{background:0 0}.sidebar-nav[data-v-e3df1fb9]::-webkit-scrollbar-thumb{background:#ffffff47 padding-box content-box;border:3px solid #0000;border-radius:999px}.sidebar-nav[data-v-e3df1fb9]:hover::-webkit-scrollbar-thumb{background:#ffffff73 padding-box content-box}.sidebar-nav[data-v-e3df1fb9]::-webkit-scrollbar-thumb:hover{background:#ffffffb3 padding-box content-box}.sidebar-nav[data-v-e3df1fb9]::-webkit-scrollbar-thumb:active{background:#ffffffb3 padding-box content-box}.sidebar-nav--fade-top[data-v-e3df1fb9]{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade));-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade));mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade))}.sidebar-nav--fade-bottom[data-v-e3df1fb9]{-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--fade));-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--fade));mask-image:linear-gradient(to top, transparent 0, #000 var(--fade))}.sidebar-nav--fade-top.sidebar-nav--fade-bottom[data-v-e3df1fb9]{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade), #000 calc(100% - var(--fade)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade), #000 calc(100% - var(--fade)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade), #000 calc(100% - var(--fade)), transparent 100%)}.sidebar--collapsed .sidebar-nav[data-v-e3df1fb9]{padding:4px 8px 20px}.sidebar-section[data-v-e3df1fb9]{margin-top:18px}.sidebar-section[data-v-e3df1fb9]:first-child{margin-top:4px}.sidebar--collapsed .sidebar-section[data-v-e3df1fb9]{margin-top:10px}.sidebar-section__label[data-v-e3df1fb9]{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:#ffffffbf;background:0 0;border:none;justify-content:space-between;align-items:center;gap:6px;width:100%;padding:0 10px 6px;font-family:inherit;font-size:11px;font-weight:600;transition:color .15s;display:flex}.sidebar-section__label[data-v-e3df1fb9]:hover{color:#fffffff2}.sidebar-section__label[data-v-e3df1fb9]:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #ffffff8c}.sidebar-section__chevron[data-v-e3df1fb9]{flex-shrink:0;transition:transform .2s}.sidebar-section__chevron--collapsed[data-v-e3df1fb9]{transform:rotate(-90deg)}.sidebar-section__body[data-v-e3df1fb9]{grid-template-rows:1fr;transition:grid-template-rows .22s;display:grid}.sidebar-section__body--collapsed[data-v-e3df1fb9]{grid-template-rows:0fr}.sidebar-section__body-inner[data-v-e3df1fb9]{min-height:0;overflow:hidden}.sidebar-link[data-v-e3df1fb9]{border-radius:var(--radius-sm);color:var(--color-sidebar-text);white-space:nowrap;border-left:2px solid #0000;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex;position:relative}.sidebar-link[data-v-e3df1fb9]:hover{color:var(--color-sidebar-text-active);background:#ffffff29;text-decoration:none}.sidebar-link--active[data-v-e3df1fb9]{background:var(--color-sidebar-active);color:var(--color-sidebar-text-active);border-left-color:#fff}.sidebar-link__label[data-v-e3df1fb9]{text-overflow:ellipsis;overflow:hidden}.sidebar--collapsed .sidebar-link[data-v-e3df1fb9]{justify-content:center;padding:8px 4px}.sidebar-link__icon[data-v-e3df1fb9]{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.sidebar-link__icon[data-v-e3df1fb9] svg{width:18px;height:18px}.sidebar--collapsed[data-v-e3df1fb9]{width:72px}@media (width<=960px){.sidebar[data-v-e3df1fb9]{z-index:50;width:260px;max-width:82vw;box-shadow:var(--shadow-md);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--open[data-v-e3df1fb9]{transform:translate(0)}.sidebar-close[data-v-e3df1fb9]{justify-content:center;align-items:center;display:inline-flex}}.company-switcher[data-v-5e8b8370]{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-width:240px;padding:8px 12px;font-family:inherit;font-size:13.5px;font-weight:500;transition:border-color .15s}.company-switcher[data-v-5e8b8370]:hover{border-color:var(--color-primary)}.company-switcher[data-v-5e8b8370]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}@media (width<=640px){.company-switcher[data-v-5e8b8370]{min-width:160px;max-width:240px;padding:8px}}.base-btn[data-v-b6bd1620]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-weight:500;transition:background-color .15s,border-color .15s,opacity .15s;display:inline-flex}.base-btn--md[data-v-b6bd1620]{padding:9px 16px;font-size:14px}.base-btn--sm[data-v-b6bd1620]{padding:6px 12px;font-size:13px}.base-btn--primary[data-v-b6bd1620]{background:var(--color-primary);color:#fff}.base-btn--primary[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-primary-hover)}.base-btn--secondary[data-v-b6bd1620]{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.base-btn--secondary[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-bg)}.base-btn--danger[data-v-b6bd1620]{background:var(--color-danger);color:#fff}.base-btn--danger[data-v-b6bd1620]:hover:not(:disabled){background:#b91c1c}.base-btn--success[data-v-b6bd1620]{background:var(--color-success);color:#fff}.base-btn--success[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-success-hover)}.base-btn--ghost[data-v-b6bd1620]{color:var(--color-text-muted);background:0 0}.base-btn--ghost[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.base-btn--ghost-primary[data-v-b6bd1620]{color:var(--color-primary);background:0 0}.base-btn--ghost-primary[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-primary-soft)}.base-btn--ghost-danger[data-v-b6bd1620]{color:var(--color-danger);background:0 0}.base-btn--ghost-danger[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-danger-bg)}.base-btn--ghost-warning[data-v-b6bd1620]{color:var(--color-warning-text);background:0 0}.base-btn--ghost-warning[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-warning-bg)}.base-btn--outline-primary[data-v-b6bd1620]{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.base-btn--outline-primary[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-primary-soft)}.base-btn--outline-warning[data-v-b6bd1620]{background:var(--color-surface);color:var(--color-warning-text);border-color:var(--color-warning)}.base-btn--outline-warning[data-v-b6bd1620]:hover:not(:disabled){background:var(--color-warning-bg)}.base-btn[data-v-b6bd1620]:disabled{opacity:.55;cursor:not-allowed}.navbar[data-v-b7772765]{height:calc(60px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding-left:24px;padding-right:24px;display:flex}.navbar-left[data-v-b7772765]{align-items:center;gap:12px;min-width:0;display:flex}.hamburger-btn[data-v-b7772765]{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;gap:4px;width:32px;height:32px;padding:0;display:none}.hamburger-btn span[data-v-b7772765]{background:var(--color-text);border-radius:1px;width:16px;height:2px;margin:0 auto;display:block}.collapse-btn[data-v-b7772765]{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .15s;display:inline-flex}.collapse-btn[data-v-b7772765]:hover{background:var(--color-bg)}.navbar-user[data-v-b7772765]{white-space:nowrap;align-items:center;gap:12px;font-size:13.5px;display:flex}.navbar-user__profile[data-v-b7772765]{border-radius:var(--radius-md);color:inherit;align-items:center;gap:8px;padding:4px 8px 4px 4px;text-decoration:none;transition:background-color .15s;display:flex}.navbar-user__profile[data-v-b7772765]:hover{background:var(--color-bg);text-decoration:none}.navbar-user__name[data-v-b7772765]{color:var(--color-text);font-weight:500}.navbar-user__avatar[data-v-b7772765]{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;display:inline-flex}.navbar-user__divider[data-v-b7772765]{background:var(--color-border);width:1px;height:20px}@media (width<=960px){.hamburger-btn[data-v-b7772765]{display:flex}.collapse-btn[data-v-b7772765]{display:none}}@media (width<=640px){.navbar[data-v-b7772765]{padding-left:12px;padding-right:12px}.navbar-user__name[data-v-b7772765],.navbar-user__divider[data-v-b7772765]{display:none}}.absen-banner[data-v-89a38cb9]{border-radius:var(--radius-lg);border:1px solid #0000;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.absen-banner--warning[data-v-89a38cb9]{color:#92400e;background:#fffbeb;border-color:#fde68a}.absen-banner--info[data-v-89a38cb9]{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.absen-banner--success[data-v-89a38cb9]{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.absen-banner__icon[data-v-89a38cb9]{background:#ffffffb3;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:14px;font-weight:700;display:grid}.absen-banner__body[data-v-89a38cb9]{flex:1;min-width:0}.absen-banner__title[data-v-89a38cb9]{margin:0;font-size:14px;font-weight:600}.absen-banner__detail[data-v-89a38cb9]{opacity:.85;margin:2px 0 0;font-size:12.5px}@media (width<=640px){.absen-banner[data-v-89a38cb9]{flex-wrap:wrap}.absen-banner__body[data-v-89a38cb9]{flex-basis:calc(100% - 40px)}}.app-shell[data-v-1dc4ca8b]{height:100dvh;display:flex;overflow:hidden}.app-main[data-v-1dc4ca8b]{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-content[data-v-1dc4ca8b]{overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--color-bg);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex:1;min-height:0;padding:28px;overflow-y:auto}.app-content[data-v-1dc4ca8b]::-webkit-scrollbar{width:10px}.app-content[data-v-1dc4ca8b]::-webkit-scrollbar-track{background:0 0}.app-content[data-v-1dc4ca8b]::-webkit-scrollbar-thumb{background:var(--color-border-strong);background-clip:content-box;border:3px solid #0000;border-radius:999px}.app-content[data-v-1dc4ca8b]::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle);background-clip:content-box}.app-content__inner[data-v-1dc4ca8b]{max-width:1200px;margin:0 auto}.sidebar-backdrop[data-v-1dc4ca8b]{display:none}@media (width<=960px){.sidebar-backdrop[data-v-1dc4ca8b]{z-index:40;background:#0f172a73;display:block;position:fixed;inset:0}}@media (width<=640px){.app-content[data-v-1dc4ca8b]{padding:16px}}.auth-shell[data-v-6fbe96f7]{box-sizing:border-box;background:url(/assets/bg-login-CQcPSY_A.jpg) 50%/cover no-repeat;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.print-shell[data-v-0fdcd975]{background:var(--color-bg);min-height:100vh}@media print{.print-shell[data-v-0fdcd975]{background:#fff;min-height:0}}.app-splash[data-v-02d3e2c2]{background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;display:flex}.app-splash__logo[data-v-02d3e2c2]{object-fit:contain;border-radius:12px;width:220px;height:220px}.app-splash__bar[data-v-02d3e2c2]{background:var(--color-border,#e2e8f0);border-radius:999px;width:140px;height:3px;overflow:hidden}.app-splash__bar span[data-v-02d3e2c2]{border-radius:inherit;background:var(--color-primary);width:40%;height:100%;animation:1s ease-in-out infinite splash-slide-02d3e2c2;display:block}@keyframes splash-slide-02d3e2c2{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (prefers-reduced-motion:reduce){.app-splash__bar span[data-v-02d3e2c2]{opacity:.5;width:100%;animation:none}}
