.route-loading-overlay[data-v-86463fdf]{z-index:9999;-webkit-backdrop-filter:blur(8px);background:#f5f7fad9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.route-loading-content[data-v-86463fdf]{flex-direction:column;align-items:center;gap:20px;display:flex}.route-spinner[data-v-86463fdf]{width:48px;height:48px;position:relative}.spinner-arc[data-v-86463fdf]{border:3px solid #0000;border-top-color:#5b8def;border-radius:50%;animation:.9s cubic-bezier(.4,0,.2,1) infinite spin-86463fdf;position:absolute;inset:0}.spinner-arc.arc-2[data-v-86463fdf]{border-top-color:#0000;border-right-color:#3a6fd8;animation-duration:1.4s;animation-direction:reverse;inset:6px}.spinner-center[data-v-86463fdf]{background:linear-gradient(135deg,#5b8def,#3a6fd8);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;animation:1.2s ease-in-out infinite alternate pulse-center-86463fdf;position:absolute;top:50%;left:50%}@keyframes spin-86463fdf{to{transform:rotate(360deg)}}@keyframes pulse-center-86463fdf{0%{opacity:.6;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.route-loading-bar[data-v-86463fdf]{background:#5b8def1a;border-radius:3px;width:120px;height:3px;overflow:hidden}.route-loading-bar-fill[data-v-86463fdf]{background:linear-gradient(90deg,#5b8def,#3a6fd8);border-radius:3px;width:35%;height:100%;animation:1.2s ease-in-out infinite slide-bar-86463fdf}@keyframes slide-bar-86463fdf{0%{transform:translate(-120%)}to{transform:translate(400%)}}.route-loading-enter-active[data-v-86463fdf]{transition:opacity .2s}.route-loading-leave-active[data-v-86463fdf]{transition:opacity .35s}.route-loading-enter-from[data-v-86463fdf],.route-loading-leave-to[data-v-86463fdf]{opacity:0}.session-modal[data-v-9ffdc81f]{flex-direction:column;gap:18px;display:flex}.session-hero[data-v-9ffdc81f]{background:radial-gradient(circle at 0 0,#5b8def2e,#0000 42%),linear-gradient(135deg,#f7faff 0%,#eef4ff 100%);border:1px solid #5b8def29;border-radius:20px;grid-template-columns:auto 1fr auto;gap:16px;padding:20px;display:grid;position:relative}.session-hero__icon[data-v-9ffdc81f]{color:#fff;background:linear-gradient(135deg,#5b8def 0%,#6e7dff 100%);border-radius:18px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:0 14px 28px #5b8def3d}.session-hero__content h4[data-v-9ffdc81f]{color:var(--text);margin-bottom:6px;font-size:18px}.session-hero__content p[data-v-9ffdc81f]{color:var(--text-secondary);line-height:1.75}.session-countdown[data-v-9ffdc81f]{flex-direction:column;justify-content:center;align-items:flex-end;gap:4px;min-width:118px;display:flex}.session-countdown__label[data-v-9ffdc81f]{color:var(--text-light);font-size:12px}.session-countdown strong[data-v-9ffdc81f]{color:var(--primary-dark);font-size:28px;line-height:1}.session-grid[data-v-9ffdc81f]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.session-card[data-v-9ffdc81f]{border:1px solid var(--border);background:#fff;border-radius:16px;padding:16px;box-shadow:0 8px 22px #0f172a0d}.session-card.requester[data-v-9ffdc81f]{background:linear-gradient(#fff 0%,#f9fbff 100%)}.session-card.current[data-v-9ffdc81f]{background:linear-gradient(#fff 0%,#fbfcfe 100%)}.session-card__tag[data-v-9ffdc81f]{background:var(--primary-light);color:var(--primary-dark);border-radius:999px;margin-bottom:10px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.session-card strong[data-v-9ffdc81f]{color:var(--text);margin-bottom:6px;display:block}.session-card p[data-v-9ffdc81f]{color:var(--text-secondary);line-height:1.7}.session-detail[data-v-9ffdc81f]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.session-detail--single[data-v-9ffdc81f]{grid-template-columns:1fr}.session-detail__item[data-v-9ffdc81f]{background:#f7f9fc;border:1px solid #edf1f6;border-radius:14px;padding:14px 16px}.session-detail__item span[data-v-9ffdc81f]{color:var(--text-light);margin-bottom:4px;font-size:12px;display:block}.session-detail__item strong[data-v-9ffdc81f]{color:var(--text)}.session-tip[data-v-9ffdc81f]{color:#9a6b00;background:#fff8e8;border:1px solid #faad1438;border-radius:14px;align-items:flex-start;gap:8px;padding:14px 16px;display:flex}.session-tip span[data-v-9ffdc81f]{line-height:1.7}.session-actions[data-v-9ffdc81f]{justify-content:flex-end;gap:12px;display:flex}.session-actions--single[data-v-9ffdc81f]{justify-content:center}.session-modal--logout[data-v-9ffdc81f]{text-align:center;gap:16px}.session-logout-badge[data-v-9ffdc81f]{color:var(--danger);background:#ff4d4f1a;border-radius:999px;align-self:center;padding:6px 14px;font-size:12px;font-weight:700}.session-logout-title[data-v-9ffdc81f]{color:var(--text);font-size:20px;font-weight:700}.session-logout-desc[data-v-9ffdc81f]{color:var(--text-secondary);line-height:1.8}@media (width<=768px){.session-hero[data-v-9ffdc81f]{grid-template-columns:1fr}.session-countdown[data-v-9ffdc81f]{align-items:flex-start}.session-grid[data-v-9ffdc81f],.session-detail[data-v-9ffdc81f]{grid-template-columns:1fr}.session-actions[data-v-9ffdc81f]{flex-direction:column-reverse}.session-actions button[data-v-9ffdc81f]{width:100%}}.page-fade-enter-active{transition:opacity .25s}.page-fade-leave-active{transition:opacity .15s}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.app-search-select[data-v-b884eb74]{width:100%;min-width:0;color:var(--text,#333);font-size:14px;position:relative}.app-search-select__trigger[data-v-b884eb74]{border:1px solid var(--border,#e1e6ed);border-radius:var(--radius-sm,7px);width:100%;min-height:42px;color:inherit;text-align:left;cursor:pointer;box-shadow:none;background:#fff;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:9px 11px 9px 13px;transition:border-color .18s,box-shadow .18s,background .18s;display:flex}.app-search-select__trigger[data-v-b884eb74]:hover:not(:disabled){background:#fbfdff;border-color:#b9c9e8}.app-search-select__trigger[data-v-b884eb74]:focus-visible,.app-search-select--open .app-search-select__trigger[data-v-b884eb74]{border-color:var(--primary,#5b8def);outline:none;box-shadow:0 0 0 3px #5b8def21}.app-search-select__trigger[data-v-b884eb74]:active{transform:none}.app-search-select__value[data-v-b884eb74]{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-search-select__value.is-placeholder[data-v-b884eb74]{color:var(--text-light,#8a94a3)}.app-search-select__actions[data-v-b884eb74]{color:#7a8798;flex:none;align-items:center;gap:5px;display:inline-flex}.app-search-select__actions svg[data-v-b884eb74]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.app-search-select__search-icon[data-v-b884eb74]{width:16px;height:16px;color:var(--primary,#5b8def)}.app-search-select__chevron[data-v-b884eb74]{width:15px;height:15px;transition:transform .18s}.app-search-select--open .app-search-select__chevron[data-v-b884eb74]{transform:rotate(180deg)}.app-search-select__panel[data-v-b884eb74]{z-index:1200;background:#fff;border:1px solid #dfe6ef;border-radius:10px;width:max(100%,250px);min-width:0;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 14px 38px #1d2e4829,0 3px 10px #1d2e4814}.app-search-select__search-wrap[data-v-b884eb74]{align-items:center;margin:10px 10px 7px;display:flex;position:relative}.app-search-select__search-wrap>svg[data-v-b884eb74]{fill:none;stroke:#78869a;stroke-linecap:round;stroke-width:1.8px;pointer-events:none;width:17px;height:17px;position:absolute;left:11px}.app-search-select__search[data-v-b884eb74]{color:#26364a;-webkit-appearance:none;background:#f8fafc;border:1px solid #dce3ec;border-radius:8px;outline:none;width:100%;height:40px;margin:0;padding:8px 36px;font-size:14px}.app-search-select__search[data-v-b884eb74]::-webkit-search-cancel-button{display:none}.app-search-select__search[data-v-b884eb74]:focus{border-color:var(--primary,#5b8def);background:#fff;box-shadow:0 0 0 3px #5b8def1f}.app-search-select__clear[data-v-b884eb74]{color:#8490a0;background:0 0;border:0;border-radius:7px;place-items:center;width:34px;height:34px;padding:0;display:grid;position:absolute;right:3px}.app-search-select__clear[data-v-b884eb74]:hover{color:#394a60;background:#eef2f7}.app-search-select__clear[data-v-b884eb74]:active{transform:none}.app-search-select__clear svg[data-v-b884eb74]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:16px;height:16px}.app-search-select__result-meta[data-v-b884eb74]{color:#7c899a;padding:0 13px 6px;font-size:11px;line-height:1.4}.app-search-select__options[data-v-b884eb74]{overscroll-behavior:contain;scrollbar-width:thin;max-height:min(320px,45vh);padding:4px 6px 7px;overflow-y:auto}.app-search-select__option[data-v-b884eb74]{color:#334155;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:42px;margin:0;padding:8px 10px;display:flex}.app-search-select__option[data-v-b884eb74]:hover:not(:disabled),.app-search-select__option.is-highlighted[data-v-b884eb74]{background:#f1f5fb}.app-search-select__option.is-selected[data-v-b884eb74]{background:var(--primary-light,#e8f0fe);color:var(--primary-dark,#356dcc)}.app-search-select__option[data-v-b884eb74]:focus-visible{outline:2px solid var(--primary,#5b8def);outline-offset:-2px}.app-search-select__option[data-v-b884eb74]:active{transform:none}.app-search-select__option[data-v-b884eb74]:disabled{cursor:not-allowed;opacity:.5}.app-search-select__option-copy[data-v-b884eb74]{flex-direction:column;min-width:0;line-height:1.35;display:flex}.app-search-select__option-copy strong[data-v-b884eb74]{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.app-search-select__option-copy small[data-v-b884eb74]{color:#7c8998;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.app-search-select__check[data-v-b884eb74]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.3px;flex:none;width:17px;height:17px}.app-search-select__empty[data-v-b884eb74]{color:#8a96a7;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:128px;padding:22px;display:flex}.app-search-select__empty svg[data-v-b884eb74]{fill:none;stroke:#9ba7b7;stroke-linecap:round;stroke-width:1.6px;width:27px;height:27px;margin-bottom:8px}.app-search-select__empty strong[data-v-b884eb74]{color:#5f6d80;font-size:13px;font-weight:500}.app-search-select__empty span[data-v-b884eb74]{margin-top:3px;font-size:11px}.app-search-select--disabled[data-v-b884eb74]{opacity:.62}.app-search-select--disabled .app-search-select__trigger[data-v-b884eb74]{cursor:not-allowed;background:#f3f5f7}.app-search-select--invalid .app-search-select__trigger[data-v-b884eb74]{border-color:var(--danger,#ff4d4f)}.app-search-select--compact .app-search-select__trigger[data-v-b884eb74]{border-radius:8px;min-height:36px;padding-top:6px;padding-bottom:6px;font-size:13px}.app-search-select-popover-enter-active[data-v-b884eb74],.app-search-select-popover-leave-active[data-v-b884eb74]{transform-origin:top;transition:opacity .16s,transform .16s}.app-search-select-popover-enter-from[data-v-b884eb74],.app-search-select-popover-leave-to[data-v-b884eb74]{opacity:0;transform:translateY(-4px)scale(.985)}@media (width<=520px){.app-search-select__panel[data-v-b884eb74]{width:max(100%,min(290px,100vw - 32px))}.app-search-select__options[data-v-b884eb74]{max-height:min(300px,42vh)}.app-search-select__option[data-v-b884eb74]{min-height:46px}}@media (prefers-reduced-motion:reduce){.app-search-select__trigger[data-v-b884eb74],.app-search-select__chevron[data-v-b884eb74],.app-search-select-popover-enter-active[data-v-b884eb74],.app-search-select-popover-leave-active[data-v-b884eb74]{transition:none}}*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#5b8def;--primary-light:#e8f0fe;--primary-dark:#3a6fd8;--success:#52c41a;--success-light:#f0fae5;--warning:#faad14;--warning-light:#fff8e6;--danger:#ff4d4f;--danger-light:#fff1f0;--text:#333;--text-secondary:#666;--text-light:#999;--border:#e8e8e8;--bg:#f5f7fa;--bg-white:#fff;--shadow:0 2px 12px #0000000f;--shadow-hover:0 4px 16px #0000001a;--radius:10px;--radius-sm:6px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6}button{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--text);outline:none;padding:8px 20px;font-family:inherit;font-size:14px;transition:all .2s}.template-modal-close,.sch-action-btn,.file-action-btn,.refresh-btn,.settings-close,.editor-close,.modal-close,.modify-close,.avatar-preview-close,.form-close,.popup-close,.icon-btn,.app-modal__icon-btn,.row-icon-btn,.pwd-eye,.toggle-pwd,.remove-rule-btn{padding:0}button:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;border:none}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--success);color:#fff;border:none}.btn-success:hover{background:#45a816}.btn-danger{background:var(--danger);color:#fff;border:none}.btn-danger:hover{background:#e04345}.btn-outline{color:var(--primary);border:1px solid var(--primary);background:0 0}.btn-outline:hover{background:var(--primary-light)}.btn-ghost{color:var(--text-secondary);background:0 0;border:none;padding:6px 12px}.btn-ghost:hover{background:#f0f0f0}.btn-lg{border-radius:var(--radius);padding:12px 32px;font-size:16px}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:#fff;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #5b8def1a}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}.card{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.page-title{color:var(--text);margin-bottom:20px;font-size:20px;font-weight:600}table{border-collapse:collapse;table-layout:fixed;width:100%}table th{background:var(--bg);color:var(--text-secondary);text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;border-right:1px solid #e8e8e8;padding:12px 8px;font-size:13px;font-weight:500}table th:last-child{border-right:none}table td{text-align:center;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;padding:12px 8px;font-size:14px}table td:last-child{border-right:none}table tr:hover td{background:#fafbfc}.tag{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.tag-success{background:var(--success-light);color:var(--success)}.tag-warning{background:var(--warning-light);color:var(--warning)}.tag-danger{background:var(--danger-light);color:var(--danger)}.tag-info{background:var(--primary-light);color:var(--primary)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}@media (width<=768px){body{-webkit-overflow-scrolling:touch}.page-title{margin-bottom:14px;font-size:18px}.card{border-radius:12px;padding:16px}table{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}table thead,table tbody{table-layout:auto;width:100%;display:table}table th,table td{padding:10px 12px;font-size:13px}input,select{font-size:16px}button{min-height:40px}}.filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filter-main{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:inline-flex}.filter-actions{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.date-range-filter{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:6px;height:36px;padding:4px 8px 4px 10px;transition:border-color .2s,background .2s,box-shadow .2s;display:inline-flex}.date-range-filter:hover{background:#fff;border-color:#cbd5e1}.date-range-filter.active{background:#fff;border-color:#5b8def52;box-shadow:0 2px 8px #5b8def14}.date-range-icon{color:currentColor;flex-shrink:0}.date-range-input{width:115px;height:28px;color:var(--text);background:0 0;border:0;border-radius:6px;outline:none;padding:0 4px;font-size:13px;line-height:1}.date-range-input:focus{background:#f1f5f9}.date-range-separator{color:var(--text-light);white-space:nowrap;font-size:12px}.date-range-clear{width:18px;height:18px;color:var(--primary);cursor:pointer;background:#5b8def24;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .18s,color .18s;display:inline-flex}.date-range-clear:hover{color:var(--danger);background:#ff4d4f2e}.filter-dropdown-capsule{height:36px;color:var(--text-secondary);background:#f1f5f9;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;max-width:220px;padding:4px 10px 4px 12px;font-size:13px;font-weight:500;line-height:1;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.filter-dropdown-capsule:hover{color:var(--text);background:#e8eef5}.filter-dropdown-capsule.active{background:var(--primary-light);color:var(--primary);border-color:#5b8def40}.filter-dropdown-capsule select{opacity:0;cursor:pointer;z-index:2;appearance:none;width:100%;height:100%;position:absolute;top:0;left:0}.attendance-filter-select{width:168px;max-width:220px}.attendance-filter-select--employee{width:190px}.capsule-icon{color:currentColor;flex-shrink:0}.capsule-label{white-space:nowrap;text-overflow:ellipsis;max-width:130px;overflow:hidden}.capsule-caret{color:currentColor;opacity:.7;flex-shrink:0}.capsule-clear{width:16px;height:16px;color:var(--primary);cursor:pointer;z-index:3;background:#5b8def2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .18s,color .18s;display:inline-flex;position:relative}.capsule-clear:hover{color:var(--danger);background:#ff4d4f2e}.filter-search-capsule{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:6px;width:220px;height:36px;padding:4px 10px;transition:border-color .2s,background .2s,box-shadow .2s;display:inline-flex}.filter-search-capsule:hover{background:#fff;border-color:#cbd5e1}.filter-search-capsule:focus-within{color:var(--text);background:#fff;border-color:#5b8def52;box-shadow:0 2px 8px #5b8def14}.filter-search-capsule input{width:100%;height:100%;color:var(--text);background:0 0;border:0;outline:none;padding:0;font-size:13px}.filter-search-capsule .search-icon{color:currentColor;flex-shrink:0}.filter-search-capsule .search-clear{color:#64748b;cursor:pointer;background:#94a3b824;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;transition:background .18s,color .18s;display:inline-flex}.filter-search-capsule .search-clear:hover{color:var(--danger);background:#ff4d4f2e}@media (width<=768px){.filter-bar{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.filter-main{flex-direction:column;align-items:stretch;gap:10px;width:100%}.filter-dropdown-capsule,.attendance-filter-select,.date-range-filter,.filter-search-capsule{justify-content:space-between;width:100%;max-width:none}.date-range-input{text-align:center;flex:1;width:auto}.filter-actions{width:100%;margin-left:0}}.credential-username-field{opacity:0!important;pointer-events:none!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:fixed!important;left:-10000px!important}
