*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--admin-bg);color:var(--admin-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--admin-dur-base) var(--admin-ease-in-out),color var(--admin-dur-base) var(--admin-ease-in-out)}a{color:var(--admin-link);transition:color var(--admin-dur-fast) var(--admin-ease-out)}a:hover{color:var(--admin-link-hover)}:focus-visible{outline:none;box-shadow:var(--admin-focus)}button,a,[role=button]{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1118272e;border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#1118274d;background-clip:content-box;border:2px solid transparent}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff29;background-clip:content-box;border:2px solid transparent}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff47;background-clip:content-box}.admin-sider{background:var(--admin-surface)!important;border-right:1px solid var(--admin-border)}.admin-sider .ant-layout-sider-children{display:flex;flex-direction:column}.admin-brand{height:60px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--admin-border);flex-shrink:0}.admin-brand-collapsed{padding:0;justify-content:center}.admin-brand-mark{width:30px;height:30px;border-radius:6px;background:linear-gradient(135deg,#ff6a00,#ff8a3d);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #ff6a0059}.admin-brand-text{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--admin-text);white-space:nowrap;overflow:hidden}.admin-brand-sub{font-size:11px;color:var(--admin-text-secondary);white-space:nowrap}.admin-sider-menu{border-inline-end:none!important;padding:8px 0 16px;flex:1;overflow-y:auto;overflow-x:hidden;background:transparent!important}.admin-sider-menu .ant-menu-item{position:relative;overflow:visible}.admin-sider-menu .ant-menu-item-selected{font-weight:500;box-shadow:none}.admin-sider-menu .ant-menu-item-selected:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--admin-primary)}.admin-sider-menu .ant-menu-submenu-title{font-weight:500}.admin-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:var(--admin-surface-muted);color:var(--admin-text-secondary);font-size:14px;flex-shrink:0;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.ant-menu-item:hover .admin-menu-icon,.ant-menu-submenu-title:hover .admin-menu-icon{color:var(--admin-primary);transform:scale(1.06)}.ant-menu-item-selected .admin-menu-icon{background:var(--admin-primary-bg);color:var(--admin-primary)}.ant-menu-submenu-open>.ant-menu-submenu-title .admin-menu-icon,.ant-menu-submenu-selected>.ant-menu-submenu-title .admin-menu-icon{background:var(--admin-primary-bg);color:var(--admin-primary)}.admin-sider.ant-layout-sider-collapsed .admin-menu-icon{margin:0 auto}.admin-header .ant-btn-circle,.admin-header .ant-btn[aria-label]{transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-header .ant-btn-circle:hover{background:var(--admin-surface-muted);color:var(--admin-primary)}.admin-header{position:sticky;top:0;z-index:30;background:var(--admin-header-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--admin-border);line-height:normal}.admin-page-tabs{display:flex;align-items:center;gap:4px;padding:6px 12px 0;background:var(--admin-surface);border-bottom:1px solid var(--admin-border)}.admin-page-tabs .ant-tabs{flex:1;min-width:0}.admin-page-tabs .ant-tabs-nav{margin-bottom:0}.admin-page-tabs .ant-tabs-nav:before{border-bottom:none}.admin-page-tabs .ant-tabs-tab{border-radius:4px 4px 0 0!important;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-page-tabs-more{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-bottom:6px;border:none;border-radius:6px;background:transparent;color:var(--admin-text-secondary);cursor:pointer;font-size:12px;flex-shrink:0;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-page-tabs-more:hover{background:var(--admin-surface-muted);color:var(--admin-text)}.admin-empty{padding:48px 0 40px;text-align:center;color:var(--admin-text-secondary);animation:adminFadeIn var(--admin-dur-base) var(--admin-ease-out)}.admin-empty svg{opacity:.55;margin-bottom:12px}.admin-empty-text{font-size:13px;margin-bottom:12px}.admin-quick-link{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--admin-border-soft);border-radius:4px;color:var(--admin-text);font-size:12px;background:var(--admin-surface);transition:border-color var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-quick-link:hover{border-color:var(--admin-primary);color:var(--admin-primary);background:var(--admin-primary-bg)}.admin-quick-link-icon{display:inline-flex;font-size:14px;color:var(--admin-primary)}.admin-content{padding:16px;background:var(--admin-bg)}.admin-content-inner{max-width:1440px;margin:0 auto}@keyframes adminFadeIn{0%{opacity:0}to{opacity:1}}@keyframes adminFadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes adminScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.admin-anim-enter{animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out) both}.admin-anim-fade{animation:adminFadeIn var(--admin-dur-fast) var(--admin-ease-out) both}.admin-anim-stagger>*{animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out) both;animation-delay:calc(var(--stagger-i, 0) * 40ms)}.admin-hover-lift{transition:transform var(--admin-dur-base) var(--admin-ease-out),box-shadow var(--admin-dur-base) var(--admin-ease-out)}.admin-hover-lift:hover{transform:translateY(-3px);box-shadow:0 10px 28px #1018281a}:root[data-theme=dark] .admin-hover-lift:hover{box-shadow:0 10px 28px #00000073}.admin-icon-bounce{transition:transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-hover-lift:hover .admin-icon-bounce{transform:translateY(-2px)}.admin-page-title{letter-spacing:-.01em;font-weight:600}.admin-stat-card{position:relative;overflow:hidden;transition:transform var(--admin-dur-fast) var(--admin-ease-out),box-shadow var(--admin-dur-fast) var(--admin-ease-out)}.admin-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--admin-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--admin-dur-base) var(--admin-ease-out)}.admin-stat-card:hover{transform:translateY(-2px);box-shadow:var(--admin-shadow-pop)}.admin-stat-card:hover:before{transform:scaleX(1)}.admin-stat-card-link .ant-card-body a{text-decoration:none;color:inherit;height:100%}.admin-stat-card-link:hover{cursor:pointer}.admin-stat-icon{width:38px;height:38px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.admin-list-toolbar{padding:16px;border-bottom:1px solid var(--admin-border-soft)}.admin-table-card .ant-table-wrapper .ant-pagination{margin-inline:16px}.admin-list-error{border-radius:8px}.ant-modal .ant-modal-title{font-size:16px;font-weight:600}.ant-tag{border-radius:2px;padding-inline:8px;margin-inline-end:4px}.ant-table-wrapper .ant-table-cell-fix-left,.ant-table-wrapper .ant-table-cell-fix-right{transition:box-shadow var(--admin-dur-fast) var(--admin-ease-out)}.ant-btn{transition:transform var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast) var(--admin-ease-out),border-color var(--admin-dur-fast) var(--admin-ease-out),box-shadow var(--admin-dur-fast) var(--admin-ease-out)}.ant-btn:not(:disabled):not(.ant-btn-loading):active{transform:scale(.97)}.ant-table-wrapper .ant-table-tbody>tr>td{transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-link,.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-text{opacity:.65;transition:opacity var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast) var(--admin-ease-out)}.ant-table-wrapper .ant-table-tbody>tr:hover>td .ant-btn-link,.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-link:hover,.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-link:focus-visible,.ant-table-wrapper .ant-table-tbody>tr:hover>td .ant-btn-text,.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-text:hover,.ant-table-wrapper .ant-table-tbody>tr>td .ant-btn-text:focus-visible{opacity:1}.admin-sider-menu .ant-menu-item,.admin-sider-menu .ant-menu-submenu-title{transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-cmdk-item{transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-cmdk-panel{animation:adminScaleIn var(--admin-dur-fast) var(--admin-ease-out)}.admin-theme-toggle .anticon,.admin-theme-toggle svg{transition:transform var(--admin-dur-slow) var(--admin-ease-spring)}.admin-theme-toggle:hover svg{transform:rotate(30deg) scale(1.08)}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}::view-transition-old(root){animation:none}::view-transition-new(root){animation:adminThemeReveal var(--admin-dur-slow) var(--admin-ease-out)}@keyframes adminThemeReveal{0%{clip-path:circle(0 at var(--vt-x, 50vw) var(--vt-y, 60px))}to{clip-path:circle(150% at var(--vt-x, 50vw) var(--vt-y, 60px))}}.admin-nav-progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:1100;pointer-events:none;background:var(--admin-primary);border-radius:0 2px 2px 0;box-shadow:0 0 8px var(--admin-primary);animation:adminNavProgress .7s var(--admin-ease-out) both}@keyframes adminNavProgress{0%{width:0;opacity:1}60%{width:82%;opacity:1}85%{width:100%;opacity:1}to{width:100%;opacity:0}}.admin-nav-progress:after{content:"";position:absolute;inset:-1px auto -1px 0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);animation:adminNavSheen .7s var(--admin-ease-out) both}@keyframes adminNavSheen{0%{transform:translate(-60%);opacity:0}55%{transform:translate(160%);opacity:1}86%{transform:translate(240%);opacity:.6}to{transform:translate(260%);opacity:0}}@media (max-width: 900px){.login-shell{flex-direction:column}.login-brand{display:none!important}.login-panel{width:100%!important;min-height:100vh}}@media (max-width: 991px){.admin-content{padding:16px!important}.admin-header-breadcrumb{display:none}}@media (max-width: 767px){.admin-page-title{font-size:15px!important}.admin-table-card .ant-table{overflow-x:auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.admin-role-shell{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:6px;box-shadow:var(--admin-shadow);overflow:hidden;height:calc(100vh - 200px);min-height:520px;display:flex;flex-direction:column}.admin-role-list{display:flex;flex-direction:column;height:100%;min-height:0}.admin-role-list-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 12px;border-bottom:1px solid var(--admin-border-soft)}.admin-role-list-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--admin-text);letter-spacing:-.01em}.admin-role-list-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;font-size:11px;font-weight:600;border-radius:9px;background:var(--admin-surface-muted);color:var(--admin-text-secondary);border:1px solid var(--admin-border-soft)}.admin-role-list-create{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:12px;font-weight:500;border:1px solid var(--admin-primary);border-radius:4px;background:var(--admin-primary);color:#fff;cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),border-color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-list-create:hover{background:var(--admin-primary-hover);border-color:var(--admin-primary-hover)}.admin-role-list-create:active{transform:scale(.97)}.admin-role-list-search{margin:12px 16px 8px;width:calc(100% - 32px)}.admin-role-list-search .ant-input{border-radius:4px;background:var(--admin-surface-muted)}.admin-role-list-scroll{flex:1;min-height:0;overflow-y:auto;padding:6px 10px 12px;display:flex;flex-direction:column;gap:4px}.admin-role-card{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),border-color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-card:hover{background:var(--admin-surface-muted)}.admin-role-card.is-selected{background:var(--admin-primary-bg);border-color:var(--admin-primary)}.admin-role-card.is-selected:before{content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--admin-primary)}.admin-role-card-avatar{flex-shrink:0;width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;letter-spacing:-.02em}.admin-role-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-role-card-name{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--admin-text);letter-spacing:-.01em;min-width:0}.admin-role-card-name>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-role-card-badge{font-size:10px!important;line-height:14px!important;padding:0 5px!important;border-radius:2px!important;margin:0!important;background:#faad141f!important;color:#d48806!important;border-color:#faad144d!important;flex-shrink:0}.admin-role-card-check{margin-left:auto;color:var(--admin-primary);font-size:12px}.admin-role-card-desc{font-size:12px;color:var(--admin-text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical}.admin-role-card-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--admin-text-secondary)}.admin-role-card-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;padding:1px 4px;background:var(--admin-surface-muted);border-radius:2px;border:1px solid var(--admin-border-soft);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-role-card-members{display:inline-flex;align-items:center;gap:3px}.admin-role-card-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;border:none;background:transparent;border-radius:4px;color:var(--admin-text-secondary);cursor:pointer;opacity:0;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),opacity var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-card:hover .admin-role-card-actions,.admin-role-card:focus-within .admin-role-card-actions{opacity:1}.admin-role-card-actions:hover{background:var(--admin-surface);color:var(--admin-text)}.admin-perm-shell{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.admin-perm-empty{flex:1;display:flex;align-items:center;justify-content:center}.admin-perm-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--admin-border-soft);background:var(--admin-surface);flex-shrink:0;flex-wrap:wrap}.admin-perm-header-left{display:flex;flex-direction:column;gap:4px;min-width:0}.admin-perm-header-title{display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:600;color:var(--admin-text);letter-spacing:-.01em}.admin-perm-header-sub{font-size:11px;font-weight:400;color:var(--admin-text-secondary);padding:1px 6px;background:var(--admin-primary-bg);color:var(--admin-primary);border-radius:2px;letter-spacing:.04em}.admin-perm-header-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--admin-text-secondary)}.admin-perm-header-meta strong{color:var(--admin-primary);font-weight:600;font-variant-numeric:tabular-nums}.admin-perm-dot{width:3px;height:3px;border-radius:50%;background:var(--admin-border)}.admin-perm-header-right{display:flex;align-items:center;gap:10px}.admin-perm-search{width:200px}.admin-perm-search .ant-input{border-radius:4px}.admin-perm-header-right .ant-segmented{background:var(--admin-surface-muted);border-radius:4px;padding:2px}.admin-perm-header-right .ant-segmented .ant-segmented-item{font-size:12px;padding:0 10px;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-header-right .ant-segmented .ant-segmented-item-selected{background:var(--admin-surface);font-weight:500;box-shadow:var(--admin-shadow)}.admin-perm-matrix-wrap{flex:1;min-height:0;overflow:auto;background:var(--admin-bg)}.admin-perm-matrix{min-width:640px}.admin-perm-matrix-head{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,80px) 100px;background:var(--admin-surface);border-bottom:1px solid var(--admin-border-soft);font-size:12px;color:var(--admin-text-secondary);-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-perm-th{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;font-weight:500}.admin-perm-th-resource{justify-content:flex-start;padding-left:20px;color:var(--admin-text);font-size:13px;font-weight:600}.admin-perm-th-action{flex-direction:row;gap:6px;cursor:pointer;font-size:13px;font-weight:600;color:var(--admin-text);transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-th-action:hover{background:var(--admin-primary-bg);color:var(--admin-primary)}.admin-perm-th-action.is-all{color:var(--admin-primary)}.admin-perm-th-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.3;transition:opacity var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-th-dot.is-on,.admin-perm-th-dot.is-partial{opacity:1}.admin-perm-th-dot.is-partial{background:repeating-linear-gradient(45deg,currentColor 0 2px,transparent 2px 4px)}.admin-perm-th-label{font-size:13px;font-weight:600;letter-spacing:0}.admin-perm-presets{display:inline-flex;align-items:center;gap:4px}.admin-perm-presets .ant-btn{font-size:12px;height:28px;padding:0 10px}.admin-perm-group{background:var(--admin-surface);border-bottom:1px solid var(--admin-border-soft)}.admin-perm-group-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--admin-surface-muted);border-bottom:1px solid var(--admin-border-soft);position:sticky;top:44px;z-index:1}.admin-perm-group-left{display:flex;align-items:center;gap:10px}.admin-perm-group-name{font-size:13px;font-weight:600;color:var(--admin-text)}.admin-perm-group-count{font-size:11px;color:var(--admin-text-secondary);font-variant-numeric:tabular-nums;padding:1px 6px;border-radius:2px;background:var(--admin-surface);border:1px solid var(--admin-border-soft)}.admin-perm-group-toggle{border:none;background:transparent;color:var(--admin-link);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:3px;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-group-toggle:hover{background:var(--admin-primary-bg)}.admin-perm-group-rows{display:flex;flex-direction:column}.admin-perm-row{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,1fr);border-bottom:1px solid var(--admin-border-soft);cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-row:last-child{border-bottom:none}.admin-perm-row:hover{background:var(--admin-surface-muted)}.admin-perm-row.is-on{background:#ff6a000a}.admin-perm-row.is-on:hover{background:#ff6a0014}.admin-perm-row.is-dirty{box-shadow:inset 2px 0 0 var(--admin-primary)}.admin-perm-row-name{padding:14px 8px 14px 20px;font-size:14px;color:var(--admin-text);display:flex;align-items:center;gap:6px}.admin-perm-row-dirty{width:6px;height:6px;border-radius:50%;background:var(--admin-primary);box-shadow:0 0 0 3px var(--admin-primary-bg);flex-shrink:0}.admin-perm-cell{display:flex;align-items:center;justify-content:center;padding:12px 0;position:relative}.admin-perm-cell .ant-checkbox{pointer-events:auto}.admin-perm-cell.is-empty .ant-checkbox{display:none}.admin-perm-cell-empty{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px dashed var(--admin-border-soft);opacity:.4}.admin-perm-cell.is-on:after{content:"";position:absolute;top:8px;right:18px;bottom:8px;left:18px;background:currentColor;opacity:.08;border-radius:3px;pointer-events:none}.admin-perm-no-match{padding:60px 20px;background:var(--admin-surface)}.admin-perm-dirtybar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--admin-primary-bg);border-top:1px solid var(--admin-primary);font-size:13px;color:var(--admin-text);animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out);box-shadow:0 -2px 8px #ff6a001f}.admin-perm-dirtybar-text{display:flex;align-items:center;gap:8px;font-weight:500}.admin-perm-dirtybar-actions{display:flex;gap:8px}.admin-perm-dirtybar-btn{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border:1px solid var(--admin-border);background:var(--admin-surface);border-radius:4px;font-size:12px;color:var(--admin-text);cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),border-color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-perm-dirtybar-btn:hover{border-color:var(--admin-primary);color:var(--admin-primary)}.admin-perm-dirtybar-btn:active{transform:scale(.97)}.admin-perm-dirtybar-btn-primary{background:var(--admin-primary);border-color:var(--admin-primary);color:#fff;font-weight:500}.admin-perm-dirtybar-btn-primary:hover{background:var(--admin-primary-hover);border-color:var(--admin-primary-hover);color:#fff}.admin-perm-dirtybar-btn-primary:disabled{opacity:.6;cursor:not-allowed}.admin-btn-ghost-primary{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;font-size:12px;border:1px solid var(--admin-border);background:var(--admin-surface);border-radius:4px;color:var(--admin-text);cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),border-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-btn-ghost-primary:hover{border-color:var(--admin-primary);color:var(--admin-primary);background:var(--admin-primary-bg)}.admin-btn-ghost-primary:active{transform:scale(.97)}:root[data-theme=dark] .admin-role-card.is-selected{background:#ff7a2424}:root[data-theme=dark] .admin-perm-row.is-on{background:#ff7a240d}:root[data-theme=dark] .admin-perm-row.is-on:hover{background:#ff7a241a}:root[data-theme=dark] .admin-perm-group-header{background:#ffffff05}:root[data-theme=dark] .admin-role-card-id{background:#ffffff0a}@media (max-width: 991px){.admin-role-shell{height:auto;min-height:0}.admin-perm-header-right{width:100%}}.admin-dash-card{border-radius:6px;box-shadow:var(--admin-shadow);transition:box-shadow var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-dash-card:hover{box-shadow:var(--admin-shadow-pop)}.admin-dash-card .ant-card-head{min-height:44px;border-bottom-color:var(--admin-border-soft)}.admin-dash-card .ant-card-head-title{font-size:14px;font-weight:600;letter-spacing:-.01em}.admin-feed-list{display:flex;flex-direction:column}.admin-feed-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 2px;border-bottom:1px solid var(--admin-border-soft);font-size:13px}.admin-feed-item:last-child{border-bottom:none}.admin-feed-main{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-feed-desc{color:var(--admin-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-feed-time{flex-shrink:0}.admin-feed-tag{margin-inline-end:0!important;flex-shrink:0}.admin-tool-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:6px;padding:14px 16px;box-shadow:var(--admin-shadow);display:flex;flex-direction:column;gap:10px;height:100%;transition:border-color var(--admin-dur-fast) var(--admin-ease-out),box-shadow var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-tool-card:hover{border-color:var(--admin-primary);box-shadow:var(--admin-shadow-pop);transform:translateY(-2px)}.admin-tool-card-head{display:flex;align-items:center;gap:10px}.admin-tool-card-avatar{width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.admin-tool-card-title{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.admin-tool-card-title code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;color:var(--admin-text);background:var(--admin-surface-muted);padding:2px 6px;border-radius:3px;border:1px solid var(--admin-border-soft)}.admin-tool-card-role{font-size:11px;padding:1px 6px;border-radius:2px;font-weight:500}.admin-tool-card-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.admin-tool-flag{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 7px;border-radius:2px;border:1px solid var(--admin-border-soft)}.admin-tool-flag.is-safe{color:#389e0d;background:#52c41a14}.admin-tool-flag.is-warn{color:#d48806;background:#faad141a}.admin-tool-flag.is-write{color:#722ed1;background:#722ed114}.admin-tool-flag.is-read{color:#0958d9;background:#1677ff14}.admin-tool-empty{padding:80px 24px;text-align:center;color:var(--admin-text-secondary)}.admin-tool-empty>.anticon{font-size:40px;opacity:.5;margin-bottom:12px}.admin-tool-empty>div{font-size:14px;color:var(--admin-text);margin-bottom:4px}.admin-dept-tree .ant-tree-node-content-wrapper{border-radius:4px;transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-dept-tree .ant-tree-node-selected{background:var(--admin-primary-bg)}.admin-status-tag{display:inline-flex;align-items:center;font-size:12px;line-height:20px;padding:0 8px;border-radius:2px}.admin-status-tag.is-green{color:#389e0d;background:#52c41a1a}.admin-status-tag.is-red{color:#cf1322;background:#ff4d4f1a}.admin-status-tag.is-orange,.admin-status-tag.is-gold{color:#d48806;background:#faad141f}.admin-status-tag.is-blue{color:#0958d9;background:#1677ff14}.admin-status-tag.is-default{color:var(--admin-text-secondary);background:var(--admin-surface-muted)}.admin-compare-picker{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--admin-surface-muted);border:1px solid var(--admin-border-soft);border-radius:6px;margin-bottom:12px;flex-wrap:wrap}.admin-compare-side{flex:1;min-width:220px}.admin-compare-side-label{font-size:11px;color:var(--admin-text-secondary);margin-bottom:6px;letter-spacing:.04em}.admin-compare-role{display:flex;align-items:center;gap:8px;min-height:32px}.admin-compare-avatar{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.admin-compare-role-name{font-size:13px;font-weight:600;color:var(--admin-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-compare-select{flex:1;min-width:0;height:30px;border:1px solid var(--admin-border);border-radius:4px;padding:0 8px;font-size:13px;background:var(--admin-surface);color:var(--admin-text);font-family:inherit;cursor:pointer}.admin-compare-stats{display:flex;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--admin-border-soft);font-size:12px;color:var(--admin-text-secondary);flex-wrap:wrap}.admin-compare-stats strong{font-variant-numeric:tabular-nums}.admin-compare-stats .is-both strong{color:#389e0d}.admin-compare-stats .is-onlya strong{color:var(--admin-primary)}.admin-compare-stats .is-onlyb strong{color:#1677ff}.admin-compare-matrix{border:1px solid var(--admin-border-soft);border-radius:6px;overflow:hidden}.admin-compare-head{display:grid;grid-template-columns:1fr 130px 130px;background:var(--admin-surface-muted);border-bottom:1px solid var(--admin-border-soft);padding:10px 16px;font-size:12px;font-weight:600;color:var(--admin-text)}.admin-compare-col-perm{display:flex;align-items:center;gap:8px;min-width:0}.admin-compare-col-a,.admin-compare-col-b{text-align:center}.admin-compare-group-title{padding:8px 16px;font-size:12px;font-weight:600;color:var(--admin-text-secondary);background:var(--admin-surface);border-bottom:1px solid var(--admin-border-soft)}.admin-compare-row{display:grid;grid-template-columns:1fr 130px 130px;align-items:center;padding:8px 16px;font-size:13px;border-bottom:1px solid var(--admin-border-soft);transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-compare-row:last-child{border-bottom:none}.admin-compare-row.is-onlya{background:#ff6a000f}.admin-compare-row.is-onlyb{background:#1677ff0d}.admin-compare-row .admin-compare-col-a,.admin-compare-row .admin-compare-col-b{text-align:center}.admin-compare-action{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:1px 6px;font-size:11px;border-radius:2px;border:1px solid;flex-shrink:0}.admin-compare-perm-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-compare-legend{display:flex;align-items:center;gap:16px;margin-top:12px;font-size:12px;color:var(--admin-text-secondary);padding:0 4px}.admin-compare-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.admin-compare-legend-dot.is-onlya{background:#ff6a0040}.admin-compare-legend-dot.is-onlyb{background:#1677ff33}:root[data-theme=dark] .admin-compare-row.is-onlya{background:#ff7a241a}:root[data-theme=dark] .admin-compare-row.is-onlyb{background:#1677ff1a}.admin-role-list-actions{display:flex;align-items:center;gap:6px}.admin-role-list-bulk{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:12px;font-weight:500;border:1px solid var(--admin-border);border-radius:4px;background:var(--admin-surface);color:var(--admin-text-secondary);cursor:pointer;transition:border-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-list-bulk:hover{border-color:var(--admin-primary);color:var(--admin-primary)}.admin-role-list-bulk.is-active{border-color:var(--admin-primary);color:var(--admin-primary);background:var(--admin-primary-bg)}.admin-role-list-bulk:active{transform:scale(.97)}.admin-role-bulk-bar{display:flex;align-items:center;padding:6px 16px;border-bottom:1px solid var(--admin-border-soft);font-size:12px;background:var(--admin-surface-muted)}.admin-role-card.is-bulk{padding-left:8px}.admin-role-card-checkbox{display:inline-flex;align-items:center;flex-shrink:0;margin-right:2px}.admin-role-bulk-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--admin-primary-bg);border-top:1px solid var(--admin-primary);font-size:13px;color:var(--admin-text);animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out);box-shadow:0 -2px 8px #ff6a001f}.admin-role-bulk-footer strong{color:var(--admin-primary);font-variant-numeric:tabular-nums}.admin-role-bulk-apply{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border:1px solid var(--admin-primary);background:var(--admin-primary);border-radius:4px;font-size:12px;font-weight:500;color:#fff;cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),transform var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-bulk-apply:hover{background:var(--admin-primary-hover)}.admin-role-bulk-apply:active{transform:scale(.97)}.admin-bulk-roles{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:12px 16px;background:var(--admin-surface-muted);border:1px solid var(--admin-border-soft);border-radius:6px;margin-bottom:12px}.admin-bulk-roles-label{font-size:12px;color:var(--admin-text-secondary);margin-right:4px}.admin-bulk-role-tag{font-size:12px;padding:2px 8px}.admin-bulk-mode{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.admin-bulk-mode .ant-segmented{background:var(--admin-surface-muted);border-radius:4px;padding:2px}.admin-bulk-mode .ant-segmented .ant-segmented-item{font-size:12px;padding:0 12px;transition:background-color var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out)}.admin-bulk-mode .ant-segmented .ant-segmented-item-selected{background:var(--admin-surface);font-weight:500;box-shadow:var(--admin-shadow)}.admin-bulk-mode-hint{font-size:12px;color:var(--admin-text-secondary)}.admin-bulk-toolbar{display:flex;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid var(--admin-border-soft);flex-wrap:wrap}.admin-bulk-toolbar-label{font-size:12px;color:var(--admin-text-secondary)}.admin-bulk-count{margin-left:auto;font-size:12px;color:var(--admin-text-secondary)}.admin-bulk-count strong{color:var(--admin-primary);font-variant-numeric:tabular-nums}.admin-bulk-groups{padding:12px 0 80px}.admin-bulk-group{border:1px solid var(--admin-border-soft);border-radius:6px;margin-bottom:10px;overflow:hidden}.admin-bulk-group-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--admin-surface-muted);border-bottom:1px solid var(--admin-border-soft)}.admin-bulk-group-name{font-size:13px;font-weight:600;color:var(--admin-text)}.admin-bulk-group-count{font-size:11px;color:var(--admin-text-secondary);font-variant-numeric:tabular-nums;padding:1px 6px;border-radius:2px;background:var(--admin-surface);border:1px solid var(--admin-border-soft)}.admin-bulk-group-perms{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px;padding:8px 12px}.admin-bulk-perm{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-bulk-perm:hover{background:var(--admin-surface-muted)}.admin-bulk-perm-action{font-size:12px;font-weight:600;min-width:28px;color:var(--admin-text)}.admin-bulk-perm-name{font-size:12px;color:var(--admin-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-bulk-footer{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--admin-surface);border-top:1px solid var(--admin-border)}.admin-bulk-footer-hint{font-size:12px;color:var(--admin-text-secondary)}:root[data-theme=dark] .admin-bulk-footer{background:var(--admin-surface)}.admin-role-shell-tabs{padding:0}.admin-role-shell-tabs .ant-tabs{height:100%;display:flex;flex-direction:column}.admin-role-shell-tabs .ant-tabs-nav{margin:0;padding:0 16px;flex-shrink:0;background:var(--admin-surface);border-bottom:1px solid var(--admin-border-soft)}.admin-role-shell-tabs .ant-tabs-nav:before{border-bottom:none}.admin-role-shell-tabs .ant-tabs-content-holder{flex:1;min-height:0;display:flex}.admin-role-shell-tabs .ant-tabs-content{flex:1;height:100%;display:flex}.admin-role-shell-tabs .ant-tabs-tabpane{flex:1;height:100%;display:flex;min-width:0}.admin-members-list{flex:1;min-height:0;overflow-y:auto;padding:6px 16px 12px}.admin-member-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid var(--admin-border-soft);transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-member-row:last-child{border-bottom:none}.admin-member-row:hover{background:var(--admin-surface-muted)}.admin-active-row,.admin-active-row:hover{background:var(--admin-primary-bg)}.admin-member-row.is-candidate{border:none;border-radius:6px}.admin-member-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-member-name{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--admin-text)}.admin-member-username{font-size:12px;font-weight:400;color:var(--admin-text-secondary)}.admin-member-meta{font-size:12px;color:var(--admin-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-member-side{display:flex;align-items:center;gap:10px;flex-shrink:0}.admin-member-login{font-size:11px;color:var(--admin-text-secondary);white-space:nowrap}.admin-member-candidates{max-height:400px;overflow-y:auto;border:1px solid var(--admin-border-soft);border-radius:6px;padding:0 10px;background:var(--admin-surface)}.admin-audit-summary{display:flex;align-items:center;gap:14px;padding:8px 20px;border-bottom:1px solid var(--admin-border-soft);font-size:12px;color:var(--admin-text-secondary);flex-wrap:wrap}.admin-audit-summary-item{display:inline-flex;align-items:center;gap:4px}.admin-audit-summary-item strong{font-variant-numeric:tabular-nums;color:var(--admin-text)}.admin-audit-list{flex:1;min-height:0;overflow-y:auto;padding:6px 20px 12px}.admin-audit-item{display:flex;align-items:flex-start;gap:12px;padding:11px 4px;border-bottom:1px solid var(--admin-border-soft);transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-audit-item:last-child{border-bottom:none}.admin-audit-item:hover{background:var(--admin-surface-muted)}.admin-audit-item-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--admin-surface-muted);flex-shrink:0;font-size:13px}.admin-audit-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.admin-audit-item-title{display:flex;align-items:center;gap:8px;font-size:13px}.admin-audit-action{font-weight:600;letter-spacing:-.01em}.admin-audit-operator{color:var(--admin-text);font-weight:500}.admin-audit-item-desc{font-size:12px;color:var(--admin-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-audit-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.admin-audit-time{font-size:12px;color:var(--admin-text-secondary);white-space:nowrap}.admin-audit-ip{font-size:11px;color:var(--admin-text-secondary);opacity:.7}.admin-role-assign-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--admin-surface-muted);border:1px solid var(--admin-border-soft);border-radius:6px;margin-bottom:10px;font-size:13px}.admin-role-assign-count{font-size:12px;color:var(--admin-text-secondary)}.admin-role-assign-count strong{color:var(--admin-primary);font-variant-numeric:tabular-nums}.admin-role-assign-list{display:flex;flex-direction:column;gap:2px;max-height:380px;overflow-y:auto;padding:4px}.admin-role-assign-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:6px;cursor:pointer;transition:background-color var(--admin-dur-fast) var(--admin-ease-out)}.admin-role-assign-item:hover{background:var(--admin-surface-muted)}.admin-role-assign-avatar{width:28px;height:28px;border-radius:6px;background:var(--admin-primary-bg);color:var(--admin-primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.admin-role-assign-name{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:500;color:var(--admin-text);min-width:0}.admin-role-assign-code{font-size:11px;font-weight:400;color:var(--admin-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-bulk-bar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:8px;box-shadow:var(--admin-shadow-pop);font-size:13px;animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out)}.admin-bulk-bar-text{color:var(--admin-text);white-space:nowrap}.admin-bulk-bar-text strong{color:var(--admin-primary);font-variant-numeric:tabular-nums}.admin-bulk-bar-actions{display:flex;align-items:center;gap:6px}.admin-bulk-bar .ant-btn+.ant-btn{margin-inline-start:0}@media (max-width: 767px){.admin-bulk-bar{left:12px;right:12px;transform:none;flex-wrap:wrap;justify-content:space-between}}.admin-audit-detail{display:flex;flex-direction:column;gap:20px}.admin-audit-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.admin-audit-detail-item{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--admin-text);min-width:0}.admin-audit-detail-label{font-size:11px;color:var(--admin-text-secondary);letter-spacing:.04em}.admin-audit-detail-block{display:flex;flex-direction:column;gap:8px}.admin-audit-detail-json{margin:0;padding:12px 14px;background:var(--admin-surface-muted);border:1px solid var(--admin-border-soft);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;color:var(--admin-text);white-space:pre-wrap;word-break:break-all;max-height:320px;overflow:auto}.admin-md .hljs{display:block;overflow-x:auto;background:transparent;color:#334155}.admin-md .hljs-comment,.admin-md .hljs-quote{color:#64748b;font-style:italic}.admin-md .hljs-keyword,.admin-md .hljs-selector-tag,.admin-md .hljs-literal,.admin-md .hljs-doctag,.admin-md .hljs-type{color:#be185d}.admin-md .hljs-string,.admin-md .hljs-attr,.admin-md .hljs-regexp,.admin-md .hljs-template-tag,.admin-md .hljs-addition{color:#1d4ed8}.admin-md .hljs-number,.admin-md .hljs-symbol,.admin-md .hljs-bullet{color:#0f766e}.admin-md .hljs-title,.admin-md .hljs-section,.admin-md .hljs-function .hljs-title,.admin-md .hljs-name{color:#7c3aed}.admin-md .hljs-built_in,.admin-md .hljs-params,.admin-md .hljs-variable,.admin-md .hljs-template-variable{color:#b45309}.admin-md .hljs-meta,.admin-md .hljs-selector-id,.admin-md .hljs-selector-class{color:#0f766e}.admin-md .hljs-attribute{color:#334155}.admin-md .hljs-deletion{color:#b91c1c}:root[data-theme=dark] .admin-md .hljs{color:#cbd5e1}:root[data-theme=dark] .admin-md .hljs-comment,:root[data-theme=dark] .admin-md .hljs-quote{color:#94a3b8}:root[data-theme=dark] .admin-md .hljs-keyword,:root[data-theme=dark] .admin-md .hljs-selector-tag,:root[data-theme=dark] .admin-md .hljs-literal,:root[data-theme=dark] .admin-md .hljs-doctag,:root[data-theme=dark] .admin-md .hljs-type{color:#f472b6}:root[data-theme=dark] .admin-md .hljs-string,:root[data-theme=dark] .admin-md .hljs-attr,:root[data-theme=dark] .admin-md .hljs-regexp,:root[data-theme=dark] .admin-md .hljs-template-tag,:root[data-theme=dark] .admin-md .hljs-addition{color:#93c5fd}:root[data-theme=dark] .admin-md .hljs-number,:root[data-theme=dark] .admin-md .hljs-symbol,:root[data-theme=dark] .admin-md .hljs-bullet{color:#5eead4}:root[data-theme=dark] .admin-md .hljs-title,:root[data-theme=dark] .admin-md .hljs-section,:root[data-theme=dark] .admin-md .hljs-function .hljs-title,:root[data-theme=dark] .admin-md .hljs-name{color:#c4b5fd}:root[data-theme=dark] .admin-md .hljs-built_in,:root[data-theme=dark] .admin-md .hljs-params{color:#fbbf24}:root[data-theme=dark] .admin-md .hljs-variable,:root[data-theme=dark] .admin-md .hljs-template-variable{color:#fbbf24}:root[data-theme=dark] .admin-md .hljs-meta,:root[data-theme=dark] .admin-md .hljs-selector-id,:root[data-theme=dark] .admin-md .hljs-selector-class{color:#5eead4}:root[data-theme=dark] .admin-md .hljs-attribute{color:#cbd5e1}:root[data-theme=dark] .admin-md .hljs-deletion{color:#fda4af}.admin-mobile-nav{display:none}@media (max-width: 767px){.admin-mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;align-items:stretch;height:calc(56px + var(--admin-safe-bottom));padding-bottom:var(--admin-safe-bottom);background:color-mix(in srgb,var(--admin-surface) 88%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border-top:1px solid var(--admin-border-soft)}.admin-content{padding-bottom:calc(72px + var(--admin-safe-bottom))}.admin-desktop-only{display:none!important}}.admin-mobile-nav-item{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;color:var(--admin-text-secondary);font:inherit;-webkit-tap-highlight-color:transparent}.admin-mobile-nav-item.is-active{color:var(--admin-primary)}.admin-mobile-nav-pill{position:absolute;top:6px;width:44px;height:26px;border-radius:999px;background:var(--admin-primary-bg)}.admin-mobile-nav-icon{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1}.admin-mobile-nav-label{position:relative;z-index:1;font-size:10px;line-height:1;letter-spacing:.02em}.admin-header-title{display:none}@media (max-width: 767px){.admin-header-title{display:inline;font-size:15px;font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.admin-header-breadcrumb .ant-breadcrumb-link{animation:adminFadeIn var(--admin-dur-base) var(--admin-ease-out) both}.admin-header-breadcrumb li:nth-child(2) .ant-breadcrumb-link{animation-delay:40ms}.admin-header-breadcrumb li:nth-child(3) .ant-breadcrumb-link{animation-delay:80ms}.admin-header-breadcrumb li:nth-child(n+4) .ant-breadcrumb-link{animation-delay:.12s}@keyframes adminBellSwing{0%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}to{transform:rotate(0)}}.admin-bell-swing{display:inline-flex;animation:adminBellSwing .7s var(--admin-ease-out);transform-origin:50% 2px}.admin-notice-item:hover{background:var(--admin-surface-muted);border-radius:6px}.admin-sider-menu .ant-menu-item,.admin-sider-menu .ant-menu-submenu-title{transition:transform var(--admin-dur-fast) var(--admin-ease-out),color var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast) var(--admin-ease-out)}@media (hover: hover){.admin-sider-menu .ant-menu-item:hover,.admin-sider-menu .ant-menu-submenu-title:hover{transform:translate(2px)}}.admin-sider-menu .ant-menu-item-selected:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:999px;background:var(--admin-primary);transform-origin:center;animation:adminIndicatorIn var(--admin-dur-base) var(--admin-ease-out)}@keyframes adminIndicatorIn{0%{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}.admin-sider .ant-layout-sider-collapsed .admin-sider-menu .ant-menu-item-selected:before{display:none}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item{animation:adminFadeInUp var(--admin-dur-base) var(--admin-ease-out) both}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:nth-child(2){animation-delay:40ms}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:nth-child(3){animation-delay:80ms}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:nth-child(n+4){animation-delay:.12s}.admin-page-tabs .ant-tabs-tab{animation:adminTabIn var(--admin-dur-base) var(--admin-ease-out) both}@keyframes adminTabIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.admin-tab-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.admin-tab-icon{font-size:13px;color:var(--admin-text-secondary);transition:color var(--admin-dur-fast) var(--admin-ease-out)}.ant-tabs-tab-active .admin-tab-icon{color:var(--admin-primary)}.ant-btn:not(:disabled){transition:transform var(--admin-dur-fast) var(--admin-ease-out),background-color var(--admin-dur-fast),border-color var(--admin-dur-fast),color var(--admin-dur-fast)}.ant-btn:not(:disabled):active{transform:scale(.97)}@media (hover: hover) and (min-width: 768px){.ant-modal-mask,.ant-drawer-mask{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}}@media (max-width: 767px){.admin-modal-sheet{top:auto!important;bottom:0!important;left:0!important;right:0!important;margin:0!important;max-width:100vw!important;padding-bottom:0!important}.admin-modal-sheet .ant-modal-content{max-height:calc(100dvh - var(--admin-safe-top) - 24px);overflow-y:auto;overscroll-behavior:contain;border-radius:16px 16px 0 0;box-shadow:0 -8px 40px #0000002e;padding-bottom:calc(16px + var(--admin-safe-bottom))}}.admin-mcard-list{padding:12px;display:flex;flex-direction:column;gap:10px}.admin-mcard{position:relative;background:var(--admin-surface);border:1px solid var(--admin-border-soft);border-radius:12px;padding:12px 14px;transition:box-shadow var(--admin-dur-base) var(--admin-ease-out),transform var(--admin-dur-base) var(--admin-ease-out)}.admin-mcard:active{transform:scale(.995)}.admin-mcard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.admin-mcard-title{font-size:var(--admin-fs-14);line-height:var(--admin-lh-14);font-weight:600;color:var(--admin-text);min-width:0;overflow-wrap:anywhere}.admin-mcard-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px 16px}.admin-mcard-field{display:flex;flex-direction:column;gap:1px;min-width:0}.admin-mcard-field-label{font-size:var(--admin-fs-11);line-height:var(--admin-lh-11);color:var(--admin-text-disabled)}.admin-mcard-field-value{font-size:var(--admin-fs-13);line-height:var(--admin-lh-13);color:var(--admin-text-secondary);min-width:0;overflow-wrap:anywhere}.admin-mcard-actions{display:flex;justify-content:flex-end;gap:4px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--admin-border-soft)}.admin-mcard-badge{position:absolute;top:12px;right:14px}.admin-mcard-empty{padding:32px 0}@keyframes adminEmptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.admin-empty svg{animation:adminEmptyFloat 4.5s ease-in-out infinite}@keyframes adminAttentionPulse{0%,to{box-shadow:0 0 #ff6a0000}50%{box-shadow:0 0 0 5px #ff6a0038}}.admin-list-error .ant-btn{animation:adminAttentionPulse 1.6s ease-in-out 2}.admin-trend-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (max-width: 767px){.admin-trend-grid{grid-template-columns:1fr}}.ant-btn-primary{background-image:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.26) 50%,transparent 68%);background-size:250% 100%;background-position:120% 0;background-repeat:no-repeat}@media (hover: hover){.ant-btn-primary:hover{animation:adminBtnSheen .7s var(--admin-ease-out)}}@keyframes adminBtnSheen{0%{background-position:130% 0}to{background-position:-130% 0}}.ant-btn-dangerous.ant-btn-primary{background-image:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.16) 50%,transparent 68%)}@keyframes adminFlashUp{0%{color:var(--admin-success);text-shadow:0 0 12px var(--admin-success-bg)}to{color:inherit;text-shadow:none}}@keyframes adminFlashDown{0%{color:var(--admin-error);text-shadow:0 0 12px var(--admin-error-bg)}to{color:inherit;text-shadow:none}}.admin-flash-up{animation:adminFlashUp .9s var(--admin-ease-out)}.admin-flash-down{animation:adminFlashDown .9s var(--admin-ease-out)}.admin-status-dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--admin-text-disabled);vertical-align:middle}.admin-status-dot.is-running{background:var(--admin-success);animation:adminBreathing 2s ease-in-out infinite}@keyframes adminBreathing{0%,to{box-shadow:0 0 color-mix(in srgb,var(--admin-success) 45%,transparent)}50%{box-shadow:0 0 0 5px transparent}}@keyframes adminPtrSpin{to{transform:rotate(360deg)}}.admin-ptr-spin{animation:adminPtrSpin .8s linear infinite}.admin-batch-bar{position:fixed;left:50%;bottom:84px;z-index:880;display:flex;align-items:center;gap:6px;padding:6px 10px 6px 16px;background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:999px;box-shadow:var(--admin-el-3);max-width:calc(100vw - 32px)}.admin-batch-count{font-size:var(--admin-fs-13);color:var(--admin-text);white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width: 767px){.admin-batch-bar{bottom:calc(68px + var(--admin-safe-bottom));padding:5px 8px 5px 14px}}.admin-recent-section{padding:12px 16px 4px;border-bottom:1px solid var(--admin-border-soft)}.admin-recent-title{font-size:var(--admin-fs-11);color:var(--admin-text-disabled);margin-bottom:8px;letter-spacing:.04em}.admin-recent-chips{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:12px}.admin-recent-chip{font-size:var(--admin-fs-12);line-height:var(--admin-lh-12);color:var(--admin-text-secondary);background:var(--admin-surface-muted);border:1px solid var(--admin-border-soft);border-radius:999px;padding:4px 10px;cursor:pointer;transition:all var(--admin-dur-fast) var(--admin-ease-out)}.admin-recent-chip:hover{color:var(--admin-primary);border-color:var(--admin-primary);background:var(--admin-primary-bg)}
