.detail[data-v-5ecc670b]{background:#e8f5e9;padding:28px 32px 32px;font-size:14px;color:#2c3e50}.head[data-v-5ecc670b]{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px}.info h1[data-v-5ecc670b]{margin:0 0 14px;font-size:32px;font-weight:700;color:#222}.row[data-v-5ecc670b]{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#555}.row i[data-v-5ecc670b]{color:#bbb;font-style:normal}.row .phone[data-v-5ecc670b]{display:inline-flex;align-items:center;gap:6px;color:#6a1b9a}.avatar img[data-v-5ecc670b],.avatar .ph[data-v-5ecc670b]{width:78px;height:78px;border-radius:10px;object-fit:cover;display:flex;align-items:center;justify-content:center;color:#fff;font-size:32px;font-weight:600}.block[data-v-5ecc670b]{margin-top:20px}.block h2[data-v-5ecc670b]{font-size:20px;font-weight:700;margin:0 0 10px;color:#222}.text[data-v-5ecc670b]{margin:0 0 4px;color:#555;line-height:1.7}.meta[data-v-5ecc670b]{margin:6px 0 0;color:#777;font-size:13px}.empty[data-v-5ecc670b]{color:#999;font-size:13px;padding:8px 0}.timeline[data-v-5ecc670b]{list-style:none;padding:0;margin:8px 0 0;position:relative}.timeline[data-v-5ecc670b]:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:#66bb6a}.timeline li[data-v-5ecc670b]{position:relative;padding:0 0 18px 28px}.timeline li[data-v-5ecc670b]:before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;border-radius:50%;background:#43a047;box-shadow:0 0 0 3px #e8f5e9}.timeline li[data-v-5ecc670b]:last-child{padding-bottom:0}.top[data-v-5ecc670b]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.top strong[data-v-5ecc670b]{font-size:16px;color:#222}.top .pos[data-v-5ecc670b]{color:#555}.top .range[data-v-5ecc670b]{margin-left:auto;color:#777;font-size:13px}.desc[data-v-5ecc670b]{margin:6px 0 0;color:#666}.modal-mask[data-v-aa0efb3d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card[data-v-aa0efb3d]{background:#fff;border-radius:10px;width:760px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header[data-v-aa0efb3d]{padding:16px 24px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-aa0efb3d]{margin:0;font-size:18px;color:#673ab7}.modal-header .close[data-v-aa0efb3d]{background:none;border:none;font-size:22px;color:#888;cursor:pointer}.modal-body[data-v-aa0efb3d]{padding:20px 24px;overflow:auto}.modal-footer[data-v-aa0efb3d]{padding:12px 24px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:10px;background:#fafafa}.form-grid[data-v-aa0efb3d]{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field[data-v-aa0efb3d]{display:flex;flex-direction:column;gap:4px}.field.full[data-v-aa0efb3d]{grid-column:1 / -1}.field label[data-v-aa0efb3d]{color:#888;font-size:12px}.field input[data-v-aa0efb3d],.field select[data-v-aa0efb3d],.field textarea[data-v-aa0efb3d]{padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;font-family:inherit}.field input[data-v-aa0efb3d]:focus,.field select[data-v-aa0efb3d]:focus,.field textarea[data-v-aa0efb3d]:focus{border-color:#673ab7}.field small[data-v-aa0efb3d]{color:#c62828;font-size:12px}.field.err input[data-v-aa0efb3d],.field.err select[data-v-aa0efb3d]{border-color:#c62828}.exp-head[data-v-aa0efb3d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.exp-head label[data-v-aa0efb3d]{color:#888;font-size:12px}.exp-empty[data-v-aa0efb3d]{color:#aaa;font-size:13px;padding:12px;background:#fafafa;border-radius:6px;text-align:center}.exp-card[data-v-aa0efb3d]{position:relative;border:1px solid #eee;border-radius:8px;padding:12px;margin-bottom:10px;background:#fafafa}.exp-grid[data-v-aa0efb3d]{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin-bottom:8px}.exp-del[data-v-aa0efb3d]{position:absolute;top:8px;right:8px}.btn.small[data-v-aa0efb3d]{padding:4px 12px;font-size:12px}.btn[data-v-aa0efb3d]{border:none;border-radius:6px;padding:8px 18px;background:#673ab7;color:#fff;font-size:14px;cursor:pointer}.btn[data-v-aa0efb3d]:hover{background:#512da8}.btn[data-v-aa0efb3d]:disabled{opacity:.5;cursor:not-allowed}.btn.ghost[data-v-aa0efb3d]{background:#fff;color:#673ab7;border:1px solid #d1c4e9}.btn.ghost[data-v-aa0efb3d]:hover{background:#ede7f6}.btn.danger[data-v-aa0efb3d]{background:#c62828}.btn.danger[data-v-aa0efb3d]:hover{background:#8e0000}.global-err[data-v-aa0efb3d]{margin:12px 0 0;padding:10px 14px;background:#ffebee;color:#c62828;border-radius:6px;font-size:13px}.employee-page[data-v-2e7caa2f]{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 2px 8px #0000000a}.toolbar[data-v-2e7caa2f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.toolbar h2[data-v-2e7caa2f]{margin:0;font-size:18px;color:#673ab7}.actions[data-v-2e7caa2f]{display:flex;gap:12px;align-items:center}.search[data-v-2e7caa2f]{display:flex;gap:8px}.search input[data-v-2e7caa2f]{padding:7px 12px;border:1px solid #ddd;border-radius:6px;width:220px;outline:none;font-size:14px}.search input[data-v-2e7caa2f]:focus{border-color:#673ab7}.table-wrap[data-v-2e7caa2f]{overflow:auto}table[data-v-2e7caa2f]{width:100%;border-collapse:collapse;font-size:14px}th[data-v-2e7caa2f],td[data-v-2e7caa2f]{padding:10px 12px;border-bottom:1px solid #f0f0f0;text-align:left}th[data-v-2e7caa2f]{background:#faf9fd;color:#555;font-weight:500}tr[data-v-2e7caa2f]:hover{background:#faf9fd}.empty[data-v-2e7caa2f]{text-align:center;color:#999;padding:30px}.tag[data-v-2e7caa2f]{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px}.tag.active[data-v-2e7caa2f]{background:#ede7f6;color:#673ab7}.tag.inactive[data-v-2e7caa2f]{background:#f5f5f5;color:#888}.ops[data-v-2e7caa2f]{display:flex;gap:6px}.btn.xs[data-v-2e7caa2f]{padding:4px 10px;font-size:12px}.btn[data-v-2e7caa2f]{border:none;border-radius:6px;padding:7px 14px;background:#673ab7;color:#fff;font-size:13px;cursor:pointer;transition:background .15s}.btn[data-v-2e7caa2f]:hover{background:#512da8}.btn.ghost[data-v-2e7caa2f]{background:#fff;color:#673ab7;border:1px solid #d1c4e9}.btn.ghost[data-v-2e7caa2f]:hover{background:#ede7f6}.btn.danger[data-v-2e7caa2f]{background:#c62828}.btn.danger[data-v-2e7caa2f]:hover{background:#8e0000}.btn[data-v-2e7caa2f]:disabled{opacity:.5;cursor:not-allowed}.modal-mask[data-v-2e7caa2f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:999}.modal-card[data-v-2e7caa2f]{background:#fff;border-radius:10px;width:880px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000002e}.modal-header[data-v-2e7caa2f]{padding:16px 24px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-2e7caa2f]{margin:0;font-size:18px;color:#673ab7}.modal-header .close[data-v-2e7caa2f]{background:none;border:none;font-size:22px;color:#888;cursor:pointer}.modal-body[data-v-2e7caa2f]{padding:0;overflow:auto}.confirm-card[data-v-2e7caa2f]{background:#fff;border-radius:10px;width:420px;padding:22px 24px;box-shadow:0 20px 60px #0003}.confirm-card h3[data-v-2e7caa2f]{margin:0 0 12px;color:#c62828}.confirm-card p[data-v-2e7caa2f]{margin:4px 0;color:#555}.confirm-card .dim[data-v-2e7caa2f]{color:#999;font-size:13px}.confirm-card .actions[data-v-2e7caa2f]{margin-top:18px;display:flex;justify-content:flex-end;gap:10px}.fade-enter-active[data-v-2e7caa2f],.fade-leave-active[data-v-2e7caa2f]{transition:opacity .2s}.fade-enter-from[data-v-2e7caa2f],.fade-leave-to[data-v-2e7caa2f]{opacity:0}.company-page[data-v-8e4180e9]{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 2px 8px #0000000a}.toolbar[data-v-8e4180e9]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.toolbar h2[data-v-8e4180e9]{margin:0;font-size:18px;color:#673ab7}.empty[data-v-8e4180e9]{text-align:center;color:#999;padding:40px}.empty-mini[data-v-8e4180e9]{color:#aaa;padding:16px;text-align:center;background:#fafafa;border-radius:6px}.grid[data-v-8e4180e9]{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-bottom:28px}.field[data-v-8e4180e9]{display:flex;flex-direction:column;gap:6px}.field.full[data-v-8e4180e9]{grid-column:1 / -1}.field label[data-v-8e4180e9]{color:#888;font-size:13px}.field input[data-v-8e4180e9],.field textarea[data-v-8e4180e9]{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none}.field input[data-v-8e4180e9]:focus,.field textarea[data-v-8e4180e9]:focus{border-color:#673ab7}.field .strong[data-v-8e4180e9]{font-weight:600;color:#222}.intro[data-v-8e4180e9]{border-top:1px solid #eee;padding-top:20px}.intro-head[data-v-8e4180e9]{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.intro-head h3[data-v-8e4180e9]{margin:0;font-size:16px;color:#673ab7;font-weight:600;display:flex;align-items:center;gap:6px}.intro-head h3[data-v-8e4180e9]:before{content:"";display:inline-block;width:4px;height:16px;background:#673ab7;border-radius:2px}.intro-head .dim[data-v-8e4180e9]{color:#aaa;font-size:12px}.intro-text[data-v-8e4180e9]{background:linear-gradient(180deg,#faf9fd,#f4f0fa);border-left:3px solid #673ab7;border-radius:6px;padding:18px 22px;line-height:1.85;color:#444;font-size:14px;text-align:justify}.intro-text p[data-v-8e4180e9]{margin:0 0 10px}.intro-text p[data-v-8e4180e9]:last-child{margin-bottom:0}.intro-text .first-chars[data-v-8e4180e9]{color:#673ab7;font-weight:700;font-size:15px;letter-spacing:.5px;margin-right:1px}.banner[data-v-8e4180e9]{display:flex;align-items:center;gap:18px;padding:18px 22px;margin-bottom:22px;background:linear-gradient(135deg,#ede7f6,#f3e5f5);border:1px solid #d1c4e9;border-radius:10px}.banner-logo[data-v-8e4180e9]{width:76px;height:76px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #673ab71f;flex-shrink:0}.banner-logo img[data-v-8e4180e9]{width:56px;height:auto}.logo-fallback[data-v-8e4180e9]{color:#673ab7;font-size:24px;font-weight:700;letter-spacing:2px}.banner-name[data-v-8e4180e9]{font-size:22px;font-weight:700;color:#222;letter-spacing:.5px}.banner-sub[data-v-8e4180e9]{margin-top:4px;font-size:13px;color:#673ab7}.tag-cloud[data-v-8e4180e9]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px dashed #e0d4f5}.tag-label[data-v-8e4180e9]{font-size:12px;color:#999;margin-right:4px}.tag-chip[data-v-8e4180e9]{display:inline-block;padding:4px 12px;background:#ede7f6;color:#673ab7;border-radius:14px;font-size:12px;border:1px solid #d1c4e9;transition:background .15s}.tag-chip[data-v-8e4180e9]:hover{background:#d1c4e9}.intro-edit[data-v-8e4180e9]{width:100%;font-family:inherit;border:1px solid #ddd;border-radius:6px;padding:12px;font-size:14px;outline:none;line-height:1.7}.intro-edit[data-v-8e4180e9]:focus{border-color:#673ab7}.actions[data-v-8e4180e9]{margin-top:20px;display:flex;align-items:center;gap:12px}.ok[data-v-8e4180e9]{color:#2e7d32;font-size:13px}.btn[data-v-8e4180e9]{border:none;border-radius:6px;padding:8px 16px;background:#673ab7;color:#fff;font-size:14px;cursor:pointer}.btn[data-v-8e4180e9]:hover{background:#512da8}.btn.ghost[data-v-8e4180e9]{background:#fff;color:#673ab7;border:1px solid #d1c4e9}.btn.ghost[data-v-8e4180e9]:hover{background:#ede7f6}.user-page[data-v-7ab987c1]{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 2px 8px #0000000a}.toolbar[data-v-7ab987c1]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.toolbar h2[data-v-7ab987c1]{margin:0;font-size:18px;color:#673ab7}.actions[data-v-7ab987c1]{display:flex;gap:12px;align-items:center}.search[data-v-7ab987c1]{display:flex;gap:8px}.search input[data-v-7ab987c1]{padding:7px 12px;border:1px solid #ddd;border-radius:6px;width:200px;outline:none;font-size:14px}.search input[data-v-7ab987c1]:focus{border-color:#673ab7}.table-wrap[data-v-7ab987c1]{overflow:auto}table[data-v-7ab987c1]{width:100%;border-collapse:collapse;font-size:14px}th[data-v-7ab987c1],td[data-v-7ab987c1]{padding:10px 12px;border-bottom:1px solid #f0f0f0;text-align:left}th[data-v-7ab987c1]{background:#faf9fd;color:#555;font-weight:500}tr[data-v-7ab987c1]:hover{background:#faf9fd}.empty[data-v-7ab987c1]{text-align:center;color:#999;padding:30px}.dim[data-v-7ab987c1]{color:#888;font-size:13px}.me-tag[data-v-7ab987c1]{display:inline-block;margin-left:6px;padding:1px 6px;background:#ede7f6;color:#673ab7;border-radius:3px;font-size:11px}.role-tag[data-v-7ab987c1]{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px}.role-tag.admin[data-v-7ab987c1]{background:#fff3e0;color:#e65100}.role-tag.user[data-v-7ab987c1]{background:#e3f2fd;color:#1565c0}.status[data-v-7ab987c1]{display:inline-flex;align-items:center;gap:6px;font-size:13px}.status .dot[data-v-7ab987c1]{width:8px;height:8px;border-radius:50%}.status.active .dot[data-v-7ab987c1]{background:#43a047}.status.active[data-v-7ab987c1]{color:#2e7d32}.status.inactive .dot[data-v-7ab987c1]{background:#bdbdbd}.status.inactive[data-v-7ab987c1]{color:#888}.ops[data-v-7ab987c1]{display:flex;gap:6px;flex-wrap:wrap}.btn.xs[data-v-7ab987c1]{padding:4px 10px;font-size:12px}.btn[data-v-7ab987c1]{border:none;border-radius:6px;padding:7px 14px;background:#673ab7;color:#fff;font-size:13px;cursor:pointer;transition:background .15s}.btn[data-v-7ab987c1]:hover{background:#512da8}.btn[data-v-7ab987c1]:disabled{opacity:.4;cursor:not-allowed}.btn.ghost[data-v-7ab987c1]{background:#fff;color:#673ab7;border:1px solid #d1c4e9}.btn.ghost[data-v-7ab987c1]:hover{background:#ede7f6}.btn.danger[data-v-7ab987c1]{background:#c62828}.btn.danger[data-v-7ab987c1]:hover{background:#8e0000}.modal-mask[data-v-7ab987c1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card[data-v-7ab987c1]{background:#fff;border-radius:10px;width:520px;max-width:96vw;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-card.small[data-v-7ab987c1]{width:420px}.modal-header[data-v-7ab987c1]{padding:14px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-7ab987c1]{margin:0;font-size:17px;color:#673ab7}.modal-header .close[data-v-7ab987c1]{background:none;border:none;font-size:22px;color:#888;cursor:pointer}.modal-body[data-v-7ab987c1]{padding:20px 24px}.modal-footer[data-v-7ab987c1]{padding:12px 20px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:10px;background:#fafafa}.form-grid[data-v-7ab987c1]{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.field[data-v-7ab987c1]{display:flex;flex-direction:column;gap:6px}.field.full[data-v-7ab987c1]{grid-column:1 / -1}.field label[data-v-7ab987c1]{color:#888;font-size:13px}.field input[data-v-7ab987c1],.field select[data-v-7ab987c1]{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;font-family:inherit}.field input[data-v-7ab987c1]:focus,.field select[data-v-7ab987c1]:focus{border-color:#673ab7}.field input[data-v-7ab987c1]:disabled,.field select[data-v-7ab987c1]:disabled{background:#f5f5f5;color:#888}.hint[data-v-7ab987c1]{margin:0 0 14px;color:#555}.tip[data-v-7ab987c1]{margin:12px 0 0;color:#c62828;font-size:12px}.fade-enter-active[data-v-7ab987c1],.fade-leave-active[data-v-7ab987c1]{transition:opacity .2s}.fade-enter-from[data-v-7ab987c1],.fade-leave-to[data-v-7ab987c1]{opacity:0}.login-page[data-v-372f1655]{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#ede7f6,#f3e5f5,#e1bee7);padding:20px}.card[data-v-372f1655]{display:flex;width:880px;max-width:96vw;min-height:480px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #673ab72e}.brand-side[data-v-372f1655]{width:380px;background:linear-gradient(160deg,#673ab7,#9c27b0);color:#f3e5f5;padding:40px 36px;display:flex;flex-direction:column;position:relative;overflow:hidden}.brand-side[data-v-372f1655]:before{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:#ffffff14}.brand-side[data-v-372f1655]:after{content:"";position:absolute;right:-40px;bottom:-100px;width:180px;height:180px;border-radius:50%;background:#ffffff0f}.logo[data-v-372f1655]{width:76px;height:76px;background:#fff;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #00000026;position:relative;z-index:1}.logo img[data-v-372f1655]{width:56px}.logo .ph[data-v-372f1655]{color:#673ab7;font-size:24px;font-weight:700;letter-spacing:2px}.brand-side h1[data-v-372f1655]{margin:22px 0 6px;font-size:22px;font-weight:700;position:relative;z-index:1}.brand-side .sub[data-v-372f1655]{margin:0 0 28px;font-size:13px;color:#f3e5f5cc;position:relative;z-index:1}.features[data-v-372f1655]{list-style:none;padding:0;margin:0;position:relative;z-index:1}.features li[data-v-372f1655]{padding:8px 0;font-size:14px;color:#f3e5f5eb;border-bottom:1px solid rgba(255,255,255,.1)}.features li[data-v-372f1655]:last-child{border-bottom:none}.footer-tag[data-v-372f1655]{margin-top:auto;font-size:12px;color:#f3e5f580;position:relative;z-index:1}.form-side[data-v-372f1655]{flex:1;padding:50px 56px;display:flex;flex-direction:column;justify-content:center}.form-side h2[data-v-372f1655]{margin:0 0 6px;font-size:26px;color:#222}.hint[data-v-372f1655]{margin:0 0 32px;color:#888;font-size:14px}.form[data-v-372f1655]{display:flex;flex-direction:column;gap:18px}.field[data-v-372f1655]{display:flex;flex-direction:column;gap:6px}.field label[data-v-372f1655]{color:#555;font-size:13px;font-weight:500}.input-wrap[data-v-372f1655]{display:flex;align-items:center;gap:8px;border:1.5px solid #e0e0e0;border-radius:8px;padding:0 12px;transition:border-color .15s;background:#fafafa}.input-wrap[data-v-372f1655]:focus-within{border-color:#673ab7;background:#fff;box-shadow:0 0 0 3px #673ab714}.input-wrap .ico[data-v-372f1655]{color:#999;font-size:14px}.input-wrap input[data-v-372f1655]{flex:1;border:none;outline:none;padding:12px 0;font-size:15px;background:transparent;font-family:inherit}.row[data-v-372f1655]{display:flex;align-items:center;justify-content:space-between}.remember[data-v-372f1655]{display:flex;align-items:center;gap:6px;color:#666;font-size:13px;cursor:pointer}.remember input[data-v-372f1655]{cursor:pointer}.err-msg[data-v-372f1655]{padding:10px 14px;border-radius:6px;background:#ffebee;color:#c62828;font-size:13px}.submit[data-v-372f1655]{margin-top:8px;padding:12px;background:linear-gradient(135deg,#673ab7,#9c27b0);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;letter-spacing:4px;transition:opacity .15s,transform .05s}.submit[data-v-372f1655]:hover{opacity:.92}.submit[data-v-372f1655]:active{transform:scale(.99)}.submit[data-v-372f1655]:disabled{opacity:.6;cursor:not-allowed}.meta[data-v-372f1655]{margin-top:20px;padding:14px 16px;background:#f5f0ff;border-radius:8px;font-size:12px;color:#673ab7;text-align:center}.meta p[data-v-372f1655]{margin:0 0 4px}.meta code[data-v-372f1655]{display:inline-block;margin:4px 0;padding:2px 10px;background:#fff;border-radius:4px;font-weight:600;color:#512da8}.meta .tip[data-v-372f1655]{color:#c62828;margin-top:6px}.copyright[data-v-372f1655]{margin-top:24px;color:#9575cd;font-size:12px}.layout[data-v-ac649f8c]{display:flex;min-height:100vh;background:#f4f6f5}.sidebar[data-v-ac649f8c]{width:220px;background:linear-gradient(180deg,#673ab7,#9c27b0);color:#f3e5f5;display:flex;flex-direction:column;flex-shrink:0;transition:width .2s ease;box-shadow:2px 0 8px #00000014}.sidebar.collapsed[data-v-ac649f8c]{width:64px}.brand[data-v-ac649f8c]{display:flex;align-items:center;gap:10px;padding:18px;border-bottom:1px solid rgba(255,255,255,.12);min-height:60px}.logo[data-v-ac649f8c]{display:flex;align-items:center}.logo img[data-v-ac649f8c]{height:30px;width:auto;display:block}.name[data-v-ac649f8c]{font-size:16px;font-weight:600;letter-spacing:1px;flex:1}.menu[data-v-ac649f8c]{flex:1;padding:12px 0;overflow-y:auto}.menu[data-v-ac649f8c]::-webkit-scrollbar{width:4px}.menu[data-v-ac649f8c]::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.group-title[data-v-ac649f8c]{padding:12px 20px 6px;font-size:11px;color:#f3e5f58c;letter-spacing:1.5px;text-transform:uppercase}.group ul[data-v-ac649f8c]{list-style:none;padding:0;margin:0}.item[data-v-ac649f8c]{display:flex;align-items:center;gap:12px;padding:10px 20px;margin:2px 8px;border-radius:6px;cursor:pointer;font-size:14px;color:#f3e5f5d9;transition:background .15s,color .15s;position:relative}.item[data-v-ac649f8c]:hover:not(.disabled){background:#ffffff1a;color:#fff}.item.active[data-v-ac649f8c]{background:#ffffff2e;color:#fff;font-weight:500}.item.active[data-v-ac649f8c]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:#f8bbd0;border-radius:0 2px 2px 0}.item.disabled[data-v-ac649f8c]{opacity:.45;cursor:not-allowed}.item .icon[data-v-ac649f8c]{font-size:16px;width:18px;text-align:center}.item .label[data-v-ac649f8c]{flex:1;white-space:nowrap}.item .badge[data-v-ac649f8c]{font-size:11px;padding:1px 6px;background:#ffffff2e;border-radius:8px;color:#f3e5f5cc}.footer[data-v-ac649f8c]{padding:12px;border-top:1px solid rgba(255,255,255,.12)}.host[data-v-ac649f8c]{padding:4px 8px 10px;font-size:12px}.host .row[data-v-ac649f8c]{padding:2px 0}.host .row.dim[data-v-ac649f8c]{color:#f3e5f58c}.host .row.v[data-v-ac649f8c]{color:#f3e5f559;margin-top:4px}.toggle[data-v-ac649f8c]{width:100%;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);color:#f3e5f5;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s}.toggle[data-v-ac649f8c]:hover{background:#ffffff38}.main[data-v-ac649f8c]{flex:1;display:flex;flex-direction:column;min-width:0}.topbar[data-v-ac649f8c]{height:56px;padding:0 24px;background:#fff;border-bottom:1px solid #eaeaea;display:flex;align-items:center;justify-content:space-between}.crumb[data-v-ac649f8c]{color:#888;font-size:14px}.crumb span[data-v-ac649f8c]{color:#673ab7;font-weight:500}.user-block[data-v-ac649f8c]{display:flex;align-items:center;gap:10px;font-size:13px;color:#555}.role-tag[data-v-ac649f8c]{padding:2px 8px;background:#ede7f6;color:#673ab7;border-radius:4px;font-size:11px;font-weight:500}.user-block .name[data-v-ac649f8c]{display:flex;align-items:center;gap:4px}.logout[data-v-ac649f8c]{border:1px solid #ddd;background:#fff;color:#888;padding:4px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .15s}.logout[data-v-ac649f8c]:hover{border-color:#c62828;color:#c62828}.user-block .dot[data-v-ac649f8c]{width:8px;height:8px;border-radius:50%;background:#43a047;box-shadow:0 0 0 3px #43a04733;margin-left:4px}.content[data-v-ac649f8c]{padding:22px 24px;flex:1;overflow:auto}.placeholder[data-v-ac649f8c]{background:#fff;border-radius:10px;padding:80px 40px;text-align:center;box-shadow:0 2px 8px #0000000a}.placeholder .big[data-v-ac649f8c]{font-size:60px;margin-bottom:12px}.placeholder h2[data-v-ac649f8c]{margin:0 0 8px;color:#673ab7}.placeholder p[data-v-ac649f8c]{color:#888;margin:0}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#2c3e50;background:#f4f6f5}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.btn{border:none;border-radius:6px;padding:8px 16px;background:#2e7d32;color:#fff;font-size:14px;transition:background .15s}.btn:hover{background:#1b5e20}.btn.ghost{background:#fff;color:#2e7d32;border:1px solid #c8e6c9}.btn.ghost:hover{background:#e8f5e9}.btn.danger{background:#c62828}.btn.danger:hover{background:#8e0000}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:999}.modal-card{background:#fff;border-radius:10px;width:880px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000002e}.modal-header{padding:16px 24px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:18px}.modal-header .close{background:none;border:none;font-size:22px;color:#888}.modal-body{padding:0;overflow:auto}
