html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}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)}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 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}:root{--c-brand: #3B82F6;--c-brand-strong: #2563EB;--c-brand-light: #EFF6FF;--c-brand-soft: #F5F9FF;--c-ink: #111318;--c-ink-soft: #5B6472;--c-ink-muted: #9299A5;--c-bg: #F8FAFC;--c-surface: #FFFFFF;--c-border: #E1E5EA;--c-border-light: #EEF0F3;--c-green: #10B981;--c-green-bg: #ECFDF5;--c-amber: #F59E0B;--c-amber-bg: #FFFBEB;--c-purple: #8B5CF6;--c-purple-bg: #F5F3FF;--c-red: #EF4444;--c-red-bg: #FEF2F2;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-xl: 12px;--sh-sm: 0 1px 2px rgba(15,23,42,.035);--sh-md: 0 6px 18px rgba(15,23,42,.055);--sh-lg: 0 12px 28px rgba(15,23,42,.075);--sh-xl: 0 20px 48px rgba(15,23,42,.1);--t-fast: .18s;--t-base: .28s;--t-slow: .4s;--e-out: cubic-bezier(.16,1,.3,1);--e-spring:cubic-bezier(.34,1.56,.64,1)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--c-bg);color:var(--c-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,sans-serif}#root{min-height:100dvh}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 420px;background:var(--c-bg)}.login-hero{background:linear-gradient(160deg,#0b1120,#111827 40%,#0f172a);color:#fff;padding:80px 72px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(160deg,#0b112040,#11182726,#0f172a1f);pointer-events:none}.login-hero canvas{z-index:0}.login-hero>*:not(canvas){position:relative;z-index:2}.login-hero h1{font-size:42px;line-height:1.25;margin:0;font-weight:700;letter-spacing:-.6px}.login-hero .eyebrow{font-size:13px;letter-spacing:2px;text-transform:uppercase;opacity:.7}.login-hero p{margin:0}.brand-mark{width:52px;height:52px;border-radius:var(--r-md);background:#ffffff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;font-weight:800;font-size:15px;letter-spacing:2px;border:1px solid rgba(255,255,255,.2);margin-bottom:36px}.hero-stats{display:flex;gap:48px;margin-top:40px}.hero-stats strong{display:block;font-size:30px;font-weight:700;letter-spacing:-.5px}.hero-stats span{opacity:.68;font-size:12px;font-weight:500;margin-top:4px;display:block;letter-spacing:.3px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:48px;background:#fff}.login-card{width:100%;max-width:360px}.app-shell{min-height:100dvh;background:var(--c-bg)!important}.workspace-shell{min-width:0;background:var(--c-bg)!important}.ant-layout-header{line-height:normal!important;display:flex!important;align-items:center;background:#fff!important;border-bottom:1px solid var(--c-border-light)!important}.app-brand{display:flex;align-items:center;gap:12px;height:72px;padding:0 18px;border-bottom:1px solid var(--c-border-light)}.app-brand .mark{width:34px;height:34px;border-radius:8px;background:var(--c-ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:11px;letter-spacing:1px;flex-shrink:0}.app-brand strong{display:block;font-size:14px;font-weight:700;color:var(--c-ink);letter-spacing:-.15px}.app-brand span{display:block;margin-top:1px;font-size:11px;color:var(--c-ink-muted)}.ant-layout-sider{background:#fff!important;border-right:1px solid var(--c-border)!important;box-shadow:none}.app-sider{position:sticky!important;top:0;height:100dvh;overflow:hidden}.app-sider .ant-layout-sider-children{height:100%;display:flex;flex-direction:column}.app-sider .ant-menu{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto}.sider-section-label{padding:22px 20px 8px;font-size:10px;font-weight:700;letter-spacing:1.15px;text-transform:uppercase;color:var(--c-ink-muted)}.ant-layout-sider .ant-menu-item,.ant-layout-sider .ant-menu-submenu-title{margin:2px 12px!important;width:auto!important;padding-left:14px!important;border-radius:6px!important;font-weight:500;transition:all var(--t-base) var(--e-out)!important}.ant-layout-sider .ant-menu-sub .ant-menu-item{padding-left:42px!important}.ant-layout-sider .ant-menu-item-selected{box-shadow:none;position:relative}.ant-layout-sider .ant-menu-item-selected:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;border-radius:0 2px 2px 0;background:var(--c-brand)}.ant-layout-sider .ant-menu-item .anticon{font-size:16px!important}.sider-footer{position:relative;padding:12px;border-top:1px solid var(--c-border-light);display:flex;align-items:center;background:#fff}.account-button{width:100%;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border:0;border-radius:6px;color:var(--c-ink);background:transparent;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--e-out)}.account-button:hover{background:var(--c-bg)}.account-button:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.account-avatar{flex:none;background:var(--c-brand)!important}.account-copy{min-width:0;display:grid;gap:1px}.account-copy strong{overflow:hidden;color:var(--c-ink);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.account-copy small{color:var(--c-ink-muted);font-size:10px}.workspace-header{position:sticky;top:0;z-index:20;height:64px!important;padding:0 24px!important;justify-content:space-between;background:#fffffff5!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.workspace-context{display:flex;align-items:center;gap:10px;font-size:13px}.workspace-context span{color:var(--c-ink-muted)}.workspace-context i{color:#c6cbd2;font-style:normal}.workspace-context strong{color:var(--c-ink);font-weight:600}.icon-button{color:var(--c-ink-soft)!important}.workspace-content{width:100%;max-width:1480px;margin:0 auto;padding:22px 24px 36px;overflow:auto}.ant-layout-content{background:var(--c-bg)!important}.ant-card{border-radius:var(--r-lg)!important;border-color:var(--c-border)!important;box-shadow:var(--sh-sm)!important;transition:box-shadow var(--t-base) var(--e-out),transform var(--t-base) var(--e-out)!important;background:var(--c-surface)!important}.ant-card:hover{box-shadow:var(--sh-sm)!important}.ant-card .ant-card-head{border-bottom:1px solid var(--c-border-light)!important;min-height:52px!important;padding:0 20px!important}.ant-card .ant-card-head-title{font-size:14px!important;font-weight:600!important;color:var(--c-ink)!important}.ant-card .ant-card-body{padding:20px!important}.kpi-card{position:relative;overflow:hidden;transition:transform var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out);border-left:3px solid transparent!important;transition:all var(--t-base) var(--e-out)!important}.kpi-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;pointer-events:none;transition:opacity var(--t-base) var(--e-out)}.kpi-card:hover{transform:translateY(-1px);box-shadow:var(--sh-md)!important}.kpi-card:hover:before{opacity:.55}.kpi-card[style*=--kpi-bg]:before{background:linear-gradient(135deg,var(--kpi-bg),transparent 70%)}.chart-card{position:relative;overflow:hidden;border-top:1px solid var(--c-border)!important}.chart-card-warning,.chart-card-success{border-top-color:var(--c-border)!important}.section-divider{position:relative;display:flex;align-items:center;gap:12px;margin:4px 0}.section-divider:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--c-border-light),transparent)}.section-divider span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--c-ink-muted);white-space:nowrap}.flow-card{border-radius:var(--r-lg);padding:18px;background:#fff;border:1px solid var(--c-border);cursor:pointer;transition:all var(--t-base) var(--e-out);height:100%}.flow-card:hover{border-color:var(--c-brand);box-shadow:var(--sh-md);transform:translateY(-1px)}.as-value{font-size:30px;font-weight:700;color:var(--c-ink);letter-spacing:-.5px;font-variant-numeric:tabular-nums}.as-prefix,.as-suffix{font-size:13px;color:var(--c-ink-muted);font-weight:500}.home-hero{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:176px;background:#1e293b url(/hero-trade-operations.png) center / cover no-repeat;color:#fff;padding:30px 34px}.home-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0f172a7a,#0f172a3d 48%,#0f172a14);pointer-events:none}.home-hero>*{position:relative;z-index:1}.home-hero .ant-btn-default:not(:hover){color:#fff;border-color:#ffffff73;background:transparent}.home-hero .ant-btn-default:hover,.home-hero .ant-btn-default:focus{color:#fff!important;border-color:#ffffffbf!important;background:#ffffff1f!important}.home-hero .eyebrow{letter-spacing:1.5px;text-transform:uppercase;font-size:10px;opacity:.72;margin:0 0 8px;font-weight:600}.home-hero h1{font-size:24px;line-height:1.3;margin:0 0 8px;font-weight:700;letter-spacing:-.3px}.bar-chart{display:flex;align-items:flex-end;gap:10px;height:180px;padding-top:8px}.bar-chart .bar{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;border-radius:var(--r-md);outline:none;cursor:pointer;transition:background var(--t-fast) var(--e-out),transform var(--t-base) var(--e-out)}.bar-chart .bar:before{content:"";position:absolute;top:4px;right:2px;bottom:18px;left:2px;border-radius:var(--r-md);background:var(--bar-color);opacity:0;transform:scaleY(.92);transform-origin:bottom;transition:opacity var(--t-fast) var(--e-out),transform var(--t-base) var(--e-out);pointer-events:none}.bar-chart .bar:hover,.bar-chart .bar:focus-visible{transform:translateY(-2px)}.bar-chart .bar:hover:before,.bar-chart .bar:focus-visible:before{opacity:.055;transform:scaleY(1)}.bar-chart .bar b{position:relative;z-index:1;padding:3px 6px;margin:-3px -6px;border-radius:var(--r-sm);font-size:11px;color:var(--c-ink);font-weight:600;transition:color var(--t-fast) var(--e-out),background var(--t-fast) var(--e-out),box-shadow var(--t-fast) var(--e-out)}.bar-chart .bar:hover b,.bar-chart .bar:focus-visible b{color:#f8fafc;background:var(--bar-color);box-shadow:0 5px 12px #2563eb2e}.bar-chart .bar i{position:relative;z-index:1;width:100%;max-width:38px;border-radius:8px 8px 0 0;min-height:4px;transform-origin:bottom;transition:transform var(--t-base) var(--e-out),filter var(--t-base) var(--e-out)}.bar-chart .bar:hover i,.bar-chart .bar:focus-visible i{transform:scaleX(1.14) translateY(-2px);filter:saturate(1.12) drop-shadow(0 6px 6px rgba(37,99,235,.16))}.bar-chart .bar span{position:relative;z-index:1;font-size:10px;color:var(--c-ink-muted);transition:color var(--t-fast) var(--e-out),font-weight var(--t-fast) var(--e-out)}.bar-chart .bar:hover span,.bar-chart .bar:focus-visible span{color:var(--bar-color);font-weight:700}.line-chart-plot{position:relative}.line-chart svg{width:100%;height:auto;display:block;overflow:visible}.lc-area{opacity:.85}.lc-grid{stroke:#f1f5f9;stroke-width:1}.lc-line{transition:stroke-width var(--t-fast) var(--e-out)}.line-chart:has(.lc-point-group.is-active) .lc-line{stroke-width:3}.lc-point-group{pointer-events:none}.lc-point-target{position:absolute;z-index:2;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;transform:translate(-50%,-50%);outline:none}.lc-point-target:focus-visible{box-shadow:0 0 0 2px #3b82f647}.lc-point{transform-box:fill-box;transform-origin:center;transition:transform var(--t-base) var(--e-out),filter var(--t-base) var(--e-out)}.lc-point-group:hover .lc-point,.lc-point-group:focus .lc-point,.lc-point-group.is-active .lc-point{transform:scale(1.65);filter:drop-shadow(0 3px 3px rgba(37,99,235,.2))}.lc-guide{stroke:#bfdbfe;stroke-width:1;stroke-dasharray:3 4}.lc-tooltip rect{fill:#172033;stroke:#ffffff29;stroke-width:1;filter:drop-shadow(0 6px 8px rgba(15,23,42,.16))}.lc-tooltip text{pointer-events:none}.lc-tooltip-label{fill:#aeb8c8;font-size:8px;font-weight:600}.lc-tooltip-value{fill:#f8fafc;font-size:9px;font-weight:700}.lc-labels{display:flex;justify-content:space-between;color:var(--c-ink-muted);font-size:10px;margin-top:6px;padding:0 4px}.lc-labels span{padding:2px 4px;border-radius:var(--r-sm);transition:color var(--t-fast) var(--e-out),background var(--t-fast) var(--e-out),opacity .3s}.lc-labels span.is-active{color:var(--c-brand-strong);background:var(--c-brand-light);font-weight:700}.home-chart-row>.ant-col{display:flex}.home-chart-row .chart-card{width:100%;height:100%}.status-donut-card .ant-card-body{min-height:226px;display:flex;align-items:center}.status-donut-layout{width:100%;display:grid;grid-template-columns:minmax(124px,136px) minmax(0,1fr);align-items:center;gap:10px}.status-donut{position:relative;width:min(164px,100%);aspect-ratio:1;margin-inline:auto}.status-donut svg{width:100%;height:100%;display:block;overflow:visible}.status-donut-track{fill:none;stroke:#e8edf4;stroke-width:28}.status-donut-segment{stroke-width:28;cursor:pointer;transform-box:view-box;transform-origin:center;transition:transform var(--t-base) var(--e-out),stroke-width var(--t-base) var(--e-out),opacity var(--t-fast) var(--e-out),filter var(--t-base) var(--e-out)}.status-donut-segment:hover,.status-donut-segment:focus,.status-donut-segment.is-active{stroke-width:34;transform:scale(1.045);filter:drop-shadow(0 5px 5px rgba(15,23,42,.14));outline:none}.status-donut:has(.status-donut-segment.is-active) .status-donut-segment:not(.is-active){opacity:.48}.status-donut-core{position:absolute;top:27%;right:27%;bottom:27%;left:27%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.status-donut-core strong{color:var(--c-ink);font-size:24px;line-height:1;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.status-donut-core span{max-width:100%;margin-bottom:4px;color:var(--c-ink-muted);font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap}.status-donut-core small{margin-top:3px;color:var(--active-status-color);font-size:9px;font-weight:700;line-height:1.2;white-space:nowrap}.status-donut-legend{display:grid;gap:3px}.status-donut-legend-item{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:35px;display:grid;grid-template-columns:8px minmax(72px,1fr) auto 34px;align-items:center;gap:8px;padding:6px 7px;border-radius:var(--r-md);transition:background var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-out)}.status-donut-legend-item:hover,.status-donut-legend-item:focus-visible,.status-donut-legend-item.is-active{background:var(--c-brand-soft);transform:translate(2px);outline:none}.status-donut-legend-item:focus-visible{box-shadow:inset 0 0 0 1px var(--c-brand)}.status-donut-legend-item i{width:7px;height:7px;border-radius:50%}.status-donut-legend-item span{color:var(--c-ink-soft);font-size:11px;font-weight:500}.status-donut-legend-item b,.status-donut-legend-item em{font-size:11px;font-style:normal;font-variant-numeric:tabular-nums}.status-donut-legend-item b{color:var(--c-ink)}.status-donut-legend-item em{color:var(--c-ink-muted);text-align:right}.status-donut-empty{color:var(--c-ink-muted);font-size:12px;line-height:1.6}.alert-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--r-md);background:var(--c-amber-bg);border:1px solid #FDE68A;margin-bottom:8px;transition:background var(--t-fast) var(--e-out),border-color var(--t-fast) var(--e-out)}.alert-item:last-child{margin-bottom:0}.alert-item:hover{background:#fff7d6;border-color:#fcd34d}.ant-table-thead>tr>th{background:#f8fafc!important;color:var(--c-ink-muted)!important;font-weight:600!important;font-size:11px!important;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid var(--c-border)!important;padding:10px 12px!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--c-border-light)!important;padding:10px 12px!important}.ant-table-tbody>tr:hover>td{background:#f8fafd!important}.ant-progress-bg{border-radius:100px!important}.ai-workspace{height:calc(100dvh - 122px);min-height:580px;display:grid;grid-template-columns:252px minmax(0,1fr);overflow:hidden;background:#fff;border:1px solid var(--c-border);border-radius:16px;box-shadow:0 1px 3px #0f172a09;transition:grid-template-columns var(--t-base) var(--e-out)}.ai-workspace.history-collapsed{grid-template-columns:0 minmax(0,1fr)}.ai-history-panel{min-width:0;padding:12px 10px;background:#f7f7f8;border-right:1px solid #EAEAEA;display:flex;flex-direction:column;overflow:hidden;transition:opacity var(--t-fast) var(--e-out)}.ai-workspace.history-collapsed .ai-history-panel{opacity:0;pointer-events:none;border-right-color:transparent}.ai-new-chat{width:100%;height:42px;justify-content:flex-start;border:0!important;background:transparent!important;color:#202123!important;font-weight:500;box-shadow:none!important}.ai-new-chat:hover{background:#ececf1!important}.ai-history-label{padding:24px 10px 8px;color:#8e8ea0;font-size:11px;font-weight:600}.ai-history-list{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px}.ai-history-item{width:100%;min-height:40px;border:0;border-radius:9px;padding:9px 10px;display:grid;grid-template-columns:16px minmax(0,1fr) 18px;align-items:center;gap:8px;background:transparent;color:#343541;cursor:pointer;text-align:left;font:inherit;transition:background var(--t-fast),color var(--t-fast)}.ai-history-item:hover{background:#ececf1;color:#202123}.ai-history-item.active{background:#e7e7e9;color:#202123}.ai-history-item span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.ai-history-delete{opacity:0;color:var(--c-ink-muted);transition:opacity var(--t-fast),color var(--t-fast)}.ai-history-item:hover .ai-history-delete,.ai-history-item.active .ai-history-delete{opacity:1}.ai-history-delete:hover{color:var(--c-red)}.ai-chat-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}.ai-chat-header{min-height:56px;padding:10px 20px;border-bottom:1px solid #EFEFEF;display:flex;align-items:center;justify-content:space-between}.ai-chat-header-title{display:flex;align-items:center;gap:6px}.ai-history-toggle{width:32px!important;height:32px!important;border-radius:8px!important;color:#6e6e80!important}.ai-history-toggle:hover{background:#f2f2f3!important;color:#202123!important}.ai-chat-header h5{color:#202123;font-size:15px;font-weight:600}.ai-model-tag{margin:0!important;border:0!important;border-radius:999px!important;background:#f2f2f3!important;color:#6e6e80!important;font-size:11px!important}.ai-mode-alert{margin:12px 18px 0;border-radius:10px!important}.ai-chat-surface{flex:1;min-height:0;display:flex;flex-direction:column}.chat-stream{flex:1;min-height:0;overflow-y:auto;padding:34px max(24px,calc((100% - 760px)/2)) 28px;display:flex;flex-direction:column;gap:34px}.chat-stream.is-empty{padding-top:20px}.chat-message{width:100%;flex:0 0 auto;color:#202123}.chat-message.user{display:flex;flex-direction:column;align-items:flex-end}.chat-message-author{margin-bottom:9px;color:#202123;font-size:12px;font-weight:650;letter-spacing:.1px}.chat-message.user .chat-message-author{color:#6e6e80;text-align:right}.chat-message-body{width:fit-content;max-width:86%}.chat-message.ai .chat-message-body{width:100%;max-width:100%}.chat-message.user .chat-message-content{text-align:right}.chat-message-content{color:#343541;font-size:14px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message-content.is-streaming:after{content:"";width:2px;height:1.05em;margin-left:3px;display:inline-block;vertical-align:-.12em;border-radius:1px;background:#343541;animation:ai-caret .8s steps(1,end) infinite}@keyframes ai-caret{0%,45%{opacity:1}46%,to{opacity:0}}.message-attachment{width:fit-content;margin:0 0 10px;padding:7px 10px;border:1px solid #E5E5E5;border-radius:9px;background:#fafafa;color:#565869;font-size:12px}.chat-message.user .message-attachment{margin-left:auto}.message-download{min-height:40px!important;height:auto!important;margin-top:12px;padding:8px 12px!important;border-color:#bbd8ff!important;border-radius:10px!important;background:#eff6ff!important;color:#1859a9!important;font-weight:600}.message-download:hover{border-color:#7fb4f5!important;background:#e4f0ff!important;color:#0f4a91!important}.ai-history-loading{min-height:100%;display:grid;place-items:center}.ai-empty-state{margin:auto;width:100%;max-width:680px;padding:34px 20px}.ai-empty-kicker{margin-bottom:10px;color:#6e6e80;font-size:12px;font-weight:600}.ai-empty-state h2{margin:0 0 10px!important;color:#202123;font-size:clamp(26px,3vw,34px)!important;font-weight:600!important;letter-spacing:-.8px}.ai-empty-state>.ant-typography{display:block;max-width:540px;color:#6e6e80;line-height:1.7}.ai-empty-prompts{margin-top:30px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ai-empty-prompts button{min-height:48px;padding:12px 14px;border:1px solid #E5E5E5;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;color:#343541;font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast)}.ai-empty-prompts button:hover{background:#f7f7f8;border-color:#d9d9df}.ai-empty-prompts button .anticon{color:#8e8ea0;font-size:11px;transform:rotate(45deg)}.ai-result-panel{width:100%;margin-top:18px;flex:0 0 auto;overflow:hidden;border:1px solid #E5E5E5;border-radius:11px}.ai-dataset-stack{margin-top:18px;display:grid;gap:16px}.ai-dataset-stack .ai-result-panel{margin-top:0}.ai-result-panel .ant-table-wrapper,.ai-result-panel .ant-spin-nested-loading,.ai-result-panel .ant-spin-container{min-height:0}.ai-result-panel .ant-pagination{margin:14px 16px!important}.ai-result-heading{min-height:44px;padding:10px 14px;border-bottom:1px solid #EDEDED;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600}.ai-result-heading .ant-typography{font-size:11px;font-weight:400}.ai-thinking{min-height:22px;display:flex;gap:5px;align-items:center}.ai-thinking i{width:5px;height:5px;border-radius:50%;background:#8e8ea0;animation:ai-dot 1.1s ease-in-out infinite}.ai-thinking i:nth-child(2){animation-delay:.14s}.ai-thinking i:nth-child(3){animation-delay:.28s}@keyframes ai-dot{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}.ai-composer-area{padding:10px max(24px,calc((100% - 760px)/2)) 12px;background:linear-gradient(to bottom,#fff0,#fff 18px)}.ai-attachment-chip{display:flex;align-items:center;gap:7px;width:fit-content;max-width:100%;margin-bottom:7px;padding:5px 7px 5px 10px;border:1px solid var(--c-border);border-radius:9px;background:#f7f7f8}.ai-composer{min-height:56px;padding:8px 9px;border:1px solid #D9D9DF;border-radius:18px;display:flex;align-items:flex-end;gap:6px;background:#fff;box-shadow:0 2px 10px #0000000e;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.ai-composer:focus-within{border-color:#b9b9c1;box-shadow:0 3px 14px #00000013}.ai-composer textarea{border:0!important;box-shadow:none!important;resize:none!important;padding:8px 5px!important;color:#202123!important;font-size:14px!important;line-height:1.55!important}.ai-composer .ant-btn-primary{background:#202123!important;border-color:#202123!important;box-shadow:none!important}.ai-composer .ant-btn-primary:disabled{background:#d9d9df!important;border-color:#d9d9df!important}.ai-composer-note{display:block;margin-top:7px;text-align:center;color:#8e8ea0!important;font-size:10px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}::-webkit-scrollbar-track{background:transparent}.kpi-icon{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;font-size:18px;flex-shrink:0;transition:transform var(--t-base) var(--e-spring)}.kpi-card:hover .kpi-icon{transform:translateY(-1px)}.kpi-label{font-size:12px;font-weight:500;color:var(--c-ink-muted);margin-bottom:4px;letter-spacing:.2px}.flow-icon{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;font-size:18px;flex-shrink:0}@media (max-width: 900px){.login-wrap{grid-template-columns:1fr}.login-hero{display:none}.login-form-side{padding:32px 24px}.app-sider{position:fixed!important;z-index:40}.workspace-header{padding-left:52px!important}.workspace-content{padding:18px 16px 28px}.home-hero{min-height:auto;padding:26px 24px;border-radius:var(--r-lg)}.home-hero h1{font-size:20px}.ai-workspace{grid-template-columns:190px minmax(0,1fr)}.status-donut-layout{grid-template-columns:180px minmax(180px,1fr);gap:22px}}@media (max-width: 576px){.ant-card .ant-card-body{padding:14px!important}.workspace-context span,.workspace-context i{display:none}.ai-workspace{display:block;height:auto;min-height:calc(100dvh - 110px)}.ai-history-panel{display:none}.ai-history-toggle{display:none!important}.ai-chat-panel{min-height:calc(100dvh - 110px)}.ai-chat-header{padding-inline:16px}.chat-stream{padding:24px 16px;gap:28px}.ai-empty-state{padding:28px 0}.ai-empty-prompts{grid-template-columns:1fr}.ai-composer-area{padding:8px 12px 10px}.status-donut-card .ant-card-body{min-height:0}.status-donut-layout{grid-template-columns:1fr;gap:16px}.status-donut{width:146px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.status-donut-segment:hover,.status-donut-segment:focus,.status-donut-segment.is-active{transform:none}.bar-chart .bar:hover,.bar-chart .bar:focus-visible,.bar-chart .bar:hover:before,.bar-chart .bar:focus-visible:before,.bar-chart .bar:hover i,.bar-chart .bar:focus-visible i,.lc-point-group:hover .lc-point,.lc-point-group:focus .lc-point,.lc-point-group.is-active .lc-point{transform:none}}.row-highlight>td{background:#fffbe6!important;transition:background .4s}.row-highlight:hover>td{background:#fff1b8!important}.order-milestone-modal .ant-modal-content{overflow:hidden}.order-milestone-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 96px)}.order-milestone-header{flex:none;color:#fff;padding:22px 26px;border-radius:8px 8px 0 0}.order-milestone-body{min-height:230px}.order-milestone-body.has-suborders{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);height:min(560px,calc(100dvh - 220px));min-height:430px}.order-milestone-parent,.order-milestone-suborders{min-height:0;padding:18px 26px}.order-milestone-parent{display:flex;flex-direction:column;justify-content:center}.order-milestone-body:not(.has-suborders) .order-milestone-parent{padding-block:24px}.order-milestone-parent-timeline{margin-top:8px}.order-milestone-section-title{display:block;font-size:12px;font-weight:600}.order-milestone-suborders{display:flex;flex-direction:column;border-top:1px solid #edf0f4;background:#fafbfc}.order-milestone-suborders-heading,.order-milestone-suborder-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.order-milestone-suborders-scroll{min-height:0;overflow-y:auto;display:grid;grid-template-columns:1fr;align-content:start;gap:10px;margin-top:10px;padding-right:4px}.order-milestone-suborder-card{border:1px solid #e5e9ef;border-radius:8px;padding:10px 12px;background:#fff}@media (max-width: 576px){.order-milestone-modal{max-width:calc(100vw - 16px);margin:8px auto}.order-milestone-header{padding:18px}.order-milestone-body.has-suborders{height:calc(100dvh - 190px);min-height:480px}.order-milestone-parent,.order-milestone-suborders{padding:14px}}.company-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.company-asset-item{display:grid;gap:8px;padding:10px;border:1px solid #e7eaf0;border-radius:10px;background:#fafbfc}.ant-table-cell:has(>.ant-btn-circle){padding-left:7px!important;padding-right:7px!important;text-align:center}
