:root{--color-primary: #0091ff;--color-background: #f6f7fa;--color-surface: #fff;--color-text: rgba(0, 0, 0, .85);--color-muted: rgba(0, 0, 0, .5);--color-border: #f0f0f0;--font-family: "PingFang SC", "Microsoft YaHei", sans-serif;--radius-base: 4px;--font-weight-regular: 400;--motion-duration: .3s;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-title: 22px;--font-size-brand: 24px}:root{--header-height: 64px;--sidebar-width: 220px;font-family:var(--font-family);color:var(--color-text);font-size:var(--font-size-base);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:-3px}.admin-shell{height:100vh;height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;flex:0 0 var(--header-height);align-items:center;justify-content:space-between;gap:var(--space-5);padding:0 26px 0 53px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.brand{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.brand-name{color:var(--color-primary);font-size:var(--font-size-brand);line-height:33px}.brand-divider,.brand-title{color:var(--color-muted);font-size:var(--font-size-xl)}.user-info{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-muted);white-space:nowrap}.user-login{min-height:40px;padding:0 var(--space-2);transition:color var(--motion-duration)}.user-login:hover{color:var(--color-primary)}.user-info .icon-user{width:24px;height:24px}.user-info .chevron{margin-left:10px}.app-body{display:flex;flex:1;min-height:0}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);overflow-y:auto;background:var(--color-surface);border-right:1px solid var(--color-border)}.sidebar nav{padding:34px 0}.sidebar-menu.ant-menu>.nav-home{margin-bottom:14px}.sidebar-menu.ant-menu>.ant-menu-submenu+.ant-menu-submenu{margin-top:14px}.sidebar-menu.ant-menu>.nav-home,.sidebar-menu.ant-menu>.ant-menu-submenu>.ant-menu-submenu-title{padding-inline-end:42px;color:var(--color-text);background:transparent}.sidebar .sidebar-menu.ant-menu>.nav-home.ant-menu-item:hover,.sidebar .sidebar-menu.ant-menu>.nav-home.ant-menu-item:active,.sidebar-menu.ant-menu>.nav-home.ant-menu-item-selected,.sidebar-menu.ant-menu>.ant-menu-submenu>.ant-menu-submenu-title:hover,.sidebar-menu.ant-menu>.ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--color-primary);background:transparent}.sidebar-menu.ant-menu .ant-menu-submenu-arrow{inset-inline-end:42px}.sidebar-menu.ant-menu .ant-menu-item,.sidebar-menu.ant-menu .ant-menu-submenu-title{transition:color var(--motion-duration),background-color var(--motion-duration)}.sidebar-menu.ant-menu .sketch-icon{vertical-align:middle}.chevron{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}.sketch-icon{display:inline-block;flex-shrink:0;width:20px;height:20px;background:currentColor;-webkit-mask:var(--icon-url) center/contain no-repeat;mask:var(--icon-url) center/contain no-repeat}.icon-home{--icon-url: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAABMElEQVRIie2ToU4DQRCGF0wTJElnKAFD+gS8AQ4cT4C5pJkfUo2kEouowDVYXgQMb0AuiAoECQ5Ryk/2bsXRO8pe7xydZJLN5Nv/n92dde7fxF7CbTHe+/TrVsV7FzwUMFWQPv3a11oRVzAR8EONcwVHWRrnWQ1MVhbuD9lR8DZ0/NY953HB9EjA13Ciu96AW7XEd8F9AR+DwJOAB5WM8WEZUxk7xhPfcUx3/SE7At4E9l3A0yXS3FDwUo1fYvwUcBB5YNcFz8Q4C9d57a64WYIEnIROPDh1NUPBadjrTSZlA+M4m3PwxY9hXQMB02xv/lfGf4GrGqTtgW0aiHGs4HMxF6+hmQGYaj4luYFxVsU0MpBCLYZZG6SNrujHg6L8qDHM7wYVI6kLYxnDrMPFxjcg4GwX7C9TSgAAAABJRU5ErkJggg==)}.icon-academic{--icon-url: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAACg0lEQVRIid2UT4jNURTHXxIlFigsZDc2UmNFSkMxU6Nkp9gog4WSpRmenw1+97yZ3zm3eb3fOXcMG6Xkb5JSYiORhZUFI3+iyJppJHTu7/7ee7z3Rt57Czn1693e/d3v95zPOb9bKPzXcXp8fClY6ddnbGxiSdeEoyiaa1BOGJSvQPJDn7Au6l7HBiqeCfOLGGVYH10Hs2LHWHy2KM+jcnlh1dScXWRQpoB4piNcMbqBkOnR3/cM8YjuxZRua9vAN1VFUIYb9lCOefNEtrZtoOUrBmWuWJohOlOpLG7bwGdKUgyTM6VYApqX2X98XN+JokvzgGS3sXyghLL+rwx0FDMTnsnHVNcqTiSrFGM2WWGESb4Aul5D6WAURXP+aOBxJDIEKHeA5JVBeQvIN2NyEZC8r5qifAbiyVoSasbnZzUpJbLdkHyqy+4jIH+oFwHkBwb5oqJRsRLKYUC5BcTPAtodzcUp3WeQv2tmnnu5vCLfO0UTy4HkUTZFfCgSWaDIAOWcJpX1jm9kCbjeBvFRW1kHyNOacZy4NQ3YSMo5Fn9H5WLVStNBX0lW4XRD4w3yVb9ppb9ZdZBh+RZb2Witna9rraiE6eYwBJOKyxC7UMXeGppSZZk/gPywZeOJ7+b8VQhQ3viKkR+H5o7E1m3IGu/HeVftsJW+0JyTrQxGR91qQ3LPv2elzyRuk0F+HSq5pj0B4gv5LaDfSc0gcXv8wUSGWhloAMmVUMURY2WLVqK4wgW506DczgzcQKE+lFcDtyYBKAf9lNWNq/YkxxLG+l1s3cpfDsZjshZQnurvbAYagG6/Qb6c46oTrhiU64bSnkI3wlDaA8j3DfITHeGuiP6T8RNJoByaM0Vl+wAAAABJRU5ErkJggg==)}.icon-research{--icon-url: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAB5ElEQVRIie1UPWsUURQdAiZiiJUWVram0Qg2WtgoaGGthT8gRexTTiEke+8sc+8LxtwzCQQDQdA0IYGkiZUKWUj+QYhooRZ+FIGEQIy8nZ1ldtfZ7OpilQOXGYbLOe+cN5wgOEUOZff8OksyEhQhBM6R2h2ObYzExqsTJ4+jZ3OXm3ejaGGQxW6GYdjnnBsgsSVWHPshxYsWchabJsFhttQ8pHhLmjyIxG6TYI0EB/57FCcPySWVdMc2WOydf5+cmrnWKKDYJbU9VpRI7BHHuFuS5F5J8cQTsuKoLib2i8QqrDNPSW27doCvzrmLLHiT7s1ebRHwUxRfeQpXWPCd1H5QbDeqsShWM/L8kxWvWyPKCfi4WLFTH7Hp/E4YvupnteXUDdb8yUnsS418K5yfP/tPAiT2snbiVefc+boTl1SI5ob+GMFJEeV2PtbuY6uBPBUbCIrQqQNS++YJ08tvcFJM3p0A9qsCDrdyTtqTNwu026H0V/aX+zlzciJ5NwKs9iHL3TuIY1zqsQB202rAIqlZR+TdCgR/g/8jIPapXZtyTsA3r29TAGe6cXDcrk1Z8dP3EautZ23KgtHOBHxdK97n25Sd3S9qU1ZsstpEuYwLQS9QktnhasGJrfg27QnpKXwCvwHrrBufHYD4OwAAAABJRU5ErkJggg==)}.icon-user{--icon-url: url(data:image/png;base64,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)}.main-content{display:flex;flex-direction:column;flex:1;min-width:0;gap:var(--space-5);padding:var(--space-5);overflow:auto;background:var(--color-background)}.welcome-card,.page-card{background:var(--color-surface);border-radius:var(--radius-base);padding:18px 37px}.welcome-card{flex-shrink:0;min-height:97px}.welcome-title{margin:0;font-size:var(--font-size-title);font-weight:var(--font-weight-regular);line-height:30px}.welcome-date{margin:10px 0 0;color:var(--color-muted);line-height:20px}.welcome-date span{margin-left:var(--space-3)}.page-card{flex:1;min-height:300px}.page-card h1{margin:0;font-size:var(--font-size-title);font-weight:var(--font-weight-regular);line-height:30px}.skip-link{position:fixed;top:8px;left:8px;z-index:10;padding:10px var(--space-4);color:var(--color-surface);background:var(--color-primary);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.user-logout{margin-left:10px;padding:0;border:none;background:none;color:var(--color-muted);cursor:pointer;transition:color var(--motion-duration)}.user-logout:hover{color:var(--color-primary)}.auth-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-background)}.auth-back{color:var(--color-muted);transition:color var(--motion-duration)}.auth-back:hover{color:var(--color-primary)}.auth-body{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:9vh var(--space-4) var(--space-12)}.auth-card{width:400px;max-width:100%;background:var(--color-surface);border-radius:var(--radius-base);padding:var(--space-8) 37px}.auth-card h1{margin:0;font-size:var(--font-size-title);font-weight:var(--font-weight-regular);line-height:30px}.auth-subtitle{margin:var(--space-1) 0 var(--space-5);color:var(--color-muted)}.auth-alert{margin-bottom:var(--space-4)}.auth-alt{margin-top:var(--space-4);color:var(--color-muted)}.auth-alt a{color:var(--color-primary)}.auth-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-6) 0 var(--space-4);color:var(--color-muted)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}@media(max-width:640px){.app-header{padding:0 var(--space-4);gap:var(--space-2)}.brand{gap:6px}.brand-name{font-size:21px}.brand-title{font-size:var(--font-size-md)}.main-content{padding:var(--space-3);gap:var(--space-3)}.welcome-card,.page-card{padding:18px var(--space-4);overflow-wrap:anywhere}.welcome-title,.page-card h1{font-size:var(--font-size-lg)}.auth-card{padding:var(--space-6) var(--space-5)}.welcome-date span{display:block;margin-left:0}}
