.dashboard[data-v-3b7c1ba9]{flex-direction:column;gap:22px;display:flex}.dash-header[data-v-3b7c1ba9]{justify-content:flex-end;align-items:center;display:flex}.btn-refresh[data-v-3b7c1ba9]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-refresh[data-v-3b7c1ba9]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-3b7c1ba9]:disabled{opacity:.6;cursor:default}.error-bar[data-v-3b7c1ba9]{border-radius:var(--radius);color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;align-items:center;gap:10px;padding:12px 18px;font-size:13px;font-weight:600;display:flex}.error-bar button[data-v-3b7c1ba9]{color:#991b1b;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.skel[data-v-3b7c1ba9]{background:linear-gradient(90deg,#f0f4f8 25%,#e8ecf0 50%,#f0f4f8 75%) 0 0/200% 100%;border-radius:6px;animation:1.4s infinite shimmer-3b7c1ba9}@keyframes shimmer-3b7c1ba9{0%{background-position:200% 0}to{background-position:-200% 0}}.skel-card[data-v-3b7c1ba9]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;padding:18px 16px;display:flex}.skel-icon[data-v-3b7c1ba9]{border-radius:12px;flex-shrink:0;width:48px;height:48px}.skel-body[data-v-3b7c1ba9]{flex-direction:column;flex:1;gap:8px;display:flex}.skel-val[data-v-3b7c1ba9]{width:60px;height:28px}.skel-lbl[data-v-3b7c1ba9]{width:90px;height:14px}.skel-block[data-v-3b7c1ba9]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);height:180px}.skel-block-sm[data-v-3b7c1ba9]{height:120px}.stat-grid[data-v-3b7c1ba9]{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.stat-card[data-v-3b7c1ba9]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;padding:18px 16px;transition:transform .15s,box-shadow .15s;display:flex}.stat-card[data-v-3b7c1ba9]:hover{transform:translateY(-2px);box-shadow:0 8px 22px #00000024}.stat-icon[data-v-3b7c1ba9]{color:#fff;background:#fff3;border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:19px;display:grid}.stat-value[data-v-3b7c1ba9]{color:#fff;font-size:28px;font-weight:800;line-height:1}.stat-label[data-v-3b7c1ba9]{color:#fffffff2;margin-top:2px;font-size:12px;font-weight:600}.stat-sub[data-v-3b7c1ba9]{color:#fffc;font-size:11px}.pending-items[data-v-3b7c1ba9]{padding:4px 0}.pending-empty[data-v-3b7c1ba9]{color:#10b981;align-items:center;gap:8px;padding:18px;font-size:13px;font-weight:600;display:flex}.pending-item[data-v-3b7c1ba9]{align-items:center;gap:10px;padding:9px 16px;transition:background .12s;display:flex}.pending-item[data-v-3b7c1ba9]:hover{background:var(--bg-main)}.pi-clickable[data-v-3b7c1ba9]{cursor:pointer}.req-type-tag[data-v-3b7c1ba9]{white-space:nowrap;text-align:center;border-radius:20px;flex-shrink:0;min-width:52px;padding:3px 10px;font-size:11px;font-weight:700}.pi-avatar[data-v-3b7c1ba9]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.pi-info[data-v-3b7c1ba9]{flex:1;min-width:0}.pi-name[data-v-3b7c1ba9]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.pi-detail[data-v-3b7c1ba9]{color:var(--text-secondary);font-size:11px}.pi-date[data-v-3b7c1ba9]{color:var(--text-light);white-space:nowrap;font-size:11px}.pi-go[data-v-3b7c1ba9]{color:var(--text-light);flex-shrink:0;font-size:11px}.pending-toggle[data-v-3b7c1ba9]{border:none;border-top:1px solid var(--border);width:100%;color:var(--primary);cursor:pointer;background:0 0;padding:10px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s}.pending-toggle[data-v-3b7c1ba9]:hover{background:var(--bg-main)}.card[data-v-3b7c1ba9]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head[data-v-3b7c1ba9]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.card-title[data-v-3b7c1ba9]{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.card-title i[data-v-3b7c1ba9]{color:var(--primary)}.card-sub[data-v-3b7c1ba9]{color:var(--text-light);font-size:12px}.badge-danger[data-v-3b7c1ba9]{color:#ef4444;background:#fee2e2;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-success[data-v-3b7c1ba9]{color:#065f46;background:#d1fae5;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.present-meta[data-v-3b7c1ba9]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.emp-time[data-v-3b7c1ba9]{color:var(--text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.sess-tag[data-v-3b7c1ba9]{color:#6366f1;background:#ede9fe;border-radius:10px;padding:1px 6px;font-size:9px;font-weight:700}.see-all-btn[data-v-3b7c1ba9]{border:none;border-top:1px solid var(--border);width:100%;color:var(--primary);cursor:pointer;background:0 0;padding:9px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s}.see-all-btn[data-v-3b7c1ba9]:hover{background:var(--bg-main)}.overlay[data-v-3b7c1ba9]{z-index:200;background:#0006;position:fixed;inset:0}.present-modal[data-v-3b7c1ba9]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:440px;max-width:calc(100vw - 32px);max-height:80vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.pm-head[data-v-3b7c1ba9]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.pm-title[data-v-3b7c1ba9]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.pm-title i[data-v-3b7c1ba9]{color:#10b981}.pm-close[data-v-3b7c1ba9]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.pm-close[data-v-3b7c1ba9]:hover{background:var(--bg-main)}.pm-body[data-v-3b7c1ba9]{flex:1;padding:4px 0;overflow-y:auto}.pm-loading[data-v-3b7c1ba9]{text-align:center;color:var(--text-secondary);padding:30px;font-size:13px}.pm-foot[data-v-3b7c1ba9]{border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:14px;padding:12px;display:flex}.pm-page-btn[data-v-3b7c1ba9]{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;transition:all .15s;display:grid}.pm-page-btn[data-v-3b7c1ba9]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pm-page-btn[data-v-3b7c1ba9]:disabled{opacity:.4;cursor:not-allowed}.pm-page-info[data-v-3b7c1ba9]{color:var(--text-secondary);font-size:13px;font-weight:600}.overlay-fade-enter-active[data-v-3b7c1ba9],.overlay-fade-leave-active[data-v-3b7c1ba9]{transition:opacity .2s}.overlay-fade-enter-from[data-v-3b7c1ba9],.overlay-fade-leave-to[data-v-3b7c1ba9]{opacity:0}.modal-pop-enter-active[data-v-3b7c1ba9],.modal-pop-leave-active[data-v-3b7c1ba9]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-3b7c1ba9],.modal-pop-leave-to[data-v-3b7c1ba9]{opacity:0;transform:translate(-50%,-50%)scale(.92)}.chart-toggle[data-v-3b7c1ba9]{background:var(--bg-main);border-radius:7px;gap:3px;padding:3px;display:flex}.tgl-btn[data-v-3b7c1ba9]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s}.tgl-btn.active[data-v-3b7c1ba9]{color:var(--primary);background:#fff;box-shadow:0 1px 4px #00000014}.chart-empty[data-v-3b7c1ba9]{height:180px;color:var(--text-light);justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.chart-wrap[data-v-3b7c1ba9]{gap:8px;height:210px;padding:16px 18px 0;display:flex}.y-axis[data-v-3b7c1ba9]{text-align:right;width:26px;color:var(--text-light);flex-direction:column;flex-shrink:0;justify-content:space-between;padding-bottom:24px;font-size:10px;display:flex}.bars-area[data-v-3b7c1ba9]{flex-direction:column;flex:1;display:flex;position:relative}.grid-lines[data-v-3b7c1ba9]{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 24px}.grid-line[data-v-3b7c1ba9]{border-top:1px dashed var(--border);width:100%}.bars-row[data-v-3b7c1ba9]{flex:1;align-items:flex-end;gap:6px;display:flex}.bar-col[data-v-3b7c1ba9]{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.bar-col-sm[data-v-3b7c1ba9]{min-width:0}.bar-col-sm .bar-seg[data-v-3b7c1ba9]{width:80%}.bar-label-sm[data-v-3b7c1ba9]{font-size:7px!important}.bar-stack[data-v-3b7c1ba9]{flex-direction:column-reverse;flex:1;align-items:center;gap:1px;width:100%;display:flex}.bar-seg[data-v-3b7c1ba9]{width:68%;min-height:2px;transition:height .4s}.bar-present[data-v-3b7c1ba9]{background:#10b981;border-radius:0}.bar-late[data-v-3b7c1ba9]{background:#f59e0b;border-radius:0}.bar-absent[data-v-3b7c1ba9]{background:#ef4444;border-radius:3px 3px 0 0}.bar-label[data-v-3b7c1ba9]{color:var(--text-secondary);white-space:nowrap;align-items:center;height:22px;font-size:9px;font-weight:600;display:flex}.chart-legend[data-v-3b7c1ba9]{border-top:1px solid var(--border);gap:18px;padding:10px 18px 14px;display:flex}.legend-item[data-v-3b7c1ba9]{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.legend-dot[data-v-3b7c1ba9]{border-radius:2px;flex-shrink:0;width:10px;height:10px}.mini-cal[data-v-3b7c1ba9]{padding:12px 14px 14px}.cal-nav[data-v-3b7c1ba9]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-month-label[data-v-3b7c1ba9]{color:var(--text-primary);font-size:13px;font-weight:700}.cal-nav-btn[data-v-3b7c1ba9]{border:1px solid var(--border);cursor:pointer;width:26px;height:26px;color:var(--text-secondary);background:0 0;border-radius:6px;place-items:center;font-size:11px;transition:all .2s;display:grid}.cal-nav-btn[data-v-3b7c1ba9]:hover{border-color:var(--primary);color:var(--primary)}.cal-grid[data-v-3b7c1ba9]{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-day-hdr[data-v-3b7c1ba9]{text-align:center;color:var(--text-secondary);padding:4px 0;font-size:10px;font-weight:700}.cal-cell[data-v-3b7c1ba9]{text-align:center;cursor:default;color:var(--text-primary);border-radius:5px;place-items:center;min-height:26px;padding:4px 1px;font-size:11px;font-weight:500;display:grid}.cal-cell.weekend[data-v-3b7c1ba9]{color:#94a3b8}.cal-cell.today[data-v-3b7c1ba9]{background:var(--primary);color:#fff;font-weight:800;box-shadow:0 2px 8px #4f46e559}.cal-legend[data-v-3b7c1ba9]{border-top:1px solid var(--border);flex-wrap:wrap;gap:12px;margin-top:8px;padding-top:8px;display:flex}.cl-item[data-v-3b7c1ba9]{color:var(--text-secondary);align-items:center;gap:4px;font-size:10px;display:flex}.cl-dot[data-v-3b7c1ba9]{border-radius:2px;width:9px;height:9px}.today-dot[data-v-3b7c1ba9]{background:var(--primary)}.weekend-dot[data-v-3b7c1ba9]{background:#94a3b8}.emp-list-wrap[data-v-3b7c1ba9]{padding:4px 0 6px}.list-empty[data-v-3b7c1ba9]{color:#10b981;align-items:center;gap:8px;padding:20px 18px;font-size:12px;font-weight:600;display:flex}.emp-row[data-v-3b7c1ba9],.top-row[data-v-3b7c1ba9]{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 18px;transition:background .12s;display:flex}.emp-row[data-v-3b7c1ba9]:last-child,.top-row[data-v-3b7c1ba9]:last-child{border-bottom:none}.emp-row[data-v-3b7c1ba9]:hover,.top-row[data-v-3b7c1ba9]:hover{background:var(--bg-main)}.emp-av[data-v-3b7c1ba9]{color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.emp-info[data-v-3b7c1ba9]{flex:1;min-width:0}.emp-name[data-v-3b7c1ba9]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.emp-dept[data-v-3b7c1ba9]{color:var(--text-secondary);font-size:11px}.emp-type-badge[data-v-3b7c1ba9]{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 9px;font-size:11px;font-weight:700}.top-rank[data-v-3b7c1ba9]{background:var(--bg-main);width:22px;height:22px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;font-weight:800;display:grid}.rank-hot[data-v-3b7c1ba9]{color:#d97706;background:#fef3c7}.top-badges[data-v-3b7c1ba9]{flex-shrink:0;gap:4px;display:flex}.tb[data-v-3b7c1ba9]{border-radius:20px;padding:2px 7px;font-size:10px;font-weight:700}.absent-tb[data-v-3b7c1ba9]{color:#ef4444;background:#fee2e2}.late-tb[data-v-3b7c1ba9]{color:#d97706;background:#fef3c7}.activity-list[data-v-3b7c1ba9]{padding:4px 0 6px}.act-row[data-v-3b7c1ba9]{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 18px;display:flex}.act-row[data-v-3b7c1ba9]:last-child{border-bottom:none}.act-dot[data-v-3b7c1ba9]{border-radius:50%;flex-shrink:0;width:9px;height:9px}.dot-in[data-v-3b7c1ba9]{background:#10b981;box-shadow:0 0 0 3px #d1fae5}.dot-out[data-v-3b7c1ba9]{background:#ef4444;box-shadow:0 0 0 3px #fee2e2}.dot-late[data-v-3b7c1ba9]{background:#f59e0b;box-shadow:0 0 0 3px #fef3c7}.dot-req[data-v-3b7c1ba9]{background:#6366f1;box-shadow:0 0 0 3px #ede9fe}.act-info[data-v-3b7c1ba9]{flex:1}.act-name[data-v-3b7c1ba9]{color:var(--text-primary);font-size:13px;font-weight:600}.act-action[data-v-3b7c1ba9]{color:var(--text-secondary);margin-left:6px;font-size:11px}.act-time[data-v-3b7c1ba9]{color:var(--text-light);font-variant-numeric:tabular-nums;font-size:11px}.chart-cal-grid[data-v-3b7c1ba9]{grid-template-columns:2fr 1fr;align-items:start;gap:20px;display:grid}.req-act-grid[data-v-3b7c1ba9]{grid-template-columns:1.5fr 1fr;align-items:start;gap:20px;display:grid}.three-col-grid[data-v-3b7c1ba9]{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=1400px){.stat-grid[data-v-3b7c1ba9]{grid-template-columns:repeat(3,1fr)}}@media (width<=1100px){.chart-cal-grid[data-v-3b7c1ba9],.req-act-grid[data-v-3b7c1ba9],.three-col-grid[data-v-3b7c1ba9]{grid-template-columns:1fr}}@media (width<=760px){.stat-grid[data-v-3b7c1ba9]{grid-template-columns:repeat(2,1fr)}}.login-page[data-v-72b0a1d2]{background:var(--bg-main);align-items:stretch;min-height:100vh;display:flex;position:relative;overflow:hidden}.bg-decoration[data-v-72b0a1d2]{pointer-events:none;z-index:0;position:fixed;inset:0}.bg-circle[data-v-72b0a1d2]{opacity:.08;background:var(--primary);border-radius:50%;position:absolute}.bg-circle-1[data-v-72b0a1d2]{width:600px;height:600px;top:-200px;left:-200px}.bg-circle-2[data-v-72b0a1d2]{background:var(--primary-light);opacity:.06;width:400px;height:400px;bottom:-100px;right:-100px}.bg-circle-3[data-v-72b0a1d2]{opacity:.04;width:200px;height:200px;top:50%;right:30%}.login-container[data-v-72b0a1d2]{z-index:1;width:100%;min-height:100vh;display:flex;position:relative}.login-left[data-v-72b0a1d2]{background:linear-gradient(145deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);color:#fff;flex:1;justify-content:center;align-items:center;padding:48px;display:flex}.left-content[data-v-72b0a1d2]{text-align:center;flex-direction:column;align-items:center;max-width:480px;display:flex}.brand-logo-wrap[data-v-72b0a1d2]{background:0 0;border-radius:20px;justify-content:center;margin-bottom:36px;padding:10px 20px;display:flex}.brand-logo-img[data-v-72b0a1d2]{width:auto;height:180px;display:block}.tagline[data-v-72b0a1d2]{opacity:.85;margin-bottom:48px;font-size:17px;line-height:1.7}.feature-list[data-v-72b0a1d2]{flex-direction:column;gap:24px;display:flex}.feature-item[data-v-72b0a1d2]{align-items:flex-start;gap:16px;display:flex}.feature-icon[data-v-72b0a1d2]{background:#ffffff26;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex}.feature-item strong[data-v-72b0a1d2]{margin-bottom:2px;font-size:15px;font-weight:600;display:block}.feature-item span[data-v-72b0a1d2]{opacity:.75;font-size:13px}.login-right[data-v-72b0a1d2]{background:var(--bg-main);justify-content:center;align-items:center;width:480px;padding:40px 32px;display:flex}.login-card[data-v-72b0a1d2]{width:100%;max-width:400px}.mobile-brand[data-v-72b0a1d2]{flex-direction:column;align-items:center;margin-bottom:28px;display:none}.mobile-logo-wrap[data-v-72b0a1d2]{background:0 0;border-radius:14px;padding:6px 14px}.mobile-logo-img[data-v-72b0a1d2]{width:auto;height:80px;display:block}.login-header[data-v-72b0a1d2]{margin-bottom:28px}.login-header h2[data-v-72b0a1d2]{color:var(--text-primary);margin-bottom:6px;font-size:26px;font-weight:700}.login-header p[data-v-72b0a1d2]{color:var(--text-secondary);font-size:14px}.login-form[data-v-72b0a1d2]{flex-direction:column;gap:18px;display:flex}.alert-error[data-v-72b0a1d2]{background:var(--danger-light);color:var(--danger);border:1px solid #fca5a5;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;animation:.3s shake-72b0a1d2;display:flex}.alert-info[data-v-72b0a1d2]{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;align-items:center;gap:10px;margin-bottom:18px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.alert-info strong[data-v-72b0a1d2]{color:#1e3a8a;font-weight:700}.alert-info.forgot-hint[data-v-72b0a1d2]{margin-top:-4px;margin-bottom:0;padding-right:36px;position:relative}.hint-close[data-v-72b0a1d2]{color:#1e40af;cursor:pointer;opacity:.6;background:0 0;border:none;padding:6px;font-size:13px;transition:opacity .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.hint-close[data-v-72b0a1d2]:hover{opacity:1}@keyframes shake-72b0a1d2{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.form-group[data-v-72b0a1d2]{flex-direction:column;gap:6px;display:flex}.form-group label[data-v-72b0a1d2]{color:var(--text-secondary);font-size:13px;font-weight:600}.label-row[data-v-72b0a1d2]{justify-content:space-between;align-items:center;display:flex}.forgot-link[data-v-72b0a1d2]{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:500;text-decoration:none}.forgot-link[data-v-72b0a1d2]:hover{color:var(--primary-dark);text-decoration:underline}.input-wrapper[data-v-72b0a1d2]{align-items:center;display:flex;position:relative}.input-icon[data-v-72b0a1d2]{color:var(--text-light);pointer-events:none;font-size:14px;position:absolute;left:14px}.input-wrapper input[data-v-72b0a1d2]{border:1.5px solid var(--border);background:var(--bg-card);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:12px 14px 12px 40px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.input-wrapper input[data-v-72b0a1d2]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.input-wrapper input[data-v-72b0a1d2]:disabled{opacity:.6;cursor:not-allowed}.input-wrapper input[data-v-72b0a1d2]::placeholder{color:var(--text-light)}.toggle-pw[data-v-72b0a1d2]{color:var(--text-light);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;font-size:14px;transition:color .2s;display:flex;position:absolute;right:12px}.toggle-pw[data-v-72b0a1d2]:hover{color:var(--text-secondary)}.remember-row[data-v-72b0a1d2]{margin-top:-4px}.checkbox-label[data-v-72b0a1d2]{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:14px;display:flex}.checkbox-label input[type=checkbox][data-v-72b0a1d2]{display:none}.checkmark[data-v-72b0a1d2]{border:1.5px solid var(--border);background:var(--bg-card);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:flex}.checkbox-label input:checked+.checkmark[data-v-72b0a1d2]{background:var(--primary);border-color:var(--primary)}.checkbox-label input:checked+.checkmark[data-v-72b0a1d2]:after{content:"✓";color:#fff;font-size:11px;font-weight:700}.btn-login[data-v-72b0a1d2]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:13px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #4f46e54d}.btn-login[data-v-72b0a1d2]:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 6px 16px #4f46e566}.btn-login[data-v-72b0a1d2]:active:not(:disabled){transform:translateY(0)}.btn-login[data-v-72b0a1d2]:disabled{opacity:.7;cursor:not-allowed;transform:none}.loading-spinner[data-v-72b0a1d2]{align-items:center;gap:8px;display:flex}.demo-hint[data-v-72b0a1d2]{color:var(--primary-dark);background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;align-items:flex-start;gap:10px;margin-top:20px;padding:12px 16px;font-size:12.5px;display:flex}.demo-hint>i[data-v-72b0a1d2]{margin-top:2px}.demo-hint-text[data-v-72b0a1d2]{flex-direction:column;gap:2px;display:flex}.demo-hint-text strong[data-v-72b0a1d2]{color:var(--primary);font-weight:600}.demo-hint-text span[data-v-72b0a1d2]{opacity:.85;font-size:12px}.login-footer[data-v-72b0a1d2]{text-align:center;color:var(--text-light);margin-top:24px;font-size:12px}@media (width<=768px){.login-container[data-v-72b0a1d2]{flex-direction:column}.login-left[data-v-72b0a1d2]{display:none}.login-right[data-v-72b0a1d2]{align-items:flex-start;width:100%;min-height:100vh;padding:48px 20px 32px}.login-card[data-v-72b0a1d2]{max-width:100%}.mobile-brand[data-v-72b0a1d2]{display:flex}.login-header h2[data-v-72b0a1d2]{font-size:22px}.btn-login[data-v-72b0a1d2]{padding:14px;font-size:16px}}.time-records[data-v-c5ff6abb]{flex-direction:column;gap:20px;display:flex}.head-card[data-v-c5ff6abb]{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;padding:16px;display:flex}.toolbar[data-v-c5ff6abb]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-c5ff6abb]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.search-wrap[data-v-c5ff6abb]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:220px;padding:9px 14px;display:flex}.search-wrap i[data-v-c5ff6abb]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-c5ff6abb]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.summary-chips[data-v-c5ff6abb]{flex-wrap:wrap;gap:8px;display:flex}.chip[data-v-c5ff6abb]{border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.chip-gray[data-v-c5ff6abb]{color:#475569;background:#f1f5f9}.chip-green[data-v-c5ff6abb]{color:#065f46;background:#d1fae5}.chip-yellow[data-v-c5ff6abb]{color:#854d0e;background:#fef3c7}.chip-red[data-v-c5ff6abb]{color:#991b1b;background:#fee2e2}.chip-blue[data-v-c5ff6abb]{color:#1e40af;background:#dbeafe}.chip-teal[data-v-c5ff6abb]{color:#065f46;background:#ccfbf1}.state-box[data-v-c5ff6abb]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-c5ff6abb]{color:#ef4444}.table-wrap[data-v-c5ff6abb]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.data-table[data-v-c5ff6abb]{border-collapse:collapse;width:100%}.data-table th[data-v-c5ff6abb]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:#f8fafc;padding:12px 16px;font-size:12px;font-weight:700}.data-table td[data-v-c5ff6abb]{border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px 16px;font-size:14px}.data-table tr:last-child td[data-v-c5ff6abb]{border-bottom:none}.data-table tr:hover td[data-v-c5ff6abb]{background:#fafbfc}.empty-row[data-v-c5ff6abb]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-c5ff6abb]{align-items:center;gap:10px;display:flex}.mini-avatar[data-v-c5ff6abb]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:grid}.mini-avatar.lg[data-v-c5ff6abb]{border-radius:10px;width:40px;height:40px;font-size:14px}.rec-name[data-v-c5ff6abb]{color:var(--text-primary);font-size:14px;font-weight:600}.rec-empid[data-v-c5ff6abb]{color:var(--text-light);font-size:11px}.dept-tag[data-v-c5ff6abb]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:12px;font-weight:600}.shift-tag[data-v-c5ff6abb]{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.time-cell[data-v-c5ff6abb]{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.next-day-tag[data-v-c5ff6abb]{color:#6366f1;vertical-align:top;background:#eef2ff;border-radius:6px;margin-left:3px;padding:0 4px;font-size:9px;font-weight:700}.text-muted[data-v-c5ff6abb]{color:var(--text-light)}.status-badge[data-v-c5ff6abb]{border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600}.badge-green[data-v-c5ff6abb]{color:#065f46;background:#d1fae5}.badge-yellow[data-v-c5ff6abb]{color:#854d0e;background:#fef3c7}.badge-red[data-v-c5ff6abb]{color:#991b1b;background:#fee2e2}.badge-blue[data-v-c5ff6abb]{color:#1e40af;background:#dbeafe}.badge-teal[data-v-c5ff6abb]{color:#0f766e;background:#ccfbf1}.btn-tbl[data-v-c5ff6abb]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s;display:flex}.btn-tbl[data-v-c5ff6abb]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-c5ff6abb]{z-index:200;background:#0006;position:fixed;inset:0}.drawer[data-v-c5ff6abb]{background:var(--bg-card);z-index:201;flex-direction:column;width:400px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #00000026}.dr-head[data-v-c5ff6abb]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.dr-head h3[data-v-c5ff6abb]{color:var(--text-primary);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.dr-head h3 i[data-v-c5ff6abb]{color:var(--primary)}.dr-close[data-v-c5ff6abb]{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:16px;display:grid}.dr-body[data-v-c5ff6abb]{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.edit-person[data-v-c5ff6abb]{background:var(--bg-main);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.fg[data-v-c5ff6abb]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-c5ff6abb]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-c5ff6abb]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-c5ff6abb]:focus{border-color:var(--primary);background:#fff}.dr-foot[data-v-c5ff6abb]{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.btn-ghost[data-v-c5ff6abb]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-primary[data-v-c5ff6abb]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.overlay-fade-enter-active[data-v-c5ff6abb],.overlay-fade-leave-active[data-v-c5ff6abb]{transition:opacity .25s}.overlay-fade-enter-from[data-v-c5ff6abb],.overlay-fade-leave-to[data-v-c5ff6abb]{opacity:0}.drawer-slide-enter-active[data-v-c5ff6abb],.drawer-slide-leave-active[data-v-c5ff6abb]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.drawer-slide-enter-from[data-v-c5ff6abb],.drawer-slide-leave-to[data-v-c5ff6abb]{transform:translate(100%)}.modal-pop-enter-active[data-v-c5ff6abb],.modal-pop-leave-active[data-v-c5ff6abb]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-c5ff6abb],.modal-pop-leave-to[data-v-c5ff6abb]{opacity:0;transform:translate(-50%,-50%)scale(.92)}.sessions-chip[data-v-c5ff6abb]{color:#4f46e5;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;border-radius:20px;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:700;transition:all .15s;display:inline-flex}.sessions-chip[data-v-c5ff6abb]:hover{color:#fff;background:#4f46e5;border-color:#4f46e5}.sess-modal[data-v-c5ff6abb]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:520px;max-width:calc(100vw - 32px);max-height:85vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.sess-body[data-v-c5ff6abb]{flex:1;padding:18px 24px;overflow-y:auto}.sess-list[data-v-c5ff6abb]{flex-direction:column;gap:12px;display:flex}.sess-item[data-v-c5ff6abb]{background:var(--bg-main);border-radius:10px;gap:12px;padding:14px;display:flex}.sess-no-badge[data-v-c5ff6abb]{color:#4f46e5;white-space:nowrap;background:#eef2ff;border-radius:8px;height:fit-content;padding:4px 10px;font-size:11px;font-weight:700}.sess-content[data-v-c5ff6abb]{flex-direction:column;flex:1;gap:8px;display:flex}.sess-times[data-v-c5ff6abb]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sess-chip[data-v-c5ff6abb]{font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.sess-in[data-v-c5ff6abb]{color:#065f46;background:#d1fae5}.sess-out[data-v-c5ff6abb]{color:#475569;background:#f1f5f9}.sess-arrow[data-v-c5ff6abb]{color:#cbd5e1;font-size:11px}.sess-hours[data-v-c5ff6abb]{color:#6366f1;background:#eef2ff;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.sess-meta[data-v-c5ff6abb]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sess-status[data-v-c5ff6abb]{border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700}.st-normal[data-v-c5ff6abb]{color:#065f46;background:#d1fae5}.st-late[data-v-c5ff6abb]{color:#854d0e;background:#fef3c7}.st-prog[data-v-c5ff6abb]{color:#0f766e;background:#ccfbf1}.sess-late[data-v-c5ff6abb]{color:#b45309;font-size:11px;font-weight:600}.sess-shift[data-v-c5ff6abb]{font-size:11px;font-weight:700}.sess-notes[data-v-c5ff6abb]{color:var(--text-secondary);flex-direction:column;gap:3px;font-size:12px;display:flex}.sess-notes i[data-v-c5ff6abb]{margin-right:4px;font-size:10px}.head-card[data-v-81cfeb85]{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:16px;padding:14px 16px}.tabs[data-v-81cfeb85]{border-bottom:1px solid #e2e8f0;align-items:center;gap:4px;margin:-14px -16px 14px;padding:4px 16px 0;display:flex}.page-sub[data-v-81cfeb85]{color:#64748b;margin:0 0 0 16px;font-size:13px}.tab[data-v-81cfeb85]{color:#64748b;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab.active[data-v-81cfeb85]{color:#1e293b;border-bottom-color:#157d71}.tab i[data-v-81cfeb85]{font-size:15px}.tab-badge[data-v-81cfeb85]{color:#fff;background:#1299fc;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.toolbar[data-v-81cfeb85]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.btn-add[data-v-81cfeb85]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.btn-add[data-v-81cfeb85]:hover{background:#10645b}.search-wrap[data-v-81cfeb85]{flex:0 320px;position:relative}.search-wrap input[data-v-81cfeb85]{border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 38px 9px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.search-wrap input[data-v-81cfeb85]:focus{border-color:#157d71}.search-wrap i[data-v-81cfeb85]{color:#94a3b8;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.toolbar-right[data-v-81cfeb85]{align-items:center;gap:8px;margin-left:auto;display:flex}.show-label[data-v-81cfeb85]{color:#64748b;font-size:13px}.sel[data-v-81cfeb85]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.sel[data-v-81cfeb85]:focus{border-color:#157d71}.err-box[data-v-81cfeb85]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.retry-btn[data-v-81cfeb85]{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.matrix-card[data-v-81cfeb85]{background:#fff;border:1px solid #e2e8f0;border-radius:14px}.matrix-scroll[data-v-81cfeb85]{overflow:visible}.role-badge[data-v-81cfeb85]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700}.role-table[data-v-81cfeb85]{border-collapse:collapse;width:100%}.role-table th[data-v-81cfeb85],.role-table td[data-v-81cfeb85]{text-align:left;border-bottom:1px solid #f1f5f9}.role-table tbody tr:last-child td[data-v-81cfeb85]{border-bottom:none}.role-table thead th[data-v-81cfeb85]{color:#64748b;background:#f8fafc;padding:13px 18px;font-size:13px;font-weight:600}.role-table thead th[data-v-81cfeb85]:first-child{border-top-left-radius:14px}.role-table thead th[data-v-81cfeb85]:last-child{border-top-right-radius:14px}.role-table tbody tr[data-v-81cfeb85]:hover{background:#fafbfc}.th-action[data-v-81cfeb85]{width:80px}.td-action[data-v-81cfeb85]{text-align:right;padding:14px 18px}.td-desc[data-v-81cfeb85]{color:#475569;padding:14px 18px;font-size:14px}.td-empty[data-v-81cfeb85]{text-align:center;color:#94a3b8;padding:28px;font-size:14px}.row-menu-wrap[data-v-81cfeb85]{display:inline-block;position:relative}.btn-kebab[data-v-81cfeb85]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px;transition:all .15s}.btn-kebab[data-v-81cfeb85]:hover,.btn-kebab.active[data-v-81cfeb85]{color:#334155;background:#f1f5f9}.row-menu[data-v-81cfeb85]{z-index:30;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.rm-item[data-v-81cfeb85]{cursor:pointer;color:#334155;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:background .12s;display:flex}.rm-item i[data-v-81cfeb85]{text-align:center;color:#94a3b8;width:16px}.rm-item[data-v-81cfeb85]:hover{background:#f1f5f9}.rm-item.danger[data-v-81cfeb85],.rm-item.danger i[data-v-81cfeb85]{color:#ef4444}.rm-item.danger[data-v-81cfeb85]:hover{background:#fef2f2}.rm-item.disabled[data-v-81cfeb85]{color:#cbd5e1;cursor:not-allowed}.rm-item.disabled i[data-v-81cfeb85]{color:#cbd5e1}.rm-item.disabled[data-v-81cfeb85]:hover{background:0 0}.menu-pop-enter-active[data-v-81cfeb85],.menu-pop-leave-active[data-v-81cfeb85]{transform-origin:100% 0;transition:opacity .12s,transform .12s}.menu-pop-enter-from[data-v-81cfeb85],.menu-pop-leave-to[data-v-81cfeb85]{opacity:0;transform:scale(.95)}.btn-primary[data-v-81cfeb85]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-primary[data-v-81cfeb85]:hover{opacity:.88}.btn-primary[data-v-81cfeb85]:disabled{opacity:.5;cursor:not-allowed}.alert-error[data-v-81cfeb85]{color:#ef4444;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;align-items:center;gap:8px;padding:12px 16px;font-size:14px;display:flex}.alert-error button[data-v-81cfeb85]{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:6px;margin-left:auto;padding:4px 10px;font-size:12px}.alert-error.small[data-v-81cfeb85]{padding:8px 12px;font-size:13px}.alert-ok[data-v-81cfeb85]{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.empty-state[data-v-81cfeb85]{text-align:center;color:var(--text-light);padding:60px}.empty-state i[data-v-81cfeb85]{margin-bottom:12px;font-size:40px;display:block}.role-table td[data-v-81cfeb85]{color:var(--text-primary);vertical-align:middle;padding:12px 16px;font-size:14px}.row-inactive td[data-v-81cfeb85]:not(.td-action){opacity:.5}.td-avatar[data-v-81cfeb85]{width:48px;padding-right:0!important}.mini-avatar[data-v-81cfeb85]{border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:grid}.mini-avatar-img[data-v-81cfeb85]{background:var(--border);overflow:hidden}.mini-avatar-img img[data-v-81cfeb85]{object-fit:cover;width:100%;height:100%}.avatar-uploader[data-v-81cfeb85]{align-items:center;gap:16px;margin-bottom:20px;display:flex}.avatar-preview[data-v-81cfeb85]{background:var(--bg-soft,#f1f5f9);border:1px solid var(--border);border-radius:16px;flex-shrink:0;place-items:center;width:76px;height:76px;display:grid;overflow:hidden}.avatar-preview.empty[data-v-81cfeb85]{color:var(--text-light);font-size:28px}.avatar-preview img[data-v-81cfeb85]{object-fit:cover;width:100%;height:100%}.avatar-actions[data-v-81cfeb85]{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.btn-avatar[data-v-81cfeb85]{cursor:pointer;background:var(--primary,#0d4f47);color:#fff;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn-avatar[data-v-81cfeb85]:hover{opacity:.9}.btn-avatar-rm[data-v-81cfeb85]{cursor:pointer;color:#dc2626;background:0 0;border:1px solid #fca5a5;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.btn-avatar-rm[data-v-81cfeb85]:hover{background:#fef2f2}.avatar-hint[data-v-81cfeb85]{color:var(--text-light);font-size:11px}.avatar-err[data-v-81cfeb85]{color:#dc2626;align-items:center;gap:5px;font-size:12px;display:flex}.emp-name[data-v-81cfeb85]{color:var(--text-primary);white-space:nowrap;font-size:14px;font-weight:600}.emp-position[data-v-81cfeb85]{color:var(--text-secondary);margin-top:2px;font-size:12px}.emp-code[data-v-81cfeb85]{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.role-tag[data-v-81cfeb85]{border-radius:20px;width:fit-content;padding:2px 7px;font-size:10px;font-weight:700}.dept-tag[data-v-81cfeb85]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:12px;font-weight:600}.text-secondary[data-v-81cfeb85]{color:var(--text-secondary);font-size:13px}.text-muted[data-v-81cfeb85]{color:var(--text-light)}.td-action[data-v-81cfeb85]{text-align:right;white-space:nowrap}.status-pill[data-v-81cfeb85]{white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.pill-green[data-v-81cfeb85]{color:#065f46;background:#d1fae5}.pill-red[data-v-81cfeb85]{color:#991b1b;background:#fee2e2}.empty-row[data-v-81cfeb85]{text-align:center;color:var(--text-light);font-size:14px;padding:56px!important}.empty-row i[data-v-81cfeb85]{margin-right:8px;font-size:16px}@keyframes pulse-81cfeb85{0%,to{opacity:1}50%{opacity:.45}}.sk-row[data-v-81cfeb85]{animation:1.4s infinite pulse-81cfeb85}.sk-row td[data-v-81cfeb85]{padding:14px 16px}.sk-person[data-v-81cfeb85]{align-items:center;gap:10px;display:flex}.sk-avatar[data-v-81cfeb85]{background:var(--border);border-radius:9px;flex-shrink:0;width:34px;height:34px}.sk-line[data-v-81cfeb85]{background:var(--border);border-radius:4px;height:11px}.w30[data-v-81cfeb85]{width:30%}.w40[data-v-81cfeb85]{width:40%}.w50[data-v-81cfeb85]{width:50%}.w55[data-v-81cfeb85]{width:55%}.w60[data-v-81cfeb85]{width:60%}.w70[data-v-81cfeb85]{width:70%}.drawer-overlay[data-v-81cfeb85]{z-index:200;background:#0006;position:fixed;inset:0}.drawer[data-v-81cfeb85]{background:var(--bg-card);z-index:201;flex-direction:column;width:440px;max-width:100vw;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-6px 0 32px #0000001f}.drawer-head[data-v-81cfeb85]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.drawer-head h3[data-v-81cfeb85]{color:var(--text-primary);align-items:center;gap:9px;font-size:16px;font-weight:700;display:flex}.drawer-head h3 i[data-v-81cfeb85]{color:var(--primary)}.drawer-close[data-v-81cfeb85]{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:16px;transition:all .2s;display:grid}.drawer-close[data-v-81cfeb85]:hover{background:var(--bg-main)}.drawer-body[data-v-81cfeb85]{flex-direction:column;flex:1;gap:14px;padding:20px 22px;display:flex;overflow-y:auto}.drawer-foot[data-v-81cfeb85]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.form-section-label[data-v-81cfeb85]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);margin-top:4px;padding-bottom:4px;font-size:11px;font-weight:700}.form-grid-2[data-v-81cfeb85]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fg[data-v-81cfeb85]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-81cfeb85]{color:var(--text-secondary);font-size:12px;font-weight:600}.req[data-v-81cfeb85]{color:var(--danger)}.opt[data-v-81cfeb85]{color:var(--text-light);font-size:11px;font-weight:400}.fi[data-v-81cfeb85]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.fi[data-v-81cfeb85]:focus{border-color:var(--primary);background:#fff}.fi[data-v-81cfeb85]:disabled{opacity:.55;cursor:not-allowed}.toggle-wrap[data-v-81cfeb85]{align-items:center;gap:10px;display:flex}.toggle-switch[data-v-81cfeb85]{cursor:pointer;width:42px;height:24px;position:relative}.toggle-switch input[data-v-81cfeb85]{opacity:0;width:0;height:0}.toggle-track[data-v-81cfeb85]{background:var(--border);border-radius:12px;transition:background .2s;position:absolute;inset:0}.toggle-track[data-v-81cfeb85]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-track[data-v-81cfeb85]{background:#10b981}.toggle-switch input:checked+.toggle-track[data-v-81cfeb85]:before{transform:translate(18px)}.status-on[data-v-81cfeb85]{color:#10b981;font-size:13px;font-weight:600}.status-off[data-v-81cfeb85]{color:var(--danger);font-size:13px;font-weight:600}.pw-wrap[data-v-81cfeb85]{display:flex;position:relative}.pw-wrap .fi[data-v-81cfeb85]{padding-right:40px}.pw-eye[data-v-81cfeb85]{cursor:pointer;width:38px;color:var(--text-secondary);background:0 0;border:none;border-radius:0 8px 8px 0;place-items:center;font-size:13px;transition:color .2s;display:grid;position:absolute;top:0;bottom:0;right:0}.pw-eye[data-v-81cfeb85]:hover{color:var(--primary)}.pw-rules[data-v-81cfeb85]{flex-direction:column;gap:4px;margin-top:6px;display:flex}.pw-rule[data-v-81cfeb85]{align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.pw-rule--ok[data-v-81cfeb85]{color:#10b981}.pw-rule--err[data-v-81cfeb85]{color:#ef4444}.pw-match[data-v-81cfeb85]{color:#10b981;align-items:center;gap:4px;margin-top:2px;font-size:11px;font-weight:600;display:flex}.pw-mismatch[data-v-81cfeb85]{color:#ef4444;align-items:center;gap:4px;margin-top:2px;font-size:11px;font-weight:600;display:flex}.reset-pw-row[data-v-81cfeb85]{padding-top:4px}.btn-reset-pw[data-v-81cfeb85]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-reset-pw[data-v-81cfeb85]:hover{border-color:var(--danger);color:var(--danger)}.btn-ghost[data-v-81cfeb85]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s}.btn-ghost[data-v-81cfeb85]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-81cfeb85]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-81cfeb85]{background:var(--bg-card);border-radius:var(--radius);z-index:201;width:380px;max-width:calc(100vw - 32px);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-reset[data-v-81cfeb85]{width:440px}.modal-head[data-v-81cfeb85]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h3[data-v-81cfeb85]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-close[data-v-81cfeb85]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:14px;display:grid}.modal-body[data-v-81cfeb85]{flex-direction:column;gap:8px;padding:18px 20px;display:flex}.modal-body p[data-v-81cfeb85]{color:var(--text-primary);margin:0;font-size:14px}.modal-body strong[data-v-81cfeb85]{font-weight:700}.sub-note[data-v-81cfeb85]{color:var(--text-secondary);font-size:13px}code[data-v-81cfeb85]{background:var(--bg-main);border-radius:4px;padding:2px 6px;font-size:13px}.modal-foot[data-v-81cfeb85]{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.overlay-fade-enter-active[data-v-81cfeb85],.overlay-fade-leave-active[data-v-81cfeb85]{transition:opacity .2s}.overlay-fade-enter-from[data-v-81cfeb85],.overlay-fade-leave-to[data-v-81cfeb85]{opacity:0}.drawer-slide-enter-active[data-v-81cfeb85],.drawer-slide-leave-active[data-v-81cfeb85]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.drawer-slide-enter-from[data-v-81cfeb85],.drawer-slide-leave-to[data-v-81cfeb85]{transform:translate(100%)}.modal-pop-enter-active[data-v-81cfeb85],.modal-pop-leave-active[data-v-81cfeb85]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-81cfeb85],.modal-pop-leave-to[data-v-81cfeb85]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=640px){.form-grid-2[data-v-81cfeb85]{grid-template-columns:1fr}.matrix-scroll[data-v-81cfeb85]{overflow-x:auto}}.head-card[data-v-19fc0b1e]{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:16px;padding:14px 16px}.tabs[data-v-19fc0b1e]{border-bottom:1px solid #e2e8f0;align-items:center;gap:4px;margin:-14px -16px 14px;padding:4px 16px 0;display:flex}.page-sub[data-v-19fc0b1e]{color:#64748b;margin:0 0 0 16px;font-size:13px}.tab[data-v-19fc0b1e]{color:#64748b;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab.active[data-v-19fc0b1e]{color:#1e293b;border-bottom-color:#157d71}.tab i[data-v-19fc0b1e]{font-size:15px}.tab-badge[data-v-19fc0b1e]{color:#fff;background:#1299fc;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.toolbar[data-v-19fc0b1e]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.btn-add[data-v-19fc0b1e]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.btn-add[data-v-19fc0b1e]:hover{background:#10645b}.search-wrap[data-v-19fc0b1e]{flex:0 320px;position:relative}.search-wrap input[data-v-19fc0b1e]{border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 38px 9px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.search-wrap input[data-v-19fc0b1e]:focus{border-color:#157d71}.search-wrap i[data-v-19fc0b1e]{color:#94a3b8;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.toolbar-right[data-v-19fc0b1e]{align-items:center;gap:8px;margin-left:auto;display:flex}.show-label[data-v-19fc0b1e]{color:#64748b;font-size:13px}.sel[data-v-19fc0b1e]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.sel[data-v-19fc0b1e]:focus{border-color:#157d71}.err-box[data-v-19fc0b1e]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.retry-btn[data-v-19fc0b1e]{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.matrix-card[data-v-19fc0b1e]{background:#fff;border:1px solid #e2e8f0;border-radius:14px}.matrix-scroll[data-v-19fc0b1e]{overflow:visible}.role-badge[data-v-19fc0b1e]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700}.role-table[data-v-19fc0b1e]{border-collapse:collapse;width:100%}.role-table th[data-v-19fc0b1e],.role-table td[data-v-19fc0b1e]{text-align:left;border-bottom:1px solid #f1f5f9}.role-table tbody tr:last-child td[data-v-19fc0b1e]{border-bottom:none}.role-table thead th[data-v-19fc0b1e]{color:#64748b;background:#f8fafc;padding:13px 18px;font-size:13px;font-weight:600}.role-table thead th[data-v-19fc0b1e]:first-child{border-top-left-radius:14px}.role-table thead th[data-v-19fc0b1e]:last-child{border-top-right-radius:14px}.role-table tbody tr[data-v-19fc0b1e]:hover{background:#fafbfc}.th-action[data-v-19fc0b1e]{width:80px}.td-action[data-v-19fc0b1e]{text-align:right;padding:14px 18px}.td-desc[data-v-19fc0b1e]{color:#475569;padding:14px 18px;font-size:14px}.td-empty[data-v-19fc0b1e]{text-align:center;color:#94a3b8;padding:28px;font-size:14px}.row-menu-wrap[data-v-19fc0b1e]{display:inline-block;position:relative}.btn-kebab[data-v-19fc0b1e]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px;transition:all .15s}.btn-kebab[data-v-19fc0b1e]:hover,.btn-kebab.active[data-v-19fc0b1e]{color:#334155;background:#f1f5f9}.row-menu[data-v-19fc0b1e]{z-index:30;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.rm-item[data-v-19fc0b1e]{cursor:pointer;color:#334155;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:background .12s;display:flex}.rm-item i[data-v-19fc0b1e]{text-align:center;color:#94a3b8;width:16px}.rm-item[data-v-19fc0b1e]:hover{background:#f1f5f9}.rm-item.danger[data-v-19fc0b1e],.rm-item.danger i[data-v-19fc0b1e]{color:#ef4444}.rm-item.danger[data-v-19fc0b1e]:hover{background:#fef2f2}.rm-item.disabled[data-v-19fc0b1e]{color:#cbd5e1;cursor:not-allowed}.rm-item.disabled i[data-v-19fc0b1e]{color:#cbd5e1}.rm-item.disabled[data-v-19fc0b1e]:hover{background:0 0}.menu-pop-enter-active[data-v-19fc0b1e],.menu-pop-leave-active[data-v-19fc0b1e]{transform-origin:100% 0;transition:opacity .12s,transform .12s}.menu-pop-enter-from[data-v-19fc0b1e],.menu-pop-leave-to[data-v-19fc0b1e]{opacity:0;transform:scale(.95)}.departments[data-v-19fc0b1e]{padding:0}.th-count[data-v-19fc0b1e]{width:150px}.td-name[data-v-19fc0b1e]{white-space:nowrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.dept-icon-sm[data-v-19fc0b1e]{border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.td-count[data-v-19fc0b1e]{padding:14px 18px}.count-chip[data-v-19fc0b1e]{color:#475569;background:#f1f5f9;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary[data-v-19fc0b1e]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-primary[data-v-19fc0b1e]:hover{background:var(--primary-dark)}.btn-primary[data-v-19fc0b1e]:disabled{opacity:.6;cursor:not-allowed}.overlay[data-v-19fc0b1e]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-19fc0b1e]{background:var(--bg-card);border-radius:var(--radius);z-index:201;width:400px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal-head[data-v-19fc0b1e]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-19fc0b1e]{color:var(--text-primary);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-19fc0b1e]{color:var(--primary)}.modal-close[data-v-19fc0b1e]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-19fc0b1e]{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.modal-foot[data-v-19fc0b1e]{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.fg[data-v-19fc0b1e]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-19fc0b1e]{color:var(--text-secondary);font-size:13px;font-weight:600}.req[data-v-19fc0b1e]{color:#ef4444}.fi[data-v-19fc0b1e]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.fi[data-v-19fc0b1e]:focus{border-color:var(--primary);background:#fff}.fi-ta[data-v-19fc0b1e]{resize:vertical;min-height:64px}.fi-sel[data-v-19fc0b1e]{cursor:pointer}.fi-err[data-v-19fc0b1e]{border-color:#ef4444}.save-err[data-v-19fc0b1e]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.btn-ghost[data-v-19fc0b1e]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:600}.btn-ghost[data-v-19fc0b1e]:disabled{opacity:.5;cursor:not-allowed}.overlay-fade-enter-active[data-v-19fc0b1e],.overlay-fade-leave-active[data-v-19fc0b1e]{transition:opacity .2s}.overlay-fade-enter-from[data-v-19fc0b1e],.overlay-fade-leave-to[data-v-19fc0b1e]{opacity:0}.modal-pop-enter-active[data-v-19fc0b1e],.modal-pop-leave-active[data-v-19fc0b1e]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-19fc0b1e],.modal-pop-leave-to[data-v-19fc0b1e]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=500px){.modal[data-v-19fc0b1e]{width:calc(100vw - 32px)}}.schedule[data-v-599f8ea8],.schedule-content[data-v-599f8ea8]{flex-direction:column;gap:16px;display:flex}.sch-toolbar[data-v-599f8ea8]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:20px;padding:14px 20px;display:flex}.month-nav[data-v-599f8ea8]{flex-shrink:0;align-items:center;gap:8px;display:flex}.nav-btn[data-v-599f8ea8]{border:1px solid var(--border);background:var(--bg-main);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.nav-btn[data-v-599f8ea8]:hover{border-color:var(--primary);color:var(--primary)}.month-label[data-v-599f8ea8]{color:var(--text-primary);text-align:center;min-width:145px;font-size:15px;font-weight:700}.toolbar-filters[data-v-599f8ea8]{flex-shrink:0;gap:10px;display:flex}.fi-sm[data-v-599f8ea8]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.fi-sm[data-v-599f8ea8]:focus{border-color:var(--primary)}.search-wrap[data-v-599f8ea8]{position:relative}.search-icon[data-v-599f8ea8]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-599f8ea8]{width:180px;padding-left:30px}.toolbar-actions[data-v-599f8ea8]{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.btn-outline[data-v-599f8ea8]{border:1px solid var(--primary);color:var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-outline[data-v-599f8ea8]:hover{background:var(--primary);color:#fff}.btn-primary[data-v-599f8ea8]{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-primary[data-v-599f8ea8]:hover{background:var(--primary-dark)}.btn-primary[data-v-599f8ea8]:disabled{opacity:.5;cursor:not-allowed}.btn-full[data-v-599f8ea8]{justify-content:center;width:100%}.err-box[data-v-599f8ea8]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;padding:14px 18px;font-size:14px;display:flex}.retry-btn[data-v-599f8ea8]{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.loading-box[data-v-599f8ea8]{text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;padding:40px;font-size:14px;display:flex}.empty-state[data-v-599f8ea8]{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;display:flex}.empty-state i[data-v-599f8ea8]{opacity:.3;font-size:48px}.table-scroll[data-v-599f8ea8]{border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.sch-table[data-v-599f8ea8]{border-collapse:collapse;background:var(--bg-card);width:100%;min-width:800px}.th-name[data-v-599f8ea8]{color:var(--text-secondary);text-transform:uppercase;border-bottom:2px solid var(--border);text-align:left;z-index:3;letter-spacing:.05em;background:#f8fafc;min-width:190px;padding:11px 16px;font-size:11px;font-weight:700;position:sticky;left:0}.th-day[data-v-599f8ea8]{border-bottom:2px solid var(--border);text-align:center;background:#f8fafc;min-width:80px;padding:6px 4px}.th-day.today-col[data-v-599f8ea8]{background:#eff6ff}.th-day-inner[data-v-599f8ea8]{flex-direction:column;align-items:center;gap:1px;display:flex}.th-dow[data-v-599f8ea8]{color:var(--text-secondary);font-size:9px;font-weight:600}.th-num[data-v-599f8ea8]{color:var(--text-primary);font-size:12px;font-weight:700}.td-name[data-v-599f8ea8]{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:2;padding:9px 16px;position:sticky;left:0}.td-cell[data-v-599f8ea8]{border-bottom:1px solid var(--border);text-align:center;cursor:pointer;padding:4px 5px;transition:background .12s;position:relative}.att-dot[data-v-599f8ea8]{z-index:1;border-radius:50%;width:8px;height:8px;position:absolute;top:3px;right:3px;box-shadow:0 0 0 1.5px #fff}.att-normal[data-v-599f8ea8]{background:#10b981}.att-late[data-v-599f8ea8]{background:#f59e0b}.att-absent[data-v-599f8ea8]{background:#ef4444}.att-leave[data-v-599f8ea8]{background:#8b5cf6}.att-in_progress[data-v-599f8ea8]{background:#3b82f6}.att-legend[data-v-599f8ea8]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px;padding:10px 18px;font-size:12px;display:flex}.att-legend .al-title[data-v-599f8ea8]{color:var(--text-primary);font-weight:700}.att-legend .al-item[data-v-599f8ea8]{align-items:center;gap:5px;display:inline-flex}.att-legend .al-dot[data-v-599f8ea8]{box-shadow:none;position:static}.att-legend .al-muted[data-v-599f8ea8]{color:#94a3b8}.att-legend .al-help[data-v-599f8ea8]{border-top:1px solid var(--border);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:4px;margin-top:4px;padding-top:6px;display:flex}.td-cell[data-v-599f8ea8]:hover{background:#f0f4ff}.td-cell.today-col[data-v-599f8ea8]{background:#f0f7ff}.td-cell.dayoff-weekly[data-v-599f8ea8]{background:#fff7ed}.td-cell.dayoff-weekly[data-v-599f8ea8]:hover{background:#ffedd5}.td-cell.dayoff-annual[data-v-599f8ea8]{background:#fff1f1}.td-cell.dayoff-annual[data-v-599f8ea8]:hover{background:#ffe4e4}.emp-cell[data-v-599f8ea8]{align-items:center;gap:8px;min-width:170px;display:flex}.mini-av[data-v-599f8ea8]{color:#fff;border-radius:7px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.emp-n[data-v-599f8ea8]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.emp-d[data-v-599f8ea8]{color:var(--text-secondary);font-size:11px}.shift-chip[data-v-599f8ea8]{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-radius:5px;max-width:74px;padding:3px 6px;font-size:11px;font-weight:700;display:inline-block;overflow:hidden}.shift-chip--time[data-v-599f8ea8]{font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;padding:2px 7px;line-height:1.25;display:inline-flex}.shift-chip--time .sc-start[data-v-599f8ea8]{font-weight:700}.shift-chip--time .sc-end[data-v-599f8ea8]{opacity:.8;font-size:10px;font-weight:600}.shift-chip--actual[data-v-599f8ea8]{border:1px dashed;border-radius:8px}.chip-override[data-v-599f8ea8]{outline-offset:1px;outline:2px solid #f97316}.shift-off[data-v-599f8ea8]{color:#cbd5e1;font-size:11px}.shift-off-chip[data-v-599f8ea8]{flex-direction:column;align-items:center;line-height:1.15;display:inline-flex}.shift-off-chip .soc-main[data-v-599f8ea8]{font-size:11px;font-weight:700}.shift-off-chip .soc-sub[data-v-599f8ea8]{opacity:.85;font-size:9px;font-weight:600}.dayoff-weekly .shift-off-chip[data-v-599f8ea8]{color:#c2410c}.dayoff-annual .shift-off-chip[data-v-599f8ea8]{color:#b91c1c}.pagesize-wrap[data-v-599f8ea8]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-599f8ea8]{color:var(--text-secondary);font-size:13px}.pager[data-v-599f8ea8]{background:var(--bg-card);box-shadow:var(--shadow);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.pager-info[data-v-599f8ea8]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-599f8ea8]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-599f8ea8]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-599f8ea8]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-599f8ea8]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-599f8ea8]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-599f8ea8]{color:#94a3b8;padding:0 2px}.legend-dayoff[data-v-599f8ea8]{border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.legend-weekly[data-v-599f8ea8]{color:#c2410c;background:#fff7ed}.legend-annual[data-v-599f8ea8]{color:#b91c1c;background:#fff1f1}.overlay[data-v-599f8ea8]{z-index:200;background:#00000073;position:fixed;inset:0}.modal[data-v-599f8ea8]{background:var(--bg-card);border-radius:var(--radius);z-index:201;width:380px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 60px #00000038}.modal-monthly[data-v-599f8ea8]{flex-direction:column;width:560px;max-height:88vh;display:flex}.modal-head[data-v-599f8ea8]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.modal-head h3[data-v-599f8ea8]{color:var(--text-primary);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-599f8ea8]{color:var(--primary)}.modal-close[data-v-599f8ea8]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-599f8ea8]{flex-direction:column;gap:14px;max-height:70vh;padding:18px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-599f8ea8]{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:14px 22px;display:flex}.assign-info[data-v-599f8ea8]{background:var(--bg-main);border-radius:9px;align-items:center;gap:10px;padding:10px 14px;display:flex}.req-sub[data-v-599f8ea8]{color:var(--text-secondary);margin-top:2px;font-size:12px}.override-badge[data-v-599f8ea8]{color:#f97316;white-space:nowrap;border:2px solid #f97316;border-radius:6px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700}.shift-picker[data-v-599f8ea8]{flex-direction:column;gap:7px;display:flex}.shift-pick-btn[data-v-599f8ea8]{cursor:pointer;border:2px solid #0000;border-radius:9px;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;transition:all .18s;display:flex}.shift-pick-btn.selected[data-v-599f8ea8]{border-color:currentColor}.sp-name[data-v-599f8ea8]{flex:1;font-size:13px;font-weight:600}.sp-time[data-v-599f8ea8]{opacity:.8;font-size:11px}.shift-off-btn[data-v-599f8ea8]{color:#64748b;background:#f1f5f9}.shift-off-btn.selected[data-v-599f8ea8]{border-color:#94a3b8}.btn-clear-ov[data-v-599f8ea8]{color:#f97316;cursor:pointer;background:0 0;border:1px solid #f97316;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-clear-ov[data-v-599f8ea8]:hover{background:#fff7ed}.modal-monthly[data-v-599f8ea8]{width:480px}.ma-section[data-v-599f8ea8]{flex-direction:column;gap:10px;display:flex}.ma-step[data-v-599f8ea8]{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.step-num[data-v-599f8ea8]{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:grid}.ma-emp-picker[data-v-599f8ea8]{flex-direction:column;gap:8px;display:flex}.ma-search-box[data-v-599f8ea8]{position:relative}.ma-search-icon[data-v-599f8ea8]{color:var(--text-secondary);pointer-events:none;z-index:1;font-size:12px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.ma-search-input[data-v-599f8ea8]{box-sizing:border-box;border:1.5px solid var(--border);width:100%;color:var(--text-primary);background:#fff;border-radius:9px;outline:none;padding:10px 70px 10px 34px;font-family:inherit;font-size:13px;transition:border-color .2s;display:block}.ma-search-input[data-v-599f8ea8]:focus{border-color:var(--primary)}.ma-search-count[data-v-599f8ea8]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);pointer-events:none;border-radius:20px;padding:2px 7px;font-size:11px;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.emp-list[data-v-599f8ea8]{border:1.5px solid var(--border);background:#fff;border-radius:10px;max-height:220px;overflow:hidden auto}.emp-list-item[data-v-599f8ea8]{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;transition:background .12s;display:flex}.emp-list-item[data-v-599f8ea8]:last-child{border-bottom:none}.emp-list-item[data-v-599f8ea8]:hover{background:#f0f4ff}.emp-list-arrow[data-v-599f8ea8]{color:var(--text-secondary);opacity:.5;flex-shrink:0;margin-left:auto;font-size:10px}.emp-list-empty[data-v-599f8ea8]{text-align:center;color:var(--text-secondary);border:1.5px solid var(--border);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:13px;display:flex}.mini-av--sm[data-v-599f8ea8]{border-radius:8px;flex-shrink:0;width:30px;height:30px;font-size:11px}.emp-code-tag[data-v-599f8ea8]{color:#64748b;background:#f1f5f9;border-radius:4px;margin-right:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.ma-selected-emp[data-v-599f8ea8]{border:2px solid var(--primary);background:#eff6ff;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;display:flex}.btn-change-emp[data-v-599f8ea8]{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:#fff;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;margin-left:auto;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:flex}.btn-change-emp[data-v-599f8ea8]:hover{background:var(--primary);color:#fff}.ma-info[data-v-599f8ea8]{flex:1;min-width:0}.ma-name[data-v-599f8ea8]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.ma-dept[data-v-599f8ea8]{color:var(--text-secondary);font-size:11px}.ma-month-grid[data-v-599f8ea8]{flex-direction:column;gap:8px;display:flex}.month-pill-grid[data-v-599f8ea8]{grid-template-columns:repeat(6,1fr);gap:5px;display:grid}.month-pill[data-v-599f8ea8]{border:1px solid var(--border);background:var(--bg-main);color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:7px;padding:6px 4px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.month-pill[data-v-599f8ea8]:hover{border-color:var(--primary);color:var(--primary)}.month-pill--active[data-v-599f8ea8]{background:var(--primary);color:#fff;border-color:var(--primary)}.fade-up-enter-active[data-v-599f8ea8]{transition:all .3s}.fade-up-enter-from[data-v-599f8ea8]{opacity:0;transform:translateY(6px)}.save-err[data-v-599f8ea8]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.save-ok[data-v-599f8ea8]{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.btn-ghost[data-v-599f8ea8]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:600}.btn-ghost[data-v-599f8ea8]:disabled{opacity:.5;cursor:not-allowed}.modal-mgr[data-v-599f8ea8]{flex-direction:column;width:520px;max-height:88vh;display:flex}.mgr-list-body[data-v-599f8ea8]{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.btn-add-shift[data-v-599f8ea8]{white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:flex}.overlay-form[data-v-599f8ea8]{z-index:202}.modal-shift-form[data-v-599f8ea8]{z-index:203;flex-direction:column;width:420px;max-height:88vh;display:flex}.cancel-edit-btn[data-v-599f8ea8]:hover{color:#ef4444;border-color:#ef4444}.st-preview[data-v-599f8ea8]{border:1px solid;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;display:flex}.st-preview-bar[data-v-599f8ea8]{border-radius:3px;flex-shrink:0;width:5px;height:36px}.st-preview-name[data-v-599f8ea8]{flex:1;font-size:14px;font-weight:700}.st-preview-time[data-v-599f8ea8]{opacity:.8;white-space:nowrap;font-size:11px}.mgr-time-row[data-v-599f8ea8]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.fg[data-v-599f8ea8]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-599f8ea8]{color:var(--text-secondary);font-size:12px;font-weight:600}.req[data-v-599f8ea8]{color:#ef4444}.fi[data-v-599f8ea8]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);border-radius:8px;outline:none;padding:9px 11px;font-family:inherit;font-size:13px;transition:border-color .2s}.fi[data-v-599f8ea8]:focus{border-color:var(--primary);background:#fff}.check-label[data-v-599f8ea8]{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.check-label input[data-v-599f8ea8]{cursor:pointer;width:16px;height:16px}.color-row[data-v-599f8ea8]{flex-wrap:wrap;gap:7px;display:flex}.color-dot[data-v-599f8ea8]{cursor:pointer;border-radius:50%;width:22px;height:22px;transition:transform .15s,outline .15s}.color-dot[data-v-599f8ea8]:hover{transform:scale(1.2)}.color-dot--active[data-v-599f8ea8]{outline:3px solid var(--text-primary);outline-offset:2px;transform:scale(1.15)}.shift-list[data-v-599f8ea8]{flex-direction:column;flex:1;gap:6px;padding-right:2px;display:flex;overflow-y:auto}.shift-row[data-v-599f8ea8]{background:var(--bg-main);border:1px solid var(--border);border-radius:9px;flex-shrink:0;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.shift-row--editing[data-v-599f8ea8]{border-color:var(--primary);background:#eff6ff}.sr-color[data-v-599f8ea8]{border-radius:3px;flex-shrink:0;width:5px;height:36px}.sr-info[data-v-599f8ea8]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sr-name[data-v-599f8ea8]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.sr-time[data-v-599f8ea8]{color:var(--text-secondary);font-size:11px}.sr-break-inline[data-v-599f8ea8]{opacity:.7}.sr-acts[data-v-599f8ea8]{flex-shrink:0;gap:5px;display:flex}.act-btn[data-v-599f8ea8]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:7px;place-items:center;width:28px;height:28px;font-size:12px;transition:all .15s;display:grid}.act-edit[data-v-599f8ea8]{color:#4f46e5}.act-edit[data-v-599f8ea8]:hover{background:#eff6ff;border-color:#4f46e5}.act-del[data-v-599f8ea8]{color:#ef4444}.act-del[data-v-599f8ea8]:hover{background:#fef2f2;border-color:#ef4444}.act-btn[data-v-599f8ea8]:disabled{opacity:.35;cursor:not-allowed}.sr-empty[data-v-599f8ea8]{text-align:center;color:var(--text-secondary);padding:30px;font-size:13px}.delete-confirm[data-v-599f8ea8]{color:#92400e;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;flex-direction:column;flex-shrink:0;gap:10px;padding:12px 14px;font-size:13px;display:flex}.del-err[data-v-599f8ea8]{color:#dc2626;font-size:12px}.del-acts[data-v-599f8ea8]{justify-content:flex-end;gap:8px;display:flex}.btn-sm-txt[data-v-599f8ea8]{border-radius:7px;padding:6px 14px;font-size:12px}.btn-danger[data-v-599f8ea8]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-danger[data-v-599f8ea8]:hover{background:#dc2626}.btn-danger[data-v-599f8ea8]:disabled{opacity:.6;cursor:not-allowed}.overlay-fade-enter-active[data-v-599f8ea8],.overlay-fade-leave-active[data-v-599f8ea8]{transition:opacity .2s}.overlay-fade-enter-from[data-v-599f8ea8],.overlay-fade-leave-to[data-v-599f8ea8]{opacity:0}.modal-pop-enter-active[data-v-599f8ea8],.modal-pop-leave-active[data-v-599f8ea8]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-599f8ea8],.modal-pop-leave-to[data-v-599f8ea8]{opacity:0;transform:translate(-50%,-50%)scale(.93)}@media (width<=768px){.sch-toolbar[data-v-599f8ea8]{flex-direction:column;align-items:stretch}.toolbar-actions[data-v-599f8ea8]{margin-left:0}.search-input[data-v-599f8ea8]{width:100%}.modal[data-v-599f8ea8],.modal-monthly[data-v-599f8ea8],.modal-mgr[data-v-599f8ea8],.modal-shift-form[data-v-599f8ea8]{width:calc(100vw - 32px)}.month-pill-grid[data-v-599f8ea8]{grid-template-columns:repeat(4,1fr)}.form-grid[data-v-599f8ea8]{grid-template-columns:1fr}}.manual-att[data-v-90ba1859]{flex-direction:column;gap:18px;display:flex}.ma-card[data-v-90ba1859]{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:14px;padding:20px 22px}.ma-card h3[data-v-90ba1859]{color:var(--text-primary,#1e293b);align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.ma-sub[data-v-90ba1859]{color:var(--text-light,#94a3b8);margin:6px 0 16px;font-size:13px}.ma-err[data-v-90ba1859]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;align-items:center;gap:8px;margin-bottom:14px;padding:9px 12px;font-size:13px;font-weight:600;display:flex}.ma-grid[data-v-90ba1859]{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fg[data-v-90ba1859]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-90ba1859]{color:var(--text-secondary,#475569);font-size:12.5px;font-weight:600}.fg .req[data-v-90ba1859]{color:#ef4444}.fg .opt[data-v-90ba1859]{color:#94a3b8;font-size:11px;font-weight:400}.fg-full[data-v-90ba1859]{grid-column:1/-1}.ma-hint[data-v-90ba1859]{align-items:center;gap:6px;margin-top:3px;font-size:12px;font-weight:600;display:inline-flex}.hint-shift[data-v-90ba1859]{color:#059669}.hint-off[data-v-90ba1859]{color:#d97706}.hint-none[data-v-90ba1859]{color:#64748b}.fg-times[data-v-90ba1859]{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:14px;display:grid}.fg-times>div[data-v-90ba1859]{flex-direction:column;gap:5px;display:flex}.fi[data-v-90ba1859]{border:1px solid var(--border,#e2e8f0);box-sizing:border-box;background:#fff;border-radius:9px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-90ba1859]:focus{border-color:var(--primary,#6366f1);outline:none}textarea.fi[data-v-90ba1859]{resize:vertical}.ma-foot[data-v-90ba1859]{justify-content:flex-end;margin-top:18px;display:flex}.btn-primary[data-v-90ba1859]{background:var(--primary,#6366f1);color:#fff;cursor:pointer;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary[data-v-90ba1859]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-90ba1859]:hover:not(:disabled){opacity:.9}.ma-state[data-v-90ba1859]{text-align:center;color:var(--text-light);padding:30px}.ma-table-wrap[data-v-90ba1859]{margin-top:12px;overflow-x:auto}.ma-table[data-v-90ba1859]{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.ma-table th[data-v-90ba1859]{text-align:left;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 12px;font-weight:700}.ma-table td[data-v-90ba1859]{color:#1e293b;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:10px 12px}.ma-emp[data-v-90ba1859]{font-weight:600}.ma-empno[data-v-90ba1859]{color:#94a3b8;font-size:11px}.ma-time[data-v-90ba1859]{font-variant-numeric:tabular-nums;font-weight:600}.ma-reason[data-v-90ba1859]{white-space:normal;color:#475569;max-width:220px}.ma-when[data-v-90ba1859]{color:#94a3b8}.ma-empty[data-v-90ba1859]{text-align:center;color:#94a3b8;padding:30px}.ma-status[data-v-90ba1859]{border-radius:20px;padding:2px 9px;font-size:12px;font-weight:600}.st-normal[data-v-90ba1859]{color:#059669;background:#d1fae5}.st-late[data-v-90ba1859]{color:#d97706;background:#fef3c7}.st-prog[data-v-90ba1859]{color:#2563eb;background:#dbeafe}.ma-toast[data-v-90ba1859]{color:#fff;z-index:9999;border-radius:10px;align-items:center;gap:9px;padding:12px 20px;font-size:14px;font-weight:600;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.ma-toast-success[data-v-90ba1859]{background:#10b981}.ma-toast-error[data-v-90ba1859]{background:#ef4444}.ma-toast-enter-active[data-v-90ba1859],.ma-toast-leave-active[data-v-90ba1859]{transition:all .25s}.ma-toast-enter-from[data-v-90ba1859],.ma-toast-leave-to[data-v-90ba1859]{opacity:0;transform:translate(-50%)translateY(12px)}@media (width<=640px){.ma-grid[data-v-90ba1859]{grid-template-columns:1fr}}.toolbar[data-v-e8a60a03]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-bar[data-v-e8a60a03]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:6px;display:flex}.tab-btn[data-v-e8a60a03]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tab-btn.active[data-v-e8a60a03]{background:var(--primary);color:#fff}.tab-btn[data-v-e8a60a03]:not(.active):hover{background:var(--bg-main)}.tab-badge[data-v-e8a60a03]{color:#fff;background:#f59e0b;border-radius:10px;padding:1px 6px;font-size:10px}.tab-badge-approved[data-v-e8a60a03]{background:#10b981}.tab-badge-rejected[data-v-e8a60a03]{background:#ef4444}.tab-btn.active .tab-badge[data-v-e8a60a03]{background:#ffffff4d}.filter-wrap[data-v-e8a60a03]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-filter[data-v-e8a60a03],.sel[data-v-e8a60a03]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.input-filter[data-v-e8a60a03]:focus,.sel[data-v-e8a60a03]:focus{border-color:var(--primary)}.search-wrap[data-v-e8a60a03]{position:relative}.search-icon[data-v-e8a60a03]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-e8a60a03]{cursor:text;width:200px;padding-left:30px!important}.search-input[data-v-e8a60a03]:focus{border-color:var(--primary)}.btn-refresh[data-v-e8a60a03]{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.btn-refresh[data-v-e8a60a03]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-e8a60a03]:disabled{opacity:.5;cursor:not-allowed}.err-box[data-v-e8a60a03]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.err-retry[data-v-e8a60a03]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #f87171;border-radius:6px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.loading-box[data-v-e8a60a03]{text-align:center;color:var(--text-secondary);padding:48px;font-size:14px}.req-list[data-v-e8a60a03]{flex-direction:column;gap:12px;display:flex}.empty-state[data-v-e8a60a03]{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px;display:flex}.empty-state i[data-v-e8a60a03]{font-size:40px}.req-card[data-v-e8a60a03]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:stretch;gap:16px;padding:18px 20px;transition:box-shadow .2s;display:flex}.req-card[data-v-e8a60a03]:hover{box-shadow:var(--shadow-md)}.req-left[data-v-e8a60a03]{flex:1;gap:14px;display:flex}.req-avatar[data-v-e8a60a03]{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid;overflow:hidden}.req-avatar.large[data-v-e8a60a03]{border-radius:11px;width:48px;height:48px;font-size:15px}.req-avatar-img[data-v-e8a60a03]{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.req-info[data-v-e8a60a03]{flex-direction:column;flex:1;gap:5px;display:flex}.req-name-row[data-v-e8a60a03]{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.req-name[data-v-e8a60a03]{color:var(--text-primary);font-size:15px;font-weight:700}.emp-code-tag[data-v-e8a60a03]{color:#64748b;background:#f1f5f9;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.dept-tag[data-v-e8a60a03]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.area-tag[data-v-e8a60a03]{color:#c2410c;background:#fff7ed;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.area-tag i[data-v-e8a60a03]{font-size:10px}.req-datetime[data-v-e8a60a03]{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.req-reason[data-v-e8a60a03]{color:var(--text-secondary);font-size:13px}.reason-label[data-v-e8a60a03]{color:#475569;font-weight:600}.req-meta[data-v-e8a60a03]{color:var(--text-secondary);opacity:.7;font-size:11px}.req-result[data-v-e8a60a03]{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.req-result.approved[data-v-e8a60a03]{color:#10b981}.req-result.rejected[data-v-e8a60a03]{color:#ef4444}.rr-head[data-v-e8a60a03]{align-items:center;gap:6px;display:inline-flex}.reject-reason-text[data-v-e8a60a03]{color:inherit;flex-basis:100%;padding-left:18px;font-size:12px;font-weight:400}.rr-label[data-v-e8a60a03]{color:inherit;font-weight:700}.req-right[data-v-e8a60a03]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.action-btns[data-v-e8a60a03]{flex-direction:column;gap:6px;display:flex}.action-btns-bottom[data-v-e8a60a03]{flex-direction:row;gap:10px;margin-top:12px}.action-btns-bottom .btn-approve[data-v-e8a60a03],.action-btns-bottom .btn-reject[data-v-e8a60a03]{padding:10px 20px;font-size:14px}.status-pill[data-v-e8a60a03]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.pill-pending[data-v-e8a60a03]{color:#854d0e;background:#fef3c7}.pill-approved[data-v-e8a60a03]{color:#065f46;background:#d1fae5}.pill-rejected[data-v-e8a60a03]{color:#991b1b;background:#fee2e2}.pill-cancelled[data-v-e8a60a03]{color:#64748b;background:#f1f5f9}.btn-approve[data-v-e8a60a03]{color:#065f46;cursor:pointer;white-space:nowrap;background:#d1fae5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-approve[data-v-e8a60a03]:hover:not(:disabled){color:#fff;background:#10b981}.btn-approve[data-v-e8a60a03]:disabled{opacity:.6;cursor:not-allowed}.btn-reject[data-v-e8a60a03]{color:#991b1b;cursor:pointer;white-space:nowrap;background:#fee2e2;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-reject[data-v-e8a60a03]:hover{color:#fff;background:#ef4444}.btn-detail[data-v-e8a60a03]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-top:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-detail[data-v-e8a60a03]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-e8a60a03]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-e8a60a03]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-sm[data-v-e8a60a03]{width:400px}.modal-head[data-v-e8a60a03]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-e8a60a03]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-e8a60a03]{color:var(--primary)}.modal-close[data-v-e8a60a03]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-e8a60a03]{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-e8a60a03]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.detail-person[data-v-e8a60a03]{background:var(--bg-main);border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex}.dp-tags[data-v-e8a60a03]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.detail-person .dept-tag[data-v-e8a60a03],.detail-person .area-tag[data-v-e8a60a03]{border:1px solid var(--border);background:#fff}.detail-grid[data-v-e8a60a03]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dg-item[data-v-e8a60a03]{flex-direction:column;gap:3px;display:flex}.dg-item.dg-full[data-v-e8a60a03]{grid-column:1/-1}.dg-label[data-v-e8a60a03]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.dg-item span[data-v-e8a60a03]:last-child{color:var(--text-primary);font-size:14px;font-weight:500}.reject-desc[data-v-e8a60a03]{color:var(--text-secondary);font-size:14px;line-height:1.6}.fg[data-v-e8a60a03]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-e8a60a03]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-e8a60a03]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-e8a60a03]:focus{border-color:var(--primary);background:#fff}.btn-ghost[data-v-e8a60a03]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-reject-confirm[data-v-e8a60a03]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:700;display:flex}.btn-reject-confirm[data-v-e8a60a03]:hover:not(:disabled){background:#dc2626}.btn-reject-confirm[data-v-e8a60a03]:disabled{opacity:.5;cursor:not-allowed}.pager[data-v-e8a60a03]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.pager-info[data-v-e8a60a03]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-e8a60a03]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-e8a60a03]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-e8a60a03]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-e8a60a03]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-e8a60a03]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-e8a60a03]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-e8a60a03]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-e8a60a03]{color:var(--text-secondary);font-size:13px}.overlay-fade-enter-active[data-v-e8a60a03],.overlay-fade-leave-active[data-v-e8a60a03]{transition:opacity .2s}.overlay-fade-enter-from[data-v-e8a60a03],.overlay-fade-leave-to[data-v-e8a60a03]{opacity:0}.modal-pop-enter-active[data-v-e8a60a03],.modal-pop-leave-active[data-v-e8a60a03]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-e8a60a03],.modal-pop-leave-to[data-v-e8a60a03]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.req-card[data-v-e8a60a03]{flex-direction:column}.req-right[data-v-e8a60a03]{flex-direction:row;justify-content:flex-end;align-items:center;width:100%}.action-btns[data-v-e8a60a03]{flex-direction:row}.tab-bar[data-v-e8a60a03]{width:100%}.tab-btn[data-v-e8a60a03]{flex:1;justify-content:center;gap:5px;padding:9px 6px;font-size:12px}.filter-wrap[data-v-e8a60a03]{width:100%}.search-wrap[data-v-e8a60a03]{flex:100%;width:100%}.search-input[data-v-e8a60a03]{box-sizing:border-box;width:100%!important}.action-btns-bottom[data-v-e8a60a03]{width:100%}.action-btns-bottom .btn-approve[data-v-e8a60a03],.action-btns-bottom .btn-reject[data-v-e8a60a03]{flex:1;justify-content:center}}.leave-page[data-v-e8a60a03]{flex-direction:column;gap:20px;display:flex}.modal[data-v-e8a60a03]{width:420px}.modal-detail[data-v-e8a60a03]{width:500px;max-width:92vw}.leave-badge[data-v-e8a60a03]{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.req-doc[data-v-e8a60a03]{color:#10b981;align-items:center;gap:5px;font-size:12px;display:flex}.req-doc.missing[data-v-e8a60a03]{color:#f59e0b}.req-doc-btn[data-v-e8a60a03]{cursor:pointer;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:7px;padding:4px 10px;font-family:inherit;font-weight:600}.req-doc-btn[data-v-e8a60a03]:hover{background:#d1fae5}.doc-overlay[data-v-e8a60a03]{z-index:300;background:#0009;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.doc-modal[data-v-e8a60a03]{background:#fff;border-radius:14px;flex-direction:column;max-width:92vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 50px #0000004d}.doc-modal-head[data-v-e8a60a03]{border-bottom:1px solid var(--border);color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.doc-head-actions[data-v-e8a60a03]{align-items:center;gap:8px;display:flex}.doc-open-new[data-v-e8a60a03],.doc-close[data-v-e8a60a03]{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:#fff;border-radius:8px;place-items:center;text-decoration:none;display:grid}.doc-open-new[data-v-e8a60a03]:hover,.doc-close[data-v-e8a60a03]:hover{background:var(--bg-main);color:var(--primary)}.doc-modal-body[data-v-e8a60a03]{padding:14px;overflow:auto}.doc-modal-body img[data-v-e8a60a03]{border-radius:8px;max-width:100%;max-height:76vh;margin:0 auto;display:block}.fade-enter-active[data-v-e8a60a03],.fade-leave-active[data-v-e8a60a03]{transition:opacity .2s}.fade-enter-from[data-v-e8a60a03],.fade-leave-to[data-v-e8a60a03]{opacity:0}.reject-who[data-v-e8a60a03]{background:var(--bg-main);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.mini-avatar[data-v-e8a60a03]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.reject-name[data-v-e8a60a03]{color:var(--text-primary);font-size:14px;font-weight:700}.reject-sub[data-v-e8a60a03]{color:var(--text-secondary);margin-top:2px;font-size:12px}.reports-layout[data-v-c39f3109]{background:var(--bg-main);border-radius:var(--radius);min-height:calc(100vh - 64px);box-shadow:var(--shadow);gap:0;display:flex;overflow:hidden}.report-sidebar[data-v-c39f3109]{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex}.sidebar-title[data-v-c39f3109]{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:20px 20px 14px;font-size:13px;font-weight:800;display:flex}.sidebar-title i[data-v-c39f3109]{color:var(--primary)}.report-nav[data-v-c39f3109]{flex-direction:column;gap:2px;padding:10px;display:flex}.nav-item[data-v-c39f3109]{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.nav-item[data-v-c39f3109]:hover{background:var(--bg-main)}.nav-item.active[data-v-c39f3109]{background:var(--primary)}.nav-item.active .nav-label[data-v-c39f3109]{color:#fff}.nav-item.active .nav-desc[data-v-c39f3109]{color:#ffffffb3}.nav-item.active .nav-arrow[data-v-c39f3109]{color:#fff9}.nav-icon[data-v-c39f3109]{border-radius:9px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:14px;display:grid}.nav-item.active .nav-icon[data-v-c39f3109]{color:#fff!important;background:#fff3!important}.nav-text[data-v-c39f3109]{flex:1;min-width:0}.nav-label[data-v-c39f3109]{color:var(--text-primary);font-size:13px;font-weight:700;display:block}.nav-desc[data-v-c39f3109]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;display:block;overflow:hidden}.nav-arrow[data-v-c39f3109]{color:var(--text-light);flex-shrink:0;font-size:10px}.report-main[data-v-c39f3109]{flex-direction:column;flex:1;gap:20px;min-width:0;padding:24px;display:flex;overflow-y:auto}.report-header[data-v-c39f3109]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.rh-left[data-v-c39f3109]{align-items:center;gap:14px;display:flex}.rh-icon[data-v-c39f3109]{border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:20px;display:grid}.rh-title[data-v-c39f3109]{color:var(--text-primary);font-size:20px;font-weight:800}.rh-desc[data-v-c39f3109]{color:var(--text-secondary);margin-top:2px;font-size:13px}.export-group[data-v-c39f3109]{flex-wrap:wrap;gap:8px;display:flex}.btn-export[data-v-c39f3109]{cursor:pointer;background:var(--bg-card);border:1.5px solid;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s;display:flex}.btn-export[data-v-c39f3109]:hover{opacity:.85}.btn-export.green[data-v-c39f3109]{color:#10b981;border-color:#10b98130}.btn-export.red[data-v-c39f3109]{color:#ef4444;border-color:#ef444430}.btn-export.indigo[data-v-c39f3109]{color:#4f46e5;border-color:#4f46e530}.filter-bar[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px 18px;display:flex}.filter-group[data-v-c39f3109]{flex-direction:column;gap:5px;display:flex}.f-label[data-v-c39f3109]{color:var(--text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.f-input[data-v-c39f3109]{border:1px solid var(--border);background:var(--bg-main);color:var(--text-primary);border-radius:8px;outline:none;min-width:140px;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}.f-input[data-v-c39f3109]:focus{border-color:var(--primary)}.btn-search[data-v-c39f3109]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:700;transition:opacity .15s;display:flex}.btn-search[data-v-c39f3109]:hover{opacity:.9}.btn-export-xlsx[data-v-c39f3109]{color:#059669;cursor:pointer;white-space:nowrap;background:#f0fdf4;border:1.5px solid #10b98140;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn-export-xlsx[data-v-c39f3109]:hover:not(:disabled){color:#fff;background:#059669;border-color:#059669}.btn-export-xlsx[data-v-c39f3109]:disabled{opacity:.5;cursor:not-allowed}.card[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head[data-v-c39f3109]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.card-title[data-v-c39f3109]{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.card-title i[data-v-c39f3109]{color:var(--primary)}.card-sub[data-v-c39f3109]{color:var(--text-light);font-size:12px}.kpi-grid-6[data-v-c39f3109]{grid-template-columns:repeat(6,1fr);gap:14px;display:grid}.kpi-card[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:16px;transition:transform .15s;display:flex}.kpi-card[data-v-c39f3109]:hover{transform:translateY(-2px)}.kpi-icon[data-v-c39f3109]{border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:15px;display:grid}.kpi-val[data-v-c39f3109]{color:var(--text-primary);font-size:22px;font-weight:800;line-height:1}.kpi-sub[data-v-c39f3109]{margin-left:2px;font-size:13px;font-weight:500}.kpi-lbl[data-v-c39f3109]{color:var(--text-secondary);margin-top:2px;font-size:11px}.summary-row[data-v-c39f3109]{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.sum-card[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:16px;display:flex}.sum-icon[data-v-c39f3109]{border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:16px;display:grid}.sum-val[data-v-c39f3109]{color:var(--text-primary);font-size:22px;font-weight:800}.sum-sub[data-v-c39f3109]{font-size:13px;font-weight:500}.sum-lbl[data-v-c39f3109]{color:var(--text-secondary);margin-top:2px;font-size:11px}.chart-area[data-v-c39f3109]{padding:16px 18px 8px}.bar-chart[data-v-c39f3109]{align-items:flex-end;gap:3px;height:160px;display:flex}.bar-col[data-v-c39f3109]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;height:100%;display:flex}.bar-num[data-v-c39f3109]{color:var(--text-secondary);font-size:8px;font-weight:600}.bar[data-v-c39f3109]{border-radius:3px 3px 0 0;width:100%;min-height:4px;transition:height .3s}.bar-day[data-v-c39f3109]{color:var(--text-light);margin-top:3px;font-size:8px}.dept-bar-list[data-v-c39f3109]{flex-direction:column;gap:12px;padding:14px 18px;display:flex}.dept-bar-row[data-v-c39f3109]{align-items:center;gap:10px;display:flex}.db-label[data-v-c39f3109]{color:var(--text-secondary);flex-shrink:0;width:64px;font-size:12px;font-weight:600}.db-track[data-v-c39f3109]{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.db-fill[data-v-c39f3109]{border-radius:4px;height:8px;transition:width .5s}.db-val[data-v-c39f3109]{color:var(--text-primary);text-align:right;flex-shrink:0;width:52px;font-size:12px;font-weight:700}.ot-kpi-list[data-v-c39f3109]{flex-direction:column;gap:0;padding:14px 18px;display:flex}.ot-kpi-row[data-v-c39f3109]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.ot-kpi-row[data-v-c39f3109]:last-child{border-bottom:none}.ot-kpi-lbl[data-v-c39f3109]{color:var(--text-secondary);font-size:13px}.ot-kpi-val[data-v-c39f3109]{font-size:14px;font-weight:800}.leave-type-list[data-v-c39f3109]{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.leave-type-row[data-v-c39f3109]{align-items:center;gap:10px;display:flex}.lt-dot[data-v-c39f3109]{border-radius:3px;flex-shrink:0;width:10px;height:10px}.lt-label[data-v-c39f3109]{color:var(--text-secondary);flex-shrink:0;width:80px;font-size:12px;font-weight:600}.lt-track[data-v-c39f3109]{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.lt-fill[data-v-c39f3109]{border-radius:4px;height:8px;transition:width .5s}.lt-used[data-v-c39f3109]{color:var(--text-primary);text-align:right;width:28px;font-size:13px;font-weight:700}.lt-sep[data-v-c39f3109]{color:var(--text-light);font-size:12px}.lt-total[data-v-c39f3109]{color:var(--text-secondary);width:46px;font-size:12px}.lt-pct[data-v-c39f3109]{text-align:right;flex-shrink:0;width:36px;font-size:12px;font-weight:700}.two-col[data-v-c39f3109]{grid-template-columns:1fr 1fr;gap:20px;display:grid}.tbl-wrap[data-v-c39f3109]{overflow-x:auto}.dtable[data-v-c39f3109]{border-collapse:collapse;width:100%}.dtable th[data-v-c39f3109]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg-main);padding:11px 14px;font-size:11px;font-weight:700}.dtable td[data-v-c39f3109]{border-bottom:1px solid var(--border);padding:12px 14px;font-size:13px}.dtable tr:last-child td[data-v-c39f3109]{border-bottom:none}.dtable tr:hover td[data-v-c39f3109]{background:var(--bg-main)}.cell-person[data-v-c39f3109]{align-items:center;gap:9px;display:flex}.av[data-v-c39f3109]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.dept-tag[data-v-c39f3109]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.nc[data-v-c39f3109]{text-align:center;font-variant-numeric:tabular-nums;font-size:14px}.nc.green[data-v-c39f3109]{color:#10b981}.nc.amber[data-v-c39f3109]{color:#f59e0b}.nc.red[data-v-c39f3109]{color:#ef4444}.nc.sky[data-v-c39f3109]{color:#0ea5e9}.nc.violet[data-v-c39f3109]{color:#8b5cf6}.nc.bold[data-v-c39f3109]{font-weight:800}.bold[data-v-c39f3109]{font-weight:700}.prog-wrap[data-v-c39f3109]{align-items:center;gap:8px;min-width:120px;display:flex}.prog-bar[data-v-c39f3109]{border-radius:3px;min-width:4px;height:6px}.prog-pct[data-v-c39f3109]{color:var(--text-secondary);font-size:12px;font-weight:700}.status-chip[data-v-c39f3109]{border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.chip-green[data-v-c39f3109]{color:#059669;background:#d1fae5}.chip-amber[data-v-c39f3109]{color:#d97706;background:#fef3c7}.chip-sky[data-v-c39f3109]{color:#0284c7;background:#e0f2fe}.chip-gray[data-v-c39f3109]{background:var(--bg-main);color:var(--text-secondary)}.rank-badge[data-v-c39f3109]{background:var(--bg-main);width:24px;height:24px;color:var(--text-secondary);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.rank-hot[data-v-c39f3109]{color:#d97706;background:#fef3c7}.level-badge[data-v-c39f3109]{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.lvl-danger[data-v-c39f3109]{color:#ef4444;background:#fee2e2}.lvl-warn[data-v-c39f3109]{color:#d97706;background:#fef3c7}.lvl-ok[data-v-c39f3109]{color:#059669;background:#d1fae5}.shift-chip[data-v-c39f3109]{color:#7c3aed;background:#ede9fe;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.emp-profile-card[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:18px 20px;display:flex}.emp-pav[data-v-c39f3109]{color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:18px;font-weight:700;display:grid}.emp-pname[data-v-c39f3109]{color:var(--text-primary);font-size:17px;font-weight:800}.emp-pmeta[data-v-c39f3109]{color:var(--text-secondary);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.emp-pgap[data-v-c39f3109]{flex:1}.emp-pshift[data-v-c39f3109]{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.nav-group-label[data-v-c39f3109]{text-transform:uppercase;letter-spacing:.8px;color:var(--text-light);align-items:center;gap:6px;padding:6px 12px 4px;font-size:10px;font-weight:800;display:flex}.nav-divider[data-v-c39f3109]{border-top:1px solid var(--border);margin:6px 12px}.doc-tpl-section[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.doc-tpl-header[data-v-c39f3109]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.doc-tpl-title[data-v-c39f3109]{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.doc-tpl-title i[data-v-c39f3109]{color:var(--primary)}.doc-tpl-sub[data-v-c39f3109]{color:var(--text-light);font-size:12px}.doc-tpl-grid[data-v-c39f3109]{background:var(--border);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.doc-tpl-card[data-v-c39f3109]{background:var(--bg-card);cursor:pointer;text-align:left;border:2px solid #0000;border-radius:0;align-items:center;gap:12px;padding:16px;font-family:inherit;transition:all .15s;display:flex;position:relative}.doc-tpl-card[data-v-c39f3109]:hover{background:var(--bg-main)}.doc-tpl-card.tpl-active[data-v-c39f3109]{background:var(--bg-card);z-index:1}.tpl-icon-wrap[data-v-c39f3109]{border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:16px;display:grid}.tpl-body[data-v-c39f3109]{flex:1;min-width:0}.tpl-name[data-v-c39f3109]{color:var(--text-primary);font-size:13px;font-weight:700;display:block}.tpl-desc[data-v-c39f3109]{color:var(--text-secondary);margin-top:2px;font-size:11px;display:block}.tpl-tag[data-v-c39f3109]{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.tpl-check[data-v-c39f3109]{color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;display:grid;position:absolute;top:10px;right:10px}.doc-preview-wrap[data-v-c39f3109]{flex-direction:column;gap:14px;display:flex}.doc-action-bar[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.doc-action-left[data-v-c39f3109]{align-items:center;gap:12px;display:flex}.doc-action-icon[data-v-c39f3109]{border-radius:11px;place-items:center;width:44px;height:44px;font-size:18px;display:grid}.doc-action-name[data-v-c39f3109]{color:var(--text-primary);font-size:15px;font-weight:800}.doc-action-emp[data-v-c39f3109]{color:var(--text-secondary);align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.doc-action-sep[data-v-c39f3109]{color:var(--border)}.doc-action-btns[data-v-c39f3109]{flex-wrap:wrap;gap:8px;display:flex}.btn-print[data-v-c39f3109]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:12px;font-weight:700;transition:opacity .15s;display:flex}.btn-print[data-v-c39f3109]:hover{opacity:.9}.doc-paper[data-v-c39f3109]{border-radius:var(--radius);color:#1a1a2e;background:#fff;min-height:800px;padding:48px 56px;font-family:Sarabun,Noto Sans Thai,sans-serif;line-height:1.8;position:relative;box-shadow:0 4px 24px #0000001f}.doc-letterhead[data-v-c39f3109]{margin-bottom:24px}.doc-logo-area[data-v-c39f3109]{align-items:center;gap:16px;margin-bottom:12px;display:flex}.doc-logo-circle[data-v-c39f3109]{border:3px solid #4f46e5;border-radius:50%;flex-shrink:0;place-items:center;width:60px;height:60px;display:grid}.doc-company-name[data-v-c39f3109]{color:#1e1b4b;font-size:18px;font-weight:800}.doc-company-sub[data-v-c39f3109]{color:#64748b;font-size:12px;line-height:1.6}.doc-letterhead-line[data-v-c39f3109]{border-top:3px solid #4f46e5;margin-top:2px}.doc-title-block[data-v-c39f3109]{text-align:center;margin:24px 0 16px}.doc-title-th[data-v-c39f3109]{color:#1e1b4b;font-size:20px;font-weight:800}.doc-title-en[data-v-c39f3109]{color:#64748b;letter-spacing:.5px;margin-top:2px;font-size:13px;font-weight:600}.doc-meta-row[data-v-c39f3109]{color:#64748b;border-bottom:1px dashed #cbd5e1;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;font-size:13px;display:flex}.doc-meta-val[data-v-c39f3109]{color:#1a1a2e;font-weight:700}.doc-salutation[data-v-c39f3109]{margin-bottom:14px;font-size:14px}.doc-body[data-v-c39f3109]{margin-bottom:16px}.doc-para[data-v-c39f3109]{text-align:justify;text-indent:2.5em;margin-bottom:8px;font-size:15px}.doc-table-wrap[data-v-c39f3109]{margin:12px 0 16px}.doc-table[data-v-c39f3109]{border-collapse:collapse;width:100%;font-size:13px}.doc-table th[data-v-c39f3109]{color:#475569;text-align:center;background:#f1f5f9;border:1px solid #cbd5e1;padding:8px 12px;font-size:12px;font-weight:700}.doc-table td[data-v-c39f3109]{text-align:center;border:1px solid #e2e8f0;padding:7px 12px}.doc-table tr:nth-child(2n) td[data-v-c39f3109]{background:#f8fafc}.doc-closing[data-v-c39f3109]{text-indent:2.5em;margin:16px 0 32px;font-size:15px}.doc-sig-block[data-v-c39f3109]{justify-content:space-between;align-items:flex-end;margin-top:40px;display:flex}.doc-sig-col[data-v-c39f3109]{text-align:center}.doc-sig-line[data-v-c39f3109]{border-top:1px solid #94a3b8;width:220px;margin:0 auto 8px}.doc-sig-name[data-v-c39f3109]{color:#64748b;font-size:13px}.doc-sig-pos[data-v-c39f3109]{color:#1e1b4b;margin-top:4px;font-size:12px;font-weight:700}.doc-sig-dept[data-v-c39f3109]{color:#64748b;font-size:12px}.doc-sig-date[data-v-c39f3109]{color:#94a3b8;margin-top:4px;font-size:11px}.doc-sig-stamp[data-v-c39f3109]{color:#94a3b8;text-align:center;border:2px dashed #cbd5e1;border-radius:50%;flex-direction:column;place-items:center;gap:4px;width:100px;height:100px;font-size:10px;display:grid}.doc-sig-stamp i[data-v-c39f3109]{margin-bottom:4px;font-size:28px;display:block}.doc-footer[data-v-c39f3109]{color:#94a3b8;border-top:1px solid #e2e8f0;justify-content:space-between;padding-top:8px;font-size:10px;display:flex;position:absolute;bottom:24px;left:56px;right:56px}.report-error-bar[data-v-c39f3109]{border-radius:var(--radius);color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.report-error-bar button[data-v-c39f3109]{color:#991b1b;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:6px;margin-left:auto;padding:4px 12px;font-size:12px}.personal-empty[data-v-c39f3109]{color:var(--text-light);text-align:center;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.personal-empty i[data-v-c39f3109]{opacity:.35;font-size:40px}.personal-empty p[data-v-c39f3109]{font-size:14px}.personal-skel-profile[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);height:76px;box-shadow:var(--shadow);animation:1.4s infinite shimmer-bg-c39f3109}.personal-skel-table[data-v-c39f3109]{background:var(--bg-card);border-radius:var(--radius);height:280px;box-shadow:var(--shadow);animation:1.4s infinite shimmer-bg-c39f3109}.skel-kpi[data-v-c39f3109]{min-height:72px;animation:1.4s infinite shimmer-bg-c39f3109}@keyframes shimmer-bg-c39f3109{0%{background:#f0f4f8}50%{background:#e8ecf0}to{background:#f0f4f8}}.emp-period-badge[data-v-c39f3109]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:flex}.emp-period-badge i[data-v-c39f3109]{color:var(--primary)}.date-cell[data-v-c39f3109]{white-space:nowrap}.mono[data-v-c39f3109]{font-variant-numeric:tabular-nums;font-family:monospace;font-size:13px}.tbl-empty[data-v-c39f3109]{text-align:center;color:var(--text-light);flex-direction:column;align-items:center;gap:8px;padding:36px;font-size:14px;display:flex}.tbl-empty i[data-v-c39f3109]{opacity:.35;font-size:28px}.chip-blue[data-v-c39f3109]{color:#1d4ed8;background:#dbeafe}.shift-mini[data-v-c39f3109]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.sess-mini[data-v-c39f3109]{color:#4f46e5;vertical-align:middle;background:#eef2ff;border-radius:20px;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-flex}.sess-mini i[data-v-c39f3109]{font-size:9px}.ot-cell[data-v-c39f3109]{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.ot-chip[data-v-c39f3109]{color:#7c3aed;white-space:nowrap;background:#ede9fe;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.ot-chip i[data-v-c39f3109]{font-size:9px}.ot-time-range[data-v-c39f3109]{color:var(--text-light);font-variant-numeric:tabular-nums;padding-left:2px;font-size:10px}@media print{.reports-layout aside[data-v-c39f3109],.report-header[data-v-c39f3109],.filter-bar[data-v-c39f3109],.doc-tpl-section[data-v-c39f3109],.doc-action-bar[data-v-c39f3109]{display:none!important}.doc-paper[data-v-c39f3109]{box-shadow:none;border-radius:0}body[data-v-c39f3109]{background:#fff}}@media (width<=1400px){.kpi-grid-6[data-v-c39f3109]{grid-template-columns:repeat(3,1fr)}}@media (width<=1200px){.report-sidebar[data-v-c39f3109]{width:240px}.two-col[data-v-c39f3109]{grid-template-columns:1fr}.summary-row[data-v-c39f3109],.doc-tpl-grid[data-v-c39f3109]{grid-template-columns:repeat(2,1fr)}}@media (width<=960px){.reports-layout[data-v-c39f3109]{flex-direction:column}.report-sidebar[data-v-c39f3109]{border-right:none;border-bottom:1px solid var(--border);width:100%}.report-nav[data-v-c39f3109]{flex-flow:wrap;padding:8px}.nav-item[data-v-c39f3109]{width:calc(50% - 4px)}.nav-desc[data-v-c39f3109]{display:none}.kpi-grid-6[data-v-c39f3109],.summary-row[data-v-c39f3109]{grid-template-columns:repeat(2,1fr)}.doc-tpl-grid[data-v-c39f3109]{grid-template-columns:1fr 1fr}.doc-paper[data-v-c39f3109]{padding:32px 28px}}@media (width<=640px){.kpi-grid-6[data-v-c39f3109]{grid-template-columns:1fr 1fr}.nav-item[data-v-c39f3109]{width:100%}.filter-bar[data-v-c39f3109]{flex-direction:column;align-items:stretch}.f-input[data-v-c39f3109]{min-width:unset}.export-group[data-v-c39f3109]{flex-wrap:wrap}.doc-tpl-grid[data-v-c39f3109]{grid-template-columns:1fr}.doc-sig-block[data-v-c39f3109]{flex-direction:column;align-items:center;gap:24px}.doc-paper[data-v-c39f3109]{padding:24px 20px}.doc-footer[data-v-c39f3109]{left:20px;right:20px}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-page[data-v-248f25cf]{grid-template-columns:340px 1fr;gap:20px;height:calc(100vh - 120px);min-height:600px;display:grid}.left-panel[data-v-248f25cf]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.panel-toolbar[data-v-248f25cf]{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:14px 14px 10px;display:flex}.toolbar-row[data-v-248f25cf]{gap:8px;display:flex}.sel[data-v-248f25cf]{border:1px solid var(--border);background:var(--bg-main);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:12px}.search-wrap[data-v-248f25cf]{background:var(--bg-main);border:1px solid var(--border);border-radius:8px;align-items:center;gap:7px;padding:8px 12px;display:flex}.search-wrap i[data-v-248f25cf]{color:var(--text-light);flex-shrink:0;font-size:12px}.search-wrap input[data-v-248f25cf]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:12px}.date-label[data-v-248f25cf]{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.date-label i[data-v-248f25cf]{color:var(--primary);font-size:11px}.summary-row[data-v-248f25cf]{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:5px;padding:10px 14px;display:flex}.sum-chip[data-v-248f25cf]{border-radius:20px;align-items:center;gap:5px;padding:4px 8px;font-size:10px;font-weight:700;display:inline-flex}.chip-blue[data-v-248f25cf]{color:#1e40af;background:#dbeafe}.chip-green[data-v-248f25cf]{color:#065f46;background:#d1fae5}.chip-orange[data-v-248f25cf]{color:#c2410c;background:#ffedd5}.chip-teal[data-v-248f25cf]{color:#0f766e;background:#ccfbf1}.state-center[data-v-248f25cf]{color:var(--text-light);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.state-err[data-v-248f25cf]{color:#ef4444}.emp-list[data-v-248f25cf]{flex:1;overflow-y:auto}.emp-row[data-v-248f25cf]{cursor:pointer;border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 14px;transition:background .15s;display:flex}.emp-row[data-v-248f25cf]:last-child{border-bottom:none}.emp-row[data-v-248f25cf]:hover{background:var(--bg-main)}.emp-row.selected[data-v-248f25cf]{background:#eff6ff;border-left:3px solid #3b82f6}.av-wrap[data-v-248f25cf]{flex-shrink:0;position:relative}.av[data-v-248f25cf]{color:#fff;border-radius:8px;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.av-dot[data-v-248f25cf]{border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;bottom:-2px;right:-2px}.dot-green[data-v-248f25cf]{background:#10b981}.dot-blue[data-v-248f25cf]{background:#3b82f6}.dot-gray[data-v-248f25cf]{background:#94a3b8}.emp-info[data-v-248f25cf]{flex:1;min-width:0}.emp-top[data-v-248f25cf]{align-items:center;gap:6px;margin-bottom:1px;display:flex}.emp-name[data-v-248f25cf]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.emp-dept[data-v-248f25cf]{color:var(--text-light);margin-bottom:5px;font-size:11px}.sess-badge[data-v-248f25cf]{color:#4f46e5;white-space:nowrap;background:#eef2ff;border-radius:20px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-flex}.sess-badge i[data-v-248f25cf]{font-size:9px}.status-pill[data-v-248f25cf]{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:700}.s-normal[data-v-248f25cf]{color:#065f46;background:#d1fae5}.s-late[data-v-248f25cf]{color:#854d0e;background:#fef3c7}.s-absent[data-v-248f25cf]{color:#991b1b;background:#fee2e2}.s-inprog[data-v-248f25cf]{color:#5b21b6;background:#ede9fe}.s-leave[data-v-248f25cf]{color:#1e40af;background:#dbeafe}.loc-rows[data-v-248f25cf]{flex-direction:column;gap:3px;display:flex}.loc-row[data-v-248f25cf]{align-items:flex-start;gap:5px;font-size:10.5px;display:flex}.loc-dot[data-v-248f25cf]{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:2px}.loc-in[data-v-248f25cf]{background:#10b981}.loc-out[data-v-248f25cf]{background:#f97316}.loc-none-dot[data-v-248f25cf]{background:#cbd5e1}.loc-time[data-v-248f25cf]{color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:700}.loc-addr[data-v-248f25cf]{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.loc-none .loc-addr[data-v-248f25cf]{color:var(--text-light);font-style:italic}.right-panel[data-v-248f25cf]{flex-direction:column;gap:16px;min-height:0;display:flex;overflow-y:auto}.map-card[data-v-248f25cf]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex:1;min-height:380px;position:relative;overflow:hidden}.map-legend[data-v-248f25cf]{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);background:#ffffffeb;border-radius:10px;gap:12px;padding:8px 12px;display:flex;position:absolute;top:12px;right:12px}.legend-item[data-v-248f25cf]{color:var(--text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.legend-dot[data-v-248f25cf]{border-radius:50%;width:10px;height:10px}.ld-in[data-v-248f25cf]{background:#10b981}.ld-out[data-v-248f25cf]{background:#f97316}.ld-both[data-v-248f25cf]{background:linear-gradient(90deg,#10b981 0 50%,#f97316 50% 100%)}.ld-sel[data-v-248f25cf]{background:#3b82f6}.leaflet-map[data-v-248f25cf]{z-index:1;width:100%;height:100%;min-height:380px}.map-placeholder[data-v-248f25cf]{z-index:10;background:var(--bg-main);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.map-placeholder i[data-v-248f25cf]{color:#cbd5e1;font-size:42px}.map-placeholder p[data-v-248f25cf]{color:var(--text-secondary);margin:4px 0 0;font-size:15px;font-weight:700}.map-placeholder span[data-v-248f25cf]{color:var(--text-light);font-size:12px}.detail-card[data-v-248f25cf]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-shrink:0;padding:18px 20px}.detail-head[data-v-248f25cf]{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.av.sm[data-v-248f25cf]{color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:grid}.detail-name[data-v-248f25cf]{color:var(--text-primary);font-size:15px;font-weight:700}.detail-sub[data-v-248f25cf]{color:var(--text-secondary);margin-top:1px;font-size:12px}.close-btn[data-v-248f25cf]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;margin-left:auto;font-size:14px;transition:all .2s;display:grid}.close-btn[data-v-248f25cf]:hover{color:#ef4444;background:#fee2e2;border-color:#fca5a5}.sess-breakdown[data-v-248f25cf]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:12px 14px}.sess-bd-title[data-v-248f25cf]{color:#4f46e5;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.sess-bd-item[data-v-248f25cf]{flex-wrap:wrap;align-items:center;gap:6px;padding:5px 0;display:flex}.sess-bd-no[data-v-248f25cf]{color:#64748b;min-width:38px;font-size:10px;font-weight:700}.sess-bd-chip[data-v-248f25cf]{font-variant-numeric:tabular-nums;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.sess-bd-chip.in[data-v-248f25cf]{color:#065f46;background:#d1fae5}.sess-bd-chip.out[data-v-248f25cf]{color:#475569;background:#f1f5f9}.sess-bd-chip i[data-v-248f25cf]{font-size:9px}.sess-bd-hrs[data-v-248f25cf]{color:#6366f1;background:#eef2ff;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:700}.sess-bd-note[data-v-248f25cf]{color:var(--text-light);align-items:center;gap:5px;margin-top:8px;font-size:10.5px;display:flex}.detail-timeline[data-v-248f25cf]{flex-direction:column;display:flex}.tl-connector[data-v-248f25cf]{background:var(--border);width:2px;height:20px;margin-left:17px}.tl-item[data-v-248f25cf]{align-items:flex-start;gap:14px;display:flex}.tl-icon[data-v-248f25cf]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;display:flex}.tl-icon-in[data-v-248f25cf]{color:#059669;background:#d1fae5}.tl-icon-out[data-v-248f25cf]{color:#ea580c;background:#ffedd5}.tl-content[data-v-248f25cf]{flex:1;padding:4px 0}.tl-empty-content[data-v-248f25cf]{align-items:center;height:36px;display:flex}.tl-header[data-v-248f25cf]{align-items:center;gap:10px;margin-bottom:4px;display:flex}.tl-label[data-v-248f25cf]{color:var(--text-primary);font-size:13px;font-weight:700}.tl-label-muted[data-v-248f25cf]{color:var(--text-light);font-size:13px;font-style:italic}.tl-time[data-v-248f25cf]{color:var(--primary);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.tl-addr[data-v-248f25cf]{color:var(--text-secondary);align-items:flex-start;gap:5px;font-size:12px;line-height:1.5;display:flex}.tl-addr i[data-v-248f25cf]{color:#ef4444;flex-shrink:0;margin-top:2px;font-size:11px}.tl-coords[data-v-248f25cf]{color:var(--text-light);font-variant-numeric:tabular-nums;margin-top:3px;font-size:10px}.no-select-card[data-v-248f25cf]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text-light);flex-direction:column;flex-shrink:0;align-items:center;gap:8px;padding:28px;display:flex}.no-select-card i[data-v-248f25cf]{font-size:24px}.no-select-card p[data-v-248f25cf]{font-size:13px}@media (width<=960px){.map-page[data-v-248f25cf]{grid-template-columns:1fr;height:auto}.leaflet-map[data-v-248f25cf]{min-height:300px}}.lf-pin{border:2px solid #fff;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .15s,box-shadow .15s;display:flex;transform:rotate(-45deg);box-shadow:0 2px 8px #00000040}.lf-pin i{color:#fff;font-size:12px;transform:rotate(45deg)}.lf-pin-in{background:#10b981}.lf-pin-out{background:#f97316}.lf-pin-both{background:linear-gradient(135deg,#10b981 0 50%,#f97316 50% 100%)}.lf-pin-sel{width:36px;height:36px;box-shadow:0 0 0 3px #3b82f680,0 4px 12px #0000004d}.lf-pin-sel i{font-size:14px}.settings[data-v-a107b1fd]{grid-template-columns:220px 1fr;align-items:flex-start;gap:24px;display:grid}.settings-nav[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:8px;display:flex}.nav-btn[data-v-a107b1fd]{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:11px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.nav-btn[data-v-a107b1fd]:hover{background:var(--bg-main);color:var(--text-primary)}.nav-btn.active[data-v-a107b1fd]{color:var(--primary);background:#ede9fe}.nav-btn i[data-v-a107b1fd]{text-align:center;width:18px}.settings-body[data-v-a107b1fd]{flex-direction:column;gap:20px;display:flex}.section-head[data-v-a107b1fd]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-head h3[data-v-a107b1fd]{color:var(--text-primary);align-items:center;gap:9px;font-size:17px;font-weight:700;display:flex}.section-head h3 i[data-v-a107b1fd]{color:var(--primary)}.btn-primary[data-v-a107b1fd]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-primary[data-v-a107b1fd]:hover{background:var(--primary-dark)}.shift-list[data-v-a107b1fd]{flex-direction:column;gap:10px;display:flex}.shift-card[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:16px 20px;display:flex;overflow:hidden}.shift-color[data-v-a107b1fd]{border-radius:3px;flex-shrink:0;align-self:stretch;width:5px}.shift-info[data-v-a107b1fd]{flex:1}.shift-name[data-v-a107b1fd]{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:4px;font-size:15px;font-weight:700;display:flex}.shift-code[data-v-a107b1fd]{border-radius:20px;padding:2px 9px;font-size:12px;font-weight:700}.shift-time[data-v-a107b1fd]{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.shift-late[data-v-a107b1fd]{color:var(--text-light);align-items:center;gap:5px;margin-top:3px;font-size:12px;display:flex}.shift-actions[data-v-a107b1fd]{gap:8px;display:flex}.btn-sm[data-v-a107b1fd]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:5px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s;display:flex}.btn-sm[data-v-a107b1fd]:hover{border-color:var(--primary);color:var(--primary)}.btn-del[data-v-a107b1fd]:hover{color:#ef4444;border-color:#ef4444}.card-form[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:16px;max-width:600px;padding:24px;display:flex}.row-2[data-v-a107b1fd]{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fg[data-v-a107b1fd]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-a107b1fd]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-a107b1fd]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-a107b1fd]:focus{border-color:var(--primary);background:#fff}.holiday-list[data-v-a107b1fd]{flex-direction:column;gap:8px;max-width:600px;display:flex}.holiday-row[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:14px 20px;display:flex}.hol-date-badge[data-v-a107b1fd]{text-align:center;color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:10px;flex-shrink:0;width:50px;padding:6px 4px}.hol-day[data-v-a107b1fd]{font-size:20px;font-weight:800;line-height:1;display:block}.hol-month[data-v-a107b1fd]{opacity:.9;font-size:10px;font-weight:600;display:block}.hol-name[data-v-a107b1fd]{color:var(--text-primary);flex-direction:column;flex:1;gap:2px;font-size:14px;font-weight:600;display:flex}.hol-name-en[data-v-a107b1fd]{color:var(--text-light);font-size:11px;font-weight:400}.hol-actions[data-v-a107b1fd]{gap:8px;display:flex}.hol-type-tag[data-v-a107b1fd]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.tag-national[data-v-a107b1fd]{color:#4f46e5;background:#eef2ff}.tag-company[data-v-a107b1fd]{color:#b45309;background:#fef3c7}.head-right[data-v-a107b1fd]{align-items:center;gap:10px;display:flex}.sel-year[data-v-a107b1fd]{cursor:pointer;min-width:110px;padding:8px 12px}.state-box[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:24px;font-size:14px;display:flex}.fi-hint[data-v-a107b1fd]{color:var(--text-light);margin-top:2px;font-size:12px}.leave-subtabs[data-v-a107b1fd]{border-bottom:1px solid var(--border);gap:8px;margin-bottom:16px;display:flex}.leave-subtabs button[data-v-a107b1fd]{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-bottom:2.5px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 16px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.leave-subtabs button.active[data-v-a107b1fd]{color:var(--primary);border-bottom-color:var(--primary)}.doc-badge[data-v-a107b1fd]{color:#4f46e5;background:#e0e7ff;border-radius:20px;align-items:center;gap:4px;margin-left:4px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.off-badge[data-v-a107b1fd]{color:#94a3b8;background:#f1f5f9;border-radius:20px;margin-left:4px;padding:2px 8px;font-size:10px;font-weight:700}.shift-card.card-off[data-v-a107b1fd]{opacity:.6}.overlay[data-v-a107b1fd]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-a107b1fd]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:400px;max-height:90vh;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal-head[data-v-a107b1fd]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-a107b1fd]{color:var(--text-primary);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-a107b1fd]{color:var(--primary)}.modal-close[data-v-a107b1fd]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-a107b1fd]{flex-direction:column;flex:auto;gap:14px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-a107b1fd]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.btn-ghost[data-v-a107b1fd]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:600}.skel[data-v-a107b1fd]{background:linear-gradient(90deg,#f0f4f8 25%,#e8ecf0 50%,#f0f4f8 75%) 0 0/200% 100%;border-radius:6px;animation:1.4s infinite shimmer-a107b1fd}@keyframes shimmer-a107b1fd{0%{background-position:200% 0}to{background-position:-200% 0}}.skel-shift[data-v-a107b1fd]{opacity:.7;pointer-events:none}.skel-stripe[data-v-a107b1fd]{border-radius:3px;flex-shrink:0;align-self:stretch;width:5px}.skel-body[data-v-a107b1fd]{flex-direction:column;flex:1;gap:8px;display:flex}.skel-title[data-v-a107b1fd]{width:140px;height:18px}.skel-sub[data-v-a107b1fd]{width:90px;height:13px}.error-bar[data-v-a107b1fd]{border-radius:var(--radius);color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;align-items:center;gap:8px;margin-bottom:4px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.error-bar button[data-v-a107b1fd]{color:#991b1b;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:6px;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:600}.default-badge[data-v-a107b1fd]{color:#7c3aed;background:#ede9fe;border-radius:20px;margin-left:4px;padding:2px 7px;font-size:10px;font-weight:700}.midnight-badge[data-v-a107b1fd]{color:#a5b4fc;background:#1e1b4b;border-radius:20px;align-items:center;gap:3px;margin-left:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}.shift-break[data-v-a107b1fd]{color:var(--text-light);align-items:center;gap:5px;margin-top:3px;font-size:12px;display:flex}.btn-sm[data-v-a107b1fd]:disabled{opacity:.4;cursor:not-allowed}.empty-shifts[data-v-a107b1fd]{text-align:center;color:var(--text-light);padding:40px}.empty-shifts i[data-v-a107b1fd]{opacity:.4;margin-bottom:12px;font-size:36px;display:block}.empty-shifts p[data-v-a107b1fd]{font-size:14px}.modal-shift-form[data-v-a107b1fd]{width:420px}.st-preview[data-v-a107b1fd]{border:1px solid;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;display:flex}.st-preview-bar[data-v-a107b1fd]{border-radius:3px;flex-shrink:0;width:5px;height:36px}.st-preview-name[data-v-a107b1fd]{flex:1;font-size:14px;font-weight:700}.st-preview-time[data-v-a107b1fd]{color:var(--text-secondary);opacity:.85;white-space:nowrap;font-size:11px}.mgr-time-row[data-v-a107b1fd]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check-label[data-v-a107b1fd]{color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.check-label input[data-v-a107b1fd]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary)}.color-row[data-v-a107b1fd]{flex-wrap:wrap;gap:7px;display:flex}.color-dot[data-v-a107b1fd]{cursor:pointer;border-radius:50%;width:22px;height:22px;transition:transform .15s,outline .15s}.color-dot[data-v-a107b1fd]:hover{transform:scale(1.2)}.color-dot--active[data-v-a107b1fd]{outline:3px solid var(--text-primary);outline-offset:2px;transform:scale(1.15)}.save-err[data-v-a107b1fd]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.req[data-v-a107b1fd]{color:#ef4444}.modal-sm[data-v-a107b1fd]{width:360px}.delete-confirm-text[data-v-a107b1fd]{color:var(--text-secondary);font-size:14px;line-height:1.6}.delete-confirm-sub[data-v-a107b1fd]{color:var(--text-light);margin-top:6px;font-size:12px}.modal-error[data-v-a107b1fd]{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;border-radius:7px;align-items:center;gap:7px;margin-top:4px;padding:9px 13px;font-size:12px;font-weight:600;display:flex}.btn-danger[data-v-a107b1fd]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:opacity .2s;display:flex}.btn-danger[data-v-a107b1fd]:hover:not(:disabled){background:#dc2626}.btn-danger[data-v-a107b1fd]:disabled{opacity:.6;cursor:default}.toast[data-v-a107b1fd]{z-index:9999;border-radius:12px;align-items:center;gap:10px;padding:14px 20px;font-size:14px;font-weight:600;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 8px 24px #00000026}.toast-success[data-v-a107b1fd]{color:#fff;background:#10b981}.toast-error[data-v-a107b1fd]{color:#fff;background:#ef4444}.toast-slide-enter-active[data-v-a107b1fd],.toast-slide-leave-active[data-v-a107b1fd]{transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-slide-enter-from[data-v-a107b1fd],.toast-slide-leave-to[data-v-a107b1fd]{opacity:0;transform:translateY(16px)}.overlay-fade-enter-active[data-v-a107b1fd],.overlay-fade-leave-active[data-v-a107b1fd]{transition:opacity .2s}.overlay-fade-enter-from[data-v-a107b1fd],.overlay-fade-leave-to[data-v-a107b1fd]{opacity:0}.modal-pop-enter-active[data-v-a107b1fd],.modal-pop-leave-active[data-v-a107b1fd]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-a107b1fd],.modal-pop-leave-to[data-v-a107b1fd]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.settings[data-v-a107b1fd]{grid-template-columns:1fr}.settings-nav[data-v-a107b1fd]{flex-flow:wrap}}.toolbar[data-v-6aa584cb]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-bar[data-v-6aa584cb]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:6px;display:flex}.tab-btn[data-v-6aa584cb]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tab-btn.active[data-v-6aa584cb]{background:var(--primary);color:#fff}.tab-btn[data-v-6aa584cb]:not(.active):hover{background:var(--bg-main)}.tab-badge[data-v-6aa584cb]{color:#fff;background:#f59e0b;border-radius:10px;padding:1px 6px;font-size:10px}.tab-badge-approved[data-v-6aa584cb]{background:#10b981}.tab-badge-rejected[data-v-6aa584cb]{background:#ef4444}.tab-btn.active .tab-badge[data-v-6aa584cb]{background:#ffffff4d}.filter-wrap[data-v-6aa584cb]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-filter[data-v-6aa584cb],.sel[data-v-6aa584cb]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.input-filter[data-v-6aa584cb]:focus,.sel[data-v-6aa584cb]:focus{border-color:var(--primary)}.search-wrap[data-v-6aa584cb]{position:relative}.search-icon[data-v-6aa584cb]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-6aa584cb]{cursor:text;width:200px;padding-left:30px!important}.search-input[data-v-6aa584cb]:focus{border-color:var(--primary)}.btn-refresh[data-v-6aa584cb]{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.btn-refresh[data-v-6aa584cb]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-6aa584cb]:disabled{opacity:.5;cursor:not-allowed}.err-box[data-v-6aa584cb]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.err-retry[data-v-6aa584cb]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #f87171;border-radius:6px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.loading-box[data-v-6aa584cb]{text-align:center;color:var(--text-secondary);padding:48px;font-size:14px}.req-list[data-v-6aa584cb]{flex-direction:column;gap:12px;display:flex}.empty-state[data-v-6aa584cb]{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px;display:flex}.empty-state i[data-v-6aa584cb]{font-size:40px}.req-card[data-v-6aa584cb]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:stretch;gap:16px;padding:18px 20px;transition:box-shadow .2s;display:flex}.req-card[data-v-6aa584cb]:hover{box-shadow:var(--shadow-md)}.req-left[data-v-6aa584cb]{flex:1;gap:14px;display:flex}.req-avatar[data-v-6aa584cb]{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid;overflow:hidden}.req-avatar.large[data-v-6aa584cb]{border-radius:11px;width:48px;height:48px;font-size:15px}.req-avatar-img[data-v-6aa584cb]{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.req-info[data-v-6aa584cb]{flex-direction:column;flex:1;gap:5px;display:flex}.req-name-row[data-v-6aa584cb]{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.req-name[data-v-6aa584cb]{color:var(--text-primary);font-size:15px;font-weight:700}.emp-code-tag[data-v-6aa584cb]{color:#64748b;background:#f1f5f9;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.dept-tag[data-v-6aa584cb]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.area-tag[data-v-6aa584cb]{color:#c2410c;background:#fff7ed;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.area-tag i[data-v-6aa584cb]{font-size:10px}.req-datetime[data-v-6aa584cb]{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.req-reason[data-v-6aa584cb]{color:var(--text-secondary);font-size:13px}.reason-label[data-v-6aa584cb]{color:#475569;font-weight:600}.req-meta[data-v-6aa584cb]{color:var(--text-secondary);opacity:.7;font-size:11px}.req-result[data-v-6aa584cb]{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.req-result.approved[data-v-6aa584cb]{color:#10b981}.req-result.rejected[data-v-6aa584cb]{color:#ef4444}.rr-head[data-v-6aa584cb]{align-items:center;gap:6px;display:inline-flex}.reject-reason-text[data-v-6aa584cb]{color:inherit;flex-basis:100%;padding-left:18px;font-size:12px;font-weight:400}.rr-label[data-v-6aa584cb]{color:inherit;font-weight:700}.req-right[data-v-6aa584cb]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.action-btns[data-v-6aa584cb]{flex-direction:column;gap:6px;display:flex}.action-btns-bottom[data-v-6aa584cb]{flex-direction:row;gap:10px;margin-top:12px}.action-btns-bottom .btn-approve[data-v-6aa584cb],.action-btns-bottom .btn-reject[data-v-6aa584cb]{padding:10px 20px;font-size:14px}.status-pill[data-v-6aa584cb]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.pill-pending[data-v-6aa584cb]{color:#854d0e;background:#fef3c7}.pill-approved[data-v-6aa584cb]{color:#065f46;background:#d1fae5}.pill-rejected[data-v-6aa584cb]{color:#991b1b;background:#fee2e2}.pill-cancelled[data-v-6aa584cb]{color:#64748b;background:#f1f5f9}.btn-approve[data-v-6aa584cb]{color:#065f46;cursor:pointer;white-space:nowrap;background:#d1fae5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-approve[data-v-6aa584cb]:hover:not(:disabled){color:#fff;background:#10b981}.btn-approve[data-v-6aa584cb]:disabled{opacity:.6;cursor:not-allowed}.btn-reject[data-v-6aa584cb]{color:#991b1b;cursor:pointer;white-space:nowrap;background:#fee2e2;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-reject[data-v-6aa584cb]:hover{color:#fff;background:#ef4444}.btn-detail[data-v-6aa584cb]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-top:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-detail[data-v-6aa584cb]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-6aa584cb]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-6aa584cb]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-sm[data-v-6aa584cb]{width:400px}.modal-head[data-v-6aa584cb]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-6aa584cb]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-6aa584cb]{color:var(--primary)}.modal-close[data-v-6aa584cb]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-6aa584cb]{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-6aa584cb]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.detail-person[data-v-6aa584cb]{background:var(--bg-main);border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex}.dp-tags[data-v-6aa584cb]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.detail-person .dept-tag[data-v-6aa584cb],.detail-person .area-tag[data-v-6aa584cb]{border:1px solid var(--border);background:#fff}.detail-grid[data-v-6aa584cb]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dg-item[data-v-6aa584cb]{flex-direction:column;gap:3px;display:flex}.dg-item.dg-full[data-v-6aa584cb]{grid-column:1/-1}.dg-label[data-v-6aa584cb]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.dg-item span[data-v-6aa584cb]:last-child{color:var(--text-primary);font-size:14px;font-weight:500}.reject-desc[data-v-6aa584cb]{color:var(--text-secondary);font-size:14px;line-height:1.6}.fg[data-v-6aa584cb]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-6aa584cb]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-6aa584cb]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-6aa584cb]:focus{border-color:var(--primary);background:#fff}.btn-ghost[data-v-6aa584cb]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-reject-confirm[data-v-6aa584cb]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:700;display:flex}.btn-reject-confirm[data-v-6aa584cb]:hover:not(:disabled){background:#dc2626}.btn-reject-confirm[data-v-6aa584cb]:disabled{opacity:.5;cursor:not-allowed}.pager[data-v-6aa584cb]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.pager-info[data-v-6aa584cb]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-6aa584cb]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-6aa584cb]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-6aa584cb]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-6aa584cb]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-6aa584cb]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-6aa584cb]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-6aa584cb]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-6aa584cb]{color:var(--text-secondary);font-size:13px}.overlay-fade-enter-active[data-v-6aa584cb],.overlay-fade-leave-active[data-v-6aa584cb]{transition:opacity .2s}.overlay-fade-enter-from[data-v-6aa584cb],.overlay-fade-leave-to[data-v-6aa584cb]{opacity:0}.modal-pop-enter-active[data-v-6aa584cb],.modal-pop-leave-active[data-v-6aa584cb]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-6aa584cb],.modal-pop-leave-to[data-v-6aa584cb]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.req-card[data-v-6aa584cb]{flex-direction:column}.req-right[data-v-6aa584cb]{flex-direction:row;justify-content:flex-end;align-items:center;width:100%}.action-btns[data-v-6aa584cb]{flex-direction:row}.tab-bar[data-v-6aa584cb]{width:100%}.tab-btn[data-v-6aa584cb]{flex:1;justify-content:center;gap:5px;padding:9px 6px;font-size:12px}.filter-wrap[data-v-6aa584cb]{width:100%}.search-wrap[data-v-6aa584cb]{flex:100%;width:100%}.search-input[data-v-6aa584cb]{box-sizing:border-box;width:100%!important}.action-btns-bottom[data-v-6aa584cb]{width:100%}.action-btns-bottom .btn-approve[data-v-6aa584cb],.action-btns-bottom .btn-reject[data-v-6aa584cb]{flex:1;justify-content:center}}.overtime-page[data-v-6aa584cb]{flex-direction:column;gap:20px;display:flex}.ot-type-chip[data-v-6aa584cb]{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.hours-chip[data-v-6aa584cb]{color:#b45309;background:#fef3c7;border-radius:20px;padding:2px 9px;font-size:12px;font-weight:700}.ot-hours[data-v-6aa584cb]{color:#f59e0b!important;font-size:20px!important;font-weight:800!important}.toolbar[data-v-375c360d]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-bar[data-v-375c360d]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:6px;display:flex}.tab-btn[data-v-375c360d]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tab-btn.active[data-v-375c360d]{background:var(--primary);color:#fff}.tab-btn[data-v-375c360d]:not(.active):hover{background:var(--bg-main)}.tab-badge[data-v-375c360d]{color:#fff;background:#f59e0b;border-radius:10px;padding:1px 6px;font-size:10px}.tab-badge-approved[data-v-375c360d]{background:#10b981}.tab-badge-rejected[data-v-375c360d]{background:#ef4444}.tab-btn.active .tab-badge[data-v-375c360d]{background:#ffffff4d}.filter-wrap[data-v-375c360d]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-filter[data-v-375c360d],.sel[data-v-375c360d]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.input-filter[data-v-375c360d]:focus,.sel[data-v-375c360d]:focus{border-color:var(--primary)}.search-wrap[data-v-375c360d]{position:relative}.search-icon[data-v-375c360d]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-375c360d]{cursor:text;width:200px;padding-left:30px!important}.search-input[data-v-375c360d]:focus{border-color:var(--primary)}.btn-refresh[data-v-375c360d]{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.btn-refresh[data-v-375c360d]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-375c360d]:disabled{opacity:.5;cursor:not-allowed}.err-box[data-v-375c360d]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.err-retry[data-v-375c360d]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #f87171;border-radius:6px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.loading-box[data-v-375c360d]{text-align:center;color:var(--text-secondary);padding:48px;font-size:14px}.req-list[data-v-375c360d]{flex-direction:column;gap:12px;display:flex}.empty-state[data-v-375c360d]{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px;display:flex}.empty-state i[data-v-375c360d]{font-size:40px}.req-card[data-v-375c360d]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:stretch;gap:16px;padding:18px 20px;transition:box-shadow .2s;display:flex}.req-card[data-v-375c360d]:hover{box-shadow:var(--shadow-md)}.req-left[data-v-375c360d]{flex:1;gap:14px;display:flex}.req-avatar[data-v-375c360d]{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid;overflow:hidden}.req-avatar.large[data-v-375c360d]{border-radius:11px;width:48px;height:48px;font-size:15px}.req-avatar-img[data-v-375c360d]{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.req-info[data-v-375c360d]{flex-direction:column;flex:1;gap:5px;display:flex}.req-name-row[data-v-375c360d]{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.req-name[data-v-375c360d]{color:var(--text-primary);font-size:15px;font-weight:700}.emp-code-tag[data-v-375c360d]{color:#64748b;background:#f1f5f9;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.dept-tag[data-v-375c360d]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.area-tag[data-v-375c360d]{color:#c2410c;background:#fff7ed;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.area-tag i[data-v-375c360d]{font-size:10px}.req-datetime[data-v-375c360d]{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.req-reason[data-v-375c360d]{color:var(--text-secondary);font-size:13px}.reason-label[data-v-375c360d]{color:#475569;font-weight:600}.req-meta[data-v-375c360d]{color:var(--text-secondary);opacity:.7;font-size:11px}.req-result[data-v-375c360d]{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.req-result.approved[data-v-375c360d]{color:#10b981}.req-result.rejected[data-v-375c360d]{color:#ef4444}.rr-head[data-v-375c360d]{align-items:center;gap:6px;display:inline-flex}.reject-reason-text[data-v-375c360d]{color:inherit;flex-basis:100%;padding-left:18px;font-size:12px;font-weight:400}.rr-label[data-v-375c360d]{color:inherit;font-weight:700}.req-right[data-v-375c360d]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.action-btns[data-v-375c360d]{flex-direction:column;gap:6px;display:flex}.action-btns-bottom[data-v-375c360d]{flex-direction:row;gap:10px;margin-top:12px}.action-btns-bottom .btn-approve[data-v-375c360d],.action-btns-bottom .btn-reject[data-v-375c360d]{padding:10px 20px;font-size:14px}.status-pill[data-v-375c360d]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.pill-pending[data-v-375c360d]{color:#854d0e;background:#fef3c7}.pill-approved[data-v-375c360d]{color:#065f46;background:#d1fae5}.pill-rejected[data-v-375c360d]{color:#991b1b;background:#fee2e2}.pill-cancelled[data-v-375c360d]{color:#64748b;background:#f1f5f9}.btn-approve[data-v-375c360d]{color:#065f46;cursor:pointer;white-space:nowrap;background:#d1fae5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-approve[data-v-375c360d]:hover:not(:disabled){color:#fff;background:#10b981}.btn-approve[data-v-375c360d]:disabled{opacity:.6;cursor:not-allowed}.btn-reject[data-v-375c360d]{color:#991b1b;cursor:pointer;white-space:nowrap;background:#fee2e2;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-reject[data-v-375c360d]:hover{color:#fff;background:#ef4444}.btn-detail[data-v-375c360d]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-top:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-detail[data-v-375c360d]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-375c360d]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-375c360d]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-sm[data-v-375c360d]{width:400px}.modal-head[data-v-375c360d]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-375c360d]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-375c360d]{color:var(--primary)}.modal-close[data-v-375c360d]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-375c360d]{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-375c360d]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.detail-person[data-v-375c360d]{background:var(--bg-main);border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex}.dp-tags[data-v-375c360d]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.detail-person .dept-tag[data-v-375c360d],.detail-person .area-tag[data-v-375c360d]{border:1px solid var(--border);background:#fff}.detail-grid[data-v-375c360d]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dg-item[data-v-375c360d]{flex-direction:column;gap:3px;display:flex}.dg-item.dg-full[data-v-375c360d]{grid-column:1/-1}.dg-label[data-v-375c360d]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.dg-item span[data-v-375c360d]:last-child{color:var(--text-primary);font-size:14px;font-weight:500}.reject-desc[data-v-375c360d]{color:var(--text-secondary);font-size:14px;line-height:1.6}.fg[data-v-375c360d]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-375c360d]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-375c360d]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-375c360d]:focus{border-color:var(--primary);background:#fff}.btn-ghost[data-v-375c360d]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-reject-confirm[data-v-375c360d]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:700;display:flex}.btn-reject-confirm[data-v-375c360d]:hover:not(:disabled){background:#dc2626}.btn-reject-confirm[data-v-375c360d]:disabled{opacity:.5;cursor:not-allowed}.pager[data-v-375c360d]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.pager-info[data-v-375c360d]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-375c360d]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-375c360d]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-375c360d]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-375c360d]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-375c360d]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-375c360d]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-375c360d]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-375c360d]{color:var(--text-secondary);font-size:13px}.overlay-fade-enter-active[data-v-375c360d],.overlay-fade-leave-active[data-v-375c360d]{transition:opacity .2s}.overlay-fade-enter-from[data-v-375c360d],.overlay-fade-leave-to[data-v-375c360d]{opacity:0}.modal-pop-enter-active[data-v-375c360d],.modal-pop-leave-active[data-v-375c360d]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-375c360d],.modal-pop-leave-to[data-v-375c360d]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.req-card[data-v-375c360d]{flex-direction:column}.req-right[data-v-375c360d]{flex-direction:row;justify-content:flex-end;align-items:center;width:100%}.action-btns[data-v-375c360d]{flex-direction:row}.tab-bar[data-v-375c360d]{width:100%}.tab-btn[data-v-375c360d]{flex:1;justify-content:center;gap:5px;padding:9px 6px;font-size:12px}.filter-wrap[data-v-375c360d]{width:100%}.search-wrap[data-v-375c360d]{flex:100%;width:100%}.search-input[data-v-375c360d]{box-sizing:border-box;width:100%!important}.action-btns-bottom[data-v-375c360d]{width:100%}.action-btns-bottom .btn-approve[data-v-375c360d],.action-btns-bottom .btn-reject[data-v-375c360d]{flex:1;justify-content:center}}.adj-page[data-v-375c360d]{flex-direction:column;gap:20px;display:flex}.adj-type-chip[data-v-375c360d]{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.toolbar[data-v-01ea98dc]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-bar[data-v-01ea98dc]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:6px;display:flex}.tab-btn[data-v-01ea98dc]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tab-btn.active[data-v-01ea98dc]{background:var(--primary);color:#fff}.tab-btn[data-v-01ea98dc]:not(.active):hover{background:var(--bg-main)}.tab-badge[data-v-01ea98dc]{color:#fff;background:#f59e0b;border-radius:10px;padding:1px 6px;font-size:10px}.tab-badge-approved[data-v-01ea98dc]{background:#10b981}.tab-badge-rejected[data-v-01ea98dc]{background:#ef4444}.tab-btn.active .tab-badge[data-v-01ea98dc]{background:#ffffff4d}.filter-wrap[data-v-01ea98dc]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-filter[data-v-01ea98dc],.sel[data-v-01ea98dc]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.input-filter[data-v-01ea98dc]:focus,.sel[data-v-01ea98dc]:focus{border-color:var(--primary)}.search-wrap[data-v-01ea98dc]{position:relative}.search-icon[data-v-01ea98dc]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-01ea98dc]{cursor:text;width:200px;padding-left:30px!important}.search-input[data-v-01ea98dc]:focus{border-color:var(--primary)}.btn-refresh[data-v-01ea98dc]{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.btn-refresh[data-v-01ea98dc]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-01ea98dc]:disabled{opacity:.5;cursor:not-allowed}.err-box[data-v-01ea98dc]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.err-retry[data-v-01ea98dc]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #f87171;border-radius:6px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.loading-box[data-v-01ea98dc]{text-align:center;color:var(--text-secondary);padding:48px;font-size:14px}.req-list[data-v-01ea98dc]{flex-direction:column;gap:12px;display:flex}.empty-state[data-v-01ea98dc]{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px;display:flex}.empty-state i[data-v-01ea98dc]{font-size:40px}.req-card[data-v-01ea98dc]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:stretch;gap:16px;padding:18px 20px;transition:box-shadow .2s;display:flex}.req-card[data-v-01ea98dc]:hover{box-shadow:var(--shadow-md)}.req-left[data-v-01ea98dc]{flex:1;gap:14px;display:flex}.req-avatar[data-v-01ea98dc]{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid;overflow:hidden}.req-avatar.large[data-v-01ea98dc]{border-radius:11px;width:48px;height:48px;font-size:15px}.req-avatar-img[data-v-01ea98dc]{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.req-info[data-v-01ea98dc]{flex-direction:column;flex:1;gap:5px;display:flex}.req-name-row[data-v-01ea98dc]{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.req-name[data-v-01ea98dc]{color:var(--text-primary);font-size:15px;font-weight:700}.emp-code-tag[data-v-01ea98dc]{color:#64748b;background:#f1f5f9;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.dept-tag[data-v-01ea98dc]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.area-tag[data-v-01ea98dc]{color:#c2410c;background:#fff7ed;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.area-tag i[data-v-01ea98dc]{font-size:10px}.req-datetime[data-v-01ea98dc]{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.req-reason[data-v-01ea98dc]{color:var(--text-secondary);font-size:13px}.reason-label[data-v-01ea98dc]{color:#475569;font-weight:600}.req-meta[data-v-01ea98dc]{color:var(--text-secondary);opacity:.7;font-size:11px}.req-result[data-v-01ea98dc]{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.req-result.approved[data-v-01ea98dc]{color:#10b981}.req-result.rejected[data-v-01ea98dc]{color:#ef4444}.rr-head[data-v-01ea98dc]{align-items:center;gap:6px;display:inline-flex}.reject-reason-text[data-v-01ea98dc]{color:inherit;flex-basis:100%;padding-left:18px;font-size:12px;font-weight:400}.rr-label[data-v-01ea98dc]{color:inherit;font-weight:700}.req-right[data-v-01ea98dc]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.action-btns[data-v-01ea98dc]{flex-direction:column;gap:6px;display:flex}.action-btns-bottom[data-v-01ea98dc]{flex-direction:row;gap:10px;margin-top:12px}.action-btns-bottom .btn-approve[data-v-01ea98dc],.action-btns-bottom .btn-reject[data-v-01ea98dc]{padding:10px 20px;font-size:14px}.status-pill[data-v-01ea98dc]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.pill-pending[data-v-01ea98dc]{color:#854d0e;background:#fef3c7}.pill-approved[data-v-01ea98dc]{color:#065f46;background:#d1fae5}.pill-rejected[data-v-01ea98dc]{color:#991b1b;background:#fee2e2}.pill-cancelled[data-v-01ea98dc]{color:#64748b;background:#f1f5f9}.btn-approve[data-v-01ea98dc]{color:#065f46;cursor:pointer;white-space:nowrap;background:#d1fae5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-approve[data-v-01ea98dc]:hover:not(:disabled){color:#fff;background:#10b981}.btn-approve[data-v-01ea98dc]:disabled{opacity:.6;cursor:not-allowed}.btn-reject[data-v-01ea98dc]{color:#991b1b;cursor:pointer;white-space:nowrap;background:#fee2e2;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-reject[data-v-01ea98dc]:hover{color:#fff;background:#ef4444}.btn-detail[data-v-01ea98dc]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-top:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-detail[data-v-01ea98dc]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-01ea98dc]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-01ea98dc]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-sm[data-v-01ea98dc]{width:400px}.modal-head[data-v-01ea98dc]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-01ea98dc]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-01ea98dc]{color:var(--primary)}.modal-close[data-v-01ea98dc]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-01ea98dc]{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-01ea98dc]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.detail-person[data-v-01ea98dc]{background:var(--bg-main);border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex}.dp-tags[data-v-01ea98dc]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.detail-person .dept-tag[data-v-01ea98dc],.detail-person .area-tag[data-v-01ea98dc]{border:1px solid var(--border);background:#fff}.detail-grid[data-v-01ea98dc]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dg-item[data-v-01ea98dc]{flex-direction:column;gap:3px;display:flex}.dg-item.dg-full[data-v-01ea98dc]{grid-column:1/-1}.dg-label[data-v-01ea98dc]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.dg-item span[data-v-01ea98dc]:last-child{color:var(--text-primary);font-size:14px;font-weight:500}.reject-desc[data-v-01ea98dc]{color:var(--text-secondary);font-size:14px;line-height:1.6}.fg[data-v-01ea98dc]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-01ea98dc]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-01ea98dc]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-01ea98dc]:focus{border-color:var(--primary);background:#fff}.btn-ghost[data-v-01ea98dc]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-reject-confirm[data-v-01ea98dc]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:700;display:flex}.btn-reject-confirm[data-v-01ea98dc]:hover:not(:disabled){background:#dc2626}.btn-reject-confirm[data-v-01ea98dc]:disabled{opacity:.5;cursor:not-allowed}.pager[data-v-01ea98dc]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.pager-info[data-v-01ea98dc]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-01ea98dc]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-01ea98dc]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-01ea98dc]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-01ea98dc]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-01ea98dc]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-01ea98dc]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-01ea98dc]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-01ea98dc]{color:var(--text-secondary);font-size:13px}.overlay-fade-enter-active[data-v-01ea98dc],.overlay-fade-leave-active[data-v-01ea98dc]{transition:opacity .2s}.overlay-fade-enter-from[data-v-01ea98dc],.overlay-fade-leave-to[data-v-01ea98dc]{opacity:0}.modal-pop-enter-active[data-v-01ea98dc],.modal-pop-leave-active[data-v-01ea98dc]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-01ea98dc],.modal-pop-leave-to[data-v-01ea98dc]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.req-card[data-v-01ea98dc]{flex-direction:column}.req-right[data-v-01ea98dc]{flex-direction:row;justify-content:flex-end;align-items:center;width:100%}.action-btns[data-v-01ea98dc]{flex-direction:row}.tab-bar[data-v-01ea98dc]{width:100%}.tab-btn[data-v-01ea98dc]{flex:1;justify-content:center;gap:5px;padding:9px 6px;font-size:12px}.filter-wrap[data-v-01ea98dc]{width:100%}.search-wrap[data-v-01ea98dc]{flex:100%;width:100%}.search-input[data-v-01ea98dc]{box-sizing:border-box;width:100%!important}.action-btns-bottom[data-v-01ea98dc]{width:100%}.action-btns-bottom .btn-approve[data-v-01ea98dc],.action-btns-bottom .btn-reject[data-v-01ea98dc]{flex:1;justify-content:center}}.adj-page[data-v-01ea98dc]{flex-direction:column;gap:16px;display:flex}.ta-type-tag[data-v-01ea98dc]{color:#09805f;background:#ecfdf5;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.ta-round-tag[data-v-01ea98dc]{color:#2563eb;background:#eff6ff;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.ta-times[data-v-01ea98dc]{color:#334155;gap:14px;margin:4px 0;font-size:13px;font-weight:600;display:flex}.ta-times i[data-v-01ea98dc]{font-size:11px}.req-empno[data-v-01ea98dc]{color:#94a3b8;font-size:12px;font-weight:400}.ta-reject-overlay[data-v-01ea98dc]{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ta-reject-box[data-v-01ea98dc]{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:22px;box-shadow:0 24px 60px #00000047}.ta-reject-head[data-v-01ea98dc]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.ta-reject-icon[data-v-01ea98dc]{color:#ef4444;background:#fee2e2;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.ta-reject-head h3[data-v-01ea98dc]{color:#0f172a;margin:0;font-size:16px;font-weight:800}.ta-reject-head p[data-v-01ea98dc]{color:#64748b;margin:2px 0 0;font-size:12px}.ta-reject-label[data-v-01ea98dc]{color:#475569;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.ta-reject-input[data-v-01ea98dc]{box-sizing:border-box;color:#1e293b;resize:none;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.ta-reject-input[data-v-01ea98dc]:focus{border-color:#ef4444}.ta-reject-actions[data-v-01ea98dc]{gap:10px;margin-top:16px;display:flex}.ta-reject-cancel[data-v-01ea98dc],.ta-reject-ok[data-v-01ea98dc]{cursor:pointer;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:7px;padding:11px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s;display:inline-flex}.ta-reject-cancel[data-v-01ea98dc]{color:#475569;background:#fff;border:1.5px solid #e2e8f0}.ta-reject-cancel[data-v-01ea98dc]:hover{background:#f8fafc}.ta-reject-ok[data-v-01ea98dc]{color:#fff;background:#ef4444;border:none}.ta-reject-ok[data-v-01ea98dc]:hover:not(:disabled){background:#dc2626}.ta-reject-ok[data-v-01ea98dc]:disabled,.ta-reject-cancel[data-v-01ea98dc]:disabled{opacity:.6;cursor:not-allowed}.fade-enter-active[data-v-01ea98dc],.fade-leave-active[data-v-01ea98dc]{transition:opacity .2s}.fade-enter-from[data-v-01ea98dc],.fade-leave-to[data-v-01ea98dc]{opacity:0}.toolbar[data-v-1b8a003f]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-bar[data-v-1b8a003f]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);gap:4px;padding:6px;display:flex}.tab-btn[data-v-1b8a003f]{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tab-btn.active[data-v-1b8a003f]{background:var(--primary);color:#fff}.tab-btn[data-v-1b8a003f]:not(.active):hover{background:var(--bg-main)}.tab-badge[data-v-1b8a003f]{color:#fff;background:#f59e0b;border-radius:10px;padding:1px 6px;font-size:10px}.tab-badge-approved[data-v-1b8a003f]{background:#10b981}.tab-badge-rejected[data-v-1b8a003f]{background:#ef4444}.tab-btn.active .tab-badge[data-v-1b8a003f]{background:#ffffff4d}.filter-wrap[data-v-1b8a003f]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-filter[data-v-1b8a003f],.sel[data-v-1b8a003f]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px}.input-filter[data-v-1b8a003f]:focus,.sel[data-v-1b8a003f]:focus{border-color:var(--primary)}.search-wrap[data-v-1b8a003f]{position:relative}.search-icon[data-v-1b8a003f]{color:var(--text-secondary);pointer-events:none;font-size:12px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input[data-v-1b8a003f]{cursor:text;width:200px;padding-left:30px!important}.search-input[data-v-1b8a003f]:focus{border-color:var(--primary)}.btn-refresh[data-v-1b8a003f]{border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border-radius:8px;place-items:center;font-size:13px;transition:all .15s;display:grid}.btn-refresh[data-v-1b8a003f]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-refresh[data-v-1b8a003f]:disabled{opacity:.5;cursor:not-allowed}.err-box[data-v-1b8a003f]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.err-retry[data-v-1b8a003f]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #f87171;border-radius:6px;margin-left:auto;padding:5px 12px;font-family:inherit;font-size:13px}.loading-box[data-v-1b8a003f]{text-align:center;color:var(--text-secondary);padding:48px;font-size:14px}.req-list[data-v-1b8a003f]{flex-direction:column;gap:12px;display:flex}.empty-state[data-v-1b8a003f]{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px;display:flex}.empty-state i[data-v-1b8a003f]{font-size:40px}.req-card[data-v-1b8a003f]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:stretch;gap:16px;padding:18px 20px;transition:box-shadow .2s;display:flex}.req-card[data-v-1b8a003f]:hover{box-shadow:var(--shadow-md)}.req-left[data-v-1b8a003f]{flex:1;gap:14px;display:flex}.req-avatar[data-v-1b8a003f]{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:grid;overflow:hidden}.req-avatar.large[data-v-1b8a003f]{border-radius:11px;width:48px;height:48px;font-size:15px}.req-avatar-img[data-v-1b8a003f]{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.req-info[data-v-1b8a003f]{flex-direction:column;flex:1;gap:5px;display:flex}.req-name-row[data-v-1b8a003f]{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.req-name[data-v-1b8a003f]{color:var(--text-primary);font-size:15px;font-weight:700}.emp-code-tag[data-v-1b8a003f]{color:#64748b;background:#f1f5f9;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.dept-tag[data-v-1b8a003f]{background:var(--bg-main);color:var(--text-secondary);border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.area-tag[data-v-1b8a003f]{color:#c2410c;background:#fff7ed;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.area-tag i[data-v-1b8a003f]{font-size:10px}.req-datetime[data-v-1b8a003f]{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.req-reason[data-v-1b8a003f]{color:var(--text-secondary);font-size:13px}.reason-label[data-v-1b8a003f]{color:#475569;font-weight:600}.req-meta[data-v-1b8a003f]{color:var(--text-secondary);opacity:.7;font-size:11px}.req-result[data-v-1b8a003f]{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.req-result.approved[data-v-1b8a003f]{color:#10b981}.req-result.rejected[data-v-1b8a003f]{color:#ef4444}.rr-head[data-v-1b8a003f]{align-items:center;gap:6px;display:inline-flex}.reject-reason-text[data-v-1b8a003f]{color:inherit;flex-basis:100%;padding-left:18px;font-size:12px;font-weight:400}.rr-label[data-v-1b8a003f]{color:inherit;font-weight:700}.req-right[data-v-1b8a003f]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.action-btns[data-v-1b8a003f]{flex-direction:column;gap:6px;display:flex}.action-btns-bottom[data-v-1b8a003f]{flex-direction:row;gap:10px;margin-top:12px}.action-btns-bottom .btn-approve[data-v-1b8a003f],.action-btns-bottom .btn-reject[data-v-1b8a003f]{padding:10px 20px;font-size:14px}.status-pill[data-v-1b8a003f]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.pill-pending[data-v-1b8a003f]{color:#854d0e;background:#fef3c7}.pill-approved[data-v-1b8a003f]{color:#065f46;background:#d1fae5}.pill-rejected[data-v-1b8a003f]{color:#991b1b;background:#fee2e2}.pill-cancelled[data-v-1b8a003f]{color:#64748b;background:#f1f5f9}.btn-approve[data-v-1b8a003f]{color:#065f46;cursor:pointer;white-space:nowrap;background:#d1fae5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-approve[data-v-1b8a003f]:hover:not(:disabled){color:#fff;background:#10b981}.btn-approve[data-v-1b8a003f]:disabled{opacity:.6;cursor:not-allowed}.btn-reject[data-v-1b8a003f]{color:#991b1b;cursor:pointer;white-space:nowrap;background:#fee2e2;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;display:flex}.btn-reject[data-v-1b8a003f]:hover{color:#fff;background:#ef4444}.btn-detail[data-v-1b8a003f]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;margin-top:auto;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.btn-detail[data-v-1b8a003f]:hover{border-color:var(--primary);color:var(--primary)}.overlay[data-v-1b8a003f]{z-index:200;background:#0006;position:fixed;inset:0}.modal[data-v-1b8a003f]{background:var(--bg-card);border-radius:var(--radius);z-index:201;flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:90vh;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal.modal-sm[data-v-1b8a003f]{width:400px}.modal-head[data-v-1b8a003f]{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-1b8a003f]{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-1b8a003f]{color:var(--primary)}.modal-close[data-v-1b8a003f]{border:1px solid var(--border);cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:7px;place-items:center;font-size:15px;display:grid}.modal-body[data-v-1b8a003f]{flex-direction:column;gap:16px;padding:20px 22px;display:flex;overflow-y:auto}.modal-foot[data-v-1b8a003f]{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.detail-person[data-v-1b8a003f]{background:var(--bg-main);border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex}.dp-tags[data-v-1b8a003f]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.detail-person .dept-tag[data-v-1b8a003f],.detail-person .area-tag[data-v-1b8a003f]{border:1px solid var(--border);background:#fff}.detail-grid[data-v-1b8a003f]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dg-item[data-v-1b8a003f]{flex-direction:column;gap:3px;display:flex}.dg-item.dg-full[data-v-1b8a003f]{grid-column:1/-1}.dg-label[data-v-1b8a003f]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.dg-item span[data-v-1b8a003f]:last-child{color:var(--text-primary);font-size:14px;font-weight:500}.reject-desc[data-v-1b8a003f]{color:var(--text-secondary);font-size:14px;line-height:1.6}.fg[data-v-1b8a003f]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-1b8a003f]{color:var(--text-secondary);font-size:13px;font-weight:600}.fi[data-v-1b8a003f]{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-main);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.fi[data-v-1b8a003f]:focus{border-color:var(--primary);background:#fff}.btn-ghost[data-v-1b8a003f]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600}.btn-reject-confirm[data-v-1b8a003f]{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:700;display:flex}.btn-reject-confirm[data-v-1b8a003f]:hover:not(:disabled){background:#dc2626}.btn-reject-confirm[data-v-1b8a003f]:disabled{opacity:.5;cursor:not-allowed}.pager[data-v-1b8a003f]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.pager-info[data-v-1b8a003f]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-1b8a003f]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-1b8a003f]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-1b8a003f]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-1b8a003f]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-1b8a003f]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-1b8a003f]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-1b8a003f]{align-items:center;gap:8px;display:flex}.pagesize-label[data-v-1b8a003f]{color:var(--text-secondary);font-size:13px}.overlay-fade-enter-active[data-v-1b8a003f],.overlay-fade-leave-active[data-v-1b8a003f]{transition:opacity .2s}.overlay-fade-enter-from[data-v-1b8a003f],.overlay-fade-leave-to[data-v-1b8a003f]{opacity:0}.modal-pop-enter-active[data-v-1b8a003f],.modal-pop-leave-active[data-v-1b8a003f]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-1b8a003f],.modal-pop-leave-to[data-v-1b8a003f]{opacity:0;transform:translate(-50%,-50%)scale(.92)}@media (width<=768px){.req-card[data-v-1b8a003f]{flex-direction:column}.req-right[data-v-1b8a003f]{flex-direction:row;justify-content:flex-end;align-items:center;width:100%}.action-btns[data-v-1b8a003f]{flex-direction:row}.tab-bar[data-v-1b8a003f]{width:100%}.tab-btn[data-v-1b8a003f]{flex:1;justify-content:center;gap:5px;padding:9px 6px;font-size:12px}.filter-wrap[data-v-1b8a003f]{width:100%}.search-wrap[data-v-1b8a003f]{flex:100%;width:100%}.search-input[data-v-1b8a003f]{box-sizing:border-box;width:100%!important}.action-btns-bottom[data-v-1b8a003f]{width:100%}.action-btns-bottom .btn-approve[data-v-1b8a003f],.action-btns-bottom .btn-reject[data-v-1b8a003f]{flex:1;justify-content:center}}.sched-page[data-v-1b8a003f]{flex-direction:column;gap:20px;display:flex}.shift-type-chip[data-v-1b8a003f]{color:#0ea5e9;background:#e0f2fe;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.day-chips[data-v-1b8a003f]{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.day-chip[data-v-1b8a003f]{color:#4f46e5;background:#eef2ff;border-radius:20px;padding:3px 9px;font-size:12px;font-weight:600}.day-table-wrap[data-v-1b8a003f]{border:1px solid #e2e8f0;border-radius:10px;margin-top:6px;overflow:hidden}.day-table[data-v-1b8a003f]{border-collapse:collapse;width:100%;font-size:13px}.day-table th[data-v-1b8a003f]{text-align:left;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 12px;font-weight:700}.day-table td[data-v-1b8a003f]{color:#1e293b;border-bottom:1px solid #f1f5f9;padding:8px 12px}.day-table tr:last-child td[data-v-1b8a003f]{border-bottom:none}.day-table tbody tr:nth-child(2n) td[data-v-1b8a003f]{background:#fafbfc}.toolbar[data-v-8552da44]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-8552da44]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.total-badge[data-v-8552da44]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;margin-left:auto;padding:6px 14px;font-size:13px;font-weight:600}.search-wrap[data-v-8552da44]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:9px 14px;display:flex}.search-wrap i[data-v-8552da44]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-8552da44]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.state-box[data-v-8552da44]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-8552da44]{color:#ef4444}.table-wrap[data-v-8552da44]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.data-table[data-v-8552da44]{border-collapse:collapse;width:100%}.data-table th[data-v-8552da44]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:700}.data-table td[data-v-8552da44]{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.data-table tr:last-child td[data-v-8552da44]{border-bottom:none}.data-table tr:hover td[data-v-8552da44]{background:#fafbfc}.empty-row[data-v-8552da44]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-8552da44]{align-items:center;gap:9px;display:flex}.mini-avatar[data-v-8552da44]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.rec-name[data-v-8552da44]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.rec-empid[data-v-8552da44]{color:var(--text-light);font-size:11px}.dept-tag[data-v-8552da44]{background:var(--bg-main);color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.td-date[data-v-8552da44]{white-space:nowrap;color:var(--text-secondary);font-size:12px}.td-desc[data-v-8552da44]{max-width:200px;color:var(--text-secondary);font-size:12px}.td-approver[data-v-8552da44]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.status-badge[data-v-8552da44]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-yellow[data-v-8552da44]{color:#854d0e;background:#fef3c7}.badge-green[data-v-8552da44]{color:#065f46;background:#d1fae5}.badge-red[data-v-8552da44]{color:#991b1b;background:#fee2e2}.badge-gray[data-v-8552da44]{color:#64748b;background:#f1f5f9}.reject-reason[data-v-8552da44]{color:#ef4444;max-width:220px;font-size:12px}.text-muted[data-v-8552da44]{color:var(--text-light);font-size:12px}.ot-history[data-v-8552da44]{flex-direction:column;gap:20px;display:flex}.data-table[data-v-8552da44]{min-width:900px}.time-cell[data-v-8552da44]{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-secondary)}.ot-type-tag[data-v-8552da44]{color:#4f46e5;white-space:nowrap;background:#f0f4ff;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.pagesize-wrap[data-v-8552da44]{align-items:center;gap:8px;margin-left:auto;display:flex}.pagesize-label[data-v-8552da44]{color:var(--text-secondary);font-size:13px}.pager[data-v-8552da44]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pager-info[data-v-8552da44]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-8552da44]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-8552da44]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-8552da44]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-8552da44]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-8552da44]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-8552da44]{color:#94a3b8;padding:0 2px}.toolbar[data-v-2e35dcb0]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-2e35dcb0]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.total-badge[data-v-2e35dcb0]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;margin-left:auto;padding:6px 14px;font-size:13px;font-weight:600}.search-wrap[data-v-2e35dcb0]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:9px 14px;display:flex}.search-wrap i[data-v-2e35dcb0]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-2e35dcb0]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.state-box[data-v-2e35dcb0]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-2e35dcb0]{color:#ef4444}.table-wrap[data-v-2e35dcb0]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.data-table[data-v-2e35dcb0]{border-collapse:collapse;width:100%}.data-table th[data-v-2e35dcb0]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:700}.data-table td[data-v-2e35dcb0]{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.data-table tr:last-child td[data-v-2e35dcb0]{border-bottom:none}.data-table tr:hover td[data-v-2e35dcb0]{background:#fafbfc}.empty-row[data-v-2e35dcb0]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-2e35dcb0]{align-items:center;gap:9px;display:flex}.mini-avatar[data-v-2e35dcb0]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.rec-name[data-v-2e35dcb0]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.rec-empid[data-v-2e35dcb0]{color:var(--text-light);font-size:11px}.dept-tag[data-v-2e35dcb0]{background:var(--bg-main);color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.td-date[data-v-2e35dcb0]{white-space:nowrap;color:var(--text-secondary);font-size:12px}.td-desc[data-v-2e35dcb0]{max-width:200px;color:var(--text-secondary);font-size:12px}.td-approver[data-v-2e35dcb0]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.status-badge[data-v-2e35dcb0]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-yellow[data-v-2e35dcb0]{color:#854d0e;background:#fef3c7}.badge-green[data-v-2e35dcb0]{color:#065f46;background:#d1fae5}.badge-red[data-v-2e35dcb0]{color:#991b1b;background:#fee2e2}.badge-gray[data-v-2e35dcb0]{color:#64748b;background:#f1f5f9}.reject-reason[data-v-2e35dcb0]{color:#ef4444;max-width:220px;font-size:12px}.shift-history[data-v-2e35dcb0]{flex-direction:column;gap:20px;display:flex}.data-table[data-v-2e35dcb0]{min-width:860px}.shift-tag[data-v-2e35dcb0]{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.text-muted[data-v-2e35dcb0]{color:var(--text-light);font-size:12px}.pager[data-v-2e35dcb0]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pager-info[data-v-2e35dcb0]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-2e35dcb0]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-2e35dcb0]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-2e35dcb0]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-2e35dcb0]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-2e35dcb0]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-2e35dcb0]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-2e35dcb0]{align-items:center;gap:8px;margin-left:auto;display:flex}.pagesize-label[data-v-2e35dcb0]{color:var(--text-secondary);font-size:13px}.toolbar[data-v-523a6f10]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-523a6f10]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.total-badge[data-v-523a6f10]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;margin-left:auto;padding:6px 14px;font-size:13px;font-weight:600}.search-wrap[data-v-523a6f10]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:9px 14px;display:flex}.search-wrap i[data-v-523a6f10]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-523a6f10]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.state-box[data-v-523a6f10]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-523a6f10]{color:#ef4444}.table-wrap[data-v-523a6f10]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.data-table[data-v-523a6f10]{border-collapse:collapse;width:100%}.data-table th[data-v-523a6f10]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:700}.data-table td[data-v-523a6f10]{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.data-table tr:last-child td[data-v-523a6f10]{border-bottom:none}.data-table tr:hover td[data-v-523a6f10]{background:#fafbfc}.empty-row[data-v-523a6f10]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-523a6f10]{align-items:center;gap:9px;display:flex}.mini-avatar[data-v-523a6f10]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.rec-name[data-v-523a6f10]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.rec-empid[data-v-523a6f10]{color:var(--text-light);font-size:11px}.dept-tag[data-v-523a6f10]{background:var(--bg-main);color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.td-date[data-v-523a6f10]{white-space:nowrap;color:var(--text-secondary);font-size:12px}.td-desc[data-v-523a6f10]{max-width:200px;color:var(--text-secondary);font-size:12px}.td-approver[data-v-523a6f10]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.status-badge[data-v-523a6f10]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-yellow[data-v-523a6f10]{color:#854d0e;background:#fef3c7}.badge-green[data-v-523a6f10]{color:#065f46;background:#d1fae5}.badge-red[data-v-523a6f10]{color:#991b1b;background:#fee2e2}.badge-gray[data-v-523a6f10]{color:#64748b;background:#f1f5f9}.reject-reason[data-v-523a6f10]{color:#ef4444;max-width:220px;font-size:12px}.text-muted[data-v-523a6f10]{color:var(--text-light);font-size:12px}.leave-history[data-v-523a6f10]{flex-direction:column;gap:20px;display:flex}.data-table[data-v-523a6f10]{min-width:900px}.leave-type-tag[data-v-523a6f10]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.td-days[data-v-523a6f10]{white-space:nowrap;color:var(--text-primary);font-size:13px;font-weight:600}.doc-link-btn[data-v-523a6f10]{color:#059669;cursor:pointer;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:7px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.doc-link-btn[data-v-523a6f10]:hover{background:#d1fae5}.doc-overlay[data-v-523a6f10]{z-index:300;background:#0009;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.doc-modal[data-v-523a6f10]{background:#fff;border-radius:14px;flex-direction:column;max-width:92vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 50px #0000004d}.doc-modal-head[data-v-523a6f10]{border-bottom:1px solid var(--border);color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.doc-head-actions[data-v-523a6f10]{align-items:center;gap:8px;display:flex}.doc-open-new[data-v-523a6f10],.doc-close[data-v-523a6f10]{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:#fff;border-radius:8px;place-items:center;text-decoration:none;display:grid}.doc-open-new[data-v-523a6f10]:hover,.doc-close[data-v-523a6f10]:hover{background:var(--bg-main);color:var(--primary)}.doc-modal-body[data-v-523a6f10]{padding:14px;overflow:auto}.doc-modal-body img[data-v-523a6f10]{border-radius:8px;max-width:100%;max-height:76vh;margin:0 auto;display:block}.fade-enter-active[data-v-523a6f10],.fade-leave-active[data-v-523a6f10]{transition:opacity .2s}.fade-enter-from[data-v-523a6f10],.fade-leave-to[data-v-523a6f10]{opacity:0}.pager[data-v-523a6f10]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pager-info[data-v-523a6f10]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-523a6f10]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-523a6f10]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-523a6f10]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-523a6f10]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-523a6f10]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-523a6f10]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-523a6f10]{align-items:center;gap:8px;margin-left:auto;display:flex}.pagesize-label[data-v-523a6f10]{color:var(--text-secondary);font-size:13px}.toolbar[data-v-0d8f633e]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-0d8f633e]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.total-badge[data-v-0d8f633e]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;margin-left:auto;padding:6px 14px;font-size:13px;font-weight:600}.search-wrap[data-v-0d8f633e]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:9px 14px;display:flex}.search-wrap i[data-v-0d8f633e]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-0d8f633e]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.state-box[data-v-0d8f633e]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-0d8f633e]{color:#ef4444}.table-wrap[data-v-0d8f633e]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.data-table[data-v-0d8f633e]{border-collapse:collapse;width:100%}.data-table th[data-v-0d8f633e]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:700}.data-table td[data-v-0d8f633e]{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.data-table tr:last-child td[data-v-0d8f633e]{border-bottom:none}.data-table tr:hover td[data-v-0d8f633e]{background:#fafbfc}.empty-row[data-v-0d8f633e]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-0d8f633e]{align-items:center;gap:9px;display:flex}.mini-avatar[data-v-0d8f633e]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.rec-name[data-v-0d8f633e]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.rec-empid[data-v-0d8f633e]{color:var(--text-light);font-size:11px}.dept-tag[data-v-0d8f633e]{background:var(--bg-main);color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.td-date[data-v-0d8f633e]{white-space:nowrap;color:var(--text-secondary);font-size:12px}.td-desc[data-v-0d8f633e]{max-width:200px;color:var(--text-secondary);font-size:12px}.td-approver[data-v-0d8f633e]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.status-badge[data-v-0d8f633e]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-yellow[data-v-0d8f633e]{color:#854d0e;background:#fef3c7}.badge-green[data-v-0d8f633e]{color:#065f46;background:#d1fae5}.badge-red[data-v-0d8f633e]{color:#991b1b;background:#fee2e2}.badge-gray[data-v-0d8f633e]{color:#64748b;background:#f1f5f9}.reject-reason[data-v-0d8f633e]{color:#ef4444;max-width:220px;font-size:12px}.text-muted[data-v-0d8f633e]{color:var(--text-light);font-size:12px}.schedule-history[data-v-0d8f633e]{flex-direction:column;gap:20px;display:flex}.data-table[data-v-0d8f633e]{min-width:760px}.day-chip[data-v-0d8f633e]{color:#4f46e5;background:#eef2ff;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.pager[data-v-0d8f633e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pager-info[data-v-0d8f633e]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-0d8f633e]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-0d8f633e]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-0d8f633e]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-0d8f633e]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-0d8f633e]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-0d8f633e]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-0d8f633e]{align-items:center;gap:8px;margin-left:auto;display:flex}.pagesize-label[data-v-0d8f633e]{color:var(--text-secondary);font-size:13px}.toolbar[data-v-c8272094]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sel[data-v-c8272094]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px}.total-badge[data-v-c8272094]{color:var(--text-secondary);background:var(--bg-main);border:1px solid var(--border);border-radius:20px;margin-left:auto;padding:6px 14px;font-size:13px;font-weight:600}.search-wrap[data-v-c8272094]{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;min-width:200px;padding:9px 14px;display:flex}.search-wrap i[data-v-c8272094]{color:var(--text-light);font-size:13px}.search-wrap input[data-v-c8272094]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.state-box[data-v-c8272094]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;padding:48px;font-size:14px;display:flex}.state-error[data-v-c8272094]{color:#ef4444}.table-wrap[data-v-c8272094]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.data-table[data-v-c8272094]{border-collapse:collapse;width:100%}.data-table th[data-v-c8272094]{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:11px;font-weight:700}.data-table td[data-v-c8272094]{border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.data-table tr:last-child td[data-v-c8272094]{border-bottom:none}.data-table tr:hover td[data-v-c8272094]{background:#fafbfc}.empty-row[data-v-c8272094]{text-align:center;color:var(--text-light);padding:48px!important}.cell-person[data-v-c8272094]{align-items:center;gap:9px;display:flex}.mini-avatar[data-v-c8272094]{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.rec-name[data-v-c8272094]{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:600}.rec-empid[data-v-c8272094]{color:var(--text-light);font-size:11px}.dept-tag[data-v-c8272094]{background:var(--bg-main);color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.td-date[data-v-c8272094]{white-space:nowrap;color:var(--text-secondary);font-size:12px}.td-desc[data-v-c8272094]{max-width:200px;color:var(--text-secondary);font-size:12px}.td-approver[data-v-c8272094]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.status-badge[data-v-c8272094]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.badge-yellow[data-v-c8272094]{color:#854d0e;background:#fef3c7}.badge-green[data-v-c8272094]{color:#065f46;background:#d1fae5}.badge-red[data-v-c8272094]{color:#991b1b;background:#fee2e2}.badge-gray[data-v-c8272094]{color:#64748b;background:#f1f5f9}.reject-reason[data-v-c8272094]{color:#ef4444;max-width:220px;font-size:12px}.text-muted[data-v-c8272094]{color:var(--text-light);font-size:12px}.ta-history[data-v-c8272094]{flex-direction:column;gap:20px;display:flex}.data-table[data-v-c8272094]{min-width:980px}.type-tag[data-v-c8272094]{color:#09805f;white-space:nowrap;background:#ecfdf5;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.round-tag[data-v-c8272094]{color:#2563eb;white-space:nowrap;background:#eff6ff;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.td-times[data-v-c8272094]{white-space:nowrap;color:var(--text-primary);font-size:13px;font-weight:600}.td-times span+span[data-v-c8272094]{margin-left:10px}.pager[data-v-c8272094]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pager-info[data-v-c8272094]{color:var(--text-secondary);font-size:13px}.pager-ctrls[data-v-c8272094]{align-items:center;gap:6px;display:flex}.pg-btn[data-v-c8272094]{border:1px solid var(--border);min-width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .12s}.pg-btn[data-v-c8272094]:hover:not(:disabled):not(.active){background:var(--bg-main);border-color:#cbd5e1}.pg-btn.active[data-v-c8272094]{background:var(--primary,#4f46e5);border-color:var(--primary,#4f46e5);color:#fff}.pg-btn[data-v-c8272094]:disabled{opacity:.45;cursor:not-allowed}.pg-dots[data-v-c8272094]{color:#94a3b8;padding:0 2px}.pagesize-wrap[data-v-c8272094]{align-items:center;gap:8px;margin-left:auto;display:flex}.pagesize-label[data-v-c8272094]{color:var(--text-secondary);font-size:13px}.portal-shell[data-v-5289b4e1]{flex-direction:column;min-height:calc(100vh - 64px);padding-bottom:80px;display:flex;position:relative}.tab-content[data-v-5289b4e1]{flex-direction:column;flex:1;gap:20px;padding:4px 0 8px;display:flex}.bottom-nav[data-v-5289b4e1]{z-index:100;background:#fff;border-top:1px solid #e2e8f0;align-items:stretch;height:68px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000014}.nav-item[data-v-5289b4e1]{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 0;font-family:inherit;font-size:11px;font-weight:500;transition:all .2s;display:flex;position:relative}.nav-item i[data-v-5289b4e1]{font-size:22px;transition:transform .2s}.nav-item.active[data-v-5289b4e1]{color:#0d4f47}.nav-item.active i[data-v-5289b4e1]{transform:translateY(-2px)}.nav-item.active[data-v-5289b4e1]:after{content:"";background:#0d4f47;border-radius:0 0 4px 4px;height:3px;position:absolute;top:0;left:20%;right:20%}.clock-card[data-v-5289b4e1]{color:#fff;text-align:center;background:#065f46;border-radius:20px;margin-bottom:16px;padding:24px 20px;position:relative;overflow:hidden;box-shadow:0 10px 30px #065f464d}.clock-badges[data-v-5289b4e1]{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:10px;display:flex}.clock-badge[data-v-5289b4e1]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.time-display[data-v-5289b4e1]{letter-spacing:1px;font-variant-numeric:tabular-nums;font-size:60px;font-weight:800;line-height:1}.date-display[data-v-5289b4e1]{opacity:.95;margin-top:6px;font-size:14px}.shift-info[data-v-5289b4e1]{background:#ffffff26;border-radius:20px;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;font-size:13px;font-weight:500;display:inline-flex}.status-card[data-v-5289b4e1]{background:#fff;border-radius:16px;padding:18px;box-shadow:0 2px 10px #0000000a}.status-empty[data-v-5289b4e1]{color:#94a3b8;justify-content:center;align-items:center;gap:10px;padding:10px 0;font-size:14px;display:flex}.status-empty i[data-v-5289b4e1]{font-size:20px}.status-line[data-v-5289b4e1]{color:#334155;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0 14px;font-size:14px;display:flex}.status-line strong[data-v-5289b4e1]{color:#0f172a}.status-line--active[data-v-5289b4e1]{color:#047857}.status-dur[data-v-5289b4e1]{color:#6366f1;font-weight:600}.status-dot-live[data-v-5289b4e1]{background:#10b981;border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:1.6s infinite pulse-5289b4e1;box-shadow:0 0 #10b98180}.session-list[data-v-5289b4e1]{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.session-row[data-v-5289b4e1]{border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.next-day-tag[data-v-5289b4e1]{color:#6366f1;vertical-align:top;background:#eef2ff;border-radius:6px;margin-left:3px;padding:0 4px;font-size:9px;font-weight:700}.session-row--active[data-v-5289b4e1]{background:#f0fdf4;border:1px solid #bbf7d0}.session-row--done[data-v-5289b4e1]{background:#f8fafc;border:1px solid #e2e8f0}.session-no[data-v-5289b4e1]{color:#64748b;min-width:36px;font-size:11px;font-weight:700}.session-times[data-v-5289b4e1]{flex-wrap:wrap;flex:1;align-items:center;gap:6px;display:flex}.session-hours[data-v-5289b4e1]{color:#6366f1;background:#eef2ff;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.session-badge-active[data-v-5289b4e1]{color:#059669;background:#d1fae5;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.sep[data-v-5289b4e1]{color:#cbd5e1;font-size:11px}.chip[data-v-5289b4e1]{border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip-green[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.chip-blue[data-v-5289b4e1]{color:#1e40af;background:#dbeafe}.chip-gray[data-v-5289b4e1]{color:#475569;background:#f1f5f9}.btn-main[data-v-5289b4e1]{cursor:pointer;color:#fff;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-family:inherit;font-size:16px;font-weight:700;transition:all .2s;display:flex}.btn-main[data-v-5289b4e1]:disabled{opacity:.5;cursor:not-allowed}.btn-main[data-v-5289b4e1]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px #00000026}.btn-in[data-v-5289b4e1]{background:#10b981}.btn-out[data-v-5289b4e1]{background:linear-gradient(135deg,#ef4444,#dc2626)}.section-card[data-v-5289b4e1]{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.section-head[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.section-head h3[data-v-5289b4e1]{color:#1e293b;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.section-head h3 i[data-v-5289b4e1]{color:#09805f}.btn-text[data-v-5289b4e1]{color:#09805f;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 6px;font-family:inherit;font-size:13px;transition:background .2s;display:flex}.btn-text[data-v-5289b4e1]:hover{background:#ecfdf5}.record-item[data-v-5289b4e1]{border-bottom:1px solid #f8fafc;align-items:center;gap:12px;padding:12px 18px;transition:background .15s;display:flex}.record-item[data-v-5289b4e1]:last-child{border-bottom:none}.record-item[data-v-5289b4e1]:hover{background:#f8fafc}.rec-date[data-v-5289b4e1]{flex-direction:column;min-width:64px;display:flex}.rec-day[data-v-5289b4e1]{color:#1e293b;font-size:13px;font-weight:600}.rec-full[data-v-5289b4e1]{color:#94a3b8;font-size:11px}.rec-times[data-v-5289b4e1]{color:#334155;flex:1;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.rec-arrow[data-v-5289b4e1]{color:#cbd5e1;font-size:10px}.rec-in[data-v-5289b4e1]{color:#059669}.rec-out[data-v-5289b4e1]{color:#dc2626}.rec-right[data-v-5289b4e1]{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.rec-hours[data-v-5289b4e1]{color:#64748b;font-size:11px}.rec-round-chip[data-v-5289b4e1]{color:#4f46e5;background:#eef2ff;border-radius:20px;flex-shrink:0;padding:1px 8px;font-size:10px;font-weight:700}.record-item--sub[data-v-5289b4e1]{padding-top:2px;padding-bottom:2px}.record-item--sub .rec-date[data-v-5289b4e1]{visibility:hidden}.status-badge[data-v-5289b4e1]{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.badge-normal[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.badge-late[data-v-5289b4e1]{color:#854d0e;background:#fef9c3}.badge-absent[data-v-5289b4e1]{color:#991b1b;background:#fee2e2}.badge-inprogress[data-v-5289b4e1]{color:#1e40af;background:#dbeafe}.badge-leave[data-v-5289b4e1]{color:#6b21a8;background:#f3e8ff}.badge-offshift[data-v-5289b4e1]{color:#9a3412;background:#ffedd5}.fab-wrap[data-v-5289b4e1]{z-index:200;flex-direction:column;align-items:flex-end;gap:0;display:flex;position:fixed;bottom:84px;right:20px}.fab-backdrop[data-v-5289b4e1]{z-index:198;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000040;position:fixed;inset:0}.fab-backdrop-fade-enter-active[data-v-5289b4e1],.fab-backdrop-fade-leave-active[data-v-5289b4e1]{transition:opacity .2s}.fab-backdrop-fade-enter-from[data-v-5289b4e1],.fab-backdrop-fade-leave-to[data-v-5289b4e1]{opacity:0}.fab-menu[data-v-5289b4e1]{z-index:201;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:68px;right:0}.fab-menu-fade-enter-active[data-v-5289b4e1]{transition:all .22s cubic-bezier(.34,1.56,.64,1)}.fab-menu-fade-leave-active[data-v-5289b4e1]{transition:all .15s}.fab-menu-fade-enter-from[data-v-5289b4e1]{opacity:0;transform:translateY(12px)scale(.92)}.fab-menu-fade-leave-to[data-v-5289b4e1]{opacity:0;transform:translateY(8px)scale(.95)}.fab-item[data-v-5289b4e1]{cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-family:inherit;display:flex}.fab-item-label[data-v-5289b4e1]{color:#fff;white-space:nowrap;background:#1e293b;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600;box-shadow:0 2px 10px #00000040}.fab-item-icon[data-v-5289b4e1]{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:18px;transition:transform .15s;display:flex;box-shadow:0 4px 14px #0003}.fab-item:hover .fab-item-icon[data-v-5289b4e1]{transform:scale(1.1)}.fab-item:hover .fab-item-label[data-v-5289b4e1]{background:#0f172a}.fab[data-v-5289b4e1]{color:#fff;cursor:pointer;z-index:202;background:#3b82f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .25s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;box-shadow:0 6px 20px #3b82f673}.fab[data-v-5289b4e1]:hover{transform:scale(1.08);box-shadow:0 8px 28px #6366f18c}.fab-icon[data-v-5289b4e1]{font-size:22px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.fab.fab-open[data-v-5289b4e1]{box-shadow:0 6px 24px #6366f199}.fab.fab-open .fab-icon[data-v-5289b4e1]{transform:rotate(45deg)}.ot-modal-box[data-v-5289b4e1]{flex-direction:column;max-height:90vh;display:flex}.ot-modal-body[data-v-5289b4e1]{flex-direction:column;gap:0;display:flex;overflow-y:auto;flex:1!important;padding:0!important}.ot-error-banner[data-v-5289b4e1]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:flex-start;gap:8px;margin:0 18px 4px;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.45;display:flex}.ot-error-banner i[data-v-5289b4e1]{flex-shrink:0;margin-top:2px}.ot-modal-footer[data-v-5289b4e1]{background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.ot-date-input[data-v-5289b4e1]{color:#0f172a;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.ot-date-input[data-v-5289b4e1]:focus{background:#fff;border-color:#eb2a2e}.ot-loading-spin[data-v-5289b4e1]{color:#94a3b8;margin-left:4px}.ot-date-bar[data-v-5289b4e1]{color:#92400e;background:#fffbeb;border-bottom:1px solid #fde68a;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;display:flex}.ot-section[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:10px;padding:14px 18px;display:flex}.ot-section[data-v-5289b4e1]:last-child{border-bottom:none}.ot-section-title[data-v-5289b4e1]{color:#334155;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.ot-exist-count[data-v-5289b4e1]{color:#94a3b8;margin-left:auto;font-size:11px;font-weight:600}.ot-exist-list[data-v-5289b4e1]{flex-direction:column;gap:6px;display:flex}.ot-exist-item[data-v-5289b4e1]{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.ot-exist-time[data-v-5289b4e1]{color:#92400e;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.ot-exist-dur[data-v-5289b4e1]{color:#b45309;background:#fef3c7;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.ot-exist-status[data-v-5289b4e1]{border-radius:20px;margin-left:auto;padding:2px 9px;font-size:11px;font-weight:700}.ot-time-inputs[data-v-5289b4e1]{align-items:flex-end;gap:8px;display:flex}.ot-time-group[data-v-5289b4e1]{flex-direction:column;flex:1;gap:5px;display:flex}.ot-time-group label[data-v-5289b4e1]{color:#64748b;font-size:11px;font-weight:600}.ot-time-input[data-v-5289b4e1]{color:#1e293b;box-sizing:border-box;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:9px 10px;font-family:inherit;font-size:15px;font-weight:700;transition:border-color .2s}.ot-time-input[data-v-5289b4e1]:focus{border-color:#eb2a2e}.ot-time-arrow[data-v-5289b4e1]{color:#94a3b8;flex-shrink:0;padding-bottom:10px;font-size:14px}.ot-duration-pill[data-v-5289b4e1]{color:#eb2a2e;background:#fef2f2;border:1px solid #eb2a2e;border-radius:20px;align-self:flex-start;align-items:center;gap:7px;padding:7px 14px;font-size:13px;display:inline-flex}.ot-detail-input[data-v-5289b4e1]{box-sizing:border-box;color:#1e293b;resize:none;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.6;transition:border-color .2s}.ot-detail-input[data-v-5289b4e1]:focus{border-color:#eb2a2e}.ot-detail-input[data-v-5289b4e1]::placeholder{color:#94a3b8}.ot-char-count[data-v-5289b4e1]{text-align:right;color:#94a3b8;margin-top:2px;font-size:11px}.btn-ot-submit[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#06533e;border:none;border-radius:10px;align-items:center;gap:7px;padding:10px 22px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.btn-ot-submit[data-v-5289b4e1]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 16px #06533e66}.btn-ot-submit[data-v-5289b4e1]:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.ot-success[data-v-5289b4e1]{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:30px 20px;display:flex}.ot-success-icon[data-v-5289b4e1]{color:#f59e0b;font-size:3.5rem;animation:.4s cubic-bezier(.175,.885,.32,1.275) pop-5289b4e1}.ot-success h3[data-v-5289b4e1]{color:#1e293b;margin:0;font-size:18px;font-weight:800}.ot-success p[data-v-5289b4e1]{color:#64748b;margin:0;font-size:13px;line-height:1.6}.adj-modal-box[data-v-5289b4e1]{flex-direction:column;max-height:90vh;display:flex}.adj-modal-body[data-v-5289b4e1]{overflow-y:auto;flex:1!important;padding:0!important}.adj-modal-tabs[data-v-5289b4e1]{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex}.amt[data-v-5289b4e1]{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.amt[data-v-5289b4e1]:hover{color:#eb2a2e;background:#fef2f2}.amt--active[data-v-5289b4e1]{color:#eb2a2e;background:#fff;border-bottom-color:#eb2a2e}.amt-badge[data-v-5289b4e1]{color:#fff;background:#ef4444;border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.4}.adj-hist-body[data-v-5289b4e1]{overflow-y:auto;flex:1!important;padding:12px 14px!important}.adj-hist-loading[data-v-5289b4e1]{color:#94a3b8;justify-content:center;align-items:center;gap:8px;padding:32px;font-size:14px;display:flex}.adj-hist-empty[data-v-5289b4e1]{color:#94a3b8;flex-direction:column;align-items:center;gap:8px;padding:32px;font-size:22px;display:flex}.adj-hist-empty p[data-v-5289b4e1]{margin:0;font-size:13px}.adj-hist-list[data-v-5289b4e1]{flex-direction:column;gap:10px;display:flex}.adj-hist-card[data-v-5289b4e1]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:7px;padding:12px 14px;display:flex;box-shadow:0 1px 4px #0000000d}.adj-hist-top[data-v-5289b4e1]{justify-content:space-between;align-items:center;gap:8px;display:flex}.adj-hist-type[data-v-5289b4e1]{color:#334155;font-size:12px;font-weight:700}.adj-hist-status[data-v-5289b4e1]{border-radius:99px;padding:2px 10px;font-size:11px;font-weight:700}.adj-hist-date[data-v-5289b4e1]{color:#64748b;align-items:center;gap:6px;font-size:12px;display:flex}.adj-hist-shift[data-v-5289b4e1]{color:#475569;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.adj-hist-reason[data-v-5289b4e1]{color:#64748b;align-items:flex-start;gap:5px;font-size:12px;font-style:italic;display:flex}.adj-hist-reject-note[data-v-5289b4e1]{color:#ef4444;background:#fff1f2;border-radius:6px;align-items:flex-start;gap:6px;padding:6px 8px;font-size:12px;display:flex}.adj-hist-approver[data-v-5289b4e1]{color:#10b981;align-items:center;gap:6px;font-size:12px;display:flex}.adj-hist-foot[data-v-5289b4e1]{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.adj-hist-created[data-v-5289b4e1]{color:#94a3b8;font-size:11px}.adj-hist-cancel[data-v-5289b4e1]{color:#ef4444;cursor:pointer;background:#fff1f2;border:1px solid #fca5a5;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.adj-hist-cancel[data-v-5289b4e1]:hover:not(:disabled){background:#fee2e2}.adj-hist-cancel[data-v-5289b4e1]:disabled{opacity:.5;cursor:not-allowed}.sh-hist-wrap[data-v-5289b4e1]{flex-direction:column;gap:14px;display:flex}.sh-month-filter[data-v-5289b4e1]{color:#64748b;align-items:center;gap:8px;font-size:13px;display:flex}.sh-month-filter i[data-v-5289b4e1]{font-size:12px}.sh-month-select[data-v-5289b4e1]{color:#1e293b;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:13px}.sh-month-select[data-v-5289b4e1]:focus{background:#fff;border-color:#0ea5e9}.sh-month-group[data-v-5289b4e1]{flex-direction:column;gap:8px;display:flex}.sh-month-head[data-v-5289b4e1]{color:#0ea5e9;border-bottom:1px solid #e2e8f0;align-items:center;gap:7px;padding:4px 2px;font-size:13px;font-weight:800;display:flex}.sh-month-count[data-v-5289b4e1]{color:#94a3b8;margin-left:auto;font-size:11px;font-weight:600}.ri-days[data-v-5289b4e1]{color:#0369a1;background:#e0f2fe;border-radius:20px;margin-left:4px;padding:1px 8px;font-size:11px;font-weight:700}.adj-modal-footer[data-v-5289b4e1]{background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.adj-section[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:10px;padding:14px 18px;display:flex}.adj-section[data-v-5289b4e1]:last-child{border-bottom:none}.adj-section-title[data-v-5289b4e1]{color:#334155;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.adj-date-input[data-v-5289b4e1]{color:#1e293b;box-sizing:border-box;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.adj-date-input[data-v-5289b4e1]:focus{border-color:#eb2a2e}.adj-no-shift[data-v-5289b4e1]{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:12px;align-items:flex-start;gap:8px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.adj-no-shift i[data-v-5289b4e1]{flex-shrink:0;margin-top:2px}.adj-current-shift[data-v-5289b4e1]{background:#f8fafc;border-left:4px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.acs-left[data-v-5289b4e1]{flex:1;align-items:center;gap:10px;display:flex}.acs-dot[data-v-5289b4e1]{border-radius:50%;flex-shrink:0;width:12px;height:12px}.acs-name[data-v-5289b4e1]{color:#1e293b;font-size:14px;font-weight:700}.acs-desc[data-v-5289b4e1]{color:#94a3b8;margin-top:2px;font-size:11px}.acs-time[data-v-5289b4e1]{flex-shrink:0;align-items:center;gap:4px;display:flex}.acs-time-chip[data-v-5289b4e1]{color:#1d4ed8;background:#eff6ff;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}.acs-off-chip[data-v-5289b4e1]{color:#64748b;background:#f1f5f9;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600}.adj-new-shift-card[data-v-5289b4e1]{cursor:pointer;background:#f0fdf4;border:1.5px solid #e2e8f0;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:border-color .2s;display:flex}.adj-new-shift-card[data-v-5289b4e1]:hover{border-color:#6ee7b7}.adj-pick-shift-btn[data-v-5289b4e1]{color:#10b981;cursor:pointer;background:#f0fdf4;border:1.5px dashed #10b981;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-family:inherit;font-size:13px;font-weight:700;transition:all .15s;display:flex}.adj-pick-shift-btn[data-v-5289b4e1]:hover{background:#dcfce7}.adj-empty-state[data-v-5289b4e1]{color:#94a3b8;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:36px 20px;display:flex}.adj-empty-state i[data-v-5289b4e1]{font-size:2.5rem}.adj-empty-state p[data-v-5289b4e1]{margin:0;font-size:13px}.ta-type-row[data-v-5289b4e1]{gap:8px;display:flex}.ta-type-btn[data-v-5289b4e1]{color:#475569;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:9px;flex:1;padding:9px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.ta-type-btn.active[data-v-5289b4e1]{color:#09805f;background:#ecfdf5;border-color:#09805f}.ta-type-btn[data-v-5289b4e1]:disabled{opacity:.4;cursor:not-allowed;background:#f8fafc}.ta-type-hint[data-v-5289b4e1]{color:#2563eb;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.ta-round-list[data-v-5289b4e1]{flex-direction:column;gap:8px;display:flex}.ta-round-btn[data-v-5289b4e1]{color:#334155;cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e2e8f0;border-radius:9px;justify-content:flex-start;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.ta-round-btn small[data-v-5289b4e1]{color:#94a3b8;margin-left:auto;font-weight:500}.ta-round-btn.active[data-v-5289b4e1]{color:#09805f;background:#ecfdf5;border-color:#09805f}.ta-round-new[data-v-5289b4e1]{color:#09805f}.ta-round-note[data-v-5289b4e1]{color:#94a3b8;margin-top:6px;font-size:12px}.ta-time-row[data-v-5289b4e1]{gap:10px;display:flex}.ta-time-col[data-v-5289b4e1]{flex-direction:column;flex:1;gap:4px;display:flex}.ta-time-col label[data-v-5289b4e1]{color:#64748b;font-size:11px;font-weight:600}.ta-hist-item[data-v-5289b4e1]{border:1px solid #f1f5f9;border-radius:12px;margin-bottom:10px;padding:12px 14px}.ta-hist-main[data-v-5289b4e1]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ta-hist-date[data-v-5289b4e1]{color:#334155;font-size:13px;font-weight:600}.ta-hist-main .leave-status[data-v-5289b4e1]{margin-left:auto}.ta-hist-times[data-v-5289b4e1]{color:#334155;gap:14px;margin:6px 0;font-size:13px;font-weight:600;display:flex}.ta-hist-times i[data-v-5289b4e1]{font-size:11px}.ta-hist-reason[data-v-5289b4e1]{color:#64748b;font-size:12px;font-style:italic}.ta-hist-reject[data-v-5289b4e1]{color:#dc2626;align-items:center;gap:5px;margin-top:4px;font-size:12px;display:flex}.ta-cancel-btn[data-v-5289b4e1]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.ta-cancel-btn[data-v-5289b4e1]:hover{background:#fef2f2}.ta-confirm-overlay[data-v-5289b4e1]{z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ta-confirm-box[data-v-5289b4e1]{text-align:center;background:#fff;border-radius:18px;width:100%;max-width:340px;padding:24px 22px;box-shadow:0 24px 60px #00000047}.ta-confirm-icon[data-v-5289b4e1]{color:#ef4444;background:#fef2f2;border-radius:50%;place-items:center;width:60px;height:60px;margin:0 auto 14px;font-size:26px;display:grid}.ta-confirm-title[data-v-5289b4e1]{color:#0f172a;margin:0 0 8px;font-size:18px;font-weight:800}.ta-confirm-desc[data-v-5289b4e1]{color:#64748b;margin:0 0 20px;font-size:13px;line-height:1.6}.ta-confirm-actions[data-v-5289b4e1]{gap:10px;display:flex}.ta-confirm-cancel[data-v-5289b4e1],.ta-confirm-ok[data-v-5289b4e1]{cursor:pointer;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:7px;padding:11px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s;display:inline-flex}.ta-confirm-cancel[data-v-5289b4e1]{color:#475569;background:#fff;border:1.5px solid #e2e8f0}.ta-confirm-cancel[data-v-5289b4e1]:hover{background:#f8fafc}.ta-confirm-ok[data-v-5289b4e1]{color:#fff;background:#ef4444;border:none}.ta-confirm-ok[data-v-5289b4e1]:hover:not(:disabled){background:#dc2626}.ta-confirm-ok[data-v-5289b4e1]:disabled,.ta-confirm-cancel[data-v-5289b4e1]:disabled{opacity:.6;cursor:not-allowed}.btn-adj-submit[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#06533e;border:none;border-radius:10px;align-items:center;gap:7px;padding:10px 22px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.btn-adj-submit[data-v-5289b4e1]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 16px #06533e66}.btn-adj-submit[data-v-5289b4e1]:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.placeholder-body[data-v-5289b4e1]{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px 0 8px;display:flex}.placeholder-icon[data-v-5289b4e1]{font-size:3rem}.placeholder-title[data-v-5289b4e1]{color:#1e293b;margin:0;font-size:17px;font-weight:700}.placeholder-desc[data-v-5289b4e1]{color:#64748b;margin:0;font-size:13px;line-height:1.6}.cal-header[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.cal-header h3[data-v-5289b4e1]{margin:0;font-size:15px;font-weight:700}.cal-nav[data-v-5289b4e1]{cursor:pointer;color:#475569;background:#f1f5f9;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;transition:background .2s;display:flex}.cal-nav[data-v-5289b4e1]:hover{background:#e2e8f0}.cal-grid[data-v-5289b4e1]{grid-template-columns:repeat(7,1fr);gap:2px;padding:12px;display:grid}.cal-labels span[data-v-5289b4e1]{text-align:center;color:#94a3b8;text-transform:uppercase;padding:4px 0;font-size:11px;font-weight:600}.cal-day[data-v-5289b4e1]{aspect-ratio:1;color:#334155;cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:500;transition:background .15s;display:flex;position:relative}.cal-day[data-v-5289b4e1]:hover{background:#f1f5f9}.cal-day.empty[data-v-5289b4e1]{pointer-events:none}.cal-day.today[data-v-5289b4e1]{font-weight:700;color:#fff!important;background:#065f46!important}.cal-day.is-weekend[data-v-5289b4e1]{color:#94a3b8}.cal-day.has-absent[data-v-5289b4e1],.cal-day.is-absent[data-v-5289b4e1]{color:#ef4444}.cal-day.is-leave[data-v-5289b4e1]{color:#a855f7}.cal-status-mark[data-v-5289b4e1]{font-size:8px;line-height:1;position:absolute;bottom:2px;left:3px}.cal-day.today .cal-status-mark[data-v-5289b4e1]{color:#ffffffe6!important}.cal-shift-mark[data-v-5289b4e1]{font-size:8px;line-height:1;position:absolute;bottom:2px;right:3px}.cal-day.today .cal-shift-mark[data-v-5289b4e1]{color:#ffffffe6!important}.cal-ot-mark[data-v-5289b4e1]{color:#f97316;font-size:8px;line-height:1;position:absolute;top:2px;left:3px}.cal-day.today .cal-ot-mark[data-v-5289b4e1]{color:#fdba74}.cal-day.is-holiday[data-v-5289b4e1]{background:#fffbeb}.cal-day.is-holiday[data-v-5289b4e1]:hover{background:#fef3c7}.cal-holiday-mark[data-v-5289b4e1]{color:#f59e0b;font-size:8px;line-height:1;position:absolute;top:2px;right:3px}.cal-day.today .cal-holiday-mark[data-v-5289b4e1]{color:#fde68a}.cal-legend[data-v-5289b4e1]{border-top:1px solid #f1f5f9;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.cal-legend-row[data-v-5289b4e1]{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.cal-legend span[data-v-5289b4e1]{color:#64748b;align-items:center;gap:5px;font-size:12px;display:flex}.cal-legend i[data-v-5289b4e1]{font-size:8px}@media (width>=600px){.cal-day[data-v-5289b4e1]{font-size:16px}.cal-ot-mark[data-v-5289b4e1],.cal-holiday-mark[data-v-5289b4e1],.cal-status-mark[data-v-5289b4e1],.cal-shift-mark[data-v-5289b4e1]{font-size:12px}.cal-ot-mark[data-v-5289b4e1],.cal-holiday-mark[data-v-5289b4e1]{top:5px}.cal-ot-mark[data-v-5289b4e1]{left:6px}.cal-holiday-mark[data-v-5289b4e1]{right:6px}.cal-status-mark[data-v-5289b4e1]{bottom:5px;left:6px}.cal-shift-mark[data-v-5289b4e1]{bottom:5px;right:6px}.cal-legend i[data-v-5289b4e1]{font-size:11px}}.summary-grid[data-v-5289b4e1]{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.sum-card[data-v-5289b4e1]{background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:12px;padding:16px;display:flex}.sum-icon[data-v-5289b4e1]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.sum-label[data-v-5289b4e1]{color:#64748b;font-size:12px;display:block}.sum-val[data-v-5289b4e1]{color:#1e293b;font-size:18px;font-weight:800}.sheet-overlay.day-detail-overlay[data-v-5289b4e1]{justify-content:center;align-items:center;padding:16px}.shift-picker-sheet.day-detail-sheet[data-v-5289b4e1]{border-radius:20px;max-width:460px;max-height:80vh;margin:auto;padding-top:6px;box-shadow:0 20px 60px #00000040}.day-detail-sheet .sheet-header[data-v-5289b4e1]{padding-bottom:10px}.day-detail-body[data-v-5289b4e1]{flex-direction:column;gap:14px;padding:6px 18px 14px;display:flex}.dd-shift-banner[data-v-5289b4e1]{align-items:center;margin:6px 18px 12px;display:flex}.dd-shift-info[data-v-5289b4e1]{flex:1;min-width:0}.dd-shift-label[data-v-5289b4e1]{color:#64748b;font-size:11px}.dd-shift-name[data-v-5289b4e1]{font-size:14px;font-weight:700}.dd-shift-empty[data-v-5289b4e1]{color:#94a3b8;text-align:center;flex-direction:column;align-items:center;gap:8px;margin:4px 18px 8px;padding:18px;display:flex}.dd-shift-empty i[data-v-5289b4e1]{font-size:26px}.dd-shift-empty p[data-v-5289b4e1]{margin:0;font-size:13px}.dd-holiday[data-v-5289b4e1]{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fcd34d;border-radius:12px;align-items:center;gap:12px;margin:4px 18px 8px;padding:12px 16px;display:flex}.dd-holiday>i[data-v-5289b4e1]{color:#d97706;flex-shrink:0;font-size:20px}.dd-holiday-text[data-v-5289b4e1]{flex-direction:column;gap:2px;display:flex}.dd-holiday-label[data-v-5289b4e1]{color:#92400e;font-size:12px;font-weight:600}.dd-holiday-name[data-v-5289b4e1]{color:#78350f;font-size:15px;font-weight:800}.day-pop-enter-active[data-v-5289b4e1]{transition:transform .25s cubic-bezier(.34,1.28,.64,1),opacity .25s}.day-pop-leave-active[data-v-5289b4e1]{transition:transform .18s,opacity .18s}.day-pop-enter-from[data-v-5289b4e1],.day-pop-leave-to[data-v-5289b4e1]{opacity:0;transform:scale(.92)}.dd-status-row[data-v-5289b4e1]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.dd-status-badge[data-v-5289b4e1]{border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:700;display:inline-flex}.dd-status-top[data-v-5289b4e1]{flex-shrink:0;align-self:flex-start;margin-left:auto}.dd-normal[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.dd-late[data-v-5289b4e1]{color:#854d0e;background:#fef9c3}.dd-absent[data-v-5289b4e1]{color:#991b1b;background:#fee2e2}.dd-in_progress[data-v-5289b4e1]{color:#5b21b6;background:#ede9fe}.dd-leave[data-v-5289b4e1]{color:#7e22ce;background:#f3e8ff}.dd-shift-label[data-v-5289b4e1]{color:#64748b;align-items:center;gap:5px;font-size:11px;font-weight:500;display:flex}.dd-rounds[data-v-5289b4e1]{flex-direction:column;gap:6px;display:flex}.dd-rounds-loading[data-v-5289b4e1]{color:#94a3b8;align-items:center;gap:6px;font-size:12px;display:flex}.dd-round[data-v-5289b4e1]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.dd-round-no[data-v-5289b4e1]{color:#64748b;min-width:42px;font-size:11px;font-weight:700}.dd-round-time[data-v-5289b4e1]{color:#0f172a;font-variant-numeric:tabular-nums;flex-wrap:wrap;flex:1;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.dd-round-tag[data-v-5289b4e1]{border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.dd-round-off[data-v-5289b4e1]{color:#9a3412;background:#ffedd5}.dd-round-hrs[data-v-5289b4e1]{color:#6366f1;background:#eef2ff;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.dd-time-cards[data-v-5289b4e1]{align-items:center;gap:8px;display:flex}.dd-time-card[data-v-5289b4e1]{border-radius:12px;flex:1;align-items:center;gap:10px;padding:12px;display:flex}.dd-in[data-v-5289b4e1]{background:#eff6ff}.dd-out[data-v-5289b4e1]{background:#f0fdf4}.ddtc-icon[data-v-5289b4e1]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.dd-in .ddtc-icon[data-v-5289b4e1]{color:#1d4ed8;background:#dbeafe}.dd-out .ddtc-icon[data-v-5289b4e1]{color:#15803d;background:#dcfce7}.ddtc-body[data-v-5289b4e1]{flex-direction:column;gap:2px;display:flex}.ddtc-label[data-v-5289b4e1]{color:#94a3b8;font-size:10px;font-weight:600}.ddtc-time[data-v-5289b4e1]{color:#1e293b;font-size:18px;font-weight:800;line-height:1}.dd-time-divider[data-v-5289b4e1]{color:#cbd5e1;flex-shrink:0;font-size:13px}.dd-absent-block[data-v-5289b4e1]{color:#ef4444;background:#fef2f2;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:14px;font-weight:600;display:flex}.dd-absent-block i[data-v-5289b4e1]{font-size:20px}.dd-leave-block[data-v-5289b4e1]{border:2px solid #a855f7;border-radius:12px;justify-content:center;align-items:center;gap:11px;padding:16px 18px;display:flex}.dd-leave-block>i[data-v-5289b4e1]{flex-shrink:0;font-size:22px}.dd-leave-block-text[data-v-5289b4e1]{flex-direction:column;align-items:center;gap:2px;display:flex}.dd-leave-block-name[data-v-5289b4e1]{font-size:15px;font-weight:700}.dd-leave-block-time[data-v-5289b4e1]{opacity:.85;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.dd-hours-row[data-v-5289b4e1]{color:#475569;background:#f8fafc;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.dd-hours-row i[data-v-5289b4e1]{color:#6366f1;font-size:14px}.dd-hours-row strong[data-v-5289b4e1]{color:#1e293b;margin-left:auto;font-size:15px;font-weight:800}.dd-hours-inprogress[data-v-5289b4e1],.dd-hours-inprogress i[data-v-5289b4e1]{color:#7c3aed}.dd-shift-time[data-v-5289b4e1]{color:#64748b;margin-left:auto;font-size:13px;font-weight:700}.dd-ot-block[data-v-5289b4e1]{background:#fff7ed;border:1.5px solid #fed7aa;border-radius:12px;overflow:hidden}.dd-ot-header[data-v-5289b4e1]{color:#c2410c;background:#ffedd5;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.dd-ot-header i[data-v-5289b4e1]{font-size:14px}.dd-ot-header span[data-v-5289b4e1]:nth-child(2){flex:1}.dd-ot-status[data-v-5289b4e1]{border-radius:20px;margin-left:auto;padding:2px 9px;font-size:11px;font-weight:700}.dd-ot-pending[data-v-5289b4e1]{color:#a16207;background:#fef9c3}.dd-ot-approved[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.dd-ot-rejected[data-v-5289b4e1]{color:#991b1b;background:#fee2e2}.dd-ot-rows[data-v-5289b4e1]{flex-direction:column;gap:0;padding:4px 0;display:flex}.dd-ot-row[data-v-5289b4e1]{border-bottom:1px solid #fed7aa22;align-items:flex-start;gap:8px;padding:8px 14px;font-size:13px;display:flex}.dd-ot-row[data-v-5289b4e1]:last-child{border-bottom:none}.dd-ot-row-label[data-v-5289b4e1]{color:#9a3412;align-items:center;gap:5px;min-width:100px;font-size:12px;display:flex}.dd-ot-row-val[data-v-5289b4e1]{color:#1e293b;font-weight:600}.dd-ot-desc[data-v-5289b4e1]{white-space:pre-wrap;font-weight:400}.dd-ot-reject-reason[data-v-5289b4e1]{color:#ef4444;font-weight:400}.dd-ot-wrap[data-v-5289b4e1]{flex-direction:column;gap:8px;display:flex}.dd-ot-wrap-head[data-v-5289b4e1]{color:#c2410c;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.dd-ot-wrap-count[data-v-5289b4e1]{color:#94a3b8;margin-left:auto;font-size:11px;font-weight:600}.dd-ot-mini[data-v-5289b4e1]{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.dd-ot-mini-top[data-v-5289b4e1]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dd-ot-mini-time[data-v-5289b4e1]{color:#9a3412;font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.dd-ot-mini-dur[data-v-5289b4e1]{color:#b45309;background:#fef3c7;border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700}.dd-ot-mini-status[data-v-5289b4e1]{border-radius:20px;margin-left:auto;padding:2px 9px;font-size:10px;font-weight:700}.dd-ot-mini-sub[data-v-5289b4e1]{color:#64748b;font-size:12px;line-height:1.4}.dd-ot-mini-reject[data-v-5289b4e1]{color:#dc2626;align-items:flex-start;gap:5px;display:flex}.dd-ot-only-notice[data-v-5289b4e1]{color:#94a3b8;background:#f8fafc;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.dd-ot-only-notice i[data-v-5289b4e1]{color:#cbd5e1;font-size:16px}.dd-footer[data-v-5289b4e1]{border-top:1px solid #f1f5f9;gap:8px;margin-top:4px;padding:12px 18px;display:flex}.cal-day.clickable[data-v-5289b4e1]:not(.today):hover{cursor:pointer;background:#eff6ff}.cal-day.clickable.today[data-v-5289b4e1]{cursor:pointer}.sum-card--ot[data-v-5289b4e1]{grid-column:1/-1}.sum-card--ot .sum-label[data-v-5289b4e1]{color:#64748b}.sum-card--ot .sum-val[data-v-5289b4e1]{color:#1e293b}.leave-balance[data-v-5289b4e1]{flex-direction:column;gap:10px;padding:14px 18px;display:flex}.lb-item[data-v-5289b4e1]{background:#f8fafc;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.lb-icon-wrap[data-v-5289b4e1]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;display:flex}.lb-info[data-v-5289b4e1]{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lb-type[data-v-5289b4e1]{color:#475569;font-size:12px;font-weight:600}.lb-bar-wrap[data-v-5289b4e1]{background:#e2e8f0;border-radius:10px;height:5px;overflow:hidden}.lb-bar[data-v-5289b4e1]{border-radius:10px;height:100%;transition:width .6s}.lb-unlimited-note[data-v-5289b4e1]{color:#94a3b8;font-size:10px;font-style:italic}.lb-count-wrap[data-v-5289b4e1]{text-align:right;flex-shrink:0}.lb-remain[data-v-5289b4e1]{white-space:nowrap;font-size:20px;font-weight:800;line-height:1;display:block}.lb-remain-sm[data-v-5289b4e1]{font-size:14px}.lb-total-label[data-v-5289b4e1]{color:#94a3b8;font-size:10px}.btn-primary-sm[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#065f46;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:opacity .2s;display:flex}.btn-primary-sm[data-v-5289b4e1]:hover{opacity:.88}.leave-filter-row[data-v-5289b4e1]{grid-template-columns:repeat(3,1fr);gap:14px;margin:14px;display:grid}.leave-filter-sel[data-v-5289b4e1]{box-sizing:border-box;color:#1e293b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:9px;outline:none;width:100%;min-width:0;padding:8px 30px 8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.leave-filter-sel[data-v-5289b4e1]:focus{background:#fff;border-color:#09805f}.leave-empty[data-v-5289b4e1]{color:#94a3b8;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px;display:flex}.leave-empty i[data-v-5289b4e1]{font-size:28px}.leave-empty p[data-v-5289b4e1]{margin:0;font-size:13px}.leave-item[data-v-5289b4e1]{border-bottom:1px solid #f8fafc;align-items:center;gap:12px;padding:14px 18px;display:flex}.leave-item[data-v-5289b4e1]:last-child{border-bottom:none}.leave-type-icon[data-v-5289b4e1]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex}.leave-info[data-v-5289b4e1]{flex-direction:column;flex:1;gap:2px;display:flex}.leave-info strong[data-v-5289b4e1]{color:#1e293b;font-size:13px;font-weight:600}.leave-info span[data-v-5289b4e1]{color:#64748b;font-size:12px}.leave-status[data-v-5289b4e1]{border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.ls-pending[data-v-5289b4e1]{color:#854d0e;background:#fef9c3}.ls-approved[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.ls-rejected[data-v-5289b4e1]{color:#991b1b;background:#fee2e2}.leave-modal-box[data-v-5289b4e1]{flex-direction:column;max-height:92vh;display:flex}.leave-modal-body[data-v-5289b4e1]{overflow-y:auto;flex:1!important;padding:0!important}.leave-form-section[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:10px;padding:14px 18px;display:flex}.leave-form-section[data-v-5289b4e1]:last-child{border-bottom:none}.leave-form-title[data-v-5289b4e1]{color:#334155;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.required-star[data-v-5289b4e1]{color:#ef4444;cursor:help;font-size:14px;font-weight:700;line-height:1}.leave-type-grid[data-v-5289b4e1]{grid-template-columns:1fr 1fr;gap:8px;display:grid}.leave-type-card[data-v-5289b4e1]{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;font-family:inherit;transition:all .15s;display:flex;position:relative}.leave-type-card[data-v-5289b4e1]:hover{border-color:#fca5a5}.ltc-icon[data-v-5289b4e1]{border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:2px;font-size:15px;display:flex}.ltc-name[data-v-5289b4e1]{color:#1e293b;font-size:13px;font-weight:700}.ltc-desc[data-v-5289b4e1]{color:#94a3b8;font-size:10px;line-height:1.3}.ltc-check[data-v-5289b4e1]{font-size:16px;position:absolute;top:8px;right:8px}.leave-unit-toggle[data-v-5289b4e1]{gap:8px;margin-bottom:12px;display:flex}.leave-unit-toggle button[data-v-5289b4e1]{color:#64748b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 10px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.leave-unit-toggle button.active[data-v-5289b4e1]{color:#09805f;background:#09805f0f;border-color:#09805f}.leave-hour-note[data-v-5289b4e1]{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:9px;align-items:center;gap:7px;margin-bottom:12px;padding:8px 11px;font-size:12.5px;display:flex}.leave-hour-warn[data-v-5289b4e1]{color:#dc2626;background:#fef2f2;border-radius:9px;align-items:center;gap:7px;margin-top:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.leave-service-warn[data-v-5289b4e1]{color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;align-items:flex-start;gap:8px;margin:14px 18px 0;padding:10px 13px;font-size:13px;font-weight:600;display:flex}.leave-service-warn i[data-v-5289b4e1]{flex-shrink:0;margin-top:2px}.leave-date-row[data-v-5289b4e1]{align-items:flex-end;gap:8px;display:flex}.leave-date-group[data-v-5289b4e1]{flex-direction:column;flex:1;gap:5px;display:flex}.leave-date-group label[data-v-5289b4e1]{color:#64748b;font-size:11px;font-weight:600}.leave-date-arrow[data-v-5289b4e1]{color:#94a3b8;flex-shrink:0;padding-bottom:10px;font-size:13px}.leave-days-pill[data-v-5289b4e1]{color:#eb2a2e;background:#fef2f2;border:1px solid #eb2a2e;border-radius:20px;align-self:flex-start;align-items:center;gap:7px;padding:7px 14px;font-size:13px;display:inline-flex}.leave-attach-row[data-v-5289b4e1]{justify-content:space-between;flex-direction:row!important;align-items:center!important}.leave-attach-left[data-v-5289b4e1]{align-items:center;gap:10px;display:flex}.toggle-switch[data-v-5289b4e1]{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input[data-v-5289b4e1]{opacity:0;width:0;height:0}.toggle-track[data-v-5289b4e1]{cursor:pointer;background:#e2e8f0;border-radius:24px;transition:background .25s;position:absolute;inset:0}.toggle-track[data-v-5289b4e1]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .25s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000026}.toggle-switch input:checked+.toggle-track[data-v-5289b4e1]{background:#6366f1}.toggle-switch input:checked+.toggle-track[data-v-5289b4e1]:before{transform:translate(20px)}.leave-doc-pick[data-v-5289b4e1]{color:#64748b;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:22px;transition:all .2s;display:flex}.leave-doc-pick[data-v-5289b4e1]:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.leave-doc-pick i[data-v-5289b4e1]{font-size:24px}.leave-doc-pick span[data-v-5289b4e1]{font-size:13px;font-weight:600}.leave-doc-pick.is-required[data-v-5289b4e1]{background:#fef2f2;border-color:#fca5a5}.leave-doc-preview[data-v-5289b4e1]{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:14px;padding:12px;display:flex}.leave-doc-preview img[data-v-5289b4e1]{object-fit:cover;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;width:72px;height:72px}.leave-doc-info[data-v-5289b4e1]{flex-direction:column;gap:6px;min-width:0;display:flex}.leave-doc-name[data-v-5289b4e1]{color:#334155;word-break:break-all;font-size:13px;font-weight:600}.leave-doc-remove[data-v-5289b4e1]{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:7px;align-self:flex-start;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.leave-doc-remove[data-v-5289b4e1]:hover{background:#fef2f2}.leave-error[data-v-5289b4e1]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;margin:0 20px 4px;padding:11px 14px;font-size:13px;font-weight:600;display:flex}.btn-leave-submit[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#06533e;border:none;border-radius:10px;align-items:center;gap:7px;padding:10px 22px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.btn-leave-submit[data-v-5289b4e1]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 16px #06533e66}.btn-leave-submit[data-v-5289b4e1]:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.modal-overlay[data-v-5289b4e1]{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box[data-v-5289b4e1]{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000040}.modal-header[data-v-5289b4e1]{color:#fff;background:linear-gradient(135deg,#4f46e5,#6366f1);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title[data-v-5289b4e1]{align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.modal-close[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:flex}.modal-close[data-v-5289b4e1]:hover{background:#ffffff59}.step-bar[data-v-5289b4e1]{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;padding:14px 20px;display:flex}.step[data-v-5289b4e1]{flex-direction:column;flex-shrink:0;align-items:center;gap:3px;display:flex}.step-dot[data-v-5289b4e1]{color:#94a3b8;background:#e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;transition:all .3s;display:flex}.step.active .step-dot[data-v-5289b4e1]{color:#fff;background:#4f46e5;box-shadow:0 0 0 4px #eef2ff}.step.done .step-dot[data-v-5289b4e1]{color:#fff;background:#10b981}.step span[data-v-5289b4e1]{color:#94a3b8;white-space:nowrap;font-size:10px;font-weight:500}.step.active span[data-v-5289b4e1]{color:#4f46e5}.step.done span[data-v-5289b4e1]{color:#10b981}.step-line[data-v-5289b4e1]{background:#e2e8f0;flex:1;height:2px;margin:0 4px 16px;transition:background .3s}.step-line.done[data-v-5289b4e1]{background:#10b981}.modal-body[data-v-5289b4e1]{flex:1;padding:20px;overflow-y:auto}.step-content[data-v-5289b4e1]{flex-direction:column;gap:14px;display:flex}.step-desc[data-v-5289b4e1]{color:#64748b;text-align:center;margin:0;font-size:13px}.camera-error[data-v-5289b4e1]{text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.camera-error i[data-v-5289b4e1]{color:#ef4444;font-size:2rem}.camera-error p[data-v-5289b4e1]{color:#991b1b;margin:0;font-size:13px}.camera-loading[data-v-5289b4e1]{flex-direction:column;align-items:center;gap:10px;padding:32px;display:flex}.camera-preview[data-v-5289b4e1]{aspect-ratio:4/3;background:#0f172a;border-radius:14px;position:relative;overflow:hidden}.camera-video[data-v-5289b4e1]{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.camera-overlay[data-v-5289b4e1]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.face-guide[data-v-5289b4e1]{border:3px dashed #ffffff80;border-radius:50%;width:140px;height:180px}.camera-captured[data-v-5289b4e1]{flex-direction:column;align-items:center;gap:8px;display:flex}.captured-img[data-v-5289b4e1]{aspect-ratio:4/3;object-fit:cover;border-radius:12px;width:100%;transform:scaleX(-1)}.captured-label[data-v-5289b4e1]{color:#059669;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.gps-loading[data-v-5289b4e1]{flex-direction:column;align-items:center;gap:10px;padding:28px;display:flex}.gps-loading p[data-v-5289b4e1]{color:#334155;margin:0;font-size:14px;font-weight:600}.gps-sub[data-v-5289b4e1]{color:#94a3b8!important;font-size:12px!important;font-weight:400!important}.gps-pulse[data-v-5289b4e1]{color:#4f46e5;background:#eef2ff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;animation:1.5s ease-in-out infinite pulse-5289b4e1;display:flex}@keyframes pulse-5289b4e1{0%,to{box-shadow:0 0 #4f46e54d}50%{box-shadow:0 0 0 14px #4f46e500}}.gps-result[data-v-5289b4e1]{text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:7px;padding:18px;display:flex}.gps-result h4[data-v-5289b4e1]{margin:0;font-size:15px}.gps-result p[data-v-5289b4e1]{color:#475569;margin:0;font-size:13px}.gps-icon-wrap[data-v-5289b4e1]{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;display:flex}.gps-icon-wrap.ok[data-v-5289b4e1]{color:#059669;background:#d1fae5}.gps-icon-wrap.warn[data-v-5289b4e1]{color:#d97706;background:#fef3c7}.gps-icon-wrap.error[data-v-5289b4e1]{color:#dc2626;background:#fee2e2}.gps-ok[data-v-5289b4e1]{background:#f0fdf4;border:1px solid #bbf7d0}.gps-warn[data-v-5289b4e1]{background:#fffbeb;border:1px solid #fde68a}.gps-error[data-v-5289b4e1]{background:#fef2f2;border:1px solid #fecaca}.gps-range-note[data-v-5289b4e1]{color:#94a3b8!important;font-size:11px!important}.gps-place-name[data-v-5289b4e1]{color:#1e40af;text-align:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:600;line-height:1.4;display:flex}.gps-place-name i[data-v-5289b4e1]{color:#3b82f6;flex-shrink:0}.gps-place-loading[data-v-5289b4e1]{color:#94a3b8;align-items:center;gap:6px;font-size:12px;display:flex}.gps-address[data-v-5289b4e1]{color:#64748b;background:#0000000a;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;display:flex}.gps-actions-row[data-v-5289b4e1]{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.confirm-card[data-v-5289b4e1]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.confirm-row[data-v-5289b4e1]{border-bottom:1px solid #e2e8f0;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.confirm-row[data-v-5289b4e1]:last-child{border-bottom:none}.confirm-label[data-v-5289b4e1]{color:#64748b;align-items:center;gap:5px;min-width:80px;padding-top:2px;font-size:12px;font-weight:500;display:flex}.confirm-value[data-v-5289b4e1]{color:#1e293b;font-size:13px;font-weight:500}.confirm-value.highlight[data-v-5289b4e1]{color:#4f46e5;font-size:18px;font-weight:800}.confirm-sub[data-v-5289b4e1]{color:#64748b;margin-top:2px;font-size:11px;font-weight:400;display:block}.confirm-photo[data-v-5289b4e1]{object-fit:cover;border:1px solid #e2e8f0;border-radius:8px;width:72px;height:54px;transform:scaleX(-1)}.tag-ok[data-v-5289b4e1]{color:#065f46;background:#d1fae5;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.confirm-error[data-v-5289b4e1]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;margin-bottom:4px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.note-field[data-v-5289b4e1]{margin-top:14px}.note-label[data-v-5289b4e1]{color:#334155;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.note-optional[data-v-5289b4e1]{color:#94a3b8;font-size:11px;font-weight:400}.note-textarea[data-v-5289b4e1]{box-sizing:border-box;color:#1e293b;resize:none;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.5;transition:border-color .2s}.note-textarea[data-v-5289b4e1]:focus{background:#fff;border-color:#6366f1}.note-textarea[data-v-5289b4e1]::placeholder{color:#94a3b8}.note-count[data-v-5289b4e1]{text-align:right;color:#94a3b8;margin-top:4px;font-size:11px}.step-done[data-v-5289b4e1]{text-align:center;align-items:center;padding:12px 0}.done-icon[data-v-5289b4e1]{color:#10b981;font-size:3.5rem;animation:.4s cubic-bezier(.175,.885,.32,1.275) pop-5289b4e1}@keyframes pop-5289b4e1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.step-done h3[data-v-5289b4e1]{margin:6px 0 4px;font-size:18px}.step-done p[data-v-5289b4e1]{color:#64748b;margin:0;font-size:13px}.done-note[data-v-5289b4e1]{text-align:left;background:#f1f5f9;border-radius:8px;align-items:flex-start;gap:6px;max-width:280px;padding:8px 12px;display:inline-flex;color:#475569!important;margin-top:10px!important;font-size:12px!important}.done-warn[data-v-5289b4e1]{text-align:left;background:#fef3c7;border:1px solid #fde68a;border-radius:8px;align-items:flex-start;gap:6px;max-width:300px;padding:8px 12px;display:inline-flex;color:#92400e!important;margin-top:10px!important;font-size:12px!important}.step-actions[data-v-5289b4e1]{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:4px;display:flex}.btn-primary[data-v-5289b4e1],.btn-secondary[data-v-5289b4e1],.btn-capture[data-v-5289b4e1],.btn-warn[data-v-5289b4e1],.btn-checkin-confirm[data-v-5289b4e1]{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary[data-v-5289b4e1]{color:#fff;background:#4f46e5}.btn-primary[data-v-5289b4e1]:hover{background:#4338ca}.btn-secondary[data-v-5289b4e1]{color:#475569;background:#f1f5f9}.btn-secondary[data-v-5289b4e1]:hover{background:#e2e8f0}.btn-capture[data-v-5289b4e1]{color:#fff;background:#1e293b;padding:11px 28px;font-size:15px}.btn-capture[data-v-5289b4e1]:hover{background:#0f172a}.btn-warn[data-v-5289b4e1]{color:#92400e;background:#fef3c7}.btn-warn[data-v-5289b4e1]:hover{background:#fde68a}.btn-checkin-confirm[data-v-5289b4e1]{color:#fff;background:linear-gradient(135deg,#10b981,#059669);padding:11px 24px;font-size:14px;box-shadow:0 4px 12px #10b98159}.btn-checkout-confirm[data-v-5289b4e1]{background:linear-gradient(135deg,#ef4444,#dc2626)!important;box-shadow:0 4px 12px #ef444459!important}.spinner[data-v-5289b4e1]{border:3px solid #e2e8f0;border-top-color:#4f46e5;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-5289b4e1}@keyframes spin-5289b4e1{to{transform:rotate(360deg)}}.shift-modal-box[data-v-5289b4e1]{flex-direction:column;max-height:90vh;display:flex}.shift-modal-body[data-v-5289b4e1]{flex-direction:column;gap:0;display:flex;overflow-y:auto;flex:1!important;padding:0!important}.shift-modal-footer[data-v-5289b4e1]{background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.month-nav[data-v-5289b4e1]{background:#f8fafc;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.month-nav-btn[data-v-5289b4e1]{cursor:pointer;color:#64748b;background:#fff;border:1.5px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;transition:all .15s;display:flex}.month-nav-btn[data-v-5289b4e1]:hover{color:#0ea5e9;border-color:#0ea5e9}.month-nav-label[data-v-5289b4e1]{text-align:center}.month-name[data-v-5289b4e1]{color:#1e293b;font-size:16px;font-weight:700;display:block}.month-year[data-v-5289b4e1]{color:#64748b;margin-top:1px;font-size:12px;display:block}.range-form[data-v-5289b4e1]{flex-direction:column;gap:10px;display:flex}.rf-label[data-v-5289b4e1]{color:#64748b;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.rf-input[data-v-5289b4e1]{box-sizing:border-box;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.rf-input[data-v-5289b4e1]:focus{background:#fff;border-color:#eb2a2e}.rf-date-row[data-v-5289b4e1]{gap:10px;display:flex}.rf-date-col[data-v-5289b4e1]{flex:1}.rf-add-btn[data-v-5289b4e1]{color:#0284c7;cursor:pointer;background:#f0f9ff;border:1px dashed #0ea5e9;border-radius:10px;justify-content:center;align-items:center;gap:7px;margin-top:2px;padding:10px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s;display:flex}.rf-add-btn[data-v-5289b4e1]:hover{color:#fff;background:#0ea5e9;border-style:solid}.range-empty[data-v-5289b4e1]{color:#94a3b8;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px;font-size:13px;display:flex}.range-empty i[data-v-5289b4e1]{font-size:24px}.day-plan-list[data-v-5289b4e1]{flex-direction:column;gap:6px;max-height:320px;display:flex;overflow-y:auto}.dp-row[data-v-5289b4e1]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.dp-row.off-weekly[data-v-5289b4e1]{background:#fff7ed}.dp-row.off-annual[data-v-5289b4e1]{background:#fff1f1}.dp-row.locked[data-v-5289b4e1]{background:#f1f5f9}.dp-date[data-v-5289b4e1]{flex-shrink:0;align-items:baseline;gap:5px;min-width:64px;display:flex}.dp-day[data-v-5289b4e1]{color:#1e293b;font-size:16px;font-weight:800}.dp-dow[data-v-5289b4e1]{color:#64748b;font-size:11px;font-weight:600}.dp-mon[data-v-5289b4e1]{color:#94a3b8;font-size:11px}.dp-select[data-v-5289b4e1]{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;flex:1;min-width:0;padding:7px 10px;font-family:inherit;font-size:13px}.dp-locked[data-v-5289b4e1]{color:#64748b;flex-wrap:wrap;flex:1;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.dp-locked>i[data-v-5289b4e1]{color:#94a3b8}.dp-lock-status[data-v-5289b4e1]{border-radius:20px;padding:1px 8px;font-size:10px;font-weight:700}.dp-lock-status.st-ok[data-v-5289b4e1]{color:#065f46;background:#d1fae5}.dp-lock-status.st-pending[data-v-5289b4e1]{color:#854d0e;background:#fef3c7}.existing-hint[data-v-5289b4e1]{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.existing-hint i[data-v-5289b4e1]{color:#0ea5e9;flex-shrink:0;margin-top:2px}.shift-section[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;padding:14px 18px}.shift-section[data-v-5289b4e1]:last-child{border-bottom:none}.shift-section-head[data-v-5289b4e1]{color:#334155;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.shift-section-sub[data-v-5289b4e1]{color:#94a3b8;margin-left:4px;font-size:11px;font-weight:400}.selected-shift-card[data-v-5289b4e1]{cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000d}.selected-shift-card[data-v-5289b4e1]:hover{border-color:#cbd5e1;box-shadow:0 3px 12px #0000001a}.ssc-color-bar[data-v-5289b4e1]{flex-shrink:0;align-self:stretch;width:5px}.ssc-body[data-v-5289b4e1]{flex:1;padding:11px 12px}.ssc-top[data-v-5289b4e1]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ssc-name[data-v-5289b4e1]{color:#1e293b;font-size:14px;font-weight:700}.ssc-time-badge[data-v-5289b4e1]{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.ssc-desc[data-v-5289b4e1]{color:#94a3b8;margin:3px 0 0;font-size:11px}.ssc-change[data-v-5289b4e1]{color:#64748b;white-space:nowrap;border-left:1px solid #f1f5f9;justify-content:center;align-self:stretch;align-items:center;gap:5px;padding:0 14px;font-size:12px;font-weight:600;display:flex}.sheet-overlay[data-v-5289b4e1]{z-index:1100;background:#00000073;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop-fade-enter-active[data-v-5289b4e1],.sheet-backdrop-fade-leave-active[data-v-5289b4e1]{transition:opacity .25s}.sheet-backdrop-fade-enter-from[data-v-5289b4e1],.sheet-backdrop-fade-leave-to[data-v-5289b4e1]{opacity:0}.shift-picker-sheet[data-v-5289b4e1]{background:#fff;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:80vh;margin:0 auto;display:flex;box-shadow:0 -8px 40px #00000026}.sheet-slide-up-enter-active[data-v-5289b4e1]{transition:transform .3s cubic-bezier(.34,1.28,.64,1)}.sheet-slide-up-leave-active[data-v-5289b4e1]{transition:transform .2s}.sheet-slide-up-enter-from[data-v-5289b4e1],.sheet-slide-up-leave-to[data-v-5289b4e1]{transform:translateY(100%)}.sheet-handle-bar[data-v-5289b4e1]{background:#e2e8f0;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:10px auto 0}.sheet-header[data-v-5289b4e1]{justify-content:space-between;align-items:center;padding:12px 18px 0;display:flex}.sheet-title[data-v-5289b4e1]{color:#1e293b;align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.sheet-close[data-v-5289b4e1]{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.sheet-sub[data-v-5289b4e1]{color:#94a3b8;margin:4px 18px 10px;padding:0;font-size:12px}.picker-list[data-v-5289b4e1]{flex-direction:column;flex:1;gap:6px;padding:0 12px 20px;display:flex;overflow-y:auto}.picker-list--compact[data-v-5289b4e1]{gap:2px;padding:0 12px 8px}.picker-item[data-v-5289b4e1]{cursor:pointer;text-align:left;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;padding:13px 14px;font-family:inherit;transition:all .15s;display:flex}.picker-item--compact[data-v-5289b4e1]{border:none;border-bottom:1px solid #f1f5f9;border-radius:8px;gap:10px;padding:10px 12px}.picker-item--compact[data-v-5289b4e1]:last-child{border-bottom:none}.picker-item[data-v-5289b4e1]:hover{background:#f8fafc;border-color:#cbd5e1}.picker-item--compact[data-v-5289b4e1]:hover{background:#f8fafc}.picker-item.active[data-v-5289b4e1]{background:#f8fafc;border-color:#0000}.picker-item--compact.active[data-v-5289b4e1]{background:#f0f4ff}.pi-dot[data-v-5289b4e1]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.pi-label-compact[data-v-5289b4e1]{color:#1e293b;flex:none;min-width:120px;font-size:13px;font-weight:500}.pi-time-compact[data-v-5289b4e1]{color:#64748b;font-variant-numeric:tabular-nums;flex:1;font-size:12px}.pi-info[data-v-5289b4e1]{flex-direction:column;flex:1;gap:2px;display:flex}.pi-name[data-v-5289b4e1]{color:#1e293b;font-size:14px;font-weight:700}.pi-sub[data-v-5289b4e1]{color:#94a3b8;font-size:11px}.picker-item.active .pi-name[data-v-5289b4e1]{color:#1e293b}.pi-check-wrap[data-v-5289b4e1]{text-align:center;flex-shrink:0;width:22px}.pi-check[data-v-5289b4e1]{flex-shrink:0;font-size:16px}.pi-check-empty[data-v-5289b4e1]{color:#e2e8f0;flex-shrink:0;font-size:16px}.day-list[data-v-5289b4e1]{flex-direction:column;display:flex}.day-row[data-v-5289b4e1]{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #f8fafc;align-items:center;gap:10px;padding:9px 18px;transition:background .1s;display:flex}.day-row[data-v-5289b4e1]:hover{background:#f8fafc}.day-row.editing[data-v-5289b4e1]{background:#f0f9ff}.day-row.weekend[data-v-5289b4e1]{background:#fff5f5}.day-row.weekend[data-v-5289b4e1]:hover{background:#fee2e2}.day-row.weekend.editing[data-v-5289b4e1]{background:#fef2f2}.day-num-wrap[data-v-5289b4e1]{flex-direction:column;align-items:center;min-width:30px;display:flex}.day-num[data-v-5289b4e1]{color:#1e293b;font-size:15px;font-weight:700;line-height:1}.day-dow[data-v-5289b4e1]{color:#94a3b8;margin-top:2px;font-size:10px}.day-row.weekend .day-num[data-v-5289b4e1]{color:#ef4444}.day-row.weekend .day-dow[data-v-5289b4e1]{color:#fca5a5}.day-shift-info[data-v-5289b4e1]{flex:1;align-items:center;gap:8px;display:flex}.day-shift-badge[data-v-5289b4e1]{white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.day-shift-time[data-v-5289b4e1]{color:#64748b;font-size:11px}.day-end-wrap[data-v-5289b4e1]{align-items:center;gap:5px;display:flex}.override-dot[data-v-5289b4e1]{color:#f59e0b;font-size:8px}.day-edit-icon[data-v-5289b4e1]{color:#94a3b8;text-align:center;width:16px;font-size:11px}.day-row.editing .day-edit-icon[data-v-5289b4e1]{color:#0ea5e9}.day-edit-panel[data-v-5289b4e1]{background:#f0f9ff;border-bottom:1px solid #bae6fd;flex-direction:column;gap:10px;padding:12px 18px;display:flex}.dep-shift-chips[data-v-5289b4e1]{flex-wrap:wrap;gap:6px;display:flex}.dep-chip[data-v-5289b4e1]{color:#64748b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:20px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.dep-chip[data-v-5289b4e1]:hover{border-color:#94a3b8}.dep-chip.active[data-v-5289b4e1]{font-weight:700}.dep-time-row[data-v-5289b4e1]{align-items:center;gap:8px;display:flex}.dep-time-group[data-v-5289b4e1]{flex-direction:column;gap:3px;display:flex}.dep-time-group label[data-v-5289b4e1]{color:#64748b;font-size:10px;font-weight:600}.dep-time-input[data-v-5289b4e1]{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;width:96px;padding:6px 8px;font-family:inherit;font-size:13px;transition:border-color .2s}.dep-time-input[data-v-5289b4e1]:focus{border-color:#0ea5e9}.dep-sep[data-v-5289b4e1]{color:#94a3b8;margin-top:14px;font-size:14px}.dep-btn-row[data-v-5289b4e1]{justify-content:flex-end;gap:6px;display:flex}.dep-btn-row--footer[data-v-5289b4e1]{background:#fff;border-top:1px solid #f1f5f9;flex-shrink:0;margin-top:4px;padding:12px 16px 20px}.dep-btn[data-v-5289b4e1]{cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.dep-btn-reset[data-v-5289b4e1]{color:#d97706;background:#fff7ed;border:1px solid #fde68a}.dep-btn-cancel[data-v-5289b4e1]{color:#64748b;background:#f1f5f9}.dep-btn-save[data-v-5289b4e1]{color:#fff;background:#0ea5e9}.dep-btn-save[data-v-5289b4e1]:hover{background:#0284c7}.slide-down-enter-active[data-v-5289b4e1]{transition:all .2s}.slide-down-leave-active[data-v-5289b4e1]{transition:all .15s}.slide-down-enter-from[data-v-5289b4e1]{opacity:0;transform:translateY(-6px)}.slide-down-leave-to[data-v-5289b4e1]{opacity:0;transform:translateY(-4px)}.modal-fade-enter-active[data-v-5289b4e1],.modal-fade-leave-active[data-v-5289b4e1]{transition:all .25s}.modal-fade-enter-from[data-v-5289b4e1],.modal-fade-leave-to[data-v-5289b4e1]{opacity:0;transform:scale(.95)}.sw-overlay[data-v-5289b4e1]{z-index:2000;background:#0f172a99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.sw-box[data-v-5289b4e1]{text-align:center;background:#fff;border-radius:24px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px;padding:32px 28px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 32px 80px #0000004d}.sw-box[data-v-5289b4e1]:before{content:"";height:5px;position:absolute;top:0;left:0;right:0}.sw-box.no_schedule[data-v-5289b4e1]:before{background:#f59e0b}.sw-box.holiday[data-v-5289b4e1]:before{background:#10b981}.sw-icon-wrap[data-v-5289b4e1]{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:4px;font-size:30px;display:flex}.sw-icon-wrap.no_schedule[data-v-5289b4e1]{color:#d97706;background:#fef3c7;box-shadow:0 8px 24px #f59e0b40}.sw-icon-wrap.holiday[data-v-5289b4e1]{color:#059669;background:#d1fae5;box-shadow:0 8px 24px #10b98140}.sw-title[data-v-5289b4e1]{color:#0f172a;margin:0;font-size:18px;font-weight:800}.sw-body[data-v-5289b4e1]{color:#64748b;margin:0;font-size:14px;line-height:1.7}.sw-hint[data-v-5289b4e1]{color:#475569;text-align:left;background:#f1f5f9;border-radius:10px;align-items:flex-start;gap:8px;width:100%;padding:10px 16px;font-size:13px;line-height:1.6;display:flex}.sw-hint i[data-v-5289b4e1]{color:#f59e0b;flex-shrink:0;margin-top:3px}.sw-hint strong[data-v-5289b4e1]{color:#0f172a;font-weight:700}.sw-actions[data-v-5289b4e1]{flex-direction:column;gap:10px;width:100%;margin-top:4px;display:flex}.sw-btn-primary[data-v-5289b4e1]{color:#fff;cursor:pointer;background:#f59e0b;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 20px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s;display:flex}.sw-btn-primary[data-v-5289b4e1]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #f59e0b59}.sw-btn-secondary[data-v-5289b4e1]{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;width:100%;padding:11px 20px;font-size:14px;font-weight:600;transition:background .15s}.sw-btn-secondary[data-v-5289b4e1]:hover{background:#e2e8f0}.sw-fade-enter-active[data-v-5289b4e1]{transition:opacity .25s}.sw-fade-leave-active[data-v-5289b4e1]{transition:opacity .2s}.sw-fade-enter-from[data-v-5289b4e1],.sw-fade-leave-to[data-v-5289b4e1]{opacity:0}.sw-fade-enter-active .sw-box[data-v-5289b4e1]{animation:.35s cubic-bezier(.34,1.56,.64,1) sw-pop-in-5289b4e1}@keyframes sw-pop-in-5289b4e1{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (width<=480px){.time-display[data-v-5289b4e1]{font-size:48px}.summary-grid[data-v-5289b4e1]{grid-template-columns:repeat(2,1fr)}}.ot-filter-row[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;align-items:center;gap:8px;padding:12px 18px;display:flex}.ot-filter-row .ot-hist-month-input[data-v-5289b4e1]{flex:1}.ot-hist-month-input[data-v-5289b4e1]{color:#1e293b;accent-color:#eb2a2e;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 10px;font-family:inherit;font-size:14px}.ot-hist-month-input[data-v-5289b4e1]:focus{background:#fff;border-color:#eb2a2e}.ot-hist-reload[data-v-5289b4e1]{color:#f59e0b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:14px;transition:all .15s;display:grid}.ot-hist-reload[data-v-5289b4e1]:hover:not(:disabled){color:#f59e0b;border-color:#f59e0b}.ot-hist-reload[data-v-5289b4e1]:disabled{opacity:.5;cursor:not-allowed}.ot-hist-error[data-v-5289b4e1]{color:#991b1b;background:#fee2e2;border-radius:12px;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.ot-stats-row[data-v-5289b4e1]{align-items:center;gap:0;padding:16px 18px;display:flex}.ot-stat-item[data-v-5289b4e1]{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.ot-stat-icon[data-v-5289b4e1]{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex}.ot-stat-body[data-v-5289b4e1]{flex-direction:column;gap:2px;min-width:0;display:flex}.ot-stat-val[data-v-5289b4e1]{color:#1e293b;font-size:16px;font-weight:800;line-height:1.2}.ot-stat-lbl[data-v-5289b4e1]{color:#64748b;white-space:nowrap;font-size:11px}.ot-stat-sep[data-v-5289b4e1]{background:#e2e8f0;flex-shrink:0;width:1px;height:36px;margin:0 12px}.ot-hist-loading[data-v-5289b4e1]{text-align:center;color:#64748b;justify-content:center;align-items:center;gap:8px;padding:48px 16px;font-size:14px;display:flex}.ot-hist-empty[data-v-5289b4e1]{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.ot-hist-empty i[data-v-5289b4e1]{opacity:.35;font-size:40px}.ot-hist-empty p[data-v-5289b4e1]{color:#64748b;font-size:14px}.ot-hist-list[data-v-5289b4e1]{padding:0;overflow:hidden}.section-count[data-v-5289b4e1]{color:#94a3b8;font-size:12px;font-weight:600}.ot-hist-items[data-v-5289b4e1]{flex-direction:column;display:flex}.ot-hist-item[data-v-5289b4e1]{border-bottom:1px solid #f1f5f9;align-items:flex-start;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.ot-hist-item[data-v-5289b4e1]:last-child{border-bottom:none}.ot-hist-item[data-v-5289b4e1]:hover{background:#f8fafc}.ot-hi-left[data-v-5289b4e1]{flex-shrink:0}.ot-hi-icon[data-v-5289b4e1]{border-radius:10px;place-items:center;width:38px;height:38px;font-size:15px;display:grid}.ot-hi-body[data-v-5289b4e1]{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.ot-hi-top[data-v-5289b4e1]{justify-content:space-between;align-items:center;gap:8px;display:flex}.ot-hi-date[data-v-5289b4e1]{color:#1e293b;font-size:14px;font-weight:700}.ot-hi-status[data-v-5289b4e1]{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:700}.ot-hi-time[data-v-5289b4e1]{color:#475569;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.ot-hi-time i[data-v-5289b4e1]{color:#94a3b8;font-size:11px}.ot-hi-dur[data-v-5289b4e1]{color:#6d28d9;background:#ede9fe;border-radius:20px;padding:2px 8px;font-size:12px;font-weight:700}.ot-hi-type[data-v-5289b4e1]{color:#475569;background:#f1f5f9;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.ot-hi-desc[data-v-5289b4e1]{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.ot-hi-approver[data-v-5289b4e1]{color:#059669;align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.ot-hi-reject[data-v-5289b4e1]{color:#dc2626;align-items:center;gap:5px;font-size:12px;display:flex}.history-page[data-v-a63494fe]{max-width:900px;margin:0 auto;padding:20px 16px 40px}.page-head[data-v-a63494fe]{align-items:center;gap:14px;margin-bottom:20px;display:flex}.back-btn[data-v-a63494fe]{color:#334155;cursor:pointer;background:#fff;border:none;border-radius:12px;width:44px;height:44px;font-size:16px;transition:all .15s;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-a63494fe]:hover{background:#f1f5f9;transform:translate(-2px)}.page-title h1[data-v-a63494fe]{color:#0f172a;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:700;display:flex}.page-title h1 i[data-v-a63494fe]{color:#4f46e5}.subtitle[data-v-a63494fe]{color:#64748b;margin:2px 0 0;font-size:13px}.filter-card[data-v-a63494fe]{background:#fff;border-radius:14px;margin-bottom:16px;padding:16px;box-shadow:0 2px 10px #0000000a}.filter-row[data-v-a63494fe]{flex-wrap:wrap;gap:12px;display:flex}.filter-item[data-v-a63494fe]{flex:1;min-width:160px}.filter-item label[data-v-a63494fe]{color:#64748b;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.filter-item select[data-v-a63494fe]{color:#0f172a;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.filter-item select[data-v-a63494fe]:focus{background:#fff;border-color:#4f46e5;outline:none}.stats-grid[data-v-a63494fe]{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.stat-card[data-v-a63494fe]{background:#fff;border-radius:14px;align-items:center;gap:12px;padding:14px;display:flex;box-shadow:0 2px 10px #0000000a}.stat-icon[data-v-a63494fe]{color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;font-size:16px;display:grid}.stat-blue .stat-icon[data-v-a63494fe]{background:linear-gradient(135deg,#3b82f6,#4f46e5)}.stat-amber .stat-icon[data-v-a63494fe]{background:linear-gradient(135deg,#f59e0b,#ef4444)}.stat-red .stat-icon[data-v-a63494fe]{background:linear-gradient(135deg,#ef4444,#be123c)}.stat-purple .stat-icon[data-v-a63494fe]{background:linear-gradient(135deg,#8b5cf6,#6366f1)}.stat-body[data-v-a63494fe]{flex-direction:column;display:flex}.stat-label[data-v-a63494fe]{color:#64748b;font-size:11px}.stat-value[data-v-a63494fe]{color:#0f172a;font-size:20px;font-weight:700}.state-box[data-v-a63494fe]{text-align:center;color:#64748b;background:#fff;border-radius:14px;padding:40px 20px;font-size:14px;box-shadow:0 2px 10px #0000000a}.state-box i[data-v-a63494fe]{color:#cbd5e1;margin-bottom:10px;font-size:32px;display:block}.state-box.err[data-v-a63494fe]{color:#dc2626}.state-box.err i[data-v-a63494fe]{color:#fca5a5}.groups[data-v-a63494fe]{flex-direction:column;gap:16px;display:flex}.group-card[data-v-a63494fe]{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px #0000000a}.group-head[data-v-a63494fe]{color:#0f172a;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;display:flex}.group-head i[data-v-a63494fe]{color:#4f46e5}.group-count[data-v-a63494fe]{color:#64748b;margin-left:auto;font-size:12px;font-weight:500}.rec-list[data-v-a63494fe]{flex-direction:column;display:flex}.rec-item[data-v-a63494fe]{grid-template-columns:60px 1fr auto;align-items:center;gap:14px;padding:14px 18px;transition:background .12s;display:grid}.rec-row-wrap[data-v-a63494fe]{border-bottom:1px solid #f1f5f9}.rec-row-wrap[data-v-a63494fe]:last-child{border-bottom:none}.rec-item[data-v-a63494fe]:hover{background:#f8fafc}.rec-clickable[data-v-a63494fe]{cursor:pointer}.rec-rounds[data-v-a63494fe]{color:#4f46e5;cursor:pointer;background:#eef2ff;border:none;border-radius:20px;align-items:center;gap:5px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:700;display:inline-flex}.rec-rounds .chev[data-v-a63494fe]{font-size:9px;transition:transform .2s}.rec-rounds .chev.open[data-v-a63494fe]{transform:rotate(180deg)}.next-day-tag[data-v-a63494fe]{color:#6366f1;vertical-align:top;background:#eef2ff;border-radius:6px;margin-left:3px;padding:0 4px;font-size:9px;font-weight:700}.rec-sessions[data-v-a63494fe]{background:#fafbff;flex-direction:column;gap:6px;padding:4px 18px 14px 78px;display:flex}.rec-sess-loading[data-v-a63494fe]{color:#94a3b8;align-items:center;gap:6px;font-size:12px;display:flex}.rec-sess-item[data-v-a63494fe]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.rec-sess-no[data-v-a63494fe]{color:#64748b;min-width:40px;font-size:11px;font-weight:700}.rec-sess-time[data-v-a63494fe]{color:#0f172a;font-variant-numeric:tabular-nums;flex-wrap:wrap;flex:1;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.rec-sess-hours[data-v-a63494fe]{color:#6366f1;background:#eef2ff;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.rec-date[data-v-a63494fe]{background:#f8fafc;border-radius:10px;flex-direction:column;align-items:center;min-width:56px;padding:6px;display:flex}.rec-dd[data-v-a63494fe]{color:#0f172a;font-size:20px;font-weight:700;line-height:1}.rec-mm[data-v-a63494fe]{color:#64748b;margin-top:2px;font-size:11px}.rec-day[data-v-a63494fe]{color:#94a3b8;margin-top:2px;font-size:10px}.rec-main[data-v-a63494fe]{flex-direction:column;gap:6px;min-width:0;display:flex}.rec-times[data-v-a63494fe]{color:#0f172a;align-items:center;gap:10px;font-size:14px;display:flex}.t-in[data-v-a63494fe],.t-out[data-v-a63494fe]{align-items:center;gap:6px;font-weight:600;display:flex}.t-in i[data-v-a63494fe]{color:#10b981}.t-out i[data-v-a63494fe]{color:#ef4444}.t-sep[data-v-a63494fe]{color:#cbd5e1;font-size:10px}.rec-meta[data-v-a63494fe]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rec-shift[data-v-a63494fe]{align-items:center;gap:6px;font-size:12px;display:flex}.rec-shift i[data-v-a63494fe]{font-size:7px}.rec-checkpoints[data-v-a63494fe]{color:#7c3aed;background:#ede9fe;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.rec-checkpoints i[data-v-a63494fe]{font-size:10px}.rec-right[data-v-a63494fe]{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.rec-hours[data-v-a63494fe]{color:#0f172a;font-size:13px;font-weight:700}.b[data-v-a63494fe]{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.b-normal[data-v-a63494fe]{color:#065f46;background:#d1fae5}.b-late[data-v-a63494fe]{color:#854d0e;background:#fef9c3}.b-absent[data-v-a63494fe]{color:#991b1b;background:#fee2e2}.b-inprog[data-v-a63494fe]{color:#1e40af;background:#dbeafe}.b-leave[data-v-a63494fe]{color:#5b21b6;background:#ede9fe}.b-holiday[data-v-a63494fe]{color:#475569;background:#f1f5f9}.b-offshift[data-v-a63494fe]{color:#9a3412;background:#ffedd5}@media (width<=640px){.history-page[data-v-a63494fe]{padding:16px 12px 40px}.stats-grid[data-v-a63494fe]{grid-template-columns:repeat(2,1fr)}.stat-value[data-v-a63494fe]{font-size:18px}.rec-item[data-v-a63494fe]{grid-template-columns:50px 1fr;row-gap:10px}.rec-right[data-v-a63494fe]{flex-direction:row;grid-column:2/3;justify-content:flex-start;gap:8px}.page-title h1[data-v-a63494fe]{font-size:18px}}.notif-page[data-v-22b842d5]{max-width:900px;margin:0 auto;padding:20px 16px 40px}.page-head[data-v-22b842d5]{align-items:center;gap:14px;margin-bottom:20px;display:flex}.back-btn[data-v-22b842d5]{color:#334155;cursor:pointer;background:#fff;border:none;border-radius:12px;flex-shrink:0;width:44px;height:44px;font-size:16px;transition:all .15s;box-shadow:0 2px 8px #0000000f}.back-btn[data-v-22b842d5]:hover{background:#f1f5f9;transform:translate(-2px)}.page-title[data-v-22b842d5]{flex:1;min-width:0}.page-title h1[data-v-22b842d5]{color:#0f172a;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:700;display:flex}.page-title h1 i[data-v-22b842d5]{color:#f59e0b}.subtitle[data-v-22b842d5]{color:#64748b;margin:2px 0 0;font-size:13px}.head-actions[data-v-22b842d5]{align-items:center;gap:8px;display:flex}.icon-btn[data-v-22b842d5]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:14px;transition:all .15s;display:grid}.icon-btn[data-v-22b842d5]:hover{background:#f1f5f9}.icon-btn[data-v-22b842d5]:disabled{opacity:.5;cursor:not-allowed}@keyframes spin-22b842d5{to{transform:rotate(360deg)}}.spin[data-v-22b842d5]{animation:.7s linear infinite spin-22b842d5;display:inline-block}.mark-all-btn[data-v-22b842d5]{color:#09805f;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.mark-all-btn[data-v-22b842d5]:hover{background:#ecfdf5;border-color:#a7f3d0}.tabs-wrap[data-v-22b842d5]{-webkit-overflow-scrolling:touch;margin-bottom:16px;padding-bottom:4px;overflow-x:auto}.tabs-wrap[data-v-22b842d5]::-webkit-scrollbar{height:0}.tabs[data-v-22b842d5]{gap:8px;min-width:min-content;display:flex}.tab[data-v-22b842d5]{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.tab[data-v-22b842d5]:hover{background:#f8fafc}.tab.active[data-v-22b842d5]{color:#fff;background:#09805f;border-color:#0000;box-shadow:0 4px 12px #09805f40}.tab i[data-v-22b842d5]{font-size:12px}.tab-badge[data-v-22b842d5]{color:#09805f;background:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.tab:not(.active) .tab-badge[data-v-22b842d5]{color:#fff;background:#ef4444}.empty-state[data-v-22b842d5]{text-align:center;background:#fff;border-radius:14px;padding:60px 20px;box-shadow:0 2px 10px #0000000a}.empty-icon[data-v-22b842d5]{color:#cbd5e1;background:#f1f5f9;border-radius:50%;place-items:center;width:80px;height:80px;margin:0 auto 16px;font-size:32px;display:grid}.empty-state h3[data-v-22b842d5]{color:#0f172a;margin:0 0 6px;font-size:16px}.empty-state p[data-v-22b842d5]{color:#64748b;margin:0;font-size:13px}.notif-list[data-v-22b842d5]{flex-direction:column;gap:10px;display:flex}.notif-card[data-v-22b842d5]{cursor:pointer;background:#fff;border-radius:14px;align-items:flex-start;gap:14px;padding:16px;transition:all .15s;display:flex;position:relative;box-shadow:0 2px 8px #0000000a}.notif-card[data-v-22b842d5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000014}.notif-card.unread[data-v-22b842d5]{border-left:3px solid #eb2a2e}.n-icon[data-v-22b842d5]{border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:18px;display:grid}.n-body[data-v-22b842d5]{flex:1;min-width:0}.n-head[data-v-22b842d5]{align-items:center;gap:8px;display:flex}.n-head h4[data-v-22b842d5]{color:#0f172a;flex:1;min-width:0;margin:0;font-size:14px;font-weight:700}.n-dot[data-v-22b842d5]{background:#eb2a2e;border-radius:50%;flex-shrink:0;width:8px;height:8px}.n-text[data-v-22b842d5]{color:#475569;margin:4px 0 8px;font-size:13px;line-height:1.5}.n-time[data-v-22b842d5]{color:#94a3b8;align-items:center;gap:5px;font-size:11px;display:inline-flex}.n-delete[data-v-22b842d5]{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:30px;height:30px;font-size:14px;transition:all .15s}.n-delete[data-v-22b842d5]:hover{color:#ef4444;background:#fee2e2}@media (width<=640px){.notif-page[data-v-22b842d5]{padding:16px 12px 40px}.page-title h1[data-v-22b842d5]{font-size:18px}.mark-all-btn span[data-v-22b842d5]{display:none}.mark-all-btn[data-v-22b842d5]{justify-content:center;width:44px;height:44px;padding:0}.n-icon[data-v-22b842d5]{width:40px;height:40px;font-size:16px}}.notif-admin-page[data-v-764ebbde]{max-width:960px;padding:24px}.page-header[data-v-764ebbde]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.ph-left[data-v-764ebbde]{align-items:center;gap:14px;display:flex}.ph-icon[data-v-764ebbde]{color:#d97706;background:linear-gradient(135deg,#fef9c3,#fde68a);border-radius:14px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:20px;display:grid}.ph-title[data-v-764ebbde]{color:var(--text-primary);margin:0;font-size:22px;font-weight:800}.ph-sub[data-v-764ebbde]{color:var(--text-secondary);align-items:center;gap:6px;margin:3px 0 0;font-size:13px;display:flex}.sub-badge[data-v-764ebbde]{color:#fff;background:#ef4444;border-radius:8px;padding:1px 7px;font-size:11px;font-weight:700}.ph-actions[data-v-764ebbde]{align-items:center;gap:8px;display:flex}.btn-icon[data-v-764ebbde]{border:1px solid var(--border);background:var(--bg-card);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border-radius:10px;place-items:center;font-size:14px;transition:all .15s;display:grid}.btn-icon[data-v-764ebbde]:hover{background:var(--bg-main);color:var(--primary)}.btn-icon[data-v-764ebbde]:disabled{opacity:.5;cursor:not-allowed}.btn-mark-all[data-v-764ebbde]{border:1px solid var(--border);background:var(--bg-card);color:var(--primary);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn-mark-all[data-v-764ebbde]:hover{background:#f5f3ff;border-color:#c7d2fe}@keyframes spin-764ebbde{to{transform:rotate(360deg)}}.spin[data-v-764ebbde]{animation:.7s linear infinite spin-764ebbde;display:inline-block}.tabs-bar[data-v-764ebbde]{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:20px;padding-bottom:4px;display:flex;overflow-x:auto}.tabs-bar[data-v-764ebbde]::-webkit-scrollbar{height:0}.tab-btn[data-v-764ebbde]{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.tab-btn[data-v-764ebbde]:hover{background:var(--bg-main)}.tab-btn.active[data-v-764ebbde]{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-color:#0000;box-shadow:0 4px 12px #4f46e540}.tab-btn i[data-v-764ebbde]{font-size:12px}.tab-count[data-v-764ebbde]{color:#fff;background:#ef4444;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.4}.tab-count-active[data-v-764ebbde]{color:#fff;background:#ffffff40}.content-wrap[data-v-764ebbde]{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.empty-box[data-v-764ebbde]{text-align:center;padding:72px 20px}.empty-icon[data-v-764ebbde]{background:var(--bg-main);width:72px;height:72px;color:var(--text-light);border-radius:50%;place-items:center;margin:0 auto 16px;font-size:28px;display:grid}.empty-title[data-v-764ebbde]{color:var(--text-primary);margin:0 0 4px;font-size:15px;font-weight:700}.empty-sub[data-v-764ebbde]{color:var(--text-secondary);margin:0;font-size:13px}.notif-list[data-v-764ebbde]{flex-direction:column;display:flex}.notif-card[data-v-764ebbde]{border-bottom:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:14px;padding:16px 20px;transition:background .12s;display:flex;position:relative}.notif-card[data-v-764ebbde]:last-child{border-bottom:none}.notif-card[data-v-764ebbde]:hover{background:var(--bg-main)}.notif-card.unread[data-v-764ebbde]{background:linear-gradient(90deg, #fafbff, var(--bg-card));border-left:3px solid #4f46e5}.notif-card.unread[data-v-764ebbde]:hover{background:#f5f3ff}.nc-icon[data-v-764ebbde]{border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:17px;display:grid}.nc-body[data-v-764ebbde]{flex:1;min-width:0}.nc-head[data-v-764ebbde]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.nc-title[data-v-764ebbde]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.nc-dot[data-v-764ebbde]{background:#4f46e5;border-radius:50%;flex-shrink:0;width:8px;height:8px}.nc-text[data-v-764ebbde]{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 6px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.nc-time[data-v-764ebbde]{color:var(--text-light);align-items:center;gap:4px;font-size:11px;display:inline-flex}.nc-type-badge[data-v-764ebbde]{white-space:nowrap;border-radius:8px;flex-shrink:0;align-self:flex-start;margin-top:2px;padding:3px 10px;font-size:11px;font-weight:700}.nc-del[data-v-764ebbde]{width:28px;height:28px;color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:7px;flex-shrink:0;place-items:center;font-size:13px;transition:all .12s;display:grid}.nc-del[data-v-764ebbde]:hover{color:#ef4444;background:#fee2e2}@media (width<=640px){.notif-admin-page[data-v-764ebbde]{padding:16px}.ph-title[data-v-764ebbde]{font-size:18px}.btn-mark-all span[data-v-764ebbde]{display:none}.btn-mark-all[data-v-764ebbde]{justify-content:center;width:40px;height:40px;padding:0}.nc-type-badge[data-v-764ebbde]{display:none}}.head-card[data-v-92a97faf]{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:16px;padding:14px 16px}.tabs[data-v-92a97faf]{border-bottom:1px solid #e2e8f0;align-items:center;gap:4px;margin:-14px -16px 14px;padding:4px 16px 0;display:flex}.page-sub[data-v-92a97faf]{color:#64748b;margin:0 0 0 16px;font-size:13px}.tab[data-v-92a97faf]{color:#64748b;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab.active[data-v-92a97faf]{color:#1e293b;border-bottom-color:#157d71}.tab i[data-v-92a97faf]{font-size:15px}.tab-badge[data-v-92a97faf]{color:#fff;background:#1299fc;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.toolbar[data-v-92a97faf]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.btn-add[data-v-92a97faf]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.btn-add[data-v-92a97faf]:hover{background:#10645b}.search-wrap[data-v-92a97faf]{flex:0 320px;position:relative}.search-wrap input[data-v-92a97faf]{border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 38px 9px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.search-wrap input[data-v-92a97faf]:focus{border-color:#157d71}.search-wrap i[data-v-92a97faf]{color:#94a3b8;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.toolbar-right[data-v-92a97faf]{align-items:center;gap:8px;margin-left:auto;display:flex}.show-label[data-v-92a97faf]{color:#64748b;font-size:13px}.sel[data-v-92a97faf]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.sel[data-v-92a97faf]:focus{border-color:#157d71}.err-box[data-v-92a97faf]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.retry-btn[data-v-92a97faf]{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.matrix-card[data-v-92a97faf]{background:#fff;border:1px solid #e2e8f0;border-radius:14px}.matrix-scroll[data-v-92a97faf]{overflow:visible}.role-badge[data-v-92a97faf]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700}.role-table[data-v-92a97faf]{border-collapse:collapse;width:100%}.role-table th[data-v-92a97faf],.role-table td[data-v-92a97faf]{text-align:left;border-bottom:1px solid #f1f5f9}.role-table tbody tr:last-child td[data-v-92a97faf]{border-bottom:none}.role-table thead th[data-v-92a97faf]{color:#64748b;background:#f8fafc;padding:13px 18px;font-size:13px;font-weight:600}.role-table thead th[data-v-92a97faf]:first-child{border-top-left-radius:14px}.role-table thead th[data-v-92a97faf]:last-child{border-top-right-radius:14px}.role-table tbody tr[data-v-92a97faf]:hover{background:#fafbfc}.th-action[data-v-92a97faf]{width:80px}.td-action[data-v-92a97faf]{text-align:right;padding:14px 18px}.td-desc[data-v-92a97faf]{color:#475569;padding:14px 18px;font-size:14px}.td-empty[data-v-92a97faf]{text-align:center;color:#94a3b8;padding:28px;font-size:14px}.row-menu-wrap[data-v-92a97faf]{display:inline-block;position:relative}.btn-kebab[data-v-92a97faf]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px;transition:all .15s}.btn-kebab[data-v-92a97faf]:hover,.btn-kebab.active[data-v-92a97faf]{color:#334155;background:#f1f5f9}.row-menu[data-v-92a97faf]{z-index:30;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.rm-item[data-v-92a97faf]{cursor:pointer;color:#334155;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:background .12s;display:flex}.rm-item i[data-v-92a97faf]{text-align:center;color:#94a3b8;width:16px}.rm-item[data-v-92a97faf]:hover{background:#f1f5f9}.rm-item.danger[data-v-92a97faf],.rm-item.danger i[data-v-92a97faf]{color:#ef4444}.rm-item.danger[data-v-92a97faf]:hover{background:#fef2f2}.rm-item.disabled[data-v-92a97faf]{color:#cbd5e1;cursor:not-allowed}.rm-item.disabled i[data-v-92a97faf]{color:#cbd5e1}.rm-item.disabled[data-v-92a97faf]:hover{background:0 0}.menu-pop-enter-active[data-v-92a97faf],.menu-pop-leave-active[data-v-92a97faf]{transform-origin:100% 0;transition:opacity .12s,transform .12s}.menu-pop-enter-from[data-v-92a97faf],.menu-pop-leave-to[data-v-92a97faf]{opacity:0;transform:scale(.95)}.perms[data-v-92a97faf]{padding:0}.role-badge.lg[data-v-92a97faf]{padding:5px 14px;font-size:14px}.sys-tag[data-v-92a97faf]{color:#94a3b8;background:#f1f5f9;border-radius:6px;margin-left:8px;padding:2px 7px;font-size:10px;font-weight:700}.th-role-name[data-v-92a97faf],.td-role-name[data-v-92a97faf]{width:380px}@media (width<=600px){.th-role-name[data-v-92a97faf],.td-role-name[data-v-92a97faf]{width:auto}}.td-role-name[data-v-92a97faf]{white-space:nowrap;padding:14px 18px}.drawer-overlay[data-v-92a97faf]{z-index:200;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer[data-v-92a97faf]{background:#fff;flex-direction:column;width:420px;max-width:100vw;height:100%;display:flex;box-shadow:-4px 0 24px #0000001f}.drawer-head[data-v-92a97faf]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;padding:18px 20px;display:flex}.drawer-sub[data-v-92a97faf]{color:#94a3b8;margin-top:8px;font-size:12px}.drawer-close[data-v-92a97faf]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px}.drawer-close[data-v-92a97faf]:hover{background:#f1f5f9}.drawer-body[data-v-92a97faf]{flex:1;padding:0 20px 8px;overflow-y:auto}.drawer-loading[data-v-92a97faf]{text-align:center;color:#94a3b8;padding:30px;font-size:14px}.perm-list-head[data-v-92a97faf]{color:#94a3b8;z-index:5;background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 0 6px;font-size:11px;font-weight:600;display:flex;position:sticky;top:0}.plh-toggles[data-v-92a97faf]{gap:18px;display:flex}.plh-toggles span[data-v-92a97faf]{text-align:center;width:42px}.perm-row[data-v-92a97faf]{border-bottom:1px solid #f8fafc;justify-content:space-between;align-items:center;padding:11px 0;display:flex}.perm-name[data-v-92a97faf]{color:#334155;align-items:center;gap:10px;font-size:14px;display:flex}.perm-name i[data-v-92a97faf]{text-align:center;color:#94a3b8;width:18px}.perm-toggles[data-v-92a97faf]{gap:18px;display:flex}.perm-parent .perm-name[data-v-92a97faf]{font-weight:700}.perm-child[data-v-92a97faf]{border-left:2px solid #e2e8f0;margin-left:6px;padding-left:14px}.perm-child .perm-name[data-v-92a97faf]{color:#64748b;font-size:13px}.perm-child .perm-name i[data-v-92a97faf]{font-size:13px}.switch[data-v-92a97faf]{cursor:pointer;width:42px;height:24px;display:inline-block;position:relative}.switch input[data-v-92a97faf]{display:none}.slider[data-v-92a97faf]{background:#cbd5e1;border-radius:12px;transition:all .2s;position:absolute;inset:0}.slider[data-v-92a97faf]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+.slider[data-v-92a97faf]{background:#157d71}.switch input:checked+.slider[data-v-92a97faf]:before{transform:translate(18px)}.switch.locked[data-v-92a97faf]{cursor:not-allowed;opacity:.6}.drawer-foot[data-v-92a97faf]{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.btn-ghost[data-v-92a97faf]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;padding:9px 18px;font-size:14px}.btn-ghost[data-v-92a97faf]:hover{background:#f1f5f9}.btn-ghost[data-v-92a97faf]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-92a97faf]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:7px;padding:9px 18px;font-size:14px;display:flex}.btn-primary[data-v-92a97faf]:disabled{opacity:.5;cursor:not-allowed}.drawer-enter-active[data-v-92a97faf],.drawer-leave-active[data-v-92a97faf]{transition:opacity .2s}.drawer-enter-active .drawer[data-v-92a97faf],.drawer-leave-active .drawer[data-v-92a97faf]{transition:transform .25s}.drawer-enter-from[data-v-92a97faf],.drawer-leave-to[data-v-92a97faf]{opacity:0}.drawer-enter-from .drawer[data-v-92a97faf],.drawer-leave-to .drawer[data-v-92a97faf]{transform:translate(100%)}.overlay[data-v-92a97faf]{z-index:200;background:#0006;position:fixed;inset:0}.role-modal[data-v-92a97faf]{z-index:201;background:#fff;border-radius:14px;width:420px;max-width:calc(100vw - 32px);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal-head[data-v-92a97faf]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-92a97faf]{color:#1e293b;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-92a97faf]{color:#157d71}.modal-close[data-v-92a97faf]{cursor:pointer;color:#64748b;background:0 0;border:1px solid #e2e8f0;border-radius:7px;width:30px;height:30px;font-size:15px}.modal-body[data-v-92a97faf]{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.modal-foot[data-v-92a97faf]{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.fg[data-v-92a97faf]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-92a97faf]{color:#64748b;font-size:13px;font-weight:600}.req[data-v-92a97faf]{color:#ef4444}.fi[data-v-92a97faf]{color:#1e293b;resize:vertical;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.fi[data-v-92a97faf]:focus{border-color:#157d71}.color-row[data-v-92a97faf]{flex-wrap:wrap;gap:8px;display:flex}.color-dot[data-v-92a97faf]{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .12s}.color-dot.sel[data-v-92a97faf]{border-color:#1e293b;transform:scale(1.12)}.save-err[data-v-92a97faf]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.overlay-fade-enter-active[data-v-92a97faf],.overlay-fade-leave-active[data-v-92a97faf]{transition:opacity .2s}.overlay-fade-enter-from[data-v-92a97faf],.overlay-fade-leave-to[data-v-92a97faf]{opacity:0}.modal-pop-enter-active[data-v-92a97faf],.modal-pop-leave-active[data-v-92a97faf]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-92a97faf],.modal-pop-leave-to[data-v-92a97faf]{opacity:0;transform:translate(-50%,-50%)scale(.92)}.head-card[data-v-bf0db8d8]{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:16px;padding:14px 16px}.tabs[data-v-bf0db8d8]{border-bottom:1px solid #e2e8f0;align-items:center;gap:4px;margin:-14px -16px 14px;padding:4px 16px 0;display:flex}.page-sub[data-v-bf0db8d8]{color:#64748b;margin:0 0 0 16px;font-size:13px}.tab[data-v-bf0db8d8]{color:#64748b;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex}.tab.active[data-v-bf0db8d8]{color:#1e293b;border-bottom-color:#157d71}.tab i[data-v-bf0db8d8]{font-size:15px}.tab-badge[data-v-bf0db8d8]{color:#fff;background:#1299fc;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.toolbar[data-v-bf0db8d8]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.btn-add[data-v-bf0db8d8]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.btn-add[data-v-bf0db8d8]:hover{background:#10645b}.search-wrap[data-v-bf0db8d8]{flex:0 320px;position:relative}.search-wrap input[data-v-bf0db8d8]{border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 38px 9px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.search-wrap input[data-v-bf0db8d8]:focus{border-color:#157d71}.search-wrap i[data-v-bf0db8d8]{color:#94a3b8;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.toolbar-right[data-v-bf0db8d8]{align-items:center;gap:8px;margin-left:auto;display:flex}.show-label[data-v-bf0db8d8]{color:#64748b;font-size:13px}.sel[data-v-bf0db8d8]{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.sel[data-v-bf0db8d8]:focus{border-color:#157d71}.err-box[data-v-bf0db8d8]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.retry-btn[data-v-bf0db8d8]{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #dc2626;border-radius:6px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600}.matrix-card[data-v-bf0db8d8]{background:#fff;border:1px solid #e2e8f0;border-radius:14px}.matrix-scroll[data-v-bf0db8d8]{overflow:visible}.role-badge[data-v-bf0db8d8]{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700}.role-table[data-v-bf0db8d8]{border-collapse:collapse;width:100%}.role-table th[data-v-bf0db8d8],.role-table td[data-v-bf0db8d8]{text-align:left;border-bottom:1px solid #f1f5f9}.role-table tbody tr:last-child td[data-v-bf0db8d8]{border-bottom:none}.role-table thead th[data-v-bf0db8d8]{color:#64748b;background:#f8fafc;padding:13px 18px;font-size:13px;font-weight:600}.role-table thead th[data-v-bf0db8d8]:first-child{border-top-left-radius:14px}.role-table thead th[data-v-bf0db8d8]:last-child{border-top-right-radius:14px}.role-table tbody tr[data-v-bf0db8d8]:hover{background:#fafbfc}.th-action[data-v-bf0db8d8]{width:80px}.td-action[data-v-bf0db8d8]{text-align:right;padding:14px 18px}.td-desc[data-v-bf0db8d8]{color:#475569;padding:14px 18px;font-size:14px}.td-empty[data-v-bf0db8d8]{text-align:center;color:#94a3b8;padding:28px;font-size:14px}.row-menu-wrap[data-v-bf0db8d8]{display:inline-block;position:relative}.btn-kebab[data-v-bf0db8d8]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px;transition:all .15s}.btn-kebab[data-v-bf0db8d8]:hover,.btn-kebab.active[data-v-bf0db8d8]{color:#334155;background:#f1f5f9}.row-menu[data-v-bf0db8d8]{z-index:30;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.rm-item[data-v-bf0db8d8]{cursor:pointer;color:#334155;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:background .12s;display:flex}.rm-item i[data-v-bf0db8d8]{text-align:center;color:#94a3b8;width:16px}.rm-item[data-v-bf0db8d8]:hover{background:#f1f5f9}.rm-item.danger[data-v-bf0db8d8],.rm-item.danger i[data-v-bf0db8d8]{color:#ef4444}.rm-item.danger[data-v-bf0db8d8]:hover{background:#fef2f2}.rm-item.disabled[data-v-bf0db8d8]{color:#cbd5e1;cursor:not-allowed}.rm-item.disabled i[data-v-bf0db8d8]{color:#cbd5e1}.rm-item.disabled[data-v-bf0db8d8]:hover{background:0 0}.menu-pop-enter-active[data-v-bf0db8d8],.menu-pop-leave-active[data-v-bf0db8d8]{transform-origin:100% 0;transition:opacity .12s,transform .12s}.menu-pop-enter-from[data-v-bf0db8d8],.menu-pop-leave-to[data-v-bf0db8d8]{opacity:0;transform:scale(.95)}.perms[data-v-bf0db8d8]{padding:0}.role-badge.lg[data-v-bf0db8d8]{padding:5px 14px;font-size:14px}.th-role-name[data-v-bf0db8d8],.td-role-name[data-v-bf0db8d8]{width:380px}@media (width<=600px){.th-role-name[data-v-bf0db8d8],.td-role-name[data-v-bf0db8d8]{width:auto}}.td-role-name[data-v-bf0db8d8]{white-space:nowrap;padding:14px 18px}.drawer-overlay[data-v-bf0db8d8]{z-index:200;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer[data-v-bf0db8d8]{background:#fff;flex-direction:column;width:420px;max-width:100vw;height:100%;display:flex;box-shadow:-4px 0 24px #0000001f}.drawer-head[data-v-bf0db8d8]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;padding:18px 20px;display:flex}.drawer-sub[data-v-bf0db8d8]{color:#94a3b8;margin-top:8px;font-size:12px}.drawer-close[data-v-bf0db8d8]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;width:34px;height:34px}.drawer-close[data-v-bf0db8d8]:hover{background:#f1f5f9}.drawer-body[data-v-bf0db8d8]{flex:1;padding:0 20px 8px;overflow-y:auto}.drawer-loading[data-v-bf0db8d8]{text-align:center;color:#94a3b8;padding:30px;font-size:14px}.perm-list-head[data-v-bf0db8d8]{color:#94a3b8;z-index:5;background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 0 6px;font-size:11px;font-weight:600;display:flex;position:sticky;top:0}.plh-toggles[data-v-bf0db8d8]{gap:18px;display:flex}.plh-toggles span[data-v-bf0db8d8]{text-align:center;width:42px}.perm-row[data-v-bf0db8d8]{border-bottom:1px solid #f8fafc;justify-content:space-between;align-items:center;padding:11px 0;display:flex}.perm-name[data-v-bf0db8d8]{color:#334155;align-items:center;gap:10px;font-size:14px;display:flex}.perm-name i[data-v-bf0db8d8]{text-align:center;color:#94a3b8;width:18px}.perm-toggles[data-v-bf0db8d8]{gap:18px;display:flex}.switch[data-v-bf0db8d8]{cursor:pointer;width:42px;height:24px;display:inline-block;position:relative}.switch input[data-v-bf0db8d8]{display:none}.slider[data-v-bf0db8d8]{background:#cbd5e1;border-radius:12px;transition:all .2s;position:absolute;inset:0}.slider[data-v-bf0db8d8]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+.slider[data-v-bf0db8d8]{background:#157d71}.switch input:checked+.slider[data-v-bf0db8d8]:before{transform:translate(18px)}.switch.locked[data-v-bf0db8d8]{cursor:not-allowed;opacity:.6}.drawer-foot[data-v-bf0db8d8]{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.btn-ghost[data-v-bf0db8d8]{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;padding:9px 18px;font-size:14px}.btn-ghost[data-v-bf0db8d8]:hover{background:#f1f5f9}.btn-ghost[data-v-bf0db8d8]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-bf0db8d8]{color:#fff;cursor:pointer;background:#157d71;border:none;border-radius:9px;align-items:center;gap:7px;padding:9px 18px;font-size:14px;display:flex}.btn-primary[data-v-bf0db8d8]:disabled{opacity:.5;cursor:not-allowed}.drawer-enter-active[data-v-bf0db8d8],.drawer-leave-active[data-v-bf0db8d8]{transition:opacity .2s}.drawer-enter-active .drawer[data-v-bf0db8d8],.drawer-leave-active .drawer[data-v-bf0db8d8]{transition:transform .25s}.drawer-enter-from[data-v-bf0db8d8],.drawer-leave-to[data-v-bf0db8d8]{opacity:0}.drawer-enter-from .drawer[data-v-bf0db8d8],.drawer-leave-to .drawer[data-v-bf0db8d8]{transform:translate(100%)}.overlay[data-v-bf0db8d8]{z-index:200;background:#0006;position:fixed;inset:0}.role-modal[data-v-bf0db8d8]{z-index:201;background:#fff;border-radius:14px;width:420px;max-width:calc(100vw - 32px);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.modal-head[data-v-bf0db8d8]{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3[data-v-bf0db8d8]{color:#1e293b;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.modal-head h3 i[data-v-bf0db8d8]{color:#157d71}.modal-close[data-v-bf0db8d8]{cursor:pointer;color:#64748b;background:0 0;border:1px solid #e2e8f0;border-radius:7px;width:30px;height:30px;font-size:15px}.modal-body[data-v-bf0db8d8]{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.modal-foot[data-v-bf0db8d8]{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.fg[data-v-bf0db8d8]{flex-direction:column;gap:5px;display:flex}.fg label[data-v-bf0db8d8]{color:#64748b;font-size:13px;font-weight:600}.req[data-v-bf0db8d8]{color:#ef4444}.fi[data-v-bf0db8d8]{color:#1e293b;resize:vertical;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.fi[data-v-bf0db8d8]:focus{border-color:#157d71}.color-row[data-v-bf0db8d8]{flex-wrap:wrap;gap:8px;display:flex}.color-dot[data-v-bf0db8d8]{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .12s}.color-dot.sel[data-v-bf0db8d8]{border-color:#1e293b;transform:scale(1.12)}.save-err[data-v-bf0db8d8]{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.overlay-fade-enter-active[data-v-bf0db8d8],.overlay-fade-leave-active[data-v-bf0db8d8]{transition:opacity .2s}.overlay-fade-enter-from[data-v-bf0db8d8],.overlay-fade-leave-to[data-v-bf0db8d8]{opacity:0}.modal-pop-enter-active[data-v-bf0db8d8],.modal-pop-leave-active[data-v-bf0db8d8]{transition:all .25s cubic-bezier(.4,0,.2,1)}.modal-pop-enter-from[data-v-bf0db8d8],.modal-pop-leave-to[data-v-bf0db8d8]{opacity:0;transform:translate(-50%,-50%)scale(.92)}
