@font-face{font-family:Sora;src:url(/assets/sora-v17-latin-300-cp3Vmaam.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/assets/sora-v17-latin-regular-CRt88UEn.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/assets/sora-v17-latin-500-01eiPEn0.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/assets/sora-v17-latin-600-Cdg4DaK0.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Sora;src:url(/assets/sora-v17-latin-700-9waGdLWo.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #060a24;--bg-panel: #0c1033;--bg-card: #141938;--bg-hover: #1c2248;--bg-elevated: rgba(20, 25, 56, .82);--border: #2a3060;--border-strong: #3d4686;--text: #e2e8f0;--text-dim: #9ca3af;--text-bright: #f1f5f9;--accent: #364ef1;--accent-dim: #2438dd;--accent-glow: rgba(54, 78, 241, .15);--shadow-sm: 0 6px 20px rgba(3, 7, 20, .18);--shadow-md: 0 14px 34px rgba(3, 7, 20, .26);--green: #1dafa3;--yellow: #f99c07;--red: #f93a69;--orange: #dd7402;--purple: #8b5cf6;--teal: #6dd3ce;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-sans: "Sora", system-ui, -apple-system, sans-serif;--radius: 8px;--radius-sm: 4px}[data-theme=light]{--bg: #f3f7ff;--bg-panel: #ffffff;--bg-card: #e8eeff;--bg-hover: #d5e3ff;--bg-elevated: rgba(255, 255, 255, .88);--border: #e0e9f9;--border-strong: #c7d5f6;--text: #374151;--text-dim: #6b7280;--text-bright: #111827;--accent: #364ef1;--accent-dim: #2438dd;--accent-glow: rgba(54, 78, 241, .12);--shadow-sm: 0 8px 22px rgba(76, 103, 167, .08);--shadow-md: 0 18px 44px rgba(76, 103, 167, .12);--green: #1dafa3;--yellow: #dd7402;--red: #f93a69;--orange: #bb5502;--purple: #7c3aed}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg)}body{background:radial-gradient(circle at top left,rgba(109,211,206,.08),transparent 26%),radial-gradient(circle at top right,rgba(54,78,241,.12),transparent 32%),linear-gradient(180deg,#ffffff03,#fff0),var(--bg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border-strong) 70%,transparent);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 45%,var(--border-strong));background-clip:padding-box}.app-layout{display:flex;flex-direction:column;height:100vh;background:transparent}.app-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 18px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}.app-header-brand{display:flex;align-items:center;gap:14px;min-width:0}.app-header-copy{display:flex;flex-direction:column;min-width:0}.app-header h1{font-size:15px;font-weight:650;color:var(--text-bright);letter-spacing:-.02em}.app-header-subtitle{font-size:11px;color:var(--text-dim);letter-spacing:.02em}.app-header .zepo-logo{display:flex;align-items:center}[data-theme=light] .zepo-logo img{filter:brightness(0) saturate(100%)}.theme-toggle{background:color-mix(in srgb,var(--bg-card) 82%,transparent);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);cursor:pointer;padding:6px 10px;font-size:14px;line-height:1;transition:color .15s,border-color .15s,background .15s,transform .15s}.theme-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-card);transform:translateY(-1px)}.app-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-header-user{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:12px;color:var(--text-dim)}.app-header .status-dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.app-header .status-dot.offline{background:var(--red)}.tab-nav{display:flex;gap:18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-panel) 88%,transparent);flex-shrink:0;padding:8px 12px 0;align-items:flex-end;overflow-x:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tab-group{display:flex;flex-direction:column;gap:7px;min-width:max-content}.tab-group-label{padding:0 6px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);opacity:.82}.tab-group-tabs{display:flex;gap:4px;padding:4px;background:color-mix(in srgb,var(--bg-card) 58%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:14px}.tab-btn{padding:9px 14px;background:transparent;border:1px solid transparent;border-bottom:1px solid transparent;border-radius:10px;color:var(--text-dim);cursor:pointer;font-size:13px;font-family:var(--font-sans);font-weight:500;white-space:nowrap;transition:color .15s,border-color .15s,background .15s,transform .15s,box-shadow .15s}.tab-btn:hover{color:var(--text);background:color-mix(in srgb,var(--bg-hover) 72%,transparent)}.tab-btn.active{color:var(--text-bright);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--bg-card) 90%,transparent));border-color:color-mix(in srgb,var(--accent) 42%,var(--border));box-shadow:inset 0 1px #ffffff0d,0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:10px;gap:10px}.panel{flex:1;overflow:auto;padding:16px}.diagram-panel{flex:1;position:relative;display:flex;flex-direction:column}.diagram-toolbar{display:flex;gap:6px;padding:8px 12px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.diagram-toolbar .tab-btn{border-radius:16px;border-bottom:none;padding:5px 14px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.diagram-toolbar .tab-btn.active{background:var(--accent);color:#fff;border-bottom-color:transparent}.diagram-panel .react-flow__node{font-family:var(--font-sans)}.pipeline-node{background:linear-gradient(145deg,var(--bg-card),var(--bg-panel));border:1px solid var(--border);border-radius:12px;padding:14px 20px;min-width:150px;text-align:center;color:var(--text);font-size:13px;box-shadow:0 2px 8px #00000026;transition:border-color .2s,box-shadow .2s}.pipeline-node .node-icon{font-size:22px;margin-bottom:6px}.pipeline-node .node-label{font-weight:600;color:var(--text-bright);font-size:12px;line-height:1.3}.pipeline-node.active{border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow)}.pipeline-node.completed{border-color:var(--green)}.pipeline-node.failed{border-color:var(--red)}.editor-layout{display:flex;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:18px;box-shadow:var(--shadow-md);background:color-mix(in srgb,var(--bg-panel) 90%,transparent)}.file-sidebar{width:220px;border-right:1px solid var(--border);overflow-y:auto;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);flex-shrink:0}.file-sidebar h3{padding:12px 14px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);opacity:.72}.file-group-header{border-top:1px solid color-mix(in srgb,var(--border) 48%,transparent)}.file-item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;font-size:13px;color:var(--text);border-left:2px solid transparent;transition:background .15s,border-color .15s,transform .15s}.file-item span:first-child{opacity:.55}.file-item:hover{background:var(--bg-hover)}.file-item.active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--bg-card);border-left-color:var(--accent);color:var(--text-bright)}.editor-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-panel) 88%,transparent);flex-shrink:0}.editor-toolbar,.run-log-header,.jtv-toolbar{min-height:52px}.editor-toolbar .file-path{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);opacity:.88}.editor-toolbar-actions{display:flex;gap:8px;align-items:center}.editor-mode-toggle{background:color-mix(in srgb,var(--bg-card) 68%,transparent);border-radius:999px}.editor-mode-button{border-radius:999px}.editor-container{flex:1;overflow:auto}.editor-container .cm-editor{height:100%;font-size:13px}.editor-container .cm-editor .cm-content{font-family:var(--font-mono)}.run-layout{display:flex;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:18px;box-shadow:var(--shadow-md);background:color-mix(in srgb,var(--bg-panel) 90%,transparent)}.run-config{width:340px;border-right:1px solid var(--border);overflow-y:auto;padding:18px;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);flex-shrink:0}.run-config h3{font-size:16px;color:var(--text-bright);margin-bottom:16px;letter-spacing:-.02em}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:11px;color:var(--text-dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font-sans);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)}.form-group textarea{min-height:80px;resize:vertical;font-family:var(--font-mono);font-size:12px}.run-log{flex:1;display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--bg) 88%,var(--bg-panel))}.run-log-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-panel) 88%,transparent);flex-shrink:0}.log-stream{flex:1;overflow-y:auto;padding:14px 16px 18px;font-family:var(--font-mono);font-size:12px;line-height:1.75;background:var(--bg)}.log-line{display:flex;gap:8px;padding:2px 0}.log-line .ts{color:var(--text-dim);flex-shrink:0}.log-line .msg{color:var(--text);word-break:break-word}.log-line .msg.error{color:var(--red)}.log-line .msg.stage{color:var(--accent)}@keyframes stage-pulse{0%,to{opacity:1}50%{opacity:.5}}.stage-running-indicator{animation:stage-pulse 1.5s ease-in-out infinite}.results-layout{display:flex;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:18px;box-shadow:var(--shadow-md);background:color-mix(in srgb,var(--bg-panel) 90%,transparent)}.results-list{width:280px;border-right:1px solid var(--border);overflow-y:auto;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);flex-shrink:0}.result-item{display:flex;flex-direction:column;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s,border-color .15s,transform .15s}.result-item:hover{background:var(--bg-hover)}.result-item.active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent 72%),var(--bg-card);box-shadow:inset 2px 0 0 var(--accent)}.result-item .name{font-size:13px;color:var(--text-bright);font-weight:600;line-height:1.35}.result-item .meta{font-size:11px;color:var(--text-dim);margin-top:4px;line-height:1.45}.results-detail{flex:1;overflow:auto;padding:20px;background:color-mix(in srgb,var(--bg) 84%,transparent)}.results-detail pre{background:var(--bg-card);padding:16px;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);overflow:auto;font-family:var(--font-mono);font-size:12px;color:var(--text);line-height:1.5}.agents-panel{background:color-mix(in srgb,var(--bg-panel) 82%,transparent);border:1px solid color-mix(in srgb,var(--border) 76%,transparent);border-radius:18px;box-shadow:var(--shadow-md);overflow:hidden}.agents-tabbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.agents-tab-btn{opacity:.78}.agents-tab-btn.active{opacity:1}.agents-view{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-panel) 70%,transparent),transparent 40%)}.agents-chip-row{flex-wrap:wrap}.agents-chip{background:color-mix(in srgb,var(--bg-card) 56%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.agents-stage-list{background:color-mix(in srgb,var(--bg-panel) 60%,transparent)}.agents-stage-card,.agents-factory-card,.agents-detail-card,.agents-status-card{box-shadow:none!important}.agents-stage-card,.agents-factory-card{background:color-mix(in srgb,var(--bg-card) 68%,transparent)!important;border-color:color-mix(in srgb,var(--border) 82%,transparent)!important}.agents-stage-card.active,.agents-factory-card.active{background:color-mix(in srgb,var(--accent-glow) 55%,transparent)!important}.agents-detail{background:linear-gradient(180deg,rgba(255,255,255,.015),transparent 35%)}.agents-section-title{letter-spacing:-.02em}.review-layout{display:flex;height:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:18px;box-shadow:var(--shadow-md);background:color-mix(in srgb,var(--bg-panel) 90%,transparent)}.review-browser{width:280px;border-right:1px solid var(--border);overflow-y:auto;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);flex-shrink:0;display:flex;flex-direction:column}.review-detail{flex:1;overflow:hidden;background:color-mix(in srgb,var(--bg) 84%,transparent);display:flex;flex-direction:column;min-width:0}.review-sidebar{width:380px;border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;background:color-mix(in srgb,var(--bg-panel) 92%,transparent)}.review-chat-dots span{display:inline-block;animation:review-bounce 1.4s ease-in-out infinite;font-size:24px;color:var(--text-dim);line-height:1}.review-chat-dots span:nth-child(2){animation-delay:.16s}.review-chat-dots span:nth-child(3){animation-delay:.32s}@keyframes review-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.mv-component-wrapper{position:relative}.mv-edit-btn{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-dim);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,border-color .15s,background .15s;z-index:5;padding:0}.mv-component-wrapper:hover .mv-edit-btn{opacity:1}.mv-edit-btn:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.mv-regen-btn{position:absolute;top:4px;right:36px;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-dim);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,border-color .15s,background .15s;z-index:5;padding:0}.mv-component-wrapper:hover .mv-regen-btn{opacity:1}.mv-regen-btn:hover{border-color:#f59e0b;background:#f59e0b1a;color:#f59e0b}.annotation-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s}.annotation-card.editing{border-color:var(--accent)}.verdict-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.verdict-pass{background:#1dafa326;color:var(--green)}.verdict-fail{background:#f93a6926;color:var(--red)}.verdict-none{background:var(--bg-hover);color:var(--text-dim)}.issue-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;background:#364ef126;color:var(--accent);text-transform:capitalize}.review-form{padding:18px;overflow-y:auto;background:color-mix(in srgb,var(--bg-panel) 92%,transparent)}.json-tree-viewer{display:flex;flex-direction:column;height:100%}.jtv-toolbar{display:flex;align-items:center;padding:6px 12px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0}.jtv-content{flex:1;overflow:auto;padding:12px}.jv-tree{font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--text);background:transparent;padding:0;margin:0;white-space:pre-wrap;word-break:break-word}.jv-toggle{cursor:pointer;color:var(--text-dim);font-size:10px;margin-right:4px;-webkit-user-select:none;user-select:none}.jv-toggle:hover{color:var(--accent)}.jv-bracket{color:var(--text-dim)}.jv-key{color:var(--accent)}.jv-str{color:var(--green)}.jv-num{color:var(--orange)}.jv-bool{color:var(--purple)}.jv-null{color:var(--red);font-style:italic}.jv-count{color:var(--text-dim);font-size:10px;margin-left:4px}.jv-indent{margin-left:16px}.jv-row{line-height:1.6}.detail-with-annotations{display:flex;flex-direction:column;height:100%;overflow:hidden}.detail-content{flex:1;overflow:auto;min-height:0}.annotation-drawer{border-top:1px solid var(--border);flex-shrink:0;max-height:50%;display:flex;flex-direction:column}.annotation-drawer-toggle{display:flex;align-items:center;width:100%;padding:10px 14px;border:none;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);color:var(--text-bright);font-size:12px;font-weight:600;cursor:pointer;text-align:left;transition:background .15s}.annotation-drawer-toggle:hover{background:var(--bg-hover)}.annotation-drawer-body{overflow-y:auto;flex:1}.annotation-list{padding:12px}.cmp-layout{display:flex;flex:1;min-height:0;overflow:hidden;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel)}.cmp-sidebar{width:220px;min-width:220px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg)}.cmp-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.cmp-sidebar-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-weight:700}.cmp-sidebar-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-dim);font-size:12px;padding:24px}.cmp-history-list{flex:1;overflow-y:auto;padding:6px}.cmp-history-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px;border:none;border-radius:8px;background:transparent;cursor:pointer;text-align:left;font-family:var(--font-sans);transition:background .12s;color:var(--text)}.cmp-history-item:hover{background:var(--bg-hover)}.cmp-history-item.active{background:var(--accent-glow)}.cmp-history-topic{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmp-history-meta{font-size:10px;color:var(--text-dim)}.cmp-main{flex:1;min-height:0;min-width:0;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.cmp-setup{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-shrink:0}.cmp-setup.collapsed .cmp-setup-body{display:none}.cmp-setup-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;-webkit-user-select:none;user-select:none}.cmp-title{font-size:15px;font-weight:700;color:var(--text-bright);margin:0}.cmp-setup-body{padding:0 18px 18px;display:flex;flex-direction:column;gap:14px}.cmp-presets{display:flex;flex-wrap:wrap;gap:6px}.cmp-preset-chip{padding:5px 12px;border-radius:16px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);font-size:11px;font-family:var(--font-sans);cursor:pointer;transition:all .15s}.cmp-preset-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.cmp-preset-chip:disabled{opacity:.5;cursor:not-allowed}.cmp-form-grid{display:grid;grid-template-columns:120px 1fr;gap:12px}.cmp-model-section{margin-top:2px}.cmp-section-label{display:block;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.3px;font-weight:700;margin-bottom:8px}.cmp-model-groups{display:flex;flex-direction:column;gap:10px}.cmp-model-group-label{font-size:10px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.cmp-provider-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.model-grid{display:flex;flex-wrap:wrap;gap:8px}.model-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:12px;color:var(--text);transition:border-color .15s,background .15s,transform .15s}.model-chip:hover{transform:translateY(-1px)}.model-chip.selected{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.cmp-actions{display:flex;align-items:center;gap:12px}.cmp-hint{font-size:11px;color:var(--text-dim)}.cmp-btn-running{display:inline-flex;align-items:center;gap:8px}.cmp-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:cmp-spin .6s linear infinite}@keyframes cmp-spin{to{transform:rotate(360deg)}}.cmp-error{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f93a6914;border:1px solid rgba(249,58,105,.25);border-radius:8px;color:var(--red);font-size:13px}.cmp-progress{padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.cmp-progress-header{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:13px;color:var(--text);font-weight:600}.cmp-progress-cards{display:flex;gap:10px;flex-wrap:wrap}.cmp-progress-card{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;border:1px solid var(--border);background:var(--bg-panel);flex:1;min-width:180px;transition:border-color .2s,opacity .2s}.cmp-progress-card.pending{opacity:.5}.cmp-progress-card.active{border-width:2px;opacity:1}.cmp-progress-card.done{opacity:1}.cmp-progress-card-icon{font-size:18px;width:24px;text-align:center}.cmp-progress-stage{margin-left:auto;font-size:10px;color:var(--text-dim);font-family:var(--font-mono, monospace);text-transform:lowercase;background:#ffffff0a;padding:2px 8px;border-radius:4px}.cmp-progress-score{margin-left:auto;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.cmp-provider-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.2px;margin-right:4px}.cmp-model-name{font-size:12px;color:var(--text);font-weight:500}.cmp-results{display:flex;flex-direction:column;gap:16px}.cmp-winner-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#1dafa314;border:1px solid rgba(29,175,163,.2);border-radius:10px;font-size:13px;color:var(--text);flex-wrap:wrap}.cmp-winner-icon{font-size:20px}.cmp-results-actions{margin-left:auto;display:flex;gap:6px}.cmp-cards{display:grid;gap:14px}.cmp-card{background:var(--bg-card);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s,box-shadow .2s}.cmp-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.cmp-card.winner{box-shadow:0 0 0 1px #1dafa333,var(--shadow-sm)}.cmp-card-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cmp-card-model{font-size:14px;font-weight:700;color:var(--text-bright)}.cmp-winner-badge{margin-left:auto;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;background:#1dafa31f;color:var(--green)}.cmp-score-section{display:flex;justify-content:center;padding:4px 0}.cmp-score-circle{width:72px;height:72px;border-radius:50%;border:3px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:border-color .3s}.cmp-score-value{font-size:22px;font-weight:800;line-height:1;font-family:var(--font-mono)}.cmp-score-label{font-size:10px;color:var(--text-dim)}.cmp-metrics{display:flex;flex-direction:column;gap:8px}.cmp-metric-row{display:flex;flex-direction:column;gap:3px}.cmp-metric-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-dim)}.cmp-metric-value{font-weight:600;color:var(--text);font-family:var(--font-mono);font-size:11px;display:inline-flex;align-items:center;gap:4px}.cmp-metric-value.best{color:var(--green)}.cmp-best-tag{font-size:8px;font-weight:700;padding:1px 4px;border-radius:3px;background:#1dafa326;color:var(--green);text-transform:uppercase;letter-spacing:.3px}.cmp-metric-bar-track{height:4px;background:var(--bg-panel);border-radius:2px;overflow:hidden}.cmp-metric-bar-fill{height:100%;border-radius:2px;background:var(--border-strong);transition:width .6s cubic-bezier(.4,0,.2,1)}.cmp-metric-bar-fill.best{background:var(--green)}.cmp-expand-btn{width:100%;padding:8px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-dim);font-size:11px;font-family:var(--font-sans);cursor:pointer;transition:all .15s}.cmp-expand-btn:hover{background:var(--bg-hover);color:var(--text)}.cmp-component-breakdown{padding:10px;background:var(--bg-panel);border-radius:8px;border:1px solid var(--border)}.cmp-component-row{display:flex;justify-content:space-between;padding:3px 0;font-size:11px}.cmp-component-type{color:var(--text-dim);font-family:var(--font-mono)}.cmp-component-count{color:var(--text);font-weight:600;font-family:var(--font-mono)}.cmp-validation-issues{margin-top:8px;border-top:1px solid var(--border);padding-top:6px}.cmp-issue{font-size:10px;color:var(--yellow);padding:2px 0}.cmp-detail-table{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.cmp-detail-table summary{padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.cmp-detail-table summary::-webkit-details-marker{display:none}.cmp-detail-table summary:hover{color:var(--text)}.cmp-detail-table[open] summary{border-bottom:1px solid var(--border)}.cmp-detail-table .data-table{margin:0}.cmp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--text-dim);padding:60px 24px}.cmp-empty-icon{font-size:48px;opacity:.6}.cmp-empty h4{color:var(--text);font-size:16px;font-weight:700;margin:0}.cmp-empty p{max-width:380px;line-height:1.5;font-size:13px;margin:0}.btn-xs{padding:3px 8px;font-size:10px;border-radius:6px}.btn{padding:9px 16px;border:none;border-radius:10px;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:600;transition:opacity .15s,background .15s,transform .15s,box-shadow .15s,border-color .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 84%,white 6%),var(--accent-dim));color:#fff;box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 22%,transparent)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 26px color-mix(in srgb,var(--accent) 28%,transparent)}.btn-danger{background:var(--red);color:#fff}.btn-ghost{background:color-mix(in srgb,var(--bg-card) 58%,transparent);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);transform:translateY(-1px)}.btn-sm{padding:4px 10px;font-size:12px}.badge,.verdict-badge,.issue-tag{letter-spacing:.02em}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.18);border-top-color:currentColor;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;flex-shrink:0}.data-table{width:100%;border-collapse:collapse;margin-top:12px}.data-table th{text-align:left;padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border)}.data-table td{padding:8px 12px;font-size:13px;border-bottom:1px solid var(--border)}.data-table tr:hover td{background:var(--bg-hover)}.md-table{width:100%;border-collapse:collapse;margin:12px 0}.md-table th,.md-table td{padding:8px 12px;font-size:13px;border:1px solid var(--border);text-align:left}.md-table th{font-weight:600;color:var(--text-dim);background:var(--bg-hover)}.md-table tr:hover td{background:var(--bg-hover)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.jdv-label{font-size:12px;font-weight:600;color:var(--text-bright);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-green{background:#1dafa326;color:var(--green)}.badge-yellow{background:#f99c0726;color:var(--yellow)}.badge-red{background:#f93a6926;color:var(--red)}.badge-blue{background:var(--accent-glow);color:var(--accent)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:14px;gap:8px;text-align:center}.empty-state .icon{font-size:40px;opacity:.3}.toast{position:fixed;bottom:20px;right:20px;padding:12px 18px;border-radius:12px;font-size:13px;z-index:1000;animation:slideIn .2s ease;box-shadow:var(--shadow-md)}.toast-success{background:var(--green);color:#000}.toast-error{background:var(--red);color:#fff}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.tab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.file-item:focus-visible,.result-item:focus-visible,.model-chip:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.result-item .name,.result-item .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item{overflow:hidden}.file-item span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group textarea{max-height:200px}.log-line .msg{word-break:break-word;min-width:0}@media(max-width:768px){.app-main{padding:8px;gap:8px}.app-header{align-items:flex-start;flex-direction:column;padding:12px 14px}.app-header-brand{width:100%}.app-header-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.app-header-user{order:10;max-width:100%;width:100%;padding:4px 2px 0}.app-header h1{font-size:13px}.tab-nav{-webkit-overflow-scrolling:touch;gap:12px;padding:8px 8px 0}.tab-group{gap:4px}.tab-group-label{font-size:9px}.tab-btn{padding:8px 10px;font-size:12px}.editor-layout,.run-layout,.results-layout,.review-layout{border-radius:14px}.editor-layout{flex-direction:column}.file-sidebar{width:100%;max-height:140px;border-right:none;border-bottom:1px solid var(--border)}.run-layout{flex-direction:column}.run-config{width:100%;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}.results-layout{flex-direction:column}.results-list{width:100%;max-height:200px;border-right:none;border-bottom:1px solid var(--border)}.review-layout{flex-direction:column}.review-browser{width:100%;max-height:200px;border-right:none;border-bottom:1px solid var(--border)}.review-sidebar{width:100%;max-height:50vh;border-left:none;border-top:1px solid var(--border)}.cmp-layout{flex-direction:column}.cmp-sidebar{width:100%;min-width:unset;max-height:140px;border-right:none;border-bottom:1px solid var(--border)}.cmp-main{padding:12px}.cmp-cards{grid-template-columns:1fr!important}.cmp-form-grid{grid-template-columns:1fr}.cmp-winner-banner{flex-direction:column;text-align:center}.cmp-results-actions{margin-left:0}.model-grid{flex-direction:column}.data-table{font-size:11px}.data-table th,.data-table td{padding:6px 8px}}.pill-viewer{padding:16px;font-family:var(--font-sans)}.pill-viewer-header{margin-bottom:16px}.pill-viewer-title{font-size:16px;font-weight:600;color:var(--text-bright);text-transform:capitalize;margin-bottom:6px}.pill-viewer-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.pill-cards{display:flex;flex-direction:column;gap:12px}.pill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.pill-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pill-card-index{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.pill-card-type{font-size:11px;color:var(--accent);background:var(--accent-glow);padding:2px 6px;border-radius:var(--radius-sm);text-transform:capitalize}.pill-card-title{font-size:15px;font-weight:600;color:var(--text-bright);margin-bottom:4px}.pill-card-subtitle{font-size:13px;color:var(--text-dim);margin-bottom:8px}.pill-card-desc{font-size:13px;color:var(--text);line-height:1.6;margin-top:6px}.shot-viewer{padding:16px;font-family:var(--font-sans)}.shot-viewer-header{margin-bottom:16px}.shot-viewer-title{font-size:16px;font-weight:600;color:var(--text-bright);margin-bottom:6px}.shot-question{font-size:15px;color:var(--text);line-height:1.6;margin-bottom:16px;padding:12px 14px;background:var(--bg-card);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.shot-answers{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.shot-answer{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.shot-answer.correct{border-color:var(--green);background:#1dafa30f}.shot-answer.incorrect{border-color:var(--border)}.shot-answer-header{margin-bottom:6px}.answer-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.4px}.shot-answer-text{font-size:14px;color:var(--text);line-height:1.5;margin-bottom:4px}.shot-answer-explanation{font-size:12px;color:var(--text-dim);line-height:1.5;margin-top:6px;font-style:italic}.shot-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px}.shot-tips{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.shot-tip{font-size:13px;color:var(--text);line-height:1.6;margin-bottom:6px}.shot-tip:last-child{margin-bottom:0}.auth-loading{font-family:var(--font-body);font-size:14px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}
