.sidebar-fx[data-v-aff93ce6]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.fx-scan[data-v-aff93ce6]{position:absolute;left:0;top:0;width:100%;height:130px;background:linear-gradient(180deg,transparent 0%,rgba(154,216,208,.05) 30%,rgba(190,235,228,.13) 50%,rgba(154,216,208,.05) 70%,transparent 100%);animation:fx-scan-aff93ce6 30s linear infinite}@keyframes fx-scan-aff93ce6{0%{transform:translate3d(0,-160px,0)}to{transform:translate3d(0,110vh,0)}}.fx-drift[data-v-aff93ce6]{position:absolute;left:0;width:100%;height:0;animation-name:fx-drift-aff93ce6;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fx-drift-aff93ce6{0%{transform:translate3d(-112%,0,0)}to{transform:translate3d(112%,0,0)}}.fx-drift.is-reverse[data-v-aff93ce6]{animation-direction:reverse}.fx-bob[data-v-aff93ce6]{position:absolute;top:0;animation-name:fx-bob-aff93ce6;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes fx-bob-aff93ce6{0%{transform:translate3d(0,-7px,0)}to{transform:translate3d(0,7px,0)}}.fx-bone[data-v-aff93ce6]{position:absolute;display:block;animation:fx-tumble-aff93ce6 var(--tumble-dur, 11s) ease-in-out infinite alternate}@keyframes fx-tumble-aff93ce6{0%{transform:translate(-50%,-50%) rotate(var(--r0, -22deg))}to{transform:translate(-50%,-50%) rotate(var(--r1, 24deg))}}.fx-bone svg[data-v-aff93ce6]{display:block;width:100%;height:100%}.fx-particle[data-v-aff93ce6]{position:absolute;bottom:0;border-radius:50%;opacity:0;animation-name:fx-rise-aff93ce6;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fx-rise-aff93ce6{0%{opacity:0;transform:translateZ(0)}12%{opacity:var(--o, .2)}88%{opacity:var(--o, .2)}to{opacity:0;transform:translate3d(var(--sway, 0px),-100vh,0)}}@media(prefers-reduced-motion:reduce){.fx-particle[data-v-aff93ce6],.fx-scan[data-v-aff93ce6]{display:none}.fx-drift[data-v-aff93ce6],.fx-bob[data-v-aff93ce6]{animation:none}.fx-bone[data-v-aff93ce6]{animation:none;transform:translate(-50%,-50%) rotate(8deg)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #0e7490;--primary-light: #66b1ff;--primary-dark: #337ecc;--success-color: #67C23A;--warning-color: #E6A23C;--danger-color: #F56C6C;--info-color: #909399;--text-primary: #303133;--text-regular: #606266;--text-secondary: #909399;--border-color: #DCDFE6;--bg-color: #F5F7FA;--sidebar-width: 280px;--sidebar-collapsed-width: 70px;--header-height: 60px}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text-primary);background-color:var(--bg-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%}.login-shell{min-height:100vh;background:#0e7490}.auth-footer{position:fixed;left:0;right:0;bottom:0;text-align:center;padding:12px 16px;z-index:10;background:linear-gradient(to top,rgba(15,12,41,.28),transparent);pointer-events:none}.auth-footer a{font-size:13px;color:#ffffffe6;text-decoration:none;letter-spacing:.3px;pointer-events:auto;transition:color .2s ease}.auth-footer a:hover{color:#fff;text-decoration:underline}.app-wrapper{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);height:100vh;background:linear-gradient(180deg,#06222c,#0c4457,#071d27);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);position:fixed;left:0;top:0;z-index:1000;box-shadow:0 0 40px #0000004d,4px 0 30px #0e74901a;overflow:hidden}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#0e74900d,#14b8a608,#0891b20d);pointer-events:none}.sidebar.is-collapse{width:var(--sidebar-collapsed-width)}.sidebar-header{position:relative;z-index:1;padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.logo{display:flex;align-items:center;gap:12px;color:#fff}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#0e7490,#155e75);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 15px #0e749066;transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}.logo-icon:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.logo-icon:hover:before{left:100%}.logo-icon:hover{transform:scale(1.05);box-shadow:0 6px 20px #0e749099}.logo-icon svg{width:22px;height:22px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.logo-text{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.sidebar-nav{position:relative;z-index:1;flex:1;padding:10px 12px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav::-webkit-scrollbar{width:0!important;height:0!important;display:none}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 14px;margin-bottom:4px;border-radius:9px;color:#ffffffb3;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:4px;height:0;background:linear-gradient(180deg,#14b8a6,#0e7490);border-radius:0 2px 2px 0;transform:translateY(-50%);transition:height .3s ease}.nav-item:hover{background:#ffffff14;color:#fff;transform:translate(4px)}.nav-item:hover:before{height:60%}.nav-item.is-active{background:linear-gradient(135deg,#0e74904d,#155e754d);color:#fff;box-shadow:0 4px 20px #0e74904d,inset 0 1px #ffffff1a;border:1px solid rgba(14,116,144,.3)}.nav-item.is-active:before{height:80%}.nav-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.nav-label{font-size:14px;font-weight:500;white-space:nowrap}.sidebar-footer{position:relative;z-index:1;padding:16px;border-top:1px solid rgba(255,255,255,.1)}.collapse-btn{width:100%;padding:12px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fff9;cursor:pointer;transition:all .3s ease}.collapse-btn:hover{background:#ffffff1a;color:#fff}.collapse-btn svg{width:20px;height:20px}.main-wrapper{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .3s ease}.sidebar.is-collapse+.main-wrapper{margin-left:var(--sidebar-collapsed-width)}.main-header{height:var(--header-height);background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(220,223,230,.6);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:100;box-shadow:0 4px 20px #0000000f}.header-left{display:flex;align-items:center}.breadcrumb{display:flex;align-items:center;gap:8px}.breadcrumb-item{font-size:16px;font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:20px}.header-actions{display:flex;align-items:center;gap:12px}.action-item{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;position:relative;transition:all .3s ease;color:var(--text-secondary)}.action-item:hover{background:var(--bg-color);color:var(--primary-color)}.action-item svg{width:20px;height:20px}.notification-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;background:var(--danger-color);border-radius:9px;font-size:11px;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center;padding:0 5px}.user-info{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:10px;cursor:pointer;transition:all .3s ease}.user-info:hover{background:var(--bg-color)}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--primary-color) 0%,#0e7490 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.user-avatar svg{width:20px;height:20px}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:10px}.user-name{font-size:14px;font-weight:500;color:var(--text-primary)}.user-info-inner{display:flex;align-items:center;gap:10px;outline:none}.user-caret{width:14px;height:14px;color:var(--text-secondary);transition:transform .3s ease}.user-info:hover .user-caret{transform:rotate(180deg)}.logout-item{color:#f56c6c}.main-content{flex:1;padding:32px;overflow-y:auto;background:linear-gradient(180deg,#f8fafc,#f1f5f9,#f8fafc);min-height:calc(100vh - var(--header-height))}.fade-slide-enter-active,.fade-slide-leave-active{transition:all .3s ease}.fade-slide-enter-from{opacity:0;transform:translateY(20px)}.fade-slide-leave-to{opacity:0;transform:translateY(-20px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#909399}.notice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0c298c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px}.notice-modal{position:relative;width:100%;max-width:420px;background:#fff;border-radius:16px;padding:40px 32px 28px;text-align:center;box-shadow:0 20px 60px #0f0c2959;animation:notice-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes notice-pop{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.notice-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:transparent;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s ease}.notice-close:hover{background:var(--bg-color);color:var(--text-primary)}.notice-close svg{width:16px;height:16px}.notice-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;background:linear-gradient(135deg,#0e7490,#155e75);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0e749066}.notice-icon svg{width:30px;height:30px;color:#fff}.notice-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.notice-text{font-size:14px;line-height:1.8;color:var(--text-regular);background:var(--bg-color);border-radius:10px;padding:14px 16px;margin-bottom:22px;text-align:left}.notice-btn{width:100%;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,#0e7490,#155e75);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 15px #0e749059}.notice-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0e749080}.notice-btn:active{transform:translateY(0)}.modal-fade-enter-active{transition:opacity .25s ease}.modal-fade-leave-active{transition:opacity .2s ease}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}@media(max-width:768px){.sidebar,.sidebar.is-collapse{transform:translate(-100%)}.main-wrapper{margin-left:0!important}.user-name{display:none}}:root{--osys-dur-fast: .12s;--osys-dur-base: .24s;--osys-dur-slow: .36s;--osys-ease-out: cubic-bezier(.22, 1, .36, 1);--osys-ease-in: cubic-bezier(.4, 0, 1, 1);--osys-radius-s: 8px;--osys-radius-m: 12px;--osys-radius-l: 16px;--osys-shadow-1: 0 2px 8px rgba(7, 29, 39, .08);--osys-shadow-2: 0 4px 16px rgba(7, 29, 39, .12);--osys-shadow-3: 0 8px 28px rgba(7, 29, 39, .16);--osys-glow-primary: 0 4px 20px rgba(14, 116, 144, .35);--osys-space-1: 4px;--osys-space-2: 8px;--osys-space-3: 12px;--osys-space-4: 16px;--osys-space-6: 24px;--osys-space-8: 32px}.osys-num{font-variant-numeric:tabular-nums}:root{--el-color-primary: #0e7490;--el-color-primary-dark-2: #0a5a72;--el-color-primary-light-3: #3f91a8;--el-color-primary-light-5: #6fb3c2;--el-color-primary-light-7: #a2d1da;--el-color-primary-light-8: #c2e0e6;--el-color-primary-light-9: #e8f4f6;--el-border-radius-base: 6px}.el-table th.el-table__cell{background:#f8fafc!important;color:#475569;font-weight:600}.el-table .el-table__body tr:nth-child(2n)>td.el-table__cell{background:#fafbfc}.el-table .el-table__body tr:hover>td.el-table__cell{background:#f0f9fa!important}.el-card{border-radius:8px;box-shadow:0 1px 3px #0f172a0f}.el-dialog{border-radius:10px}
