@charset "UTF-8";.sidebar[data-v-9b9cad06]{width:220px;height:100vh;background-color:#0f172a;color:#fff;position:fixed;left:0;top:0;z-index:100;overflow-x:hidden;overflow-y:auto;box-sizing:border-box}.sidebar.collapsed[data-v-9b9cad06]{width:64px}.sidebar-logo[data-v-9b9cad06]{height:56px;display:flex;align-items:center;padding:0 16px;box-sizing:border-box;border-bottom:1px solid #1e293b;background:#0f172a;justify-content:flex-start}.sidebar-logo .brand[data-v-9b9cad06]{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.sidebar-logo .logo-icon[data-v-9b9cad06]{font-size:20px;width:20px;height:20px;color:#60a5fa;flex:0 0 auto}.sidebar-logo .logo-text[data-v-9b9cad06]{font-size:16px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1;flex:1 1 auto}.sidebar.collapsed .sidebar-logo[data-v-9b9cad06]{justify-content:center}.sidebar.collapsed .sidebar-logo .logo-text[data-v-9b9cad06]{display:none}.sidebar-scroll[data-v-9b9cad06]{height:calc(100vh - 56px);overflow-y:auto}.sidebar-menu[data-v-9b9cad06]{width:100%;border-right:none;background:#0f172a}.sidebar-menu[data-v-9b9cad06] .el-sub-menu__title{display:flex;align-items:center;color:#94a3b8}.sidebar-menu[data-v-9b9cad06] .el-menu-item{color:#94a3b8}.sidebar-menu[data-v-9b9cad06] .menu-text{display:inline;opacity:1;visibility:visible}.sidebar-menu[data-v-9b9cad06] .el-sub-menu>.el-menu--inline>.el-menu-item{padding-left:36px!important}.sidebar-menu[data-v-9b9cad06] .el-sub-menu .el-menu-item{padding-left:36px!important}.sidebar-menu .menu-icon[data-v-9b9cad06]{margin-right:10px;font-size:18px}.sidebar-menu .menu-text.no-icon[data-v-9b9cad06]{margin-left:16px}.sidebar-menu[data-v-9b9cad06] .el-menu-item.is-active{background-color:#1e40af!important;color:#fff!important}.collapse-btn[data-v-9b9cad06]{position:absolute;bottom:76px;left:50%;transform:translate(-50%);width:36px;height:36px;border-radius:50%;background-color:#1e293b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.collapse-btn[data-v-9b9cad06]:hover{background-color:#334155}.logout-btn[data-v-9b9cad06]{position:absolute;bottom:20px;left:12px;right:12px;height:36px;display:flex;align-items:center;justify-content:center;color:#fca5a5;background:#1e293b;border:1px solid #334155;border-radius:6px;cursor:pointer}.logout-btn[data-v-9b9cad06]:hover{background:#334155}.logout-icon[data-v-9b9cad06]{font-size:18px}.logout-text[data-v-9b9cad06]{margin-left:6px;font-size:13px;color:#fca5a5}@media (max-width: 768px){.sidebar[data-v-9b9cad06]{width:280px!important;transform:translate(-100%);transition:transform .3s ease}.sidebar.mobile-open[data-v-9b9cad06]{transform:translate(0)}.collapse-btn[data-v-9b9cad06]{display:none}}[data-v-9b9cad06] .el-menu--collapse .el-sub-menu__title{padding:0 20px!important}[data-v-9b9cad06] .el-menu--collapse .el-menu-item{padding:0 20px!important;text-align:center}.notify-item[data-v-b8ffc39e]{display:flex;padding:10px 12px;cursor:pointer}.notify-item[data-v-b8ffc39e]:hover{background:#f8fafc}.notify-item.unread .title[data-v-b8ffc39e]{font-weight:600}.notify-item .left[data-v-b8ffc39e]{width:24px;display:flex;align-items:center}.notify-item .left .dot[data-v-b8ffc39e]{width:8px;height:8px;border-radius:50%;background:#94a3b8;display:inline-block}.notify-item .left .dot.sms[data-v-b8ffc39e]{background:#10b981}.notify-item .left .dot.device[data-v-b8ffc39e]{background:#6366f1}.notify-item .left .dot.rule[data-v-b8ffc39e]{background:#f59e0b}.notify-item .left .dot.perm[data-v-b8ffc39e]{background:#f97316}.notify-item .main[data-v-b8ffc39e]{flex:1;min-width:0}.notify-item .title-line[data-v-b8ffc39e]{display:flex;justify-content:space-between;color:#0f172a}.notify-item .title[data-v-b8ffc39e]{max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notify-item .time[data-v-b8ffc39e]{color:#64748b;font-size:12px;margin-left:8px}.notify-item .content[data-v-b8ffc39e]{color:#334155;font-size:13px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notify-item .meta[data-v-b8ffc39e]{margin-top:6px;font-size:12px;color:#94a3b8}.notify-item.important[data-v-b8ffc39e]{border-left:3px solid #ef4444;padding-left:9px}.notify-list[data-v-20067dc8]{width:380px;background:#fff;border-radius:8px;overflow:hidden}.notify-header[data-v-20067dc8]{display:flex;justify-content:space-between;align-items:center;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative}.notify-header[data-v-20067dc8]:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);pointer-events:none}.header-left[data-v-20067dc8]{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}.header-title[data-v-20067dc8]{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.title-icon[data-v-20067dc8]{background:#fff3;border-radius:50%;padding:4px}.title-text[data-v-20067dc8]{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.header-stats[data-v-20067dc8]{display:flex;gap:6px;flex-wrap:wrap}.stats-tag[data-v-20067dc8]{font-size:11px;border:none;background:#ffffff26;color:#fff}.stats-tag.unread-tag[data-v-20067dc8]{background:#ffc107e6;color:#000}.header-right[data-v-20067dc8]{position:relative;z-index:1}.mark-all-btn[data-v-20067dc8]{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff}.filters[data-v-20067dc8]{display:flex;padding:12px 16px;border-bottom:1px solid #f1f5f9;gap:8px;background:#fafbfc}.filters .f[data-v-20067dc8]{flex:1}.filters[data-v-20067dc8] .el-select__popper{z-index:3000}.skeleton[data-v-20067dc8]{padding:8px}.skeleton .sk[data-v-20067dc8]{height:44px;border-radius:6px;background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:shimmer-20067dc8 1.2s infinite;margin:6px 10px}@keyframes shimmer-20067dc8{0%{background-position:0 0}to{background-position:-200% 0}}.empty[data-v-20067dc8]{padding:24px;color:#94a3b8;text-align:center;font-size:14px}.items[data-v-20067dc8]{max-height:280px;overflow:auto}.notify-trigger[data-v-0552e196]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;font-size:20px;transition:color .2s;margin-right:16px}.notify-trigger[data-v-0552e196]:hover{color:#3b82f6}.notify-trigger[data-v-0552e196] .el-badge,.notify-trigger[data-v-0552e196] .el-icon{background:transparent!important;border:none!important;outline:none!important;box-shadow:none!important}[data-v-0552e196] .el-dropdown-menu{width:380px;padding:0}[data-v-0552e196] .el-dropdown-menu .notify-menu{max-height:460px;display:flex;flex-direction:column}[data-v-0552e196] .el-dropdown-menu .footer{position:sticky;bottom:0;background:#f8fafc;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px;border-top:1px solid #f1f5f9;box-shadow:0 -8px 18px #0f172a0a;padding:12px 14px}[data-v-0552e196] .el-dropdown-menu .footer-action{width:100%;height:34px;margin:0;border-radius:7px;font-weight:500}[data-v-0552e196] .el-dropdown-menu .clear-action{background:#fff}[data-v-0552e196] .el-dropdown-menu .view-action{box-shadow:0 6px 14px #3b82f638}[data-v-0552e196] .el-dropdown-menu .trailing-icon{margin-left:4px}.el-dropdown__popper .notify-menu>.footer{position:sticky;bottom:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;background:#f8fafc;border-top:1px solid #e5eaf3;box-shadow:0 -8px 18px #0f172a0a}.el-dropdown__popper .notify-menu>.footer .footer-action{width:100%;height:34px;margin:0;border-radius:7px;font-weight:500;justify-content:center}.el-dropdown__popper .notify-menu>.footer .clear-action{background:#fff}.el-dropdown__popper .notify-menu>.footer .view-action{box-shadow:0 6px 14px #3b82f638}.el-dropdown__popper .notify-menu>.footer .trailing-icon{margin-left:4px}.admin-header[data-v-2db79bd2]{height:60px;background-color:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;box-shadow:0 2px 4px #0000000d}.header-left[data-v-2db79bd2]{display:flex;align-items:center}.toggle-btn[data-v-2db79bd2]{background:none;border:none;width:36px;height:36px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;margin-right:15px}.toggle-btn[data-v-2db79bd2]:hover{background-color:#f1f5f9;color:#3b82f6}.breadcrumb[data-v-2db79bd2]{font-size:14px}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item .el-breadcrumb__inner{color:#64748b;font-weight:400;transition:all .2s ease}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-link .el-breadcrumb__inner{color:#3b82f6;cursor:pointer;text-decoration:none;border-radius:4px;padding:2px 6px;margin:-2px -6px}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-link .el-breadcrumb__inner:hover{color:#1d4ed8;background-color:#eff6ff;text-decoration:underline}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-link .breadcrumb-link-inner{color:#3b82f6;cursor:pointer;text-decoration:none;border-radius:4px;padding:2px 6px;margin:-2px -6px;display:inline-block}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-link .breadcrumb-link-inner:hover{color:#1d4ed8;background-color:#eff6ff;text-decoration:underline}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-current .el-breadcrumb__inner,.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item.breadcrumb-current .breadcrumb-current-inner{color:#334155;font-weight:500;cursor:default}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item .el-breadcrumb__separator{color:#94a3b8;margin:0 8px;font-weight:400}@media (max-width: 768px){.breadcrumb[data-v-2db79bd2]{font-size:12px}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item .el-breadcrumb__separator{margin:0 4px}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item .el-breadcrumb__inner{padding:1px 4px;margin:-1px -4px}}@media (max-width: 480px){.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item:not(:first-child):not(:last-child){display:none}.breadcrumb[data-v-2db79bd2] .el-breadcrumb__item:nth-last-child(2) .el-breadcrumb__separator:after{content:"...";margin:0 4px}}.header-right[data-v-2db79bd2]{display:flex;align-items:center}.header-actions[data-v-2db79bd2]{display:flex;align-items:center;gap:6px}.header-icon-btn[data-v-2db79bd2]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:4px;background:transparent;color:#64748b;cursor:pointer;font-size:18px}.header-icon-btn[data-v-2db79bd2]:hover{background-color:#f1f5f9;color:#3b82f6}.user-info[data-v-2db79bd2]{display:flex;align-items:center;cursor:pointer;padding:5px 10px;border-radius:4px}.user-info[data-v-2db79bd2]:hover{background-color:#f1f5f9}.user-avatar[data-v-2db79bd2]{width:36px;height:36px;border-radius:50%;object-fit:cover}.user-name[data-v-2db79bd2]{margin:0 8px;font-size:14px;color:#334155}.user-arrow[data-v-2db79bd2]{font-size:16px;color:#94a3b8}[data-v-2db79bd2] .el-dropdown-menu{width:360px;padding:0}.admin-header-mobile[data-v-067a89b7]{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 12px;background:#fff;border-bottom:1px solid #e4e7ed;box-shadow:0 1px 4px #00000014}.header-left[data-v-067a89b7]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.mobile-menu-btn[data-v-067a89b7]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#606266;font-size:18px;transition:all .2s ease}.mobile-menu-btn[data-v-067a89b7]:hover{background:#f5f7fa;color:#409eff}.mobile-menu-btn.active[data-v-067a89b7]{background:#409eff;color:#fff}.header-title[data-v-067a89b7]{flex:1;min-width:0}.title-text[data-v-067a89b7]{font-size:16px;font-weight:600;color:#303133;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right[data-v-067a89b7]{display:flex;align-items:center;gap:8px}.header-icon-btn[data-v-067a89b7]{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#606266;font-size:18px;transition:all .2s ease}.header-icon-btn[data-v-067a89b7]:hover{background:#f5f7fa;color:#409eff}.notification-badge[data-v-067a89b7]{position:absolute;top:8px;right:8px;min-width:16px;height:16px;background:#f56c6c;color:#fff;font-size:10px;line-height:16px;text-align:center;border-radius:8px;padding:0 4px;box-sizing:border-box}.user-info[data-v-067a89b7]{display:flex;align-items:center;padding:6px;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.user-info[data-v-067a89b7]:hover{background:#f5f7fa}@media (max-width: 768px){.admin-header-mobile[data-v-067a89b7]{display:flex}}@media (min-width: 769px){.admin-header-mobile[data-v-067a89b7]{display:none}}.admin-layout[data-v-512a87a6]{display:flex;min-height:100vh;background-color:#f8fafc;position:relative;width:100%;overflow-x:hidden}.main-content[data-v-512a87a6]{position:relative;flex:1;min-height:100vh;background:#f8fafc;margin-left:220px;width:calc(100% - 220px);box-sizing:border-box}.admin-layout.sidebar-collapsed .main-content[data-v-512a87a6]{margin-left:64px;width:calc(100% - 64px)}[data-v-512a87a6] .el-table__body-wrapper,[data-v-512a87a6] .el-table__header-wrapper{position:relative}.page-content[data-v-512a87a6]{padding:16px;min-height:calc(100vh - 120px);width:100%;box-sizing:border-box;overflow-x:hidden}.footer[data-v-512a87a6]{height:60px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e2e8f0;background-color:#fff}.footer .container[data-v-512a87a6]{text-align:center;color:#94a3b8;font-size:13px}[data-v-512a87a6] .el-button,[data-v-512a87a6] .el-menu-item,[data-v-512a87a6] .el-sub-menu__title{font-size:13px}[data-v-512a87a6] .el-card__header{font-size:14px}[data-v-512a87a6] h1,[data-v-512a87a6] h2,[data-v-512a87a6] h3{font-weight:600}@media (max-width: 768px){.main-content[data-v-512a87a6]{margin-left:0!important;width:100%!important;padding-top:56px}.mobile-only[data-v-512a87a6]{position:fixed;top:0;left:0;right:0;height:56px;z-index:1000;background:#fff}.page-content[data-v-512a87a6]{padding:12px;min-height:calc(100vh - 116px)}.footer .container[data-v-512a87a6]{font-size:11px;padding:0 12px}}.mobile-sidebar-overlay[data-v-512a87a6]{display:none;position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;transition:opacity .3s ease}.mobile-sidebar-overlay.show[data-v-512a87a6]{display:block;opacity:1}@media (min-width: 769px){.mobile-sidebar-overlay[data-v-512a87a6]{display:none!important}}.perm-debug[data-v-4c4c2b3f]{position:fixed;right:12px;bottom:12px;z-index:9999;font-size:12px}.badge[data-v-4c4c2b3f]{width:28px;height:28px;border-radius:50%;border:none;background:#1f2937;color:#fff;cursor:pointer;box-shadow:0 2px 6px #0003}.panel[data-v-4c4c2b3f]{width:300px;max-height:50vh;overflow:auto;background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 16px #00000026;border-radius:8px;padding:10px;margin-top:8px}.panel-header[data-v-4c4c2b3f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.env[data-v-4c4c2b3f]{color:#6b7280}.row[data-v-4c4c2b3f]{display:flex;gap:6px;margin:4px 0}.row label[data-v-4c4c2b3f]{width:120px;color:#6b7280}.row span.yes[data-v-4c4c2b3f]{color:#059669;font-weight:600}.row span.no[data-v-4c4c2b3f]{color:#dc2626;font-weight:600}.perm-list[data-v-4c4c2b3f]{margin:6px 0}.perm-list ul[data-v-4c4c2b3f]{padding-left:18px}.tip[data-v-4c4c2b3f]{color:#6b7280;margin-top:6px}.actions[data-v-4c4c2b3f]{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}html,body,#app{height:100%}.app-container{min-height:100%;background-color:#f8fafc}:root{--client-font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--client-bg: #f8fafc;--client-card-bg: #ffffff;--client-text: #334155;--client-subtext: #64748b;--client-border: #e5e7eb;--client-primary: #3b82f6;--client-primary-600: #2563eb;--client-success: #10b981;--client-warning: #f59e0b;--client-danger: #ef4444;--client-shadow: 0 6px 20px rgba(2,6,23,.08);--client-radius: 8px;--client-gap: 12px}.client-theme{font-family:var(--client-font-family);background:var(--client-bg);color:var(--client-text)}.client-theme .el-card{border-radius:var(--client-radius);overflow:hidden}.client-theme .el-card.is-always-shadow,.client-theme .el-card.is-hover-shadow{box-shadow:var(--client-shadow)}.client-theme .el-card__header{background:#fff}.client-theme .el-table{--el-table-header-bg-color: #f8fafc }.client-theme .el-button.is-link:hover{text-decoration:underline}.client-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.client-toolbar .title{font-weight:600;color:var(--client-text)}.client-toolbar .tools{display:flex;align-items:center;gap:var(--client-gap)}.client-theme .desc{color:var(--client-subtext);font-size:13px}@media (max-width: 768px){.client-toolbar .title{font-size:14px}}.client-header-simple[data-v-02380253]{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 20px;background:#fff;border-bottom:1px solid #e4e7ed}.header-left[data-v-02380253]{display:flex;align-items:center}.title[data-v-02380253]{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#303133}.title-icon[data-v-02380253]{font-size:20px;color:#409eff}.client-tag[data-v-02380253]{margin-left:8px}.header-center[data-v-02380253]{flex:1;text-align:center;color:#606266}.header-right[data-v-02380253]{display:flex;align-items:center;gap:16px}.user-info[data-v-02380253]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background-color .3s ease}.user-info[data-v-02380253]:hover{background:#f5f7fa}.user-avatar[data-v-02380253]{background:#409eff}.user-name[data-v-02380253]{font-size:14px;color:#303133}.dropdown-icon[data-v-02380253]{font-size:12px;color:#909399;transition:transform .3s ease}.user-info:hover .dropdown-icon[data-v-02380253]{transform:rotate(180deg)}@media (max-width: 768px){.client-header-simple[data-v-02380253]{padding:0 12px}.header-center[data-v-02380253],.user-name[data-v-02380253]{display:none}}.client-mobile-nav[data-v-95852dce]{position:relative}.nav-bar[data-v-95852dce]{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;border-top:1px solid #e4e7ed;display:flex;align-items:center;justify-content:space-around;z-index:100;box-shadow:0 -2px 8px #0000001a;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.nav-item[data-v-95852dce]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 8px;cursor:pointer;transition:all .2s ease;border-radius:8px;min-width:60px;position:relative}.nav-item[data-v-95852dce]:hover{background:#f5f7fa}.nav-item.active[data-v-95852dce],.nav-item.active .nav-icon[data-v-95852dce]{color:#409eff}.nav-icon[data-v-95852dce]{position:relative;margin-bottom:2px;color:#909399;transition:color .2s ease}.nav-badge[data-v-95852dce]{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;background:#f56c6c;color:#fff;font-size:10px;line-height:16px;text-align:center;border-radius:8px;padding:0 4px;box-sizing:border-box}.nav-label[data-v-95852dce]{font-size:11px;color:#909399;transition:color .2s ease;text-align:center;line-height:1.2}.nav-item.active .nav-label[data-v-95852dce]{color:#409eff;font-weight:600}.fab-container[data-v-95852dce]{position:fixed;bottom:80px;right:20px;z-index:101}.fab-button[data-v-95852dce]{width:56px;height:56px;box-shadow:0 4px 12px #409eff66;border:none}.fab-button[data-v-95852dce]:hover{transform:scale(1.05);box-shadow:0 6px 16px #409eff80}.fab-button[data-v-95852dce]:active{transform:scale(.95)}.client-layout .main{padding-bottom:80px}@media (min-width: 769px){.client-mobile-nav[data-v-95852dce]{display:none}.client-layout .main{padding-bottom:0}}@supports (padding: max(0px)){.nav-bar[data-v-95852dce]{padding-bottom:max(env(safe-area-inset-bottom),8px);height:calc(60px + env(safe-area-inset-bottom))}}@media (max-width: 375px){.nav-item[data-v-95852dce]{min-width:50px;padding:4px}.nav-label[data-v-95852dce]{font-size:10px}.fab-container[data-v-95852dce]{right:16px;bottom:76px}.fab-button[data-v-95852dce]{width:48px;height:48px}}@media (min-width: 414px){.nav-item[data-v-95852dce]{min-width:70px;padding:6px 12px}.nav-label[data-v-95852dce]{font-size:12px}}.client-layout[data-v-d03cf5ca]{height:100vh;display:flex;flex-direction:column}.header[data-v-d03cf5ca]{height:60px;border-bottom:1px solid #e4e7ed;background:#fff;box-shadow:0 1px 4px #00000014}.main[data-v-d03cf5ca]{flex:1;padding:0;background:#f5f7fa;overflow:auto}.client-layout[data-v-d03cf5ca] .el-card{transition:box-shadow .2s ease,transform .12s ease}.client-layout[data-v-d03cf5ca] .el-card:hover{box-shadow:0 6px 20px #02061714;transform:translateY(-1px)}.client-layout[data-v-d03cf5ca] .el-button{transition:all .15s ease}.client-layout[data-v-d03cf5ca] .el-button:hover{filter:brightness(1.02)}@media (max-width: 768px){.header[data-v-d03cf5ca]{padding:0 8px}}.client-theme[data-v-d03cf5ca]{--el-color-primary: #3b82f6;--el-color-primary-light-3: #93c5fd;--el-color-primary-light-5: #dbeafe;--el-color-primary-light-7: #eff6ff;--el-color-primary-light-8: #f8fafc;--el-color-primary-light-9: #f1f5f9;--el-color-primary-dark-2: #1e40af}.mobile-tabbar[data-v-b3e65d69]{border-top:1px solid #ebeef5;box-shadow:0 -2px 8px #0000000d}[data-v-b3e65d69] .van-tabbar-item__text{font-size:12px}[data-v-b3e65d69] .van-tabbar-item__icon{font-size:20px}[data-v-b3e65d69] .van-badge{background-color:#f56c6c}.mobile-layout[data-v-c6462946]{width:100%;min-height:100vh;background-color:#f5f7fa}.mobile-nav-bar[data-v-c6462946]{background-color:#fff;border-bottom:1px solid #ebeef5}.mobile-content[data-v-c6462946]{min-height:calc(100vh - 46px);padding-bottom:10px}.mobile-content.has-tabbar[data-v-c6462946]{min-height:calc(100vh - 96px);padding-bottom:60px}[data-v-c6462946] .van-nav-bar__title{font-size:17px;font-weight:600;color:#303133}[data-v-c6462946] .van-nav-bar__arrow{color:#303133;font-size:18px}.mobile-client-tabbar[data-v-15634649]{border-top:1px solid #ebeef5;box-shadow:0 -2px 8px #0000000d;background-color:#fff}[data-v-15634649] .van-tabbar-item__text{font-size:12px;margin-top:4px}[data-v-15634649] .van-tabbar-item__icon{font-size:20px;margin-bottom:2px}[data-v-15634649] .van-badge{background-color:#f56c6c;border:1px solid #ffffff}[data-v-15634649] .van-tabbar-item--active{font-weight:500}@supports (padding-bottom: env(safe-area-inset-bottom)){.mobile-client-tabbar[data-v-15634649]{padding-bottom:env(safe-area-inset-bottom)}}.mobile-client-layout[data-v-4f547c9e]{width:100%;min-height:100vh;background-color:#f5f7fa}.mobile-client-nav-bar[data-v-4f547c9e]{background-color:#fff;border-bottom:1px solid #ebeef5}.mobile-client-content[data-v-4f547c9e]{min-height:calc(100vh - 46px);padding-bottom:10px}.mobile-client-content.has-tabbar[data-v-4f547c9e]{min-height:calc(100vh - 96px);padding-bottom:60px}[data-v-4f547c9e] .van-nav-bar__title{font-size:17px;font-weight:600;color:#303133}[data-v-4f547c9e] .van-nav-bar__arrow{color:#303133;font-size:18px}[data-v-4f547c9e] .van-nav-bar__text{color:#409eff;font-size:15px}@supports (padding-top: env(safe-area-inset-top)){.mobile-client-nav-bar[data-v-4f547c9e]{padding-top:env(safe-area-inset-top)}}@media (max-width: 375px){[data-v-4f547c9e] .van-nav-bar__title{font-size:16px}}.error-page[data-v-bf5d9fd5]{padding:40px;text-align:center;color:#64748b}.error-page h1[data-v-bf5d9fd5]{font-size:48px;margin:0 0 10px}.error-page[data-v-ba33d609]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.error-content[data-v-ba33d609]{text-align:center;color:#fff;max-width:500px;width:100%}.error-content h1[data-v-ba33d609]{font-size:120px;font-weight:700;margin:0 0 20px;text-shadow:2px 2px 4px rgba(0,0,0,.2);animation:fadeInDown-ba33d609 .6s ease-out}.error-message[data-v-ba33d609]{font-size:28px;font-weight:600;margin:0 0 12px;animation:fadeInUp-ba33d609 .6s ease-out .2s both}.error-description[data-v-ba33d609]{font-size:16px;opacity:.9;margin:0 0 40px;animation:fadeInUp-ba33d609 .6s ease-out .4s both}.action-buttons[data-v-ba33d609]{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;animation:fadeInUp-ba33d609 .6s ease-out .6s both}.btn[data-v-ba33d609]{padding:12px 32px;font-size:16px;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #0000001a}.btn[data-v-ba33d609]:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.btn[data-v-ba33d609]:active{transform:translateY(0)}.btn-back[data-v-ba33d609]{background:#fff3;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-back[data-v-ba33d609]:hover{background:#ffffff4d}.btn-home[data-v-ba33d609]{background:#fff;color:#667eea}.btn-home[data-v-ba33d609]:hover{background:#f0f0f0}@keyframes fadeInDown-ba33d609{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp-ba33d609{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.error-content h1[data-v-ba33d609]{font-size:80px}.error-message[data-v-ba33d609]{font-size:22px}.error-description[data-v-ba33d609]{font-size:14px}.action-buttons[data-v-ba33d609]{flex-direction:column;gap:12px}.btn[data-v-ba33d609]{width:100%;max-width:300px}}html,body,#app{height:100%;overflow-x:hidden;scrollbar-gutter:stable}body{margin:0;background:#f8fafc;color:#111827;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:var(--app-font-size-base, 16px);overflow-x:hidden;width:100%;box-sizing:border-box}.container{max-width:1200px;margin:0 auto}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}*{text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,.el-button{touch-action:manipulation}.el-table{-webkit-overflow-scrolling:touch}:root{--mobile-breakpoint: 768px;--tablet-breakpoint: 1024px;--mobile-sidebar-width: 280px;--mobile-header-height: 56px;--touch-target-min: 44px}@media (max-width: 768px){body{font-size:14px;line-height:1.5}.page-content{padding:12px!important}.el-card{margin-bottom:12px}.el-card__body{padding:16px!important}.el-button{min-height:var(--touch-target-min);padding:8px 16px}.el-button--small{min-height:36px;padding:6px 12px}.el-input__inner,.el-select .el-input__inner,.el-textarea__inner{min-height:var(--touch-target-min);font-size:16px}.el-table{font-size:13px}.el-table th,.el-table td{padding:8px 4px}.el-table .mobile-hide{display:none!important}.el-pagination{text-align:center;padding:16px 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.el-pagination .el-pager li{min-width:var(--touch-target-min);height:var(--touch-target-min);line-height:var(--touch-target-min)}.el-pagination .el-pagination__sizes{margin:0!important}.el-pagination .el-pagination__jump{margin-left:0!important}.el-pagination .el-pager li:not(.is-active):not(.btn-quicknext):not(.btn-quickprev){display:none}.el-pagination .el-pager li.is-active,.el-pagination .el-pager li.is-active+li{display:inline-block}.el-pagination .el-pager li.btn-quicknext,.el-pagination .el-pager li.btn-quickprev{display:inline-block}.el-dialog{width:95%!important;margin:5vh auto!important}.el-dialog__body{padding:16px!important}.el-drawer{width:85%!important}.el-dropdown-menu{min-width:150px}.el-dropdown-menu__item{min-height:var(--touch-target-min);line-height:var(--touch-target-min);padding:0 16px}}@media (max-width: 768px){.admin-layout{position:relative}.admin-layout .sidebar{position:fixed;left:-100%;top:0;width:var(--mobile-sidebar-width)!important;height:100vh;z-index:1000;transition:left .3s ease;box-shadow:2px 0 8px #00000026}.admin-layout.mobile-sidebar-open .sidebar{left:0}.admin-layout .main-content{margin-left:0!important;width:100%!important}.mobile-sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;visibility:hidden;transition:all .3s ease}.mobile-sidebar-overlay.show{opacity:1;visibility:visible}}@media (max-width: 768px){.admin-header{padding:0 12px!important;height:var(--mobile-header-height)!important}.admin-header .header-left{flex:1}.admin-header .header-center{display:none}.admin-header .header-right{gap:8px}.mobile-menu-btn{display:flex!important;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);border:none;background:transparent;cursor:pointer;color:#606266;font-size:18px}.mobile-menu-btn:hover{background:#f5f7fa;border-radius:4px}}@media (max-width: 768px){.client-layout .main{padding:0!important}.client-header-simple{height:var(--mobile-header-height)}.client-header-simple .title{font-size:16px}.client-header-simple .title-icon{font-size:18px}}@media (max-width: 768px){.page-header{flex-direction:column;gap:12px;padding:12px}.page-header .header-left,.page-header .header-right{width:100%}.page-header .header-right{display:flex;flex-wrap:wrap;gap:8px}.page-title{font-size:18px!important}.page-subtitle{font-size:13px}}@media (max-width: 768px){.filter-form{display:block!important}.filter-form .el-form-item{display:block;margin-bottom:12px;margin-right:0!important}.filter-form .el-form-item__label{display:block;margin-bottom:4px;line-height:1.5}.filter-form .el-form-item__content{margin-left:0!important}.filter-form .el-input,.filter-form .el-select{width:100%!important}}@media (max-width: 768px){.stats-section .el-col{margin-bottom:12px}.stat-card{text-align:center}.stat-card .stat-value{font-size:24px}.stat-card .stat-title{font-size:13px}}@media (max-width: 768px){.toolbar-content{flex-direction:column;gap:12px}.toolbar-left,.toolbar-right{width:100%}.batch-operations{flex-wrap:wrap;gap:8px}}@media (max-width: 768px){.page-breadcrumb{font-size:12px}.el-breadcrumb__item{display:inline-block}.el-breadcrumb__inner{font-size:12px}}@media (max-width: 768px){.desktop-only,.mobile-hide{display:none!important}}.mobile-only{display:none}@media (max-width: 768px){.mobile-only{display:block}.mobile-inline{display:inline-block}.mobile-flex{display:flex}}@media (min-width: 769px) and (max-width: 1024px){.admin-layout .main-content{margin-left:180px;width:calc(100% - 180px)}.admin-layout.sidebar-collapsed .main-content{margin-left:64px;width:calc(100% - 64px)}.sidebar{width:180px!important}.page-content{padding:16px}}@media (max-width: 768px){.mobile-table-wrapper .el-table{display:none}.mobile-card-list{display:block!important}.el-table__body-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.el-table__row{cursor:pointer}.el-table__row:active{background-color:#f5f7fa}}@media (max-width: 768px){.el-dialog.mobile-fullscreen{width:100%!important;height:100%!important;margin:0!important;border-radius:0!important}.el-dialog.mobile-fullscreen .el-dialog__body{max-height:calc(100vh - 120px);overflow-y:auto}}@media (max-width: 768px){.el-form--label-top .el-form-item__label{padding-bottom:8px}.mobile-form-actions .el-button{width:100%;margin-bottom:8px}.mobile-form-actions{display:flex;flex-direction:column;gap:8px}}.mobile-card-list{display:none;padding:12px}@media (max-width: 768px){.mobile-card-list{display:block}}@media (max-width: 768px){.batch-operations-bar{position:sticky;bottom:0;left:0;right:0;background:#fff;padding:12px;box-shadow:0 -2px 8px #0000001a;z-index:10;display:flex;gap:8px;flex-wrap:wrap}.batch-operations-bar .el-button{flex:1;min-width:calc(50% - 4px)}}@media (max-width: 768px){.mobile-search-bar{position:sticky;top:0;z-index:10;background:#fff;padding:12px;box-shadow:0 2px 8px #0000000f}.mobile-search-bar .el-input{width:100%}}@media (max-width: 768px){.el-tabs__nav-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.el-tabs__item{min-width:80px;padding:0 12px}}@media (max-width: 768px){.el-empty{padding:40px 20px}.el-empty__image{width:120px}.el-empty__description{font-size:14px}}.mobile-page{min-height:100vh;background-color:#f5f7fa;padding:16px}.mobile-card{background:#fff;border-radius:8px;padding:16px;margin-bottom:12px;box-shadow:0 1px 4px #00000014}.mobile-section{margin-bottom:24px}.mobile-section-title{font-size:15px;font-weight:600;color:#303133;margin-bottom:12px;padding:0 8px}.mobile-list-item{padding:16px;min-height:44px;background:#fff;border-bottom:1px solid #ebeef5}.mobile-list-item:active{background-color:#f2f6fc}.mobile-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:32px 0;color:#909399;font-size:12px}.mobile-loading{display:flex;align-items:center;justify-content:center;padding:32px 0}.text-primary{color:#303133}.text-regular{color:#606266}.text-secondary{color:#909399}.text-placeholder{color:#c0c4cc}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.text-ellipsis-3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.mt-xs{margin-top:8px}.mt-sm{margin-top:12px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mt-xl{margin-top:32px}.mb-xs{margin-bottom:8px}.mb-sm{margin-bottom:12px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mb-xl{margin-bottom:32px}.p-xs{padding:8px}.p-sm{padding:12px}.p-md{padding:16px}.p-lg{padding:24px}.p-xl{padding:32px}
