body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f0f2f5}#app{width:100%;height:100vh}.login-page[data-v-f23d8a78]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-container[data-v-f23d8a78]{width:100%;max-width:400px;padding:20px}.login-card[data-v-f23d8a78]{background:var(--bg-white);border-radius:8px;padding:40px;box-shadow:0 10px 40px #0003}.login-header[data-v-f23d8a78]{text-align:center;margin-bottom:32px}.login-header h1[data-v-f23d8a78]{font-size:28px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.login-header p[data-v-f23d8a78]{color:var(--text-secondary);font-size:14px}.login-form[data-v-f23d8a78]{margin-bottom:24px}.form-group[data-v-f23d8a78]{margin-bottom:20px}.form-group label[data-v-f23d8a78]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary)}.btn-block[data-v-f23d8a78]{width:100%;padding:12px;font-size:16px;font-weight:500}.btn[data-v-f23d8a78]:disabled{opacity:.6;cursor:not-allowed}.error-message[data-v-f23d8a78]{padding:12px;margin-bottom:16px;background-color:#fff2f0;border:1px solid #ffccc7;border-radius:var(--border-radius);color:#cf1322;font-size:14px}.qr-code-section[data-v-f23d8a78]{margin-bottom:20px}.qr-code[data-v-f23d8a78]{padding:20px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:8px;text-align:center;border:2px solid var(--primary-color)}.qr-title[data-v-f23d8a78]{margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text-primary)}.qr-code img[data-v-f23d8a78]{max-width:240px;width:100%;height:auto;background:#fff;padding:12px;border-radius:8px;box-shadow:var(--shadow-md)}.qr-hint[data-v-f23d8a78]{margin-top:12px;font-size:13px;color:var(--text-secondary)}.login-footer[data-v-f23d8a78]{text-align:center;padding-top:20px;border-top:1px solid var(--border-light)}.hint[data-v-f23d8a78]{font-size:12px;color:var(--text-secondary);margin:4px 0}.admin-layout[data-v-404353c9]{display:flex;height:100vh;width:100%;position:relative}.mobile-menu-btn[data-v-404353c9]{display:none;position:fixed;top:15px;left:15px;z-index:1001;width:44px;height:44px;background:var(--sidebar-bg);border:none;border-radius:8px;color:#fff;cursor:pointer;box-shadow:0 2px 8px #0003}.hamburger-icon[data-v-404353c9]{font-size:24px}.sidebar-overlay[data-v-404353c9]{display:none;position:fixed;inset:0;background:#00000080;z-index:999}.sidebar[data-v-404353c9]{width:250px;background-color:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;box-shadow:2px 0 8px #0000001a;position:relative;z-index:1000;transition:width .3s ease}.sidebar.collapsed[data-v-404353c9]{width:70px}.sidebar.collapsed[data-v-404353c9]:hover{width:250px}.sidebar.collapsed .nav-text[data-v-404353c9]{display:none}.sidebar.collapsed:hover .nav-text[data-v-404353c9]{display:block}.sidebar.collapsed .nav-arrow[data-v-404353c9]{display:none}.sidebar.collapsed:hover .nav-arrow[data-v-404353c9]{display:block}.sidebar.collapsed .nav-submenu[data-v-404353c9]{display:none}.sidebar.collapsed:hover .nav-submenu[data-v-404353c9]{display:block}.sidebar-header[data-v-404353c9]{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:center;align-items:center;position:relative;min-height:64px}.sidebar.collapsed .sidebar-header[data-v-404353c9]{padding-left:10px;padding-right:10px}.sidebar.collapsed:hover .sidebar-header[data-v-404353c9]{padding-left:20px;padding-right:20px}.sidebar-header h2[data-v-404353c9]{margin:0;font-size:20px;font-weight:600;color:var(--sidebar-text);text-align:center}.sidebar-header .full-title[data-v-404353c9]{display:block}.sidebar-header .collapsed-title[data-v-404353c9]{display:none;font-size:24px}.sidebar.collapsed .full-title[data-v-404353c9]{display:none}.sidebar.collapsed .collapsed-title[data-v-404353c9],.sidebar.collapsed:hover .full-title[data-v-404353c9]{display:block}.sidebar.collapsed:hover .collapsed-title[data-v-404353c9]{display:none}.collapse-toggle-btn[data-v-404353c9]{background:transparent;border:1px solid var(--border-light);color:var(--text-primary);font-size:20px;cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .3s;display:flex;align-items:center;justify-content:center}.collapse-toggle-btn[data-v-404353c9]:hover{background:var(--bg-gray);border-color:var(--primary-color)}.mobile-close-btn[data-v-404353c9]{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;position:absolute;right:20px}.sidebar-nav[data-v-404353c9]{flex:1;padding:16px 0;overflow-y:auto}.nav-item[data-v-404353c9]{display:flex;align-items:center;padding:12px 20px;color:#fffc;text-decoration:none;transition:all .3s;cursor:pointer;position:relative}.sidebar.collapsed .nav-item[data-v-404353c9]{padding:12px 0;justify-content:center}.sidebar.collapsed:hover .nav-item[data-v-404353c9]{padding:12px 20px;justify-content:flex-start}.nav-item[data-v-404353c9]:hover{background-color:#ffffff1a;color:var(--sidebar-text)}.nav-item.router-link-active[data-v-404353c9]{background-color:var(--sidebar-hover);color:var(--sidebar-text)}.nav-icon[data-v-404353c9]{margin-right:12px;font-size:18px;flex-shrink:0;transition:margin-right .3s}.sidebar.collapsed .nav-icon[data-v-404353c9]{margin-right:0}.sidebar.collapsed:hover .nav-icon[data-v-404353c9]{margin-right:12px}.nav-text[data-v-404353c9]{font-size:14px;flex:1}.sidebar.collapsed:not(:hover) .nav-item[data-v-404353c9]:after{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:4px;white-space:nowrap;font-size:14px;opacity:0;pointer-events:none;transition:opacity .3s;margin-left:10px;z-index:1001}.sidebar.collapsed:not(:hover) .nav-item[data-v-404353c9]:hover:after{opacity:1}.nav-group[data-v-404353c9]{margin:0}.nav-parent[data-v-404353c9]{position:relative;justify-content:space-between}.sidebar.collapsed .nav-parent[data-v-404353c9]{justify-content:center}.sidebar.collapsed:hover .nav-parent[data-v-404353c9]{justify-content:space-between}.nav-arrow[data-v-404353c9]{font-size:10px;transition:transform .3s;margin-left:auto}.nav-submenu[data-v-404353c9]{background-color:#0003}.nav-sub[data-v-404353c9]{padding-left:52px;font-size:13px}.sidebar.collapsed .nav-sub[data-v-404353c9]{padding:12px 0;justify-content:center}.sidebar.collapsed:hover .nav-sub[data-v-404353c9]{padding-left:52px;justify-content:flex-start}.nav-sub .nav-text[data-v-404353c9]{font-size:13px}.sidebar-footer[data-v-404353c9]{padding:16px 20px;border-top:1px solid rgba(255,255,255,.1)}.sidebar.collapsed .sidebar-footer[data-v-404353c9]{padding:16px 10px}.sidebar.collapsed:hover .sidebar-footer[data-v-404353c9]{padding:16px 20px}.logout-btn[data-v-404353c9]{display:flex;align-items:center;width:100%;padding:12px 0;background:none;border:none;color:#fffc;cursor:pointer;transition:color .3s;position:relative}.logout-btn[data-v-404353c9]:hover{color:var(--sidebar-text)}.logout-btn .nav-icon[data-v-404353c9]{flex-shrink:0}.sidebar.collapsed .logout-btn[data-v-404353c9]{justify-content:center}.sidebar.collapsed:hover .logout-btn[data-v-404353c9]{justify-content:flex-start}.sidebar.collapsed .logout-btn .nav-text[data-v-404353c9]{display:none}.sidebar.collapsed:hover .logout-btn .nav-text[data-v-404353c9]{display:block}.sidebar.collapsed:not(:hover) .logout-btn[data-v-404353c9]:after{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:4px;white-space:nowrap;font-size:14px;opacity:0;pointer-events:none;transition:opacity .3s;margin-left:10px;z-index:1001}.sidebar.collapsed:not(:hover) .logout-btn[data-v-404353c9]:hover:after{opacity:1}.main-content[data-v-404353c9]{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar[data-v-404353c9]{height:64px;background:var(--bg-white);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:var(--shadow-sm)}.topbar-left[data-v-404353c9]{display:flex;align-items:center}.topbar-right[data-v-404353c9]{display:flex;align-items:center;gap:16px}.user-info[data-v-404353c9]{display:flex;flex-direction:column;align-items:flex-end}.user-menu[data-v-404353c9]{position:relative}.user-menu-btn[data-v-404353c9]{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:transparent;border:1px solid var(--border-light);border-radius:6px;cursor:pointer;transition:all .3s}.user-menu-btn[data-v-404353c9]:hover{background-color:var(--bg-gray);border-color:var(--primary-color)}.avatar-icon[data-v-404353c9]{font-size:20px}.dropdown-arrow[data-v-404353c9]{font-size:10px;color:var(--text-secondary);transition:transform .3s}.user-dropdown[data-v-404353c9]{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#fff;border:1px solid var(--border-light);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;overflow:hidden}.dropdown-item[data-v-404353c9]{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:var(--text-primary);transition:background-color .2s}.dropdown-item[data-v-404353c9]:hover{background-color:var(--bg-gray)}.dropdown-item.logout[data-v-404353c9]{border-top:1px solid var(--border-light);color:#ff4d4f}.dropdown-item.logout[data-v-404353c9]:hover{background-color:#fff2f0}.item-icon[data-v-404353c9]{font-size:16px}.user-name[data-v-404353c9]{font-size:14px;font-weight:500;color:var(--text-primary)}.user-role[data-v-404353c9]{font-size:12px;color:var(--text-secondary)}.content[data-v-404353c9]{flex:1;padding:24px;overflow-y:auto;background-color:var(--bg-color)}.modal-overlay[data-v-404353c9]{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content[data-v-404353c9]{background:#fff;border-radius:8px;width:90%;max-width:450px;box-shadow:0 4px 12px #00000026}.modal-header[data-v-404353c9]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-light)}.modal-header h3[data-v-404353c9]{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.close-btn[data-v-404353c9]{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-btn[data-v-404353c9]:hover{background-color:var(--bg-gray);color:var(--text-primary)}.modal-body[data-v-404353c9]{padding:20px}.form-group[data-v-404353c9]{margin-bottom:16px}.form-group[data-v-404353c9]:last-child{margin-bottom:0}.form-group label[data-v-404353c9]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary)}.required[data-v-404353c9]{color:#ff4d4f}.error-message[data-v-404353c9]{padding:12px;background-color:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7;border-radius:4px;font-size:14px;margin-top:16px}.success-message[data-v-404353c9]{padding:12px;background-color:#f6ffed;color:#52c41a;border:1px solid #b7eb8f;border-radius:4px;font-size:14px;margin-top:16px}.modal-footer[data-v-404353c9]{display:flex;justify-content:flex-end;gap:8px;padding:20px;border-top:1px solid var(--border-light)}@media (max-width: 768px){.mobile-menu-btn[data-v-404353c9]{display:flex;align-items:center;justify-content:center}.sidebar-overlay[data-v-404353c9]{display:block}.sidebar[data-v-404353c9]{position:fixed;top:0;left:0;bottom:0;transform:translate(-100%);transition:transform .3s ease;z-index:1000}.sidebar.mobile-open[data-v-404353c9]{transform:translate(0)}.mobile-close-btn[data-v-404353c9]{display:block}.collapse-toggle-btn[data-v-404353c9]{display:none}.main-content[data-v-404353c9]{flex:1;width:100%;margin-left:0}.topbar[data-v-404353c9]{padding-left:70px;justify-content:flex-end}.topbar-left[data-v-404353c9]{display:none}}@media (max-width: 1024px) and (min-width: 769px){.sidebar[data-v-404353c9]{width:200px}.sidebar-header h2[data-v-404353c9]{font-size:18px}.nav-text[data-v-404353c9]{font-size:13px}}:root{--primary-color: #1890ff;--primary-hover: #40a9ff;--primary-active: #096dd9;--bg-color: #f0f2f5;--bg-white: #ffffff;--bg-gray: #fafafa;--text-primary: #262626;--text-secondary: #8c8c8c;--text-disabled: #bfbfbf;--border-color: #d9d9d9;--border-light: #f0f0f0;--sidebar-bg: #001529;--sidebar-text: #ffffff;--sidebar-hover: #1890ff;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .15);--border-radius: 4px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.5}.btn{padding:8px 16px;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:14px;transition:all .3s;outline:none}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-primary:active{background-color:var(--primary-active)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px;transition:border-color .3s}.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1890ff33}.input:disabled{background-color:var(--bg-gray);color:var(--text-disabled);cursor:not-allowed}.card{background:var(--bg-white);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);padding:20px}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}
