*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:1rem}.left-full{left:100%}.right-4{right:1rem}.right-full{right:100%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-\[100\]{z-index:100}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.h-1{height:.25rem}.h-12{height:3rem}.h-2{height:.5rem}.h-20{height:5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-\[2px\]{height:2px}.h-full{height:100%}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-12{width:3rem}.w-2{width:.5rem}.w-24{width:6rem}.w-4{width:1rem}.w-8{width:2rem}.w-full{width:100%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-ew-resize{cursor:ew-resize}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-green-500\/30{border-color:#22c55e4d}.border-red-500\/30{border-color:#ef44444d}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.border-white\/30{border-color:#ffffff4d}.border-white\/50{border-color:#ffffff80}.border-t-transparent{border-top-color:transparent}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/50{background-color:#22c55e80}.bg-red-500\/20{background-color:#ef444433}.bg-red-500\/50{background-color:#ef444480}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-cover{object-fit:cover}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.accent-cyan-500{accent-color:#06b6d4}.opacity-0{opacity:0}.shadow-\[0_0_10px_rgba\(255\,255\,255\,0\.8\)\]{--tw-shadow: 0 0 10px rgba(255,255,255,.8);--tw-shadow-colored: 0 0 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{color-scheme:light;--xh-bg: #f3f6fb;--xh-bg-soft: #f8fbff;--xh-surface: #ffffff;--xh-sidebar: #0f172a;--xh-sidebar-soft: #162036;--xh-sidebar-border: rgba(255, 255, 255, .08);--xh-primary: #1677ff;--xh-primary-soft: #e8f1ff;--xh-text: #0f172a;--xh-text-secondary: #64748b;--xh-text-tertiary: #94a3b8;--xh-border: #e7edf5;--xh-success: #16a34a;--xh-error: #dc2626;--xh-warning: #f59e0b;--xh-info: #1677ff;--xh-shadow: 0 12px 32px rgba(15, 23, 42, .08);--xh-shadow-soft: 0 6px 18px rgba(15, 23, 42, .05)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Plus Jakarta Sans,PingFang SC,Microsoft YaHei,sans-serif;color:var(--xh-text);background:linear-gradient(180deg,#f8fbff,#f3f6fb 45%,#edf2f8);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:JetBrains Mono,Consolas,monospace}a{color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#edf2f7}::-webkit-scrollbar-thumb{background:#c9d5e4;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#aabbd1}.xh-shell.ant-layout,.xh-main.ant-layout{min-height:100vh;background:transparent}.xh-sidebar.ant-layout-sider{min-height:100vh;background:var(--xh-sidebar)!important;box-shadow:14px 0 34px #0f172a1f}.xh-sidebar .ant-layout-sider-children{display:flex;min-height:100vh;flex-direction:column;background:var(--xh-sidebar)}.xh-side-brand{flex:0 0 auto;background:var(--xh-sidebar)}.xh-side-menu.ant-menu,.xh-side-menu.ant-menu-light,.xh-side-menu.ant-menu-inline{flex:1 1 auto;background:var(--xh-sidebar)!important;-webkit-border-end:none;border-inline-end:none}.xh-side-menu.ant-menu .ant-menu-item,.xh-side-menu.ant-menu .ant-menu-submenu-title{height:46px;line-height:46px;margin:6px 0;border-radius:12px;color:#e2e8f0d6;font-weight:600;transition:all .25s ease;border:1px solid transparent}.xh-side-menu.ant-menu .ant-menu-item:hover,.xh-side-menu.ant-menu .ant-menu-submenu-title:hover{color:#fff;background:#ffffff1a;border-color:#1677ff33;box-shadow:0 0 24px #1677ff2e,0 0 48px #7c3aed0f,inset 0 0 20px #1677ff0d}.xh-side-menu.ant-menu .ant-menu-item-selected{color:#fff;background:var(--xh-primary)!important;box-shadow:0 8px 18px #1677ff47,0 0 24px #1677ff26,inset 0 1px #ffffff26}.xh-side-menu.ant-menu .ant-menu-sub.ant-menu-inline{margin-top:6px;border-radius:14px;background:#ffffff08!important}.xh-header{background:#ffffffe0!important;border-bottom:1px solid var(--xh-border)!important;box-shadow:0 4px 24px #0f172a0a;backdrop-filter:blur(20px) saturate(200%);-webkit-backdrop-filter:blur(20px) saturate(200%);line-height:normal!important;overflow:visible!important}.xh-content{padding:24px}.xh-content-inner{display:flex;flex-direction:column;gap:18px}.xh-page-shell{display:flex;flex-direction:column;gap:16px;width:100%}.xh-page-banner.ant-card,.xh-admin-card.ant-card,.xh-admin-table-card.ant-card,.xh-stat-card.ant-card{border:1px solid var(--xh-border);box-shadow:var(--xh-shadow-soft)}.xh-page-banner .ant-card-body{padding:24px 26px}.xh-page-kicker{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--xh-primary-soft);color:var(--xh-primary);font-size:12px;font-weight:700;letter-spacing:.04em}.xh-page-title{margin:14px 0 8px!important;color:var(--xh-text)!important;line-height:1.2!important}.xh-page-desc{margin:0!important;max-width:760px;color:var(--xh-text-secondary)!important;line-height:1.7}.xh-stat-card .ant-card-body{padding:18px 20px}.xh-stat-card .ant-statistic-title{color:var(--xh-text-secondary);font-weight:600}.xh-stat-card .ant-statistic-content{color:var(--xh-text);font-weight:700}.xh-admin-card .ant-card-head,.xh-admin-table-card .ant-card-head{min-height:58px;border-bottom:1px solid var(--xh-border)}.xh-admin-card .ant-card-head-title,.xh-admin-table-card .ant-card-head-title{color:var(--xh-text);font-weight:700}.xh-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%}.xh-toolbar-filters{display:grid;grid-template-columns:minmax(220px,320px) repeat(2,minmax(140px,180px));gap:12px;flex:1}.xh-toolbar-actions{display:flex;gap:12px;flex-wrap:wrap}.xh-form-grid{display:grid;gap:14px}.xh-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.xh-soft-panel{padding:14px 16px;border:1px solid var(--xh-border);border-radius:14px;background:var(--xh-bg-soft)}.xh-empty-note{padding:24px 0}.xh-action-group{display:flex;flex-wrap:wrap;gap:8px}.flex-center{display:flex;align-items:center;justify-content:center}.xh-role-tag.ant-tag,.xh-status-tag.ant-tag{padding-inline:10px;border-radius:999px;border:none;font-weight:700}.ant-table-wrapper .ant-table-thead>tr>th{white-space:nowrap}@media (max-width: 1200px){.xh-toolbar{flex-direction:column}.xh-toolbar-filters{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.xh-content{padding:12px}.xh-toolbar-filters{grid-template-columns:1fr}.xh-page-banner .ant-card-body{padding:16px}}@media (max-width: 576px){.xh-content{padding:8px}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.xh-page-banner.ant-card,.xh-admin-card.ant-card,.xh-admin-table-card.ant-card{border-radius:14px!important}.ant-modal{max-width:calc(100vw - 32px)!important;margin:16px!important}.ant-tabs-nav{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-tabs-nav:before{display:none}.ant-tag{white-space:nowrap}.xh-action-group{flex-direction:column}.xh-action-group .ant-btn{width:100%}}:focus-visible{outline:2px solid var(--xh-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.group:hover .group-hover\:border-cyan-500\/30{border-color:#06b6d44d}.group:hover .group-hover\:opacity-100{opacity:1}
