:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#273043;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--sidebar-bg: #2c3147;--sidebar-active: #4169e1;--page-bg: #f5f7fb;--card-bg: #fff;--border-color: #e8ebf2;--text-color: #273043;--muted-color: #8991a3;--chart-grid: #edf0f5}:root[data-theme=dark]{color:#e5e7eb;background:#111827;--sidebar-bg: #0c1220;--page-bg: #111827;--card-bg: #172033;--border-color: #293349;--text-color: #e5e7eb;--muted-color: #94a3b8;--chart-grid: #2b3548}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%;height:100%}body{overflow:hidden}button,input{font:inherit}code{padding:2px 6px;border-radius:5px;color:#4169e1;background:#4169e114;font-size:12px}.app-loading{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--muted-color);background:var(--page-bg)}.app-loading__logo{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#4169e1,#7654df);font-size:28px;font-weight:800;box-shadow:0 12px 30px #4169e14d}.page-loading{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted-color)}.brand{height:40px;display:flex;align-items:center;gap:10px;color:inherit;white-space:nowrap}.brand__mark{width:38px;height:38px;display:grid;place-items:center;color:#fff;border-radius:11px;background:linear-gradient(135deg,#5278ee,#7654df);box-shadow:0 7px 18px #4169e147}.brand__mark svg{width:30px;height:30px}.brand__text{font-size:21px;font-weight:800;letter-spacing:.4px}.brand--compact{justify-content:center}.admin-shell{height:100%;background:var(--page-bg)}.sidebar{position:relative;z-index:20;background:var(--sidebar-bg)!important;box-shadow:4px 0 20px #131b2e14}.sidebar .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.sidebar__brand{height:66px;display:flex;align-items:center;padding:0 18px;color:#fff}.sidebar__search{padding:2px 12px 10px;overflow:hidden}.sidebar__search .ant-input-affix-wrapper{min-width:48px;border:0;background:#ffffff14;box-shadow:none}.sidebar__search input,.sidebar__search .anticon{color:#ffffffc7;background:transparent}.sidebar__search input::placeholder{color:#ffffff6b}.sidebar .ant-menu{flex:1;overflow-x:hidden;overflow-y:scroll;scrollbar-gutter:stable;border-inline-end:0!important;background:transparent!important;padding:4px 10px;scrollbar-width:thin;scrollbar-color:rgba(202,213,255,.22) transparent}.sidebar .ant-menu::-webkit-scrollbar{width:4px}.sidebar .ant-menu::-webkit-scrollbar-track{background:transparent}.sidebar .ant-menu::-webkit-scrollbar-thumb{background:#cad5ff2e;border-radius:10px}.sidebar .ant-menu::-webkit-scrollbar-thumb:hover{background:#7897ff94}.sidebar .ant-menu-item,.sidebar .ant-menu-submenu-title{height:46px;line-height:46px;margin:3px 0;border-radius:7px;color:#eff2fbc7!important}.sidebar .ant-menu-item-selected{color:#fff!important;background:var(--sidebar-active)!important;box-shadow:0 6px 14px #4169e138}.sidebar .ant-menu-item:hover,.sidebar .ant-menu-submenu-title:hover{color:#fff!important;background:#ffffff14!important}.sidebar__footer{height:54px;display:flex;align-items:center;justify-content:center;gap:8px;color:#ffffff61;font-size:11px;border-top:1px solid rgba(255,255,255,.06);white-space:nowrap;overflow:hidden}.ant-layout-sider-collapsed .sidebar__brand{padding:0;justify-content:center}.ant-layout-sider-collapsed .sidebar__search{padding-inline:11px}.ant-layout-sider-collapsed .sidebar__search input{opacity:0;width:0}.workspace{min-width:0;background:var(--page-bg)}.topbar{height:64px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;line-height:normal;background:var(--card-bg)!important;border-bottom:1px solid var(--border-color)}.topbar__left{min-width:0;display:flex;align-items:center;gap:14px}.topbar__actions{flex-shrink:0}.user-chip{height:48px;margin-left:6px;padding:0 6px;border:0;display:flex;align-items:center;gap:9px;color:var(--text-color);background:transparent;cursor:pointer;border-radius:8px}.user-chip:hover{background:#7f7f7f14}.user-chip>span:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.user-chip b{font-size:13px}.user-chip small{color:var(--muted-color);font-size:11px}.notice-popover{width:250px}.notice-popover p{margin:10px 0;color:var(--muted-color);line-height:1.6}.route-tabs{height:40px;padding:6px 14px 0;display:flex;gap:4px;overflow-x:auto;background:var(--card-bg);border-bottom:1px solid var(--border-color);scrollbar-width:none}.route-tabs button{height:34px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid transparent;border-bottom:0;border-radius:7px 7px 0 0;color:var(--muted-color);background:transparent;white-space:nowrap;cursor:pointer}.route-tabs button:hover{color:#4169e1}.route-tabs button.active{color:#4169e1;background:var(--page-bg);border-color:var(--border-color)}.route-tabs i{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-style:normal;line-height:1}.route-tabs i:hover{color:#fff;background:#ef6b73}.main-content{height:calc(100vh - 104px);padding:20px;overflow:auto}.page-heading{margin-bottom:18px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-heading h1{margin:0 0 6px;color:var(--text-color);font-size:22px;line-height:1.25}.page-heading p{margin:0;color:var(--muted-color);font-size:13px}.page-heading__extra{flex-shrink:0}.table-card,.dictionary-types,.dictionary-items{overflow:hidden;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 14px #26314e06}.table-toolbar{min-height:62px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-color)}.table-toolbar>.ant-input-affix-wrapper,.table-toolbar>.ant-space:first-child .ant-input-affix-wrapper{width:280px}.table-toolbar .ant-select{min-width:130px}.table-toolbar h5.ant-typography{margin:0 0 2px}.toolbar-note{color:var(--muted-color);font-size:13px}.table-card .ant-table-wrapper{padding:0 2px}.table-card .ant-pagination{padding:0 14px}.identity-cell,.role-cell{display:flex;align-items:center;gap:10px}.identity-cell>span:last-child,.stacked-cell,.role-cell>div{display:flex;flex-direction:column;gap:3px}.identity-cell small,.stacked-cell small,.role-cell small{color:var(--muted-color);font-size:12px}.role-cell>span{width:38px;height:38px;display:grid;place-items:center;color:#4169e1;background:#4169e11a;border-radius:10px}.value-code{max-width:260px;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.duration-slow{color:#ef6b73;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid__full{grid-column:1 / -1}.permission-tree{max-height:330px;padding:6px 12px 12px;overflow:auto;border:1px solid var(--border-color);border-radius:8px}.permission-tree__tools{position:sticky;top:-6px;z-index:2;display:flex;justify-content:flex-end;background:var(--card-bg);border-bottom:1px solid var(--border-color)}.user-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px}.dept-filter{border-color:var(--border-color)}.dept-filter .ant-card-body{padding:8px}.dept-filter .ant-tree-treenode{padding:3px 0}.dashboard{display:flex;flex-direction:column;gap:16px}.welcome-card{min-height:220px;padding:34px 40px;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;color:#fff;border-radius:14px;background:linear-gradient(120deg,#2d3c77,#4169e1 48%,#745bdc);box-shadow:0 14px 32px #4169e133}.welcome-card:before{content:"";width:420px;height:420px;position:absolute;right:-130px;top:-230px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 50px #ffffff09,0 0 0 100px #ffffff06}.welcome-card>div:first-child{position:relative;z-index:2}.welcome-card h2.ant-typography{margin:13px 0 7px;color:#fff;font-size:29px}.welcome-card .ant-typography{max-width:620px;color:#ffffffb8}.welcome-card .ant-btn-default{color:#fff;background:#ffffff1f;border-color:#ffffff38}.welcome-illustration{width:250px;height:160px;position:relative;display:grid;place-items:center;flex-shrink:0}.welcome-illustration>div:last-child{width:145px;height:108px;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3);border-radius:18px;background:#ffffff1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 16px 35px #1a1f4b33;transform:rotate(-3deg)}.welcome-illustration .anticon{font-size:31px;margin-bottom:8px}.welcome-illustration b{font-size:13px;letter-spacing:1px}.welcome-illustration small{margin-top:3px;color:#fff9;font-size:9px;letter-spacing:2px}.welcome-illustration__ring{width:150px;height:150px;position:absolute;border:1px dashed rgba(255,255,255,.35);border-radius:50%;animation:spin 18s linear infinite}.welcome-illustration__dot{width:16px;height:16px;position:absolute;right:32px;top:20px;background:#74e0bf;border:4px solid rgba(255,255,255,.25);border-radius:50%}@keyframes spin{to{transform:rotate(360deg)}}.metric-card .ant-card-body{min-height:126px;display:flex;align-items:center;gap:15px}.metric-card__icon{width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;border-radius:13px;font-size:23px}.metric-card .ant-statistic-title{margin:0}.metric-card .ant-statistic-content{font-size:25px;font-weight:700}.metric-card p{margin:3px 0 0;color:var(--muted-color);font-size:11px}.chart-card .ant-card-body{padding:12px 18px 18px}.chart-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:7px 15px}.chart-legend span{min-width:0;display:flex;align-items:center;gap:7px;color:var(--muted-color);font-size:12px}.chart-legend i{width:8px;height:8px;flex-shrink:0;border-radius:50%}.chart-legend b{margin-left:auto;color:var(--text-color)}.recent-list>div{min-height:56px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--border-color)}.recent-list>div:last-child{border:0}.recent-list span{min-width:110px;display:flex;flex-direction:column;gap:2px}.recent-list small{color:var(--muted-color)}.recent-list time{margin-left:auto;color:var(--muted-color);font-size:12px}.health-list>div{margin-top:12px;display:flex;justify-content:space-between}.health-list>div:first-child{margin-top:0}.health-list .ant-progress{margin-bottom:12px}.health-list .ant-btn{margin-top:13px}.dictionary-layout{min-height:520px;display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px}.dictionary-types__search{padding:14px;border-bottom:1px solid var(--border-color)}.dictionary-types .ant-list-item{padding:13px 14px;cursor:pointer;border-left:3px solid transparent}.dictionary-types .ant-list-item:hover{background:#4169e10a}.dictionary-types .ant-list-item.active{background:#4169e114;border-left-color:#4169e1}.dictionary-types .ant-list-item-meta{min-width:0}.dictionary-types .ant-list-item-action{margin-inline-start:4px}.dictionary-items .ant-table-wrapper{padding:0 2px}.log-params{max-width:100%;max-height:260px;margin:0;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-all;color:var(--text-color);background:var(--page-bg);border-radius:6px;font:12px/1.6 ui-monospace,monospace}.profile-layout{display:grid;grid-template-columns:300px minmax(0,760px);gap:16px}.profile-summary{overflow:hidden;text-align:center;border-color:var(--border-color)}.profile-summary__cover{height:92px;margin:-24px -24px -43px;background:linear-gradient(125deg,#2f407f,#4169e1 55%,#745bdc)}.profile-summary .ant-avatar{margin-bottom:13px;border:4px solid var(--card-bg);background:#dbe2ff}.profile-summary h4.ant-typography{margin:0 0 2px}.profile-summary>.ant-space{margin-top:14px}.profile-summary__details{margin-top:26px;padding:17px 0;text-align:left;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.profile-summary__details p{margin:9px 0;display:flex;gap:10px;color:var(--muted-color)}.profile-summary__details .anticon{color:#4169e1}.profile-summary__time{padding-top:18px;display:flex;justify-content:space-between;color:var(--muted-color);font-size:12px}.profile-summary__time b{color:var(--text-color)}.profile-content{border-color:var(--border-color)}.profile-form{max-width:500px;padding-top:6px}.security-tip{max-width:500px;margin:5px 0 22px;padding:16px;display:flex;align-items:center;gap:13px;color:#4169e1;border-radius:9px;background:#4169e114}.security-tip>.anticon{font-size:23px}.security-tip span{display:flex;flex-direction:column}.security-tip small{margin-top:3px;color:var(--muted-color)}.login-page{min-height:100%;display:grid;grid-template-columns:minmax(420px,1.2fr) minmax(480px,.8fr);color:#273043;background:#fff}.login-visual{min-height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;padding:9vw;color:#fff;background:linear-gradient(135deg,#222b52,#344faa,#6749c5)}.login-visual__grid{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:46px 46px;transform:perspective(500px) rotateX(50deg) scale(1.7);transform-origin:bottom}.login-visual__orb{position:absolute;border-radius:50%;filter:blur(1px)}.login-visual__orb--one{width:440px;height:440px;right:-170px;top:-160px;border:1px solid rgba(255,255,255,.18);box-shadow:0 0 0 75px #ffffff06,0 0 0 150px #ffffff05}.login-visual__orb--two{width:210px;height:210px;left:-70px;bottom:-50px;background:#46d8be2e}.login-preview{max-width:660px;position:relative;z-index:2}.login-preview__badge{padding:8px 13px;display:inline-flex;align-items:center;gap:7px;font-size:12px;border:1px solid rgba(255,255,255,.24);border-radius:30px;background:#ffffff14}.login-preview h1{margin:28px 0 18px;font-size:clamp(42px,4.5vw,68px);line-height:1.13;letter-spacing:-2px}.login-preview>p{max-width:580px;color:#ffffffad;font-size:16px;line-height:1.8}.login-preview__stats{margin-top:52px;display:flex;gap:50px}.login-preview__stats span{display:flex;flex-direction:column;color:#ffffff8c;font-size:11px;text-transform:uppercase;letter-spacing:1px}.login-preview__stats b{margin-bottom:5px;color:#fff;font-size:22px;letter-spacing:0}.login-panel{min-height:100vh;display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:380px}.login-card .brand{margin-bottom:54px;color:#273043}.login-card__heading{margin-bottom:28px}.login-card__heading h2{margin:0 0 7px;font-size:28px}.login-card .ant-alert,.login-card .ant-form-item{margin-bottom:18px}.login-card .ant-input-affix-wrapper{min-height:46px;padding-inline:13px;background:#f7f8fb;border-color:#eef0f5}.login-card .ant-input{background:transparent}.login-options{margin:-2px 0 22px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.login-card .ant-btn-primary{height:46px;font-weight:600;box-shadow:0 8px 18px #4169e140}.login-copyright{margin-top:50px;color:#a2a9b8;text-align:center;font-size:11px;letter-spacing:.5px}.task-grid,.plugin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.task-card,.plugin-card,.empty-card{padding:22px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 5px 18px #26314e09}.task-card__head{display:flex;align-items:center;justify-content:space-between}.task-card__head>span{width:40px;height:40px;display:grid;place-items:center;color:#ef6b73;background:#ef6b731a;border-radius:10px;font-size:19px}.task-card__head>span.running{color:#23b899;background:#23b8991a}.task-card h4.ant-typography{margin:16px 0}.task-card dl{margin:0}.task-card dl>div{min-height:37px;display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center;border-bottom:1px solid var(--border-color)}.task-card dt{color:var(--muted-color);font-size:12px}.task-card dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.task-card__actions,.plugin-card__actions{margin-top:18px;display:flex;gap:5px}.goods-thumb{width:42px;height:42px;flex-shrink:0;object-fit:cover;border-radius:8px}.goods-thumb--empty{display:grid;place-items:center;color:#4169e1;background:#4169e11a;font-weight:700}.file-icon{width:38px;height:38px;display:grid;place-items:center;color:#4169e1;background:#4169e11a;border-radius:9px;font-size:18px}.plugin-card{position:relative;overflow:hidden}.plugin-card:after{content:"";width:110px;height:110px;position:absolute;right:-45px;top:-45px;border-radius:50%;background:#4169e10f}.plugin-card__icon{width:45px;height:45px;display:grid;place-items:center;color:#4169e1;background:#4169e11a;border-radius:12px;font-size:21px}.plugin-card__head{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.plugin-card__head h4.ant-typography{margin:0}.plugin-card>p{min-height:42px;color:var(--muted-color);line-height:1.6}.empty-card{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-card .ant-typography{max-width:620px}@media(max-width:1050px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.metric-card .ant-card-body{gap:10px}.user-grid{grid-template-columns:1fr}.dept-filter{display:none}}@media(max-width:760px){.sidebar{position:fixed!important;left:0;top:0;bottom:0;transform:translate(0);transition:transform .22s ease!important}.sidebar.ant-layout-sider-collapsed{transform:translate(-100%)}.topbar{padding:0 10px}.topbar .ant-breadcrumb{display:none}.topbar__actions>.ant-space-item:nth-child(-n+3){display:none}.user-chip>span:last-child{display:none}.main-content{padding:14px}.page-heading{align-items:center}.page-heading p{display:none}.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar>.ant-input-affix-wrapper,.table-toolbar>.ant-space:first-child .ant-input-affix-wrapper{width:100%}.form-grid{grid-template-columns:1fr}.form-grid__full{grid-column:auto}.welcome-card{min-height:260px;padding:28px 24px}.welcome-illustration{display:none}.welcome-card h2.ant-typography{font-size:24px}.dictionary-layout{grid-template-columns:1fr}.dictionary-types{max-height:290px}.profile-layout,.task-grid,.plugin-grid{grid-template-columns:1fr}.login-panel{padding:24px}.login-card .brand{margin-bottom:38px}}
