<!DOCTYPE html><html lang="en" translate="no"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/brand/light.svg?v=20260909"/><link rel="preload" as="image" href="https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png" fetchPriority="high"/><meta name="google" content="notranslate"/><link rel="icon" href="/favicon.ico?v=2"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><meta name="theme-color" content="#ffffff"/><meta name="referrer" content="strict-origin-when-cross-origin"/><title>How to Create an AI Product Ad with Claude Code and AIHubMix | AIHubMix Blog</title><meta name="description" content="With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register them as virtual-person assets…"/><meta name="keywords" content="AIHubMix, AIHubMix Blog"/><link rel="canonical" href="https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" type="text/markdown" href="https://aihubmix.com/llms.txt"/><meta name="robots" content="index, follow"/><meta property="og:site_name" content="AIHubMix"/><meta property="og:type" content="article"/><meta property="og:title" content="How to Create an AI Product Ad with Claude Code and AIHubMix | AIHubMix Blog"/><meta property="og:description" content="With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register…"/><meta property="og:url" content="https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><meta property="og:image" content="https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png"/><meta property="og:image:alt" content="How to Create an AI Product Ad with Claude Code and AIHubMix | AIHubMix Blog"/><meta property="og:locale" content="en_US"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@aihubmix"/><meta name="twitter:creator" content="@aihubmix"/><meta name="twitter:title" content="How to Create an AI Product Ad with Claude Code and AIHubMix | AIHubMix Blog"/><meta name="twitter:description" content="With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register…"/><meta name="twitter:image" content="https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png"/><meta property="article:published_time" content="2026-09-16T15:29:07.000+00:00"/><meta property="article:modified_time" content="2026-09-21T02:22:16.000+00:00"/><link rel="alternate" hrefLang="en" href="https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="zh-CN" href="https://aihubmix.com/blog/zh-CN/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="zh-TW" href="https://aihubmix.com/blog/zh-TW/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="ja" href="https://aihubmix.com/blog/ja/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="ko" href="https://aihubmix.com/blog/ko/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="de" href="https://aihubmix.com/blog/de/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="es" href="https://aihubmix.com/blog/es/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="fr" href="https://aihubmix.com/blog/fr/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="pt" href="https://aihubmix.com/blog/pt/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="ru" href="https://aihubmix.com/blog/ru/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="tr" href="https://aihubmix.com/blog/tr/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="pl" href="https://aihubmix.com/blog/pl/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="nl" href="https://aihubmix.com/blog/nl/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="it" href="https://aihubmix.com/blog/it/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="vi" href="https://aihubmix.com/blog/vi/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="uk" href="https://aihubmix.com/blog/uk/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="bg" href="https://aihubmix.com/blog/bg/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="alternate" hrefLang="x-default" href="https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"/><link rel="modulepreload" href="/static/manifest-b20be33c.js"/><link rel="modulepreload" href="/static/entry.client-D3GyZyxc.js"/><link rel="modulepreload" href="/static/jsx-runtime-CgWCn3gT.js"/><link rel="modulepreload" href="/static/i18nInstance-C_7vXBXC.js"/><link rel="modulepreload" href="/static/index-ao6ir_VS.js"/><link rel="modulepreload" href="/static/preload-helper-BXl3LOEh.js"/><link rel="modulepreload" href="/static/root-Dl-AuaVW.js"/><link rel="modulepreload" href="/static/useTranslation-CksCcIr-.js"/><link rel="modulepreload" href="/static/error-page-Bt0s4Oe9.js"/><link rel="modulepreload" href="/static/blog-BzQtJgIa.js"/><link rel="modulepreload" href="/static/legacy-shell-D4JdMu14.js"/><link rel="modulepreload" href="/static/index-DXVaY-vM.js"/><link rel="modulepreload" href="/static/seo-meta-Bpqygpx8.js"/><link rel="modulepreload" href="/static/tokens-BZ4Gg0Cj.js"/><link rel="modulepreload" href="/static/controls-B5mJZGsg.js"/><link rel="modulepreload" href="/static/index-Bl0f4fRW.js"/><link rel="modulepreload" href="/static/styled-components.browser.esm-CQ4IZagM.js"/><link rel="modulepreload" href="/static/blogColumn-BobpY0f9.js"/><link rel="modulepreload" href="/static/SearchOutlined-4CAPyJbl.js"/><link rel="modulepreload" href="/static/ArrowLeftOutlined-PEnSNofW.js"/><link rel="modulepreload" href="/static/modelCount-CKhxfxhQ.js"/><link rel="modulepreload" href="/static/seoDom-D06K2jw6.js"/><link rel="modulepreload" href="/static/index-NPPpTHXJ.js"/><link rel="modulepreload" href="/static/index-DKjRcP81.js"/><script>(function () {
  try {
    var h = location.hostname;
    if (!h) return;
    if (/(^|\.)(aihubmix\.com|inferera\.com|shkq\.org)$/.test(h)) return;
    if (h === 'localhost' || h === '127.0.0.1' || h === '[::1]' || /\.local$/.test(h)) return;
    if (/^(10\.|127\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.)/.test(h)) return;
    var esc = /[?&]__noguard=1/.test(location.search);
    try {
      if (esc) sessionStorage.setItem('__noguard', '1');
      if (esc || sessionStorage.getItem('__noguard') === '1') return;
    } catch (e) { if (esc) return; }
    var q = location.search ? location.search + '&' : '?';
    location.replace('https://aihubmix.com' + location.pathname.replace(/^\/+/, '/') + q + '__mfrom=' + encodeURIComponent(h) + location.hash);
  } catch (e) {}
})();</script><style id="ssr-antd">a:where(.css-1xohofr){color:#1677ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color 0.3s;-webkit-text-decoration-skip:objects;}a:where(.css-1xohofr):hover{color:#69b1ff;}a:where(.css-1xohofr):active{color:#0958d9;}a:where(.css-1xohofr):active,a:where(.css-1xohofr):hover{text-decoration:none;outline:0;}a:where(.css-1xohofr):focus{text-decoration:none;outline:0;}a:where(.css-1xohofr)[disabled]{color:rgba(0,0,0,0.25);cursor:not-allowed;}:where(.css-1xohofr) a{color:#1677ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color 0.3s;-webkit-text-decoration-skip:objects;}:where(.css-1xohofr) a:hover{color:#69b1ff;}:where(.css-1xohofr) a:active{color:#0958d9;}:where(.css-1xohofr) a:active,:where(.css-1xohofr) a:hover{text-decoration:none;outline:0;}:where(.css-1xohofr) a:focus{text-decoration:none;outline:0;}:where(.css-1xohofr) a[disabled]{color:rgba(0,0,0,0.25);cursor:not-allowed;}:where(.css-1xohofr).anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}:where(.css-1xohofr).anticon >*{line-height:1;}:where(.css-1xohofr).anticon svg{display:inline-block;}:where(.css-1xohofr).anticon .anticon .anticon-icon{display:block;}:where(.css-1xohofr).ant-layout{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-1xohofr).ant-layout::before,:where(.css-1xohofr).ant-layout::after{box-sizing:border-box;}:where(.css-1xohofr).ant-layout [class^="ant-layout"],:where(.css-1xohofr).ant-layout [class*=" ant-layout"]{box-sizing:border-box;}:where(.css-1xohofr).ant-layout [class^="ant-layout"]::before,:where(.css-1xohofr).ant-layout [class*=" ant-layout"]::before,:where(.css-1xohofr).ant-layout [class^="ant-layout"]::after,:where(.css-1xohofr).ant-layout [class*=" ant-layout"]::after{box-sizing:border-box;}:where(.css-1xohofr).ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:#f5f5f5;}:where(.css-1xohofr).ant-layout,:where(.css-1xohofr).ant-layout *{box-sizing:border-box;}:where(.css-1xohofr).ant-layout.ant-layout-has-sider{flex-direction:row;}:where(.css-1xohofr).ant-layout.ant-layout-has-sider >.ant-layout,:where(.css-1xohofr).ant-layout.ant-layout-has-sider >.ant-layout-content{width:0;}:where(.css-1xohofr).ant-layout .ant-layout-header,:where(.css-1xohofr).ant-layout.ant-layout-footer{flex:0 0 auto;}:where(.css-1xohofr).ant-layout-rtl{direction:rtl;}:where(.css-1xohofr).ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,0.88);line-height:64px;background:#001529;}:where(.css-1xohofr).ant-layout-header .ant-menu{line-height:inherit;}:where(.css-1xohofr).ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,0.88);font-size:14px;background:#f5f5f5;}:where(.css-1xohofr).ant-layout-content{flex:auto;color:rgba(0,0,0,0.88);min-height:0;}a:where(.css-18nm6z4){color:#1677ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color 0.3s;-webkit-text-decoration-skip:objects;}a:where(.css-18nm6z4):hover{color:#69b1ff;}a:where(.css-18nm6z4):active{color:#0958d9;}a:where(.css-18nm6z4):active,a:where(.css-18nm6z4):hover{text-decoration:none;outline:0;}a:where(.css-18nm6z4):focus{text-decoration:none;outline:0;}a:where(.css-18nm6z4)[disabled]{color:rgba(0,0,0,0.25);cursor:not-allowed;}:where(.css-18nm6z4) a{color:#1677ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color 0.3s;-webkit-text-decoration-skip:objects;}:where(.css-18nm6z4) a:hover{color:#69b1ff;}:where(.css-18nm6z4) a:active{color:#0958d9;}:where(.css-18nm6z4) a:active,:where(.css-18nm6z4) a:hover{text-decoration:none;outline:0;}:where(.css-18nm6z4) a:focus{text-decoration:none;outline:0;}:where(.css-18nm6z4) a[disabled]{color:rgba(0,0,0,0.25);cursor:not-allowed;}:where(.css-18nm6z4).anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}:where(.css-18nm6z4).anticon >*{line-height:1;}:where(.css-18nm6z4).anticon svg{display:inline-block;}:where(.css-18nm6z4).anticon .anticon .anticon-icon{display:block;}:where(.css-18nm6z4).ant-layout{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-18nm6z4).ant-layout::before,:where(.css-18nm6z4).ant-layout::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-layout [class^="ant-layout"],:where(.css-18nm6z4).ant-layout [class*=" ant-layout"]{box-sizing:border-box;}:where(.css-18nm6z4).ant-layout [class^="ant-layout"]::before,:where(.css-18nm6z4).ant-layout [class*=" ant-layout"]::before,:where(.css-18nm6z4).ant-layout [class^="ant-layout"]::after,:where(.css-18nm6z4).ant-layout [class*=" ant-layout"]::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:transparent;}:where(.css-18nm6z4).ant-layout,:where(.css-18nm6z4).ant-layout *{box-sizing:border-box;}:where(.css-18nm6z4).ant-layout.ant-layout-has-sider{flex-direction:row;}:where(.css-18nm6z4).ant-layout.ant-layout-has-sider >.ant-layout,:where(.css-18nm6z4).ant-layout.ant-layout-has-sider >.ant-layout-content{width:0;}:where(.css-18nm6z4).ant-layout .ant-layout-header,:where(.css-18nm6z4).ant-layout.ant-layout-footer{flex:0 0 auto;}:where(.css-18nm6z4).ant-layout-rtl{direction:rtl;}:where(.css-18nm6z4).ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,0.88);line-height:64px;background:transparent;}:where(.css-18nm6z4).ant-layout-header .ant-menu{line-height:inherit;}:where(.css-18nm6z4).ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,0.88);font-size:14px;background:#f5f5f5;}:where(.css-18nm6z4).ant-layout-content{flex:auto;color:rgba(0,0,0,0.88);min-height:0;}:where(.css-18nm6z4).ant-dropdown{position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block;}:where(.css-18nm6z4).ant-dropdown::before{position:absolute;inset-block:-4px;z-index:-9999;opacity:0.0001;content:"";}:where(.css-18nm6z4).ant-dropdown-menu-vertical{max-height:100vh;overflow-y:auto;}:where(.css-18nm6z4).ant-dropdown-trigger.ant-btn>.anticon-down,:where(.css-18nm6z4).ant-dropdown-trigger.ant-btn>.ant-btn-icon>.anticon-down{font-size:12px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-wrap{position:relative;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:12px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-wrap .anticon-down::before{transition:transform 0.2s;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-wrap-open .anticon-down::before{transform:rotate(180deg);}:where(.css-18nm6z4).ant-dropdown-hidden,:where(.css-18nm6z4).ant-dropdown-menu-hidden,:where(.css-18nm6z4).ant-dropdown-menu-submenu-hidden{display:none;}:where(.css-18nm6z4).ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight{animation-name:css-18nm6z4-antSlideUpIn;}:where(.css-18nm6z4).ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight{animation-name:css-18nm6z4-antSlideDownIn;}:where(.css-18nm6z4).ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,:where(.css-18nm6z4).ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:css-18nm6z4-antSlideUpOut;}:where(.css-18nm6z4).ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,:where(.css-18nm6z4).ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:css-18nm6z4-antSlideDownOut;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-arrow{position:absolute;z-index:1;display:block;pointer-events:none;width:16px;height:16px;overflow:hidden;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-arrow::before{position:absolute;bottom:0;inset-inline-start:0;width:16px;height:8px;background:#ffffff;clip-path:polygon(1.6568542494923806px 100%, 50% 1.6568542494923806px, 14.34314575050762px 100%, 1.6568542494923806px 100%);clip-path:path('M 0 8 A 4 4 0 0 0 2.82842712474619 6.82842712474619 L 6.585786437626905 3.0710678118654755 A 2 2 0 0 1 9.414213562373096 3.0710678118654755 L 13.17157287525381 6.82842712474619 A 4 4 0 0 0 16 8 Z');content:"";}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-arrow::after{content:"";position:absolute;width:8.970562748477143px;height:8.970562748477143px;bottom:0;inset-inline:0;margin:auto;border-radius:0 0 2px 0;transform:translateY(50%) rotate(-135deg);box-shadow:2px 2px 5px rgba(0, 0, 0, 0.05);z-index:0;background:transparent;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-arrow:before{background:#ffffff;}:where(.css-18nm6z4).ant-dropdown-placement-top>.ant-dropdown-arrow,:where(.css-18nm6z4).ant-dropdown-placement-topLeft>.ant-dropdown-arrow,:where(.css-18nm6z4).ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:0;transform:translateY(100%) rotate(180deg);}:where(.css-18nm6z4).ant-dropdown-placement-top>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) translateY(100%) rotate(180deg);}:where(.css-18nm6z4).ant-dropdown-placement-topLeft{--arrow-offset-horizontal:12px;}:where(.css-18nm6z4).ant-dropdown-placement-topLeft >.ant-dropdown-arrow{left:12px;}:where(.css-18nm6z4).ant-dropdown-placement-topRight{--arrow-offset-horizontal:calc(100% - 12px);}:where(.css-18nm6z4).ant-dropdown-placement-topRight >.ant-dropdown-arrow{right:12px;}:where(.css-18nm6z4).ant-dropdown-placement-bottom>.ant-dropdown-arrow,:where(.css-18nm6z4).ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,:where(.css-18nm6z4).ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:0;transform:translateY(-100%);}:where(.css-18nm6z4).ant-dropdown-placement-bottom>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) translateY(-100%);}:where(.css-18nm6z4).ant-dropdown-placement-bottomLeft{--arrow-offset-horizontal:12px;}:where(.css-18nm6z4).ant-dropdown-placement-bottomLeft >.ant-dropdown-arrow{left:12px;}:where(.css-18nm6z4).ant-dropdown-placement-bottomRight{--arrow-offset-horizontal:calc(100% - 12px);}:where(.css-18nm6z4).ant-dropdown-placement-bottomRight >.ant-dropdown-arrow{right:12px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu{position:relative;margin:0;}:where(.css-18nm6z4).ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:transparent;box-shadow:none;transform-origin:0 0;}:where(.css-18nm6z4).ant-dropdown-menu-submenu-popup ul,:where(.css-18nm6z4).ant-dropdown-menu-submenu-popup li{list-style:none;margin:0;}:where(.css-18nm6z4).ant-dropdown,:where(.css-18nm6z4).ant-dropdown-menu-submenu{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,0.88);font-size:14px;line-height:1.5714285714285714;list-style:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu{padding:4px;list-style-type:none;background-color:#ffffff;background-clip:padding-box;border-radius:8px;outline:none;box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu:focus-visible,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu:focus-visible{outline:3px solid #0049DF;outline-offset:1px;transition:outline-offset 0s,outline 0s;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu:empty,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu:empty{padding:0;box-shadow:none;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-group-title,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(0,0,0,0.45);transition:all 0.2s;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item{position:relative;display:flex;align-items:center;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-icon{min-width:14px;margin-inline-end:8px;font-size:12px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content{flex:auto;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content-with-extra,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content-with-extra{display:inline-flex;align-items:center;width:100%;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a{color:inherit;transition:all 0.2s;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a:hover{color:inherit;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a::after,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a::after{position:absolute;inset:0;content:"";}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content .ant-dropdown-menu-item-extra,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content .ant-dropdown-menu-item-extra{padding-inline-start:16px;margin-inline-start:auto;font-size:12px;color:rgba(0,0,0,0.45);}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title{display:flex;margin:0;padding:5px 12px;color:rgba(0,0,0,0.88);font-weight:normal;font-size:14px;line-height:1.5714285714285714;cursor:pointer;transition:all 0.2s;border-radius:4px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item:hover,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title:hover,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-active,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-active,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-active,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-active{background-color:rgba(0,0,0,0.04);}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:focus-visible,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item:focus-visible,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title:focus-visible,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title:focus-visible{outline:3px solid #0049DF;outline-offset:1px;transition:outline-offset 0s,outline 0s;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected{color:#2563eb;background-color:#f0f7ff;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected:hover,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected:hover,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected-active,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected-active,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected-active,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected-active{background-color:#cce3ff;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,0.25);cursor:not-allowed;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled:hover,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled:hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,0.25);background-color:#ffffff;cursor:not-allowed;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled a,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled a,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled a,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled a{pointer-events:none;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-divider,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-divider,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-divider,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:rgba(5,5,5,0.06);}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;inset-inline-end:8px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-inline-end:0!important;color:rgba(0,0,0,0.45);font-size:12px;font-style:normal;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-group-list,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title{padding-inline-end:24px;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-vertical,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-vertical{position:relative;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,0.25);background-color:#ffffff;cursor:not-allowed;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#2563eb;}:where(.css-18nm6z4).ant-slide-up-enter,:where(.css-18nm6z4).ant-slide-up-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-slide-up-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-slide-up-enter.ant-slide-up-enter-active,:where(.css-18nm6z4).ant-slide-up-appear.ant-slide-up-appear-active{animation-name:css-18nm6z4-antSlideUpIn;animation-play-state:running;}:where(.css-18nm6z4).ant-slide-up-leave.ant-slide-up-leave-active{animation-name:css-18nm6z4-antSlideUpOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-slide-up-enter,:where(.css-18nm6z4).ant-slide-up-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:cubic-bezier(0.23, 1, 0.32, 1);}:where(.css-18nm6z4).ant-slide-up-enter-prepare,:where(.css-18nm6z4).ant-slide-up-appear-prepare{transform:scale(1);}:where(.css-18nm6z4).ant-slide-up-leave{animation-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);}:where(.css-18nm6z4).ant-slide-down-enter,:where(.css-18nm6z4).ant-slide-down-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-slide-down-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-slide-down-enter.ant-slide-down-enter-active,:where(.css-18nm6z4).ant-slide-down-appear.ant-slide-down-appear-active{animation-name:css-18nm6z4-antSlideDownIn;animation-play-state:running;}:where(.css-18nm6z4).ant-slide-down-leave.ant-slide-down-leave-active{animation-name:css-18nm6z4-antSlideDownOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-slide-down-enter,:where(.css-18nm6z4).ant-slide-down-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:cubic-bezier(0.23, 1, 0.32, 1);}:where(.css-18nm6z4).ant-slide-down-enter-prepare,:where(.css-18nm6z4).ant-slide-down-appear-prepare{transform:scale(1);}:where(.css-18nm6z4).ant-slide-down-leave{animation-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);}:where(.css-18nm6z4).ant-move-up-enter,:where(.css-18nm6z4).ant-move-up-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-move-up-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-move-up-enter.ant-move-up-enter-active,:where(.css-18nm6z4).ant-move-up-appear.ant-move-up-appear-active{animation-name:css-18nm6z4-antMoveUpIn;animation-play-state:running;}:where(.css-18nm6z4).ant-move-up-leave.ant-move-up-leave-active{animation-name:css-18nm6z4-antMoveUpOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-move-up-enter,:where(.css-18nm6z4).ant-move-up-appear{opacity:0;animation-timing-function:cubic-bezier(0.08, 0.82, 0.17, 1);}:where(.css-18nm6z4).ant-move-up-leave{animation-timing-function:cubic-bezier(0.78, 0.14, 0.15, 0.86);}:where(.css-18nm6z4).ant-move-down-enter,:where(.css-18nm6z4).ant-move-down-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-move-down-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-move-down-enter.ant-move-down-enter-active,:where(.css-18nm6z4).ant-move-down-appear.ant-move-down-appear-active{animation-name:css-18nm6z4-antMoveDownIn;animation-play-state:running;}:where(.css-18nm6z4).ant-move-down-leave.ant-move-down-leave-active{animation-name:css-18nm6z4-antMoveDownOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-move-down-enter,:where(.css-18nm6z4).ant-move-down-appear{opacity:0;animation-timing-function:cubic-bezier(0.08, 0.82, 0.17, 1);}:where(.css-18nm6z4).ant-move-down-leave{animation-timing-function:cubic-bezier(0.78, 0.14, 0.15, 0.86);}:where(.css-18nm6z4).ant-zoom-big-enter,:where(.css-18nm6z4).ant-zoom-big-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-zoom-big-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-zoom-big-enter.ant-zoom-big-enter-active,:where(.css-18nm6z4).ant-zoom-big-appear.ant-zoom-big-appear-active{animation-name:css-18nm6z4-antZoomBigIn;animation-play-state:running;}:where(.css-18nm6z4).ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:css-18nm6z4-antZoomBigOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-zoom-big-enter,:where(.css-18nm6z4).ant-zoom-big-appear{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(0.08, 0.82, 0.17, 1);}:where(.css-18nm6z4).ant-zoom-big-enter-prepare,:where(.css-18nm6z4).ant-zoom-big-appear-prepare{transform:none;}:where(.css-18nm6z4).ant-zoom-big-leave{animation-timing-function:cubic-bezier(0.78, 0.14, 0.15, 0.86);}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled),:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled){color:#ff4d4f;}:where(.css-18nm6z4).ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled):hover,:where(.css-18nm6z4).ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled):hover{color:#fff;background-color:#ff4d4f;}@keyframes css-18nm6z4-antSlideUpIn{0%{transform:scaleY(0.8);transform-origin:0% 0%;opacity:0;}100%{transform:scaleY(1);transform-origin:0% 0%;opacity:1;}}@keyframes css-18nm6z4-antSlideDownIn{0%{transform:scaleY(0.8);transform-origin:100% 100%;opacity:0;}100%{transform:scaleY(1);transform-origin:100% 100%;opacity:1;}}@keyframes css-18nm6z4-antSlideUpOut{0%{transform:scaleY(1);transform-origin:0% 0%;opacity:1;}100%{transform:scaleY(0.8);transform-origin:0% 0%;opacity:0;}}@keyframes css-18nm6z4-antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1;}100%{transform:scaleY(0.8);transform-origin:100% 100%;opacity:0;}}@keyframes css-18nm6z4-antMoveUpIn{0%{transform:translate3d(0, -100%, 0);transform-origin:0 0;opacity:0;}100%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}}@keyframes css-18nm6z4-antMoveUpOut{0%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}100%{transform:translate3d(0, -100%, 0);transform-origin:0 0;opacity:0;}}@keyframes css-18nm6z4-antMoveDownIn{0%{transform:translate3d(0, 100%, 0);transform-origin:0 0;opacity:0;}100%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}}@keyframes css-18nm6z4-antMoveDownOut{0%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}100%{transform:translate3d(0, 100%, 0);transform-origin:0 0;opacity:0;}}@keyframes css-18nm6z4-antZoomBigIn{0%{transform:scale(0.8);opacity:0;}100%{transform:scale(1);opacity:1;}}@keyframes css-18nm6z4-antZoomBigOut{0%{transform:scale(1);}100%{transform:scale(0.8);opacity:0;}}:where(.css-18nm6z4).ant-tooltip{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,0.88);font-size:14px;line-height:1.5714285714285714;list-style:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;position:absolute;z-index:1070;display:block;width:max-content;max-width:250px;visibility:visible;--valid-offset-x:var(--arrow-offset-horizontal, var(--arrow-x));transform-origin:var(--valid-offset-x, 50%) var(--arrow-y, 50%);--antd-arrow-background-color:rgba(0,0,0,0.85);}:where(.css-18nm6z4).ant-tooltip-hidden{display:none;}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-inner{min-width:28px;min-height:32px;padding:6px 8px;color:var(--ant-tooltip-color, #fff);text-align:start;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,0.85);border-radius:6px;box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05);box-sizing:border-box;}:where(.css-18nm6z4).ant-tooltip-placement-topLeft,:where(.css-18nm6z4).ant-tooltip-placement-topRight,:where(.css-18nm6z4).ant-tooltip-placement-bottomLeft,:where(.css-18nm6z4).ant-tooltip-placement-bottomRight{min-width:34px;}:where(.css-18nm6z4).ant-tooltip-placement-left .ant-tooltip-inner,:where(.css-18nm6z4).ant-tooltip-placement-leftTop .ant-tooltip-inner,:where(.css-18nm6z4).ant-tooltip-placement-leftBottom .ant-tooltip-inner,:where(.css-18nm6z4).ant-tooltip-placement-right .ant-tooltip-inner,:where(.css-18nm6z4).ant-tooltip-placement-rightTop .ant-tooltip-inner,:where(.css-18nm6z4).ant-tooltip-placement-rightBottom .ant-tooltip-inner{border-radius:6px;}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-content{position:relative;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-blue .ant-tooltip-inner{background-color:#1677ff;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-blue .ant-tooltip-arrow{--antd-arrow-background-color:#1677ff;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-purple .ant-tooltip-arrow{--antd-arrow-background-color:#722ed1;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-cyan .ant-tooltip-arrow{--antd-arrow-background-color:#13c2c2;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-green .ant-tooltip-arrow{--antd-arrow-background-color:#52c41a;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-magenta .ant-tooltip-inner{background-color:#eb2f96;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-magenta .ant-tooltip-arrow{--antd-arrow-background-color:#eb2f96;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-pink .ant-tooltip-arrow{--antd-arrow-background-color:#eb2f96;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-red .ant-tooltip-arrow{--antd-arrow-background-color:#f5222d;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-orange .ant-tooltip-arrow{--antd-arrow-background-color:#fa8c16;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-yellow .ant-tooltip-arrow{--antd-arrow-background-color:#fadb14;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-volcano .ant-tooltip-arrow{--antd-arrow-background-color:#fa541c;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-geekblue .ant-tooltip-arrow{--antd-arrow-background-color:#2f54eb;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-lime .ant-tooltip-arrow{--antd-arrow-background-color:#a0d911;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14;}:where(.css-18nm6z4).ant-tooltip.ant-tooltip-gold .ant-tooltip-arrow{--antd-arrow-background-color:#faad14;}:where(.css-18nm6z4).ant-tooltip-rtl{direction:rtl;}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-arrow{position:absolute;z-index:1;display:block;pointer-events:none;width:16px;height:16px;overflow:hidden;}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-arrow::before{position:absolute;bottom:0;inset-inline-start:0;width:16px;height:8px;background:var(--antd-arrow-background-color);clip-path:polygon(1.6568542494923806px 100%, 50% 1.6568542494923806px, 14.34314575050762px 100%, 1.6568542494923806px 100%);clip-path:path('M 0 8 A 4 4 0 0 0 2.82842712474619 6.82842712474619 L 6.585786437626905 3.0710678118654755 A 2 2 0 0 1 9.414213562373096 3.0710678118654755 L 13.17157287525381 6.82842712474619 A 4 4 0 0 0 16 8 Z');content:"";}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-arrow::after{content:"";position:absolute;width:8.970562748477143px;height:8.970562748477143px;bottom:0;inset-inline:0;margin:auto;border-radius:0 0 2px 0;transform:translateY(50%) rotate(-135deg);box-shadow:2px 2px 5px rgba(0, 0, 0, 0.05);z-index:0;background:transparent;}:where(.css-18nm6z4).ant-tooltip .ant-tooltip-arrow:before{background:var(--antd-arrow-background-color);}:where(.css-18nm6z4).ant-tooltip-placement-top>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-topLeft>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-topRight>.ant-tooltip-arrow{bottom:0;transform:translateY(100%) rotate(180deg);}:where(.css-18nm6z4).ant-tooltip-placement-top>.ant-tooltip-arrow{left:50%;transform:translateX(-50%) translateY(100%) rotate(180deg);}:where(.css-18nm6z4).ant-tooltip-placement-topLeft{--arrow-offset-horizontal:12px;}:where(.css-18nm6z4).ant-tooltip-placement-topLeft >.ant-tooltip-arrow{left:12px;}:where(.css-18nm6z4).ant-tooltip-placement-topRight{--arrow-offset-horizontal:calc(100% - 12px);}:where(.css-18nm6z4).ant-tooltip-placement-topRight >.ant-tooltip-arrow{right:12px;}:where(.css-18nm6z4).ant-tooltip-placement-bottom>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-bottomLeft>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-bottomRight>.ant-tooltip-arrow{top:0;transform:translateY(-100%);}:where(.css-18nm6z4).ant-tooltip-placement-bottom>.ant-tooltip-arrow{left:50%;transform:translateX(-50%) translateY(-100%);}:where(.css-18nm6z4).ant-tooltip-placement-bottomLeft{--arrow-offset-horizontal:12px;}:where(.css-18nm6z4).ant-tooltip-placement-bottomLeft >.ant-tooltip-arrow{left:12px;}:where(.css-18nm6z4).ant-tooltip-placement-bottomRight{--arrow-offset-horizontal:calc(100% - 12px);}:where(.css-18nm6z4).ant-tooltip-placement-bottomRight >.ant-tooltip-arrow{right:12px;}:where(.css-18nm6z4).ant-tooltip-placement-left>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-leftTop>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-leftBottom>.ant-tooltip-arrow{right:0;transform:translateX(100%) rotate(90deg);}:where(.css-18nm6z4).ant-tooltip-placement-left>.ant-tooltip-arrow{top:50%;transform:translateY(-50%) translateX(100%) rotate(90deg);}:where(.css-18nm6z4).ant-tooltip-placement-leftTop>.ant-tooltip-arrow{top:8px;}:where(.css-18nm6z4).ant-tooltip-placement-leftBottom>.ant-tooltip-arrow{bottom:8px;}:where(.css-18nm6z4).ant-tooltip-placement-right>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-rightTop>.ant-tooltip-arrow,:where(.css-18nm6z4).ant-tooltip-placement-rightBottom>.ant-tooltip-arrow{left:0;transform:translateX(-100%) rotate(-90deg);}:where(.css-18nm6z4).ant-tooltip-placement-right>.ant-tooltip-arrow{top:50%;transform:translateY(-50%) translateX(-100%) rotate(-90deg);}:where(.css-18nm6z4).ant-tooltip-placement-rightTop>.ant-tooltip-arrow{top:8px;}:where(.css-18nm6z4).ant-tooltip-placement-rightBottom>.ant-tooltip-arrow{bottom:8px;}:where(.css-18nm6z4).ant-tooltip-pure{position:relative;max-width:none;margin:16px;}:where(.css-18nm6z4).ant-zoom-big-fast-enter,:where(.css-18nm6z4).ant-zoom-big-fast-appear{animation-duration:0.1s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-zoom-big-fast-leave{animation-duration:0.1s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-18nm6z4).ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,:where(.css-18nm6z4).ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active{animation-name:css-18nm6z4-antZoomBigIn;animation-play-state:running;}:where(.css-18nm6z4).ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:css-18nm6z4-antZoomBigOut;animation-play-state:running;pointer-events:none;}:where(.css-18nm6z4).ant-zoom-big-fast-enter,:where(.css-18nm6z4).ant-zoom-big-fast-appear{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(0.08, 0.82, 0.17, 1);}:where(.css-18nm6z4).ant-zoom-big-fast-enter-prepare,:where(.css-18nm6z4).ant-zoom-big-fast-appear-prepare{transform:none;}:where(.css-18nm6z4).ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(0.78, 0.14, 0.15, 0.86);}:where(.css-18nm6z4).ant-drawer{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-18nm6z4).ant-drawer::before,:where(.css-18nm6z4).ant-drawer::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-drawer [class^="ant-drawer"],:where(.css-18nm6z4).ant-drawer [class*=" ant-drawer"]{box-sizing:border-box;}:where(.css-18nm6z4).ant-drawer [class^="ant-drawer"]::before,:where(.css-18nm6z4).ant-drawer [class*=" ant-drawer"]::before,:where(.css-18nm6z4).ant-drawer [class^="ant-drawer"]::after,:where(.css-18nm6z4).ant-drawer [class*=" ant-drawer"]::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-drawer{position:fixed;inset:0;z-index:1000;pointer-events:none;color:rgba(0,0,0,0.88);}:where(.css-18nm6z4).ant-drawer-pure{position:relative;background:#FCFCFC;display:flex;flex-direction:column;}:where(.css-18nm6z4).ant-drawer-pure.ant-drawer-left{box-shadow:6px 0 16px 0 rgba(0, 0, 0, 0.08),3px 0 6px -4px rgba(0, 0, 0, 0.12),9px 0 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-pure.ant-drawer-right{box-shadow:-6px 0 16px 0 rgba(0, 0, 0, 0.08),-3px 0 6px -4px rgba(0, 0, 0, 0.12),-9px 0 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-pure.ant-drawer-top{box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-pure.ant-drawer-bottom{box-shadow:0 -6px 16px 0 rgba(0, 0, 0, 0.08),0 -3px 6px -4px rgba(0, 0, 0, 0.12),0 -9px 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-inline{position:absolute;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask{position:absolute;inset:0;z-index:1000;background:rgba(0,0,0,0.45);pointer-events:auto;}:where(.css-18nm6z4).ant-drawer .ant-drawer-content-wrapper{position:absolute;z-index:1000;max-width:100vw;transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-content-wrapper-hidden{display:none;}:where(.css-18nm6z4).ant-drawer-left>.ant-drawer-content-wrapper{top:0;bottom:0;left:0;box-shadow:6px 0 16px 0 rgba(0, 0, 0, 0.08),3px 0 6px -4px rgba(0, 0, 0, 0.12),9px 0 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-right>.ant-drawer-content-wrapper{top:0;right:0;bottom:0;box-shadow:-6px 0 16px 0 rgba(0, 0, 0, 0.08),-3px 0 6px -4px rgba(0, 0, 0, 0.12),-9px 0 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-top>.ant-drawer-content-wrapper{top:0;inset-inline:0;box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer-bottom>.ant-drawer-content-wrapper{bottom:0;inset-inline:0;box-shadow:0 -6px 16px 0 rgba(0, 0, 0, 0.08),0 -3px 6px -4px rgba(0, 0, 0, 0.12),0 -9px 28px 8px rgba(0, 0, 0, 0.05);}:where(.css-18nm6z4).ant-drawer .ant-drawer-content{display:flex;flex-direction:column;width:100%;height:100%;overflow:auto;background:#FCFCFC;pointer-events:auto;}:where(.css-18nm6z4).ant-drawer .ant-drawer-header{display:flex;flex:0;align-items:center;padding:16px 24px;font-size:16px;line-height:1.5;border-bottom:1px solid rgba(5,5,5,0.06);}:where(.css-18nm6z4).ant-drawer .ant-drawer-header-title{display:flex;flex:1;align-items:center;min-width:0;min-height:0;}:where(.css-18nm6z4).ant-drawer .ant-drawer-extra{flex:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-close{display:inline-flex;width:24px;height:24px;border-radius:4px;justify-content:center;align-items:center;color:rgba(0,0,0,0.45);font-weight:600;font-size:16px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:transparent;border:0;cursor:pointer;transition:all 0.2s;text-rendering:auto;}:where(.css-18nm6z4).ant-drawer .ant-drawer-close.ant-drawer-close-end{margin-inline-start:8px;}:where(.css-18nm6z4).ant-drawer .ant-drawer-close:not(.ant-drawer-close-end){margin-inline-end:8px;}:where(.css-18nm6z4).ant-drawer .ant-drawer-close:hover{color:rgba(0,0,0,0.88);background-color:rgba(0,0,0,0.06);text-decoration:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-close:active{background-color:rgba(0,0,0,0.15);}:where(.css-18nm6z4).ant-drawer .ant-drawer-close:focus-visible{outline:3px solid #0049DF;outline-offset:1px;transition:outline-offset 0s,outline 0s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-title{flex:1;margin:0;font-weight:600;font-size:16px;line-height:1.5;}:where(.css-18nm6z4).ant-drawer .ant-drawer-body{flex:1;min-width:0;min-height:0;padding:24px;overflow:auto;}:where(.css-18nm6z4).ant-drawer .ant-drawer-body .ant-drawer-body-skeleton{width:100%;height:100%;display:flex;justify-content:center;}:where(.css-18nm6z4).ant-drawer .ant-drawer-footer{flex-shrink:0;padding:8px 16px;border-top:1px solid rgba(5,5,5,0.06);}:where(.css-18nm6z4).ant-drawer-rtl{direction:rtl;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-enter-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-appear-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-leave-start{transition:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-appear-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-leave-active{transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-appear{opacity:0;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-appear-active{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-leave{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-mask-motion-leave-active{opacity:0;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave-start{transition:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave-active{transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear-active{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave-active{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear{transform:translateX(-100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-appear-active{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-left-leave-active{transform:translateX(-100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave-start{transition:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave-active{transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear-active{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave-active{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear{transform:translateX(100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-appear-active{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-right-leave-active{transform:translateX(100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave-start{transition:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave-active{transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear-active{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave-active{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear{transform:translateY(-100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-appear-active{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-top-leave-active{transform:translateY(-100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear-start,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave-start{transition:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave-active{transition:all 0.3s;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear-active{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave{opacity:1;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave-active{opacity:0.7;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear{transform:translateY(100%);}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-enter-active,:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-appear-active{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave{transform:none;}:where(.css-18nm6z4).ant-drawer .ant-drawer-panel-motion-bottom-leave-active{transform:translateY(100%);}:where(.css-18nm6z4).ant-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-18nm6z4).ant-btn::before,:where(.css-18nm6z4).ant-btn::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-btn [class^="ant-btn"],:where(.css-18nm6z4).ant-btn [class*=" ant-btn"]{box-sizing:border-box;}:where(.css-18nm6z4).ant-btn [class^="ant-btn"]::before,:where(.css-18nm6z4).ant-btn [class*=" ant-btn"]::before,:where(.css-18nm6z4).ant-btn [class^="ant-btn"]::after,:where(.css-18nm6z4).ant-btn [class*=" ant-btn"]::after{box-sizing:border-box;}:where(.css-18nm6z4).ant-btn{outline:none;position:relative;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:400;white-space:nowrap;text-align:center;background-image:none;background:transparent;border:1px solid transparent;cursor:pointer;transition:all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);user-select:none;touch-action:manipulation;color:rgba(0,0,0,0.88);}:where(.css-18nm6z4).ant-btn:disabled>*{pointer-events:none;}:where(.css-18nm6z4).ant-btn .ant-btn-icon>svg{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}:where(.css-18nm6z4).ant-btn .ant-btn-icon>svg >*{line-height:1;}:where(.css-18nm6z4).ant-btn .ant-btn-icon>svg svg{display:inline-block;}:where(.css-18nm6z4).ant-btn >a{color:currentColor;}:where(.css-18nm6z4).ant-btn:not(:disabled):focus-visible{outline:3px solid #0049DF;outline-offset:1px;transition:outline-offset 0s,outline 0s;}:where(.css-18nm6z4).ant-btn.ant-btn-two-chinese-chars::first-letter{letter-spacing:0.34em;}:where(.css-18nm6z4).ant-btn.ant-btn-two-chinese-chars>*:not(.anticon){margin-inline-end:-0.34em;letter-spacing:0.34em;}:where(.css-18nm6z4).ant-btn.ant-btn-icon-only{padding-inline:0;}:where(.css-18nm6z4).ant-btn.ant-btn-icon-only.ant-btn-compact-item{flex:none;}:where(.css-18nm6z4).ant-btn.ant-btn-loading{opacity:0.65;cursor:default;}:where(.css-18nm6z4).ant-btn .ant-btn-loading-icon{transition:width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);}:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-appear-start,:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-enter-start{margin-inline-end:-8px;}:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-appear-active,:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-enter-active{margin-inline-end:0;}:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-leave-start{margin-inline-end:0;}:where(.css-18nm6z4).ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-leave-active{margin-inline-end:-8px;}:where(.css-18nm6z4).ant-btn-icon-end{flex-direction:row-reverse;}:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-appear-start,:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-enter-start{margin-inline-start:-8px;}:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-appear-active,:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-enter-active{margin-inline-start:0;}:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-leave-start{margin-inline-start:0;}:where(.css-18nm6z4).ant-btn-icon-end .ant-btn-loading-icon-motion-leave-active{margin-inline-start:-8px;}:where(.css-18nm6z4).ant-btn{font-size:14px;height:32px;padding:0px 15px;border-radius:16px;}:where(.css-18nm6z4).ant-btn.ant-btn-icon-only{width:32px;}:where(.css-18nm6z4).ant-btn.ant-btn-icon-only .anticon{font-size:inherit;}:where(.css-18nm6z4).ant-btn.ant-btn-circle.ant-btn{min-width:32px;padding-inline:0;border-radius:50%;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn{border-radius:32px;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn:not(.ant-btn-icon-only){padding-inline:15px;}:where(.css-18nm6z4).ant-btn-sm{font-size:14px;height:24px;padding:0px 7px;border-radius:4px;}:where(.css-18nm6z4).ant-btn-sm.ant-btn-icon-only{width:24px;}:where(.css-18nm6z4).ant-btn-sm.ant-btn-icon-only .anticon{font-size:inherit;}:where(.css-18nm6z4).ant-btn.ant-btn-circle.ant-btn-sm{min-width:24px;padding-inline:0;border-radius:50%;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn-sm{border-radius:24px;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn-sm:not(.ant-btn-icon-only){padding-inline:7px;}:where(.css-18nm6z4).ant-btn-lg{font-size:16px;height:48px;padding:0px 15px;border-radius:24px;}:where(.css-18nm6z4).ant-btn-lg.ant-btn-icon-only{width:48px;}:where(.css-18nm6z4).ant-btn-lg.ant-btn-icon-only .anticon{font-size:inherit;}:where(.css-18nm6z4).ant-btn.ant-btn-circle.ant-btn-lg{min-width:48px;padding-inline:0;border-radius:50%;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn-lg{border-radius:48px;}:where(.css-18nm6z4).ant-btn.ant-btn-round.ant-btn-lg:not(.ant-btn-icon-only){padding-inline:15px;}:where(.css-18nm6z4).ant-btn.ant-btn-block{width:100%;}:where(.css-18nm6z4).ant-btn-color-default{color:rgba(0,0,0,0.88);box-shadow:0 2px 0 rgba(0,0,0,0.02);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-solid{color:#fff;background:rgb(0,0,0);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{color:#fff;background:rgba(0,0,0,0.75);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{color:#fff;background:rgba(0,0,0,0.95);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-filled{box-shadow:none;background:rgba(0,0,0,0.04);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:rgba(0,0,0,0.88);background:rgba(0,0,0,0.06);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:rgba(0,0,0,0.88);background:rgba(0,0,0,0.15);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-background-ghost{color:#ffffff;background:transparent;border-color:#ffffff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:transparent;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:transparent;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-background-ghost:disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);border-color:#d9d9d9;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-link{color:rgba(0,0,0,0.88);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#69b1ff;background:transparent;}:where(.css-18nm6z4).ant-btn-color-default.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;}:where(.css-18nm6z4).ant-btn-color-primary{color:#2563eb;box-shadow:0 2px 0 rgba(5,122,255,0.06);}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed{border-color:#2563eb;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#4f8af7;border-color:#6180F9;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#1647c4;border-color:#0049DF;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-filled{box-shadow:none;background:#f0f7ff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#2563eb;background:#cce3ff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#2563eb;background:#0049DF;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-text{color:#2563eb;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#4f8af7;background:#f0f7ff;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#1647c4;background:#0049DF;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-link{color:#2563eb;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#4f8af7;background:transparent;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#1647c4;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-background-ghost{color:#2563eb;background:transparent;border-color:#2563eb;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:transparent;color:#6180F9;border-color:#6180F9;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:transparent;color:#0049DF;border-color:#0049DF;}:where(.css-18nm6z4).ant-btn-color-primary.ant-btn-background-ghost:disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);border-color:#d9d9d9;}:where(.css-18nm6z4).ant-btn-color-dangerous{color:#ff4d4f;box-shadow:0 2px 0 rgba(255,38,5,0.06);}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-solid{color:#fff;background:#ff4d4f;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ff7875;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#d9363e;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed{border-color:#ff4d4f;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7875;border-color:#ffa39e;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#d9363e;border-color:#d9363e;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-filled{box-shadow:none;background:#fff2f0;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#ff4d4f;background:#ffdfdc;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#ff4d4f;background:#ffccc7;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-text{color:#ff4d4f;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7875;background:#fff2f0;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#ff7875;background:#ffccc7;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-link{color:#ff4d4f;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7875;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#d9363e;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-background-ghost{color:#ff4d4f;background:transparent;border-color:#ff4d4f;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:transparent;color:#ff7875;border-color:#ff7875;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:transparent;color:#d9363e;border-color:#d9363e;}:where(.css-18nm6z4).ant-btn-color-dangerous.ant-btn-background-ghost:disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);border-color:#d9d9d9;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-variant-link{color:#1677ff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-link.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#69b1ff;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-background-ghost{color:#1677ff;background:transparent;border-color:#1677ff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:transparent;color:#69b1ff;border-color:#69b1ff;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:transparent;color:#0958d9;border-color:#0958d9;}:where(.css-18nm6z4).ant-btn-color-link.ant-btn-background-ghost:disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);border-color:#d9d9d9;}:where(.css-18nm6z4).ant-btn-color-blue{color:#1677ff;box-shadow:0 2px 0 rgba(5,145,255,0.1);}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-solid{color:#fff;background:#1677ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#4096ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#0958d9;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed{border-color:#1677ff;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#4096ff;border-color:#4096ff;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;border-color:#0958d9;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-filled{box-shadow:none;background:#e6f4ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#1677ff;background:#bae0ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#1677ff;background:#91caff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-link{color:#1677ff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#4096ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-text{color:#1677ff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#4096ff;background:#e6f4ff;}:where(.css-18nm6z4).ant-btn-color-blue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;background:#91caff;}:where(.css-18nm6z4).ant-btn-color-purple{color:#722ed1;box-shadow:0 2px 0 rgba(155,5,255,0.06);}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-solid{color:#fff;background:#722ed1;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#9254de;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#531dab;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed{border-color:#722ed1;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#9254de;border-color:#9254de;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#531dab;border-color:#531dab;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-filled{box-shadow:none;background:#f9f0ff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#722ed1;background:#efdbff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#722ed1;background:#d3adf7;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-link{color:#722ed1;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#9254de;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#531dab;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-text{color:#722ed1;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#9254de;background:#f9f0ff;}:where(.css-18nm6z4).ant-btn-color-purple.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#531dab;background:#d3adf7;}:where(.css-18nm6z4).ant-btn-color-cyan{color:#13c2c2;box-shadow:0 2px 0 rgba(5,255,215,0.1);}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-solid{color:#fff;background:#13c2c2;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#36cfc9;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#08979c;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed{border-color:#13c2c2;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#36cfc9;border-color:#36cfc9;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#08979c;border-color:#08979c;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-filled{box-shadow:none;background:#e6fffb;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#13c2c2;background:#b5f5ec;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#13c2c2;background:#87e8de;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-link{color:#13c2c2;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#36cfc9;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#08979c;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-text{color:#13c2c2;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#36cfc9;background:#e6fffb;}:where(.css-18nm6z4).ant-btn-color-cyan.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#08979c;background:#87e8de;}:where(.css-18nm6z4).ant-btn-color-green{color:#52c41a;box-shadow:0 2px 0 rgba(142,255,30,0.08);}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-solid{color:#fff;background:#52c41a;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#73d13d;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#389e0d;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed{border-color:#52c41a;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#73d13d;border-color:#73d13d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#389e0d;border-color:#389e0d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-filled{box-shadow:none;background:#f6ffed;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#52c41a;background:#d9f7be;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#52c41a;background:#b7eb8f;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-link{color:#52c41a;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#73d13d;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#389e0d;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-text{color:#52c41a;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#73d13d;background:#f6ffed;}:where(.css-18nm6z4).ant-btn-color-green.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#389e0d;background:#b7eb8f;}:where(.css-18nm6z4).ant-btn-color-magenta{color:#eb2f96;box-shadow:0 2px 0 rgba(255,5,105,0.06);}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-solid{color:#fff;background:#eb2f96;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#f759ab;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#c41d7f;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed{border-color:#eb2f96;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;border-color:#f759ab;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;border-color:#c41d7f;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-filled{box-shadow:none;background:#fff0f6;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#eb2f96;background:#ffd6e7;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#eb2f96;background:#ffadd2;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-link{color:#eb2f96;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-text{color:#eb2f96;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;background:#fff0f6;}:where(.css-18nm6z4).ant-btn-color-magenta.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;background:#ffadd2;}:where(.css-18nm6z4).ant-btn-color-pink{color:#eb2f96;box-shadow:0 2px 0 rgba(255,5,105,0.06);}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-solid{color:#fff;background:#eb2f96;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#f759ab;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#c41d7f;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed{border-color:#eb2f96;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;border-color:#f759ab;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;border-color:#c41d7f;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-filled{box-shadow:none;background:#fff0f6;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#eb2f96;background:#ffd6e7;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#eb2f96;background:#ffadd2;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-link{color:#eb2f96;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-text{color:#eb2f96;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#f759ab;background:#fff0f6;}:where(.css-18nm6z4).ant-btn-color-pink.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#c41d7f;background:#ffadd2;}:where(.css-18nm6z4).ant-btn-color-red{color:#f5222d;box-shadow:0 2px 0 rgba(255,22,5,0.06);}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-solid{color:#fff;background:#f5222d;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ff4d4f;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#cf1322;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed{border-color:#f5222d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ff4d4f;border-color:#ff4d4f;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#cf1322;border-color:#cf1322;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-filled{box-shadow:none;background:#fff1f0;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#f5222d;background:#ffccc7;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#f5222d;background:#ffa39e;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-link{color:#f5222d;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ff4d4f;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#cf1322;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-text{color:#f5222d;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ff4d4f;background:#fff1f0;}:where(.css-18nm6z4).ant-btn-color-red.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#cf1322;background:#ffa39e;}:where(.css-18nm6z4).ant-btn-color-orange{color:#fa8c16;box-shadow:0 2px 0 rgba(255,175,5,0.1);}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-solid{color:#fff;background:#fa8c16;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ffa940;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#d46b08;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed{border-color:#fa8c16;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ffa940;border-color:#ffa940;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#d46b08;border-color:#d46b08;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-filled{box-shadow:none;background:#fff7e6;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#fa8c16;background:#ffe7ba;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#fa8c16;background:#ffd591;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-link{color:#fa8c16;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ffa940;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#d46b08;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-text{color:#fa8c16;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ffa940;background:#fff7e6;}:where(.css-18nm6z4).ant-btn-color-orange.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#d46b08;background:#ffd591;}:where(.css-18nm6z4).ant-btn-color-yellow{color:#fadb14;box-shadow:0 2px 0 rgba(245,255,5,0.1);}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-solid{color:#fff;background:#fadb14;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ffec3d;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#d4b106;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed{border-color:#fadb14;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ffec3d;border-color:#ffec3d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#d4b106;border-color:#d4b106;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-filled{box-shadow:none;background:#feffe6;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#fadb14;background:#ffffb8;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#fadb14;background:#fffb8f;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-link{color:#fadb14;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ffec3d;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#d4b106;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-text{color:#fadb14;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ffec3d;background:#feffe6;}:where(.css-18nm6z4).ant-btn-color-yellow.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#d4b106;background:#fffb8f;}:where(.css-18nm6z4).ant-btn-color-volcano{color:#fa541c;box-shadow:0 2px 0 rgba(255,125,25,0.1);}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-solid{color:#fff;background:#fa541c;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ff7a45;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#d4380d;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed{border-color:#fa541c;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7a45;border-color:#ff7a45;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#d4380d;border-color:#d4380d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-filled{box-shadow:none;background:#fff2e8;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#fa541c;background:#ffd8bf;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#fa541c;background:#ffbb96;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-link{color:#fa541c;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7a45;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#d4380d;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-text{color:#fa541c;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ff7a45;background:#fff2e8;}:where(.css-18nm6z4).ant-btn-color-volcano.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#d4380d;background:#ffbb96;}:where(.css-18nm6z4).ant-btn-color-geekblue{color:#2f54eb;box-shadow:0 2px 0 rgba(5,88,255,0.06);}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-solid{color:#fff;background:#2f54eb;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#597ef7;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#1d39c4;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed{border-color:#2f54eb;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#597ef7;border-color:#597ef7;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#1d39c4;border-color:#1d39c4;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-filled{box-shadow:none;background:#f0f5ff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#2f54eb;background:#d6e4ff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#2f54eb;background:#adc6ff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-link{color:#2f54eb;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#597ef7;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#1d39c4;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-text{color:#2f54eb;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#597ef7;background:#f0f5ff;}:where(.css-18nm6z4).ant-btn-color-geekblue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#1d39c4;background:#adc6ff;}:where(.css-18nm6z4).ant-btn-color-lime{color:#a0d911;box-shadow:0 2px 0 rgba(225,255,5,0.1);}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-solid{color:#fff;background:#a0d911;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#bae637;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#7cb305;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed{border-color:#a0d911;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#bae637;border-color:#bae637;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#7cb305;border-color:#7cb305;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-filled{box-shadow:none;background:#fcffe6;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#a0d911;background:#f4ffb8;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#a0d911;background:#eaff8f;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-link{color:#a0d911;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#bae637;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#7cb305;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-text{color:#a0d911;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#bae637;background:#fcffe6;}:where(.css-18nm6z4).ant-btn-color-lime.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#7cb305;background:#eaff8f;}:where(.css-18nm6z4).ant-btn-color-gold{color:#faad14;box-shadow:0 2px 0 rgba(255,215,5,0.1);}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-solid{color:#fff;background:#faad14;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#ffc53d;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#d48806;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed{border-color:#faad14;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#ffc53d;border-color:#ffc53d;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#d48806;border-color:#d48806;background:#ffffff;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-dashed{border-style:dashed;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-filled{box-shadow:none;background:#fffbe6;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-filled:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{color:#faad14;background:#fff1b8;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{color:#faad14;background:#ffe58f;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-link{color:#faad14;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#ffc53d;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#d48806;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-text{color:#faad14;box-shadow:none;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:#ffc53d;background:#fffbe6;}:where(.css-18nm6z4).ant-btn-color-gold.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:#d48806;background:#ffe58f;}:where(.css-18nm6z4).ant-btn-variant-outlined,:where(.css-18nm6z4).ant-btn-variant-dashed{border-color:#d9d9d9;background:#ffffff;}:where(.css-18nm6z4).ant-btn-variant-outlined:disabled,:where(.css-18nm6z4).ant-btn-variant-dashed:disabled,:where(.css-18nm6z4).ant-btn-variant-outlined.ant-btn-disabled,:where(.css-18nm6z4).ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,:where(.css-18nm6z4).ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:#6180F9;border-color:#6180F9;background:#ffffff;}:where(.css-18nm6z4).ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,:where(.css-18nm6z4).ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:#0049DF;border-color:#0049DF;background:#ffffff;}:where(.css-18nm6z4).ant-btn-variant-text{color:rgba(0,0,0,0.88);box-shadow:none;}:where(.css-18nm6z4).ant-btn-variant-text:disabled,:where(.css-18nm6z4).ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:rgba(0,0,0,0.88);background:rgba(0,0,0,0.04);}:where(.css-18nm6z4).ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:rgba(0,0,0,0.88);background:rgba(0,0,0,0.15);}:where(.css-18nm6z4).ant-btn-variant-solid{color:#fff;background:#2563eb;}:where(.css-18nm6z4).ant-btn-variant-solid:disabled,:where(.css-18nm6z4).ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:#d9d9d9;color:rgba(0,0,0,0.25);background:rgba(0,0,0,0.04);box-shadow:none;}:where(.css-18nm6z4).ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:#6180F9;color:#fff;}:where(.css-18nm6z4).ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:#0049DF;color:#fff;}:where(.css-18nm6z4).ant-btn-variant-link{color:#1677ff;box-shadow:none;}:where(.css-18nm6z4).ant-btn-variant-link:disabled,:where(.css-18nm6z4).ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:rgba(0,0,0,0.25);}:where(.css-18nm6z4).ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:#69b1ff;background:transparent;}:where(.css-18nm6z4).ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:#0958d9;}:where(.css-18nm6z4).ant-btn-group{position:relative;display:inline-flex;}:where(.css-18nm6z4).ant-btn-group >span:not(:last-child),:where(.css-18nm6z4).ant-btn-group >.ant-btn:not(:last-child),:where(.css-18nm6z4).ant-btn-group >span:not(:last-child)>.ant-btn,:where(.css-18nm6z4).ant-btn-group >.ant-btn:not(:last-child)>.ant-btn{border-start-end-radius:0;border-end-end-radius:0;}:where(.css-18nm6z4).ant-btn-group >span:not(:first-child),:where(.css-18nm6z4).ant-btn-group >.ant-btn:not(:first-child){margin-inline-start:-1px;}:where(.css-18nm6z4).ant-btn-group >span:not(:first-child),:where(.css-18nm6z4).ant-btn-group >.ant-btn:not(:first-child),:where(.css-18nm6z4).ant-btn-group >span:not(:first-child)>.ant-btn,:where(.css-18nm6z4).ant-btn-group >.ant-btn:not(:first-child)>.ant-btn{border-start-start-radius:0;border-end-start-radius:0;}:where(.css-18nm6z4).ant-btn-group .ant-btn{position:relative;z-index:1;}:where(.css-18nm6z4).ant-btn-group .ant-btn:hover,:where(.css-18nm6z4).ant-btn-group .ant-btn:focus,:where(.css-18nm6z4).ant-btn-group .ant-btn:active{z-index:2;}:where(.css-18nm6z4).ant-btn-group .ant-btn[disabled]{z-index:0;}:where(.css-18nm6z4).ant-btn-group .ant-btn-icon-only{font-size:14px;}:where(.css-18nm6z4).ant-btn-group >span:not(:last-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-primary:not(:last-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >span:not(:last-child)>.ant-btn-primary:not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-primary:not(:last-child)>.ant-btn-primary:not(:disabled){border-inline-end-color:#6180F9;}:where(.css-18nm6z4).ant-btn-group >span:not(:first-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-primary:not(:first-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >span:not(:first-child)>.ant-btn-primary:not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-primary:not(:first-child)>.ant-btn-primary:not(:disabled){border-inline-start-color:#6180F9;}:where(.css-18nm6z4).ant-btn-group >span:not(:last-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-danger:not(:last-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >span:not(:last-child)>.ant-btn-danger:not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-danger:not(:last-child)>.ant-btn-danger:not(:disabled){border-inline-end-color:#ff7875;}:where(.css-18nm6z4).ant-btn-group >span:not(:first-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-danger:not(:first-child):not(:disabled),:where(.css-18nm6z4).ant-btn-group >span:not(:first-child)>.ant-btn-danger:not(:disabled),:where(.css-18nm6z4).ant-btn-group >.ant-btn-danger:not(:first-child)>.ant-btn-danger:not(:disabled){border-inline-start-color:#ff7875;}:where(.css-1xohofr)[class^="ant-anchor"],:where(.css-1xohofr)[class*=" ant-anchor"]{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-anchor"]::before,:where(.css-1xohofr)[class*=" ant-anchor"]::before,:where(.css-1xohofr)[class^="ant-anchor"]::after,:where(.css-1xohofr)[class*=" ant-anchor"]::after{box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-anchor"] [class^="ant-anchor"],:where(.css-1xohofr)[class*=" ant-anchor"] [class^="ant-anchor"],:where(.css-1xohofr)[class^="ant-anchor"] [class*=" ant-anchor"],:where(.css-1xohofr)[class*=" ant-anchor"] [class*=" ant-anchor"]{box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-anchor"] [class^="ant-anchor"]::before,:where(.css-1xohofr)[class*=" ant-anchor"] [class^="ant-anchor"]::before,:where(.css-1xohofr)[class^="ant-anchor"] [class*=" ant-anchor"]::before,:where(.css-1xohofr)[class*=" ant-anchor"] [class*=" ant-anchor"]::before,:where(.css-1xohofr)[class^="ant-anchor"] [class^="ant-anchor"]::after,:where(.css-1xohofr)[class*=" ant-anchor"] [class^="ant-anchor"]::after,:where(.css-1xohofr)[class^="ant-anchor"] [class*=" ant-anchor"]::after,:where(.css-1xohofr)[class*=" ant-anchor"] [class*=" ant-anchor"]::after{box-sizing:border-box;}:where(.css-1xohofr).ant-anchor-wrapper{margin-block-start:-4px;padding-block-start:4px;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,0.88);font-size:14px;line-height:1.5714285714285714;list-style:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;position:relative;padding-inline-start:2px;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor .ant-anchor-link{padding-block:4px;padding-inline:16px 0;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor .ant-anchor-link-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;display:block;margin-block-end:3px;color:rgba(0,0,0,0.88);transition:all 0.3s;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor .ant-anchor-link-title:only-child{margin-block-end:0;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor .ant-anchor-link-active>.ant-anchor-link-title{color:#2563eb;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor .ant-anchor-link .ant-anchor-link{padding-block:2px;}:where(.css-1xohofr).ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor::before{position:absolute;inset-inline-start:0;top:0;height:100%;border-inline-start:2px solid rgba(5,5,5,0.06);content:" ";}:where(.css-1xohofr).ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor .ant-anchor-ink{position:absolute;inset-inline-start:0;display:none;transform:translateY(-50%);transition:top 0.3s ease-in-out;width:2px;background-color:#2563eb;}:where(.css-1xohofr).ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor .ant-anchor-ink.ant-anchor-ink-visible{display:inline-block;}:where(.css-1xohofr).ant-anchor-wrapper .ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink{display:none;}:where(.css-1xohofr).ant-anchor-wrapper-horizontal{position:relative;}:where(.css-1xohofr).ant-anchor-wrapper-horizontal::before{position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid rgba(5,5,5,0.06);content:" ";}:where(.css-1xohofr).ant-anchor-wrapper-horizontal .ant-anchor{overflow-x:scroll;position:relative;display:flex;scrollbar-width:none;}:where(.css-1xohofr).ant-anchor-wrapper-horizontal .ant-anchor::-webkit-scrollbar{display:none;}:where(.css-1xohofr).ant-anchor-wrapper-horizontal .ant-anchor .ant-anchor-link:first-of-type{padding-inline:0;}:where(.css-1xohofr).ant-anchor-wrapper-horizontal .ant-anchor .ant-anchor-ink{position:absolute;bottom:0;transition:left 0.3s ease-in-out,width 0.3s ease-in-out;height:2px;background-color:#2563eb;}:where(.css-1xohofr)[class^="ant-modal"],:where(.css-1xohofr)[class*=" ant-modal"]{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:14px;box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-modal"]::before,:where(.css-1xohofr)[class*=" ant-modal"]::before,:where(.css-1xohofr)[class^="ant-modal"]::after,:where(.css-1xohofr)[class*=" ant-modal"]::after{box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-modal"] [class^="ant-modal"],:where(.css-1xohofr)[class*=" ant-modal"] [class^="ant-modal"],:where(.css-1xohofr)[class^="ant-modal"] [class*=" ant-modal"],:where(.css-1xohofr)[class*=" ant-modal"] [class*=" ant-modal"]{box-sizing:border-box;}:where(.css-1xohofr)[class^="ant-modal"] [class^="ant-modal"]::before,:where(.css-1xohofr)[class*=" ant-modal"] [class^="ant-modal"]::before,:where(.css-1xohofr)[class^="ant-modal"] [class*=" ant-modal"]::before,:where(.css-1xohofr)[class*=" ant-modal"] [class*=" ant-modal"]::before,:where(.css-1xohofr)[class^="ant-modal"] [class^="ant-modal"]::after,:where(.css-1xohofr)[class*=" ant-modal"] [class^="ant-modal"]::after,:where(.css-1xohofr)[class^="ant-modal"] [class*=" ant-modal"]::after,:where(.css-1xohofr)[class*=" ant-modal"] [class*=" ant-modal"]::after{box-sizing:border-box;}:where(.css-1xohofr).ant-modal-root .ant-modal-wrap-rtl{direction:rtl;}:where(.css-1xohofr).ant-modal-root .ant-modal-centered{text-align:center;}:where(.css-1xohofr).ant-modal-root .ant-modal-centered::before{display:inline-block;width:0;height:100%;vertical-align:middle;content:"";}:where(.css-1xohofr).ant-modal-root .ant-modal-centered .ant-modal{top:0;display:inline-block;padding-bottom:0;text-align:start;vertical-align:middle;}@media (max-width: 767px){:where(.css-1xohofr).ant-modal-root .ant-modal{max-width:calc(100vw - 16px);margin:8px auto;}:where(.css-1xohofr).ant-modal-root .ant-modal-centered .ant-modal{flex:1;}}:where(.css-1xohofr).ant-modal{box-sizing:border-box;margin:0 auto;padding:0;color:rgba(0,0,0,0.88);font-size:14px;line-height:1.5714285714285714;list-style:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;pointer-events:none;position:relative;top:100px;width:auto;max-width:calc(100vw - 32px);padding-bottom:24px;}:where(.css-1xohofr).ant-modal .ant-modal-title{margin:0;color:rgba(0,0,0,0.88);font-weight:600;font-size:16px;line-height:1.5;word-wrap:break-word;}:where(.css-1xohofr).ant-modal .ant-modal-content{position:relative;background-color:#ffffff;background-clip:padding-box;border:0;border-radius:8px;box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08),0 3px 6px -4px rgba(0, 0, 0, 0.12),0 9px 28px 8px rgba(0, 0, 0, 0.05);pointer-events:auto;padding:20px 24px;}:where(.css-1xohofr).ant-modal .ant-modal-close{position:absolute;top:12px;inset-inline-end:12px;z-index:1010;padding:0;color:rgba(0,0,0,0.45);font-weight:600;line-height:1;text-decoration:none;background:transparent;border-radius:4px;width:32px;height:32px;border:0;outline:0;cursor:pointer;transition:color 0.2s,background-color 0.2s;}:where(.css-1xohofr).ant-modal .ant-modal-close-x{display:flex;font-size:16px;font-style:normal;line-height:32px;justify-content:center;text-transform:none;text-rendering:auto;}:where(.css-1xohofr).ant-modal .ant-modal-close:disabled{pointer-events:none;}:where(.css-1xohofr).ant-modal .ant-modal-close:hover{color:rgba(0,0,0,0.88);background-color:rgba(0,0,0,0.06);text-decoration:none;}:where(.css-1xohofr).ant-modal .ant-modal-close:active{background-color:rgba(0,0,0,0.15);}:where(.css-1xohofr).ant-modal .ant-modal-close:focus-visible{outline:3px solid #0049DF;outline-offset:1px;transition:outline-offset 0s,outline 0s;}:where(.css-1xohofr).ant-modal .ant-modal-header{color:rgba(0,0,0,0.88);background:#ffffff;border-radius:8px 8px 0 0;margin-bottom:8px;padding:0;border-bottom:none;}:where(.css-1xohofr).ant-modal .ant-modal-body{font-size:14px;line-height:1.5714285714285714;word-wrap:break-word;padding:0;}:where(.css-1xohofr).ant-modal .ant-modal-body .ant-modal-body-skeleton{width:100%;height:100%;display:flex;justify-content:center;align-items:center;margin:16px auto;}:where(.css-1xohofr).ant-modal .ant-modal-footer{text-align:end;background:transparent;margin-top:12px;padding:0;border-top:none;border-radius:0;}:where(.css-1xohofr).ant-modal .ant-modal-footer >.ant-btn+.ant-btn{margin-inline-start:8px;}:where(.css-1xohofr).ant-modal .ant-modal-open{overflow:hidden;}:where(.css-1xohofr).ant-modal-pure-panel{top:auto;padding:0;display:flex;flex-direction:column;}:where(.css-1xohofr).ant-modal-pure-panel .ant-modal-content,:where(.css-1xohofr).ant-modal-pure-panel .ant-modal-body,:where(.css-1xohofr).ant-modal-pure-panel .ant-modal-confirm-body-wrapper{display:flex;flex-direction:column;flex:auto;}:where(.css-1xohofr).ant-modal-pure-panel .ant-modal-confirm-body{margin-bottom:auto;}:where(.css-1xohofr).ant-modal-root .ant-modal-wrap-rtl{direction:rtl;}:where(.css-1xohofr).ant-modal-root .ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl;}:where(.css-1xohofr).ant-modal-root .ant-modal.ant-zoom-enter,:where(.css-1xohofr).ant-modal-root .ant-modal.ant-zoom-appear{transform:none;opacity:0;animation-duration:0.3s;user-select:none;}:where(.css-1xohofr).ant-modal-root .ant-modal.ant-zoom-leave .ant-modal-content{pointer-events:none;}:where(.css-1xohofr).ant-modal-root .ant-modal-mask{position:fixed;inset:0;z-index:1000;height:100%;background-color:rgba(0,0,0,0.45);pointer-events:none;}:where(.css-1xohofr).ant-modal-root .ant-modal-mask .ant-modal-hidden{display:none;}:where(.css-1xohofr).ant-modal-root .ant-modal-wrap{position:fixed;inset:0;z-index:1000;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;}:where(.css-1xohofr).ant-modal-root .ant-fade-enter,:where(.css-1xohofr).ant-modal-root .ant-fade-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-1xohofr).ant-modal-root .ant-fade-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-1xohofr).ant-modal-root .ant-fade-enter.ant-fade-enter-active,:where(.css-1xohofr).ant-modal-root .ant-fade-appear.ant-fade-appear-active{animation-name:css-1xohofr-antFadeIn;animation-play-state:running;}:where(.css-1xohofr).ant-modal-root .ant-fade-leave.ant-fade-leave-active{animation-name:css-1xohofr-antFadeOut;animation-play-state:running;pointer-events:none;}:where(.css-1xohofr).ant-modal-root .ant-fade-enter,:where(.css-1xohofr).ant-modal-root .ant-fade-appear{opacity:0;animation-timing-function:linear;}:where(.css-1xohofr).ant-modal-root .ant-fade-leave{animation-timing-function:linear;}:where(.css-1xohofr).ant-zoom-enter,:where(.css-1xohofr).ant-zoom-appear{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-1xohofr).ant-zoom-leave{animation-duration:0.2s;animation-fill-mode:both;animation-play-state:paused;}:where(.css-1xohofr).ant-zoom-enter.ant-zoom-enter-active,:where(.css-1xohofr).ant-zoom-appear.ant-zoom-appear-active{animation-name:css-1xohofr-antZoomIn;animation-play-state:running;}:where(.css-1xohofr).ant-zoom-leave.ant-zoom-leave-active{animation-name:css-1xohofr-antZoomOut;animation-play-state:running;pointer-events:none;}:where(.css-1xohofr).ant-zoom-enter,:where(.css-1xohofr).ant-zoom-appear{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(0.08, 0.82, 0.17, 1);}:where(.css-1xohofr).ant-zoom-enter-prepare,:where(.css-1xohofr).ant-zoom-appear-prepare{transform:none;}:where(.css-1xohofr).ant-zoom-leave{animation-timing-function:cubic-bezier(0.78, 0.14, 0.15, 0.86);}:where(.css-1xohofr).ant-modal-root .ant-modal{--ant-modal-sm-width:var(--ant-modal-xs-width);--ant-modal-md-width:var(--ant-modal-sm-width);--ant-modal-lg-width:var(--ant-modal-md-width);--ant-modal-xl-width:var(--ant-modal-lg-width);--ant-modal-xxl-width:var(--ant-modal-xl-width);width:var(--ant-modal-xs-width);}@media (min-width: 576px){:where(.css-1xohofr).ant-modal-root .ant-modal{width:var(--ant-modal-sm-width);}}@media (min-width: 768px){:where(.css-1xohofr).ant-modal-root .ant-modal{width:var(--ant-modal-md-width);}}@media (min-width: 992px){:where(.css-1xohofr).ant-modal-root .ant-modal{width:var(--ant-modal-lg-width);}}@media (min-width: 1200px){:where(.css-1xohofr).ant-modal-root .ant-modal{width:var(--ant-modal-xl-width);}}@media (min-width: 1600px){:where(.css-1xohofr).ant-modal-root .ant-modal{width:var(--ant-modal-xxl-width);}}@keyframes css-1xohofr-antFadeIn{0%{opacity:0;}100%{opacity:1;}}@keyframes css-1xohofr-antFadeOut{0%{opacity:1;}100%{opacity:0;}}@keyframes css-1xohofr-antZoomIn{0%{transform:scale(0.2);opacity:0;}100%{transform:scale(1);opacity:1;}}@keyframes css-1xohofr-antZoomOut{0%{transform:scale(1);}100%{transform:scale(0.2);opacity:0;}}.anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.anticon >*{line-height:1;}.anticon svg{display:inline-block;}.anticon .anticon .anticon-icon{display:block;}.anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.anticon >*{line-height:1;}.anticon svg{display:inline-block;}.anticon .anticon .anticon-icon{display:block;}.ant-layout{background-color:transparent!important;}.ant-pro-layout .ant-layout{display:flex;background-color:transparent;width:100%;}.ant-pro-layout .ant-pro-layout-content{display:flex;flex-direction:column;width:100%;background-color:transparent;position:relative;padding-block:32px;padding-inline:40px;}.ant-pro-layout .ant-pro-layout-content-has-page-container{padding:0;}.ant-pro-layout .ant-pro-layout-container{width:100%;display:flex;flex-direction:column;min-width:0;min-height:0;background-color:transparent;}.ant-pro-layout .ant-pro-layout-bg-list{pointer-events:none;position:fixed;overflow:hidden;inset-block-start:0;inset-inline-start:0;z-index:0;height:100%;width:100%;background:linear-gradient(#ffffff, #f5f5f5 28%);}.ant-pro-layout .ant-layout-header.ant-pro-layout-header{height:56px;line-height:56px;z-index:19;width:100%;padding-block:0;padding-inline:0;border-block-end:1px solid rgba(5,5,5,0.06);background-color:rgba(255, 255, 255, 0.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-fixed-header{position:fixed;inset-block-start:0;width:100%;z-index:100;inset-inline-end:0;}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-fixed-header-scroll{background-color:rgba(255, 255, 255, 0.8);}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions{display:flex;align-items:center;font-size:16;cursor:pointer;}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions .ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions-item{padding-block:0;padding-inline:8px;}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions .ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions-item:hover{color:rgba(0,0,0,0.88);}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-realDark{box-shadow:0 2px 8px 0 rgba(0, 0, 0, 65%);}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-header-actions-header-action{transition:width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);}.ant-pro-top-nav-header{position:relative;width:100%;height:100%;background-color:transparent;}.ant-pro-top-nav-header .anticon{color:inherit;}.ant-pro-top-nav-header-main{display:flex;height:100%;padding-inline-start:16px;}.ant-pro-top-nav-header-main-left{display:flex;align-items:center;}.ant-pro-top-nav-header-main-left .ant-pro-layout-apps-icon{margin-inline-end:16px;margin-inline-start:-8px;}.ant-pro-top-nav-header-wide{max-width:1152px;margin:0 auto;}.ant-pro-top-nav-header-logo{position:relative;display:flex;height:100%;align-items:center;overflow:hidden;}.ant-pro-top-nav-header-logo >*:first-child{display:flex;align-items:center;min-height:22px;font-size:22px;}.ant-pro-top-nav-header-logo >*:first-child>img{display:inline-block;height:32px;vertical-align:middle;}.ant-pro-top-nav-header-logo >*:first-child>h1{display:inline-block;margin-block:0;margin-inline:0;line-height:24px;margin-inline-start:6px;font-weight:600;font-size:16px;color:rgba(0,0,0,0.88);vertical-align:top;}.ant-pro-top-nav-header-menu{min-width:0;display:flex;align-items:center;padding-inline:6px;padding-block:6px;line-height:44px;}.ant-pro-global-header-header-actions{display:flex;height:100%;align-items:center;}.ant-pro-global-header-header-actions-item{display:inline-flex;align-items:center;justify-content:center;padding-block:0;padding-inline:2px;color:rgba(0,0,0,0.45);font-size:16px;cursor:pointer;border-radius:6px;}.ant-pro-global-header-header-actions-item >*{padding-inline:6px;padding-block:6px;border-radius:6px;}.ant-pro-global-header-header-actions-item >*:hover{background-color:rgba(0, 0, 0, 0.03);}.ant-pro-global-header-header-actions-avatar{display:inline-flex;align-items:center;justify-content:center;padding-inline-start:16px;padding-inline-end:16px;cursor:pointer;color:rgba(0,0,0,0.45);}.ant-pro-global-header-header-actions-avatar >div{height:44px;color:rgba(0,0,0,0.45);padding-inline:8px;padding-block:8px;cursor:pointer;display:flex;align-items:center;line-height:44px;border-radius:6px;}.ant-pro-global-header-header-actions-avatar >div:hover{background-color:rgba(0, 0, 0, 0.03);}.ant-pro-page-container{position:relative;}.ant-pro-page-container-children-container{padding-block-start:0;padding-block-end:32px;padding-inline:40px;}.ant-pro-page-container-children-container-no-header{padding-block-start:32px;}.ant-pro-page-container-affix .ant-affix .ant-pro-page-container-warp{background-color:#ffffff;transition:background-color 0.3s;box-shadow:0 2px 8px #f0f1f2;}.ant-pro-page-container .ant-pro-page-container-warp-page-header{padding-block-start:8px;padding-block-end:16px;padding-inline-start:40px;padding-inline-end:40px;}.ant-pro-page-container .ant-pro-page-container-warp-page-header~.ant-pro-grid-content .ant-pro-page-container-children-content{padding-block:10.666666666666666px;}.ant-pro-page-container .ant-pro-page-container-warp-page-header .ant-page-header-breadcrumb{padding-block-start:18px;}.ant-pro-page-container .ant-pro-page-container-warp-page-header .ant-page-header-heading{padding-block-start:8px;}.ant-pro-page-container .ant-pro-page-container-warp-page-header .ant-page-header-footer{margin-block-start:8px;}.ant-pro-page-container-detail{display:flex;}@media (max-width: 576px){.ant-pro-page-container-detail{display:block;}}.ant-pro-page-container-main{width:100%;}.ant-pro-page-container-row{display:flex;width:100%;}@media (max-width: 768px){.ant-pro-page-container-row{display:block;}}.ant-pro-page-container-content{flex:auto;width:100%;}.ant-pro-page-container-extraContent{flex:0 1 auto;min-width:242px;margin-inline-start:88px;text-align:end;}@media (max-width: 1200px){.ant-pro-page-container-extraContent{margin-inline-start:44px;}}@media (max-width: 992px){.ant-pro-page-container-extraContent{margin-inline-start:20px;}}@media (max-width: 768px){.ant-pro-page-container-extraContent{margin-inline-start:0;text-align:start;}}@media (max-width: 576px){.ant-pro-page-container-extraContent{margin-inline-start:0;}}.ant-page-header{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,0.88);font-size:14px;line-height:1.5714285714285714;list-style:none;position:relative;background-color:#fff;padding-block:6px;padding-inline:16px;}.ant-page-header.ant-page-header-ghost{background-color:transparent;}.ant-page-header-no-children{height:32px;}.ant-page-header.ant-page-header-has-breadcrumb{padding-block-start:12px;}.ant-page-header.ant-page-header-has-footer{padding-block-end:0;}.ant-page-header .ant-page-header-back{margin-inline-end:16px;font-size:16px;line-height:1;}.ant-page-header .ant-page-header-back-button{font-size:16px;color:rgba(0,0,0,0.88);outline:none;cursor:pointer;transition:color 0.3s;}.ant-page-header .ant-page-header-back-button:focus,.ant-page-header .ant-page-header-back-button:hover{color:#69b1ff;}.ant-page-header .ant-page-header-back-button:active{color:#0958d9;}.ant-page-header-rlt .ant-page-header .ant-page-header-back{float:right;margin-inline-end:0;margin-inline-start:0;}.ant-page-header ant-divider-vertical{height:14px;margin-block:0;margin-inline:12px;vertical-align:middle;}.ant-page-header .ant-page-header-breadcrumb+.ant-page-header-heading{margin-block-start:8px;}.ant-page-header .ant-page-header-heading{display:flex;justify-content:space-between;}.ant-page-header .ant-page-header-heading-left{display:flex;align-items:center;margin-block:4px;margin-inline-end:0;margin-inline-start:0;overflow:hidden;}.ant-page-header .ant-page-header-heading-title{margin-inline-end:12px;margin-block-end:0;color:rgba(0,0,0,0.88);font-weight:600;font-size:20px;line-height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-title{margin-inline-end:0;margin-inline-start:12px;}.ant-page-header .ant-page-header-heading-avatar{margin-inline-end:12px;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-avatar{float:right;margin-inline-end:0;margin-inline-start:12px;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-tags{float:right;}.ant-page-header .ant-page-header-heading-sub-title{margin-inline-end:12px;color:rgba(0,0,0,0.65);font-size:14px;line-height:1.5714285714285714;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-sub-title{float:right;margin-inline-end:0;margin-inline-start:12px;}.ant-page-header .ant-page-header-heading-extra{margin-block:4px;margin-inline-end:0;margin-inline-start:0;white-space:nowrap;}.ant-page-header .ant-page-header-heading-extra >*{white-space:unset;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-extra >*{margin-inline-end:12px;margin-inline-start:0;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-extra{float:left;}.ant-page-header-rlt .ant-page-header .ant-page-header-heading-extra *:first-child{margin-inline-end:0;}.ant-page-header-content{padding-block-start:12px;}.ant-page-header-footer{margin-block-start:16px;}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap;}.ant-page-header-wide{max-width:1152px;margin:0 auto;}.ant-page-header-rtl{direction:rtl;}.ant-pro-grid-content{width:100%;}.ant-pro-grid-content-wide{max-width:1152px;margin:0 auto;}.data-ant-cssinjs-cache-path{content:"1g3r1lh|ant-design-icons|anticon:c2pd8u;11bn5ll|ant-design-icons|anticon:1i10n6t;133kysn|ProLayout:1u2alug;11bn5ll|Shared|ant:fadq2n;11bn5ll|Layout-Layout|ant-layout|anticon:16bu78o;133kysn|ProLayoutHeader:1jwyogm;133kysn|ProLayoutHeaderStylish:1wjgkr2;1jqs50c|Shared|ant:4ferfz;1jqs50c|Layout-Layout|ant-layout|anticon:f9x9n8;133kysn|ProLayoutTopNavHeader:1yhtjle;133kysn|ProLayoutRightContent:o9daay;1jqs50c|Dropdown-Dropdown|ant-dropdown|anticon:nsl0x1;1jqs50c|Tooltip-Tooltip|ant-tooltip|anticon:1yy8bak;1jqs50c|Drawer-Drawer|ant-drawer|anticon:dsubtk;1jqs50c|Button-Button|ant-btn|anticon:i50biy;133kysn|ProLayoutPageContainer:1g12r2f;133kysn|ProLayoutPageContainerStylish:e1q26s;133kysn|ProLayoutPageHeader:1gpntmz;133kysn|ProLayoutGridContent:110sobs;11bn5ll|Anchor-Anchor|ant-anchor|anticon:1cxga8i;11bn5ll|Modal-Modal|ant-modal|anticon:2ortok";}</style><style>* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; }
.app-loading { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #fcfcfc; }
.app-loading-spinner { width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid #1890ff; border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ssr-nav-progress { 0% { transform: translateX(-100%); } 100% { transform: translateX(350%); } }
.ant-pro-layout { min-height: 100vh; }</style><style>@font-face{font-family:OldStandardTT-Bold;src:url(/static/OldStandardTT-Bold-QrSDH864.woff2) format("woff2"),url(/static/OldStandardTT-Bold-DX0388vX.woff) format("woff");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:OldStandardTT-Bold-Fallback;src:local("Georgia Bold"),local("Georgia-Bold"),local("Georgia");font-weight:400;size-adjust:91.76%;ascent-override:83.05%;descent-override:25.94%;line-gap-override:25.72%}@font-face{font-family:OldStandardTT-Regular;src:url(/static/OldStandardTT-Regular-DeGJQNzL.woff2) format("woff2"),url(/static/OldStandardTT-Regular-BfD33lbI.woff) format("woff");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:OldStandardTT-Regular-Fallback;src:local("Georgia");font-weight:400;size-adjust:103.67%;ascent-override:73.5%;descent-override:22.96%;line-gap-override:22.76%}body{margin:0;overflow-y:scroll;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;position:relative;background:#fcfcfc}ul{padding:0;margin:0}li{list-style-type:none}pre{border-radius:16px;margin:0!important;background:#f5f5f5!important}#root{height:100vh;display:flex;flex-direction:column;align-items:center}body::-webkit-scrollbar{display:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-content{padding:4px}.small-icon .icon{font-size:1em!important}.custom-footer{font-size:1.1em}@media only screen and (max-width:600px){.hide-on-mobile{display:none!important}}.ant-pro-layout .ant-pro-layout-bg-list{background:#fcfcfc}div.ant-pro-checkcard-title{align-items:flex-start}.ant-menu-item-selected{color:#1668dc!important}.ant-modal-content .ant-modal-body{padding-top:16px}a{color:#4096ff}.ant-design-pro{width:100%}.ant-input-affix-wrapper>input.ant-input,.ant-input-affix-wrapper>textarea.ant-input{font-size:14px}.ant-pro-form-login-logo{height:40px}.ant-pro-checkcard{margin-block-end:0}.ant-page-header-no-children{height:0px}.echarts-tooltip{height:500px;overflow-y:auto}.ant-pro-layout .ant-layout-header:first-child{height:64px!important}.ant-pro-layout .ant-layout-header.ant-pro-layout-header-fixed-header{position:fixed;inset-inline:0;left:0;transform:none;margin:0;width:100%;max-width:none;height:64px;line-height:normal;--ahm-header-p: var(--ahm-header-progress, 0);background:rgb(255 255 255 / calc(.8 * var(--ahm-header-p)));backdrop-filter:saturate(calc(100% + 80% * var(--ahm-header-p))) blur(calc(16px * var(--ahm-header-p)));-webkit-backdrop-filter:saturate(calc(100% + 80% * var(--ahm-header-p))) blur(calc(16px * var(--ahm-header-p)));border-bottom:0;border-radius:0;box-shadow:0 .5px rgb(17 17 17 / calc(.08 * var(--ahm-header-p)));transition-property:background-color,backdrop-filter,-webkit-backdrop-filter,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(.22,1,.36,1)}@media(prefers-reduced-motion:reduce){.ant-pro-layout .ant-layout-header.ant-pro-layout-header-fixed-header{transition:none}}.ant-pro-top-nav-header-main.ant-pro-top-nav-header-wide{--ahm-shell-gutter: 24px;box-sizing:border-box;width:100%;max-width:none!important;margin-inline:0;padding-inline:var(--ahm-shell-gutter)}.ant-pro-top-nav-header-main .ant-pro-top-nav-header-menu{padding:0!important}.ant-pro-grid-content.ant-pro-grid-content-wide,.ant-pro-page-header.ant-pro-page-header-wide{max-width:1280px!important}.ahm-topbar{display:flex;align-items:center;gap:24px;width:100%;min-width:0}.brand-logo{--brand-logo-width: 110px;--brand-logo-height: 24px;display:inline-block;width:var(--brand-logo-width);height:var(--brand-logo-height);flex:0 0 var(--brand-logo-width);vertical-align:middle;line-height:0}.brand-logo img{width:100%;height:100%;object-fit:contain;object-position:left center}.brand-logo .brand-logo-light{display:block}.ahm-brand{display:flex;align-items:center;gap:9px;cursor:pointer;flex-shrink:0;color:#111;text-decoration:none}.ahm-brand:hover{color:#111}.ahm-brand:focus-visible{outline:none;border-radius:10px;box-shadow:0 0 0 3px #2563eb4d}.ahm-topnav{display:flex;align-items:center;gap:2px;min-width:0;margin-inline-start:auto;overflow-x:auto;scrollbar-width:none}.ahm-topnav::-webkit-scrollbar{display:none}.ahm-topnav a{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:10px;color:#353941;font-size:14px;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s cubic-bezier(.2,0,0,1),color .15s cubic-bezier(.2,0,0,1)}.ahm-topnav a:hover{background:#1111110a;color:#111}.ahm-topnav a:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb4d}@media only screen and (max-width:767px){.ant-pro-top-nav-header-main.ant-pro-top-nav-header-wide{--ahm-shell-gutter: 12px;padding-inline:12px}.ahm-topnav{display:none}}.ant-pro-global-header .ant-pro-global-header-collapsed-button{display:none}body.ahm-menu-open .ant-pro-layout .ant-layout-header.ant-pro-layout-header-fixed-header{--ahm-header-p: 1;box-shadow:none}body.ahm-menu-open .ahm-cookie-banner{display:none}@media only screen and (max-width:767px){.ant-pro-global-header .ant-pro-global-header-header-actions-avatar{display:none}}.ahm-header-auth.ant-btn{min-width:60px;padding-inline:8px}.ahm-header-auth .ahm-auth-icon{display:none}@media only screen and (max-width:479px){.ahm-header-auth.ant-btn{min-width:32px;width:32px;padding-inline:4px}.ahm-header-auth .ahm-auth-label{display:none}.ahm-header-auth .ahm-auth-icon{display:inline-flex}}.ant-pro-table-list-toolbar-container{padding-block:24px}.ant-alert .ant-alert-close-icon{margin-top:4px}.ant-pro-checkcard,.ant-card{box-shadow:0 2px 8px #0000000f;border:.5px solid rgba(0,0,0,.1)}.ant-pro-checkcard-header{align-items:flex-start}div.ant-pro-checkcard-content{padding-inline:16px;padding-block:16px 8px}.ant-pro-checkcard-header-left,.ant-pro-list-row-header{width:100%;display:block}.ant-tag-checkable{background:#ffffff1a;border-radius:8px;border:1px solid rgba(0,0,0,.1);margin-right:16px;margin-bottom:8px}.ant-table-container{border:1px solid #EEEEEE;border-radius:8px}.ant-tag-checkable-checked{background:#2563eb;border-radius:8px}.ant-pro-list-row-card .ant-list-item-meta-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ant-drawer .ant-drawer-header{border-bottom:0px solid #EEEEEE}.ant-tag.ant-tag-cyan{color:#16bad9;background:#26cceb1a;border-color:#26cceb}.ant-tag.ant-tag-magenta{color:#eb267b;background:#eb267b1a;border-color:#eb267b}.ant-pro-global-header-header-actions-avatar{padding-inline-start:0}.ant-pro-global-header-header-actions-avatar .ant-dropdown-trigger span:not(.ant-avatar){max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-back-top{inset-inline-end:24px!important;inset-block-end:24px!important}.ant-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon{width:auto}.footer{display:flex;flex-direction:column;gap:32px;max-width:1280px;margin-inline:auto;padding-block:48px;color:#626773}.footer-brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.footer-brand-name{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;color:#1a1a1a}.footer-copyright{font-size:14px;line-height:20px;color:#9ca3af;margin:0}.footer-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.footer-column-title{font-size:14px;line-height:22px;font-weight:600;color:#1a1a1a;margin:0 0 12px}.footer-column-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.footer-column-list li a{display:inline-block;overflow-wrap:anywhere;font-size:14px;line-height:22px;color:#626773;text-decoration:none;transition:color .15s}.footer-column-list li a:hover{color:#1a1a1a}.footer-social{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:2px 0 0 -8px;padding:0}.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:#626773;transition:color var(--ah-duration-fast, .15s) var(--ah-ease-standard, ease),background-color var(--ah-duration-fast, .15s) var(--ah-ease-standard, ease)}.footer-social a:hover{color:#1a1a1a;background:#3539410f}.footer-social a:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.footer-column{min-width:0}.footer-privacy-choices{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:0;border:0;background:none;color:#626773;font:inherit;font-size:14px;line-height:22px;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer;overflow-wrap:anywhere}.footer-privacy-choices:hover{color:#1a1a1a}.footer-privacy-choices:focus-visible{outline:2px solid #2563eb;outline-offset:4px}.footer-privacy-choices .anticon{flex-shrink:0}.footer-column-title{overflow-wrap:anywhere}.footer-column-list a:focus-visible{outline:2px solid #2563eb;outline-offset:4px}@media(min-width:768px){.footer-columns{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;gap:32px}}@media(min-width:1024px){.footer{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:64px}.footer-brand{flex:0 0 220px;min-width:0}.footer-columns{flex:0 1 820px;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.25fr);grid-auto-flow:row}}@media(max-width:767px){.footer{padding-block:48px}.footer-columns{display:block;columns:2;column-gap:24px}.footer-column{break-inside:avoid;margin-bottom:32px}.footer-column-list{gap:0}.footer-column-list a,.footer-privacy-choices{padding-block:10px;min-height:44px}.footer-social a{width:44px;height:44px}.footer-social{margin-left:-13px}}</style><style id="ssr-styled">.kMgEVL{width:100%;max-width:calc(1040px + 2 * var(--ah-space-6,24px));margin-inline:auto;padding-inline:var(--ah-space-6,24px);padding-block:16px 80px;color:#1a1a1a;}/*!sc*/
@media (max-width:639px){.kMgEVL{padding-inline:var(--ah-space-4,16px);}}/*!sc*/
data-styled.g368[id="sc-1c0xtl9-0"]{content:"kMgEVL,"}/*!sc*/
.jpnGFj{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;}/*!sc*/
data-styled.g369[id="sc-1c0xtl9-1"]{content:"jpnGFj,"}/*!sc*/
.feFHco{font-size:14px;color:#888;}/*!sc*/
.feFHco a{color:#888;cursor:pointer;}/*!sc*/
.feFHco a:hover{color:#2563eb;}/*!sc*/
data-styled.g370[id="sc-1c0xtl9-2"]{content:"feFHco,"}/*!sc*/
.Bwa-Do{font-size:clamp(32px,3.4vw,44px);font-weight:700;line-height:1.15;letter-spacing:-0.02em;margin:0 0 16px;text-wrap:balance;}/*!sc*/
@media (max-width:560px){.Bwa-Do{font-size:28px;}}/*!sc*/
data-styled.g371[id="sc-1c0xtl9-3"]{content:"Bwa-Do,"}/*!sc*/
.gGIGKA{font-size:14px;color:#888;margin-bottom:28px;}/*!sc*/
.gGIGKA>*+*::before{content:'·';margin:0 6px;}/*!sc*/
data-styled.g373[id="sc-1c0xtl9-5"]{content:"gGIGKA,"}/*!sc*/
.dHXlSg{width:100%;aspect-ratio:1.9/1;object-fit:cover;border-radius:16px;border:1px solid #f0f0f0;margin-bottom:36px;}/*!sc*/
data-styled.g374[id="sc-1c0xtl9-6"]{content:"dHXlSg,"}/*!sc*/
.jonNQo{font-size:16px;line-height:1.75;color:#2a2a2a;overflow-wrap:break-word;}/*!sc*/
.jonNQo >*:first-child{margin-top:0;}/*!sc*/
.jonNQo h2{font-size:24px;font-weight:650;color:#1a1a1a;margin:40px 0 14px;letter-spacing:-0.01em;}/*!sc*/
.jonNQo h3{font-size:19px;font-weight:600;color:#1a1a1a;margin:32px 0 10px;}/*!sc*/
.jonNQo p{margin:0 0 18px;}/*!sc*/
.jonNQo a{color:#2563eb;text-decoration:none;border-bottom:1px solid rgba(37,99,235,0.25);transition:border-color 0.15s ease-out;}/*!sc*/
.jonNQo a:hover{border-bottom-color:#2563eb;}/*!sc*/
.jonNQo strong{font-weight:600;color:#1a1a1a;}/*!sc*/
.jonNQo ul,.jonNQo ol{padding-left:24px;margin:0 0 18px;}/*!sc*/
.jonNQo li{margin:6px 0;list-style-type:inherit;}/*!sc*/
.jonNQo li::marker{color:#94a3b8;}/*!sc*/
.jonNQo blockquote{margin:24px 0;padding:8px 20px;border-left:3px solid #2563eb;background:rgba(37,99,235,0.04);border-radius:0 8px 8px 0;color:#444;}/*!sc*/
.jonNQo blockquote p:last-child{margin-bottom:0;}/*!sc*/
.jonNQo hr{border:none;border-top:1px solid #eee;margin:36px 0;}/*!sc*/
.jonNQo code{font-family:'SF Mono',SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;background:#f3f4f6;color:#334155;padding:2px 6px;border-radius:4px;overflow-wrap:anywhere;}/*!sc*/
.jonNQo.jonNQo pre{background:#ffffff!important;color:#1f2937;border:1px solid #e5e7eb;border-radius:10px;padding:18px 20px;overflow-x:auto;margin:0 0 22px!important;}/*!sc*/
.jonNQo.jonNQo pre code{background:transparent;color:#334155;padding:0;border-radius:0;font-size:13.5px;line-height:1.65;}/*!sc*/
.jonNQo .blog-table-scroll{max-width:100%;overflow-x:auto;margin:0 0 22px;}/*!sc*/
.jonNQo table{border-collapse:collapse;width:100%;margin:0 0 22px;font-size:15px;}/*!sc*/
.jonNQo .blog-table-scroll>table{margin:0;}/*!sc*/
.jonNQo th,.jonNQo td{border:1px solid #e5e7eb;padding:9px 14px;text-align:left;}/*!sc*/
.jonNQo th{background:#f9fafb;font-weight:600;color:#1a1a1a;}/*!sc*/
.jonNQo tr:nth-child(even) td{background:#fcfcfd;}/*!sc*/
.jonNQo img{max-width:100%;height:auto;border-radius:10px;}/*!sc*/
.jonNQo figure{margin:28px 0;}/*!sc*/
.jonNQo .kg-image-card img,.jonNQo .kg-gallery-image img{border:1px solid #f0f0f0;}/*!sc*/
.jonNQo figcaption{font-size:13px;color:#888;text-align:center;margin-top:10px;}/*!sc*/
.jonNQo .kg-embed-card{position:relative;}/*!sc*/
.jonNQo .kg-embed-card iframe{width:100%;aspect-ratio:16/9;height:auto;border:none;border-radius:10px;}/*!sc*/
.jonNQo .kg-video-card video{width:100%;border-radius:10px;}/*!sc*/
.jonNQo .kg-bookmark-card a{display:block;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;color:#1a1a1a;border-bottom-width:1px;transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;}/*!sc*/
.jonNQo .kg-bookmark-card a:hover{border-color:rgba(37,99,235,0.35);box-shadow:0 6px 20px rgba(37,99,235,0.08);}/*!sc*/
.jonNQo .kg-callout-card{display:flex;gap:10px;border-radius:10px;padding:14px 16px;margin:24px 0;background:#f8fafc;}/*!sc*/
data-styled.g375[id="sc-1c0xtl9-7"]{content:"jonNQo,"}/*!sc*/
.jsOPmD{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:72px;}/*!sc*/
@media (max-width:1024px){.jsOPmD{grid-template-columns:minmax(0,1fr);gap:0;}}/*!sc*/
.jsOPmD [id]{scroll-margin-top:88px;}/*!sc*/
data-styled.g376[id="sc-1c0xtl9-8"]{content:"jsOPmD,"}/*!sc*/
.cslRFF{min-width:0;}/*!sc*/
data-styled.g377[id="sc-1c0xtl9-9"]{content:"cslRFF,"}/*!sc*/
.cpcDux{position:sticky;top:88px;display:flex;flex-direction:column;max-height:calc(100vh - 120px - 24px);}/*!sc*/
@media (max-width:1024px){.cpcDux{display:none;}}/*!sc*/
.cpcDux.cpcDux .ant-anchor::before,.cpcDux.cpcDux .ant-anchor-ink{display:none!important;}/*!sc*/
.cpcDux.cpcDux .ant-anchor-link{padding:0;}/*!sc*/
.cpcDux.cpcDux .ant-anchor-link-title{display:block;padding:5px 10px;border-radius:8px;color:#626773;font-size:13.5px;line-height:1.45;white-space:normal;transition:background-color 0.15s ease,color 0.15s ease;}/*!sc*/
.cpcDux.cpcDux .ant-anchor-link .ant-anchor-link .ant-anchor-link-title{padding-left:24px;font-size:13px;}/*!sc*/
.cpcDux.cpcDux .ant-anchor-link-title:hover{background:rgba(17,17,17,0.05);color:#111111;}/*!sc*/
.cpcDux.cpcDux .ant-anchor-link-active>.ant-anchor-link-title{color:#111111;font-weight:600;}/*!sc*/
data-styled.g378[id="sc-1c0xtl9-10"]{content:"cpcDux,"}/*!sc*/
.hxUGEH{font-size:12.5px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:#999;padding:0 10px;margin-bottom:8px;}/*!sc*/
data-styled.g379[id="sc-1c0xtl9-11"]{content:"hxUGEH,"}/*!sc*/
.dmMZCQ{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;}/*!sc*/
data-styled.g380[id="sc-1c0xtl9-12"]{content:"dmMZCQ,"}/*!sc*/
.ifprbj{flex:none;margin-top:16px;padding:20px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;}/*!sc*/
.ifprbj:first-child{margin-top:0;}/*!sc*/
.ifprbj .brand-logo{display:block;margin-bottom:14px;}/*!sc*/
data-styled.g381[id="sc-1c0xtl9-13"]{content:"ifprbj,"}/*!sc*/
.gijIP{font-size:15px;font-weight:600;line-height:1.4;color:#1a1a1a;margin:0 0 16px;}/*!sc*/
data-styled.g382[id="sc-1c0xtl9-14"]{content:"gijIP,"}/*!sc*/
.czYpSp{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:#2563eb;color:#fff;font:inherit;font-size:14px;font-weight:500;line-height:20px;text-decoration:none;cursor:pointer;transition:background-color 0.15s ease;}/*!sc*/
.czYpSp:hover{background:#1d4ed8;color:#fff;}/*!sc*/
.czYpSp:active{background:#0049df;color:#fff;}/*!sc*/
.czYpSp:focus-visible{outline:2px solid #2563eb;outline-offset:2px;}/*!sc*/
data-styled.g383[id="sc-1c0xtl9-15"]{content:"czYpSp,"}/*!sc*/
.hUosnH{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:48px;padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;}/*!sc*/
.hUosnH .brand-logo{display:block;margin-bottom:10px;}/*!sc*/
@media (max-width:560px){.hUosnH{flex-direction:column;align-items:stretch;gap:16px;}}/*!sc*/
data-styled.g384[id="sc-1c0xtl9-16"]{content:"hUosnH,"}/*!sc*/
.cebqkZ{margin:0;font-size:16px;font-weight:600;line-height:1.45;color:#1a1a1a;white-space:pre-line;text-wrap:pretty;}/*!sc*/
data-styled.g385[id="sc-1c0xtl9-17"]{content:"cebqkZ,"}/*!sc*/
.cMkKAz{width:auto;flex:none;padding:7px 16px;}/*!sc*/
@media (max-width:560px){.cMkKAz{width:100%;}}/*!sc*/
data-styled.g386[id="sc-1c0xtl9-18"]{content:"cMkKAz,"}/*!sc*/
.DWxSg{margin-top:56px;padding-top:28px;border-top:1px solid #f0f0f0;}/*!sc*/
data-styled.g387[id="sc-1c0xtl9-19"]{content:"DWxSg,"}/*!sc*/
.bdVRff{font-size:18px;font-weight:650;margin:0 0 18px;}/*!sc*/
data-styled.g388[id="sc-1c0xtl9-20"]{content:"bdVRff,"}/*!sc*/
.bXzQsu{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;}/*!sc*/
data-styled.g389[id="sc-1c0xtl9-21"]{content:"bXzQsu,"}/*!sc*/
.jlSeMr{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow 0.2s ease-out,border-color 0.2s ease-out;}/*!sc*/
.jlSeMr:hover{border-color:rgba(37,99,235,0.35);box-shadow:0 8px 24px rgba(37,99,235,0.1);}/*!sc*/
.jlSeMr:hover h3{color:#2563eb;}/*!sc*/
data-styled.g390[id="sc-1c0xtl9-22"]{content:"jlSeMr,"}/*!sc*/
.kdkCIq{aspect-ratio:16/9;background:linear-gradient(135deg,rgba(37,99,235,0.08),rgba(37,99,235,0.02));overflow:hidden;}/*!sc*/
.kdkCIq img{width:100%;height:100%;object-fit:cover;}/*!sc*/
data-styled.g391[id="sc-1c0xtl9-23"]{content:"kdkCIq,"}/*!sc*/
.jiOOqg{padding:12px 14px 14px;}/*!sc*/
.jiOOqg h3{font-size:14.5px;font-weight:600;line-height:1.4;color:#1a1a1a;margin:0 0 6px;transition:color 0.15s ease-out;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}/*!sc*/
.jiOOqg time{font-size:12.5px;color:#888;}/*!sc*/
data-styled.g392[id="sc-1c0xtl9-24"]{content:"jiOOqg,"}/*!sc*/
</style><link rel="stylesheet" href="/static/legacy-shell-D_FsbdFd.css#"/></head><body><div aria-hidden="true" style="position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .25s;overflow:hidden"><div style="height:100%;width:30%;background:#2563EB;border-radius:2px;animation:none"></div></div><div class="css-1xohofr ant-design-pro ant-pro-layout ant-pro-layout-top-menu ant-pro-layout-fix-siderbar ant-pro-layout-top"><div class="ant-pro-layout-bg-list css-1xohofr"></div><div class="ant-layout css-1xohofr" style="min-height:100%"><div style="position:relative" class="ant-pro-layout-container css-1xohofr"><header class="ant-layout-header css-18nm6z4" style="height:56px;line-height:56px;background-color:transparent;z-index:19"></header><header class="ant-layout-header css-1xohofr ant-pro-layout-header ant-pro-layout-header-fixed-header ant-pro-layout-header-fixed-header-action ant-pro-layout-header-top-menu ant-pro-layout-header-header css-18nm6z4"><div class="ant-pro-top-nav-header css-18nm6z4 ant-pro-top-nav-header-light"><div class="ant-pro-top-nav-header-main css-18nm6z4 ant-pro-top-nav-header-wide"><div style="flex:1" class="ant-pro-top-nav-header-menu css-18nm6z4"><div class="ahm-topbar"><a class="ahm-brand" href="/" aria-label="AIHubMix"><span class="brand-logo"><img class="brand-logo-light" src="/brand/light.svg?v=20260909" width="110" height="24" alt="AIHubMix"/></span></a><nav class="ahm-topnav"><a href="/models">Models</a><a href="https://aihubmix.com/playground" target="_blank" rel="noopener noreferrer">Playground</a><a href="/ecosystem">Ecosystem</a><a href="https://enterprise.aihubmix.com" target="_blank" rel="noopener noreferrer">Enterprise</a><a href="https://docs.aihubmix.com/en" target="_blank" rel="noopener noreferrer">Docs</a><a href="https://console.aihubmix.com/statistics" target="_blank" rel="noopener noreferrer nofollow">Dashboard</a></nav></div></div><div class="ant-pro-global-header-right-content css-18nm6z4" style="min-width:auto;height:100%"><div style="height:100%"><div style="display:flex;align-items:center;height:100%;justify-content:flex-end"><div class="ant-pro-global-header-header-actions css-18nm6z4"><div class="ant-pro-global-header-header-actions-item css-18nm6z4 ant-pro-global-header-header-actions-hover"><button type="button" class="ant-dropdown-trigger ahm-language-trigger ahm-header-icon-button" aria-label="Language"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon ahm-header-icon"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM9.71002 19.6674C8.74743 17.6259 8.15732 15.3742 8.02731 13H4.06189C4.458 16.1765 6.71639 18.7747 9.71002 19.6674ZM10.0307 13C10.1811 15.4388 10.8778 17.7297 12 19.752C13.1222 17.7297 13.8189 15.4388 13.9693 13H10.0307ZM19.9381 13H15.9727C15.8427 15.3742 15.2526 17.6259 14.29 19.6674C17.2836 18.7747 19.542 16.1765 19.9381 13ZM4.06189 11H8.02731C8.15732 8.62577 8.74743 6.37407 9.71002 4.33256C6.71639 5.22533 4.458 7.8235 4.06189 11ZM10.0307 11H13.9693C13.8189 8.56122 13.1222 6.27025 12 4.24799C10.8778 6.27025 10.1811 8.56122 10.0307 11ZM14.29 4.33256C15.2526 6.37407 15.8427 8.62577 15.9727 11H19.9381C19.542 7.8235 17.2836 5.22533 14.29 4.33256Z"></path></svg></button></div><div class="ant-pro-global-header-header-actions-item css-18nm6z4 ant-pro-global-header-header-actions-hover"><button type="button" class="ahm-notification-trigger ahm-header-icon-button" aria-label="Inbox" aria-haspopup="dialog" aria-expanded="false" aria-describedby="_R_3jfaq6lbddlr5_"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" focusable="false" class="remixicon ahm-header-icon"><path d="M22 20H2V18H3V11.0314C3 6.04348 7.02944 2 12 2C16.9706 2 21 6.04348 21 11.0314V18H22V20ZM5 18H19V11.0314C19 7.14806 15.866 4 12 4C8.13401 4 5 7.14806 5 11.0314V18ZM9.5 21H14.5C14.5 22.3807 13.3807 23.5 12 23.5C10.6193 23.5 9.5 22.3807 9.5 21Z"></path></svg></button></div><div class="ant-pro-global-header-header-actions-item css-18nm6z4 ant-pro-global-header-header-actions-hover"><button aria-label="Sign in" title="Sign in" type="button" class="ant-btn css-18nm6z4 ant-btn-link ant-btn-color-link ant-btn-variant-link ahm-header-auth"><span role="img" aria-label="login" class="anticon anticon-login ahm-auth-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="login" width="1em" height="1em" fill="currentColor" aria-hidden="true"><defs><style></style></defs><path d="M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 01520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 01270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 010 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z"></path></svg></span><span class="ahm-auth-label">Sign in</span></button></div></div></div></div></div></div></div></header><main class="ant-layout-content ant-pro-layout-content css-1xohofr ant-pro-layout-has-header css-1xohofr" style="padding:0"><div class="ant-pro-page-container css-1xohofr"><div class="css-1xohofr ant-page-header-no-children"></div><div class="ant-pro-grid-content css-1xohofr ant-pro-grid-content-wide"><div class="ant-pro-grid-content-children css-1xohofr"><div class="css-1xohofr ant-pro-page-container-children-container" style="padding-inline:0;padding-block-end:0;padding-block-start:40px"><div class="sc-1c0xtl9-0 kMgEVL"><div class="sc-1c0xtl9-8 jsOPmD"><div class="sc-1c0xtl9-9 cslRFF"><div class="sc-1c0xtl9-1 jpnGFj"><nav class="sc-1c0xtl9-2 feFHco"><a href="/blog" data-discover="true">Blog</a></nav></div><h1 class="sc-1c0xtl9-3 Bwa-Do">How to Create an AI Product Ad with Claude Code and AIHubMix</h1><div class="sc-1c0xtl9-5 gGIGKA"><span>AIHubMix</span><time dateTime="2026-09-16T15:29:07.000+00:00">September 16, 2026</time><span>9 min read</span></div><img src="https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png" alt="How to Create an AI Product Ad with Claude Code and AIHubMix" fetchPriority="high" class="sc-1c0xtl9-6 dHXlSg"/><article data-blog-article="true" class="sc-1c0xtl9-7 jonNQo"><p>With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register them as virtual-person assets, and use Seedance to create an AI product ad.</p><p>This tutorial is based on a real aloe-mist campaign and includes the project structure, configuration, commands, and complete video prompt. The target output is a&nbsp;<strong>20-second, 720p, 9:16 vertical ad</strong>&nbsp;with an AI-generated person and setting.</p><p>Claude Code and AIHubMix power the full workflow. Claude Code reads the project brief, revises prompts, and organizes execution. AIHubMix provides one model entry point so image and video generation can operate inside the same project.</p><blockquote>Model IDs, parameters, and error handling come from a project snapshot dated September 16, 2026. Check the current API before reusing them. Commands use the included&nbsp;<code>flow.py</code>&nbsp;and must be run from the project root.</blockquote><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/HrbO2x3DixE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="20 s"></iframe></figure><h2 id="download-the-complete-starter">Download the Complete Starter</h2><p>Download the code, prompts, configuration, and sample images:</p><p><a href="https://drive.google.com/uc?export=download&id=1nXcj26Fq3daHeTd0SynS7_QEXgH8z4u_">https://drive.google.com/uc?export=download&amp;id=1nXcj26Fq3daHeTd0SynS7_QEXgH8z4u_</a></p><p>After extracting it, enter the&nbsp;<code>seedance-starter</code>&nbsp;directory. The package includes&nbsp;<code>flow.py</code>, two schema snapshots, five prompt files, the product image, and three reference images. The Python script uses only the standard library.</p><ul><li><strong>Start with the video stage:</strong>&nbsp;use the three included references, configure your key, and begin with Step 4.</li><li><strong>Start with your own product:</strong>&nbsp;replace the product image and prompt details, move the included reference images out of&nbsp;<code>assets/</code>, and begin with Step 3.</li></ul><p>Copy&nbsp;<code>.env.example</code>&nbsp;to&nbsp;<code>.env</code>&nbsp;and add your own API key. Your account needs access to the relevant models, any required asynchronous-task permission, and sufficient quota. API generation incurs usage charges.</p><h2 id="1-prepare-the-product-image-and-project">1. Prepare the Product Image and Project</h2><p>The example product is Nature Republic Aloe Vera Mist. When adapting the workflow, update the image, product description, and use action together.</p>
<!--kg-card-begin: html-->
<div class="blog-table-scroll"><table data-line="29" class="code-line" dir="auto" style="border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, &quot;system-ui&quot;, &quot;Segoe WPC&quot;, &quot;Segoe UI&quot;, system-ui, Ubuntu, &quot;Droid Sans&quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><thead data-line="29" class="code-line" dir="auto"><tr data-line="29" class="code-line" dir="auto"><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">File</th><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Purpose</th></tr></thead><tbody data-line="31" class="code-line" dir="auto"><tr data-line="31" class="code-line" dir="auto"><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">assets/product.png</code></td><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">Original product image</td></tr><tr data-line="32" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">prompts/prompt-a.txt</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Main character portrait prompt</td></tr><tr data-line="33" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">prompts/prompt-b.txt</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Character-holding-product prompt</td></tr><tr data-line="34" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">prompts/prompt-c.txt</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Product-use prompt</td></tr><tr data-line="35" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">prompts/prompt-video.txt</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Video timeline, camera, and audio requirements</td></tr><tr data-line="36" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">prompts.json</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Dimensions, duration, reference dependencies, and prompt paths</td></tr><tr data-line="37" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">flow.py</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">API requests, asset registration, polling, and downloads</td></tr><tr data-line="38" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);"><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">seedream.schema.json</code>,<span>&nbsp;</span><code style="font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;">seedance.schema.json</code></td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Cached API schema snapshots</td></tr></tbody></table></div>
<!--kg-card-end: html-->
<p>Claude Code helps read the project brief and revise configuration and prompts.&nbsp;<code>flow.py</code>&nbsp;sends the actual requests through AIHubMix.</p><h3 id="why-aihubmix-fits-this-workflow">Why AIHubMix Fits This Workflow</h3><p>An AI product-ad workflow usually needs more than one model. An image model creates the person and product references; a video model creates movement and camera behavior. AIHubMix covers most mainstream models, so you can select models by task through one API service instead of maintaining separate accounts, authentication, and request entry points for every provider.</p><p>AIHubMix also connects to multiple suppliers and automatically selects an available low-latency route. This can reduce the effect of a single supplier's instability on a workflow that must complete image generation, asset processing, and video generation in sequence. Model availability, routing, and response time still depend on current service conditions.</p><p>Create&nbsp;<code>.env</code>&nbsp;in the project root, or provide the same variable in your environment:</p><pre><code class="language-dotenv">AIHUBMIX_API_KEY=replace_with_your_api_key
</code></pre><p>The project excludes&nbsp;<code>.env</code>&nbsp;through&nbsp;<code>.gitignore</code>. Share only the variable name and example, never the real key.</p><figure class="kg-card kg-image-card"><img src="https://aihubmix.com/blog-media/images/2026/09/db64b993947a4729.png" class="kg-image" alt="" loading="lazy" width="1672" height="941"></figure><p><em>The entire workflow begins with one clear product image.</em></p><h2 id="2-set-the-output-target-and-separate-image-from-video-parameters">2. Set the Output Target and Separate Image from Video Parameters</h2><p>The relevant part of&nbsp;<code>prompts.json</code>&nbsp;looks like this. Keep the existing&nbsp;<code>stills</code>&nbsp;array and other fields when editing the real file.</p><pre><code class="language-json">{
  "size": "1080x1920",
  "aspect_ratio": "9:16",
  "duration": 20,
  "resolution": "720p",
  "generate_audio": true,
  "video_prompt_file": "prompts/prompt-video.txt"
}
</code></pre><p><code>size</code>&nbsp;belongs to image generation.&nbsp;<code>aspect_ratio</code>,&nbsp;<code>duration</code>,&nbsp;<code>resolution</code>, and&nbsp;<code>generate_audio</code>&nbsp;belong to video generation. The script builds separate requests rather than sending the entire configuration object to both endpoints.</p><p>The project uses these model IDs:</p><ul><li>Seedream:&nbsp;<code>doubao-seedream-5-0-pro-260628</code></li><li>Seedance:&nbsp;<code>doubao-seedance-2-5-260628</code></li></ul><p>The bundled schema snapshots show that the image endpoint accepts&nbsp;<code>size</code>, while the video endpoint accepts&nbsp;<code>aspect_ratio</code>. Mixing them causes a rejection.&nbsp;<code>flow.py</code>&nbsp;checks cached schema properties before sending a request, but this is not complete parameter validation.</p><h2 id="3-generate-the-three-character-references-in-order">3. Generate the Three Character References in Order</h2><p>Each image has a different role, and later images depend on earlier ones:</p>
<!--kg-card-begin: html-->
<div class="blog-table-scroll"><table data-line="88" class="code-line" dir="auto" style="border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, &quot;system-ui&quot;, &quot;Segoe WPC&quot;, &quot;Segoe UI&quot;, system-ui, Ubuntu, &quot;Droid Sans&quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><thead data-line="88" class="code-line" dir="auto"><tr data-line="88" class="code-line" dir="auto"><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Reference</th><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Content</th><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Inputs</th></tr></thead><tbody data-line="90" class="code-line" dir="auto"><tr data-line="90" class="code-line" dir="auto"><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">A: Character portrait</td><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">Establish face, hair, wardrobe, room, and lighting</td><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">Text prompt only in this example</td></tr><tr data-line="91" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">B: Holding the product</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">The same person holds the bottle with the label facing camera</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Product image + A</td></tr><tr data-line="92" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">C: Using the product</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">The same person presses the spray pump</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Product image + B</td></tr></tbody></table></div>
<!--kg-card-end: html-->
<p>The prompts repeat character details and describe the product's shape, colors, label layout, and natural handling.</p><p>Run:</p><pre><code class="language-bash">python3 flow.py stills
</code></pre><p>The results are saved as&nbsp;<code>assets/frame-01.jpg</code>,&nbsp;<code>frame-02.jpg</code>, and&nbsp;<code>frame-03.jpg</code>. Review character consistency, packaging fidelity, and the realism of the use action.</p><p><strong>The script skips existing files.</strong>&nbsp;If you change a prompt, back up and move the corresponding output before rerunning. Changing A may also require regenerating B and C.</p><figure class="kg-card kg-image-card"><img src="https://aihubmix.com/blog-media/images/2026/09/735ce825c85ba719.jpg" class="kg-image" alt="" loading="lazy" width="1920" height="1080"></figure><p><em>The references establish character identity, product presentation, and product use.</em></p><h2 id="4-host-the-images-and-register-virtual-portrait-assets">4. Host the Images and Register Virtual-Portrait Assets</h2><p>The starter contains no asset ID from the author's account. Register the references in your own account.</p><p>This project uses public image URLs for registration. The source workflow used GitHub raw URLs pinned to a commit SHA, but any hosting that returns the image directly without authentication can work.</p><p>A GitHub&nbsp;<code>/blob/</code>&nbsp;URL returns an HTML page and cannot be used as an image URL.</p><p>Replace this placeholder host with the real location of your uploaded files:</p><pre><code class="language-bash">IMAGE_BASE='https://your-public-image-host.example/campaign'
python3 flow.py check "$IMAGE_BASE/frame-01.jpg" "$IMAGE_BASE/frame-02.jpg" "$IMAGE_BASE/frame-03.jpg"
python3 flow.py assets "$IMAGE_BASE/frame-01.jpg" "$IMAGE_BASE/frame-02.jpg" "$IMAGE_BASE/frame-03.jpg"
</code></pre><p><code>check</code>&nbsp;verifies HTTP 200 and an image Content-Type.&nbsp;<code>assets</code>&nbsp;creates or reuses a&nbsp;<code>virtual_portrait</code>&nbsp;asset group, registers each image, waits until it becomes&nbsp;<code>active</code>, and writes the asset IDs to&nbsp;<code>state.json</code>.</p><p>This step comes from an actual failure in the project: passing photorealistic character URLs directly to the video endpoint returned&nbsp;<code>doubao_real_person_required</code>. The person in this campaign was AI-generated, so&nbsp;<code>virtual_portrait</code>&nbsp;was the correct classification. A real-person photograph must follow the corresponding verification process and must not be labeled as virtual.</p><p>All assets used in one video request should belong to the same group.</p><figure class="kg-card kg-image-card"><img src="https://aihubmix.com/blog-media/images/2026/09/92bcfa7b02957603.png" class="kg-image" alt="" loading="lazy" width="2816" height="1762"></figure><p><em>The references were generated and all three assets were active; the video task was still running when this screenshot was captured.</em></p><h2 id="5-write-the-video-prompt-as-a-timeline-with-camera-limits">5. Write the Video Prompt as a Timeline with Camera Limits</h2><p>The final project prompt divides one continuous 20-second shot into four phases:</p>
<!--kg-card-begin: html-->
<div class="blog-table-scroll"><table data-line="142" class="code-line" dir="auto" style="border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, &quot;system-ui&quot;, &quot;Segoe WPC&quot;, &quot;Segoe UI&quot;, system-ui, Ubuntu, &quot;Droid Sans&quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><thead data-line="142" class="code-line" dir="auto"><tr data-line="142" class="code-line" dir="auto"><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Time</th><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Character action</th><th style="text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);">Product position</th></tr></thead><tbody data-line="144" class="code-line" dir="auto"><tr data-line="144" class="code-line" dir="auto"><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">0–5 seconds</td><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">Looks at camera and presents the bottle</td><td style="padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);">Beside her face, label toward camera</td></tr><tr data-line="145" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">5–10 seconds</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Raises the bottle and presses the pump</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Remains inside the frame</td></tr><tr data-line="146" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">10–15 seconds</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Closes her eyes and feels the mist settle</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Lower third of the frame</td></tr><tr data-line="147" class="code-line" dir="auto"><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">15–20 seconds</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Opens her eyes and presents the product again</td><td style="padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);">Back beside her face, label toward camera</td></tr></tbody></table></div>
<!--kg-card-end: html-->
<p>An earlier result pushed the camera too close and lost the product. The final prompt therefore limits the move to a mid-close shot, requires the product to stay visible, and asks for a legible label during the first and last three seconds.</p><p>Here is the complete&nbsp;<code>prompts/prompt-video.txt</code>. For another product, update the brand, packaging description, and use action. These instructions are generation targets and still require output review.</p><pre><code class="language-text">One continuous 20-second vertical beauty commercial take, no cuts, in a sunlit minimalist vanity corner.

0-5s: the same 24-year-old East Asian woman in an oversized sage-green linen shirt over a white ribbed tank top stands at the vanity holding the translucent light-green Nature Republic Aloe Vera 92% Soothing Gel Mist beside her cheek, the label facing camera and fully legible. She looks to camera with a warm, easy smile and turns the bottle slightly so the label catches the morning light.

5-10s: she lifts the bottle just above eye level and presses the fine-mist pump. A soft cone of aloe mist sprays across her face and catches the light as a faint sparkle of micro-droplets.

10-15s: her eyes close and her chin lifts into a small contented smile as the mist settles, tiny droplets resting on her cheekbone and brow. The bottle stays visible in the lower third of the frame throughout this beat.

15-20s: she opens her eyes, brings the bottle back up beside her cheek with the label square to camera, and holds a final calm look at the lens.

Camera: one slow, smooth push-in from a chest-up framing to a mid-close framing ONLY. Do not push past a mid-close shot. The product must stay inside the frame for the entire take, and the label must be clearly legible in both the first three seconds and the last three seconds.

Look: soft diffused morning sunlight from camera left, photorealistic skin texture with real moisture on the skin, mist rendered as genuinely photographed spray rather than digital particles, premium K-beauty advertising. Keep the product packaging, colours, materials, label layout and label text exactly as in the reference images; do not redesign or re-letter the product. No text overlays, no captions, no watermarks.

Audio: a quiet bright room, one soft short pump-spray hiss, a gentle breath. No music, no voiceover.
</code></pre><p>Audio generation is enabled, but the prompt requests only room tone, one spray sound, and a gentle breath—no music or voice-over.</p><h2 id="6-generate-and-save-the-video">6. Generate and Save the Video</h2><p>After asset registration, submit&nbsp;<code>asset://</code>&nbsp;references. This command reads the saved IDs and passes each one as a separate argument:</p><pre><code class="language-bash">python3 - &lt;&lt;'PYCODE'
import json
import subprocess
import sys
from pathlib import Path

state = json.loads(Path("state.json").read_text())
refs = ["asset://" + asset_id for asset_id in state["asset_ids"]]
subprocess.run([sys.executable, "flow.py", "video", *refs], check=True)
PYCODE
</code></pre><p>Using an argument list also avoids a zsh issue from the source project, where several IDs stored in one plain string could reach the script as one invalid argument.</p><p>The script saves the video task ID, polls until&nbsp;<code>completed</code>, and downloads the output to&nbsp;<code>out/video.mp4</code>. Another download can overwrite that path, so back up versions you want to compare.</p><p>Resume an existing task or re-download its result with:</p><pre><code class="language-bash">python3 flow.py status
</code></pre><p>If the create response was lost, list recent tasks and resume the relevant ID:</p><pre><code class="language-bash">python3 flow.py tasks
python3 flow.py status VIDEO_TASK_ID
</code></pre><p>Looking for an existing task before creating another one prevents accidental duplicate generation.</p><h2 id="7-review-the-output-and-iterate">7. Review the Output and Iterate</h2><p>The source project keeps&nbsp;<code>video-v1-10s.mp4</code>&nbsp;and the final&nbsp;<code>video.mp4</code>. The first version lasted only 10 seconds and did not show enough product use, so the workflow went through a second prompt iteration.</p><p>Review every result against this checklist:</p><ul><li>[ ] Duration, resolution, and aspect ratio match the target.</li><li>[ ] The character's face, wardrobe, and setting remain consistent.</li><li>[ ] The product stays visible and its label can be read at the beginning and end.</li><li>[ ] Handling and spray actions match the product's real use.</li><li>[ ] Bottle shape, packaging, and text do not change noticeably.</li><li>[ ] The camera does not move too close, and the audio matches the request.</li></ul><p>If duration is wrong, inspect both configuration and the actual request. If the product leaves the frame, strengthen camera limits. If the use action is too short, allocate time and behavior more explicitly. Editing only&nbsp;<code>prompts/prompt-video.txt</code>&nbsp;does not require regenerating reference images; regenerate and register them only when the visual references must change.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/PISBuxX7OAI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="10s video"></iframe></figure><h2 id="frequently-asked-questions">Frequently Asked Questions</h2><h3 id="why-does-a-model-name-that-looks-correct-return-404">Why does a model name that looks correct return 404?</h3><p>The shortened Seedream name returned&nbsp;<code>model_not_found</code>&nbsp;in the source project. Use the complete API model ID accepted by the current endpoint rather than assuming that the marketing display name is also the API identifier.</p><h3 id="why-can-i-open-an-image-in-my-browser-but-still-fail-to-register-it">Why can I open an image in my browser but still fail to register it?</h3><p>Confirm that the URL returns the image itself rather than HTML, a share page, or a sign-in page. Use&nbsp;<code>python3 flow.py check URL...</code>&nbsp;before registration.</p><h3 id="why-did-changing-a-prompt-not-change-the-reference-image">Why did changing a prompt not change the reference image?</h3><p><code>stills</code>&nbsp;skips existing files. Back up and move any image that needs regeneration, then check whether downstream references should also be regenerated.</p><h3 id="does-http-200-mean-the-video-is-finished">Does HTTP 200 mean the video is finished?</h3><p>No. The script branches on the task's&nbsp;<code>status</code>&nbsp;and downloads only after the task reaches&nbsp;<code>completed</code>.</p><h2 id="start-your-first-version">Start Your First Version</h2><p>Prepare one product image, configure AIHubMix access, and choose the image and video models. Then let Claude Code adapt the product description and prompts. Generate the three references, review and register them, create the video, and use the checklist to decide the next iteration.</p><p>When a future project needs another model, keep the same file structure and workflow, then update the AIHubMix model selection and model-specific parameters. That is the practical value of a unified API service for a content team using several AI models: models can change by task while the workflow remains reusable.</p></article><div class="sc-1c0xtl9-16 hUosnH"><div><span class="brand-logo"><img class="brand-logo-light" src="/brand/light.svg?v=20260909" width="110" height="24" alt="AIHubMix"/></span><p class="sc-1c0xtl9-17 cebqkZ">One gateway to multiple AI providers.
Built for production.</p></div><a href="/" class="sc-1c0xtl9-15 sc-1c0xtl9-18 czYpSp cMkKAz">Visit AIHubMix<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M16.1716 10.9999L10.8076 5.63589L12.2218 4.22168L20 11.9999L12.2218 19.778L10.8076 18.3638L16.1716 12.9999H4V10.9999H16.1716Z"></path></svg></a></div><div class="sc-1c0xtl9-19 DWxSg"><h2 class="sc-1c0xtl9-20 bdVRff">More from the blog</h2><div class="sc-1c0xtl9-21 bXzQsu"><a class="sc-1c0xtl9-22 jlSeMr" href="/blog/gpt-image-2-6-api-tutorial-drafts-finals-and-migration-gotchas" data-discover="true"><div class="sc-1c0xtl9-23 kdkCIq"><img src="https://aihubmix.com/blog-media/images/2026/11/c53fbd60a3eef465.png" alt="GPT Image 2.6 API tutorial: drafts, finals, and migration gotchas" loading="lazy"/></div><div class="sc-1c0xtl9-24 jiOOqg"><h3>GPT Image 2.6 API tutorial: drafts, finals, and migration gotchas</h3><time dateTime="2026-11-05T08:59:05.000+00:00">November 5, 2026</time></div></a><a class="sc-1c0xtl9-22 jlSeMr" href="/blog/gpt-image-2-6-vs-2-5-is-the-upgrade-worth-it" data-discover="true"><div class="sc-1c0xtl9-23 kdkCIq"><img src="https://aihubmix.com/blog-media/images/2026/11/6af60d3f1108b2b2.png" alt="GPT Image 2.6 vs 2.5: is the upgrade worth it?" loading="lazy"/></div><div class="sc-1c0xtl9-24 jiOOqg"><h3>GPT Image 2.6 vs 2.5: is the upgrade worth it?</h3><time dateTime="2026-11-05T08:58:28.000+00:00">November 5, 2026</time></div></a><a class="sc-1c0xtl9-22 jlSeMr" href="/blog/best-ai-models" data-discover="true"><div class="sc-1c0xtl9-23 kdkCIq"><img src="https://aihubmix.com/blog-media/images/2026/11/f8ab86dcbe4ecbc2.png" alt="Best AI Models in 2026: Rankings, Prices, and How to Choose" loading="lazy"/></div><div class="sc-1c0xtl9-24 jiOOqg"><h3>Best AI Models in 2026: Rankings, Prices, and How to Choose</h3><time dateTime="2026-11-05T08:17:34.000+00:00">November 5, 2026</time></div></a></div></div></div><aside class="sc-1c0xtl9-10 cpcDux"><div class="sc-1c0xtl9-11 hxUGEH">On this page</div><div class="sc-1c0xtl9-12 dmMZCQ"><div class="css-1xohofr ant-anchor-wrapper" style="max-height:100vh"><div class="ant-anchor ant-anchor-fixed"><span class="ant-anchor-ink"></span><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#download-the-complete-starter" title="Download the Complete Starter">Download the Complete Starter</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#1-prepare-the-product-image-and-project" title="1. Prepare the Product Image and Project">1. Prepare the Product Image and Project</a><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#why-aihubmix-fits-this-workflow" title="Why AIHubMix Fits This Workflow">Why AIHubMix Fits This Workflow</a></div></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#2-set-the-output-target-and-separate-image-from-video-parameters" title="2. Set the Output Target and Separate Image from Video Parameters">2. Set the Output Target and Separate Image from Video Parameters</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#3-generate-the-three-character-references-in-order" title="3. Generate the Three Character References in Order">3. Generate the Three Character References in Order</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#4-host-the-images-and-register-virtual-portrait-assets" title="4. Host the Images and Register Virtual-Portrait Assets">4. Host the Images and Register Virtual-Portrait Assets</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#5-write-the-video-prompt-as-a-timeline-with-camera-limits" title="5. Write the Video Prompt as a Timeline with Camera Limits">5. Write the Video Prompt as a Timeline with Camera Limits</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#6-generate-and-save-the-video" title="6. Generate and Save the Video">6. Generate and Save the Video</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#7-review-the-output-and-iterate" title="7. Review the Output and Iterate">7. Review the Output and Iterate</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#frequently-asked-questions" title="Frequently Asked Questions">Frequently Asked Questions</a><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#why-does-a-model-name-that-looks-correct-return-404" title="Why does a model name that looks correct return 404?">Why does a model name that looks correct return 404?</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#why-can-i-open-an-image-in-my-browser-but-still-fail-to-register-it" title="Why can I open an image in my browser but still fail to register it?">Why can I open an image in my browser but still fail to register it?</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#why-did-changing-a-prompt-not-change-the-reference-image" title="Why did changing a prompt not change the reference image?">Why did changing a prompt not change the reference image?</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#does-http-200-mean-the-video-is-finished" title="Does HTTP 200 mean the video is finished?">Does HTTP 200 mean the video is finished?</a></div></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#start-your-first-version" title="Start Your First Version">Start Your First Version</a></div></div></div></div><div class="sc-1c0xtl9-13 ifprbj"><span class="brand-logo"><img class="brand-logo-light" src="/brand/light.svg?v=20260909" width="110" height="24" alt="AIHubMix"/></span><p id="blog-cta-headline" class="sc-1c0xtl9-14 gijIP">710+ models, one API key</p><button type="button" class="sc-1c0xtl9-15 czYpSp">Get API Key<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M16.1716 10.9999L10.8076 5.63589L12.2218 4.22168L20 11.9999L12.2218 19.778L10.8076 18.3638L16.1716 12.9999H4V10.9999H16.1716Z"></path></svg></button></div></aside></div></div><script id="seo-jsonld-page" type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","headline":"How to Create an AI Product Ad with Claude Code and AIHubMix","description":"With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register them as virtual-person assets…","url":"https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix","mainEntityOfPage":{"@type":"WebPage","@id":"https://aihubmix.com/blog/how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix"},"image":"https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png","inLanguage":"en","publisher":{"@type":"Organization","name":"AIHubMix","url":"https://aihubmix.com","logo":{"@type":"ImageObject","url":"https://aihubmix.com/logo.png"}},"datePublished":"2026-09-16T15:29:07.000+00:00","dateModified":"2026-09-21T02:22:16.000+00:00","author":{"@type":"Organization","name":"AIHubMix","url":"https://aihubmix.com"}}</script><div class="ant-pro-page-container css-1xohofr"><div class="css-1xohofr ant-page-header-no-children"></div><div class="ant-pro-grid-content css-1xohofr ant-pro-grid-content-wide"><div class="ant-pro-grid-content-children css-1xohofr"><div class="css-1xohofr ant-pro-page-container-children-container" style="padding-inline:24px;padding-block:0"><div class="footer"><div class="footer-brand"><div class="footer-brand-name"><span class="brand-logo"><img class="brand-logo-light" src="/brand/light.svg?v=20260909" width="110" height="24" alt="AIHubMix"/></span></div><p class="footer-copyright">© 2023 - 2026 AIHubMix, LLC</p><ul class="footer-social" aria-label="Connect"><li><a href="https://x.com/AiHubMix" target="_blank" rel="noopener noreferrer" aria-label="X" title="X"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z"></path></svg></a></li><li><a href="https://github.com/AIhubmix" target="_blank" rel="noopener noreferrer" aria-label="GitHub" title="GitHub"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M12.001 2C6.47598 2 2.00098 6.475 2.00098 12C2.00098 16.425 4.86348 20.1625 8.83848 21.4875C9.33848 21.575 9.52598 21.275 9.52598 21.0125C9.52598 20.775 9.51348 19.9875 9.51348 19.15C7.00098 19.6125 6.35098 18.5375 6.15098 17.975C6.03848 17.6875 5.55098 16.8 5.12598 16.5625C4.77598 16.375 4.27598 15.9125 5.11348 15.9C5.90098 15.8875 6.46348 16.625 6.65098 16.925C7.55098 18.4375 8.98848 18.0125 9.56348 17.75C9.65098 17.1 9.91348 16.6625 10.201 16.4125C7.97598 16.1625 5.65098 15.3 5.65098 11.475C5.65098 10.3875 6.03848 9.4875 6.67598 8.7875C6.57598 8.5375 6.22598 7.5125 6.77598 6.1375C6.77598 6.1375 7.61348 5.875 9.52598 7.1625C10.326 6.9375 11.176 6.825 12.026 6.825C12.876 6.825 13.726 6.9375 14.526 7.1625C16.4385 5.8625 17.276 6.1375 17.276 6.1375C17.826 7.5125 17.476 8.5375 17.376 8.7875C18.0135 9.4875 18.401 10.375 18.401 11.475C18.401 15.3125 16.0635 16.1625 13.8385 16.4125C14.201 16.725 14.5135 17.325 14.5135 18.2625C14.5135 19.6 14.501 20.675 14.501 21.0125C14.501 21.275 14.6885 21.5875 15.1885 21.4875C19.259 20.1133 21.9999 16.2963 22.001 12C22.001 6.475 17.526 2 12.001 2Z"></path></svg></a></li><li><a href="https://www.linkedin.com/company/aihubmix/" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z"></path></svg></a></li><li><a href="https://discord.gg/chAc9ZFcxR" target="_blank" rel="noopener noreferrer" aria-label="Discord" title="Discord"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M19.3034 5.33716C17.9344 4.71103 16.4805 4.2547 14.9629 4C14.7719 4.32899 14.5596 4.77471 14.411 5.12492C12.7969 4.89144 11.1944 4.89144 9.60255 5.12492C9.45397 4.77471 9.2311 4.32899 9.05068 4C7.52251 4.2547 6.06861 4.71103 4.70915 5.33716C1.96053 9.39111 1.21766 13.3495 1.5891 17.2549C3.41443 18.5815 5.17612 19.388 6.90701 19.9187C7.33151 19.3456 7.71356 18.73 8.04255 18.0827C7.41641 17.8492 6.82211 17.5627 6.24904 17.2231C6.39762 17.117 6.5462 17.0003 6.68416 16.8835C10.1438 18.4648 13.8911 18.4648 17.3082 16.8835C17.4568 17.0003 17.5948 17.117 17.7434 17.2231C17.1703 17.5627 16.576 17.8492 15.9499 18.0827C16.2789 18.73 16.6609 19.3456 17.0854 19.9187C18.8152 19.388 20.5875 18.5815 22.4033 17.2549C22.8596 12.7341 21.6806 8.80747 19.3034 5.33716ZM8.5201 14.8459C7.48007 14.8459 6.63107 13.9014 6.63107 12.7447C6.63107 11.5879 7.45884 10.6434 8.5201 10.6434C9.57071 10.6434 10.4303 11.5879 10.4091 12.7447C10.4091 13.9014 9.57071 14.8459 8.5201 14.8459ZM15.4936 14.8459C14.4535 14.8459 13.6034 13.9014 13.6034 12.7447C13.6034 11.5879 14.4323 10.6434 15.4936 10.6434C16.5442 10.6434 17.4038 11.5879 17.3825 12.7447C17.3825 13.9014 16.5548 14.8459 15.4936 14.8459Z"></path></svg></a></li><li><a href="https://www.youtube.com/@AiHubMixcom" target="_blank" rel="noopener noreferrer" aria-label="YouTube" title="YouTube"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M12.2439 4C12.778 4.00294 14.1143 4.01586 15.5341 4.07273L16.0375 4.09468C17.467 4.16236 18.8953 4.27798 19.6037 4.4755C20.5486 4.74095 21.2913 5.5155 21.5423 6.49732C21.942 8.05641 21.992 11.0994 21.9982 11.8358L21.9991 11.9884L21.9991 11.9991C21.9991 11.9991 21.9991 12.0028 21.9991 12.0099L21.9982 12.1625C21.992 12.8989 21.942 15.9419 21.5423 17.501C21.2878 18.4864 20.5451 19.261 19.6037 19.5228C18.8953 19.7203 17.467 19.8359 16.0375 19.9036L15.5341 19.9255C14.1143 19.9824 12.778 19.9953 12.2439 19.9983L12.0095 19.9991L11.9991 19.9991C11.9991 19.9991 11.9956 19.9991 11.9887 19.9991L11.7545 19.9983C10.6241 19.9921 5.89772 19.941 4.39451 19.5228C3.4496 19.2573 2.70692 18.4828 2.45587 17.501C2.0562 15.9419 2.00624 12.8989 2 12.1625V11.8358C2.00624 11.0994 2.0562 8.05641 2.45587 6.49732C2.7104 5.51186 3.45308 4.73732 4.39451 4.4755C5.89772 4.05723 10.6241 4.00622 11.7545 4H12.2439ZM9.99911 8.49914V15.4991L15.9991 11.9991L9.99911 8.49914Z"></path></svg></a></li><li><a href="https://aihubmix.medium.com/" target="_blank" rel="noopener noreferrer" aria-label="Medium" title="Medium"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M6.15789 3H17.8421C19.5862 3 21 4.41384 21 6.15789V9.52368C20.9185 9.51825 20.8369 9.51611 20.7552 9.51611C20.3527 9.51611 19.8589 9.61374 19.5076 9.79063C19.1075 9.97583 18.7548 10.2528 18.4613 10.6162C17.9888 11.2018 17.7025 11.9931 17.6329 12.8824C17.618 13.059 17.6131 13.2366 17.6163 13.4138C17.6632 15.4279 18.7512 17.0376 20.6837 17.0376C20.7919 17.0376 20.8974 17.0325 21 17.0226V17.8421C21 19.5862 19.5862 21 17.8421 21H6.15789C4.41384 21 3 19.5862 3 17.8421V6.15789C3 4.41384 4.41384 3 6.15789 3ZM21 15.3878V12.6621H19.3473C19.2728 13.9784 19.9927 15.0913 21 15.3878ZM21 12.2813V9.97343C20.92 9.95153 20.8345 9.93978 20.7435 9.93827C19.9294 9.95506 19.4442 10.9302 19.3838 12.2813H21ZM17.6973 7.30004L17.7115 7.29693V7.18701H14.8127L12.1211 13.5132L9.42952 7.18701H6.30572V7.29693L6.31975 7.30004C6.84885 7.41946 7.11748 7.59757 7.11748 8.23987V15.7595C7.11748 16.4018 6.84782 16.5799 6.31871 16.6993L6.30469 16.7024V16.8127H8.42408V16.7028L8.41007 16.6996C7.88095 16.5802 7.61232 16.4021 7.61232 15.7598V8.67605L11.07 16.8127H11.2661L14.8245 8.44914V15.9455C14.7792 16.4528 14.513 16.6095 14.0339 16.7176L14.0197 16.7209V16.83H17.7115V16.7209L17.6973 16.7176C17.2177 16.6095 16.9451 16.4528 16.8998 15.9455L16.8974 8.23987H16.8998C16.8998 7.59757 17.1684 7.41946 17.6973 7.30004Z"></path></svg></a></li></ul></div><div class="footer-columns"><div class="footer-column"><h2 class="footer-column-title">Product</h2><ul class="footer-column-list"><li><a href="/models">Models</a></li><li><a href="/llm-router/auto">LLM Router</a></li><li><a href="/compare">Compare</a></li><li><a href="/authors">Model Authors</a></li><li><a href="/ecosystem">Apps</a></li><li><a href="https://aihubmix.com/playground" target="_blank" rel="noopener noreferrer">Playground</a></li><li><a href="https://skills.aihubmix.com/en/" target="_blank" rel="noopener noreferrer">Skills</a></li><li><a href="https://enterprise.aihubmix.com" target="_blank" rel="noopener noreferrer">Enterprise</a></li></ul></div><div class="footer-column"><h2 class="footer-column-title">Developer</h2><ul class="footer-column-list"><li><a href="https://docs.aihubmix.com/en">Documentation</a></li><li><a href="https://docs.aihubmix.com/en/quick-start">API Reference</a></li><li><a href="/developers">Integration Guide</a></li><li><a href="https://docs.aihubmix.com/en/agents" target="_blank" rel="noopener noreferrer">For AI Agents</a></li><li><a href="https://console.aihubmix.com" target="_blank" rel="noopener noreferrer">Dashboard</a></li><li><a href="/models/retirements">Model Retirements</a></li><li><a href="https://status.aihubmix.com">Status</a></li></ul></div><div class="footer-column"><h2 class="footer-column-title">Company</h2><ul class="footer-column-list"><li><a href="/about">About</a></li><li><a href="/blog">Blog</a></li><li><a href="https://console.aihubmix.com/support">Support</a></li><li><a href="/contact">Contact</a></li></ul></div><div class="footer-column"><h2 class="footer-column-title">Terms &amp; Policies</h2><ul class="footer-column-list"><li><a href="/legal/terms">Terms of Service</a></li><li><a href="/legal/privacy">Privacy Policy</a></li><li><a href="/legal/cookies">Cookie Policy</a></li><li><a href="https://docs.aihubmix.com/en/api/Data-Pravicy">Data Policy</a></li><li><a href="/legal/payment">Payment Notice</a></li><li><a href="/legal/zdr">ZDR Terms</a></li><li><a href="/legal/asynchronous-generation">Async Generation Terms</a></li><li><button type="button" class="footer-privacy-choices">Your privacy choices<span role="img" aria-label="safety-certificate" aria-hidden="true" class="anticon anticon-safety-certificate"><svg viewBox="64 64 896 896" focusable="false" data-icon="safety-certificate" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z"></path></svg></span></button></li></ul></div></div></div></div></div></div></div></div></div></div></div></main></div></div></div><div id="ahm-mobile-menu" class="ahm-mobile-menu" data-open="false" data-view="root" inert=""><nav class="ahm-mobile-menu-nav" aria-label="Site"><a href="/models" class="ahm-mobile-menu-item" style="--ah-stagger-index:0"><span>Models</span></a><a href="https://aihubmix.com/playground" class="ahm-mobile-menu-item" style="--ah-stagger-index:1" target="_blank" rel="noopener noreferrer"><span>Playground</span></a><a href="/ecosystem" class="ahm-mobile-menu-item" style="--ah-stagger-index:2"><span>Ecosystem</span></a><a href="https://enterprise.aihubmix.com" class="ahm-mobile-menu-item" style="--ah-stagger-index:3" target="_blank" rel="noopener noreferrer"><span>Enterprise</span></a><a href="https://docs.aihubmix.com/en" class="ahm-mobile-menu-item" style="--ah-stagger-index:4" target="_blank" rel="noopener noreferrer"><span>Docs</span></a><a href="https://console.aihubmix.com/statistics" class="ahm-mobile-menu-item" style="--ah-stagger-index:5" target="_blank" rel="noopener noreferrer nofollow"><span>Dashboard</span></a><button type="button" class="ahm-mobile-menu-item ahm-mobile-menu-entry" style="--ah-stagger-index:6"><span>Language</span><span class="ahm-mobile-menu-entry-value">English<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" aria-hidden="true" class="remixicon "><path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path></svg></span></button></nav><div class="ahm-mobile-menu-footer"><button type="button" class="ds-button ds-button-primary ahm-mobile-menu-signin">Sign in</button></div></div><script>((storageKey2, restoreKey) => {
    if (!window.history.state || !window.history.state.key) {
      let key = Math.random().toString(32).slice(2);
      window.history.replaceState({ key }, "");
    }
    try {
      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
      let storedY = positions[restoreKey || window.history.state.key];
      if (typeof storedY === "number") {
        window.scrollTo(0, storedY);
      }
    } catch (error) {
      console.error(error);
      sessionStorage.removeItem(storageKey2);
    }
  })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":false,"v8_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">import "/static/manifest-b20be33c.js";
import * as route0 from "/static/root-Dl-AuaVW.js";
import * as route1 from "/static/blog-BzQtJgIa.js";
  
  window.__reactRouterRouteModules = {"root":route0,"blog":route1};

import("/static/entry.client-D3GyZyxc.js");</script><!--$--><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6},\"actionData\",\"errors\",\"blog\",{\"_7\":8,\"_9\":10,\"_11\":12,\"_8\":13,\"_14\":15,\"_16\":17,\"_18\":-5,\"_19\":10},\"kind\",\"post\",\"locale\",\"en\",\"slug\",\"how-to-create-an-ai-product-ad-with-claude-code-and-aihubmix\",{\"_11\":12,\"_24\":69,\"_26\":70,\"_28\":29,\"_71\":72,\"_30\":73,\"_32\":-5,\"_33\":29,\"_34\":74,\"_36\":75,\"_37\":76,\"_39\":40,\"_41\":77},\"related\",[20,21,22],\"modelCount\",714,\"ctaModel\",\"htmlLang\",{\"_11\":58,\"_24\":59,\"_26\":60,\"_28\":29,\"_30\":61,\"_32\":-5,\"_33\":29,\"_34\":62,\"_36\":63,\"_37\":64,\"_39\":40,\"_41\":65},{\"_11\":47,\"_24\":48,\"_26\":49,\"_28\":29,\"_30\":50,\"_32\":-5,\"_33\":29,\"_34\":51,\"_36\":52,\"_37\":53,\"_39\":40,\"_41\":54},{\"_11\":23,\"_24\":25,\"_26\":27,\"_28\":29,\"_30\":31,\"_32\":-5,\"_33\":29,\"_34\":35,\"_36\":35,\"_37\":38,\"_39\":40,\"_41\":42},\"best-ai-models\",\"title\",\"Best AI Models in 2026: Rankings, Prices, and How to Choose\",\"excerpt\",\"Last updated: November 5, 2026. The AI model market changes every few weeks, so this guide is built to be revised. It separates the three leaderboards, records list prices, and gives a decision table you can re-run when the next model ships.\\n\\n\\nRight now, \\\"the strongest AI model\\\" has three different answers, and they are not interchangeable.\\n\\n\\nGemini 4 Carbon tops the Artificial Analysis Intelligence Index at 60, but Google has released it only to a subset of cyber defenders and partners in its F\",\"has_custom_excerpt\",false,\"feature_image\",\"https://aihubmix.com/blog-media/images/2026/11/f8ab86dcbe4ecbc2.png\",\"og_image\",\"featured\",\"published_at\",\"2026-11-05T08:17:34.000+00:00\",\"updated_at\",\"reading_time\",14,\"author\",\"AIHubMix\",\"tags\",[43],{\"_44\":45,\"_11\":46},\"name\",\"Opinion\",\"opinion\",\"gpt-image-2-6-vs-2-5-is-the-upgrade-worth-it\",\"GPT Image 2.6 vs 2.5: is the upgrade worth it?\",\"OpenAI released GPT Image 2.6 on November 4, 2026, in the same two variants as the previous version: Sunburst for detailed work and Flare for fast iteration. The price did not move. A 1024x1024 high-quality image still costs about $0.211 in output tokens, and the token rates are identical to 2.5.\\n\\n\\nWhat did move is speed and output type. AIHubMix's model page says the Images 2.6 family generates 50% faster — without stating the baseline — and that Flare can return a low-quality image in as littl\",\"https://aihubmix.com/blog-media/images/2026/11/6af60d3f1108b2b2.png\",\"2026-11-05T08:58:28.000+00:00\",\"2026-11-05T10:14:45.000+00:00\",7,[55],{\"_44\":56,\"_11\":57},\"News\",\"news\",\"gpt-image-2-6-api-tutorial-drafts-finals-and-migration-gotchas\",\"GPT Image 2.6 API tutorial: drafts, finals, and migration gotchas\",\"Moving a basic image call from GPT Image 2.5 to 2.6 is a model-ID change. The endpoints are the same, the token rates are the same, and the three recommended sizes are the same. The parts that need attention are Batch, which 2.5 has and 2.6 does not; the Responses image tool, which OpenAI's 2.5 and 2.6 materials describe differently; and the controls — complexity, SVG, GIF, and markup — which are documented for OpenAI's Image API but are not in AIHubMix's published parameter schema yet.\\n\\n\\nThis t\",\"https://aihubmix.com/blog-media/images/2026/11/c53fbd60a3eef465.png\",\"2026-11-05T08:59:05.000+00:00\",\"2026-11-05T10:14:48.000+00:00\",8,[66],{\"_44\":67,\"_11\":68},\"Tutorial\",\"tutorial\",\"How to Create an AI Product Ad with Claude Code and AIHubMix\",\"With one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register them as virtual-person assets, and use Seedance to create an AI product ad.\\n\\nThis tutorial is based on a real aloe-mist campaign and includes the project structure, configuration, commands, and complete video prompt. The target output is a 20-second, 720p, 9:16 vertical ad with an AI-generated person and setting.\\n\\nClaude Code and AIHubMix power the full workflow. Claude Co\",\"html\",\"\u003cp\u003eWith one clear product image, Claude Code, and the AIHubMix API, you can generate character references in Seedream, register them as virtual-person assets, and use Seedance to create an AI product ad.\u003c/p\u003e\u003cp\u003eThis tutorial is based on a real aloe-mist campaign and includes the project structure, configuration, commands, and complete video prompt. The target output is a\u0026nbsp;\u003cstrong\u003e20-second, 720p, 9:16 vertical ad\u003c/strong\u003e\u0026nbsp;with an AI-generated person and setting.\u003c/p\u003e\u003cp\u003eClaude Code and AIHubMix power the full workflow. Claude Code reads the project brief, revises prompts, and organizes execution. AIHubMix provides one model entry point so image and video generation can operate inside the same project.\u003c/p\u003e\u003cblockquote\u003eModel IDs, parameters, and error handling come from a project snapshot dated September 16, 2026. Check the current API before reusing them. Commands use the included\u0026nbsp;\u003ccode\u003eflow.py\u003c/code\u003e\u0026nbsp;and must be run from the project root.\u003c/blockquote\u003e\u003cfigure class=\\\"kg-card kg-embed-card\\\"\u003e\u003ciframe width=\\\"200\\\" height=\\\"113\\\" src=\\\"https://www.youtube.com/embed/HrbO2x3DixE?feature=oembed\\\" frameborder=\\\"0\\\" allow=\\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\\\" referrerpolicy=\\\"strict-origin-when-cross-origin\\\" allowfullscreen=\\\"\\\" title=\\\"20 s\\\"\u003e\u003c/iframe\u003e\u003c/figure\u003e\u003ch2 id=\\\"download-the-complete-starter\\\"\u003eDownload the Complete Starter\u003c/h2\u003e\u003cp\u003eDownload the code, prompts, configuration, and sample images:\u003c/p\u003e\u003cp\u003e\u003ca href=\\\"https://drive.google.com/uc?export=download\u0026id=1nXcj26Fq3daHeTd0SynS7_QEXgH8z4u_\\\"\u003ehttps://drive.google.com/uc?export=download\u0026amp;id=1nXcj26Fq3daHeTd0SynS7_QEXgH8z4u_\u003c/a\u003e\u003c/p\u003e\u003cp\u003eAfter extracting it, enter the\u0026nbsp;\u003ccode\u003eseedance-starter\u003c/code\u003e\u0026nbsp;directory. The package includes\u0026nbsp;\u003ccode\u003eflow.py\u003c/code\u003e, two schema snapshots, five prompt files, the product image, and three reference images. The Python script uses only the standard library.\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003cstrong\u003eStart with the video stage:\u003c/strong\u003e\u0026nbsp;use the three included references, configure your key, and begin with Step 4.\u003c/li\u003e\u003cli\u003e\u003cstrong\u003eStart with your own product:\u003c/strong\u003e\u0026nbsp;replace the product image and prompt details, move the included reference images out of\u0026nbsp;\u003ccode\u003eassets/\u003c/code\u003e, and begin with Step 3.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eCopy\u0026nbsp;\u003ccode\u003e.env.example\u003c/code\u003e\u0026nbsp;to\u0026nbsp;\u003ccode\u003e.env\u003c/code\u003e\u0026nbsp;and add your own API key. Your account needs access to the relevant models, any required asynchronous-task permission, and sufficient quota. API generation incurs usage charges.\u003c/p\u003e\u003ch2 id=\\\"1-prepare-the-product-image-and-project\\\"\u003e1. Prepare the Product Image and Project\u003c/h2\u003e\u003cp\u003eThe example product is Nature Republic Aloe Vera Mist. When adapting the workflow, update the image, product description, and use action together.\u003c/p\u003e\\n\u003c!--kg-card-begin: html--\u003e\\n\u003ctable data-line=\\\"29\\\" class=\\\"code-line\\\" dir=\\\"auto\\\" style=\\\"border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, \u0026quot;system-ui\u0026quot;, \u0026quot;Segoe WPC\u0026quot;, \u0026quot;Segoe UI\u0026quot;, system-ui, Ubuntu, \u0026quot;Droid Sans\u0026quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\\\"\u003e\u003cthead data-line=\\\"29\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"29\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eFile\u003c/th\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003ePurpose\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody data-line=\\\"31\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"31\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eassets/product.png\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eOriginal product image\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"32\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eprompts/prompt-a.txt\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eMain character portrait prompt\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"33\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eprompts/prompt-b.txt\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eCharacter-holding-product prompt\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"34\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eprompts/prompt-c.txt\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eProduct-use prompt\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"35\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eprompts/prompt-video.txt\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eVideo timeline, camera, and audio requirements\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"36\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eprompts.json\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eDimensions, duration, reference dependencies, and prompt paths\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"37\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eflow.py\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eAPI requests, asset registration, polling, and downloads\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"38\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eseedream.schema.json\u003c/code\u003e,\u003cspan\u003e\u0026nbsp;\u003c/span\u003e\u003ccode style=\\\"font-family: Menlo, Monaco, \u0026quot;Courier New\u0026quot;, monospace; color: rgb(140, 140, 140); background-color: rgb(38, 38, 38); padding: 1px 3px; border-radius: 4px; font-size: 1em; line-height: 1.357em;\\\"\u003eseedance.schema.json\u003c/code\u003e\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eCached API schema snapshots\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\\n\u003c!--kg-card-end: html--\u003e\\n\u003cp\u003eClaude Code helps read the project brief and revise configuration and prompts.\u0026nbsp;\u003ccode\u003eflow.py\u003c/code\u003e\u0026nbsp;sends the actual requests through AIHubMix.\u003c/p\u003e\u003ch3 id=\\\"why-aihubmix-fits-this-workflow\\\"\u003eWhy AIHubMix Fits This Workflow\u003c/h3\u003e\u003cp\u003eAn AI product-ad workflow usually needs more than one model. An image model creates the person and product references; a video model creates movement and camera behavior. AIHubMix covers most mainstream models, so you can select models by task through one API service instead of maintaining separate accounts, authentication, and request entry points for every provider.\u003c/p\u003e\u003cp\u003eAIHubMix also connects to multiple suppliers and automatically selects an available low-latency route. This can reduce the effect of a single supplier's instability on a workflow that must complete image generation, asset processing, and video generation in sequence. Model availability, routing, and response time still depend on current service conditions.\u003c/p\u003e\u003cp\u003eCreate\u0026nbsp;\u003ccode\u003e.env\u003c/code\u003e\u0026nbsp;in the project root, or provide the same variable in your environment:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-dotenv\\\"\u003eAIHUBMIX_API_KEY=replace_with_your_api_key\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe project excludes\u0026nbsp;\u003ccode\u003e.env\u003c/code\u003e\u0026nbsp;through\u0026nbsp;\u003ccode\u003e.gitignore\u003c/code\u003e. Share only the variable name and example, never the real key.\u003c/p\u003e\u003cfigure class=\\\"kg-card kg-image-card\\\"\u003e\u003cimg src=\\\"https://aihubmix.com/blog-media/images/2026/09/db64b993947a4729.png\\\" class=\\\"kg-image\\\" alt=\\\"\\\" loading=\\\"lazy\\\" width=\\\"1672\\\" height=\\\"941\\\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eThe entire workflow begins with one clear product image.\u003c/em\u003e\u003c/p\u003e\u003ch2 id=\\\"2-set-the-output-target-and-separate-image-from-video-parameters\\\"\u003e2. Set the Output Target and Separate Image from Video Parameters\u003c/h2\u003e\u003cp\u003eThe relevant part of\u0026nbsp;\u003ccode\u003eprompts.json\u003c/code\u003e\u0026nbsp;looks like this. Keep the existing\u0026nbsp;\u003ccode\u003estills\u003c/code\u003e\u0026nbsp;array and other fields when editing the real file.\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-json\\\"\u003e{\\n  \\\"size\\\": \\\"1080x1920\\\",\\n  \\\"aspect_ratio\\\": \\\"9:16\\\",\\n  \\\"duration\\\": 20,\\n  \\\"resolution\\\": \\\"720p\\\",\\n  \\\"generate_audio\\\": true,\\n  \\\"video_prompt_file\\\": \\\"prompts/prompt-video.txt\\\"\\n}\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003esize\u003c/code\u003e\u0026nbsp;belongs to image generation.\u0026nbsp;\u003ccode\u003easpect_ratio\u003c/code\u003e,\u0026nbsp;\u003ccode\u003eduration\u003c/code\u003e,\u0026nbsp;\u003ccode\u003eresolution\u003c/code\u003e, and\u0026nbsp;\u003ccode\u003egenerate_audio\u003c/code\u003e\u0026nbsp;belong to video generation. The script builds separate requests rather than sending the entire configuration object to both endpoints.\u003c/p\u003e\u003cp\u003eThe project uses these model IDs:\u003c/p\u003e\u003cul\u003e\u003cli\u003eSeedream:\u0026nbsp;\u003ccode\u003edoubao-seedream-5-0-pro-260628\u003c/code\u003e\u003c/li\u003e\u003cli\u003eSeedance:\u0026nbsp;\u003ccode\u003edoubao-seedance-2-5-260628\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eThe bundled schema snapshots show that the image endpoint accepts\u0026nbsp;\u003ccode\u003esize\u003c/code\u003e, while the video endpoint accepts\u0026nbsp;\u003ccode\u003easpect_ratio\u003c/code\u003e. Mixing them causes a rejection.\u0026nbsp;\u003ccode\u003eflow.py\u003c/code\u003e\u0026nbsp;checks cached schema properties before sending a request, but this is not complete parameter validation.\u003c/p\u003e\u003ch2 id=\\\"3-generate-the-three-character-references-in-order\\\"\u003e3. Generate the Three Character References in Order\u003c/h2\u003e\u003cp\u003eEach image has a different role, and later images depend on earlier ones:\u003c/p\u003e\\n\u003c!--kg-card-begin: html--\u003e\\n\u003ctable data-line=\\\"88\\\" class=\\\"code-line\\\" dir=\\\"auto\\\" style=\\\"border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, \u0026quot;system-ui\u0026quot;, \u0026quot;Segoe WPC\u0026quot;, \u0026quot;Segoe UI\u0026quot;, system-ui, Ubuntu, \u0026quot;Droid Sans\u0026quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\\\"\u003e\u003cthead data-line=\\\"88\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"88\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eReference\u003c/th\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eContent\u003c/th\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eInputs\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody data-line=\\\"90\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"90\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eA: Character portrait\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eEstablish face, hair, wardrobe, room, and lighting\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eText prompt only in this example\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"91\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eB: Holding the product\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eThe same person holds the bottle with the label facing camera\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eProduct image + A\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"92\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eC: Using the product\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eThe same person presses the spray pump\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eProduct image + B\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\\n\u003c!--kg-card-end: html--\u003e\\n\u003cp\u003eThe prompts repeat character details and describe the product's shape, colors, label layout, and natural handling.\u003c/p\u003e\u003cp\u003eRun:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-bash\\\"\u003epython3 flow.py stills\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe results are saved as\u0026nbsp;\u003ccode\u003eassets/frame-01.jpg\u003c/code\u003e,\u0026nbsp;\u003ccode\u003eframe-02.jpg\u003c/code\u003e, and\u0026nbsp;\u003ccode\u003eframe-03.jpg\u003c/code\u003e. Review character consistency, packaging fidelity, and the realism of the use action.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eThe script skips existing files.\u003c/strong\u003e\u0026nbsp;If you change a prompt, back up and move the corresponding output before rerunning. Changing A may also require regenerating B and C.\u003c/p\u003e\u003cfigure class=\\\"kg-card kg-image-card\\\"\u003e\u003cimg src=\\\"https://aihubmix.com/blog-media/images/2026/09/735ce825c85ba719.jpg\\\" class=\\\"kg-image\\\" alt=\\\"\\\" loading=\\\"lazy\\\" width=\\\"1920\\\" height=\\\"1080\\\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eThe references establish character identity, product presentation, and product use.\u003c/em\u003e\u003c/p\u003e\u003ch2 id=\\\"4-host-the-images-and-register-virtual-portrait-assets\\\"\u003e4. Host the Images and Register Virtual-Portrait Assets\u003c/h2\u003e\u003cp\u003eThe starter contains no asset ID from the author's account. Register the references in your own account.\u003c/p\u003e\u003cp\u003eThis project uses public image URLs for registration. The source workflow used GitHub raw URLs pinned to a commit SHA, but any hosting that returns the image directly without authentication can work.\u003c/p\u003e\u003cp\u003eA GitHub\u0026nbsp;\u003ccode\u003e/blob/\u003c/code\u003e\u0026nbsp;URL returns an HTML page and cannot be used as an image URL.\u003c/p\u003e\u003cp\u003eReplace this placeholder host with the real location of your uploaded files:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-bash\\\"\u003eIMAGE_BASE='https://your-public-image-host.example/campaign'\\npython3 flow.py check \\\"$IMAGE_BASE/frame-01.jpg\\\" \\\"$IMAGE_BASE/frame-02.jpg\\\" \\\"$IMAGE_BASE/frame-03.jpg\\\"\\npython3 flow.py assets \\\"$IMAGE_BASE/frame-01.jpg\\\" \\\"$IMAGE_BASE/frame-02.jpg\\\" \\\"$IMAGE_BASE/frame-03.jpg\\\"\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003echeck\u003c/code\u003e\u0026nbsp;verifies HTTP 200 and an image Content-Type.\u0026nbsp;\u003ccode\u003eassets\u003c/code\u003e\u0026nbsp;creates or reuses a\u0026nbsp;\u003ccode\u003evirtual_portrait\u003c/code\u003e\u0026nbsp;asset group, registers each image, waits until it becomes\u0026nbsp;\u003ccode\u003eactive\u003c/code\u003e, and writes the asset IDs to\u0026nbsp;\u003ccode\u003estate.json\u003c/code\u003e.\u003c/p\u003e\u003cp\u003eThis step comes from an actual failure in the project: passing photorealistic character URLs directly to the video endpoint returned\u0026nbsp;\u003ccode\u003edoubao_real_person_required\u003c/code\u003e. The person in this campaign was AI-generated, so\u0026nbsp;\u003ccode\u003evirtual_portrait\u003c/code\u003e\u0026nbsp;was the correct classification. A real-person photograph must follow the corresponding verification process and must not be labeled as virtual.\u003c/p\u003e\u003cp\u003eAll assets used in one video request should belong to the same group.\u003c/p\u003e\u003cfigure class=\\\"kg-card kg-image-card\\\"\u003e\u003cimg src=\\\"https://aihubmix.com/blog-media/images/2026/09/92bcfa7b02957603.png\\\" class=\\\"kg-image\\\" alt=\\\"\\\" loading=\\\"lazy\\\" width=\\\"2816\\\" height=\\\"1762\\\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eThe references were generated and all three assets were active; the video task was still running when this screenshot was captured.\u003c/em\u003e\u003c/p\u003e\u003ch2 id=\\\"5-write-the-video-prompt-as-a-timeline-with-camera-limits\\\"\u003e5. Write the Video Prompt as a Timeline with Camera Limits\u003c/h2\u003e\u003cp\u003eThe final project prompt divides one continuous 20-second shot into four phases:\u003c/p\u003e\\n\u003c!--kg-card-begin: html--\u003e\\n\u003ctable data-line=\\\"142\\\" class=\\\"code-line\\\" dir=\\\"auto\\\" style=\\\"border-collapse: collapse; margin-bottom: 0.7em; color: rgb(187, 190, 191); font-family: -apple-system, \u0026quot;system-ui\u0026quot;, \u0026quot;Segoe WPC\u0026quot;, \u0026quot;Segoe UI\u0026quot;, system-ui, Ubuntu, \u0026quot;Droid Sans\u0026quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\\\"\u003e\u003cthead data-line=\\\"142\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"142\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eTime\u003c/th\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eCharacter action\u003c/th\u003e\u003cth style=\\\"text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.69); padding: 5px 10px; border-top-color: rgba(255, 255, 255, 0.69); border-right-color: rgba(255, 255, 255, 0.69); border-left-color: rgba(255, 255, 255, 0.69);\\\"\u003eProduct position\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody data-line=\\\"144\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctr data-line=\\\"144\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003e0–5 seconds\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eLooks at camera and presents the bottle\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-color: rgba(255, 255, 255, 0.18);\\\"\u003eBeside her face, label toward camera\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"145\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e5–10 seconds\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eRaises the bottle and presses the pump\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eRemains inside the frame\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"146\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e10–15 seconds\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eCloses her eyes and feels the mist settle\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eLower third of the frame\u003c/td\u003e\u003c/tr\u003e\u003ctr data-line=\\\"147\\\" class=\\\"code-line\\\" dir=\\\"auto\\\"\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003e15–20 seconds\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eOpens her eyes and presents the product again\u003c/td\u003e\u003ctd style=\\\"padding: 5px 10px; border-top: 1px solid rgba(255, 255, 255, 0.18); border-right-color: rgba(255, 255, 255, 0.18); border-bottom-color: rgba(255, 255, 255, 0.18); border-left-color: rgba(255, 255, 255, 0.18);\\\"\u003eBack beside her face, label toward camera\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\\n\u003c!--kg-card-end: html--\u003e\\n\u003cp\u003eAn earlier result pushed the camera too close and lost the product. The final prompt therefore limits the move to a mid-close shot, requires the product to stay visible, and asks for a legible label during the first and last three seconds.\u003c/p\u003e\u003cp\u003eHere is the complete\u0026nbsp;\u003ccode\u003eprompts/prompt-video.txt\u003c/code\u003e. For another product, update the brand, packaging description, and use action. These instructions are generation targets and still require output review.\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-text\\\"\u003eOne continuous 20-second vertical beauty commercial take, no cuts, in a sunlit minimalist vanity corner.\\n\\n0-5s: the same 24-year-old East Asian woman in an oversized sage-green linen shirt over a white ribbed tank top stands at the vanity holding the translucent light-green Nature Republic Aloe Vera 92% Soothing Gel Mist beside her cheek, the label facing camera and fully legible. She looks to camera with a warm, easy smile and turns the bottle slightly so the label catches the morning light.\\n\\n5-10s: she lifts the bottle just above eye level and presses the fine-mist pump. A soft cone of aloe mist sprays across her face and catches the light as a faint sparkle of micro-droplets.\\n\\n10-15s: her eyes close and her chin lifts into a small contented smile as the mist settles, tiny droplets resting on her cheekbone and brow. The bottle stays visible in the lower third of the frame throughout this beat.\\n\\n15-20s: she opens her eyes, brings the bottle back up beside her cheek with the label square to camera, and holds a final calm look at the lens.\\n\\nCamera: one slow, smooth push-in from a chest-up framing to a mid-close framing ONLY. Do not push past a mid-close shot. The product must stay inside the frame for the entire take, and the label must be clearly legible in both the first three seconds and the last three seconds.\\n\\nLook: soft diffused morning sunlight from camera left, photorealistic skin texture with real moisture on the skin, mist rendered as genuinely photographed spray rather than digital particles, premium K-beauty advertising. Keep the product packaging, colours, materials, label layout and label text exactly as in the reference images; do not redesign or re-letter the product. No text overlays, no captions, no watermarks.\\n\\nAudio: a quiet bright room, one soft short pump-spray hiss, a gentle breath. No music, no voiceover.\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAudio generation is enabled, but the prompt requests only room tone, one spray sound, and a gentle breath—no music or voice-over.\u003c/p\u003e\u003ch2 id=\\\"6-generate-and-save-the-video\\\"\u003e6. Generate and Save the Video\u003c/h2\u003e\u003cp\u003eAfter asset registration, submit\u0026nbsp;\u003ccode\u003easset://\u003c/code\u003e\u0026nbsp;references. This command reads the saved IDs and passes each one as a separate argument:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-bash\\\"\u003epython3 - \u0026lt;\u0026lt;'PYCODE'\\nimport json\\nimport subprocess\\nimport sys\\nfrom pathlib import Path\\n\\nstate = json.loads(Path(\\\"state.json\\\").read_text())\\nrefs = [\\\"asset://\\\" + asset_id for asset_id in state[\\\"asset_ids\\\"]]\\nsubprocess.run([sys.executable, \\\"flow.py\\\", \\\"video\\\", *refs], check=True)\\nPYCODE\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eUsing an argument list also avoids a zsh issue from the source project, where several IDs stored in one plain string could reach the script as one invalid argument.\u003c/p\u003e\u003cp\u003eThe script saves the video task ID, polls until\u0026nbsp;\u003ccode\u003ecompleted\u003c/code\u003e, and downloads the output to\u0026nbsp;\u003ccode\u003eout/video.mp4\u003c/code\u003e. Another download can overwrite that path, so back up versions you want to compare.\u003c/p\u003e\u003cp\u003eResume an existing task or re-download its result with:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-bash\\\"\u003epython3 flow.py status\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf the create response was lost, list recent tasks and resume the relevant ID:\u003c/p\u003e\u003cpre\u003e\u003ccode class=\\\"language-bash\\\"\u003epython3 flow.py tasks\\npython3 flow.py status VIDEO_TASK_ID\\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eLooking for an existing task before creating another one prevents accidental duplicate generation.\u003c/p\u003e\u003ch2 id=\\\"7-review-the-output-and-iterate\\\"\u003e7. Review the Output and Iterate\u003c/h2\u003e\u003cp\u003eThe source project keeps\u0026nbsp;\u003ccode\u003evideo-v1-10s.mp4\u003c/code\u003e\u0026nbsp;and the final\u0026nbsp;\u003ccode\u003evideo.mp4\u003c/code\u003e. The first version lasted only 10 seconds and did not show enough product use, so the workflow went through a second prompt iteration.\u003c/p\u003e\u003cp\u003eReview every result against this checklist:\u003c/p\u003e\u003cul\u003e\u003cli\u003e[ ] Duration, resolution, and aspect ratio match the target.\u003c/li\u003e\u003cli\u003e[ ] The character's face, wardrobe, and setting remain consistent.\u003c/li\u003e\u003cli\u003e[ ] The product stays visible and its label can be read at the beginning and end.\u003c/li\u003e\u003cli\u003e[ ] Handling and spray actions match the product's real use.\u003c/li\u003e\u003cli\u003e[ ] Bottle shape, packaging, and text do not change noticeably.\u003c/li\u003e\u003cli\u003e[ ] The camera does not move too close, and the audio matches the request.\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eIf duration is wrong, inspect both configuration and the actual request. If the product leaves the frame, strengthen camera limits. If the use action is too short, allocate time and behavior more explicitly. Editing only\u0026nbsp;\u003ccode\u003eprompts/prompt-video.txt\u003c/code\u003e\u0026nbsp;does not require regenerating reference images; regenerate and register them only when the visual references must change.\u003c/p\u003e\u003cfigure class=\\\"kg-card kg-embed-card\\\"\u003e\u003ciframe width=\\\"200\\\" height=\\\"113\\\" src=\\\"https://www.youtube.com/embed/PISBuxX7OAI?feature=oembed\\\" frameborder=\\\"0\\\" allow=\\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\\\" referrerpolicy=\\\"strict-origin-when-cross-origin\\\" allowfullscreen=\\\"\\\" title=\\\"10s video\\\"\u003e\u003c/iframe\u003e\u003c/figure\u003e\u003ch2 id=\\\"frequently-asked-questions\\\"\u003eFrequently Asked Questions\u003c/h2\u003e\u003ch3 id=\\\"why-does-a-model-name-that-looks-correct-return-404\\\"\u003eWhy does a model name that looks correct return 404?\u003c/h3\u003e\u003cp\u003eThe shortened Seedream name returned\u0026nbsp;\u003ccode\u003emodel_not_found\u003c/code\u003e\u0026nbsp;in the source project. Use the complete API model ID accepted by the current endpoint rather than assuming that the marketing display name is also the API identifier.\u003c/p\u003e\u003ch3 id=\\\"why-can-i-open-an-image-in-my-browser-but-still-fail-to-register-it\\\"\u003eWhy can I open an image in my browser but still fail to register it?\u003c/h3\u003e\u003cp\u003eConfirm that the URL returns the image itself rather than HTML, a share page, or a sign-in page. Use\u0026nbsp;\u003ccode\u003epython3 flow.py check URL...\u003c/code\u003e\u0026nbsp;before registration.\u003c/p\u003e\u003ch3 id=\\\"why-did-changing-a-prompt-not-change-the-reference-image\\\"\u003eWhy did changing a prompt not change the reference image?\u003c/h3\u003e\u003cp\u003e\u003ccode\u003estills\u003c/code\u003e\u0026nbsp;skips existing files. Back up and move any image that needs regeneration, then check whether downstream references should also be regenerated.\u003c/p\u003e\u003ch3 id=\\\"does-http-200-mean-the-video-is-finished\\\"\u003eDoes HTTP 200 mean the video is finished?\u003c/h3\u003e\u003cp\u003eNo. The script branches on the task's\u0026nbsp;\u003ccode\u003estatus\u003c/code\u003e\u0026nbsp;and downloads only after the task reaches\u0026nbsp;\u003ccode\u003ecompleted\u003c/code\u003e.\u003c/p\u003e\u003ch2 id=\\\"start-your-first-version\\\"\u003eStart Your First Version\u003c/h2\u003e\u003cp\u003ePrepare one product image, configure AIHubMix access, and choose the image and video models. Then let Claude Code adapt the product description and prompts. Generate the three references, review and register them, create the video, and use the checklist to decide the next iteration.\u003c/p\u003e\u003cp\u003eWhen a future project needs another model, keep the same file structure and workflow, then update the AIHubMix model selection and model-specific parameters. That is the practical value of a unified API service for a content team using several AI models: models can change by task while the workflow remains reusable.\u003c/p\u003e\",\"https://aihubmix.com/blog-media/images/2026/09/1f98bf8fa237e0a4.png\",\"2026-09-16T15:29:07.000+00:00\",\"2026-09-21T02:22:16.000+00:00\",9,[]]\n");</script><!--$--><script>window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>