.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-loading .auth-loading-content{text-align:center;padding:60px;background:#fffffff2;border-radius:20px;box-shadow:0 20px 60px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-loading .auth-loading-content .auth-loading-text{margin-top:24px;font-size:16px;color:#606266;font-weight:500}.oauth2-error-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef);padding:20px}.not-found-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef)}.admin-layout{height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef)}.admin-layout .admin-sider{background:#fff;border-right:1px solid #f0f0f0;box-shadow:2px 0 8px #1d23290d;z-index:100;overflow:hidden}.admin-layout .admin-sider .sidebar-header{height:64px;background:linear-gradient(135deg,#1890ff,#096dd9);display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.1)}.admin-layout .admin-sider .sidebar-header h2{margin:0;color:#fff;font-size:18px;font-weight:600;white-space:nowrap}.admin-layout .admin-sider .sidebar-header .anticon{color:#fff;font-size:24px}.admin-layout .admin-sider .sidebar-header .collapse-icon{font-size:28px;animation:pulse 2s infinite}.admin-layout .admin-sider .admin-menu{border:none;padding:12px 0;overflow-x:hidden;overflow-y:auto}.admin-layout .admin-sider .admin-menu.ant-menu-inline-collapsed .ant-menu-item{margin:4px auto!important;padding:0!important;width:40px!important;text-align:center}.admin-layout .admin-sider .admin-menu.ant-menu-inline-collapsed .ant-menu-item:hover{transform:none!important;box-shadow:none!important;background:#f0f2f5}.admin-layout .admin-sider .admin-menu.ant-menu-inline-collapsed .ant-menu-item .ant-menu-item-icon{min-width:unset;margin-right:0;font-size:18px}.admin-layout .admin-sider .admin-menu.ant-menu-inline-collapsed .ant-menu-item .ant-menu-title-content{display:none}.admin-layout .admin-sider .admin-menu .ant-menu-item{height:56px;line-height:56px;margin:4px 12px;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.admin-layout .admin-sider .admin-menu .ant-menu-item:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:transparent;transition:all .3s}.admin-layout .admin-sider .admin-menu .ant-menu-item:hover{background:linear-gradient(135deg,#ecf5ff,#f0f9ff);transform:translate(4px);box-shadow:0 4px 12px #409eff26}.admin-layout .admin-sider .admin-menu .ant-menu-item:hover:before{background:#409eff}.admin-layout .admin-sider .admin-menu .ant-menu-item.ant-menu-item-selected{background:linear-gradient(135deg,#409eff,#36a3f7);color:#fff;box-shadow:0 4px 20px #409eff4d;transform:translate(4px)}.admin-layout .admin-sider .admin-menu .ant-menu-item.ant-menu-item-selected:before{background:#ffffff4d}.admin-layout .admin-sider .admin-menu .ant-menu-item.ant-menu-item-selected .anticon{color:#fff;transform:scale(1.1)}.admin-layout .admin-sider .admin-menu .ant-menu-item .anticon{font-size:18px;transition:all .3s}.admin-layout .collapse-toggle{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#409eff,#36a3f7);border:2px solid white;border-radius:50%;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10;box-shadow:0 4px 12px #409eff4d;color:#fff;font-size:16px}.admin-layout .collapse-toggle:hover{transform:translate(-50%) translateY(-4px) scale(1.1);box-shadow:0 8px 24px #409eff66;background:linear-gradient(135deg,#667eea,#764ba2)}.admin-layout .collapse-toggle:active{transform:translate(-50%) scale(.95)}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-main .admin-header{background:linear-gradient(135deg,#fff,#fafbfc);border-bottom:1px solid #e4e7ed;display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:64px;box-shadow:0 2px 8px #0000000f}.admin-main .admin-header .header-left{flex:1}.admin-main .admin-header .header-right .user-info{display:flex;align-items:center;gap:12px;cursor:pointer;padding:10px 16px;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid transparent}.admin-main .admin-header .header-right .user-info:hover{background:linear-gradient(135deg,#f8f9ff,#ecf5ff);border-color:#d4e4ff;transform:translateY(-2px);box-shadow:0 4px 12px #409eff26}.admin-main .admin-header .header-right .user-info .username{font-weight:600;color:#303133;font-size:15px}.admin-main .admin-header .header-right .user-info .dropdown-icon{color:#909399;font-size:12px;transition:all .3s}.admin-main .admin-header .header-right .user-info:hover .dropdown-icon{color:#409eff;transform:rotate(180deg)}.admin-main .admin-content{flex:1;padding:16px;overflow-y:auto;overflow-x:hidden;background:transparent}.admin-main .admin-content::-webkit-scrollbar{width:8px}.admin-main .admin-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.admin-main .admin-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#409eff,#36a3f7);border-radius:4px}.admin-main .admin-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#667eea,#764ba2)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.ant-table-tbody>tr:nth-child(2n)>.ant-table-cell{background-color:#fafafa}@media(max-width:768px){.admin-layout .admin-sider{position:fixed;z-index:1000;height:100vh}.admin-layout .admin-sider:not(.ant-layout-sider-collapsed){box-shadow:4px 0 20px #00000026}.admin-layout .admin-header{padding:0 16px}.admin-layout .admin-header .header-right .user-info{padding:8px 12px;gap:8px}.admin-layout .admin-content{padding:16px}}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}.ant-breadcrumb-link{font-weight:500;color:#606266;transition:all .2s}.ant-breadcrumb-link:hover{color:#409eff}.ant-breadcrumb-separator{color:#909399}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
