html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-ext-400-normal-CWV284fw.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-400-normal-DLkyKLvH.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-400-normal-C44pakCn.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-400-normal-B8Z6Jvzv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-greek-400-normal-Cw5-AHNN.woff2) format("woff2"),url(/assets/source-serif-4-greek-400-normal-BccYJ-vZ.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-normal-BbG3LG1A.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-400-normal-DR1UuFon.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-ext-400-normal-Cp7z-ARB.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-400-normal-CEpydyUl.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-normal-Dn3IlU-Z.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-D_E8FDgP.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-DiT2IGQm.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-BDP5YDHD.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-DFnC3vAY.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-DdRkKr-1.woff2) format("woff2"),url(/assets/source-serif-4-greek-600-normal-DhXQw1Kl.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-CznyfUKR.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-B0WJbuqT.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-0sIUyHMO.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-C6NNqpJh.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-DMD1h6_f.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-ext-700-normal-B9R79AaY.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-700-normal-DsKdgJCr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-700-normal-BmBwwUw2.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-700-normal-DVvE-KHB.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-greek-700-normal-BzuEQSqJ.woff2) format("woff2"),url(/assets/source-serif-4-greek-700-normal-C5Ojiwey.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-vietnamese-700-normal-CCAt8c4x.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-700-normal-BBU5i_d1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-ext-700-normal-C8ywwcuQ.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-700-normal-BZsvHpal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-700-normal-CGGdTIBe.woff2) format("woff2"),url(/assets/source-serif-4-latin-700-normal-3V4Pv1hj.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-sc-chinese-simplified-400-normal-hudUdRP0.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-400-normal-noNOj8bn.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-serif-sc-chinese-simplified-500-normal-DL_A5r9p.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-500-normal-IKJt76WJ.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-serif-sc-chinese-simplified-600-normal-BogBFFgE.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-600-normal-CS-kEs9U.woff) format("woff")}:root{--fy-primary: #1677ff;--fy-primary-dark: #0b4fc4;--fy-primary-deep: #082f6b;--fy-primary-light: #d6e8ff;--fy-primary-soft: #eef5ff;--fy-primary-hover: #4096ff;--fy-primary-active: #0a58d0;--fy-primary-ring: rgba(22, 119, 255, .18);--fy-success: #16a34a;--fy-success-bg: #e9f9ef;--fy-processing: #1677ff;--fy-processing-bg: #e8f1ff;--fy-warning: #b45309;--fy-warning-bg: #fdf3e3;--fy-danger: #b42318;--fy-danger-bg: #fdecea;--fy-neutral: #475467;--fy-neutral-bg: #f1f4f8;--fy-bg: #f4f7fc;--fy-bg-2: #e9f0fa;--fy-card: #ffffff;--fy-card-raised: #ffffff;--fy-sunken: #f7faff;--fy-border: #dbe5f2;--fy-border-light: #e8eff8;--fy-border-strong: #c7d5e8;--fy-text: #0f1b2d;--fy-text-body: #2b3b52;--fy-text-muted: #5a6a82;--fy-text-placeholder: #94a1b4;--fy-text-inverse: #ffffff;--fy-shadow-sm: 0 1px 2px rgba(15, 27, 45, .04), 0 2px 8px rgba(22, 119, 255, .05);--fy-shadow: 0 6px 20px rgba(15, 27, 45, .09);--fy-shadow-lg: 0 18px 48px rgba(15, 27, 45, .16);--fy-radius-input: 6px;--fy-radius-btn: 8px;--fy-radius-card: 10px;--fy-radius-lg: 14px;--fy-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Helvetica, Arial, sans-serif;--fy-font-mono: "SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, Consolas, "PingFang SC", "Microsoft YaHei", monospace;--fy-fs-11: 11px;--fy-fs-12: 12px;--fy-fs-13: 13px;--fy-fs-14: 14px;--fy-fs-16: 16px;--fy-fs-20: 20px;--fy-fs-26: 26px;--fy-gap-xs: 6px;--fy-gap-sm: 10px;--fy-gap: 14px;--fy-gap-lg: 20px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{font-family:var(--fy-font-sans);font-size:var(--fy-fs-13);line-height:1.55;color:var(--fy-text-body);background:var(--fy-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}input,.ant-select-selection-item,.cell-money,.cell-num,.cell-primary,.fy-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.fy-mono,.cell-no{font-family:var(--fy-font-mono);font-size:.95em;letter-spacing:-.1px}h1,h2,h3,h4{color:var(--fy-text);font-weight:600;letter-spacing:-.01em}.app-layout{height:100%;flex-direction:row!important}.app-sider{background:linear-gradient(180deg,#082f6b,#0b3f8f 55%,#0f56b3)!important;box-shadow:2px 0 12px #082f6b2e}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;overflow:hidden}.brand{display:flex;align-items:center;gap:10px;padding:14px 16px 12px;min-height:58px}.brand .brand-logo{flex-shrink:0;width:34px;height:34px;display:block;border-radius:9px;box-shadow:0 4px 14px #00000047}.brand .brand-text{overflow:hidden;white-space:nowrap}.brand .brand-text .brand-name{font-size:var(--fy-fs-16);font-weight:650;color:#fff;line-height:1.25;letter-spacing:.2px}.brand .brand-text .brand-sub{margin-top:1px;font-size:var(--fy-fs-11);color:#ffffff85;letter-spacing:1.4px}.app-menu{flex:1;padding:4px 10px 18px;overflow-y:auto;background:transparent!important;border-inline-end:none!important}.app-menu::-webkit-scrollbar{width:4px}.app-menu::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:4px}.app-menu .ant-menu-item,.app-menu .ant-menu-submenu-title{border-radius:var(--fy-radius-btn);margin-inline:0;margin-block:1px;width:100%;color:#ffffffbd;font-weight:450;transition:background .2s cubic-bezier(.22,1,.36,1),color .2s}.app-menu .ant-menu-item:hover,.app-menu .ant-menu-submenu-title:hover{background:#ffffff1a!important;color:#fff!important}.app-menu .ant-menu-item.ant-menu-item-selected{position:relative;overflow:hidden;background:linear-gradient(90deg,#69b1ff42,#69b1ff1a)!important;color:#fff!important;font-weight:600;box-shadow:inset 0 0 0 1px #69b1ff47}.app-menu .ant-menu-item.ant-menu-item-selected:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#5eead4,#14b8a6);box-shadow:0 0 8px #69b1ff8c}.app-menu .ant-menu-sub.ant-menu-inline{background:transparent!important}.app-menu .ant-menu-sub.ant-menu-inline .ant-menu-item{padding-left:34px!important;font-size:var(--fy-fs-13)}.app-menu .ant-menu-submenu-selected>.ant-menu-submenu-title{color:#fff}.app-menu .ant-menu-item .ant-menu-title-content,.app-menu .ant-menu-submenu-title .ant-menu-title-content{font-size:var(--fy-fs-13)}.app-main{background:var(--fy-bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}.app-header{position:relative;display:flex;align-items:center;justify-content:space-between;height:54px;flex:0 0 54px;padding:0 18px;background:#ffffffe0;backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border-bottom:1px solid var(--fy-border-light);z-index:5}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,#1677ff00,#1677ff80 30%,#69b1ffa6 70%,#1677ff00);pointer-events:none}.app-header .header-left{display:flex;align-items:center;gap:14px}.app-header .collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--fy-radius-btn);color:var(--fy-text-muted);cursor:pointer;transition:background .2s,color .2s}.app-header .collapse-btn:hover{background:var(--fy-primary-soft);color:var(--fy-primary)}.app-header .page-title{font-size:var(--fy-fs-16);font-weight:600;color:var(--fy-text)}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;cursor:pointer;transition:background .2s}.user-chip:hover{background:var(--fy-primary-soft)}.user-chip .user-name{font-size:var(--fy-fs-13);font-weight:500;color:var(--fy-text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip .user-arrow{font-size:10px;color:var(--fy-text-placeholder)}.app-header .crumb{display:flex;align-items:center;gap:6px;font-size:var(--fy-fs-13);color:var(--fy-text-muted)}.app-header .crumb .crumb-last{font-weight:600;color:var(--fy-text)}.app-header .header-right{display:flex;align-items:center;gap:8px}.app-header .header-action{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--fy-radius-btn);color:var(--fy-text-muted);font-size:15px;cursor:pointer;transition:background .2s,color .2s}.app-header .header-action:hover{background:var(--fy-primary-soft);color:var(--fy-primary)}.app-header .header-action .search-kbd{font-size:var(--fy-fs-11);color:var(--fy-text-placeholder);border:1px solid var(--fy-border-light);border-radius:4px;padding:0 5px;line-height:16px;background:#fafbfd}.app-header .header-action .bell-icon{font-size:16px;line-height:1}.app-header .role-preview-trigger{font-size:var(--fy-fs-14)}.app-header .role-preview-trigger .role-preview-text{font-size:var(--fy-fs-13)}.app-header .preview-tag{margin-inline-end:0;font-size:var(--fy-fs-12);line-height:20px}.bell-panel .bell-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:var(--fy-text);margin-bottom:8px}.bell-panel .bell-empty{text-align:center;color:var(--fy-text-placeholder);padding:22px 0 14px}.bell-panel .bell-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--fy-border-light)}.bell-panel .bell-item:last-child{border-bottom:none}.bell-panel .bell-item .bell-item-main{flex:1;min-width:0}.bell-panel .bell-item .bell-item-title{font-size:var(--fy-fs-13);font-weight:600;color:var(--fy-text)}.bell-panel .bell-item .bell-item-content{font-size:var(--fy-fs-12);color:var(--fy-text-muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}.bell-panel .bell-item .bell-item-time{font-size:var(--fy-fs-11);color:var(--fy-text-placeholder);margin-top:3px}.bell-panel .bell-item .bell-item-read{font-size:var(--fy-fs-12);flex:none;margin-top:2px}.bell-panel .bell-foot{text-align:center;padding-top:8px;border-top:1px solid var(--fy-border-light);margin-top:4px}.tags-view{flex:0 0 auto}.app-content{padding:14px 18px 20px;overflow-y:auto;flex:1 1 auto;min-height:0;background:linear-gradient(180deg,#f4f7fb 0%,var(--fy-bg) 220px);background-attachment:local}.page-card{background:var(--fy-card);border:1px solid var(--fy-border-light);border-radius:var(--fy-radius-card);box-shadow:var(--fy-shadow-sm);padding:14px 16px}.table-action-gap{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.cell-primary{font-weight:600;font-size:13px;color:var(--fy-text);font-variant-numeric:tabular-nums}.cell-muted{font-size:12px;color:var(--fy-text-muted)}.cell-money{font-variant-numeric:tabular-nums;font-weight:600;color:var(--fy-text)}.cell-num{font-variant-numeric:tabular-nums;color:var(--fy-text-body)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#0b1a2b;background-image:linear-gradient(120deg,#081422eb,#0a1e34c7 55%,#0c26408c),url(/images/login-bg-factory.jpg);background-size:cover;background-position:center;background-repeat:no-repeat}.app-content::-webkit-scrollbar{width:8px}.app-content::-webkit-scrollbar-thumb{background:#c9d4e2;border-radius:6px}.page-enter-active{transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}.page-leave-active{transition:opacity .15s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0}.page-table{background:var(--fy-card);border-radius:8px;border:1px solid #e4eaf3;box-shadow:none;transition:border-color .2s ease;overflow:hidden}.page-table:hover{border-color:#d7e1ee}.data-table .ant-tag{margin-inline-end:0;border:none;border-radius:4px;padding:0 7px;height:21px;line-height:21px;font-size:12px;font-weight:500}.page-table .search-bar{background:linear-gradient(180deg,#f3f8fb,#fbfdff);border-radius:var(--fy-radius-card) var(--fy-radius-card) 0 0;border-bottom:1px solid var(--fy-border-light)}.page-table .search-form .ant-form-item-label>label{color:var(--fy-text-muted);font-size:var(--fy-fs-12)}.data-table .ant-table,.data-table .ant-table-tbody>tr>td,.data-table .ant-table-thead>tr>th{font-family:var(--fy-font-sans)}.data-table .ant-table-thead>tr>th{font-weight:600!important;font-size:var(--fy-fs-12);letter-spacing:0;color:#46586f;background:#f5f7fa!important;padding:5px 10px!important;border-bottom:1px solid #dbe3ec!important;border-inline-end:none!important;white-space:nowrap}.data-table .ant-table{background:transparent}.data-table .ant-table-tbody>tr>td{font-size:var(--fy-fs-13);line-height:21px;padding:3px 10px!important;border-bottom:1px solid #e6ecf4!important;border-inline-end:none!important;font-variant-numeric:tabular-nums}.data-table .ant-table-tbody>tr:nth-child(2n)>td{background:transparent}.data-table .ant-table-tbody>tr>td{transition:background .16s ease}.data-table .ant-table-tbody>tr:hover>td{background:var(--fy-primary-soft)!important}.data-table .ant-table-tbody>tr.ant-table-row-selected>td{background:var(--fy-primary-light)!important}.data-table .ant-pagination{padding:8px 12px 6px 0;margin:0!important}.data-table .ant-pagination-item-active{border-color:var(--fy-primary);box-shadow:0 2px 8px #1677ff33}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker,.ant-input-number{border-radius:var(--fy-radius-input)!important}.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused,.ant-input-number-focused{box-shadow:0 0 0 3px var(--fy-primary-ring)!important;border-color:var(--fy-primary)!important}.ant-btn-primary:not(.ant-btn-dangerous){background:linear-gradient(135deg,#4096ff,#1677ff);border:none;box-shadow:0 2px 8px #1677ff38;transition:all .2s ease}.ant-btn-primary:not(.ant-btn-dangerous):not([disabled]):hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 5px 14px #1677ff4d}.ant-btn-primary:not(.ant-btn-dangerous):not([disabled]):active{transform:translateY(0);filter:brightness(.97)}.ant-btn-default:not(.ant-btn-text):not(.ant-btn-link){border-color:var(--fy-border);color:var(--fy-text-body);background:#fff}.ant-btn-default:not(.ant-btn-text):not(.ant-btn-link):hover{border-color:var(--fy-primary);color:var(--fy-primary)}.ant-btn.fy-btn-success:not(.ant-btn-link):not(.ant-btn-text){background:var(--fy-success);border:1px solid var(--fy-success);color:#fff;box-shadow:0 2px 8px #1677ff38;transition:all .2s ease}.ant-btn.fy-btn-success:not(.ant-btn-link):not(.ant-btn-text):not([disabled]):hover{filter:brightness(1.07);box-shadow:0 5px 14px #1677ff4d}.ant-btn.fy-btn-warning:not(.ant-btn-link):not(.ant-btn-text){background:var(--fy-warning-bg);border:1px solid #f0d3a2;color:var(--fy-warning);box-shadow:none;transition:all .2s ease}.ant-btn.fy-btn-warning:not(.ant-btn-link):not(.ant-btn-text):not([disabled]):hover{background:#fbe8cc;border-color:var(--fy-warning);color:var(--fy-warning)}.ant-btn.fy-btn-danger:not(.ant-btn-link):not(.ant-btn-text){background:var(--fy-danger);border:1px solid var(--fy-danger);color:#fff;box-shadow:0 2px 8px #b4231833;transition:all .2s ease}.ant-btn.fy-btn-danger:not(.ant-btn-link):not(.ant-btn-text):not([disabled]):hover{filter:brightness(1.07);box-shadow:0 5px 14px #b4231847}.ant-btn.fy-btn-danger.ant-btn-link,.ant-btn.fy-btn-danger.ant-btn-text{color:var(--fy-danger)!important;background:transparent;box-shadow:none}.ant-btn.fy-btn-danger.ant-btn-link:hover,.ant-btn.fy-btn-danger.ant-btn-text:hover{background:var(--fy-danger-bg);color:var(--fy-danger)!important}.ant-btn.fy-btn-success.ant-btn-link{color:var(--fy-success)!important}.ant-btn.fy-btn-warning.ant-btn-link{color:var(--fy-warning)!important}.ant-modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px}.ant-modal-footer .ant-btn+.ant-btn{margin-left:0}.ant-drawer-footer{display:flex;justify-content:flex-end;gap:8px}.ant-drawer-footer .ant-btn+.ant-btn{margin-left:0}.fm-btn+.fm-btn{margin-left:8px}.fm-btn-primary.fy-btn-danger{background:var(--fy-danger);border-color:var(--fy-danger);color:#fff}.fm-btn-primary.fy-btn-warning{background:var(--fy-warning-bg);border-color:#f0d3a2;color:var(--fy-warning)}.ant-tag{border-radius:999px;padding-inline:9px;border:none;font-size:var(--fy-fs-12);line-height:20px}[style*="#3f8600"],[style*="#52c41a"]{color:var(--fy-success)!important}[style*="#faad14"],[style*="#fa8c16"]{color:var(--fy-warning)!important}[style*="#f5222d"],[style*="#ff4d4f"]{color:var(--fy-danger)!important}[style*="#1677ff"],[style*="#2f54eb"]{color:var(--fy-processing)!important}[style*="#8c8c8c"],[style*="#bfbfbf"]{color:var(--fy-text-muted)!important}.ant-descriptions .ant-descriptions-item-label{color:var(--fy-text-muted)!important;font-size:var(--fy-fs-12)!important;font-weight:400!important;padding-bottom:2px!important}.ant-descriptions .ant-descriptions-item-content{color:var(--fy-text)!important;font-size:var(--fy-fs-13)!important;font-weight:550;padding-bottom:10px!important}.ant-descriptions .ant-descriptions-item{padding-bottom:0!important;align-items:flex-start}.ant-descriptions .ant-descriptions-row>td{padding-bottom:12px!important}.detail-card,.ant-card{border-radius:var(--fy-radius-card)!important;border-color:var(--fy-border-light)!important;box-shadow:none!important}.ant-card .ant-card-head{border-bottom:1px solid var(--fy-border-light)!important;padding:0 16px!important;min-height:42px!important;font-size:var(--fy-fs-14)!important;font-weight:600!important;color:var(--fy-text)!important}.ant-card .ant-card-body{padding:14px 16px!important}.ant-alert{border-radius:var(--fy-radius-card)!important;border:1px solid var(--fy-border-light)!important;background:var(--fy-sunken)!important}.ant-alert.ant-alert-info{background:#eef4fe!important;border-color:#d7e3fb!important}.ant-alert.ant-alert-success{background:var(--fy-success-bg)!important;border-color:#d6e8ff!important}.ant-alert.ant-alert-warning{background:var(--fy-warning-bg)!important;border-color:#f5e3c6!important}.ant-alert.ant-alert-error{background:var(--fy-danger-bg)!important;border-color:#f6d5d1!important}.ant-alert .ant-alert-message{font-weight:600;color:var(--fy-text)!important}.ant-alert .ant-alert-description{color:var(--fy-text-body)!important;font-size:var(--fy-fs-13)}.ant-empty-description{color:var(--fy-text-placeholder)!important;font-size:var(--fy-fs-13)}.ant-empty-normal .ant-empty-image{opacity:.5}.login-page .login-card{background:#ffffffeb!important;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.65)!important;border-radius:20px!important;box-shadow:0 30px 70px #040e1a8c,inset 0 1px #ffffffe6!important;position:relative;overflow:hidden}.login-page .login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#e02e24,#1668dc)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#5a6a824d;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#5a6a8280}::-webkit-scrollbar-track{background:transparent}.ant-modal .ant-modal-content{border-radius:var(--fy-radius-lg);box-shadow:var(--fy-shadow-lg)}.ant-drawer .ant-drawer-content{background:var(--fy-bg)}.ant-drawer .ant-drawer-header{background:#fff;border-bottom:1px solid var(--fy-border-light);padding:14px 18px}.ant-drawer .ant-drawer-title{font-size:var(--fy-fs-16);font-weight:600;color:var(--fy-text)}.ant-modal .ant-tabs,.ant-modal .ant-tabs-nav,.ant-modal .ant-tabs-nav-wrap,.ant-modal .ant-tabs-nav-list,.ant-modal .ant-tabs-tab,.ant-modal .ant-tabs-tab-btn{pointer-events:auto!important}.ant-modal .ant-tabs{top:0!important;max-width:100%!important}.ant-modal .ant-tabs{padding-bottom:0!important}.ant-modal .ant-modal-header{padding:16px 22px 12px;margin-bottom:0;border-bottom:1px solid var(--fy-border-light)}.ant-modal .ant-modal-body{padding:10px 22px 18px}.ant-modal .ant-modal-footer{padding:12px 22px;border-top:1px solid var(--fy-border-light);text-align:right}.ant-modal .ant-modal-footer .ant-btn+.ant-btn{margin-left:8px}.ant-modal .ant-tabs{margin:0!important}.ant-modal .ant-tabs-nav{margin-bottom:16px!important}.ant-modal .ant-form-item{margin-bottom:14px}.ant-dropdown-menu,.ant-select-dropdown{border-radius:var(--fy-radius-card);box-shadow:var(--fy-shadow)}.ant-drawer-content-wrapper{max-width:94vw!important}.ant-modal{max-width:94vw}@media (max-width: 1440px){:root{--fy-gap: 12px;--fy-gap-lg: 16px;--fy-radius-card: 8px}.ant-drawer-content-wrapper{max-width:96vw!important}.ant-modal{max-width:96vw}}@media (max-width: 1280px){.ant-drawer-content-wrapper{max-width:100vw!important}.ant-modal{max-width:98vw;top:24px}}@media print{.app-sider,.app-header{display:none!important}}.fy-fin-row{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:12px;align-items:start}.fy-fin-col{min-width:0}.fy-fin-col-narrow{max-width:220px}.fy-fin-row-4{grid-template-columns:220px 1.2fr 1fr 1.1fr}.fy-fin-title{font-size:13px;font-weight:600;color:#1f2329;margin-bottom:6px;padding-left:8px;border-left:3px solid #1677ff;line-height:1.2}.fy-fin-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;width:100%}.fy-fin-compare-2{grid-template-columns:repeat(2,1fr)}.fy-fin-cell{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #f0f0f0;border-radius:6px;background:#fafbfc;min-width:0}.fy-fin-label{color:#8a8f99;font-size:12px;white-space:nowrap}.fy-fin-value{color:#1f2329;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fy-fin-pay{color:#d4380d}.fy-fin-receive{color:#16a34a}.fy-fin-discount{color:#b45309}.fy-fin-hint{color:#8a8f99;font-size:12px}.fy-fin-items{width:100%;max-height:210px;overflow-y:auto;border:1px solid #f0f0f0;border-radius:6px;padding:4px 10px}.fy-fin-item{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed #f0f0f0}.fy-fin-item:last-child{border-bottom:0}.fy-fi-name{flex:1;min-width:0;display:flex;flex-direction:column;color:#1f2329;font-size:13px}.fy-fi-name small{color:#8a8f99;font-size:12px}.fy-fi-qty{color:#8a8f99;font-size:12px;white-space:nowrap}.fy-fi-price{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}.fy-fi-sub{color:#8a8f99;font-size:11px;font-weight:400}.fy-fin-field{min-width:0;margin-bottom:10px}.fy-fin-field:last-child{margin-bottom:0}.fy-fin-field-label{font-size:12px;color:#8a8f99;margin-bottom:4px}.fy-fin-req{color:#d4380d;font-style:normal;margin-left:2px}
