:root{--brand-primary:#3b5bdb;--brand-primary-light:#5c7cfa;--brand-primary-lighter:#748ffc;--brand-primary-lightest:#dbe4ff;--brand-primary-dark:#364fc7;--color-background:#f8f9fa;--color-surface:#fff;--color-surface-raised:#fff;--color-border:#e9ecef;--color-border-strong:#d6dfea;--color-workspace-border:#b8c2d0;--color-workspace-bg:#fcfdfe;--color-text-primary:#212529;--color-text-secondary:#495057;--color-text-tertiary:#868e96;--color-text-inverse:#fff;--color-text-link:#3b5bdb;--state-success:#37b24d;--state-success-bg:#d3f9d8;--state-warning:#f59f00;--state-warning-bg:#fff3bf;--state-error:#f03e3e;--state-error-bg:#ffe3e3;--state-info:#1c7ed6;--state-info-bg:#d0ebff;--radius-sm:2px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--font-sans:"Inter", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:18px;--text-2xl:22px;--text-3xl:28px;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--shadow-sm:0 1px 2px #00000008;--shadow-md:0 2px 8px #0000000a;--shadow-lg:0 8px 24px #00000014;--shadow-xl:0 12px 40px #0000001f;--sidebar-width:240px;--sidebar-collapsed-width:64px;--header-height:64px;--toolbar-height:48px;--content-max-width:1400px;--z-dropdown:100;--z-sticky:200;--z-drawer:300;--z-modal:400;--z-toast:500}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;overflow:hidden}a{color:var(--color-text-link);text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}table{border-collapse:collapse;width:100%}td,th{word-break:break-word;word-break:auto-phrase}.login-page{min-height:100vh;padding:var(--space-6);background:#f4f6fb;justify-content:center;align-items:center;display:flex}.login-card{border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow-lg)}.login-brand{align-items:center;gap:var(--space-4);display:flex}.login-logo{border-radius:var(--radius-lg);background:var(--brand-primary);color:#fff;width:44px;height:44px;font-size:var(--text-xl);font-weight:var(--font-weight-bold);place-items:center;display:grid}.login-switch{margin-top:var(--space-4);justify-content:center;align-items:center;gap:var(--space-1);display:flex}th{white-space:nowrap}.nav-item{padding:0 var(--space-4);height:40px;color:var(--color-text-secondary);font-size:var(--text-base);align-items:center;gap:var(--space-2-2,10px);border-left:3px solid #0000;min-width:0;text-decoration:none;transition:all .15s;display:flex}.nav-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-item:hover{background:var(--color-background);color:var(--color-text-primary)}.nav-item.active{background:var(--brand-primary-lightest);border-left-color:var(--brand-primary);font-weight:var(--font-weight-medium);color:var(--brand-primary)!important}.sidebar-group{margin-bottom:var(--space-2)}.sidebar-group:last-child{margin-bottom:0}.sidebar-group-trigger{width:calc(100% - 16px);height:38px;margin:2px var(--space-2);padding:0 var(--space-3);align-items:center;gap:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-align:left;letter-spacing:0;transition:all .15s;display:flex}.sidebar-group-trigger:hover,.sidebar-group-trigger.is-active{background:var(--color-background);color:var(--color-text-primary)}.sidebar-group-trigger.is-collapsed{justify-content:center;width:40px;margin-left:auto;margin-right:auto;padding:0}.sidebar-group-icon{flex:none;font-size:15px}.sidebar-group-trigger span:not(.sidebar-group-chevron){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-group-chevron{color:var(--color-text-tertiary);margin-left:auto;font-size:10px;line-height:1}.sidebar-submenu{margin-bottom:var(--space-2);gap:2px;display:grid}.sidebar-subitem{height:36px;font-size:var(--text-base);margin-right:var(--space-2)!important;margin-left:14px!important;padding-left:34px!important}.sidebar-subitem.is-collapsed{justify-content:center;width:40px;height:40px;border-left-color:#0000!important;margin:2px auto!important;padding:0!important}.sidebar-subitem.is-collapsed .anticon{margin:0}.nav-divider{background:var(--color-border);height:1px;margin:var(--space-2) var(--space-4)}.badge{white-space:nowrap;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium);justify-content:center;align-items:center;height:20px;padding:2px 8px;line-height:1;display:inline-flex}.badge-success{background:var(--state-success-bg);color:var(--state-success)}.badge-error{background:var(--state-error-bg);color:var(--state-error)}.badge-warning{background:var(--state-warning-bg);color:var(--state-warning)}.badge-info{background:var(--state-info-bg);color:var(--state-info)}.badge-neutral{background:var(--color-background);color:var(--color-text-secondary)}.badge-primary{background:var(--brand-primary-lightest);color:var(--brand-primary)}.badge-douyin{color:#e64980;background:#fff0f6}.badge-kuaishou{color:#e8590c;background:#fff4e6}.badge-weibo{color:#e03131;background:#ffe3e3}.badge-bilibili{color:#1971c2;background:#e7f5ff}.badge-xiaohongshu{color:#c92a2a;background:#ffe3e3}.badge-zhihu{color:#2e7d32;background:#e8f5e9}.badge-youku{background:var(--state-warning-bg);color:var(--state-warning)}.badge-tianchong{background:var(--state-error-bg);color:var(--state-error)}.badge-gudian,.badge-shidai{background:var(--state-warning-bg);color:var(--state-warning)}.badge-duanju{background:var(--brand-primary-lightest);color:var(--brand-primary)}.badge-neirong,.badge-wenda{background:var(--state-info-bg);color:var(--state-info)}.badge-shipin,.badge-bangdan{background:var(--brand-primary-lightest);color:var(--brand-primary)}.btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);height:32px;color:var(--color-text-secondary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-primary{background:var(--brand-primary);color:var(--color-text-inverse);border-color:var(--brand-primary)}.btn-primary:hover{background:var(--brand-primary-dark);border-color:var(--brand-primary-dark);color:var(--color-text-inverse)}.btn-sm{height:28px;font-size:var(--text-xs);padding:0 8px}.btn-icon{width:32px;padding:0}.input-group{align-items:center;display:inline-flex;position:relative}.input{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:32px;font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface);outline:none;padding:0 12px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-primary-lightest)}.input-with-icon{padding-left:32px}.input-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.select{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:32px;font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23868E96' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;padding:0 28px 0 10px;transition:border-color .15s}.select:focus{border-color:var(--brand-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.table-container{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table thead tr{background:var(--color-background)}.data-table th{text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 16px}.data-table td{border-bottom:1px solid var(--color-border);padding:10px 16px}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover{background:var(--color-background)}.data-table tbody tr:last-child td{border-bottom:none}.progress-track{background:var(--color-background);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:var(--brand-primary);height:100%;transition:width .4s cubic-bezier(.3,0,0,1)}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color .15s cubic-bezier(.2,.8,.2,1)}.kpi-card:hover{border-color:var(--color-border-strong)}.tabular-nums{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.pagination{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.pagination-btns{align-items:center;gap:var(--space-1);display:flex}.page-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-primary);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.page-btn:hover{color:var(--brand-primary);border-color:var(--brand-primary)}.page-btn.active{border-color:var(--brand-primary);background:var(--brand-primary);color:var(--color-text-inverse);font-weight:var(--font-weight-medium)}.page-btn:disabled{color:var(--color-text-tertiary);cursor:not-allowed}.tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5);align-items:center;gap:0;display:flex}.tab{cursor:pointer;font-size:var(--text-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;justify-content:center;align-items:center;margin-bottom:-1px;padding:10px 20px;transition:color .15s;display:inline-flex}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.code-block{border-radius:var(--radius-md);padding:var(--space-4);background:#1e1e2e;overflow-x:auto}.code-block pre{font-family:var(--font-mono);font-size:var(--text-sm);color:#cdd6f4;white-space:pre;margin:0;line-height:1.6}.code-kw{color:#89b4fa}.code-str{color:#a6e3a1}.code-fn{color:#89dceb}.code-var{color:#cba6f7}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:50;flex-direction:column;transition:transform .3s,width .3s;display:flex;position:fixed;top:0;bottom:0;left:0}@media (width>=1025px){.sidebar{z-index:1;flex:none;position:relative;transform:none}}.sidebar-header{height:52px;padding:0 var(--space-4);border-bottom:1px solid var(--color-border);align-items:center;display:flex}.sidebar-logo{width:24px;height:24px;margin-right:var(--space-2);flex-shrink:0}.sidebar-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-nav{padding:var(--space-2) 0;flex:1;overflow-y:auto}.main-area{background:var(--color-background);min-width:0;min-height:100vh;margin-left:0}.app-content{min-width:0}.content-shell{width:100%;max-width:var(--content-max-width);margin:0 auto}.global-search{display:block}.global-search-option{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-1) 0;display:flex}.global-search-title{color:var(--color-text-primary);font-size:var(--text-md);line-height:var(--leading-tight)}.global-search-path{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-tight);margin-top:2px}.mobile-global-search{z-index:var(--z-drawer);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border-strong);box-shadow:var(--shadow-lg);position:fixed;inset:0 0 auto}.mobile-global-search-inner{align-items:center;gap:var(--space-2);display:flex}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);height:52px;padding:0 var(--space-6);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.page-title{margin:0 0 var(--space-5)}.page-title h1{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);margin:0}.page-title p{margin:var(--space-2) 0 0;color:var(--color-text-tertiary);font-size:var(--text-md);line-height:var(--leading-normal)}.header-actions{align-items:center;gap:var(--space-4);display:flex}.avatar{border-radius:var(--radius-full);background:var(--brand-primary-lightest);width:32px;height:32px;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--brand-primary);justify-content:center;align-items:center;display:flex}.content{padding:var(--space-6);max-width:var(--content-max-width)}.toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar-left{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.summary-text{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.icon-btn{cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:all .12s;display:flex}.icon-btn:hover{color:var(--brand-primary);background:var(--brand-primary-lightest)}.mobile-menu-btn{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;padding:8px;display:none}.sidebar-overlay{z-index:calc(var(--z-sticky) - 1);background:#0006;display:none;position:fixed;inset:0}@media (width<=1024px){.sidebar{transform:translate(-100%);box-shadow:4px 0 16px #0000001a;width:min(var(--sidebar-width), calc(100vw - 56px))!important}.sidebar.open{transform:translate(0)}}.w-16{width:64px}.w-60{width:240px}.w-3{width:12px}.w-10{width:40px}.w-64{width:256px}.w-80{width:320px}.h-3{height:12px}.h-10{height:40px}.h-16{height:64px}.h-20{height:80px}.w-8{width:32px}.h-8{height:32px}.space-y-6>*+*{margin-top:24px}.block{display:block}.text-center{text-align:center}.opacity-0{opacity:0}@media (width<=768px){.content{padding:var(--space-4)}.header{padding:0 var(--space-4)}.toolbar{flex-direction:column;align-items:stretch}.toolbar-left{flex-wrap:wrap}.toolbar-right{justify-content:flex-end;display:flex}.input,.select{min-width:0}}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.flex-1{flex:1}.shrink-0{flex-shrink:0}.min-w-0{min-width:0}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.p-2{padding:8px}.p-1{padding:4px}.p-3{padding:12px}.p-4{padding:16px}.p-6{padding:24px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-6{padding-left:24px;padding-right:24px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mx-2{margin-left:8px;margin-right:8px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mr-2{margin-right:8px}.w-full{width:100%}.w-fit{width:fit-content}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:0}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-auto{overflow-x:auto}.relative{position:relative}.fixed{position:fixed}.absolute{position:absolute}.sticky{position:sticky}.top-0{top:0}.left-0{left:0}.right-0{right:0}.bottom-0{bottom:0}.inset-0{inset:0}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.bg-white{background-color:#fff}.bg-\[var\(--color-background\)\]{background-color:var(--color-background)}.bg-\[var\(--brand-primary\)\]{background-color:var(--brand-primary)}.bg-\[var\(--brand-primary\)\]\/10{background-color:#3b5bdb1a}.bg-black\/50{background-color:#00000080}.text-white{color:#fff}.text-gray-400{color:#adb5bd}.text-gray-500{color:#868e96}.text-gray-600{color:#495057}.text-gray-700{color:#343a40}.text-gray-800{color:#212529}.text-lg{font-size:18px}.text-xl{font-size:20px}.text-sm{font-size:14px}.text-xs{font-size:12px}.text-\[var\(--brand-primary\)\]{color:var(--brand-primary)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.rounded-lg{border-radius:8px}.rounded-xl{border-radius:12px}.rounded-full{border-radius:9999px}.border{border:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.border-r{border-right:1px solid var(--color-border)}.border-t{border-top:1px solid var(--color-border)}.border-gray-200{border-color:#e9ecef}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.cursor-pointer{cursor:pointer}.transition-all{transition:all .2s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.hover\:bg-gray-100:hover{background-color:#f1f3f5}.hover\:bg-\[var\(--brand-primary\)\]\/5:hover{background-color:#3b5bdb0d}.hover\:text-\[var\(--brand-primary\)\]:hover{color:var(--brand-primary)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.md\:hidden,.md\:block,.lg\:hidden,.lg\:flex,.lg\:block{display:none}@media (width>=769px){.md\:block{display:block}}@media (width<=768px){.md\:hidden{display:flex}}@media (width>=1025px){.lg\:flex{display:flex}.lg\:block{display:block}.lg\:static{position:static}.lg\:p-2{padding:8px}.lg\:p-6{padding:24px}.lg\:px-6{padding-left:24px;padding-right:24px}.lg\:gap-4{gap:16px}.lg\:w-80{width:320px}.lg\:text-xl{font-size:20px}}@media (width<=1024px){.lg\:hidden{display:flex}}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.metric-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.soft-panel{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);min-width:0}.soft-panel+.soft-panel{margin-top:var(--space-4)}.dashboard-grid{gap:var(--space-5);grid-template-columns:2fr 1fr;display:grid}.dashboard-side{gap:var(--space-5);flex-direction:column;display:flex}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=768px){.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.metric-grid{grid-template-columns:1fr}}.mapping-header,.mapping-row{gap:var(--space-2);grid-template-columns:minmax(120px,1.1fr) minmax(120px,1fr) minmax(120px,1fr) 110px 64px minmax(120px,1fr) 40px;align-items:start;display:grid}.mapping-header{padding:0 var(--space-1);color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);align-items:center}.mapping-row .ant-form-item{margin-bottom:var(--space-2)}.code-editor-wrap{border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #3b5bdb08}.code-editor-wrap:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 2px #3b5bdb1f}.code-editor-toolbar{padding:var(--space-2);border-bottom:1px solid var(--color-border-strong);background:#f8fafc;justify-content:flex-end;display:flex}.code-editor-loading{color:var(--color-text-tertiary);background:var(--color-surface);justify-content:center;align-items:center;display:flex}.code-editor-placeholder{left:52px;right:var(--space-3);bottom:var(--space-3);color:var(--color-text-tertiary);font-size:var(--text-sm);pointer-events:none;position:absolute}.task-run-log,.stream-output{width:100%;padding:var(--space-4);border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word;margin:0;box-shadow:inset 0 0 0 1px #3b5bdb08}.doc-layout,.doc-detail-layout{gap:var(--space-4);grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;display:grid}.doc-preview,.md-preview,.markdown-doc{min-width:0}.markdown-doc{padding:var(--space-4);border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);color:var(--color-text-primary);line-height:var(--leading-relaxed);box-shadow:inset 0 0 0 1px #3b5bdb08}.md-preview{padding:var(--space-4);border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);box-shadow:inset 0 0 0 1px #3b5bdb08}.markdown-doc>:first-child{margin-top:0}.markdown-doc>:last-child{margin-bottom:0}.markdown-doc h1,.markdown-doc h2,.markdown-doc h3,.markdown-doc h4,.markdown-doc h5{margin:var(--space-5) 0 var(--space-2);line-height:var(--leading-tight)}.markdown-doc p,.markdown-doc ul,.markdown-doc ol,.markdown-doc table,.markdown-doc pre{margin:0 0 var(--space-3)}.markdown-doc ul,.markdown-doc ol{padding-left:var(--space-6)}.markdown-doc table{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);display:block;overflow-x:auto}.markdown-doc th,.markdown-doc td{padding:var(--space-2) var(--space-3);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.md-preview-large,.markdown-doc-scroll{max-height:calc(100vh - 180px);overflow:auto}.doc-preview-empty{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);justify-content:center;align-items:center;min-height:240px;display:flex}.table-doc-metrics{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.table-doc-stat-card{padding:var(--space-4);background:linear-gradient(#fff 0%,#fbfcff 100%);border-color:#d8dee8}.table-doc-metric-value{margin-top:var(--space-2);color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.table-doc-search{width:300px}.table-doc-layout{gap:var(--space-4);grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;display:grid}.table-doc-list-panel{top:calc(var(--header-height) + var(--space-4));max-height:calc(100vh - var(--header-height) - 88px);padding:var(--space-3);position:sticky;overflow:auto}.table-doc-list-panel .ant-list-items{gap:var(--space-2);flex-direction:column;display:flex}.table-doc-list-item{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff;transition:border-color .15s,background .15s,box-shadow .15s;padding:var(--space-3)!important;margin:0!important}.table-doc-list-item:hover{border-color:var(--color-workspace-border);background:#f8fafc}.table-doc-list-item.active{border-color:var(--brand-primary);background:var(--brand-primary-lightest);box-shadow:inset 3px 0 0 var(--brand-primary)}.table-doc-list-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.table-doc-list-physical-name{color:var(--color-text-tertiary);font-size:var(--text-xs);margin-top:4px}.table-doc-list-desc{color:var(--color-text-secondary);margin-top:4px}.table-doc-detail-panel{min-height:620px;padding:0;overflow:hidden}.table-doc-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border-strong);background:#fbfcff;display:flex}.table-doc-remark{margin:var(--space-2) 0 0!important}.table-doc-field-table{padding:var(--space-5)}.table-doc-section-title{align-items:center;gap:var(--space-2);margin:0 var(--space-5) var(--space-3);padding-top:var(--space-1);color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);display:flex}.table-doc-detail-panel>.md-preview{margin:0 var(--space-5) var(--space-4)}.table-doc-detail-panel>.block.mt-4{margin:0 var(--space-5) var(--space-5)}.table-doc-field-editor{margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:#fbfcff}.table-doc-field-editor-header,.table-doc-field-editor-row{gap:var(--space-2);grid-template-columns:minmax(160px,1fr) 120px minmax(180px,1.2fr);align-items:center;display:grid}.table-doc-field-editor-header{padding:0 var(--space-2) var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.table-doc-field-editor-row{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.table-doc-field-editor-row+.table-doc-field-editor-row{margin-top:var(--space-2)}.table-doc-field-editor-row .ant-form-item{margin-bottom:0}.table-doc-field-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.table-doc-editor-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);align-items:start;display:grid}.table-doc-preview-label{margin-bottom:var(--space-2);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);display:block}.table-doc-editor-preview{min-height:470px;max-height:calc(100vh - 260px);overflow:auto}.custom-query-search{width:320px}.custom-query-api-doc{gap:var(--space-4);margin-bottom:var(--space-4);background:#fbfcff;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);align-items:start;display:grid}.custom-query-api-doc pre{padding:var(--space-4);border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;margin:0;overflow:auto}.custom-query-layout{gap:var(--space-4);grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;display:grid}.custom-query-list-panel{top:calc(var(--header-height) + var(--space-4));max-height:calc(100vh - var(--header-height) - 88px);padding:var(--space-3);position:sticky;overflow:auto}.custom-query-list-panel .ant-list-items{gap:var(--space-2);flex-direction:column;display:flex}.custom-query-list-item{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff;transition:border-color .15s,background .15s,box-shadow .15s;padding:var(--space-3)!important;margin:0!important}.custom-query-list-item:hover{border-color:var(--color-workspace-border);background:#f8fafc}.custom-query-list-item.active{border-color:var(--brand-primary);background:var(--brand-primary-lightest);box-shadow:inset 3px 0 0 var(--brand-primary)}.custom-query-list-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.custom-query-code{color:var(--color-text-tertiary);font-size:var(--text-xs)}.custom-query-desc,.custom-query-description{margin-top:var(--space-1);color:var(--color-text-secondary)}.custom-query-workbench{min-height:620px;padding:0;overflow:hidden}.custom-query-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border-strong);background:#fbfcff;display:flex}.custom-query-sql-preview{margin:var(--space-5)}.custom-query-section-label{margin-bottom:var(--space-2);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);display:block}.custom-query-sql-preview pre{max-height:260px;padding:var(--space-4);border:1px solid var(--color-workspace-border);border-radius:var(--radius-md);background:var(--color-workspace-bg);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;margin:0;overflow:auto}.custom-query-result{margin:var(--space-5)}.custom-query-result-meta{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.custom-query-empty-result{min-height:220px;margin:var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:#fbfcff;justify-content:center;align-items:center;display:flex}.custom-query-form-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);display:grid}.custom-query-param-panel{margin:var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.custom-query-run-options{margin:0 var(--space-5) var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.custom-query-param-inputs{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.custom-query-param-list{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.custom-query-param-row{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fbfcff;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) 130px minmax(150px,1fr) 80px 72px;align-items:end;display:grid}.custom-query-param-row .ant-form-item{margin-bottom:0}.stat-task-tags{margin:0 var(--space-5) var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fbfcff}.stat-task-tab-content{padding:0 var(--space-5) var(--space-5)}.stat-task-result-table,.stat-task-log-list{margin-top:var(--space-3)}.stat-task-log-list .ant-list-items{gap:var(--space-2);flex-direction:column;display:flex}.stat-task-log-list .ant-list-item{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.stat-task-footer{padding:0 var(--space-5) var(--space-5)}.stat-vars-layout{gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.stat-builtin-vars{width:320px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fbfcff}.stat-builtin-vars-title{color:var(--color-text);margin-bottom:var(--space-2);font-size:13px;font-weight:500}.stat-builtin-vars-list{flex-wrap:wrap;gap:4px;display:flex}.stat-builtin-vars-tip{color:var(--color-text-tertiary);margin-top:var(--space-2);font-size:12px}.stat-var-list{gap:var(--space-2);flex-direction:column;display:flex}.stat-var-row{gap:var(--space-2);align-items:center;display:flex}@media (width<=900px){.doc-layout,.doc-detail-layout{grid-template-columns:1fr}.table-doc-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.table-doc-layout,.custom-query-layout,.custom-query-api-doc,.table-doc-editor-grid{grid-template-columns:1fr}.table-doc-list-panel,.custom-query-list-panel{max-height:none;position:static}.table-doc-detail-header,.custom-query-header{flex-direction:column}.custom-query-form-grid,.custom-query-param-row{grid-template-columns:1fr}.table-doc-field-editor-header{display:none}.table-doc-field-editor-row{grid-template-columns:1fr}.mapping-header{display:none}.mapping-row{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:1fr 1fr}.mapping-row>.ant-btn{width:100%}}@media (width<=640px){.mapping-row{grid-template-columns:1fr}.page-title h1{font-size:var(--text-xl)}.table-doc-metrics{grid-template-columns:1fr}.table-doc-search,.custom-query-search{width:100%}.ant-drawer-content-wrapper{width:100vw!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.ai-agent-title{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.ai-agent-chat-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;height:calc(100vh - 176px);min-height:620px;display:grid}.ai-agent-chat-main,.ai-agent-side{min-width:0;min-height:0}.ai-agent-chat-main{overflow:hidden}.ai-agent-chat-main .ant-card-body{flex-direction:column;min-height:0;display:flex}.ai-agent-chat-scroll{min-height:0;padding:var(--space-5);flex:1;overflow-y:auto}.ai-chat-message{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.ai-chat-message.is-user{justify-content:flex-end}.ai-chat-avatar{flex:none}.ai-chat-avatar-agent{background:var(--brand-primary)!important}.ai-chat-bubble{border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:min(760px,72%);color:var(--color-text-primary);box-shadow:var(--shadow-sm);word-break:break-word;background:#fff;padding:12px 14px}.ai-chat-message.is-user .ai-chat-bubble{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff}.ai-chat-line{line-height:1.7;margin:0 0 8px!important}.ai-chat-line:last-child{margin-bottom:0!important}.ai-thinking-panel{border-radius:var(--radius-lg);background:#fafbfc;border:1px solid #edf0f5;margin:-2px -2px 12px;overflow:hidden}.ai-thinking-panel.is-failed{background:#fff5f5;border-color:#ffe3e3}.ai-thinking-header{align-items:center;gap:var(--space-2);width:100%;height:42px;padding:0 var(--space-3);color:var(--color-text-secondary);font-size:var(--text-md);cursor:pointer;border-bottom:1px solid #edf0f5;display:flex}.ai-thinking-header:hover{background:#f4f6fa}.ai-thinking-body{max-height:240px;margin:var(--space-3) var(--space-3) var(--space-3) var(--space-4);padding-left:var(--space-4);border-left:3px solid var(--brand-primary-light);overflow-y:auto}.ai-thinking-step{align-items:flex-start;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-md);padding:2px 0 8px;line-height:1.8;display:flex;position:relative}.ai-thinking-step.is-running{color:#6f7785}.ai-thinking-step.is-success{color:var(--state-success)}.ai-thinking-step.is-failed{color:var(--state-error)}.ai-thinking-dot{border-radius:var(--radius-full);background:var(--brand-primary-light);flex:none;width:6px;height:6px;margin-top:11px}.ai-thinking-step.is-success .ai-thinking-dot{background:var(--state-success)}.ai-thinking-step.is-failed .ai-thinking-dot{background:var(--state-error)}.ai-answer-placeholder{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);display:inline-flex}.ai-agent-composer{border-top:1px solid var(--color-border);padding:var(--space-4);background:#fff}.ai-agent-suggestions{margin-bottom:var(--space-3)}.ai-agent-input-row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) 92px;align-items:end;display:grid}.ai-agent-input-row .ant-btn{height:40px}.ai-agent-side{gap:var(--space-4);flex-direction:column;padding-right:2px;display:flex;overflow-y:auto}.ai-agent-timeline{margin-top:var(--space-2)}.ai-agent-timeline.ant-timeline{margin-bottom:0}.ai-agent-ref-list .ant-list-item{padding:var(--space-3) 0}.ai-agent-cover{object-fit:cover;border-radius:var(--radius-md);background:var(--color-background)}.ai-agent-analysis-text{margin-bottom:0!important}@media (width<=1180px){.ai-agent-chat-layout{grid-template-columns:minmax(0,1fr);height:auto}.ai-agent-chat-main{height:calc(100vh - 220px);min-height:560px}.ai-agent-side{grid-template-columns:repeat(2,minmax(0,1fr));padding-right:0;display:grid;overflow:visible}}@media (width<=760px){.ai-agent-title{flex-direction:column}.ai-agent-chat-main{min-height:480px}.ai-agent-chat-scroll{padding:var(--space-4)}.ai-chat-bubble{max-width:82%}.ai-agent-input-row,.ai-agent-side{grid-template-columns:minmax(0,1fr)}}.ant-btn-primary{background:var(--brand-primary)!important}.ant-input:focus,.ant-input-focused{border-color:var(--brand-primary)!important;box-shadow:0 0 0 2px #3b5bdb1a!important}.ant-table-thead>tr>th{background:var(--color-background)!important;color:var(--color-text-secondary)!important;font-weight:500!important}.ant-table-wrapper .ant-table{border-radius:var(--radius-lg);overflow:hidden}.ant-table-wrapper .ant-table-container{border-start-start-radius:var(--radius-lg);border-start-end-radius:var(--radius-lg)}.ant-table-wrapper .ant-table-thead>tr>th,.ant-table-wrapper .ant-table-tbody>tr>td,.ant-table-wrapper .ant-table-tbody>tr>th{border-bottom:1px solid var(--color-border-strong)!important}.ant-table-wrapper .ant-table-thead>tr>th:not(:last-child),.ant-table-wrapper .ant-table-tbody>tr>td:not(:last-child),.ant-table-wrapper .ant-table-tbody>tr>th:not(:last-child){border-right:1px solid var(--color-border)!important}.ant-table-wrapper .ant-table-tbody>tr:last-child>td,.ant-table-wrapper .ant-table-tbody>tr:last-child>th{border-bottom:none!important}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f8fafc!important}.ant-tag{border-radius:4px!important}.ant-statistic-title{color:var(--color-text-secondary)!important;font-size:var(--text-sm)!important;margin-bottom:8px!important}.ant-statistic-content{color:var(--color-text-primary)!important;font-size:var(--text-2xl)!important;font-weight:600!important}.ant-card{border-radius:var(--radius-lg)!important;border-color:var(--color-border)!important}.ant-badge-count{background:var(--state-error)!important}.ant-drawer-content{border-left:1px solid var(--color-border-strong)}.ant-drawer-header{border-bottom-color:var(--color-border-strong)!important}.ant-drawer-body{background:linear-gradient(#fff, #fff) padding-box, var(--color-background)}.ant-tabs-nav{border-bottom-color:var(--color-border-strong)!important}
