:root{--bg-page:#f7f7f8;--bg-card:#fff;--bg-hover:#f7f7f8;--border-color:#e5e5e5;--text-primary:#000;--text-secondary:#666;--text-muted:#999;--color-primary:#000;--color-danger:#ff3b30;--color-success:#34c759;--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #00000014;--shadow-md:0 4px 6px #00000014;--shadow-lg:0 20px 40px #00000026;color:var(--text-primary);background:var(--bg-page);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}html{-webkit-overflow-scrolling:touch;height:100%;overflow:hidden scroll}body{height:100%;margin:0;overflow:hidden auto}#app{text-align:left;width:100%;max-width:100%;height:100%;margin:0;overflow-x:hidden}@supports (-webkit-touch-callout:none){html,body{overflow-x:hidden}body{position:relative}}button{cursor:pointer;font-family:inherit;transition:all .15s}.btn{border-radius:var(--radius);border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{opacity:.8}.btn-default{color:var(--text-primary);border:1px solid var(--border-color);background:#fff}.btn-default:hover{background:var(--bg-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-text{color:var(--text-primary);background:0 0;border:none;padding:6px 10px}.btn-text:hover{background:var(--bg-hover)}input,select,textarea{border:1px solid var(--border-color);border-radius:var(--radius);background:#fff;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary)}input::placeholder{color:var(--text-muted)}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.badge{border-radius:var(--radius-sm);padding:4px 8px;font-size:11px;font-weight:500;display:inline-block}.badge-success{color:#2e7d32;background:#e8f5e9}.badge-danger{color:var(--color-danger);background:#ffebee}.badge-default{background:var(--bg-hover);color:var(--text-secondary)}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border-color);padding:14px 16px}.table th{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:11px;font-weight:600}.table tr:hover td{background:var(--bg-hover)}.modal{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{border-radius:var(--radius-xl);width:90%;max-width:480px;box-shadow:var(--shadow-lg);background:#fff;max-height:90vh;margin:auto;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4{margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:20px}.modal-body{padding:24px;overflow-y:auto}.modal-btns{border-top:1px solid var(--border-color);flex-shrink:0;gap:12px;padding:16px 24px;display:flex}.modal-btns button{border-radius:var(--radius);flex:1;padding:10px;font-size:14px;font-weight:500}.modal-btns .btn-primary{background:var(--color-primary)}.modal-btns .btn-default{border:1px solid var(--border-color);background:#fff}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group select{width:100%}.form-group .required{color:var(--color-danger)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.login-page[data-v-e5505869]{background:#f7f7f8;justify-content:center;align-items:center;min-height:100%;display:flex}.login-box[data-v-e5505869]{width:100%;max-width:360px;box-shadow:var(--shadow-lg);background:#fff;border-radius:12px;padding:48px 40px}.login-header[data-v-e5505869]{text-align:center;margin-bottom:32px}.logo-img[data-v-e5505869]{object-fit:contain;width:auto;max-width:240px;height:60px;margin-bottom:12px}.logo[data-v-e5505869]{color:var(--color-primary);margin-bottom:12px;font-size:32px;font-weight:700}.login-header h1[data-v-e5505869]{margin-bottom:4px;font-size:20px;font-weight:600}.login-header p[data-v-e5505869]{color:var(--text-muted);font-size:13px}.form-group[data-v-e5505869]{margin-bottom:16px}.form-group input[data-v-e5505869]{width:100%;padding:12px}.btn-login[data-v-e5505869]{width:100%;padding:12px;font-size:14px}.error[data-v-e5505869]{color:var(--color-danger);text-align:center;margin-top:12px;font-size:13px}.page[data-v-8ae3a6c8]{padding:24px}.page-header[data-v-8ae3a6c8]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-8ae3a6c8]{align-items:center;gap:16px;display:flex}.btn-back[data-v-8ae3a6c8]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.btn-back[data-v-8ae3a6c8]:hover{background:var(--bg-hover)}.page-header h3[data-v-8ae3a6c8]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-8ae3a6c8]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.btn-add[data-v-8ae3a6c8]:hover{background:var(--color-primary)}.btn-add span[data-v-8ae3a6c8]{font-size:18px;font-weight:600}.table-card[data-v-8ae3a6c8]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-8ae3a6c8]{width:100%}.thead[data-v-8ae3a6c8]{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-8ae3a6c8]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-8ae3a6c8]:first-child,.thead span[data-v-8ae3a6c8]:nth-child(2){text-align:left}.sortable[data-v-8ae3a6c8]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-8ae3a6c8]:hover{color:var(--text-primary)}.sort-icon[data-v-8ae3a6c8]{margin-left:4px}.tr[data-v-8ae3a6c8]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;transition:background .15s;display:flex}.tr[data-v-8ae3a6c8]:hover{background:var(--bg-hover)}.tr[data-v-8ae3a6c8]:last-child{border-bottom:none}.tr span[data-v-8ae3a6c8]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-8ae3a6c8]:first-child,.tr span[data-v-8ae3a6c8]:nth-child(2){text-align:left}.tr span[data-v-8ae3a6c8]:nth-child(4){color:var(--text-secondary);font-size:13px}.tr .code[data-v-8ae3a6c8]{color:var(--text-secondary);background:#f3f4f6;border-radius:4px;padding:2px 8px;font-family:monospace}.tr .name[data-v-8ae3a6c8]{font-weight:500}.status-badge[data-v-8ae3a6c8]{border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-8ae3a6c8]{color:#065f46;background:#d1fae5}.status-badge.inactive[data-v-8ae3a6c8]{color:#991b1b;background:#fee2e2}.actions[data-v-8ae3a6c8]{justify-content:center;gap:6px;display:flex}.btn-link[data-v-8ae3a6c8]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500;transition:all .15s}.btn-link[data-v-8ae3a6c8]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-8ae3a6c8]{color:var(--danger)}.btn-link.danger[data-v-8ae3a6c8]:hover{background:#fef2f2}.empty[data-v-8ae3a6c8]{text-align:center;color:var(--text-muted);padding:60px 40px;font-size:14px}.modal[data-v-8ae3a6c8]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-8ae3a6c8]{width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-8ae3a6c8;overflow-y:auto}.modal-header[data-v-8ae3a6c8]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-8ae3a6c8]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-8ae3a6c8]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-8ae3a6c8]:hover{color:var(--text-primary)}.modal-body[data-v-8ae3a6c8]{padding:24px}.form-group[data-v-8ae3a6c8]{margin-bottom:18px}.form-group[data-v-8ae3a6c8]:last-child{margin-bottom:0}.form-group label[data-v-8ae3a6c8]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-8ae3a6c8]{color:var(--danger)}.form-row[data-v-8ae3a6c8]{gap:16px;display:flex}.form-row .form-group[data-v-8ae3a6c8]{flex:1}.form-group input[data-v-8ae3a6c8],.form-group select[data-v-8ae3a6c8]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-8ae3a6c8]:focus,.form-group select[data-v-8ae3a6c8]:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--border-color)}.form-group select[data-v-8ae3a6c8],.form-group select option[data-v-8ae3a6c8]{color:var(--text-primary);background-color:#fff}.detail-row[data-v-8ae3a6c8]{border-bottom:1px solid var(--border-color);padding:14px 0;display:flex}.detail-row[data-v-8ae3a6c8]:last-child{border-bottom:none}.detail-row label[data-v-8ae3a6c8]{width:100px;color:var(--text-secondary);flex-shrink:0;font-size:14px}.detail-row span[data-v-8ae3a6c8]{color:var(--text-primary);flex:1;font-size:14px}.detail-row .hint[data-v-8ae3a6c8]{color:var(--text-muted);font-size:12px}.modal-btns[data-v-8ae3a6c8]{background:var(--bg-hover);border-top:1px solid var(--border-color);border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-8ae3a6c8]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-8ae3a6c8]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-8ae3a6c8]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-8ae3a6c8]:hover{background:var(--color-primary)}@keyframes slideUp-8ae3a6c8{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.role-checkboxes[data-v-8ae3a6c8]{flex-wrap:wrap;gap:8px;padding:4px 0;display:flex}.role-checkbox-item[data-v-8ae3a6c8]{background:var(--bg-hover);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;transition:all .15s;display:flex}.role-checkbox-item[data-v-8ae3a6c8]:hover{border-color:var(--color-primary)}.role-checkbox-item input[type=checkbox][data-v-8ae3a6c8]{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.page[data-v-4b687642]{padding:20px}.page-header[data-v-4b687642]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-4b687642]{align-items:center;gap:16px;display:flex}.btn-back[data-v-4b687642]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .3s}.btn-back[data-v-4b687642]:hover{background:#f5f5f5;border-color:#ccc}.page-header h3[data-v-4b687642]{color:#333;margin:0;font-size:20px;font-weight:600}.btn-add[data-v-4b687642]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#34c759,#30b350);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;transition:all .3s;display:flex;box-shadow:0 4px 12px #34c7594d}.btn-add[data-v-4b687642]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #34c75966}.btn-add span[data-v-4b687642]{font-size:18px;font-weight:600}.table-card[data-v-4b687642]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014}.table[data-v-4b687642]{width:100%}.thead[data-v-4b687642]{background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f0f0f0;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.thead span[data-v-4b687642]{text-align:center;color:var(--text-secondary);flex:1}.sortable[data-v-4b687642]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-4b687642]:hover{color:var(--text-primary)}.sort-icon[data-v-4b687642]{margin-left:4px}.thead span[data-v-4b687642]:first-child{text-align:left;flex:.8}.thead span[data-v-4b687642]:nth-child(2){text-align:left;flex:1.2}.tr[data-v-4b687642]{border-bottom:1px solid #f5f5f5;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.tr[data-v-4b687642]:hover{background:#fafafa}.tr[data-v-4b687642]:last-child{border-bottom:none}.tr span[data-v-4b687642]{text-align:center;color:#333;flex:1;font-size:14px}.tr span[data-v-4b687642]:first-child{text-align:left;flex:.8}.tr span[data-v-4b687642]:nth-child(2){text-align:left;flex:1.2}.tr .code[data-v-4b687642]{color:#666;font-family:monospace;font-size:13px}.tr .name[data-v-4b687642]{font-weight:500}.status-badge[data-v-4b687642]{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-4b687642]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-4b687642]{color:#f5222d;background:#fff1f0}.actions[data-v-4b687642]{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.btn-link[data-v-4b687642]{color:#007aff;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;transition:all .2s}.btn-link[data-v-4b687642]:hover{background:#e6f7ff}.btn-link.manager[data-v-4b687642]{color:#ff9500}.btn-link.manager[data-v-4b687642]:hover{background:#fff7e6}.btn-link.wifi[data-v-4b687642]{color:#722ed1}.btn-link.wifi[data-v-4b687642]:hover{background:#f9f0ff}.btn-link.danger[data-v-4b687642]{color:#f5222d}.btn-link.danger[data-v-4b687642]:hover{background:#fff1f0}.empty[data-v-4b687642]{text-align:center;color:#999;padding:60px 40px;font-size:14px}.empty[data-v-4b687642]:before{content:"🏪";opacity:.5;margin-bottom:16px;font-size:48px;display:block}.modal[data-v-4b687642]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-4b687642]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-4b687642]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-4b687642]{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-4b687642]{color:#999;cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-4b687642]:hover{color:#333}.modal-body[data-v-4b687642]{padding:24px}.form-group[data-v-4b687642]{margin-bottom:20px}.form-group[data-v-4b687642]:last-child{margin-bottom:0}.form-group label[data-v-4b687642]{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-4b687642]{color:#f5222d}.form-group input[data-v-4b687642],.form-group select[data-v-4b687642]{border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 14px;font-size:14px;transition:all .3s}.form-group input[data-v-4b687642]:focus,.form-group select[data-v-4b687642]:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.detail-row[data-v-4b687642]{border-bottom:1px solid #f5f5f5;padding:12px 0;display:flex}.detail-row[data-v-4b687642]:last-child{border-bottom:none}.detail-row label[data-v-4b687642]{color:#999;flex-shrink:0;width:80px;font-size:14px}.detail-row span[data-v-4b687642]{color:#333;flex:1;font-size:14px}.modal-btns[data-v-4b687642]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-4b687642]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px;transition:all .3s}.modal-btns button[data-v-4b687642]:hover{background:#f5f5f5}.modal-btns button.primary[data-v-4b687642]{color:#fff;background:linear-gradient(135deg,#34c759,#30b350);border:none}.modal-btns button.primary[data-v-4b687642]:hover{background:linear-gradient(135deg,#30b350,#28a745)}.modal-wide[data-v-4b687642]{max-width:600px}.form-row[data-v-4b687642]{gap:12px;display:flex}.form-row .form-group[data-v-4b687642]{flex:1;margin-bottom:20px}.wifi-form[data-v-4b687642]{gap:8px;margin-bottom:16px;display:flex}.wifi-form input[data-v-4b687642]{border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.wifi-form select[data-v-4b687642]{border:1px solid #e0e0e0;border-radius:8px;padding:10px 12px;font-size:14px}.btn-add-wifi[data-v-4b687642]{color:#fff;cursor:pointer;white-space:nowrap;background:#722ed1;border:none;border-radius:8px;padding:10px 16px;font-size:14px}.btn-add-wifi[data-v-4b687642]:hover{background:#5b21b6}.wifi-list[data-v-4b687642]{max-height:300px;overflow-y:auto}.wifi-item[data-v-4b687642]{border:1px solid #f0f0f0;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.wifi-item[data-v-4b687642]:last-child{margin-bottom:0}.wifi-info[data-v-4b687642]{flex-direction:column;gap:4px;display:flex}.wifi-name[data-v-4b687642]{color:#333;font-weight:500}.wifi-bssid[data-v-4b687642]{color:#999;font-family:monospace;font-size:12px}.wifi-type[data-v-4b687642]{border-radius:4px;width:fit-content;padding:2px 8px;font-size:12px}.wifi-type.primary[data-v-4b687642]{color:#722ed1;background:#f9f0ff}.wifi-type.secondary[data-v-4b687642]{color:#666;background:#f5f5f5}.wifi-actions[data-v-4b687642]{gap:8px;display:flex}.btn-toggle[data-v-4b687642]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:4px 12px;font-size:12px}.btn-toggle.active[data-v-4b687642]{color:#fff;background:#52c41a;border-color:#52c41a}.btn-delete[data-v-4b687642]{color:#ff4d4f;cursor:pointer;background:#fff;border:1px solid #ff4d4f;border-radius:4px;padding:4px 12px;font-size:12px}.btn-delete[data-v-4b687642]:hover{color:#fff;background:#ff4d4f}.empty-wifi[data-v-4b687642]{text-align:center;color:#999;padding:24px}.page[data-v-68e4ca53]{padding:20px}.page-header[data-v-68e4ca53]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-68e4ca53]{align-items:center;gap:16px;display:flex}.btn-back[data-v-68e4ca53]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .3s}.btn-back[data-v-68e4ca53]:hover{background:#f5f5f5;border-color:#ccc}.page-header h3[data-v-68e4ca53]{color:#333;margin:0;font-size:20px;font-weight:600}.btn-add[data-v-68e4ca53]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff9500,#ff8c00);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;transition:all .3s;display:flex;box-shadow:0 4px 12px #ff95004d}.btn-add[data-v-68e4ca53]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff950066}.btn-add span[data-v-68e4ca53]{font-size:18px;font-weight:600}.table-card[data-v-68e4ca53]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014}.table[data-v-68e4ca53]{width:100%}.thead[data-v-68e4ca53]{background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f0f0f0;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.thead span[data-v-68e4ca53]{text-align:center;color:var(--text-secondary);flex:1}.sortable[data-v-68e4ca53]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-68e4ca53]:hover{color:var(--text-primary)}.sort-icon[data-v-68e4ca53]{margin-left:4px}.thead span[data-v-68e4ca53]:first-child{text-align:left;flex:.8}.thead span[data-v-68e4ca53]:nth-child(2){text-align:left;flex:1.2}.tr[data-v-68e4ca53]{border-bottom:1px solid #f5f5f5;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.tr[data-v-68e4ca53]:hover{background:#fafafa}.tr[data-v-68e4ca53]:last-child{border-bottom:none}.tr span[data-v-68e4ca53]{text-align:center;color:#333;flex:1;font-size:14px}.tr span[data-v-68e4ca53]:first-child{text-align:left;flex:.8}.tr span[data-v-68e4ca53]:nth-child(2){text-align:left;flex:1.2}.tr .code[data-v-68e4ca53]{color:#666;font-family:monospace;font-size:13px}.tr .name[data-v-68e4ca53]{font-weight:500}.status-badge[data-v-68e4ca53]{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-68e4ca53]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-68e4ca53]{color:#f5222d;background:#fff1f0}.actions[data-v-68e4ca53]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-68e4ca53]{color:#007aff;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;transition:all .2s}.btn-link[data-v-68e4ca53]:hover{background:#e6f7ff}.btn-link.danger[data-v-68e4ca53]{color:#f5222d}.btn-link.danger[data-v-68e4ca53]:hover{background:#fff1f0}.empty[data-v-68e4ca53]{text-align:center;color:#999;padding:60px 40px;font-size:14px}.empty[data-v-68e4ca53]:before{content:"🏢";opacity:.5;margin-bottom:16px;font-size:48px;display:block}.modal[data-v-68e4ca53]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-68e4ca53]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-68e4ca53]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-68e4ca53]{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-68e4ca53]{color:#999;cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-68e4ca53]:hover{color:#333}.modal-body[data-v-68e4ca53]{padding:24px}.form-group[data-v-68e4ca53]{margin-bottom:20px}.form-group[data-v-68e4ca53]:last-child{margin-bottom:0}.form-group label[data-v-68e4ca53]{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-68e4ca53]{color:#f5222d}.form-group input[data-v-68e4ca53],.form-group select[data-v-68e4ca53]{border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 14px;font-size:14px;transition:all .3s}.form-group input[data-v-68e4ca53]:focus,.form-group select[data-v-68e4ca53]:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.detail-row[data-v-68e4ca53]{border-bottom:1px solid #f5f5f5;padding:12px 0;display:flex}.detail-row[data-v-68e4ca53]:last-child{border-bottom:none}.detail-row label[data-v-68e4ca53]{color:#999;flex-shrink:0;width:80px;font-size:14px}.detail-row span[data-v-68e4ca53]{color:#333;flex:1;font-size:14px}.modal-btns[data-v-68e4ca53]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-68e4ca53]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px;transition:all .3s}.modal-btns button[data-v-68e4ca53]:hover{background:#f5f5f5}.modal-btns button.primary[data-v-68e4ca53]{color:#fff;background:linear-gradient(135deg,#ff9500,#ff8c00);border:none}.modal-btns button.primary[data-v-68e4ca53]:hover{background:linear-gradient(135deg,#ff8c00,#e67e00)}.page[data-v-84289d77]{padding:20px}.page-header[data-v-84289d77]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-84289d77]{align-items:center;gap:16px;display:flex}.btn-back[data-v-84289d77]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .3s}.btn-back[data-v-84289d77]:hover{background:#f5f5f5;border-color:#ccc}.page-header h3[data-v-84289d77]{color:#333;margin:0;font-size:20px;font-weight:600}.btn-add[data-v-84289d77]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#af52de,#9b59b6);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;transition:all .3s;display:flex;box-shadow:0 4px 12px #af52de4d}.btn-add[data-v-84289d77]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #af52de66}.btn-add span[data-v-84289d77]{font-size:18px;font-weight:600}.table-card[data-v-84289d77]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014}.table[data-v-84289d77]{width:100%}.thead[data-v-84289d77]{background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f0f0f0;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.thead span[data-v-84289d77]{text-align:center;color:#666;flex:1}.sortable[data-v-84289d77]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-84289d77]:hover{color:#333}.sort-icon[data-v-84289d77]{margin-left:4px}.thead span[data-v-84289d77]:first-child{text-align:left;flex:.8}.thead span[data-v-84289d77]:nth-child(2){text-align:left;flex:1.2}.tr[data-v-84289d77]{border-bottom:1px solid #f5f5f5;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.tr[data-v-84289d77]:hover{background:#fafafa}.tr[data-v-84289d77]:last-child{border-bottom:none}.tr span[data-v-84289d77]{text-align:center;color:#333;flex:1;font-size:14px}.tr span[data-v-84289d77]:first-child{text-align:left;flex:.8}.tr span[data-v-84289d77]:nth-child(2){text-align:left;flex:1.2}.tr .code[data-v-84289d77]{color:#666;font-family:monospace;font-size:13px}.tr .name[data-v-84289d77]{font-weight:500}.status-badge[data-v-84289d77]{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-84289d77]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-84289d77]{color:#f5222d;background:#fff1f0}.actions[data-v-84289d77]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-84289d77]{color:#007aff;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;transition:all .2s}.btn-link[data-v-84289d77]:hover{background:#e6f7ff}.btn-link.danger[data-v-84289d77]{color:#f5222d}.btn-link.danger[data-v-84289d77]:hover{background:#fff1f0}.empty[data-v-84289d77]{text-align:center;color:#999;padding:60px 40px;font-size:14px}.empty[data-v-84289d77]:before{content:"💼";opacity:.5;margin-bottom:16px;font-size:48px;display:block}.modal[data-v-84289d77]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-84289d77]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-84289d77]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-84289d77]{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-84289d77]{color:#999;cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-84289d77]:hover{color:#333}.modal-body[data-v-84289d77]{padding:24px}.form-group[data-v-84289d77]{margin-bottom:20px}.form-group[data-v-84289d77]:last-child{margin-bottom:0}.form-group label[data-v-84289d77]{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-84289d77]{color:#f5222d}.form-group input[data-v-84289d77],.form-group select[data-v-84289d77]{border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 14px;font-size:14px;transition:all .3s}.form-group input[data-v-84289d77]:focus,.form-group select[data-v-84289d77]:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.detail-row[data-v-84289d77]{border-bottom:1px solid #f5f5f5;padding:12px 0;display:flex}.detail-row[data-v-84289d77]:last-child{border-bottom:none}.detail-row label[data-v-84289d77]{color:#999;flex-shrink:0;width:80px;font-size:14px}.detail-row span[data-v-84289d77]{color:#333;flex:1;font-size:14px}.modal-btns[data-v-84289d77]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-84289d77]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px;transition:all .3s}.modal-btns button[data-v-84289d77]:hover{background:#f5f5f5}.modal-btns button.primary[data-v-84289d77]{color:#fff;background:linear-gradient(135deg,#af52de,#9b59b6);border:none}.modal-btns button.primary[data-v-84289d77]:hover{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.page[data-v-bd3ed784]{padding:24px}.page-header[data-v-bd3ed784]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-bd3ed784]{align-items:center;gap:16px;display:flex}.btn-back[data-v-bd3ed784]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-bd3ed784]:hover{background:var(--bg-hover);color:var(--text-primary)}.page-header h3[data-v-bd3ed784]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-bd3ed784]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;display:flex}.table-card[data-v-bd3ed784]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-bd3ed784]{width:100%}.thead[data-v-bd3ed784]{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-bd3ed784]{text-align:center;color:var(--text-secondary);flex:1}.sortable[data-v-bd3ed784]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-bd3ed784]:hover{color:var(--text-primary)}.sort-icon[data-v-bd3ed784]{margin-left:4px}.thead span[data-v-bd3ed784]:first-child{text-align:left;flex:.8}.tr[data-v-bd3ed784]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;transition:background .15s;display:flex}.tr[data-v-bd3ed784]:hover{background:var(--bg-hover)}.tr span[data-v-bd3ed784]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-bd3ed784]:first-child{text-align:left;flex:.8}.code[data-v-bd3ed784]{color:var(--text-secondary);background:#f3f4f6;border-radius:4px;padding:2px 8px;font-family:monospace}.name[data-v-bd3ed784]{font-weight:500}.status-badge[data-v-bd3ed784]{border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-bd3ed784]{color:#065f46;background:#d1fae5}.status-badge.inactive[data-v-bd3ed784]{color:#991b1b;background:#fee2e2}.actions[data-v-bd3ed784]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-bd3ed784]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:13px;font-weight:500}.btn-link[data-v-bd3ed784]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-bd3ed784]{color:var(--danger)}.btn-link.danger[data-v-bd3ed784]:hover{background:#fef2f2}.empty[data-v-bd3ed784]{text-align:center;color:var(--text-muted);padding:60px}.modal[data-v-bd3ed784]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-bd3ed784]{width:90%;max-width:680px;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-bd3ed784}.modal-header[data-v-bd3ed784]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-bd3ed784]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-bd3ed784]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-bd3ed784]:hover{color:var(--text-primary)}.modal-body[data-v-bd3ed784]{max-height:60vh;padding:24px;overflow-y:auto}.form-group[data-v-bd3ed784]{margin-bottom:20px}.form-group[data-v-bd3ed784]:last-child{margin-bottom:0}.form-group label[data-v-bd3ed784]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-bd3ed784]{color:var(--danger)}.form-group input[data-v-bd3ed784],.form-group select[data-v-bd3ed784]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-bd3ed784]:focus,.form-group select[data-v-bd3ed784]:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--border-color)}.detail-row[data-v-bd3ed784]{border-bottom:1px solid var(--border-color);padding:14px 0;display:flex}.detail-row label[data-v-bd3ed784]{width:80px;color:var(--text-secondary);font-size:14px}.detail-row span[data-v-bd3ed784]{color:var(--text-primary);flex:1;font-size:14px}.modal-btns[data-v-bd3ed784]{background:var(--bg-hover);border-top:1px solid var(--border-color);border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-bd3ed784]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-bd3ed784]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-bd3ed784]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-bd3ed784]:hover{background:var(--color-primary)}.menu-tree[data-v-bd3ed784]{padding:4px 0}.tree-node[data-v-bd3ed784]{padding:6px 0}.node-label[data-v-bd3ed784]{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;transition:background .15s;display:flex}.node-label[data-v-bd3ed784]:hover{background:var(--bg-hover)}.node-name[data-v-bd3ed784]{color:var(--text-primary);font-size:14px;font-weight:500}.node-perm[data-v-bd3ed784]{color:var(--text-secondary);font-size:12px}.level2[data-v-bd3ed784]{padding-left:20px}.level2 .node-name[data-v-bd3ed784]{color:var(--text-primary);font-weight:400}.level3[data-v-bd3ed784]{padding-left:40px}.btn-label[data-v-bd3ed784]{border:1px solid var(--border-color);background:#fafafa;border-radius:6px;margin:2px 0;padding:6px 10px}.btn-label[data-v-bd3ed784]:hover{border-color:var(--color-primary);background:var(--bg-hover)}.btn-label .btn-name[data-v-bd3ed784]{color:var(--text-secondary);font-size:13px}@keyframes slideUp-bd3ed784{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.node-row[data-v-8b37c587]{border-bottom:1px solid var(--border-color);align-items:center;padding:12px 20px;transition:background .15s;display:flex}.node-row[data-v-8b37c587]:hover{background:var(--bg-hover)}.col-name[data-v-8b37c587]{color:var(--text-primary);flex:1;align-items:center;gap:8px;font-size:14px;display:flex}.expand-icon[data-v-8b37c587]{cursor:pointer;color:var(--text-secondary);width:16px;font-size:10px}.expand-placeholder[data-v-8b37c587]{width:16px}.col-type[data-v-8b37c587]{text-align:center;width:80px;color:var(--text-secondary);font-size:13px}.col-path[data-v-8b37c587]{color:var(--text-secondary);flex:1;font-family:monospace;font-size:13px}.col-status[data-v-8b37c587]{text-align:center;width:80px}.col-actions[data-v-8b37c587]{justify-content:center;gap:8px;width:150px;display:flex}.status-badge[data-v-8b37c587]{border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-8b37c587]{color:#065f46;background:#d1fae5}.status-badge.inactive[data-v-8b37c587]{color:#991b1b;background:#fee2e2}.btn-link[data-v-8b37c587]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:13px;font-weight:500}.btn-link[data-v-8b37c587]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-8b37c587]{color:var(--danger)}.btn-link.danger[data-v-8b37c587]:hover{background:#fef2f2}.tree-select-wrapper[data-v-1f47ea09]{position:relative}.tree-select-input[data-v-1f47ea09]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;display:flex}.tree-select-input[data-v-1f47ea09]:hover{border-color:var(--color-primary)}.arrow[data-v-1f47ea09]{color:var(--text-secondary);font-size:10px}.tree-select-dropdown[data-v-1f47ea09]{border:1px solid var(--border-color);z-index:10;max-height:300px;box-shadow:var(--shadow-lg);background:#fff;border-radius:8px;width:100%;min-width:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.tree-select-option[data-v-1f47ea09]{cursor:pointer;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.tree-select-option[data-v-1f47ea09]:hover{background:var(--bg-hover)}.top-option[data-v-1f47ea09]{border-bottom:1px solid var(--border-color);font-weight:500}.expand-icon[data-v-1f47ea09]{color:var(--text-secondary);cursor:pointer;width:16px;font-size:10px}.expand-placeholder[data-v-1f47ea09]{width:16px}.option-name.selected[data-v-1f47ea09]{color:var(--color-primary);font-weight:500}.page[data-v-7831cabb]{padding:24px}.page-header[data-v-7831cabb]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-7831cabb]{align-items:center;gap:16px;display:flex}.btn-back[data-v-7831cabb]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-7831cabb]:hover{background:var(--bg-hover)}.page-header h3[data-v-7831cabb]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-7831cabb]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;display:flex}.btn-add[data-v-7831cabb]:hover{background:var(--color-primary)}.btn-add span[data-v-7831cabb]{font-size:18px;font-weight:600}.tree-card[data-v-7831cabb]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.tree-header[data-v-7831cabb]{text-transform:uppercase;letter-spacing:.5px;background:#f9fafb;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.tree-header span[data-v-7831cabb]{color:var(--text-secondary)}.col-name[data-v-7831cabb]{flex:1}.col-type[data-v-7831cabb]{text-align:center;width:80px}.col-path[data-v-7831cabb]{flex:1}.col-status[data-v-7831cabb]{text-align:center;width:80px}.col-actions[data-v-7831cabb]{text-align:center;width:150px}.tree-body[data-v-7831cabb]{padding:8px 0}.empty[data-v-7831cabb]{text-align:center;color:var(--text-muted);padding:60px}.modal[data-v-7831cabb]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-7831cabb]{width:90%;max-width:520px;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-7831cabb}.modal-header[data-v-7831cabb]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-7831cabb]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-7831cabb]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-7831cabb]:hover{color:var(--text-primary)}.modal-body[data-v-7831cabb]{padding:24px}.form-group[data-v-7831cabb]{margin-bottom:18px}.form-group[data-v-7831cabb]:last-child{margin-bottom:0}.form-group label[data-v-7831cabb]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-7831cabb]{color:var(--danger)}.form-group input[data-v-7831cabb],.form-group select[data-v-7831cabb]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-7831cabb]:focus,.form-group select[data-v-7831cabb]:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--border-color)}.tree-select[data-v-7831cabb]{border:1px solid var(--border-color);border-radius:8px;max-height:200px;overflow-y:auto}.detail-row[data-v-7831cabb]{border-bottom:1px solid var(--border-color);padding:14px 0;display:flex}.detail-row label[data-v-7831cabb]{width:80px;color:var(--text-secondary);font-size:14px}.detail-row span[data-v-7831cabb]{color:var(--text-primary);flex:1;font-size:14px}.status-badge[data-v-7831cabb]{border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-7831cabb]{color:#065f46;background:#d1fae5}.status-badge.inactive[data-v-7831cabb]{color:#991b1b;background:#fee2e2}.modal-btns[data-v-7831cabb]{border-top:1px solid var(--border-color);background:#f9fafb;border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-7831cabb]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-7831cabb]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-7831cabb]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-7831cabb]:hover{background:var(--color-primary)}@keyframes slideUp-7831cabb{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ai-modal[data-v-07010cc6]{max-width:600px}.step1-body[data-v-07010cc6]{flex-direction:column;align-items:center;display:flex}.step-tip[data-v-07010cc6]{color:var(--text-secondary);align-self:flex-start;margin-bottom:16px;font-size:14px}.scope-options[data-v-07010cc6]{gap:16px;width:100%;display:flex}.scope-card[data-v-07010cc6]{border:2px solid var(--border-color);text-align:center;cursor:pointer;border-radius:12px;flex:1;padding:20px;transition:all .2s}.scope-card[data-v-07010cc6]:hover{border-color:var(--color-primary)}.scope-card.selected[data-v-07010cc6]{border-color:var(--color-primary);background:var(--bg-hover)}.scope-icon[data-v-07010cc6]{margin-bottom:8px;font-size:32px}.scope-label[data-v-07010cc6]{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:600}.scope-desc[data-v-07010cc6]{color:var(--text-secondary);font-size:12px}.prompt-preview[data-v-07010cc6]{border:1px solid var(--border-color);resize:none;box-sizing:border-box;width:100%;height:320px;color:var(--text-primary);background:#fafafa;border-radius:8px;padding:12px;font-family:monospace;font-size:12px}.loading[data-v-07010cc6]{text-align:center;color:var(--text-secondary);padding:32px}.error-text[data-v-07010cc6]{color:#f5222d;margin-top:8px;font-size:13px}.error-box[data-v-07010cc6]{background:#fff1f0;border:1px solid #ffa39e;border-radius:8px;padding:16px}.error-title[data-v-07010cc6]{color:#f5222d;margin-bottom:8px;font-weight:600}.error-hint[data-v-07010cc6]{color:#8c4900;margin-top:8px;font-size:12px}.empty-prompt[data-v-07010cc6]{text-align:center;color:#999;background:#fafafa;border:1px dashed #ddd;border-radius:8px;padding:32px;font-size:14px}.conflict-alert[data-v-07010cc6]{color:#fa8c16;margin-bottom:12px;font-weight:600}.conflict-list[data-v-07010cc6]{background:#fff7e6;border-radius:8px;max-height:200px;padding:12px;overflow-y:auto}.conflict-item[data-v-07010cc6]{color:#8c4900;border-bottom:1px solid #ffe58f;padding:6px 0;font-size:13px}.conflict-item[data-v-07010cc6]:last-child{border-bottom:none}.success-msg[data-v-07010cc6]{text-align:center;color:#52c41a;padding:24px;font-size:15px;font-weight:600}.empty-result[data-v-07010cc6]{text-align:center;color:#666;background:#fafafa;border:1px dashed #ddd;border-radius:8px;padding:24px;font-size:14px}.debug-info[data-v-07010cc6]{color:#999;margin-top:8px;font-size:11px}.preview-section[data-v-07010cc6]{padding:0}.preview-title[data-v-07010cc6]{margin-bottom:12px;font-size:15px;font-weight:600}.ai-table-wrapper[data-v-07010cc6]{width:100%;margin-bottom:16px;overflow-x:auto}.ai-table[data-v-07010cc6]{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.ai-table th[data-v-07010cc6],.ai-table td[data-v-07010cc6]{text-align:center;border:1px solid var(--border-color);text-overflow:ellipsis;white-space:nowrap;padding:8px 4px;overflow:hidden}.ai-table th[data-v-07010cc6]{background:var(--bg-hover);color:var(--text-secondary);font-size:11px;font-weight:600}.col-name[data-v-07010cc6]{width:var(--name-width,80px);min-width:var(--name-width,80px);color:var(--text-primary);background:#fafafa;font-weight:500;text-align:left!important;padding-left:8px!important}.ai-table th.col-name[data-v-07010cc6]{background:var(--bg-hover)}.ai-table td[data-v-07010cc6]:not(.col-name){width:var(--date-width);color:var(--color-primary);font-weight:500}.cell-rest[data-v-07010cc6]{font-weight:400;color:#ccc!important}.preview-btns[data-v-07010cc6]{justify-content:center;gap:12px;margin-top:4px;margin-bottom:12px;display:flex}.btn-cancel[data-v-07010cc6]{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:10px 28px;font-size:14px}.btn-confirm[data-v-07010cc6]{color:#fff;cursor:pointer;background:#52c41a;border:none;border-radius:6px;padding:10px 28px;font-size:14px}.raw-section[data-v-07010cc6]{margin-top:8px}.raw-title[data-v-07010cc6]{color:#666;margin-bottom:8px;font-size:13px;font-weight:600}.raw-textarea[data-v-07010cc6]{resize:none;box-sizing:border-box;background:#f5f5f5;border:1px solid #d9d9d9;border-radius:6px;width:100%;height:120px;padding:8px;font-family:monospace;font-size:11px}.rules-modal[data-v-39381d58]{max-width:600px}.rules-toolbar[data-v-39381d58]{margin-bottom:12px}.btn-add-rule[data-v-39381d58]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.rules-empty[data-v-39381d58]{text-align:center;color:#999;padding:32px 0;font-size:14px}.rules-list[data-v-39381d58]{flex-direction:column;gap:8px;display:flex}.rule-item[data-v-39381d58]{border:1px solid var(--border-color);background:#fff;border-radius:8px;align-items:flex-start;gap:8px;padding:10px;display:flex}.rule-drag[data-v-39381d58]{flex-direction:column;gap:2px;display:flex}.btn-move[data-v-39381d58]{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;padding:2px 6px;font-size:11px;line-height:1}.btn-move[data-v-39381d58]:disabled{opacity:.3;cursor:not-allowed}.rule-content-wrap[data-v-39381d58]{flex:1;min-width:0}.rule-content[data-v-39381d58]{color:var(--text-primary);font-size:13px;line-height:1.5}.rule-remark[data-v-39381d58]{color:var(--text-secondary);margin-top:4px;font-size:12px}.rule-actions[data-v-39381d58]{align-items:center;gap:8px;display:flex}.btn-edit[data-v-39381d58],.btn-delete[data-v-39381d58]{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:12px}.btn-edit[data-v-39381d58]{color:var(--color-primary)}.btn-delete[data-v-39381d58]{color:#f5222d}.btn-delete[data-v-39381d58]:hover,.btn-edit[data-v-39381d58]:hover{opacity:.7}.switch[data-v-39381d58]{cursor:pointer;width:36px;height:20px;display:inline-block;position:relative}.switch input[data-v-39381d58]{opacity:0;width:0;height:0}.slider[data-v-39381d58]{background:#ccc;border-radius:20px;transition:all .2s;position:absolute;inset:0}.slider[data-v-39381d58]:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;bottom:2px;left:2px}.switch input:checked+.slider[data-v-39381d58]{background:#52c41a}.switch input:checked+.slider[data-v-39381d58]:before{transform:translate(16px)}.edit-form[data-v-39381d58]{background:#f5f5f5;border-radius:8px;margin-bottom:12px;padding:16px}.form-item[data-v-39381d58]{margin-bottom:12px}.form-item label[data-v-39381d58]{color:var(--text-primary);margin-bottom:6px;font-size:13px;display:block}.required[data-v-39381d58]{color:#f5222d}.form-item textarea[data-v-39381d58]{border:1px solid var(--border-color);resize:vertical;box-sizing:border-box;border-radius:6px;width:100%;padding:8px;font-size:13px}.form-item textarea[data-v-39381d58]:focus{border-color:var(--color-primary);outline:none}.form-btns[data-v-39381d58]{gap:8px;display:flex}.form-btns button[data-v-39381d58]{border:1px solid var(--border-color);cursor:pointer;border-radius:6px;flex:1;padding:8px;font-size:13px}.form-btns button.primary[data-v-39381d58]{background:var(--color-primary);color:#fff;border:none}.page[data-v-51756e59]{padding:20px;overflow-x:hidden}.page-header[data-v-51756e59]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:4px;display:flex;overflow-x:auto}.header-left[data-v-51756e59]{align-items:center;gap:16px;display:flex}.header-right[data-v-51756e59]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-back[data-v-51756e59]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.btn-back[data-v-51756e59]:hover{background:var(--bg-hover)}.page-header h3[data-v-51756e59]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-week[data-v-51756e59]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:6px;padding:6px 12px}.btn-today[data-v-51756e59]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 12px}.btn-exchange[data-v-51756e59]{color:#fff;cursor:pointer;background:#fa8c16;border:none;border-radius:6px;margin-right:8px;padding:6px 12px}.btn-rules[data-v-51756e59]{color:#fff;cursor:pointer;background:#52c41a;border:none;border-radius:6px;margin-right:8px;padding:6px 12px}.btn-ai[data-v-51756e59]{color:#fff;cursor:pointer;background:#722ed1;border:none;border-radius:6px;margin-right:8px;padding:6px 12px}.week-range[data-v-51756e59]{color:var(--text-primary);text-align:center;min-width:120px;font-size:14px}.schedule-grid[data-v-51756e59]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.grid-header[data-v-51756e59]{background:var(--bg-hover);font-size:13px;font-weight:600;display:flex}.grid-header span[data-v-51756e59]{text-align:center;color:var(--text-secondary);border-right:1px solid var(--border-color);flex:1;padding:12px 4px}.grid-header span[data-v-51756e59]:last-child{border-right:none}.grid-header span[data-v-51756e59]:first-child{text-align:left;flex:.8;padding-left:12px}.grid-header span[data-v-51756e59]:nth-child(2),.grid-header span[data-v-51756e59]:nth-child(3),.grid-header span[data-v-51756e59]:nth-child(4){flex:.6}.grid-group-title[data-v-51756e59]{color:var(--text-primary);border-bottom:1px solid var(--border-color);background:#f9fafb;padding:8px 12px;font-size:13px;font-weight:600}.grid-row[data-v-51756e59]{border-bottom:1px solid var(--border-color);display:flex}.grid-row span[data-v-51756e59]{text-align:center;border-right:1px solid var(--border-color);flex:1;padding:10px 4px;font-size:13px}.grid-row span[data-v-51756e59]:last-child{border-right:none}.grid-row span[data-v-51756e59]:first-child{text-align:left;flex:.8;padding-left:12px;font-weight:500}.grid-row span[data-v-51756e59]:nth-child(2),.grid-row span[data-v-51756e59]:nth-child(3),.grid-row span[data-v-51756e59]:nth-child(4){flex:.6}.grid-row .warning[data-v-51756e59]{color:#f5222d;font-weight:600}.grid-cell[data-v-51756e59]{cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:4px;transition:all .2s;display:flex}.grid-cell[data-v-51756e59]:hover{background:var(--bg-hover)}.grid-cell.unavailable[data-v-51756e59]{color:#ccc;cursor:not-allowed}.cell-shift[data-v-51756e59]{font-size:13px;font-weight:500}.cell-info[data-v-51756e59]{opacity:.85;font-size:11px}.grid-footer[data-v-51756e59]{background:#f9fafb;font-size:13px;font-weight:600;display:flex}.grid-footer span[data-v-51756e59]{text-align:center;border-right:1px solid var(--border-color);flex:1;padding:12px 4px}.grid-footer span[data-v-51756e59]:nth-child(2),.grid-footer span[data-v-51756e59]:nth-child(3),.grid-footer span[data-v-51756e59]:nth-child(4){flex:.6}.grid-footer span[data-v-51756e59]:last-child{border-right:none}.grid-footer span[data-v-51756e59]:first-child{text-align:left;flex:.8;padding-left:12px}.day-total[data-v-51756e59]{color:var(--color-primary)}.modal[data-v-51756e59]{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content[data-v-51756e59]{background:#fff;border-radius:16px;width:90%;max-width:400px;max-height:90vh;margin:auto;overflow-y:auto}.shift-modal[data-v-51756e59]{max-height:85vh}.modal-header[data-v-51756e59]{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h4[data-v-51756e59]{margin:0;font-size:16px}.modal-close[data-v-51756e59]{cursor:pointer;background:0 0;border:none;font-size:20px}.modal-body[data-v-51756e59]{padding:20px;overflow-y:auto}.shift-list[data-v-51756e59]{flex-direction:column;gap:8px;display:flex}.shift-item[data-v-51756e59]{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;justify-content:space-between;padding:12px;display:flex}.shift-item[data-v-51756e59]:hover{border-color:var(--color-primary)}.shift-item.selected[data-v-51756e59]{border-color:var(--color-primary);background:var(--bg-hover)}.shift-name[data-v-51756e59]{font-weight:500}.shift-hours[data-v-51756e59]{color:var(--text-secondary);font-size:13px}.shift-tag[data-v-51756e59]{color:#fa8c16;background:#ffe7ba;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:11px}.time-row[data-v-51756e59]{align-items:center;gap:8px;display:flex}.time-row input[data-v-51756e59]{border:1px solid var(--border-color);border-radius:6px;flex:1;padding:8px}.modal-btns[data-v-51756e59]{border-top:1px solid var(--border-color);flex-shrink:0;gap:12px;padding:16px 20px;display:flex}.modal-btns button[data-v-51756e59]{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;flex:1;padding:10px}.modal-btns button.primary[data-v-51756e59]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.exchange-btn[data-v-51756e59]{color:#fff;background:#fa8c16;border:none}.modal-btns button[data-v-51756e59]:disabled{opacity:.5;cursor:not-allowed}.exchange-modal[data-v-51756e59]{max-width:450px;max-height:90vh;overflow-y:auto}.exchange-info[data-v-51756e59]{background:#f5f5f5;border-radius:8px;margin-bottom:16px;padding:12px}.info-item[data-v-51756e59]{justify-content:space-between;display:flex}.info-item .label[data-v-51756e59]{color:var(--text-secondary)}.form-item[data-v-51756e59]{margin-bottom:16px}.form-item label[data-v-51756e59]{color:var(--text-primary);margin-bottom:8px;font-size:14px;display:block}.form-item select[data-v-51756e59]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px;font-size:14px}.form-item select[data-v-51756e59]:focus{border-color:var(--color-primary);outline:none}.status-normal[data-v-51756e59]{background:#e6f7ed!important;border-left:3px solid #52c41a!important}.status-late[data-v-51756e59],.status-early[data-v-51756e59],.status-absent[data-v-51756e59]{background:#fff1f0!important;border-left:3px solid #f5222d!important}.status-pending[data-v-51756e59]{background:#f5f5f5!important;border-left:3px solid #999!important}.status-rest[data-v-51756e59]{color:#999!important;background:#fafafa!important}.status-leave[data-v-51756e59]{font-weight:600;color:#fa8c16!important;background:#fffbe6!important}.grid-cell[data-v-51756e59]{position:relative}.exchange-section[data-v-51756e59]{border-bottom:1px solid #eee;margin-bottom:20px;padding-bottom:16px}.exchange-section[data-v-51756e59]:last-of-type{border-bottom:none}.section-title[data-v-51756e59]{color:var(--color-primary);margin-bottom:12px;font-weight:600}.info-item[data-v-51756e59]{margin-top:8px}.info-item .label[data-v-51756e59]{color:var(--text-secondary);margin-right:8px}.info-item .value[data-v-51756e59]{font-weight:500}.error-text[data-v-51756e59]{color:#f5222d;margin-top:4px;font-size:12px}.validation-result[data-v-51756e59]{text-align:center;border-radius:8px;margin-top:16px;padding:12px;font-weight:500}.validation-result .success[data-v-51756e59]{color:#52c41a}.validation-result .error[data-v-51756e59]{color:#f5222d}@media (width<=768px){.page[data-v-51756e59]{padding:12px}.page-header[data-v-51756e59]{padding-bottom:8px}.page-header h3[data-v-51756e59]{font-size:16px}.btn-back[data-v-51756e59],.btn-exchange[data-v-51756e59],.btn-rules[data-v-51756e59],.btn-ai[data-v-51756e59],.btn-week[data-v-51756e59],.btn-today[data-v-51756e59]{padding:5px 8px;font-size:12px}.week-range[data-v-51756e59]{min-width:90px;font-size:12px}.schedule-grid[data-v-51756e59]{-webkit-overflow-scrolling:touch;overflow-x:auto}.grid-header[data-v-51756e59],.grid-row[data-v-51756e59],.grid-footer[data-v-51756e59]{min-width:700px}.grid-header span[data-v-51756e59],.grid-row span[data-v-51756e59],.grid-footer span[data-v-51756e59]{padding:8px 2px;font-size:11px}.grid-cell[data-v-51756e59]{padding:2px}.cell-shift[data-v-51756e59]{font-size:11px}.cell-info[data-v-51756e59]{font-size:10px}}@media (width<=480px){.header-right .btn-exchange[data-v-51756e59],.header-right .btn-rules[data-v-51756e59],.header-right .btn-ai[data-v-51756e59]{display:none}}.page[data-v-4cae35e5]{padding:16px;overflow-x:hidden}.page-header[data-v-4cae35e5]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.header-left[data-v-4cae35e5]{align-items:center;gap:12px;display:flex}.btn-back[data-v-4cae35e5]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.filter-bar[data-v-4cae35e5]{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.filter-item[data-v-4cae35e5]{flex:1}.filter-item label[data-v-4cae35e5]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item select[data-v-4cae35e5]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.section-title[data-v-4cae35e5]{margin-bottom:12px;font-size:16px;font-weight:600}.stat-cards[data-v-4cae35e5]{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-card[data-v-4cae35e5]{text-align:center;background:#fff;border-radius:8px;padding:16px}.stat-label[data-v-4cae35e5]{color:#666;margin-bottom:4px;font-size:12px}.stat-value[data-v-4cae35e5]{color:#1890ff;font-size:20px;font-weight:600}.stat-value.highlight[data-v-4cae35e5]{color:#52c41a}.table-card[data-v-4cae35e5]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-4cae35e5]{width:100%}.thead[data-v-4cae35e5]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-4cae35e5]{text-align:center;flex:1}.tbody .tr[data-v-4cae35e5]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-4cae35e5]{text-align:center;flex:1}.tbody .highlight[data-v-4cae35e5]{color:#52c41a;font-weight:500}.emp-name[data-v-4cae35e5]{color:#1890ff;cursor:pointer;font-weight:500}.emp-name[data-v-4cae35e5]:hover{text-decoration:underline}.empty[data-v-4cae35e5]{text-align:center;color:#999;padding:40px}.modal[data-v-4cae35e5]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-4cae35e5]{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:85vh;overflow:auto}.modal-header[data-v-4cae35e5]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-header h4[data-v-4cae35e5]{margin:0;font-size:16px;font-weight:600}.modal-close[data-v-4cae35e5]{cursor:pointer;color:#999;background:0 0;border:none;font-size:24px}.modal-close[data-v-4cae35e5]:hover{color:#333}.modal-body[data-v-4cae35e5]{padding:16px}.modal-stats[data-v-4cae35e5]{background:#f5f5f5;border-radius:8px;gap:16px;margin-bottom:20px;padding:12px;display:flex}.stat-item[data-v-4cae35e5]{text-align:center;flex:1}.stat-item .label[data-v-4cae35e5]{color:#666;margin-bottom:4px;font-size:12px;display:block}.stat-item .value[data-v-4cae35e5]{color:#1890ff;font-size:18px;font-weight:600}.stat-item .value.highlight[data-v-4cae35e5]{color:#52c41a}.detail-section[data-v-4cae35e5]{margin-top:16px}.detail-title[data-v-4cae35e5]{color:#333;margin-bottom:12px;font-size:14px;font-weight:600}.detail-table[data-v-4cae35e5]{width:100%}.detail-thead[data-v-4cae35e5]{background:#fafafa;border-radius:4px;padding:10px;font-size:12px;font-weight:600;display:flex}.detail-thead span[data-v-4cae35e5]{text-align:center;flex:1}.detail-tbody[data-v-4cae35e5]{max-height:350px;overflow-y:auto}.detail-tr[data-v-4cae35e5]{border-bottom:1px solid #f0f0f0;padding:8px 10px;font-size:12px;display:flex}.detail-tr span[data-v-4cae35e5]{text-align:center;flex:1}.detail-empty[data-v-4cae35e5]{text-align:center;color:#999;padding:20px}.type-workday[data-v-4cae35e5]{color:#1890ff}.type-rest[data-v-4cae35e5]{color:#fa8c16}.type-holiday[data-v-4cae35e5]{color:#ff4d4f}.page[data-v-9c6fb8d6]{padding:20px;overflow-x:hidden}.page-header[data-v-9c6fb8d6]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.header-left[data-v-9c6fb8d6]{align-items:center;gap:16px;display:flex}.btn-back[data-v-9c6fb8d6]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-9c6fb8d6]:hover{background:var(--bg-hover)}.page-header h3[data-v-9c6fb8d6]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-9c6fb8d6]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;display:flex}.btn-add span[data-v-9c6fb8d6]{font-size:18px;font-weight:600}.table-card[data-v-9c6fb8d6]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-9c6fb8d6]{width:100%}.thead[data-v-9c6fb8d6]{background:var(--bg-hover);padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-9c6fb8d6]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-9c6fb8d6]:first-child{text-align:left;flex:1}.thead span[data-v-9c6fb8d6]:nth-child(2),.thead span[data-v-9c6fb8d6]:nth-child(3),.thead span[data-v-9c6fb8d6]:nth-child(5),.thead span[data-v-9c6fb8d6]:nth-child(6){flex:.7}.tr[data-v-9c6fb8d6]{border-bottom:1px solid var(--border-color);align-items:center;padding:14px 20px;display:flex}.tr[data-v-9c6fb8d6]:hover{background:var(--bg-hover)}.tr span[data-v-9c6fb8d6]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-9c6fb8d6]:first-child{text-align:left;flex:1}.tr span[data-v-9c6fb8d6]:nth-child(2),.tr span[data-v-9c6fb8d6]:nth-child(3),.tr span[data-v-9c6fb8d6]:nth-child(5),.tr span[data-v-9c6fb8d6]:nth-child(6){flex:.7}.status-badge[data-v-9c6fb8d6]{border-radius:20px;padding:2px 10px;font-size:12px;display:inline-block}.status-badge.active[data-v-9c6fb8d6]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-9c6fb8d6]{color:#f5222d;background:#fff1f0}.color-dot[data-v-9c6fb8d6]{border:1px solid var(--border-color);border-radius:50%;width:20px;height:20px;display:inline-block}.shift-type-tag[data-v-9c6fb8d6]{border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.shift-type-tag.type-1[data-v-9c6fb8d6]{color:#34c759;background:#e6f7ed}.shift-type-tag.type-2[data-v-9c6fb8d6]{color:#fa8c16;background:#ffe7ba}.actions[data-v-9c6fb8d6]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-9c6fb8d6]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px}.btn-link[data-v-9c6fb8d6]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-9c6fb8d6]{color:#f5222d}.btn-link.danger[data-v-9c6fb8d6]:hover{background:#fff1f0}.empty[data-v-9c6fb8d6]{text-align:center;color:var(--text-muted);padding:40px}.modal[data-v-9c6fb8d6]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-9c6fb8d6]{background:#fff;border-radius:16px;width:90%;max-width:400px}.modal-header[data-v-9c6fb8d6]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-9c6fb8d6]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-9c6fb8d6]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-9c6fb8d6]{padding:24px}.form-group[data-v-9c6fb8d6]{margin-bottom:20px}.form-group[data-v-9c6fb8d6]:last-child{margin-bottom:0}.form-group label[data-v-9c6fb8d6]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-9c6fb8d6]{color:#f5222d}.form-group input[data-v-9c6fb8d6],.form-group select[data-v-9c6fb8d6]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group input[data-v-9c6fb8d6]:focus,.form-group select[data-v-9c6fb8d6]:focus{border-color:var(--color-primary);outline:none}.color-picker[data-v-9c6fb8d6]{align-items:center;gap:12px;display:flex}.color-picker input[type=color][data-v-9c6fb8d6]{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;width:40px;height:40px;padding:0}.color-picker span[data-v-9c6fb8d6]{color:var(--text-secondary);font-size:14px}.modal-btns[data-v-9c6fb8d6]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-9c6fb8d6]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px}.modal-btns button[data-v-9c6fb8d6]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-9c6fb8d6]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-9c6fb8d6]:hover{opacity:.9}.page[data-v-35c96194]{padding:20px}.page-header[data-v-35c96194]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-35c96194]{align-items:center;gap:16px;display:flex}.header-right[data-v-35c96194]{align-items:center;gap:12px;display:flex}.btn-back[data-v-35c96194]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.btn-back[data-v-35c96194]:hover{background:var(--bg-hover)}.page-header h3[data-v-35c96194]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-month[data-v-35c96194]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:6px;padding:6px 12px}.month-label[data-v-35c96194]{text-align:center;min-width:120px;font-size:16px;font-weight:500}.tip[data-v-35c96194]{text-align:center;color:var(--text-muted);margin-bottom:20px;font-size:14px}.calendar[data-v-35c96194]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.calendar-header[data-v-35c96194]{background:var(--bg-hover);text-align:center;color:var(--text-secondary);grid-template-columns:repeat(7,1fr);padding:12px 0;font-size:13px;font-weight:600;display:grid}.calendar-body[data-v-35c96194]{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day[data-v-35c96194]{border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;height:60px;transition:background .2s;display:flex;position:relative}.calendar-day[data-v-35c96194]:nth-child(7n){border-right:none}.calendar-day[data-v-35c96194]:hover{background:var(--bg-hover)}.calendar-day.other-month[data-v-35c96194]{background:#f9f9f9}.calendar-day.other-month .day-number[data-v-35c96194]{color:#ccc}.calendar-day.today .day-number[data-v-35c96194]{color:var(--color-primary);font-weight:600}.calendar-day.unavailable[data-v-35c96194]{background:#fff1f0}.calendar-day.unavailable .day-number[data-v-35c96194]{color:#f5222d}.day-number[data-v-35c96194]{color:var(--text-primary);font-size:14px}.unavailable-tag[data-v-35c96194]{color:#f5222d;margin-top:2px;font-size:10px}.page[data-v-9b4a7637]{padding:20px}.page-header[data-v-9b4a7637]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-9b4a7637]{align-items:center;gap:16px;display:flex}.btn-back[data-v-9b4a7637]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-9b4a7637]:hover{background:var(--bg-hover)}.page-header h3[data-v-9b4a7637]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-9b4a7637]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;display:flex}.btn-add span[data-v-9b4a7637]{font-size:18px;font-weight:600}.filter-bar[data-v-9b4a7637]{margin-bottom:16px}.year-select[data-v-9b4a7637]{border:1px solid var(--border-color);border-radius:8px;padding:8px 16px;font-size:14px}.table-card[data-v-9b4a7637]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-9b4a7637]{width:100%}.thead[data-v-9b4a7637]{background:var(--bg-hover);padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-9b4a7637]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-9b4a7637]:first-child{text-align:left;flex:1.5}.tr[data-v-9b4a7637]{border-bottom:1px solid var(--border-color);align-items:center;padding:14px 20px;display:flex}.tr[data-v-9b4a7637]:hover{background:var(--bg-hover)}.tr span[data-v-9b4a7637]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-9b4a7637]:first-child{text-align:left;flex:1.5}.type-badge[data-v-9b4a7637]{border-radius:20px;padding:2px 10px;font-size:12px;display:inline-block}.type-badge.type-1[data-v-9b4a7637]{color:#34c759;background:#e6f7ed}.type-badge.type-2[data-v-9b4a7637]{color:#fa8c16;background:#fff7e6}.type-badge.type-3[data-v-9b4a7637]{color:#1890ff;background:#f0f5ff}.actions[data-v-9b4a7637]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-9b4a7637]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px}.btn-link[data-v-9b4a7637]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-9b4a7637]{color:#f5222d}.btn-link.danger[data-v-9b4a7637]:hover{background:#fff1f0}.empty[data-v-9b4a7637]{text-align:center;color:var(--text-muted);padding:40px}.modal[data-v-9b4a7637]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-9b4a7637]{background:#fff;border-radius:16px;width:90%;max-width:400px}.modal-header[data-v-9b4a7637]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-9b4a7637]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-9b4a7637]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-9b4a7637]{padding:24px}.form-group[data-v-9b4a7637]{margin-bottom:20px}.form-group[data-v-9b4a7637]:last-child{margin-bottom:0}.form-group label[data-v-9b4a7637]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-9b4a7637]{color:#f5222d}.form-group input[data-v-9b4a7637],.form-group select[data-v-9b4a7637]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group input[data-v-9b4a7637]:focus,.form-group select[data-v-9b4a7637]:focus{border-color:var(--color-primary);outline:none}.modal-btns[data-v-9b4a7637]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-9b4a7637]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px}.modal-btns button[data-v-9b4a7637]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-9b4a7637]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-9b4a7637]:hover{opacity:.9}.page[data-v-d1b58269]{padding:20px;overflow-x:hidden}.page-header[data-v-d1b58269]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.header-left[data-v-d1b58269]{align-items:center;gap:16px;display:flex}.btn-back[data-v-d1b58269]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-d1b58269]{margin:0;font-size:20px}.header-right input[data-v-d1b58269]{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px}.table-card[data-v-d1b58269]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-d1b58269]{width:100%}.thead[data-v-d1b58269]{background:var(--bg-hover);font-size:13px;font-weight:600;display:flex}.thead span[data-v-d1b58269]{text-align:center;flex:1;padding:12px 8px}.tbody[data-v-d1b58269]{border-bottom:1px solid var(--border-color);display:flex}.tbody span[data-v-d1b58269]{text-align:center;flex:1;padding:12px 8px;font-size:13px}.empty[data-v-d1b58269]{text-align:center;color:var(--text-secondary);padding:40px}.text-normal[data-v-d1b58269]{color:#52c41a}.text-warning[data-v-d1b58269]{color:#f5222d}.text-leave[data-v-d1b58269]{color:#fa8c16;font-weight:600}.pagination[data-v-d1b58269]{justify-content:center;align-items:center;gap:16px;margin-top:20px;display:flex}.pagination button[data-v-d1b58269]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.pagination button[data-v-d1b58269]:disabled{opacity:.5;cursor:not-allowed}.page[data-v-b9a0bca9]{padding:16px;overflow-x:hidden}.page-header[data-v-b9a0bca9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.header-left[data-v-b9a0bca9]{align-items:center;gap:12px;display:flex}.btn-back[data-v-b9a0bca9]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.filter-bar[data-v-b9a0bca9]{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.filter-item[data-v-b9a0bca9]{flex:1}.filter-item label[data-v-b9a0bca9]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item select[data-v-b9a0bca9]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.stat-cards[data-v-b9a0bca9]{grid-template-columns:repeat(8,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-card[data-v-b9a0bca9]{text-align:center;background:#fff;border-radius:8px;padding:16px}.stat-label[data-v-b9a0bca9]{color:#666;margin-bottom:4px;font-size:12px}.stat-value[data-v-b9a0bca9]{color:#1890ff;font-size:20px;font-weight:600}.stat-value.danger[data-v-b9a0bca9]{color:#ff4d4f}.stat-value.highlight[data-v-b9a0bca9]{color:#52c41a}.section-title[data-v-b9a0bca9]{margin-bottom:12px;font-size:16px;font-weight:600}.table-card[data-v-b9a0bca9]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-b9a0bca9]{width:100%}.thead[data-v-b9a0bca9]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-b9a0bca9]{text-align:center;flex:1}.tbody .tr[data-v-b9a0bca9]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-b9a0bca9]{text-align:center;flex:1}.tbody .danger[data-v-b9a0bca9]{color:#ff4d4f}.emp-name[data-v-b9a0bca9]{color:#1890ff;cursor:pointer;font-weight:500}.emp-name[data-v-b9a0bca9]:hover{text-decoration:underline}.modal[data-v-b9a0bca9]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-b9a0bca9]{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:80vh;overflow:auto}.modal-large[data-v-b9a0bca9]{max-width:900px}.modal-header[data-v-b9a0bca9]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-b9a0bca9]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-b9a0bca9]{padding:16px}.detail-table[data-v-b9a0bca9]{width:100%}.detail-thead[data-v-b9a0bca9]{background:#f5f5f5;padding:10px;font-size:12px;font-weight:600;display:flex}.detail-thead span[data-v-b9a0bca9]{text-align:center;flex:1}.detail-tbody[data-v-b9a0bca9]{max-height:400px;overflow-y:auto}.detail-tr[data-v-b9a0bca9]{border-bottom:1px solid #f0f0f0;align-items:center;padding:8px 10px;font-size:12px;display:flex}.detail-tr span[data-v-b9a0bca9]{text-align:center;flex:1}.status-normal[data-v-b9a0bca9]{color:#52c41a}.status-warning[data-v-b9a0bca9]{color:#fa8c16}.status-danger[data-v-b9a0bca9]{color:#ff4d4f}.status-rest[data-v-b9a0bca9],.status-pending[data-v-b9a0bca9]{color:#999}.type-workday[data-v-b9a0bca9]{color:#1890ff}.type-rest[data-v-b9a0bca9]{color:#fa8c16}.type-holiday[data-v-b9a0bca9]{color:#ff4d4f}.empty[data-v-b9a0bca9]{text-align:center;color:#999;padding:40px}.message-page[data-v-037e6750]{background:var(--bg-page);min-height:100%;padding:20px;overflow-x:hidden}.page-header[data-v-037e6750]{align-items:center;gap:16px;margin-bottom:20px;display:flex}.btn-back[data-v-037e6750]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-037e6750]{margin:0;font-size:20px}.tabs[data-v-037e6750]{border-bottom:1px solid var(--border-color);background:#fff;border-radius:8px 8px 0 0;gap:16px;margin-bottom:20px;display:flex}.tabs span[data-v-037e6750]{cursor:pointer;border-bottom:2px solid #0000;padding:12px 20px}.tabs span.active[data-v-037e6750]{border-bottom-color:var(--color-primary);color:var(--color-primary);font-weight:600}.message-item[data-v-037e6750]{box-shadow:var(--shadow);background:#fff;border-radius:8px;gap:12px;margin-bottom:12px;padding:16px;display:flex;position:relative}.message-item.unread[data-v-037e6750]{background:#fff7e6;border-left:3px solid #fa8c16}.message-icon[data-v-037e6750]{flex-shrink:0;align-items:center;font-size:24px;display:flex;position:relative}.unread-dot[data-v-037e6750]{background:#f5222d;border-radius:50%;width:8px;height:8px;position:absolute;top:0;right:0}.message-content[data-v-037e6750]{cursor:pointer;flex:1;min-width:0}.message-title[data-v-037e6750]{align-items:center;gap:8px;margin-bottom:4px;font-weight:600;display:flex}.tag-unread[data-v-037e6750]{color:#fff;background:#f5222d;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:400}.message-text[data-v-037e6750]{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:13px;overflow:hidden}.message-time[data-v-037e6750]{color:var(--text-muted);font-size:12px}.message-actions[data-v-037e6750]{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.message-actions button[data-v-037e6750]{cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px}.btn-confirm[data-v-037e6750]{color:#fff;background:#52c41a}.btn-reject[data-v-037e6750]{color:#f5222d;background:#fff1f0;border:1px solid #f5222d}.empty[data-v-037e6750]{text-align:center;color:var(--text-muted);padding:40px}.pagination[data-v-037e6750]{justify-content:center;gap:16px;margin-top:20px;display:flex}.pagination button[data-v-037e6750]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.pagination button[data-v-037e6750]:disabled{opacity:.5;cursor:not-allowed}.modal-mask[data-v-037e6750]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-037e6750]{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:400px;max-height:80vh;display:flex;overflow:hidden}.modal-header[data-v-037e6750]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h4[data-v-037e6750]{margin:0;font-size:16px}.btn-close[data-v-037e6750]{cursor:pointer;color:#999;background:0 0;border:none;font-size:24px}.modal-body[data-v-037e6750]{flex:1;padding:20px;overflow-y:auto}.detail-row[data-v-037e6750]{margin-bottom:12px;font-size:14px}.detail-row .label[data-v-037e6750]{color:var(--text-secondary)}.detail-content[data-v-037e6750]{font-size:14px}.detail-content .label[data-v-037e6750]{color:var(--text-secondary);margin-bottom:8px;display:block}.detail-content p[data-v-037e6750]{margin:0;line-height:1.6}.modal-footer[data-v-037e6750]{border-top:1px solid var(--border-color);text-align:right;padding:16px 20px}.btn-primary[data-v-037e6750]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 24px}.btn-confirm[data-v-037e6750]{color:#fff;cursor:pointer;background:#52c41a;border:none;border-radius:6px;margin-right:8px;padding:8px 20px}.btn-reject[data-v-037e6750]{color:#f5222d;cursor:pointer;background:#fff1f0;border:1px solid #f5222d;border-radius:6px;padding:8px 20px}.loading[data-v-037e6750]{text-align:center;color:var(--text-muted);padding:20px}.section-title[data-v-037e6750]{color:var(--color-primary);border-bottom:1px solid var(--border-color);margin:16px 0 8px;padding-bottom:8px;font-size:14px;font-weight:600}.section-title[data-v-037e6750]:first-child{margin-top:0}.page[data-v-48e77be9]{max-width:800px;padding:20px}.page-header[data-v-48e77be9]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-48e77be9]{align-items:center;gap:16px;display:flex}.btn-back[data-v-48e77be9]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-48e77be9]{margin:0;font-size:20px;font-weight:600}.config-form[data-v-48e77be9]{flex-direction:column;gap:24px;display:flex}.form-section[data-v-48e77be9]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:20px}.section-title[data-v-48e77be9]{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:8px;font-size:15px;font-weight:600}.form-item[data-v-48e77be9]{margin-bottom:16px}.form-item[data-v-48e77be9]:last-child{margin-bottom:0}.form-item label[data-v-48e77be9]{color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:block}.form-item input[data-v-48e77be9],.form-item textarea[data-v-48e77be9]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px;font-size:14px}.form-item input[data-v-48e77be9]:focus,.form-item textarea[data-v-48e77be9]:focus{border-color:var(--color-primary);outline:none}.form-item textarea[data-v-48e77be9]{resize:vertical;font-family:monospace}.form-hint[data-v-48e77be9]{color:var(--text-secondary);margin-top:4px;font-size:12px;display:block}.form-btns[data-v-48e77be9]{gap:12px;display:flex}.form-btns button[data-v-48e77be9]{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;flex:1;padding:12px;font-size:14px}.form-btns button.primary[data-v-48e77be9]{background:var(--color-primary);color:#fff;border:none}.form-btns button[data-v-48e77be9]:disabled{opacity:.6;cursor:not-allowed}.save-msg[data-v-48e77be9]{text-align:center;border-radius:6px;margin-top:-12px;padding:10px;font-size:14px}.save-msg.success[data-v-48e77be9]{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.save-msg.error[data-v-48e77be9]{color:#f5222d;background:#fff1f0;border:1px solid #ffa39e}.loading[data-v-48e77be9]{text-align:center;color:var(--text-secondary);padding:48px}.scene-bar[data-v-48e77be9]{background:var(--bg-card);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:12px 20px;display:flex}.scene-label[data-v-48e77be9]{color:var(--text-secondary);font-size:13px;font-weight:500}.scene-btn[data-v-48e77be9]{background:var(--bg-page);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 16px;font-size:13px;transition:all .15s}.scene-btn.active[data-v-48e77be9]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.page[data-v-f09ae964]{padding:20px}.page-header[data-v-f09ae964]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-f09ae964]{align-items:center;gap:16px;display:flex}.btn-back[data-v-f09ae964]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-f09ae964]{margin:0;font-size:20px;font-weight:600}.form-card[data-v-f09ae964]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:24px}.balance-hint[data-v-f09ae964]{background:#f0f9ff;border:1px solid #b3d8ff;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:14px}.hint-label[data-v-f09ae964]{color:var(--text-secondary)}.hint-value[data-v-f09ae964]{color:var(--color-primary);font-weight:600}.form-group[data-v-f09ae964]{margin-bottom:16px}.form-group label[data-v-f09ae964]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-f09ae964]{color:var(--danger)}.form-group select[data-v-f09ae964],.form-group input[data-v-f09ae964],.form-group textarea[data-v-f09ae964]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.form-group select[data-v-f09ae964]:focus,.form-group input[data-v-f09ae964]:focus,.form-group textarea[data-v-f09ae964]:focus{border-color:var(--color-primary);outline:none}.form-row[data-v-f09ae964]{gap:16px;margin-bottom:16px;display:flex}.form-row .form-group[data-v-f09ae964]{flex:1;margin-bottom:0}.days-info[data-v-f09ae964]{text-align:center;margin-bottom:16px;padding:8px}.days-count[data-v-f09ae964]{color:var(--color-primary);font-size:16px;font-weight:600}.error-text[data-v-f09ae964]{color:var(--danger);font-size:13px}.schedule-preview[data-v-f09ae964]{border:1px solid var(--border-color);background:#fafafa;border-radius:8px;margin-bottom:16px;padding:12px}.preview-label[data-v-f09ae964]{color:var(--text-secondary);margin-bottom:8px;font-size:13px}.preview-chips[data-v-f09ae964]{flex-wrap:wrap;gap:6px;display:flex}.chip[data-v-f09ae964]{color:#065f46;background:#e6f7ed;border:1px solid #b7eb8f;border-radius:4px;padding:4px 8px;font-size:12px}.missing-warning[data-v-f09ae964]{color:var(--danger);margin-top:8px;font-size:13px}.error-box[data-v-f09ae964]{color:var(--danger);background:#fff1f0;border:1px solid #ffa39e;border-radius:8px;margin-bottom:16px;padding:12px;font-size:14px}.form-actions[data-v-f09ae964]{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.btn-cancel[data-v-f09ae964]{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:8px;padding:10px 24px;font-size:14px}.btn-submit[data-v-f09ae964]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px}.btn-submit[data-v-f09ae964]:disabled{opacity:.5;cursor:not-allowed}.success-overlay[data-v-f09ae964]{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.success-box[data-v-f09ae964]{text-align:center;background:#fff;border-radius:16px;width:300px;padding:32px}.success-icon[data-v-f09ae964]{margin-bottom:12px;font-size:48px}.success-text[data-v-f09ae964]{color:var(--text-primary);margin-bottom:20px;font-size:16px;font-weight:600}.btn-ok[data-v-f09ae964]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 32px;font-size:14px}.page[data-v-8a2b3847]{padding:20px}.page-header[data-v-8a2b3847]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-8a2b3847]{align-items:center;gap:16px;display:flex}.header-right[data-v-8a2b3847]{align-items:center;gap:12px;display:flex}.btn-back[data-v-8a2b3847]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-8a2b3847]{margin:0;font-size:20px;font-weight:600}.btn-apply[data-v-8a2b3847]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.loading[data-v-8a2b3847],.empty-state[data-v-8a2b3847]{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty-icon[data-v-8a2b3847]{margin-bottom:12px;font-size:48px}.empty-text[data-v-8a2b3847]{font-size:15px}.record-list[data-v-8a2b3847]{flex-direction:column;gap:12px;display:flex}.record-card[data-v-8a2b3847]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.record-header[data-v-8a2b3847]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.leave-type[data-v-8a2b3847]{font-size:15px;font-weight:600}.status-badge[data-v-8a2b3847]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.status-pending[data-v-8a2b3847]{color:#fa8c16;background:#fff7e6}.status-approved[data-v-8a2b3847]{color:#52c41a;background:#e6f7ed}.status-rejected[data-v-8a2b3847]{color:#f5222d;background:#fff1f0}.status-cancelled[data-v-8a2b3847]{color:#999;background:#f5f5f5}.record-body[data-v-8a2b3847]{flex-direction:column;gap:6px;display:flex}.info-row[data-v-8a2b3847]{gap:12px;font-size:14px;display:flex}.info-label[data-v-8a2b3847]{color:var(--text-secondary);min-width:70px}.info-value[data-v-8a2b3847]{color:var(--text-primary)}.info-value.reason[data-v-8a2b3847]{word-break:break-all;flex:1}.info-value.danger[data-v-8a2b3847]{color:#f5222d}.record-footer[data-v-8a2b3847]{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.submit-time[data-v-8a2b3847]{color:var(--text-secondary);font-size:12px}.btn-cancel[data-v-8a2b3847]{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:4px 12px;font-size:13px}.page[data-v-03d76470]{padding:20px}.page-header[data-v-03d76470]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-03d76470]{align-items:center;gap:16px;display:flex}.btn-back[data-v-03d76470]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-03d76470]{margin:0;font-size:20px;font-weight:600}.loading[data-v-03d76470],.empty-state[data-v-03d76470]{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty-icon[data-v-03d76470]{margin-bottom:12px;font-size:48px}.empty-text[data-v-03d76470]{font-size:15px}.balance-list[data-v-03d76470]{flex-direction:column;gap:12px;display:flex}.balance-card[data-v-03d76470]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.balance-header[data-v-03d76470]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.leave-type-name[data-v-03d76470]{font-size:15px;font-weight:600}.year-badge[data-v-03d76470]{background:var(--bg-hover);color:var(--text-secondary);border-radius:12px;padding:4px 10px;font-size:12px}.balance-stats[data-v-03d76470]{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.stat-item[data-v-03d76470]{text-align:center}.stat-value[data-v-03d76470]{font-size:28px;font-weight:700}.stat-value.primary[data-v-03d76470]{color:var(--text-primary)}.stat-value.danger[data-v-03d76470]{color:var(--danger)}.stat-value.success[data-v-03d76470]{color:#52c41a}.stat-label[data-v-03d76470]{color:var(--text-secondary);margin-top:2px;font-size:12px}.stat-divider[data-v-03d76470]{color:#ccc;font-size:24px}.bar-track[data-v-03d76470]{background:var(--bg-hover);border-radius:4px;height:8px;margin-bottom:6px;overflow:hidden}.bar-used[data-v-03d76470]{background:linear-gradient(90deg,#52c41a,#73d13d);border-radius:4px;height:100%;transition:width .3s}.bar-labels[data-v-03d76470]{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.page[data-v-5a47519b]{padding:20px}.page-header[data-v-5a47519b]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-5a47519b]{align-items:center;gap:16px;display:flex}.header-right[data-v-5a47519b]{align-items:center;gap:12px;display:flex}.btn-back[data-v-5a47519b]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-5a47519b]{margin:0;font-size:20px;font-weight:600}.btn-refresh[data-v-5a47519b]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.tab-bar[data-v-5a47519b]{background:#fff;border-radius:8px;gap:0;margin-bottom:16px;padding:4px;display:flex}.tab[data-v-5a47519b]{text-align:center;color:var(--text-secondary);cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;transition:all .15s;display:flex}.tab.active[data-v-5a47519b]{background:var(--color-primary);color:#fff;font-weight:600}.tab-badge[data-v-5a47519b]{color:var(--color-primary);background:#fff;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:700}.tab.active .tab-badge[data-v-5a47519b]{color:#fff;background:#ffffff4d}.loading[data-v-5a47519b],.empty-state[data-v-5a47519b]{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty-icon[data-v-5a47519b]{margin-bottom:12px;font-size:48px}.empty-text[data-v-5a47519b]{font-size:15px}.record-list[data-v-5a47519b]{flex-direction:column;gap:12px;display:flex}.record-card[data-v-5a47519b]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.record-header[data-v-5a47519b]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.leave-type[data-v-5a47519b]{font-size:15px;font-weight:600}.status-badge[data-v-5a47519b]{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.status-pending[data-v-5a47519b]{color:#fa8c16;background:#fff7e6}.status-approved[data-v-5a47519b]{color:#065f46;background:#d1fae5}.status-rejected[data-v-5a47519b]{color:#991b1b;background:#fee2e2}.record-body[data-v-5a47519b]{flex-direction:column;gap:6px;display:flex}.info-row[data-v-5a47519b]{gap:12px;font-size:14px;display:flex}.info-label[data-v-5a47519b]{color:var(--text-secondary);min-width:70px}.info-value[data-v-5a47519b]{color:var(--text-primary)}.info-value.reason[data-v-5a47519b]{word-break:break-all;flex:1}.schedule-info[data-v-5a47519b]{margin-top:4px}.schedule-label[data-v-5a47519b]{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.schedule-chips[data-v-5a47519b]{flex-wrap:wrap;gap:6px;display:flex}.chip[data-v-5a47519b]{color:#065f46;background:#e6f7ed;border:1px solid #b7eb8f;border-radius:4px;padding:4px 8px;font-size:12px}.record-footer[data-v-5a47519b]{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.submit-time[data-v-5a47519b]{color:var(--text-secondary);font-size:12px}.action-btns[data-v-5a47519b]{gap:8px;display:flex}.btn-reject[data-v-5a47519b]{color:var(--text-primary);cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:6px 16px;font-size:13px}.btn-approve[data-v-5a47519b]{color:#fff;cursor:pointer;background:#52c41a;border:none;border-radius:6px;padding:6px 16px;font-size:13px}.modal[data-v-5a47519b]{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-5a47519b]{background:#fff;border-radius:16px;width:90%;max-width:400px}.modal-header[data-v-5a47519b]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h4[data-v-5a47519b]{margin:0;font-size:16px}.modal-close[data-v-5a47519b]{cursor:pointer;background:0 0;border:none;font-size:20px}.modal-body[data-v-5a47519b]{padding:20px}.form-group[data-v-5a47519b]{margin-bottom:12px}.form-group label[data-v-5a47519b]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group textarea[data-v-5a47519b]{border:1px solid var(--border-color);box-sizing:border-box;resize:vertical;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.form-group textarea[data-v-5a47519b]:focus{border-color:var(--color-primary);outline:none}.modal-btns[data-v-5a47519b]{border-top:1px solid var(--border-color);gap:12px;padding:16px 20px;display:flex}.modal-btns button[data-v-5a47519b]{cursor:pointer;border:1px solid #d9d9d9;border-radius:8px;flex:1;padding:10px;font-size:14px}.modal-btns button.btn-reject[data-v-5a47519b]{color:#fff;background:#f5222d;border:none}.page[data-v-4c313678]{padding:24px}.page-header[data-v-4c313678]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-4c313678]{align-items:center;gap:16px;display:flex}.btn-back[data-v-4c313678]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-4c313678]{margin:0;font-size:20px;font-weight:600}.btn-add[data-v-4c313678]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.loading[data-v-4c313678],.empty[data-v-4c313678]{text-align:center;color:var(--text-secondary);padding:60px}.table-card[data-v-4c313678]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-4c313678]{width:100%}.thead[data-v-4c313678]{background:var(--bg-hover);padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-4c313678]{text-align:center;color:var(--text-secondary);flex:1}.tr[data-v-4c313678]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;display:flex}.tr[data-v-4c313678]:hover{background:var(--bg-hover)}.tr span[data-v-4c313678]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.code[data-v-4c313678]{color:var(--text-secondary);font-family:monospace;font-size:12px}.name[data-v-4c313678]{font-weight:500}.badge[data-v-4c313678]{border-radius:4px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.badge.active[data-v-4c313678]{color:#065f46;background:#d1fae5}.badge.inactive[data-v-4c313678]{color:#991b1b;background:#fee2e2}.actions[data-v-4c313678]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-4c313678]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:13px}.btn-link.danger[data-v-4c313678]{color:var(--danger)}.modal[data-v-4c313678]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-4c313678]{background:#fff;border-radius:16px;width:90%;max-width:480px}.modal-header[data-v-4c313678]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-4c313678]{margin:0;font-size:18px}.modal-close[data-v-4c313678]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-4c313678]{padding:24px}.form-group[data-v-4c313678]{margin-bottom:16px}.form-group[data-v-4c313678]:last-child{margin-bottom:0}.form-group label[data-v-4c313678]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-4c313678]{color:var(--danger)}.form-group input[data-v-4c313678],.form-group select[data-v-4c313678]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.form-group input[data-v-4c313678]:focus,.form-group select[data-v-4c313678]:focus{border-color:var(--color-primary);outline:none}.form-group input[data-v-4c313678]:disabled{background:var(--bg-hover);color:var(--text-secondary)}.form-row[data-v-4c313678]{gap:16px;display:flex}.form-row .form-group[data-v-4c313678]{flex:1}.modal-btns[data-v-4c313678]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-4c313678]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:10px;font-size:14px}.modal-btns button.primary[data-v-4c313678]{background:var(--color-primary);color:#fff;border:none}.page[data-v-a4fff4b9]{padding:24px}.page-header[data-v-a4fff4b9]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-a4fff4b9]{align-items:center;gap:16px;display:flex}.btn-back[data-v-a4fff4b9]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-a4fff4b9]{margin:0;font-size:20px;font-weight:600}.btn-init[data-v-a4fff4b9]{color:#fff;cursor:pointer;background:#fa8c16;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.toolbar[data-v-a4fff4b9]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.filter-select[data-v-a4fff4b9],.filter-input[data-v-a4fff4b9]{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;font-size:14px}.filter-input[data-v-a4fff4b9]{width:120px}.btn-search[data-v-a4fff4b9]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.init-msg[data-v-a4fff4b9]{color:#52c41a;margin-left:12px;font-size:14px}.loading[data-v-a4fff4b9],.empty[data-v-a4fff4b9]{text-align:center;color:var(--text-secondary);padding:60px}.table-card[data-v-a4fff4b9]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-a4fff4b9]{width:100%}.thead[data-v-a4fff4b9]{background:var(--bg-hover);padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-a4fff4b9]{text-align:center;color:var(--text-secondary);flex:1}.tr[data-v-a4fff4b9]{border-bottom:1px solid var(--border-color);align-items:center;padding:14px 20px;display:flex}.tr[data-v-a4fff4b9]:hover{background:var(--bg-hover)}.tr span[data-v-a4fff4b9]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.name[data-v-a4fff4b9]{font-weight:500}.num[data-v-a4fff4b9]{color:var(--text-primary);font-weight:600}.used[data-v-a4fff4b9]{color:#fa8c16}.remaining[data-v-a4fff4b9]{color:#52c41a;font-weight:600}.actions[data-v-a4fff4b9]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-a4fff4b9]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:13px}.modal[data-v-a4fff4b9]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-a4fff4b9]{background:#fff;border-radius:16px;width:90%;max-width:400px}.modal-header[data-v-a4fff4b9]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-a4fff4b9]{margin:0;font-size:18px}.modal-close[data-v-a4fff4b9]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-a4fff4b9]{padding:24px}.info-row[data-v-a4fff4b9]{border-bottom:1px solid var(--border-color);gap:12px;padding:8px 0;display:flex}.info-row label[data-v-a4fff4b9]{color:var(--text-secondary);min-width:80px}.form-group[data-v-a4fff4b9]{margin:16px 0}.form-group label[data-v-a4fff4b9]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input[data-v-a4fff4b9]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.form-group input[data-v-a4fff4b9]:focus{border-color:var(--color-primary);outline:none}.modal-btns[data-v-a4fff4b9]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-a4fff4b9]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:10px;font-size:14px}.modal-btns button.primary[data-v-a4fff4b9]{background:var(--color-primary);color:#fff;border:none}.upload-list[data-v-b54c823f]{flex-wrap:wrap;gap:10px;display:flex}.upload-item[data-v-b54c823f]{border:1px solid var(--border-color);border-radius:8px;width:80px;height:80px;position:relative;overflow:hidden}.upload-item img[data-v-b54c823f]{object-fit:cover;width:100%;height:100%}.delete-btn[data-v-b54c823f]{color:#fff;cursor:pointer;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;display:flex;position:absolute;top:2px;right:2px}.upload-btn[data-v-b54c823f]{border:1px dashed var(--border-color);cursor:pointer;width:80px;height:80px;color:var(--text-secondary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;display:flex}.upload-btn span[data-v-b54c823f]:first-child{font-size:24px}.upload-btn span[data-v-b54c823f]:last-child{font-size:12px}.upload-btn[data-v-b54c823f]:hover{border-color:var(--color-primary);color:var(--color-primary)}.tip[data-v-b54c823f]{color:var(--text-secondary);margin-top:8px;font-size:12px}.preview-modal[data-v-b54c823f]{z-index:1000;cursor:zoom-out;background:#000000e6;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.preview-modal img[data-v-b54c823f]{object-fit:contain;max-width:100%;max-height:100%}.modal[data-v-88e6581d]{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content[data-v-88e6581d]{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header[data-v-88e6581d]{border-bottom:1px solid var(--border-color);z-index:1;background:#fff;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-header h4[data-v-88e6581d]{margin:0;font-size:18px}.modal-close[data-v-88e6581d]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-88e6581d]{padding:24px}.form-group[data-v-88e6581d]{margin-bottom:16px}.form-group[data-v-88e6581d]:last-child{margin-bottom:0}.form-group label[data-v-88e6581d]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-88e6581d]{color:var(--danger)}.form-group input[data-v-88e6581d],.form-group select[data-v-88e6581d],.form-group textarea[data-v-88e6581d]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.form-group input[data-v-88e6581d]:focus,.form-group select[data-v-88e6581d]:focus,.form-group textarea[data-v-88e6581d]:focus{border-color:var(--color-primary);outline:none}.form-group input[data-v-88e6581d]:disabled,.form-group select[data-v-88e6581d]:disabled,.form-group textarea[data-v-88e6581d]:disabled{background:var(--bg-hover);color:var(--text-secondary)}.modal-btns[data-v-88e6581d]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex;position:sticky;bottom:0}.modal-btns button[data-v-88e6581d]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:10px;font-size:14px}.modal-btns button.primary[data-v-88e6581d]{background:var(--color-primary);color:#fff;border:none}.page[data-v-87d1a3a9]{padding:24px}.page-header[data-v-87d1a3a9]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-87d1a3a9]{align-items:center;gap:16px;display:flex}.btn-back[data-v-87d1a3a9]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-87d1a3a9]{margin:0;font-size:20px;font-weight:600}.btn-add[data-v-87d1a3a9]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px}.toolbar[data-v-87d1a3a9]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar input[data-v-87d1a3a9],.toolbar select[data-v-87d1a3a9]{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px}.btn-search[data-v-87d1a3a9]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px}.loading[data-v-87d1a3a9],.empty[data-v-87d1a3a9]{text-align:center;color:var(--text-secondary);padding:60px}.table-card[data-v-87d1a3a9]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-87d1a3a9]{width:100%}.thead[data-v-87d1a3a9]{background:var(--bg-hover);padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-87d1a3a9]{text-align:center;color:var(--text-secondary);flex:1}.tr[data-v-87d1a3a9]{border-bottom:1px solid var(--border-color);align-items:center;padding:14px 20px;display:flex}.tr[data-v-87d1a3a9]:hover{background:var(--bg-hover)}.tr span[data-v-87d1a3a9]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.no[data-v-87d1a3a9]{color:var(--text-secondary);font-family:monospace;font-size:12px}.desc[data-v-87d1a3a9]{white-space:nowrap;text-overflow:ellipsis;max-width:150px;overflow:hidden}.badge[data-v-87d1a3a9]{border-radius:4px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.badge.pending[data-v-87d1a3a9]{color:#fa8c16;background:#fff7e6}.badge.done[data-v-87d1a3a9],.badge.ok[data-v-87d1a3a9]{color:#389e0d;background:#d9f7be}.badge.abnormal[data-v-87d1a3a9]{color:#cf1322;background:#ffccc7}.actions[data-v-87d1a3a9]{flex:0 0 160px;justify-content:center;gap:8px;display:flex}.btn-link[data-v-87d1a3a9]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:13px}.btn-link.danger[data-v-87d1a3a9]{color:var(--danger)}.pagination[data-v-87d1a3a9]{justify-content:center;align-items:center;gap:16px;margin-top:20px;display:flex}.pagination button[data-v-87d1a3a9]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.pagination button[data-v-87d1a3a9]:disabled{opacity:.5;cursor:not-allowed}.page[data-v-f1311973]{padding:24px}.page-header[data-v-f1311973]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-f1311973]{align-items:center;gap:16px;display:flex}.btn-back[data-v-f1311973]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-f1311973]{margin:0}.btn-add[data-v-f1311973]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px}.category-list[data-v-f1311973]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.category-row[data-v-f1311973]{border-bottom:1px solid var(--border-color);align-items:center;padding:14px 20px;display:flex}.category-row[data-v-f1311973]:hover{background:var(--bg-hover)}.expand-btn[data-v-f1311973]{cursor:pointer;width:24px;color:var(--text-secondary)}.category-name[data-v-f1311973]{flex:1;font-weight:500}.actions[data-v-f1311973]{gap:8px;display:flex}.children[data-v-f1311973]{background:var(--bg-hover)}.child-row[data-v-f1311973]{border-bottom:1px solid var(--border-color);align-items:center;padding:12px 20px 12px 48px;display:flex}.child-name[data-v-f1311973]{color:var(--text-secondary);flex:1}.btn-link[data-v-f1311973]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px}.btn-link.danger[data-v-f1311973]{color:var(--danger)}.modal[data-v-f1311973]{background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-f1311973]{background:#fff;border-radius:12px;width:400px;padding:24px}.modal-content h4[data-v-f1311973]{margin:0 0 16px}.form-group[data-v-f1311973]{margin-bottom:16px}.form-group label[data-v-f1311973]{margin-bottom:6px;font-size:14px;display:block}.form-group input[data-v-f1311973],.form-group select[data-v-f1311973]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:8px 12px}.modal-actions[data-v-f1311973]{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.modal-actions button[data-v-f1311973]{cursor:pointer;border-radius:8px;padding:8px 20px}.modal-actions button[data-v-f1311973]:first-child{border:1px solid var(--border-color);background:#fff}.modal-actions button.primary[data-v-f1311973]{background:var(--color-primary);color:#fff;border:none}.page[data-v-d536b4d8]{padding:24px}.page-header[data-v-d536b4d8]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-d536b4d8]{align-items:center;gap:16px;display:flex}.btn-back[data-v-d536b4d8]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-d536b4d8]{margin:0}.header-actions[data-v-d536b4d8]{gap:12px;display:flex}.btn-secondary[data-v-d536b4d8]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.btn-primary[data-v-d536b4d8]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px}.week-nav[data-v-d536b4d8]{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.btn-nav[data-v-d536b4d8]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.week-label[data-v-d536b4d8]{font-size:16px;font-weight:500}.target-table[data-v-d536b4d8]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table-header[data-v-d536b4d8]{background:var(--bg-hover);padding:12px;font-size:13px;font-weight:600;display:flex}.table-body[data-v-d536b4d8]{border-bottom:1px solid var(--border-color)}.group-header[data-v-d536b4d8]{background:var(--bg-hover);padding:10px 12px;font-weight:500}.row[data-v-d536b4d8]{border-bottom:1px solid var(--border-color);padding:10px 12px;display:flex}.row[data-v-d536b4d8]:last-child{border-bottom:none}.col-category[data-v-d536b4d8]{flex-direction:column;flex:0 0 140px;align-items:flex-start;gap:4px;display:flex}.col-category .type-select[data-v-d536b4d8]{border:1px solid var(--border-color);border-radius:4px;padding:2px 4px;font-size:11px}.col-day[data-v-d536b4d8]{flex-direction:column;flex:1;gap:4px;padding:0 8px;display:flex}.col-day input[data-v-d536b4d8]{border:1px solid var(--border-color);text-align:center;border-radius:4px;width:100%;padding:6px}.page[data-v-68e64812]{padding:24px}.page-header[data-v-68e64812]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-68e64812]{align-items:center;gap:16px;display:flex}.btn-back[data-v-68e64812]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-68e64812]{margin:0}.date-picker input[data-v-68e64812]{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px}.progress-section[data-v-68e64812]{box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-bottom:16px;padding:16px}.progress-section h4[data-v-68e64812]{margin:0 0 12px;font-size:14px}.progress-list[data-v-68e64812]{flex-wrap:wrap;gap:12px;display:flex}.progress-item[data-v-68e64812]{background:var(--bg-hover);border-radius:8px;flex:200px;padding:12px}.parent-name[data-v-68e64812]{color:var(--text-secondary);font-size:12px}.cat-name[data-v-68e64812]{margin-bottom:4px;font-weight:500;display:block}.progress-value[data-v-68e64812]{font-size:14px}.progress-percent[data-v-68e64812]{color:var(--text-secondary);font-size:12px}.progress-bar[data-v-68e64812]{background:var(--border-color);border-radius:3px;height:6px;margin-top:6px}.progress-fill[data-v-68e64812]{background:var(--color-primary);border-radius:3px;height:100%}.empty[data-v-68e64812]{color:var(--text-secondary);font-size:14px}.entry-section[data-v-68e64812]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.form-row[data-v-68e64812]{margin-bottom:16px}.form-row label[data-v-68e64812]{width:60px;display:inline-block}.form-row select[data-v-68e64812]{border:1px solid var(--border-color);border-radius:8px;min-width:200px;padding:8px 12px}.entry-table[data-v-68e64812]{margin-bottom:16px}.table-header[data-v-68e64812]{background:var(--bg-hover);padding:10px 12px;font-size:13px;font-weight:500;display:flex}.table-row[data-v-68e64812]{border-bottom:1px solid var(--border-color);align-items:center;padding:10px 12px;display:flex}.table-row span[data-v-68e64812]:first-child{flex:0 0 100px}.table-row input[data-v-68e64812]{border:1px solid var(--border-color);text-align:center;border-radius:4px;flex:1;margin:0 4px;padding:6px 8px}.table-row button[data-v-68e64812]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px}.records-section h4[data-v-68e64812]{margin:0 0 12px;font-size:14px}.records-groups[data-v-68e64812]{flex-direction:column;gap:12px;display:flex}.record-group[data-v-68e64812]{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.group-header[data-v-68e64812]{background:var(--bg-hover);padding:8px 12px;font-size:13px;font-weight:500}.records-list[data-v-68e64812]{flex-direction:column;display:flex}.record-row[data-v-68e64812]{border-top:1px solid var(--border-color);align-items:center;gap:12px;padding:10px 12px;display:flex}.record-row[data-v-68e64812]:first-child{border-top:none}.record-info[data-v-68e64812]{flex:1}.record-info .cat-name[data-v-68e64812]{margin-bottom:0;font-weight:500}.record-detail[data-v-68e64812]{color:var(--text-secondary);font-size:13px}.record-meta[data-v-68e64812]{color:var(--text-secondary);white-space:nowrap;font-size:12px}.btn-delete[data-v-68e64812]{color:var(--danger);cursor:pointer;background:0 0;border:none;font-size:18px}.page[data-v-d4bbb917]{padding:24px}.page-header[data-v-d4bbb917]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-d4bbb917]{align-items:center;gap:16px;display:flex}.btn-back[data-v-d4bbb917]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-d4bbb917]{margin:0}.search-bar[data-v-d4bbb917]{box-shadow:var(--shadow);background:#fff;border-radius:12px;align-items:center;gap:16px;margin-bottom:16px;padding:16px;display:flex}.form-row[data-v-d4bbb917]{align-items:center;gap:8px;display:flex}.form-row label[data-v-d4bbb917]{font-size:14px}.form-row input[data-v-d4bbb917]{border:1px solid var(--border-color);border-radius:8px;padding:8px 12px}.btn-search[data-v-d4bbb917]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 20px}.stat-result[data-v-d4bbb917]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.summary-cards[data-v-d4bbb917]{gap:16px;margin-bottom:20px;display:flex}.card[data-v-d4bbb917]{background:var(--bg-hover);text-align:center;border-radius:8px;flex:1;padding:16px}.card .label[data-v-d4bbb917]{color:var(--text-secondary);margin-bottom:8px;font-size:14px;display:block}.card .value[data-v-d4bbb917]{color:var(--color-primary);font-size:24px;font-weight:600}.detail-table[data-v-d4bbb917]{margin-bottom:20px}.table-header[data-v-d4bbb917]{background:var(--bg-hover);padding:12px;font-size:13px;font-weight:600;display:flex}.table-row[data-v-d4bbb917]{border-bottom:1px solid var(--border-color);align-items:center;padding:12px;display:flex}.table-row span[data-v-d4bbb917]{text-align:center;flex:1}.table-row span[data-v-d4bbb917]:first-child{text-align:left;flex:2}.parent-name[data-v-d4bbb917]{color:var(--text-secondary)}.progress-bar-inline[data-v-d4bbb917]{background:var(--border-color);vertical-align:middle;border-radius:3px;width:60px;height:6px;margin-right:6px;display:inline-block}.progress-bar-inline .fill[data-v-d4bbb917]{background:var(--color-primary);border-radius:3px;height:100%;display:block}.empty[data-v-d4bbb917]{text-align:center;color:var(--text-secondary);padding:40px}.ranking-section h4[data-v-d4bbb917]{margin:0 0 12px}.ranking-list[data-v-d4bbb917]{flex-direction:column;gap:8px;display:flex}.ranking-item[data-v-d4bbb917]{background:var(--bg-hover);border-radius:8px;align-items:center;padding:12px;display:flex}.rank-num[data-v-d4bbb917]{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-right:12px;font-weight:600;display:flex}.rank-name[data-v-d4bbb917]{flex:1}.rank-amount[data-v-d4bbb917]{color:var(--color-primary);font-weight:600}.page[data-v-50637049]{padding:24px}.page-header[data-v-50637049]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-50637049]{align-items:center;gap:16px;display:flex}.btn-back[data-v-50637049]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-50637049]{margin:0}.btn-primary[data-v-50637049]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px}.calendar-nav[data-v-50637049]{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.btn-nav[data-v-50637049]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.month-label[data-v-50637049]{text-align:center;min-width:120px;font-size:18px;font-weight:600}.btn-today[data-v-50637049]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px}.calendar[data-v-50637049]{box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-bottom:16px;overflow:hidden}.calendar-header[data-v-50637049]{background:var(--bg-hover);padding:12px 0;display:flex}.calendar-header span[data-v-50637049]{text-align:center;color:var(--text-secondary);flex:1;font-size:13px;font-weight:600}.calendar-body[data-v-50637049]{flex-wrap:wrap;padding:8px;display:flex}.calendar-day[data-v-50637049]{aspect-ratio:1;cursor:pointer;flex-direction:column;flex:0 0 14.28%;justify-content:center;align-items:center;display:flex;position:relative}.calendar-day[data-v-50637049]:hover{background:var(--bg-hover)}.calendar-day.other-month[data-v-50637049]{color:var(--text-secondary);opacity:.5}.calendar-day.today[data-v-50637049]{background:#e6f7ff}.calendar-day.today .day-number[data-v-50637049]{color:var(--color-primary);font-weight:700}.calendar-day.selected[data-v-50637049]{background:var(--color-primary);color:#fff}.calendar-day.selected .day-number[data-v-50637049]{color:#fff}.day-number[data-v-50637049]{font-size:14px}.has-report[data-v-50637049]{color:var(--color-primary);font-size:10px;position:absolute;top:4px;right:4px}.summary-section[data-v-50637049]{box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:16px}.summary-section h4[data-v-50637049]{margin:0 0 12px}.summary-cards[data-v-50637049]{gap:12px;margin-bottom:16px;display:flex}.summary-card[data-v-50637049]{background:var(--bg-hover);border-radius:8px;flex:1;padding:12px}.card-title[data-v-50637049]{margin-bottom:8px;font-size:14px;font-weight:600}.card-content[data-v-50637049]{color:var(--text-secondary);font-size:13px;line-height:1.8}.dept-reports[data-v-50637049]{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.dept-tabs[data-v-50637049]{background:var(--bg-hover);border-bottom:1px solid var(--border-color);display:flex}.dept-tab[data-v-50637049]{cursor:pointer;background:0 0;border:none;flex:1;padding:12px;font-size:14px}.dept-tab.active[data-v-50637049]{border-bottom:2px solid var(--color-primary);background:#fff;font-weight:600}.dept-content[data-v-50637049]{min-height:100px;padding:16px}.field-item[data-v-50637049]{margin-bottom:8px;display:flex}.field-item label[data-v-50637049]{width:80px;color:var(--text-secondary);font-weight:500}.field-item span[data-v-50637049]{flex:1}.empty[data-v-50637049]{color:var(--text-secondary);text-align:center;padding:20px}.modal[data-v-50637049]{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content[data-v-50637049]{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header[data-v-50637049]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-50637049]{margin:0}.modal-close[data-v-50637049]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-50637049]{padding:24px}.form-group[data-v-50637049]{margin-bottom:16px}.form-group label[data-v-50637049]{margin-bottom:8px;font-weight:500;display:block}.form-group input[data-v-50637049],.form-group select[data-v-50637049],.form-group textarea[data-v-50637049]{border:1px solid var(--border-color);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.modal-btns[data-v-50637049]{background:var(--bg-hover);border-top:1px solid var(--border-color);gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-50637049]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:10px}.modal-btns button.primary[data-v-50637049]{background:var(--color-primary);color:#fff;border:none}.page[data-v-d26ba28b]{padding:24px}.page-header[data-v-d26ba28b]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-d26ba28b]{align-items:center;gap:16px;display:flex}.btn-back[data-v-d26ba28b]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px}.page-header h3[data-v-d26ba28b]{margin:0}.btn-primary[data-v-d26ba28b]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 24px}.template-section[data-v-d26ba28b],.preview-section[data-v-d26ba28b]{box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-bottom:16px;padding:20px}.template-section h4[data-v-d26ba28b],.preview-section h4[data-v-d26ba28b]{margin:0 0 8px}.tip[data-v-d26ba28b]{color:var(--text-secondary);margin:0 0 16px;font-size:13px}.field-list[data-v-d26ba28b]{flex-direction:column;gap:12px;display:flex}.field-item[data-v-d26ba28b]{align-items:center;gap:12px;display:flex}.field-label[data-v-d26ba28b]{border:1px solid var(--border-color);border-radius:8px;flex:2;padding:10px 12px}.field-type[data-v-d26ba28b]{border:1px solid var(--border-color);border-radius:8px;flex:1;padding:10px 12px}.field-placeholder[data-v-d26ba28b]{border:1px solid var(--border-color);border-radius:8px;flex:2;padding:10px 12px}.btn-delete[data-v-d26ba28b]{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 8px;font-size:20px}.btn-add-field[data-v-d26ba28b]{background:var(--bg-hover);border:1px dashed var(--border-color);cursor:pointer;color:var(--color-primary);border-radius:8px;margin-top:12px;padding:10px 20px}.preview-form .form-group[data-v-d26ba28b]{margin-bottom:12px}.preview-form label[data-v-d26ba28b]{margin-bottom:6px;font-size:14px;font-weight:500;display:block}.preview-form input[data-v-d26ba28b],.preview-form textarea[data-v-d26ba28b]{border:1px solid var(--border-color);box-sizing:border-box;background:var(--bg-hover);border-radius:8px;width:100%;padding:10px 12px}.page[data-v-c5c1ce7f]{padding:16px}.page-header[data-v-c5c1ce7f]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-c5c1ce7f]{align-items:center;gap:12px;display:flex}.btn-back[data-v-c5c1ce7f]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-add[data-v-c5c1ce7f]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 16px}.filter-bar[data-v-c5c1ce7f]{gap:12px;margin-bottom:16px;display:flex}.search-input[data-v-c5c1ce7f]{border:1px solid #ddd;border-radius:4px;flex:1;padding:8px 12px}.table-card[data-v-c5c1ce7f]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-c5c1ce7f]{width:100%}.thead[data-v-c5c1ce7f]{background:#f5f5f5;padding:12px;font-weight:600;display:flex}.thead span[data-v-c5c1ce7f]{text-align:center;flex:1}.tbody .tr[data-v-c5c1ce7f]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;display:flex}.tbody span[data-v-c5c1ce7f]{text-align:center;flex:1}.actions[data-v-c5c1ce7f]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-c5c1ce7f]{color:#1890ff;cursor:pointer;background:0 0;border:none}.btn-link.danger[data-v-c5c1ce7f]{color:#ff4d4f}.tag[data-v-c5c1ce7f]{border-radius:4px;padding:2px 8px;font-size:12px}.tag-success[data-v-c5c1ce7f]{color:#52c41a;background:#f6ffed}.tag-danger[data-v-c5c1ce7f]{color:#ff4d4f;background:#fff1f0}.status-badge[data-v-c5c1ce7f]{border-radius:4px;padding:2px 8px;font-size:12px}.status-badge.active[data-v-c5c1ce7f]{color:#52c41a;background:#f6ffed}.status-badge.inactive[data-v-c5c1ce7f]{color:#999;background:#f5f5f5}.modal[data-v-c5c1ce7f]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-c5c1ce7f]{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow:auto}.modal-header[data-v-c5c1ce7f]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-c5c1ce7f]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-c5c1ce7f]{padding:16px}.modal-footer[data-v-c5c1ce7f]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:12px;padding:16px;display:flex}.form-group[data-v-c5c1ce7f]{margin-bottom:16px}.form-group label[data-v-c5c1ce7f]{margin-bottom:6px;font-weight:500;display:block}.form-group input[data-v-c5c1ce7f],.form-group select[data-v-c5c1ce7f],.form-group textarea[data-v-c5c1ce7f]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.form-group textarea[data-v-c5c1ce7f]{resize:vertical;font-family:inherit}.form-hint[data-v-c5c1ce7f]{color:#999;margin-top:4px;font-size:12px}.required[data-v-c5c1ce7f]{color:#ff4d4f}.btn-primary[data-v-c5c1ce7f]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-c5c1ce7f]{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 20px}.empty[data-v-c5c1ce7f]{text-align:center;color:#999;padding:40px}.page[data-v-c9e232e2]{padding:16px}.page-header[data-v-c9e232e2]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-c9e232e2]{align-items:center;gap:12px;display:flex}.btn-back[data-v-c9e232e2]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-add[data-v-c9e232e2]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 16px}.filter-bar[data-v-c9e232e2]{margin-bottom:16px}.search-input[data-v-c9e232e2]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.table-card[data-v-c9e232e2]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-c9e232e2]{width:100%}.thead[data-v-c9e232e2]{background:#f5f5f5;padding:12px;font-weight:600;display:flex}.thead span[data-v-c9e232e2]{text-align:center;flex:1}.tbody .tr[data-v-c9e232e2]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;display:flex}.tbody span[data-v-c9e232e2]{text-align:center;flex:1}.actions[data-v-c9e232e2]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-c9e232e2]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.status-badge[data-v-c9e232e2]{border-radius:4px;padding:2px 8px;font-size:12px}.status-badge.active[data-v-c9e232e2]{color:#52c41a;background:#f6ffed}.status-badge.inactive[data-v-c9e232e2]{color:#999;background:#f5f5f5}.modal[data-v-c9e232e2]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-c9e232e2]{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;overflow:auto}.modal-header[data-v-c9e232e2]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-c9e232e2]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-c9e232e2]{padding:16px}.modal-footer[data-v-c9e232e2]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:12px;padding:16px;display:flex}.form-group[data-v-c9e232e2]{margin-bottom:16px}.form-group label[data-v-c9e232e2]{margin-bottom:6px;font-weight:500;display:block}.form-group input[data-v-c9e232e2],.form-group select[data-v-c9e232e2],.form-group textarea[data-v-c9e232e2]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.required[data-v-c9e232e2]{color:#ff4d4f}.btn-primary[data-v-c9e232e2]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-c9e232e2]{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 20px}.items-list[data-v-c9e232e2]{flex-direction:column;gap:8px;display:flex}.item-row[data-v-c9e232e2]{align-items:center;gap:8px;display:flex}.item-row select[data-v-c9e232e2],.item-row input[data-v-c9e232e2]{border:1px solid #ddd;border-radius:4px;flex:1;padding:6px 8px}.btn-icon[data-v-c9e232e2]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;width:28px;height:28px}.btn-add-item[data-v-c9e232e2]{cursor:pointer;text-align:center;background:#f5f5f5;border:1px dashed #ddd;border-radius:4px;padding:8px}.empty[data-v-c9e232e2]{text-align:center;color:#999;padding:40px}.page[data-v-12873c8a]{padding:16px}.page-header[data-v-12873c8a]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-12873c8a]{align-items:center;gap:12px;display:flex}.btn-back[data-v-12873c8a]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-add[data-v-12873c8a]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 16px}.filter-bar[data-v-12873c8a]{margin-bottom:16px}.search-input[data-v-12873c8a]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.table-card[data-v-12873c8a]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-12873c8a]{width:100%}.thead[data-v-12873c8a]{background:#f5f5f5;padding:12px;font-weight:600;display:flex}.thead span[data-v-12873c8a]{text-align:center;flex:1;font-size:12px}.tbody .tr[data-v-12873c8a]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;display:flex}.tbody span[data-v-12873c8a]{text-align:center;flex:1;font-size:12px}.actions[data-v-12873c8a]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-12873c8a]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.modal[data-v-12873c8a]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-12873c8a]{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow:auto}.modal-header[data-v-12873c8a]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-12873c8a]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-12873c8a]{padding:16px}.modal-footer[data-v-12873c8a]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:12px;padding:16px;display:flex}.form-group[data-v-12873c8a]{margin-bottom:16px}.form-group label[data-v-12873c8a]{margin-bottom:6px;font-weight:500;display:block}.form-group input[data-v-12873c8a],.form-group select[data-v-12873c8a]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.required[data-v-12873c8a]{color:#ff4d4f}.btn-primary[data-v-12873c8a]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-12873c8a]{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 20px}.empty[data-v-12873c8a]{text-align:center;color:#999;padding:20px}.history-item[data-v-12873c8a]{border-bottom:1px solid #f0f0f0;padding:12px}.history-date[data-v-12873c8a]{color:#666;font-size:12px}.history-structure[data-v-12873c8a]{margin-top:4px}.page[data-v-5b38f264]{padding:16px}.page-header[data-v-5b38f264]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-5b38f264]{align-items:center;gap:12px;display:flex}.btn-back[data-v-5b38f264]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-primary[data-v-5b38f264]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-primary[data-v-5b38f264]:disabled{background:#ccc}.filter-bar[data-v-5b38f264]{gap:12px;margin-bottom:16px;display:flex}.filter-item[data-v-5b38f264]{flex:1}.filter-item label[data-v-5b38f264]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item input[data-v-5b38f264],.filter-item select[data-v-5b38f264]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.stat-cards[data-v-5b38f264]{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat-card[data-v-5b38f264]{text-align:center;background:#fff;border-radius:8px;padding:16px}.stat-value[data-v-5b38f264]{color:#1890ff;font-size:18px;font-weight:600}.stat-label[data-v-5b38f264]{color:#666;margin-top:4px;font-size:12px}.table-card[data-v-5b38f264]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-5b38f264]{width:100%}.thead[data-v-5b38f264]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-5b38f264]{text-align:center;flex:1}.tbody .tr[data-v-5b38f264]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-5b38f264]{text-align:center;flex:1}.amount[data-v-5b38f264]{font-weight:500}.amount.success[data-v-5b38f264]{color:#52c41a}.amount.danger[data-v-5b38f264]{color:#ff4d4f}.actions[data-v-5b38f264]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-5b38f264]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.status-badge[data-v-5b38f264]{border-radius:4px;padding:2px 8px;font-size:11px}.status-1[data-v-5b38f264]{color:#fa8c16;background:#fff7e6}.status-2[data-v-5b38f264]{color:#52c41a;background:#f6ffed}.status-3[data-v-5b38f264]{color:#ff4d4f;background:#fff1f0}.modal[data-v-5b38f264]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-5b38f264]{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow:auto}.modal-header[data-v-5b38f264]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-5b38f264]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-5b38f264]{padding:16px}.detail-section[data-v-5b38f264]{margin-bottom:16px}.section-title[data-v-5b38f264]{border-bottom:1px solid #f0f0f0;margin-bottom:8px;padding-bottom:8px;font-weight:600}.detail-row[data-v-5b38f264]{justify-content:space-between;padding:8px 0;display:flex}.detail-total[data-v-5b38f264]{border-top:2px solid #f0f0f0;justify-content:space-between;padding:16px 0;font-size:16px;font-weight:600;display:flex}.empty[data-v-5b38f264]{text-align:center;color:#999;padding:40px}.page[data-v-672ae1ab]{padding:16px}.page-header[data-v-672ae1ab]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-672ae1ab]{align-items:center;gap:12px;display:flex}.btn-back[data-v-672ae1ab]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.filter-bar[data-v-672ae1ab]{margin-bottom:16px}.filter-item label[data-v-672ae1ab]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item select[data-v-672ae1ab]{border:1px solid #ddd;border-radius:4px;padding:8px 12px}.table-card[data-v-672ae1ab]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-672ae1ab]{width:100%}.thead[data-v-672ae1ab]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-672ae1ab]{text-align:center;flex:1}.tbody .tr[data-v-672ae1ab]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-672ae1ab]{text-align:center;flex:1}.amount[data-v-672ae1ab]{font-weight:500}.amount.success[data-v-672ae1ab]{color:#52c41a}.amount.danger[data-v-672ae1ab]{color:#ff4d4f}.actions[data-v-672ae1ab]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-672ae1ab]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.status-badge[data-v-672ae1ab]{border-radius:4px;padding:2px 8px;font-size:11px}.status-1[data-v-672ae1ab]{color:#fa8c16;background:#fff7e6}.status-2[data-v-672ae1ab]{color:#52c41a;background:#f6ffed}.status-3[data-v-672ae1ab]{color:#ff4d4f;background:#fff1f0}.modal[data-v-672ae1ab]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-672ae1ab]{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow:auto}.modal-header[data-v-672ae1ab]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-672ae1ab]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-672ae1ab]{padding:16px}.detail-section[data-v-672ae1ab]{margin-bottom:16px}.section-title[data-v-672ae1ab]{border-bottom:1px solid #f0f0f0;margin-bottom:8px;padding-bottom:8px;font-weight:600}.detail-row[data-v-672ae1ab]{justify-content:space-between;padding:8px 0;display:flex}.detail-row.total[data-v-672ae1ab]{border-top:1px dashed #f0f0f0;margin-top:8px;padding-top:8px;font-weight:600}.detail-final[data-v-672ae1ab]{border-top:2px solid #f0f0f0;justify-content:space-between;padding:16px 0;font-size:18px;font-weight:600;display:flex}.empty[data-v-672ae1ab]{text-align:center;color:#999;padding:40px}.page[data-v-4ea4a9e0]{padding:16px}.page-header[data-v-4ea4a9e0]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-4ea4a9e0]{align-items:center;gap:12px;display:flex}.btn-back[data-v-4ea4a9e0]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-primary[data-v-4ea4a9e0]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.filter-bar[data-v-4ea4a9e0]{gap:12px;margin-bottom:16px;display:flex}.filter-item[data-v-4ea4a9e0]{flex:1}.filter-item label[data-v-4ea4a9e0]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item select[data-v-4ea4a9e0]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.stat-cards[data-v-4ea4a9e0]{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px;display:grid}.stat-card[data-v-4ea4a9e0]{text-align:center;background:#fff;border-radius:8px;padding:16px}.stat-value[data-v-4ea4a9e0]{color:#1890ff;margin-top:8px;font-size:20px;font-weight:600}.stat-value.highlight[data-v-4ea4a9e0]{color:#52c41a}.stat-label[data-v-4ea4a9e0]{color:#666;font-size:12px}.section-title[data-v-4ea4a9e0]{margin-bottom:12px;font-size:16px;font-weight:600}.table-card[data-v-4ea4a9e0]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-4ea4a9e0]{width:100%}.thead[data-v-4ea4a9e0]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-4ea4a9e0]{text-align:center;flex:1}.tbody .tr[data-v-4ea4a9e0]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-4ea4a9e0]{text-align:center;flex:1}.amount[data-v-4ea4a9e0]{font-weight:500}.amount.success[data-v-4ea4a9e0]{color:#52c41a}.amount.danger[data-v-4ea4a9e0]{color:#ff4d4f}.empty[data-v-4ea4a9e0]{text-align:center;color:#999;padding:40px}.page[data-v-c1a21243]{padding:16px}.page-header[data-v-c1a21243]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-c1a21243]{align-items:center;gap:12px;display:flex}.btn-back[data-v-c1a21243]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.btn-add[data-v-c1a21243]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 16px}.section-title[data-v-c1a21243]{margin-bottom:12px;font-size:16px;font-weight:600}.table-card[data-v-c1a21243]{background:#fff;border-radius:8px;margin-bottom:16px;overflow:hidden}.table[data-v-c1a21243]{width:100%}.thead[data-v-c1a21243]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-c1a21243]{text-align:center;flex:1;min-width:100px}.thead .sticky-col[data-v-c1a21243]{flex:0 0 80px;min-width:80px}.tbody .tr[data-v-c1a21243]{border-bottom:1px solid #f0f0f0;align-items:center;padding:8px 12px;font-size:12px;display:flex}.tbody span[data-v-c1a21243]{text-align:center;flex:1;min-width:100px}.tbody .sticky-col[data-v-c1a21243]{flex:0 0 80px;min-width:80px;font-weight:500}.actions[data-v-c1a21243]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-c1a21243]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.empty[data-v-c1a21243]{text-align:center;color:#999;padding:40px}.modal[data-v-c1a21243]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-c1a21243]{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow:auto}.modal-header[data-v-c1a21243]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-c1a21243]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-c1a21243]{padding:16px}.modal-footer[data-v-c1a21243]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:12px;padding:16px;display:flex}.form-group[data-v-c1a21243]{margin-bottom:16px}.form-group label[data-v-c1a21243]{margin-bottom:6px;font-weight:500;display:block}.form-group input[data-v-c1a21243],.form-group select[data-v-c1a21243]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px}.required[data-v-c1a21243]{color:#ff4d4f}.btn-primary[data-v-c1a21243]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-c1a21243]{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 20px}.cell-input[data-v-c1a21243]{text-align:center;border:1px solid #ddd;border-radius:4px;width:100%;padding:4px 8px;font-size:12px}.salary-table[data-v-c1a21243]{overflow-x:auto}.page[data-v-b83d3081]{padding:16px}.page-header[data-v-b83d3081]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-b83d3081]{align-items:center;gap:12px;display:flex}.btn-back[data-v-b83d3081]{cursor:pointer;background:#f5f5f5;border:none;border-radius:4px;padding:6px 12px}.filter-bar[data-v-b83d3081]{gap:12px;margin-bottom:16px;display:flex}.filter-item[data-v-b83d3081]{flex:1}.filter-item label[data-v-b83d3081]{color:#666;margin-bottom:4px;font-size:12px;display:block}.filter-item select[data-v-b83d3081],.filter-item input[data-v-b83d3081]{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px}.table-card[data-v-b83d3081]{background:#fff;border-radius:8px;overflow:hidden}.table[data-v-b83d3081]{width:100%}.thead[data-v-b83d3081]{background:#f5f5f5;padding:12px;font-size:12px;font-weight:600;display:flex}.thead span[data-v-b83d3081]{text-align:center;flex:1}.tbody .tr[data-v-b83d3081]{border-bottom:1px solid #f0f0f0;align-items:center;padding:12px;font-size:12px;display:flex}.tbody span[data-v-b83d3081]{text-align:center;flex:1}.status-badge[data-v-b83d3081]{border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.status-badge.success[data-v-b83d3081]{color:#065f46;background:#d1fae5}.status-badge.error[data-v-b83d3081]{color:#991b1b;background:#fee2e2}.btn-link[data-v-b83d3081]{color:#1890ff;cursor:pointer;background:0 0;border:none;font-size:12px}.empty[data-v-b83d3081]{text-align:center;color:#999;padding:40px}.modal[data-v-b83d3081]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-b83d3081]{background:#fff;border-radius:8px;width:90%;max-width:700px;max-height:80vh;overflow:auto}.modal-large[data-v-b83d3081]{max-width:800px}.modal-header[data-v-b83d3081]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:16px;display:flex}.modal-close[data-v-b83d3081]{cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-b83d3081]{padding:16px}.detail-row[data-v-b83d3081]{border-bottom:1px solid #f0f0f0;padding:10px 0;display:flex}.detail-row label[data-v-b83d3081]{color:#666;width:80px;font-size:13px}.detail-row span[data-v-b83d3081]{flex:1;font-size:13px}.detail-section[data-v-b83d3081]{margin:12px 0}.detail-section label[data-v-b83d3081]{color:#666;margin-bottom:8px;font-size:13px;display:block}.json-content[data-v-b83d3081]{white-space:pre-wrap;background:#f5f5f5;border-radius:4px;max-height:200px;padding:12px;font-size:12px;overflow-x:auto}.modal-btns[data-v-b83d3081]{justify-content:flex-end;gap:12px;padding:16px;display:flex}.modal-btns button[data-v-b83d3081]{cursor:pointer;border:1px solid #ddd;border-radius:4px;padding:8px 20px}.modal-btns button.primary[data-v-b83d3081]{color:#fff;background:#1890ff;border:none}.region-layout[data-v-01a27d74]{gap:16px;height:calc(100vh - 200px);padding:0 20px;display:flex}.region-tree-panel[data-v-01a27d74]{background:#fff;border-radius:12px;flex-direction:column;flex-shrink:0;width:360px;display:flex;overflow:hidden;box-shadow:0 2px 12px #0000000f}.region-detail-panel[data-v-01a27d74]{background:#fff;border-radius:12px;flex:1;padding:20px;overflow-y:auto;box-shadow:0 2px 12px #0000000f}.panel-title[data-v-01a27d74]{color:#333;border-bottom:1px solid #f0f0f0;padding:16px 16px 12px;font-size:14px;font-weight:600}.tree-container[data-v-01a27d74]{flex:1;overflow-y:auto}.tree-row[data-v-01a27d74]{cursor:pointer;border-bottom:1px solid #fafafa;align-items:center;gap:6px;min-height:44px;padding:10px 12px;transition:background .15s;display:flex}.tree-row[data-v-01a27d74]:hover{background:#f5f5f5}.tree-row.selected[data-v-01a27d74]{background:#e6f7ff}.tree-expand[data-v-01a27d74]{color:#bbb;cursor:pointer;text-align:center;flex-shrink:0;width:16px;font-size:10px}.tree-label[data-v-01a27d74]{color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.detail-card[data-v-01a27d74]{background:#f9f9f9;border-radius:10px;margin-bottom:16px;padding:16px}.detail-header[data-v-01a27d74]{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.detail-title[data-v-01a27d74]{color:#333;font-size:18px;font-weight:600}.detail-sub[data-v-01a27d74]{align-items:center;gap:8px;margin-top:6px;display:flex}.type-tag[data-v-01a27d74]{color:#666;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:12px}.detail-actions[data-v-01a27d74]{flex-shrink:0;gap:6px;display:flex}.detail-info-grid[data-v-01a27d74]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.info-item[data-v-01a27d74]{gap:8px;font-size:14px;display:flex}.info-label[data-v-01a27d74]{color:#999;flex-shrink:0}.info-value[data-v-01a27d74]{color:#333}.code-text[data-v-01a27d74]{color:#666;font-family:monospace}.section-card[data-v-01a27d74]{background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;margin-bottom:12px;padding:14px}.section-title[data-v-01a27d74]{color:#333;margin-bottom:10px;font-size:14px;font-weight:600}.sub-list[data-v-01a27d74],.store-list[data-v-01a27d74],.emp-list[data-v-01a27d74]{flex-direction:column;gap:6px;display:flex}.sub-item[data-v-01a27d74],.store-item[data-v-01a27d74],.emp-item[data-v-01a27d74]{cursor:pointer;background:#fff;border:1px solid #f0f0f0;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:all .2s;display:flex}.sub-item[data-v-01a27d74]:hover,.store-item[data-v-01a27d74]:hover,.emp-item[data-v-01a27d74]:hover{background:#f0f8ff;border-color:#007aff}.sub-name[data-v-01a27d74],.store-name[data-v-01a27d74],.emp-name[data-v-01a27d74]{color:#333;flex:1;font-weight:500}.sub-code[data-v-01a27d74],.store-code[data-v-01a27d74],.emp-no[data-v-01a27d74],.emp-phone[data-v-01a27d74]{color:#999;font-size:12px}.page[data-v-01a27d74]{padding:20px}.page-header[data-v-01a27d74]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-01a27d74]{align-items:center;gap:16px;display:flex}.btn-back[data-v-01a27d74]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-01a27d74]:hover{background:#f5f5f5}.page-header h3[data-v-01a27d74]{color:#333;margin:0;font-size:20px;font-weight:600}.btn-add[data-v-01a27d74]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#34c759,#30b350);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;display:flex;box-shadow:0 4px 12px #34c7594d}.btn-add span[data-v-01a27d74]{font-size:18px;font-weight:600}.btn-sm[data-v-01a27d74]{cursor:pointer;color:#333;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:6px 14px;font-size:13px}.btn-sm[data-v-01a27d74]:hover{color:#007aff;border-color:#007aff}.btn-sm.danger[data-v-01a27d74]:hover{color:#f5222d;background:#fff1f0;border-color:#f5222d}.status-badge[data-v-01a27d74]{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-01a27d74]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-01a27d74]{color:#f5222d;background:#fff1f0}.empty-detail[data-v-01a27d74]{text-align:center;color:#999;padding:80px 0;font-size:14px}.empty[data-v-01a27d74]{text-align:center;color:#999;padding:30px 0;font-size:13px}.empty-sm[data-v-01a27d74]{text-align:center;color:#999;padding:8px 0;font-size:13px}.loading[data-v-01a27d74]{color:#999;padding:8px 0;font-size:13px}.modal[data-v-01a27d74]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-01a27d74]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-01a27d74]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-01a27d74]{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-01a27d74]{color:#999;cursor:pointer;background:0 0;border:none;font-size:24px}.modal-close[data-v-01a27d74]:hover{color:#333}.modal-body[data-v-01a27d74]{padding:24px}.form-group[data-v-01a27d74]{margin-bottom:16px}.form-group[data-v-01a27d74]:last-child{margin-bottom:0}.form-group label[data-v-01a27d74]{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-01a27d74]{color:#f5222d}.form-group input[data-v-01a27d74],.form-group select[data-v-01a27d74],.form-group textarea[data-v-01a27d74]{box-sizing:border-box;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group input[data-v-01a27d74]:focus,.form-group select[data-v-01a27d74]:focus,.form-group textarea[data-v-01a27d74]:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group textarea[data-v-01a27d74]{resize:vertical}.form-row-2[data-v-01a27d74]{gap:12px;display:flex}.form-row-2 .form-group[data-v-01a27d74]{flex:1}.modal-btns[data-v-01a27d74]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-01a27d74]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px}.modal-btns button[data-v-01a27d74]:hover{background:#f5f5f5}.modal-btns button.primary[data-v-01a27d74]{color:#fff;background:linear-gradient(135deg,#34c759,#30b350);border:none}.modal-btns button.primary[data-v-01a27d74]:hover{background:linear-gradient(135deg,#30b350,#28a745)}.page[data-v-8bbfffa4]{padding:20px}.page-header[data-v-8bbfffa4]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-8bbfffa4]{align-items:center;gap:16px;display:flex}.btn-back[data-v-8bbfffa4]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .3s}.btn-back[data-v-8bbfffa4]:hover{background:#f5f5f5}.page-header h3[data-v-8bbfffa4]{color:#333;margin:0;font-size:20px;font-weight:600}.btn-add[data-v-8bbfffa4]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#34c759,#30b350);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;transition:all .3s;display:flex;box-shadow:0 4px 12px #34c7594d}.btn-add[data-v-8bbfffa4]:hover{transform:translateY(-2px)}.btn-add span[data-v-8bbfffa4]{font-size:18px;font-weight:600}.table-card[data-v-8bbfffa4]{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #00000014}.table[data-v-8bbfffa4]{width:100%}.thead[data-v-8bbfffa4]{background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f0f0f0;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.thead span[data-v-8bbfffa4]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-8bbfffa4]:first-child{text-align:left;flex:.8}.thead span[data-v-8bbfffa4]:nth-child(2){text-align:left;flex:1}.tr[data-v-8bbfffa4]{border-bottom:1px solid #f5f5f5;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.tr[data-v-8bbfffa4]:hover{background:#fafafa}.tr[data-v-8bbfffa4]:last-child{border-bottom:none}.tr span[data-v-8bbfffa4]{text-align:center;color:#333;flex:1;font-size:14px}.tr span[data-v-8bbfffa4]:first-child{text-align:left;flex:.8}.tr span[data-v-8bbfffa4]:nth-child(2){text-align:left;flex:1}.tr .name[data-v-8bbfffa4]{font-weight:500}.tr .region[data-v-8bbfffa4]{color:#007aff;font-size:13px}.actions[data-v-8bbfffa4]{justify-content:center;gap:6px;display:flex}.btn-link[data-v-8bbfffa4]{color:#007aff;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;transition:all .2s}.btn-link[data-v-8bbfffa4]:hover{background:#e6f7ff}.btn-link.danger[data-v-8bbfffa4]{color:#f5222d}.btn-link.danger[data-v-8bbfffa4]:hover{background:#fff1f0}.empty[data-v-8bbfffa4]{text-align:center;color:#999;padding:60px 40px;font-size:14px}.modal[data-v-8bbfffa4]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-8bbfffa4]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-8bbfffa4]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-8bbfffa4]{color:#333;margin:0;font-size:18px;font-weight:600}.modal-close[data-v-8bbfffa4]{color:#999;cursor:pointer;background:0 0;border:none;font-size:24px}.modal-close[data-v-8bbfffa4]:hover{color:#333}.modal-body[data-v-8bbfffa4]{padding:24px}.form-group[data-v-8bbfffa4]{margin-bottom:16px}.form-group[data-v-8bbfffa4]:last-child{margin-bottom:0}.form-group label[data-v-8bbfffa4]{color:#333;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-8bbfffa4]{color:#f5222d}.form-group input[data-v-8bbfffa4],.form-group select[data-v-8bbfffa4]{box-sizing:border-box;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 14px;font-size:14px;transition:all .3s}.form-group input[data-v-8bbfffa4]:focus,.form-group select[data-v-8bbfffa4]:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.detail-row[data-v-8bbfffa4]{border-bottom:1px solid #f5f5f5;padding:12px 0;display:flex}.detail-row[data-v-8bbfffa4]:last-child{border-bottom:none}.detail-row label[data-v-8bbfffa4]{color:#999;flex-shrink:0;width:80px;font-size:14px}.detail-row span[data-v-8bbfffa4]{color:#333;flex:1;font-size:14px}.modal-btns[data-v-8bbfffa4]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-8bbfffa4]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px;transition:all .3s}.modal-btns button[data-v-8bbfffa4]:hover{background:#f5f5f5}.modal-btns button.primary[data-v-8bbfffa4]{color:#fff;background:linear-gradient(135deg,#34c759,#30b350);border:none}.modal-btns button.primary[data-v-8bbfffa4]:hover{background:linear-gradient(135deg,#30b350,#28a745)}.page[data-v-ecddbe60]{padding:20px}.page-header[data-v-ecddbe60]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-ecddbe60]{align-items:center;gap:16px;display:flex}.btn-back[data-v-ecddbe60]{cursor:pointer;color:#666;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .3s}.btn-back[data-v-ecddbe60]:hover{background:#f5f5f5}.page-header h3[data-v-ecddbe60]{color:#333;margin:0;font-size:20px;font-weight:600}.region-select[data-v-ecddbe60]{color:#333;border:1px solid #e0e0e0;border-radius:8px;max-width:200px;padding:10px 14px;font-size:14px}.region-select[data-v-ecddbe60]:focus{border-color:#667eea;outline:none}.empty-tip[data-v-ecddbe60]{text-align:center;color:#999;padding:80px 0;font-size:14px}.stat-cards[data-v-ecddbe60]{grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.stat-card[data-v-ecddbe60]{background:#fff;border-radius:12px;align-items:center;gap:12px;padding:16px;display:flex;box-shadow:0 2px 12px #0000000f}.stat-icon[data-v-ecddbe60]{font-size:28px}.stat-info[data-v-ecddbe60]{flex:1}.stat-value[data-v-ecddbe60]{color:#333;font-size:22px;font-weight:700}.stat-label[data-v-ecddbe60]{color:#999;margin-top:2px;font-size:12px}.section-card[data-v-ecddbe60]{background:#fff;border-radius:12px;margin-bottom:12px;padding:16px;box-shadow:0 2px 12px #0000000f}.card-title[data-v-ecddbe60]{color:#333;margin-bottom:12px;font-size:15px;font-weight:600}.attendance-rate[data-v-ecddbe60]{align-items:center;gap:24px;display:flex}.rate-circle[data-v-ecddbe60]{background:conic-gradient(#34c759 var(--pct), #eee 0%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;display:flex}.rate-circle span[data-v-ecddbe60]{color:#34c759;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;font-size:14px;font-weight:600;display:flex}.rate-info[data-v-ecddbe60]{color:#666;font-size:14px;line-height:1.8}.rate-info strong[data-v-ecddbe60]{color:#333}.compare-table[data-v-ecddbe60]{flex-direction:column;gap:4px;display:flex}.compare-row[data-v-ecddbe60]{border-radius:6px;padding:10px 12px;font-size:14px;transition:background .2s;display:grid}.compare-row[data-v-ecddbe60]:not(.header):hover{background:#fafafa}.compare-row.header[data-v-ecddbe60]{color:#999;background:#f5f5f5;font-size:13px;font-weight:600}.compare-row[data-v-ecddbe60]{grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;gap:8px}.compare-row .name[data-v-ecddbe60]{color:#333;font-weight:500}.compare-row .amount[data-v-ecddbe60]{color:#34c759;font-weight:500}.page[data-v-376c3b68]{padding:20px}.page-header[data-v-376c3b68]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-376c3b68]{align-items:center;gap:16px;display:flex}.btn-back[data-v-376c3b68]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px 16px;font-size:14px}.page-header h3[data-v-376c3b68]{margin:0;font-size:20px;font-weight:600}.btn-add[data-v-376c3b68]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#34c759,#30b350);border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;display:flex}.btn-add span[data-v-376c3b68]{font-size:18px}.search-bar[data-v-376c3b68]{gap:10px;margin-bottom:12px;display:flex}.search-bar input[data-v-376c3b68]{border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:10px 14px;font-size:14px}.search-bar select[data-v-376c3b68]{border:1px solid #e0e0e0;border-radius:8px;padding:10px 14px;font-size:14px}.table-card[data-v-376c3b68]{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px #0000000f}.table[data-v-376c3b68]{width:100%}.thead[data-v-376c3b68]{color:#666;background:#f8f9fa;border-bottom:1px solid #f0f0f0;grid-template-columns:2fr 1fr 1fr .8fr 1.2fr 1fr;padding:14px 20px;font-size:13px;font-weight:600;display:grid}.tr[data-v-376c3b68]{border-bottom:1px solid #f5f5f5;grid-template-columns:2fr 1fr 1fr .8fr 1.2fr 1fr;align-items:center;padding:14px 20px;font-size:14px;transition:background .15s;display:grid}.tr[data-v-376c3b68]:hover{background:#fafafa}.tr[data-v-376c3b68]:last-child{border-bottom:none}.name[data-v-376c3b68]{color:#333;font-weight:500}.code[data-v-376c3b68]{color:#666;font-family:monospace;font-size:13px}.pkg[data-v-376c3b68]{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}.pkg-basic[data-v-376c3b68]{color:#34c759;background:#e6f7ed}.pkg-standard[data-v-376c3b68]{color:#007aff;background:#e6f0ff}.pkg-premium[data-v-376c3b68]{color:#ff9500;background:#fff3e0}.status-badge[data-v-376c3b68]{border-radius:20px;padding:2px 10px;font-size:12px;display:inline-block}.status-badge.active[data-v-376c3b68]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-376c3b68]{color:#f5222d;background:#fff1f0}.date[data-v-376c3b68]{color:#666;font-size:13px}.actions[data-v-376c3b68]{gap:6px;display:flex}.btn-link[data-v-376c3b68]{color:#007aff;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px}.btn-link[data-v-376c3b68]:hover{background:#e6f7ff}.btn-link.danger[data-v-376c3b68]{color:#f5222d}.btn-link.danger[data-v-376c3b68]:hover{background:#fff1f0}.empty[data-v-376c3b68]{text-align:center;color:#999;padding:40px;font-size:14px}.modal[data-v-376c3b68]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-376c3b68]{background:#fff;border-radius:16px;width:90%;max-width:500px;overflow:hidden}.modal-header[data-v-376c3b68]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-376c3b68]{margin:0;font-size:18px;font-weight:600}.modal-close[data-v-376c3b68]{color:#999;cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-376c3b68]{padding:24px}.form-group[data-v-376c3b68]{margin-bottom:16px}.form-group label[data-v-376c3b68]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-376c3b68]{color:#f5222d}.form-group input[data-v-376c3b68],.form-group select[data-v-376c3b68]{box-sizing:border-box;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group input[data-v-376c3b68]:focus,.form-group select[data-v-376c3b68]:focus{border-color:#667eea;outline:none}.form-group input[data-v-376c3b68]:disabled{color:#999;background:#f5f5f5}.form-row-2[data-v-376c3b68]{gap:12px;display:flex}.form-row-2 .form-group[data-v-376c3b68]{flex:1}.form-divider[data-v-376c3b68]{color:#333;border-top:1px solid #f0f0f0;margin-top:4px;padding:12px 0 8px;font-size:14px;font-weight:600}.modal-btns[data-v-376c3b68]{background:#fafafa;border-top:1px solid #f0f0f0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-376c3b68]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px}.modal-btns button.primary[data-v-376c3b68]{color:#fff;background:linear-gradient(135deg,#34c759,#30b350);border:none}.page[data-v-dbd49ea4]{padding:20px}.page-header[data-v-dbd49ea4]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header-left[data-v-dbd49ea4]{align-items:center;gap:16px;display:flex}.btn-back[data-v-dbd49ea4]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px 16px;font-size:14px}.btn-primary[data-v-dbd49ea4]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#34c759,#30b350);border:none;border-radius:8px;padding:8px 20px;font-size:14px}.btn-primary[data-v-dbd49ea4]:hover{opacity:.9}.page-header h3[data-v-dbd49ea4]{margin:0;font-size:20px;font-weight:600}.package-list[data-v-dbd49ea4]{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.package-card[data-v-dbd49ea4]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 12px #0000000f}.pkg-header[data-v-dbd49ea4]{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.pkg-name[data-v-dbd49ea4]{flex-direction:column;gap:6px;display:flex}.pkg-tag[data-v-dbd49ea4]{color:#333;font-size:18px;font-weight:600}.pkg-tag.tag-basic[data-v-dbd49ea4]{color:#34c759}.pkg-tag.tag-standard[data-v-dbd49ea4]{color:#007aff}.pkg-tag.tag-premium[data-v-dbd49ea4]{color:#ff9500}.pkg-code[data-v-dbd49ea4]{color:#999;font-family:monospace;font-size:12px}.pkg-actions[data-v-dbd49ea4]{gap:6px;display:flex}.btn-sm[data-v-dbd49ea4]{cursor:pointer;color:#333;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:6px 12px;font-size:13px}.btn-sm[data-v-dbd49ea4]:hover{color:#007aff;border-color:#007aff}.pkg-desc[data-v-dbd49ea4]{color:#666;min-height:40px;margin-bottom:12px;font-size:14px}.pkg-meta[data-v-dbd49ea4]{justify-content:space-between;align-items:center;font-size:13px;display:flex}.menu-count[data-v-dbd49ea4]{color:#999}.status-badge[data-v-dbd49ea4]{border-radius:20px;padding:2px 10px;font-size:12px}.status-badge.active[data-v-dbd49ea4]{color:#34c759;background:#e6f7ed}.status-badge.inactive[data-v-dbd49ea4]{color:#f5222d;background:#fff1f0}.modal[data-v-dbd49ea4]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-dbd49ea4]{background:#fff;border-radius:16px;width:90%;max-width:480px;overflow:hidden}.modal-content.wide[data-v-dbd49ea4]{flex-direction:column;max-width:560px;max-height:80vh;display:flex}.modal-header[data-v-dbd49ea4]{border-bottom:1px solid #f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-dbd49ea4]{margin:0;font-size:18px;font-weight:600}.modal-close[data-v-dbd49ea4]{color:#999;cursor:pointer;background:0 0;border:none;font-size:24px}.modal-body[data-v-dbd49ea4]{flex:1;padding:24px;overflow-y:auto}.tip[data-v-dbd49ea4]{color:#999;margin-bottom:16px;font-size:13px}.menu-tree[data-v-dbd49ea4]{border:1px solid #f0f0f0;border-radius:8px;max-height:400px;overflow-y:auto}.menu-row[data-v-dbd49ea4]{cursor:pointer;border-bottom:1px solid #fafafa;align-items:center;gap:8px;padding:10px 12px;display:flex}.menu-row[data-v-dbd49ea4]:last-child{border-bottom:none}.menu-row[data-v-dbd49ea4]:hover{background:#f5f5f5}.menu-icon[data-v-dbd49ea4]{font-size:14px}.menu-name[data-v-dbd49ea4]{color:#333;font-size:14px}.form-group[data-v-dbd49ea4]{margin-bottom:16px}.form-group label[data-v-dbd49ea4]{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input[data-v-dbd49ea4],.form-group select[data-v-dbd49ea4],.form-group textarea[data-v-dbd49ea4]{box-sizing:border-box;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group textarea[data-v-dbd49ea4]{resize:vertical}.modal-btns[data-v-dbd49ea4]{background:#fafafa;border-top:1px solid #f0f0f0;flex-shrink:0;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-dbd49ea4]{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1;padding:12px;font-size:14px}.modal-btns button.primary[data-v-dbd49ea4]{color:#fff;background:linear-gradient(135deg,#34c759,#30b350);border:none}.page[data-v-d0c76b75]{padding:24px}.page-header[data-v-d0c76b75]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left[data-v-d0c76b75]{align-items:center;gap:16px;display:flex}.btn-back[data-v-d0c76b75]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-d0c76b75]:hover{background:var(--bg-hover);color:var(--text-primary)}.page-header h3[data-v-d0c76b75]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-d0c76b75]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;display:flex}.search-bar[data-v-d0c76b75]{gap:8px;margin-bottom:16px;display:flex}.search-bar input[data-v-d0c76b75]{border:1px solid var(--border-color);border-radius:8px;flex:1;padding:10px 14px;font-size:14px}.search-bar select[data-v-d0c76b75]{border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;font-size:14px}.btn-search[data-v-d0c76b75]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px}.table-card[data-v-d0c76b75]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-d0c76b75]{width:100%}.thead[data-v-d0c76b75]{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-d0c76b75]{text-align:center;color:var(--text-secondary);flex:1}.sortable[data-v-d0c76b75]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-d0c76b75]:hover{color:var(--text-primary)}.sort-icon[data-v-d0c76b75]{margin-left:4px}.thead span[data-v-d0c76b75]:first-child{text-align:left;flex:.8}.tr[data-v-d0c76b75]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;transition:background .15s;display:flex}.tr[data-v-d0c76b75]:hover{background:var(--bg-hover)}.tr span[data-v-d0c76b75]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-d0c76b75]:first-child{text-align:left;flex:.8}.code[data-v-d0c76b75]{color:var(--text-secondary);background:#f3f4f6;border-radius:4px;padding:2px 8px;font-family:monospace}.name[data-v-d0c76b75]{font-weight:500}.time[data-v-d0c76b75]{color:var(--text-muted);font-size:13px}.status-badge[data-v-d0c76b75]{border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active[data-v-d0c76b75]{color:#065f46;background:#d1fae5}.status-badge.inactive[data-v-d0c76b75]{color:#991b1b;background:#fee2e2}.actions[data-v-d0c76b75]{justify-content:center;gap:8px;display:flex}.btn-link[data-v-d0c76b75]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:13px;font-weight:500}.btn-link[data-v-d0c76b75]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-d0c76b75]{color:var(--danger)}.btn-link.danger[data-v-d0c76b75]:hover{background:#fef2f2}.empty[data-v-d0c76b75]{text-align:center;color:var(--text-muted);padding:60px}.modal[data-v-d0c76b75]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-d0c76b75]{width:90%;max-width:500px;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-d0c76b75}.modal-header[data-v-d0c76b75]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-d0c76b75]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-d0c76b75]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-d0c76b75]:hover{color:var(--text-primary)}.modal-body[data-v-d0c76b75]{max-height:60vh;padding:24px;overflow-y:auto}.form-group[data-v-d0c76b75]{margin-bottom:20px}.form-group[data-v-d0c76b75]:last-child{margin-bottom:0}.form-group label[data-v-d0c76b75]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-d0c76b75]{color:var(--danger)}.form-group input[data-v-d0c76b75],.form-group select[data-v-d0c76b75]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-d0c76b75]:focus,.form-group select[data-v-d0c76b75]:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--border-color)}.form-group input[data-v-d0c76b75]:disabled{cursor:not-allowed;background:#f5f5f5}.detail-row[data-v-d0c76b75]{border-bottom:1px solid var(--border-color);padding:14px 0;display:flex}.detail-row label[data-v-d0c76b75]{width:80px;color:var(--text-secondary);font-size:14px}.detail-row span[data-v-d0c76b75]{color:var(--text-primary);flex:1;font-size:14px}.modal-btns[data-v-d0c76b75]{background:var(--bg-hover);border-top:1px solid var(--border-color);border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-d0c76b75]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-d0c76b75]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-d0c76b75]{background:var(--color-primary);color:#fff;border:none}.modal-btns button.primary[data-v-d0c76b75]:hover{background:var(--color-primary)}.role-list[data-v-d0c76b75]{flex-direction:column;gap:8px;display:flex}.role-item[data-v-d0c76b75]{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;padding:10px 12px;transition:all .15s}.role-item[data-v-d0c76b75]:hover{border-color:var(--color-primary);background:var(--bg-hover)}.role-item input[data-v-d0c76b75]{margin-right:8px}.role-item label[data-v-d0c76b75]{cursor:pointer;align-items:center;display:flex}.role-type[data-v-d0c76b75]{color:var(--text-muted);margin-left:8px;font-size:12px}@keyframes slideUp-d0c76b75{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ai-chat-page[data-v-7376c00c]{background:var(--bg-page);flex-direction:column;height:calc(100vh - 60px);padding:0;display:flex}.page-header[data-v-7376c00c]{background:var(--bg-card);border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;display:flex}.header-left[data-v-7376c00c]{align-items:center;gap:12px;display:flex}.btn-back[data-v-7376c00c]{border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);background:#fff;padding:8px 16px;font-size:14px}.page-header h3[data-v-7376c00c]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.chat-messages[data-v-7376c00c]{flex-direction:column;flex:1;gap:12px;padding:16px 16px 8px;display:flex;overflow-y:auto}.chat-welcome[data-v-7376c00c]{text-align:center;flex:1;padding:40px 20px}.welcome-icon[data-v-7376c00c]{margin-bottom:12px;font-size:48px}.welcome-text[data-v-7376c00c]{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.welcome-hint[data-v-7376c00c]{color:var(--text-muted);margin-bottom:24px;font-size:14px}.welcome-buttons[data-v-7376c00c]{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.msg-row[data-v-7376c00c]{width:100%;display:flex}.user-row[data-v-7376c00c]{justify-content:flex-end}.assistant-row[data-v-7376c00c]{justify-content:flex-start}.msg-bubble[data-v-7376c00c]{word-break:break-all;border-radius:12px;max-width:78%;padding:10px 14px;font-size:14px;line-height:1.6}.user-bubble[data-v-7376c00c]{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.assistant-bubble[data-v-7376c00c]{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px}.error-bubble[data-v-7376c00c]{color:var(--color-danger);background:#ffebee;border-bottom-left-radius:4px}.loading-bubble[data-v-7376c00c]{color:var(--text-muted);letter-spacing:4px}.loading-dot[data-v-7376c00c]{font-size:18px;animation:1.2s infinite pulse-7376c00c}.loading-dot[data-v-7376c00c]:nth-child(2){animation-delay:.2s}.loading-dot[data-v-7376c00c]:nth-child(3){animation-delay:.4s}@keyframes pulse-7376c00c{0%,60%,to{opacity:.3}30%{opacity:1}}.result-card[data-v-7376c00c]{flex-direction:column;gap:6px;display:flex}.result-line[data-v-7376c00c]{justify-content:space-between;gap:16px;min-width:200px;display:flex}.result-key[data-v-7376c00c]{color:var(--text-secondary);white-space:nowrap;font-size:13px}.result-val[data-v-7376c00c]{color:var(--text-primary);text-align:right;font-size:13px;font-weight:500}.md-content[data-v-7376c00c]{width:100%;overflow-x:auto}.md-content[data-v-7376c00c] table{border-collapse:collapse;width:100%;margin:4px 0;font-size:13px}.md-content[data-v-7376c00c] td,.md-content[data-v-7376c00c] th{text-align:left;border:1px solid var(--border-color);padding:6px 10px}.md-content[data-v-7376c00c] th{background:var(--bg-page);font-weight:600}.md-content[data-v-7376c00c] tr:nth-child(2n) td{background:#00000005}.md-content[data-v-7376c00c] p{margin:4px 0}.md-content[data-v-7376c00c] .md-title{color:var(--text-primary);margin:8px 0 4px;font-size:14px;font-weight:600}.msg-text[data-v-7376c00c]{white-space:pre-wrap;margin:0;font-family:inherit;font-size:14px}.quick-bar[data-v-7376c00c]{background:var(--bg-page);border-top:1px solid var(--border-color);gap:8px;padding:8px 16px;display:flex;overflow-x:auto}.btn-quick[data-v-7376c00c]{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:13px;transition:all .15s}.btn-quick[data-v-7376c00c]:hover{background:var(--bg-hover);border-color:var(--color-primary)}.input-row[data-v-7376c00c]{background:var(--bg-card);border-top:1px solid var(--border-color);align-items:center;gap:8px;padding:12px 16px;display:flex}.chat-input[data-v-7376c00c]{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-page);color:var(--text-primary);flex:1;padding:10px 14px;font-size:14px}.chat-input[data-v-7376c00c]:focus{border-color:var(--color-primary);outline:none}.chat-input[data-v-7376c00c]::placeholder{color:var(--text-muted)}.btn-send[data-v-7376c00c]{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:10px 18px;font-size:14px;font-weight:500}.btn-send[data-v-7376c00c]:hover{opacity:.85}.btn-send[data-v-7376c00c]:disabled{opacity:.4;cursor:not-allowed}.page[data-v-00f71ed0]{padding:20px;overflow-x:hidden}.page-header[data-v-00f71ed0]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.header-left[data-v-00f71ed0]{align-items:center;gap:16px;display:flex}.btn-back[data-v-00f71ed0]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:8px 16px;font-size:14px}.btn-back[data-v-00f71ed0]:hover{background:var(--bg-hover)}.page-header h3[data-v-00f71ed0]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.config-card[data-v-00f71ed0]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.preview-section[data-v-00f71ed0]{border-bottom:1px solid var(--border-color);background:#f7f7f8;padding:24px}.preview-label[data-v-00f71ed0]{color:var(--text-secondary);margin-bottom:12px;font-size:13px;font-weight:600}.preview-box[data-v-00f71ed0]{justify-content:center;display:flex}.preview-login-box[data-v-00f71ed0]{background:#fff;border-radius:10px;width:300px;padding:32px 28px;box-shadow:0 2px 8px #0000001a}.preview-header[data-v-00f71ed0]{text-align:center}.preview-logo-img[data-v-00f71ed0]{object-fit:contain;width:auto;max-width:200px;height:50px;margin-bottom:8px}.preview-logo[data-v-00f71ed0]{color:var(--color-primary);margin-bottom:8px;font-size:28px;font-weight:700}.preview-title-en[data-v-00f71ed0]{margin-bottom:2px;font-size:16px;font-weight:600}.preview-title-cn[data-v-00f71ed0]{color:var(--text-muted);font-size:12px}.form-section[data-v-00f71ed0]{padding:24px}.form-group[data-v-00f71ed0]{margin-bottom:20px}.form-group label[data-v-00f71ed0]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input[data-v-00f71ed0]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px}.form-group input[data-v-00f71ed0]:focus{border-color:var(--color-primary);outline:none}.logo-upload[data-v-00f71ed0]{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.logo-preview[data-v-00f71ed0]{position:relative}.logo-preview img[data-v-00f71ed0]{border:1px solid var(--border-color);object-fit:contain;background:#f7f7f8;border-radius:8px;width:auto;max-width:240px;height:60px}.btn-remove[data-v-00f71ed0]{color:#fff;cursor:pointer;background:#f5222d;border:none;border-radius:50%;width:20px;height:20px;font-size:12px;line-height:20px;position:absolute;top:-8px;right:-8px}.logo-placeholder[data-v-00f71ed0]{border:1px dashed var(--border-color);width:120px;height:60px;color:var(--color-primary);background:#f7f7f8;border-radius:8px;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.logo-upload-btn[data-v-00f71ed0]{flex-direction:column;gap:8px;display:flex}.logo-upload-btn input[type=file][data-v-00f71ed0]{display:none}.upload-tip[data-v-00f71ed0]{color:var(--text-muted);margin:0;font-size:12px}.form-actions[data-v-00f71ed0]{margin-top:24px}.form-actions .btn[data-v-00f71ed0]{padding:10px 32px}.page[data-v-12e566dd]{padding:24px}.page-header[data-v-12e566dd]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-12e566dd]{align-items:center;gap:16px;display:flex}.btn-back[data-v-12e566dd]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px}.btn-back[data-v-12e566dd]:hover{background:var(--bg-hover)}.page-header h3[data-v-12e566dd]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-12e566dd]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;display:flex}.btn-add span[data-v-12e566dd]{font-size:18px;font-weight:600}.table-card[data-v-12e566dd]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-12e566dd]{width:100%}.thead[data-v-12e566dd]{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-12e566dd]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-12e566dd]:first-child{text-align:left}.thead span[data-v-12e566dd]:last-child{text-align:center}.tr[data-v-12e566dd]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;display:flex}.tr[data-v-12e566dd]:hover{background:var(--bg-hover)}.tr[data-v-12e566dd]:last-child{border-bottom:none}.tr span[data-v-12e566dd]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-12e566dd]:first-child{text-align:left}.tr .code[data-v-12e566dd]{color:var(--text-secondary);background:#f3f4f6;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:13px}.tr .name[data-v-12e566dd]{font-weight:500}.actions[data-v-12e566dd]{justify-content:center;gap:6px;display:flex}.btn-link[data-v-12e566dd]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500}.btn-link[data-v-12e566dd]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-12e566dd]{color:var(--danger)}.btn-link.danger[data-v-12e566dd]:hover{background:#fef2f2}.empty[data-v-12e566dd]{text-align:center;color:var(--text-muted);padding:60px 40px;font-size:14px}.pagination[data-v-12e566dd]{justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.pagination button[data-v-12e566dd]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px;font-size:13px}.pagination button[data-v-12e566dd]:disabled{opacity:.5;cursor:not-allowed}.form-section[data-v-12e566dd]{margin-top:16px}.form-section-title[data-v-12e566dd]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500}.mapping-list[data-v-12e566dd]{flex-direction:column;gap:8px;display:flex}.mapping-row[data-v-12e566dd]{align-items:center;gap:8px;display:flex}.small-input[data-v-12e566dd]{border:1px solid var(--border-color);border-radius:8px;width:120px;padding:8px 10px;font-size:14px}.arrow[data-v-12e566dd]{color:var(--text-muted);font-size:16px}.btn-icon[data-v-12e566dd]{background:var(--bg-hover);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);border:none;border-radius:6px;font-size:14px}.modal[data-v-12e566dd]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-12e566dd]{width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-12e566dd;overflow-y:auto}.modal-header[data-v-12e566dd]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-12e566dd]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-12e566dd]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-12e566dd]:hover{color:var(--text-primary)}.modal-body[data-v-12e566dd]{padding:24px}.form-group[data-v-12e566dd]{margin-bottom:18px}.form-group[data-v-12e566dd]:last-child{margin-bottom:0}.form-group label[data-v-12e566dd]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-12e566dd]{color:var(--danger)}.form-row[data-v-12e566dd]{gap:16px;display:flex}.form-row .form-group[data-v-12e566dd]{flex:1}.form-group input[data-v-12e566dd],.form-group select[data-v-12e566dd],.form-group textarea[data-v-12e566dd]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-12e566dd]:focus,.form-group select[data-v-12e566dd]:focus,.form-group textarea[data-v-12e566dd]:focus{border-color:var(--color-primary)}.form-group textarea[data-v-12e566dd]{resize:vertical;min-height:60px}.modal-btns[data-v-12e566dd]{background:var(--bg-hover);border-top:1px solid var(--border-color);border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-12e566dd]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-12e566dd]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-12e566dd]{background:var(--color-primary);color:#fff;border:none}@keyframes slideUp-12e566dd{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page[data-v-f6df0bd0]{padding:24px}.page-header[data-v-f6df0bd0]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header-left[data-v-f6df0bd0]{align-items:center;gap:16px;display:flex}.btn-back[data-v-f6df0bd0]{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:#fff;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.btn-back[data-v-f6df0bd0]:hover{background:var(--bg-hover)}.page-header h3[data-v-f6df0bd0]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.btn-add[data-v-f6df0bd0]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.btn-add span[data-v-f6df0bd0]{font-size:18px;font-weight:600}.table-card[data-v-f6df0bd0]{box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:hidden}.table[data-v-f6df0bd0]{width:100%}.thead[data-v-f6df0bd0]{background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;padding:14px 20px;font-size:13px;font-weight:600;display:flex}.thead span[data-v-f6df0bd0]{text-align:center;color:var(--text-secondary);flex:1}.thead span[data-v-f6df0bd0]:first-child{text-align:left}.thead span[data-v-f6df0bd0]:last-child{text-align:center}.tr[data-v-f6df0bd0]{border-bottom:1px solid var(--border-color);align-items:center;padding:16px 20px;transition:background .15s;display:flex}.tr[data-v-f6df0bd0]:hover{background:var(--bg-hover)}.tr[data-v-f6df0bd0]:last-child{border-bottom:none}.tr span[data-v-f6df0bd0]{text-align:center;color:var(--text-primary);flex:1;font-size:14px}.tr span[data-v-f6df0bd0]:first-child{text-align:left}.tr span[data-v-f6df0bd0]:last-child{text-align:center}.tr .name[data-v-f6df0bd0]{font-weight:500}.tr .mono[data-v-f6df0bd0]{color:var(--text-secondary);background:#f3f4f6;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:12px}.tag[data-v-f6df0bd0]{border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.tag.success[data-v-f6df0bd0]{color:#065f46;background:#d1fae5}.tag.muted[data-v-f6df0bd0]{background:var(--bg-hover);color:var(--text-muted)}.actions[data-v-f6df0bd0]{justify-content:center;gap:6px;display:flex}.btn-link[data-v-f6df0bd0]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500;transition:all .15s}.btn-link[data-v-f6df0bd0]:hover{background:var(--bg-hover)}.btn-link.danger[data-v-f6df0bd0]{color:var(--danger)}.btn-link.danger[data-v-f6df0bd0]:hover{background:#fef2f2}.btn-link.success[data-v-f6df0bd0]{color:#059669}.btn-link.success[data-v-f6df0bd0]:hover{background:#f0fdf4}.empty[data-v-f6df0bd0]{text-align:center;color:var(--text-muted);padding:60px 40px;font-size:14px}.pagination[data-v-f6df0bd0]{justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.pagination button[data-v-f6df0bd0]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px;font-size:13px}.pagination button[data-v-f6df0bd0]:disabled{opacity:.5;cursor:not-allowed}.status-success[data-v-f6df0bd0]{color:#059669}.status-failed[data-v-f6df0bd0]{color:#dc2626}.status-running[data-v-f6df0bd0]{color:var(--color-primary)}.modal[data-v-f6df0bd0]{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-f6df0bd0]{width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:16px;animation:.2s slideUp-f6df0bd0;overflow-y:auto}.modal-content.modal-wide[data-v-f6df0bd0]{max-width:640px}.modal-header[data-v-f6df0bd0]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h4[data-v-f6df0bd0]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.modal-close[data-v-f6df0bd0]{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.modal-close[data-v-f6df0bd0]:hover{color:var(--text-primary)}.modal-body[data-v-f6df0bd0]{padding:24px}.form-group[data-v-f6df0bd0]{margin-bottom:18px}.form-group[data-v-f6df0bd0]:last-child{margin-bottom:0}.form-group label[data-v-f6df0bd0]{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group .required[data-v-f6df0bd0]{color:var(--danger)}.form-group input[data-v-f6df0bd0],.form-group select[data-v-f6df0bd0],.form-group textarea[data-v-f6df0bd0]{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input[data-v-f6df0bd0]:focus,.form-group select[data-v-f6df0bd0]:focus,.form-group textarea[data-v-f6df0bd0]:focus{border-color:var(--color-primary)}.form-group textarea[data-v-f6df0bd0]{resize:vertical;min-height:60px}.hint[data-v-f6df0bd0]{color:var(--text-muted);margin-top:4px;font-size:12px}.modal-btns[data-v-f6df0bd0]{background:var(--bg-hover);border-top:1px solid var(--border-color);border-radius:0 0 16px 16px;gap:12px;padding:20px 24px;display:flex}.modal-btns button[data-v-f6df0bd0]{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .2s}.modal-btns button[data-v-f6df0bd0]:hover{background:var(--bg-hover)}.modal-btns button.primary[data-v-f6df0bd0]{background:var(--color-primary);color:#fff;border:none}.log-item[data-v-f6df0bd0]{border-bottom:1px solid var(--border-color);padding:12px 0}.log-item[data-v-f6df0bd0]:last-child{border-bottom:none}.log-header[data-v-f6df0bd0]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.log-time[data-v-f6df0bd0]{color:var(--text-secondary);font-size:13px}.log-status[data-v-f6df0bd0]{border-radius:4px;padding:2px 6px;font-size:12px}.log-status.success[data-v-f6df0bd0]{color:#065f46;background:#d1fae5}.log-status.failed[data-v-f6df0bd0]{color:#991b1b;background:#fee2e2}.log-trigger[data-v-f6df0bd0]{color:var(--text-muted);font-size:12px}.log-detail[data-v-f6df0bd0]{color:var(--text-secondary);font-size:13px}.log-error[data-v-f6df0bd0]{color:#dc2626;margin-top:4px;font-size:12px}.log-info[data-v-f6df0bd0]{color:var(--text-muted);margin-top:4px;font-size:12px}@keyframes slideUp-f6df0bd0{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.main-layout[data-v-b354dd46]{background:var(--bg-page);min-height:100%}.header[data-v-b354dd46]{border-bottom:1px solid var(--border-color);z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.header-left[data-v-b354dd46]{align-items:center;gap:16px;display:flex}.header-right[data-v-b354dd46]{align-items:center;gap:12px;display:flex}.btn-message[data-v-b354dd46]{cursor:pointer;background:0 0;border:none;padding:8px;font-size:20px;position:relative}.badge-count[data-v-b354dd46]{color:#fff;background:#f5222d;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;font-size:10px;font-weight:600;display:flex;position:absolute;top:0;right:0}.logo[data-v-b354dd46]{background:var(--color-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.header-info[data-v-b354dd46]{align-items:center;gap:10px;display:flex}.username[data-v-b354dd46]{font-size:14px;font-weight:500}.badge[data-v-b354dd46]{background:var(--bg-hover);color:var(--text-secondary);border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500}.badge-admin[data-v-b354dd46]{color:#fff;background:#000}.attendance-card[data-v-b354dd46]{max-width:800px;box-shadow:var(--shadow);background:#fff;border-radius:12px;margin:20px auto;padding:16px}.attendance-header[data-v-b354dd46]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.attendance-title[data-v-b354dd46]{font-size:15px;font-weight:600}.shift-info[data-v-b354dd46]{color:var(--text-secondary);font-size:13px}.attendance-content[data-v-b354dd46]{gap:24px;display:flex}.check-item[data-v-b354dd46]{align-items:center;gap:12px;display:flex}.check-label[data-v-b354dd46]{color:var(--text-secondary);font-size:14px}.check-btn[data-v-b354dd46]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px}.check-btn[data-v-b354dd46]:disabled{cursor:not-allowed;background:#ccc}.check-done[data-v-b354dd46]{font-size:14px;font-weight:500}.status-normal[data-v-b354dd46]{color:#52c41a}.status-warning[data-v-b354dd46]{color:#f5222d}.content[data-v-b354dd46]{max-width:800px;margin:0 auto;padding:32px}.menu-section[data-v-b354dd46]{margin-bottom:32px}.menu-section-title[data-v-b354dd46]{color:var(--text-primary);margin-bottom:16px;padding-left:4px;font-size:16px;font-weight:600}.menu-grid[data-v-b354dd46]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px;display:grid}.menu-card[data-v-b354dd46]{cursor:pointer;border:1px solid var(--border-color);background:#fff;border-radius:10px;flex-direction:column;align-items:center;padding:24px 16px;transition:all .15s;display:flex}.menu-card[data-v-b354dd46]:hover{border-color:var(--color-primary);transform:translateY(-2px)}.menu-card-icon[data-v-b354dd46]{border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:12px;font-size:20px;display:flex}.menu-card-name[data-v-b354dd46]{color:var(--text-primary);font-size:13px;font-weight:500}.favorites-section[data-v-b354dd46]{max-width:800px;box-shadow:var(--shadow);background:#fff;border-radius:12px;margin:20px auto;padding:12px 0}.favorites-scroll[data-v-b354dd46]{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:8px;padding:0 12px;display:flex;overflow:auto hidden}.favorites-scroll[data-v-b354dd46]::-webkit-scrollbar{display:none}.favorites-scroll[data-v-b354dd46]{scrollbar-width:none}.favorite-item[data-v-b354dd46]{background:var(--bg-page);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;min-width:64px;padding:10px 12px;display:flex}.favorite-item[data-v-b354dd46]:active{opacity:.7}.favorite-icon[data-v-b354dd46]{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.favorite-name[data-v-b354dd46]{color:var(--text-primary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:64px;font-size:11px;overflow:hidden}@media (width<=768px){.header[data-v-b354dd46]{padding:12px 16px}.header-left[data-v-b354dd46]{gap:10px}.header-info h1[data-v-b354dd46]{font-size:15px}.content[data-v-b354dd46]{padding:16px;overflow-x:hidden}.menu-grid[data-v-b354dd46]{grid-template-columns:repeat(3,1fr);gap:12px}.menu-card[data-v-b354dd46]{padding:16px 8px}.attendance-card[data-v-b354dd46]{margin:12px;padding:12px}.attendance-content[data-v-b354dd46]{flex-wrap:wrap;gap:12px}.check-item[data-v-b354dd46]{gap:8px}.check-label[data-v-b354dd46],.check-btn[data-v-b354dd46],.check-done[data-v-b354dd46]{font-size:13px}.favorites-section[data-v-b354dd46]{margin:12px}}*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f2f5;height:100%;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#app{height:100%;min-height:100%}
