@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap";.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--primary-color: #0F172A;--primary-hover: #1E293B;--secondary-color: #3B82F6;--nav-active: #3B82F6;--nav-active-soft: #EFF6FF;--success-color: #10B981;--warning-color: #F59E0B;--error-color: #EF4444;--background-color: #F4F6F9;--surface-color: #FFFFFF;--sider-bg: #FFFFFF;--text-primary: #0F172A;--text-secondary: #64748B;--text-tertiary: #94A3B8;--border-color: #E8ECF1;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--sider-width: 220px;--header-height: 64px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--shadow-lg: 0 10px 24px rgba(15, 23, 42, .08);--font-sans: "Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{margin:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-primary);line-height:1.6}code{font-family:Fira Code,monospace}#root{min-height:100vh}.ant-layout{background:var(--background-color)!important}.app-shell{min-height:100vh;flex-direction:column!important}.app-header.ant-layout-header{height:56px!important;line-height:1!important;padding:0 20px!important;display:flex!important;align-items:center;justify-content:space-between;gap:12px;background:#fff!important;border-bottom:1px solid var(--border-color);box-shadow:0 1px 0 0 var(--border-color)!important;position:sticky;top:0;z-index:300;flex-shrink:0}.app-header-brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:13px;font-weight:800;letter-spacing:-.03em;flex-shrink:0}.brand-mark--login{border:2px solid rgba(255,255,255,.45);box-shadow:0 2px 8px #0f172a2e}.app-header-brand-name{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;white-space:nowrap}.app-header-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.app-header-divider{width:1px;height:20px;background:var(--border-color);margin:0 6px}.app-icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.app-icon-btn:hover{background:#f1f5f9;color:var(--text-primary)}.app-user-btn{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:999px;background:transparent;cursor:pointer;transition:background .15s,border-color .15s}.app-user-btn:hover{background:#f1f5f9;border-color:var(--border-color)}.app-user-avatar.ant-avatar{background:linear-gradient(135deg,#60a5fa,#3b82f6)!important;font-size:12px!important;font-weight:700!important;flex-shrink:0}.app-user-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.app-user-name{font-size:13px;font-weight:600;color:var(--text-primary);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-user-role{font-size:11px;font-weight:500;color:var(--text-tertiary)}.app-user-caret{font-size:10px;color:var(--text-tertiary);margin-left:2px}.app-sider.ant-layout-sider{position:sticky!important;top:56px;height:calc(100vh - 56px);align-self:flex-start;z-index:200;background:#fff!important;border-right:1px solid var(--border-color)!important;display:flex;flex-direction:column;flex-shrink:0}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-sider-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px 8px 8px}.app-sider-menu.app-sider-menu{background:transparent!important;border-inline-end:none!important}.app-sider-menu .ant-menu-item-group-title{padding:18px 14px 5px!important;font-size:10.5px!important;font-weight:600!important;color:#b0bac8!important;letter-spacing:.07em;text-transform:uppercase;line-height:1!important}.app-sider-menu .ant-menu-item{height:40px!important;line-height:40px!important;margin:2px 0!important;width:100%!important;padding-inline:14px!important;border-radius:8px!important;color:#64748b!important;font-size:13.5px!important;font-weight:500!important;transition:background .15s,color .15s!important;position:relative}.app-sider-menu .ant-menu-item .anticon{font-size:15px!important;color:#b0bac8!important;transition:color .15s!important}.app-sider-menu .ant-menu-item:hover{background:#f1f5f9!important;color:#334155!important}.app-sider-menu .ant-menu-item:hover .anticon{color:#64748b!important}.app-sider-menu .ant-menu-item-selected{background:#eff6ff!important;color:#1d4ed8!important;font-weight:600!important;box-shadow:none!important}.app-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:#2563eb}.app-sider-menu .ant-menu-item-selected .anticon{color:#2563eb!important}.app-sider-menu .ant-menu-item-selected:hover{background:#dbeafe!important;color:#1d4ed8!important}.app-sider.ant-layout-sider-collapsed .app-sider-menu .ant-menu-item{padding-inline:calc(50% - 8px)!important}.app-sider.ant-layout-sider-collapsed .app-sider-menu .ant-menu-item-selected:before{top:8px;bottom:8px}.app-sider-footer{padding:8px 10px 12px;border-top:1px solid var(--border-color)}.app-sider-toggle.ant-btn{width:100%!important;height:34px!important;color:var(--text-tertiary)!important;border-radius:8px!important;font-size:14px!important}.app-sider-toggle.ant-btn:hover{background:#f1f5f9!important;color:var(--text-secondary)!important}.app-content{margin:20px 24px 32px!important;min-height:0;background:transparent}.ant-card{background:var(--surface-color);border-radius:var(--border-radius-lg);border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.ant-card:hover{box-shadow:var(--shadow-md);border-color:#d1d9e6!important}.ant-card-head{border-bottom:1px solid var(--border-color);padding:0 20px;min-height:52px;font-weight:600;color:var(--text-primary)}.ant-card-body{padding:20px}.ant-table-wrapper{background:var(--surface-color);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.ant-table-thead>tr>th{background:#f8fafc!important;color:#64748b!important;font-weight:600!important;font-size:11.5px!important;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-color)!important;padding:14px 20px!important;white-space:nowrap}.ant-table-tbody>tr>td{padding:14px 20px!important;border-bottom:1px solid #F1F5F9!important;color:var(--text-primary);font-size:13.5px;transition:background .1s}.ant-table-tbody>tr:last-child>td{border-bottom:none!important}.ant-table-tbody>tr:hover>td{background:#f8faff!important}.ant-table-row-selected>td{background:#eff6ff!important}.ant-table-column-sort{background:#f8fafc!important}.ant-checkbox-checked .ant-checkbox-inner{background-color:var(--secondary-color)!important;border-color:var(--secondary-color)!important}.ant-pagination{padding:12px 20px!important;margin:0!important;border-top:1px solid var(--border-color)}.ant-pagination-item-active{border-color:var(--secondary-color)!important}.ant-pagination-item-active a{color:var(--secondary-color)!important}.ant-btn{position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:6px!important;border:1px solid transparent;font-size:14px;font-weight:500;line-height:1;letter-spacing:.01em;box-shadow:none!important;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .15s ease!important}.ant-btn>.anticon{font-size:14px}.ant-btn-lg,.ant-btn.ant-btn-lg{height:44px!important;padding:0 22px!important;font-size:15px!important;font-weight:600!important;border-radius:6px!important}.ant-btn-sm,.ant-btn.ant-btn-sm{height:28px!important;padding:0 10px!important;font-size:12px!important;border-radius:5px!important}.ant-btn-icon-only{width:36px!important;padding:0!important}.ant-btn-icon-only.ant-btn-lg{width:44px!important}.ant-btn-icon-only.ant-btn-sm{width:28px!important}.ant-btn-primary{color:#fff!important;background:#2563eb!important;border-color:#2563eb!important;box-shadow:0 1px 2px #2563eb2e!important}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{color:#fff!important;background:#1d4ed8!important;border-color:#1d4ed8!important;box-shadow:0 4px 12px #2563eb47!important;transform:translateY(-1px)}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):active{background:#1e40af!important;border-color:#1e40af!important;transform:translateY(0);box-shadow:none!important}.ant-btn-primary:disabled,.ant-btn-primary.ant-btn-disabled{color:#ffffffbf!important;background:#93c5fd!important;border-color:#93c5fd!important;box-shadow:none!important}.ant-btn-default{color:#334155!important;background:#fff!important;border-color:#e2e8f0!important}.ant-btn-default:not(:disabled):not(.ant-btn-disabled):hover{color:#2563eb!important;background:#f8fafc!important;border-color:#93c5fd!important}.ant-btn-default:not(:disabled):not(.ant-btn-disabled):active{color:#1d4ed8!important;background:#eff6ff!important;border-color:#2563eb!important}.ant-btn-dashed{color:#64748b!important;background:#fff!important;border-color:#cbd5e1!important;border-style:dashed!important}.ant-btn-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#2563eb!important;border-color:#2563eb!important;background:#f8faff!important}.ant-btn-text{color:#64748b!important;background:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-btn-text:not(:disabled):not(.ant-btn-disabled):hover{color:#0f172a!important;background:#f1f5f9!important}.ant-btn-text.ant-btn-dangerous:not(:disabled):not(.ant-btn-disabled):hover{color:#dc2626!important;background:#fef2f2!important}.ant-btn-link{color:#2563eb!important;background:transparent!important;border-color:transparent!important;box-shadow:none!important;height:auto!important;padding:0 4px!important}.ant-btn-link:not(:disabled):not(.ant-btn-disabled):hover{color:#1d4ed8!important;background:transparent!important}.ant-btn-dangerous:not(.ant-btn-primary):not(.ant-btn-text):not(.ant-btn-link){color:#dc2626!important;background:#fff!important;border-color:#fecaca!important}.ant-btn-dangerous:not(.ant-btn-primary):not(.ant-btn-text):not(.ant-btn-link):not(:disabled):hover{color:#dc2626!important;background:#fef2f2!important;border-color:#ef4444!important}.ant-btn-primary.ant-btn-dangerous{color:#fff!important;background:#ef4444!important;border-color:#ef4444!important;box-shadow:0 1px 2px #ef44442e!important}.ant-btn-primary.ant-btn-dangerous:not(:disabled):hover{background:#dc2626!important;border-color:#dc2626!important;box-shadow:0 4px 12px #ef444447!important}.ant-btn-background-ghost.ant-btn-primary{color:#2563eb!important;background:transparent!important;border-color:#2563eb!important;box-shadow:none!important}.ant-btn-background-ghost.ant-btn-primary:not(:disabled):hover{color:#fff!important;background:#2563eb!important;border-color:#2563eb!important}.ant-modal-footer .ant-btn,.ant-drawer-footer .ant-btn{min-width:84px;height:36px!important}.ant-modal-footer .ant-btn-primary,.ant-drawer-footer .ant-btn-primary{font-weight:600}.ant-form .ant-btn-primary[type=submit],.login-submit-btn.ant-btn{height:44px!important;font-size:15px!important;font-weight:600!important;letter-spacing:.06em;border-radius:6px!important}.ant-btn-block{width:100%}.ant-tag{border-radius:6px;border:none!important;padding:3px 10px;font-weight:500;font-size:12px;line-height:18px}.ant-tag-processing{background:#eff6ff;color:#2563eb!important}.ant-tag-success{background:#ecfdf5;color:#059669!important}.ant-tag-warning{background:#eff6ff;color:#2563eb!important}.ant-tag-error{background:#fef2f2;color:#dc2626!important}.ant-tag-default{background:#f1f5f9;color:#475569!important}.ant-tag-blue{background:#eff6ff;color:#2563eb!important}.ant-tag-green{background:#ecfdf5;color:#059669!important}.ant-tag-orange,.ant-tag-gold{background:#eff6ff;color:#2563eb!important}.ant-tag-red{background:#fef2f2;color:#dc2626!important}.ant-tag-purple{background:#f5f3ff;color:#7c3aed!important}.ant-tag-cyan,.ant-tag-geekblue,.ant-tag-lime{background:#eff6ff;color:#2563eb!important}.ant-modal-content{border-radius:var(--border-radius-lg)!important;box-shadow:0 20px 60px #0f172a24!important;padding:0!important;overflow:hidden}.ant-modal-header{padding:20px 24px 16px!important;margin-bottom:0!important;border-bottom:1px solid var(--border-color)!important;background:#fafbfd}.ant-modal-title{font-size:16px!important;font-weight:700!important;color:var(--text-primary)!important}.ant-modal-body{padding:24px!important;max-height:70vh;overflow-y:auto}.ant-modal-footer{padding:14px 24px!important;border-top:1px solid var(--border-color)!important;margin-top:0!important;background:#fafbfd}.ant-drawer-header{padding:18px 24px!important;border-bottom:1px solid var(--border-color)!important;background:#fafbfd!important}.ant-drawer-title{font-size:16px!important;font-weight:700!important;color:var(--text-primary)!important}.ant-drawer-body{padding:24px!important}.ant-drawer-footer{border-top:1px solid var(--border-color)!important;padding:14px 24px!important}.ant-form-item-label>label{font-weight:600!important;font-size:13px!important;color:var(--text-primary)!important;height:auto!important}.ant-form-item-required:before,.ant-form-item-label>label.ant-form-item-required:before{color:#2563eb!important}.ant-form-item{margin-bottom:20px!important}.ant-form-item-explain-error{font-size:12px!important;margin-top:4px!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-input-number,.ant-picker{border-radius:10px!important;border:1.5px solid #E8ECF1!important;transition:border-color .18s,box-shadow .18s,background .18s!important;font-size:14px!important;min-height:42px!important;background:#f8fafc!important;color:#1e293b!important}.ant-input-number-input{border:none!important;box-shadow:none!important;min-height:auto!important;background:transparent!important;font-size:14px!important;color:#1e293b!important}.ant-input-affix-wrapper{padding-inline:14px!important}.ant-input{padding:9px 14px!important;background:transparent!important}.ant-input-number-input{padding:9px 14px!important}.ant-input-affix-wrapper>input.ant-input,.ant-input-affix-wrapper>textarea.ant-input,.ant-input-affix-wrapper .ant-input,.ant-input-textarea-affix-wrapper textarea,.ant-input-textarea-affix-wrapper textarea.ant-input,.ant-input-show-count textarea.ant-input,.ant-input-textarea-show-count textarea.ant-input{border:none!important;box-shadow:none!important;outline:none!important;background:transparent!important;min-height:auto!important;padding:0!important;resize:vertical}.ant-input-affix-wrapper>input.ant-input,.ant-input-affix-wrapper>textarea.ant-input{padding:0!important}.ant-input-search.ant-space-compact{display:inline-flex!important;align-items:stretch!important;border:none!important;background:transparent!important;box-shadow:none!important;min-height:auto!important;padding:0!important}.ant-input-search .ant-input-affix-wrapper{flex:1;min-width:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.ant-input-search .ant-input-affix-wrapper .ant-input{padding:9px 12px!important}.ant-input-search .ant-input-search-btn,.ant-input-search>.ant-btn{border-top-left-radius:0!important;border-bottom-left-radius:0!important;min-height:42px!important;height:auto!important;align-self:stretch!important}.ant-select-single .ant-select-selector{padding-inline:14px!important;align-items:center!important;height:42px!important}.ant-select-selection-item,.ant-select-selection-placeholder{line-height:40px!important;font-size:14px!important}.ant-input:hover:not(textarea):not(.ant-input-affix-wrapper .ant-input),.ant-input-affix-wrapper:hover,.ant-input-number:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#93c5fd!important;background:#fafcff!important}.ant-input:focus:not(textarea):not(.ant-input-affix-wrapper .ant-input),.ant-input-focused:not(textarea):not(.ant-input-affix-wrapper .ant-input),.ant-input-affix-wrapper-focused,.ant-input-number-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:#2563eb!important;background:#fff!important;box-shadow:0 0 0 4px #2563eb1a!important}.ant-input-affix-wrapper .ant-input,.ant-input-affix-wrapper .ant-input:hover,.ant-input-affix-wrapper .ant-input:focus,.ant-input-affix-wrapper .ant-input:focus-visible{border:none!important;box-shadow:none!important;outline:none!important;background:transparent!important}.ant-input-affix-wrapper textarea.ant-input,.ant-input-affix-wrapper textarea.ant-input:hover,.ant-input-affix-wrapper textarea.ant-input:focus,.ant-input-textarea-affix-wrapper textarea,.ant-input-textarea-affix-wrapper textarea:hover,.ant-input-textarea-affix-wrapper textarea:focus{border:none!important;box-shadow:none!important;outline:none!important;background:transparent!important}textarea.ant-input{min-height:auto!important;border-radius:10px!important;padding:12px 14px!important;background:#f8fafc!important;border:1.5px solid #E8ECF1!important;font-size:14px!important;line-height:1.7!important;color:#1e293b!important}.ant-input-affix-wrapper textarea.ant-input,.ant-input-textarea-affix-wrapper textarea.ant-input{border:none!important;box-shadow:none!important;background:transparent!important;padding:8px 12px!important}.ant-input-textarea-affix-wrapper.ant-input-affix-wrapper{display:block!important;border-radius:10px!important;border:1.5px solid #E8ECF1!important;background:#f8fafc!important;padding:0!important;min-height:auto!important}.ant-input-textarea-affix-wrapper.ant-input-affix-wrapper{padding-inline:0!important}.ant-input-textarea-affix-wrapper.ant-input-affix-wrapper:hover{border-color:#93c5fd!important;background:#fafcff!important}.ant-input-textarea-affix-wrapper.ant-input-affix-wrapper-focused,.ant-input-textarea-affix-wrapper.ant-input-affix-wrapper:focus-within{border-color:#2563eb!important;background:#fff!important;box-shadow:0 0 0 4px #2563eb1a!important}.ant-input-data-count,.ant-input-textarea-show-count .ant-input-data-count,.ant-input-show-count .ant-input-data-count{color:#64748b!important;font-size:12px!important}.ant-input-prefix{color:#94a3b8!important;margin-right:10px!important}.ant-input-show-count:after{font-size:11px!important;color:#94a3b8!important}.ant-picker{padding-inline:14px!important}.ant-picker-input input{font-size:14px!important}.ant-input-number-handler-wrap{border-radius:0 10px 10px 0!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,.ant-input:-webkit-autofill,.ant-input-affix-wrapper input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #F8FAFC inset!important;box-shadow:0 0 0 1000px #f8fafc inset!important;-webkit-text-fill-color:#0F172A!important;caret-color:#0f172a;transition:background-color 99999s ease-in-out 0s}.ant-input-affix-wrapper-focused input:-webkit-autofill,.ant-input:focus:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;box-shadow:0 0 0 1000px #fff inset!important}.ant-modal-body .ant-form,.ant-drawer-body .ant-form,.form-card .ant-form{animation:formFadeIn .3s ease}@keyframes formFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ant-upload-drag{border-radius:10px!important;border-color:#cbd5e1!important;background:#f8fafc!important;transition:border-color .15s,background .15s!important}.ant-upload-drag:hover,.ant-upload-drag.ant-upload-drag-hover{border-color:#2563eb!important;background:#eff6ff!important}.ant-checkbox-checked .ant-checkbox-inner,.ant-radio-checked .ant-radio-inner{background-color:#2563eb!important;border-color:#2563eb!important}.ant-radio-inner:after{background-color:#2563eb!important}.ant-switch-checked{background:#2563eb!important}.ant-descriptions-item-label{color:var(--text-tertiary)!important;font-weight:500!important;font-size:12.5px!important}.ant-descriptions-item-content{color:var(--text-primary)!important;font-weight:500!important;font-size:13.5px!important}.ant-select-dropdown{border-radius:var(--border-radius-md)!important;box-shadow:0 8px 24px #0f172a1a!important;border:1px solid var(--border-color)!important;padding:6px!important}.ant-select-item{border-radius:6px!important;font-size:13.5px!important}.ant-select-item-option-selected{background:#eff6ff!important;color:#2563eb!important;font-weight:600!important}.ant-dropdown-menu{border-radius:var(--border-radius-md)!important;box-shadow:0 8px 24px #0f172a1a!important;border:1px solid var(--border-color)!important;padding:6px!important}.ant-dropdown-menu-item{border-radius:6px!important;font-size:13.5px!important;padding:8px 12px!important}.ant-message-notice-content{border-radius:var(--border-radius-md)!important;box-shadow:0 8px 24px #0f172a1a!important;border:1px solid var(--border-color)!important;font-size:13.5px!important}.ant-tooltip-inner{border-radius:8px!important;font-size:12.5px!important;padding:6px 10px!important}.page-breadcrumb-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:32px;margin-bottom:18px;padding:0}.page-breadcrumb{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;line-height:1.2}.page-breadcrumb-group{color:var(--text-tertiary);font-weight:500}.page-breadcrumb-sep{color:#cbd5e1;font-weight:400;font-size:12px}.page-breadcrumb-current{color:var(--text-primary);font-weight:600}.page-breadcrumb-extra{display:flex;align-items:center;flex-shrink:0}.page-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.filter-bar{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:16px;flex-wrap:wrap;box-shadow:var(--shadow-sm)}.stat-mini-card{background:#f8fafc;border:1px solid var(--border-color);border-radius:10px;padding:14px 18px;min-width:110px}.stat-mini-label{font-size:12px;color:var(--text-tertiary);font-weight:500;margin-bottom:6px}.stat-mini-value{font-size:26px;font-weight:700;line-height:1}.page-container{animation:pageIn .35s cubic-bezier(.16,1,.3,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.5}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.login-shell{display:flex;min-height:100vh;background:#f4f6f9}.login-left{position:relative;width:46%;min-height:100vh;background:linear-gradient(160deg,#1648cc,#1872e0,#0ea5e9);display:flex;flex-direction:column;padding:40px 44px 0;overflow:hidden}.login-blob{position:absolute;border-radius:50%;pointer-events:none}.login-blob-1{width:460px;height:460px;background:#ffffff14;top:-140px;right:-160px}.login-blob-2{width:200px;height:200px;background:#ffffff0f;bottom:160px;left:-60px}.login-brand{display:flex;align-items:center;gap:10px;position:relative;z-index:3;flex-shrink:0}.login-brand-name{font-size:16px;font-weight:700;color:#fff;letter-spacing:.01em;white-space:nowrap}.login-features{display:flex;flex-direction:column;gap:28px;position:absolute;top:50%;left:44px;right:44px;transform:translateY(-50%);z-index:2;pointer-events:none}.login-feature-item{display:flex;align-items:flex-start;gap:14px}.login-feature-icon{width:34px;height:34px;border-radius:8px;background:#ffffff29;border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex-shrink:0}.login-feature-title{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px}.login-feature-desc{font-size:12.5px;color:#fff9;line-height:1.55}.login-right{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 48px;background:#fff}.login-form-wrap{width:100%;max-width:380px}.login-form-header{margin-bottom:36px}.login-form-title{font-size:26px;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.02em}.login-label{font-size:13px;font-weight:600;color:var(--text-primary)}.login-input.ant-input-affix-wrapper{border-radius:6px!important;border-color:#d1d5db!important;background:#fff!important;height:44px!important;font-size:14px!important;box-shadow:none!important}.login-input.ant-input-affix-wrapper:hover{border-color:#93c5fd!important}.login-input.ant-input-affix-wrapper-focused{border-color:var(--secondary-color)!important;box-shadow:0 0 0 3px #3b82f61f!important}.login-submit-btn.ant-btn{height:46px!important;border-radius:6px!important;font-size:16px!important;font-weight:600!important;letter-spacing:.1em!important}.login-submit-btn.ant-btn:hover{transform:translateY(-1px)!important}.login-hint{text-align:center;font-size:12.5px;color:var(--text-tertiary)}.login-hint code{font-family:Fira Code,monospace;background:#f1f5f9;padding:2px 6px;border-radius:4px;color:var(--text-secondary);font-size:12px}@media(max-width:768px){.login-left{display:none}.login-right{padding:24px 20px;background:#f4f6f9}}
