:root{--black: #0A0A0A;--white: #FFFFFF;--gray-50: #FAFAFA;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--accent: #00BFA5;--accent-soft: rgba(0, 191, 165, .08);--accent-hover: #00A98E;--surface: var(--white);--surface-secondary: var(--gray-50);--surface-hover: var(--gray-100);--border: var(--gray-200);--border-light: var(--gray-100);--text-primary: var(--gray-900);--text-secondary: var(--gray-500);--text-tertiary: var(--gray-400);--sidebar-bg: var(--gray-50);--sidebar-hover: var(--gray-100);--sidebar-active: var(--white);--sidebar-text: var(--gray-600);--sidebar-text-active: var(--gray-900);--font-sans: "Inter", -apple-system, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Menlo", "Fira Code", monospace;--content-max-width: 720px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .3);--glass-blur: 12px;--shadow-card: 0 1px 3px rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.03);--shadow-float: 0 4px 16px rgba(0,0,0,.06), 0 8px 32px rgba(0,0,0,.04);--shadow-modal: 0 16px 48px rgba(0,0,0,.1), 0 24px 64px rgba(0,0,0,.06);--accent-gradient: linear-gradient(135deg, #00BFA5, #00897B);--ease-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.subtle-scroll{scrollbar-color:transparent transparent}.subtle-scroll:hover{scrollbar-color:var(--gray-200) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.subtle-scroll::-webkit-scrollbar-thumb{background:transparent}.subtle-scroll:hover::-webkit-scrollbar-thumb{background:var(--gray-200)}.font-mono{font-family:var(--font-mono)}.label-sm{font-size:11px;font-weight:500;letter-spacing:.03em;color:var(--text-secondary);text-transform:uppercase}.ant-table-thead>tr>th{font-weight:600!important;font-size:12px!important;letter-spacing:.02em!important;color:var(--text-secondary)!important;background:var(--surface)!important;border-bottom:1px solid var(--border)!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--border-light)!important}.ant-table-tbody>tr:hover>td{background:var(--surface-secondary)!important}.ant-table-tbody>tr.ant-table-row-selected>td{background:inherit!important}.ant-btn-primary{font-weight:500}.ant-modal .ant-modal-content{border-radius:var(--radius-lg)!important;overflow:hidden}.ant-modal-header{border-bottom:1px solid var(--border)!important}.ant-tag,.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-input-number{border-radius:var(--radius-sm)!important}.ant-collapse>.ant-collapse-item>.ant-collapse-header{padding-left:0!important}.ant-mentions-dropdown{border-radius:var(--radius-md)!important;box-shadow:0 8px 24px #0000001a,0 2px 8px #0000000f!important;padding:4px!important;border:1px solid var(--border-light)!important}.ant-mentions-dropdown-menu-item{border-radius:var(--radius-sm)!important;padding:8px 10px!important;transition:background .15s!important}.ant-mentions-dropdown-menu-item-active,.ant-mentions-dropdown-menu-item:hover{background:var(--surface-secondary)!important}.ant-btn{transition:all .2s var(--ease-out)!important}.ant-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-card)}.ant-btn:active:not(:disabled){transform:scale(.97)}.ant-btn-primary{background:var(--accent-gradient)!important;border:none!important}.ant-btn-primary:hover:not(:disabled){box-shadow:0 4px 16px #00bfa540}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-mentions{transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out)!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector,.ant-mentions:focus,.ant-mentions-focused{border-color:var(--accent)!important;box-shadow:0 0 0 3px #00bfa51a!important}.ant-mentions-borderless:focus,.ant-mentions-borderless.ant-mentions-focused{border-color:transparent!important;box-shadow:none!important}.ant-modal-mask{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#0000004d!important}.ant-modal-content{animation:modalIn .25s var(--ease-out)!important}.ant-table-tbody>tr{transition:background-color .15s var(--ease-out)}.ant-skeleton-content .ant-skeleton-title,.ant-skeleton-content .ant-skeleton-paragraph>li{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%)!important;background-size:200% 100%!important;animation:shimmer 1.5s infinite!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes thinking-bounce{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-5px);opacity:1}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn .25s ease-out forwards}.animate-slide-in{animation:slideInLeft .2s ease-out forwards}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes floatGentle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-slide-in-top{animation:slideInFromTop .3s var(--ease-out) both}.animate-float{animation:floatGentle 3s ease-in-out infinite}.stagger-children>*{opacity:0;animation:fadeIn .3s var(--ease-out) forwards}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:80ms}.stagger-children>*:nth-child(3){animation-delay:.16s}.stagger-children>*:nth-child(4){animation-delay:.24s}.stagger-children>*:nth-child(5){animation-delay:.32s}.stagger-children>*:nth-child(6){animation-delay:.4s}.scroll-fade-top{-webkit-mask-image:linear-gradient(to bottom,transparent,black 24px);mask-image:linear-gradient(to bottom,transparent,black 24px)}.scroll-fade-bottom{-webkit-mask-image:linear-gradient(to top,transparent,black 24px);mask-image:linear-gradient(to top,transparent,black 24px)}.scroll-fade-both{-webkit-mask-image:linear-gradient(to bottom,transparent,black 24px,black calc(100% - 24px),transparent);mask-image:linear-gradient(to bottom,transparent,black 24px,black calc(100% - 24px),transparent)}@keyframes testing-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:16px 0 8px;font-weight:600;line-height:1.4}.markdown-body h1{font-size:18px}.markdown-body h2{font-size:16px}.markdown-body h3{font-size:15px}.markdown-body p{margin:6px 0}.markdown-body ul,.markdown-body ol{margin:6px 0;padding-left:20px}.markdown-body li{margin:2px 0}.markdown-body strong{font-weight:600}.markdown-body hr{border:none;border-top:1px solid var(--border-light);margin:12px 0}.markdown-body code{font-family:var(--font-mono);font-size:13px;background:var(--gray-100);padding:1px 5px;border-radius:4px}.markdown-body pre{background:var(--gray-100);border-radius:var(--radius-sm);padding:12px;overflow-x:auto;margin:8px 0}.markdown-body pre code{background:none;padding:0}.markdown-body table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.markdown-body th,.markdown-body td{border:1px solid var(--border-light);padding:6px 10px;text-align:left}.markdown-body th{background:var(--gray-50);font-weight:600}.markdown-body blockquote{border-left:3px solid var(--accent);margin:8px 0;padding:4px 12px;color:var(--text-secondary)}.markdown-body a{color:var(--accent);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.stage-panel{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:9px;font-family:var(--font-sans);font-size:13px;color:var(--text-primary);margin:0}.stage-panel__row{display:flex;align-items:center;gap:10px;line-height:1.4;min-height:22px}.stage-panel__icon{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center}.stage-panel__label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:var(--text-primary)}.stage-panel__row[data-status=pending] .stage-panel__label,.stage-panel__row[data-status=skipped] .stage-panel__label{color:var(--text-tertiary);font-weight:400}.stage-panel__row[data-status=done] .stage-panel__label{color:var(--text-secondary);font-weight:400}.stage-panel__detail{flex:0 1 auto;color:var(--text-tertiary);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.stage-panel__cancel{align-self:flex-end;margin-top:4px}.stage-icon--pending{color:var(--gray-300)}.stage-icon--running{color:var(--accent)}.stage-icon--waiting{color:#f59e0b}.stage-icon--done{color:var(--accent)}.stage-icon--failed{color:#dc2626}.stage-icon--skipped{color:var(--gray-300)}.stage-icon--running{animation:stage-spin 1s linear infinite}@keyframes stage-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stage-panel__row[data-status=waiting_user]{background:#f59e0b0f;border-radius:var(--radius-sm);margin:-2px -8px;padding:2px 8px}.stage-panel__row[data-status=waiting_user] .stage-panel__label{color:#b45309;font-weight:500}.stage-icon--waiting{animation:stage-wait 1.6s ease-in-out infinite;transform-origin:center}@keyframes stage-wait{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.18)}}.stage-panel__row[data-status=failed] .stage-panel__label{color:#b91c1c;font-weight:500}.stage-panel__row[data-status=failed] .stage-panel__detail{color:#b91c1c;opacity:.75}
