@font-face{font-family:"Baloo 2";src:url(/fonts/baloo-2-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}.harness-shell{display:flex;flex-direction:column;gap:12px;max-width:1280px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--surface, #f5f5f5);padding:12px 20px 20px;border-radius:8px;height:600px;box-shadow:0 1px 3px #0000001a}.harness-shell.llm-fullscreen{position:fixed;inset:0;z-index:50;height:100vh;max-width:none;margin:0;border-radius:0}.harness-toolbar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.harness-toolbar-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#999}.harness-toolbar-actions{display:flex;align-items:center;gap:8px}.btn-toolbar{font-size:11px;padding:4px 10px;background:none;border:1px solid #d1d5db;border-radius:4px;color:#666;cursor:pointer;transition:background .2s}.btn-toolbar:hover:not(:disabled){background:#f3f4f6}.btn-toolbar:disabled{opacity:.5;cursor:not-allowed}.llm-harness-container{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:16px}.harness-settings-panel{width:300px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;transition:width .15s ease}.harness-settings-panel .log-header{padding:0 0 10px;border-bottom:1px solid #f0f0f0}.harness-settings-panel .log-header h3{font-size:16px}.settings-subtitle{margin-top:-8px}.challenge-lock-note{margin-top:-8px;padding:6px 8px;border:1px solid #f0c36a;border-radius:4px;background:#fffbeb;color:#92400e;font-size:11px;font-weight:600}.harness-settings-panel.settings-collapsed{width:42px;padding:8px 0;gap:0;align-items:center;overflow:hidden}.harness-settings-panel.settings-collapsed .log-header{padding:0;border-bottom:none;justify-content:center}.panel-header{display:flex;flex-direction:column;gap:4px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.panel-header h3{margin:0;font-size:16px;font-weight:600;color:#1a1a1a}.panel-info{font-size:12px;color:#666}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-section h4{margin:0;font-size:13px;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.5px}.lock-badge{font-size:11px;letter-spacing:0}.settings-section+.settings-section{border-top:1px solid #ececec;padding-top:16px}.budget-control{display:flex;flex-direction:column;gap:4px}.budget-control-label{display:flex;justify-content:space-between;font-size:12px;color:#555}.budget-slider{width:100%;accent-color:#2563eb;cursor:pointer}.budget-slider-ends{display:flex;justify-content:space-between;font-size:10px;color:#999}.model-select{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;font-family:inherit;background:#fafafa;color:#1a1a1a;cursor:pointer}.model-select:focus{outline:none;border-color:#2563eb}.model-select:disabled{opacity:.6;cursor:not-allowed}.btn-load-model{padding:10px 14px;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-load-model:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.btn-load-model:disabled{background:#10b981;cursor:default}.btn-load-model.loaded{background:#10b981}.status-text{display:block;font-size:11px;color:#666;margin-top:4px}.model-note{display:block;font-size:11px;color:#999;margin-top:4px;line-height:1.4}.checkbox-group{display:flex;flex-direction:column;gap:8px}.checkbox-label{display:flex;gap:8px;cursor:pointer;padding:6px;border-radius:4px;transition:background .2s;align-items:flex-start}.checkbox-label:hover{background:#f5f5f5}.checkbox-label input[type=checkbox]{margin-top:3px;cursor:pointer;flex-shrink:0;width:16px;height:16px}.checkbox-label input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.feature-name{font-weight:500;font-size:13px;color:#1a1a1a}.feature-desc{font-size:11px;color:#999}.checkbox-label.feature-coming-soon{opacity:.55;cursor:not-allowed}.checkbox-label.feature-coming-soon:hover{background:transparent}.system-prompt-input{margin-left:24px;width:calc(100% - 24px);padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;font-family:inherit;resize:vertical;background:#fafafa;color:#1a1a1a}.system-prompt-input:focus{outline:none;border-color:#2563eb}.loop-turns-control{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 0 24px}.loop-turns-control label{font-size:12px;color:#555}.loop-turns-input{width:60px;padding:4px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;font-family:inherit;background:#fafafa;color:#1a1a1a}.loop-turns-input:focus{outline:none;border-color:#2563eb}.harness-chat-panel{background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:flex;flex-direction:column;overflow:hidden}.chat-column{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.chat-column .harness-chat-panel{flex:1 1 auto;min-height:0}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #f0f0f0}.chat-header h3{margin:0;font-size:16px;font-weight:600;color:#1a1a1a}.chat-status{display:flex;align-items:center;gap:6px;font-size:12px;color:#666}.btn-fullscreen{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:1px solid #d1d5db;border-radius:4px;color:#666;cursor:pointer;transition:background .2s}.btn-fullscreen:hover{background:#f3f4f6}.fullscreen-icon{width:16px;height:16px}.status-dot{width:8px;height:8px;border-radius:50%;background:#d1d5db;transition:background .2s}.status-dot.active{background:#10b981}.messages-container{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#999;text-align:center}.empty-state p{margin:0;font-size:13px}.empty-state .hint{font-size:12px;color:#bbb;margin-top:8px}.message{display:flex;flex-direction:column;gap:4px;animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-role{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666}.message-user .message-role{color:#2563eb}.message-assistant .message-role{color:#10b981}.message-content{padding:10px 12px;border-radius:4px;font-size:13px;line-height:1.5;word-wrap:break-word;white-space:pre-wrap}.message-user .message-content{background:#dbeafe;color:#1e40af}.message-assistant .message-content{background:#ecfdf5;color:#065f46}.replay-presets{display:flex;flex-direction:column;gap:8px}.replay-preset-btn{display:flex;flex-direction:column;gap:3px;text-align:left;padding:8px 10px;border:1px solid #c4b5fd;border-radius:4px;background:#f5f3ff;cursor:pointer;transition:border-color .15s,background .15s}.replay-preset-btn:hover{border-color:#7c3aed;background:#ede9fe}.replay-preset-btn:disabled{opacity:.58;cursor:not-allowed}.replay-preset-btn:disabled:hover{border-color:#c4b5fd;background:#f5f3ff}.replay-preset-btn.active{border-color:#7c3aed;background:#ede9fe;box-shadow:inset 0 0 0 1px #7c3aed}.challenge-preset.active{border-color:#16a34a;background:#f0fdf4;box-shadow:inset 0 0 0 1px #16a34a}.challenge-preset.active .replay-preset-label{color:#166534}.challenge-selected-check{color:#16a34a;font-weight:800}.replay-preset-label{font-size:12px;font-weight:600;color:#5b21b6}.replay-preset-desc{font-size:11px;color:#6b7280;line-height:1.4}.challenge-box{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:#fffbeb;border:1px solid #f0c36a;border-radius:12px;box-shadow:0 1px 3px #78350f14;color:#422006}.challenge-box-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.challenge-box-heading h3{margin:1px 0 0;font-size:16px;color:#78350f}.challenge-eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b45309}.challenge-lock{flex-shrink:0;font-size:10px;font-weight:600;color:#92400e}.challenge-goal{margin:0;font-size:12px;line-height:1.45}.challenge-chips{display:flex;flex-wrap:wrap;gap:6px}.challenge-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:2px}.challenge-chip{padding:3px 7px;border:1px solid #f0c36a;border-radius:999px;background:#fff;color:#92400e;font-size:10px;font-weight:600}.challenge-btn{padding:8px 12px;border:1.5px solid #b45309;border-radius:7px;background:#fff;color:#78350f;font:inherit;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px #78350f1f;transition:background .12s,box-shadow .12s}.challenge-btn:hover{background:#fef3c7}.challenge-btn-primary{border-color:#15803d;background:#16a34a;color:#fff;box-shadow:0 1px 3px #16653459}.challenge-btn-primary:hover{background:#15803d}.challenge-result{padding:10px;border:1px solid #e5b94d;border-radius:5px;background:#ffffffb8}.challenge-result.passed{border-color:#6dbb8a;background:#f0fdf4}.challenge-result-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 9px;font-size:11px}.challenge-stars{font-size:13px}.challenge-checks{display:grid;gap:3px;margin:8px 0;padding:0;list-style:none;font-size:11px}.challenge-checks li{display:flex;gap:6px}.challenge-checks li.passed{color:#166534}.challenge-checks li.failed{color:#b91c1c}.challenge-checks li.bonus{color:#92702a}.challenge-checks li.bonus.earned{color:#b45309;font-weight:600}.challenge-result-empty{margin:0;font-size:12px;font-weight:600}.challenge-copy{margin-top:2px}.replay-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:12px;box-shadow:0 1px 3px #5b21b614;font-size:12px;font-weight:600;color:#5b21b6}.replay-banner-exit{border:1px solid #7c3aed;background:transparent;color:#5b21b6;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.replay-banner-exit:hover{background:#ede9fe}.message-plan .message-role{color:#7c3aed}.message-plan .message-content{background:#f5f3ff;color:#5b21b6}.message-toolcall .message-role{color:#d97706}.tool-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 10px;border:1px solid #fcd34d;border-radius:4px;background:#fffbeb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#92400e}.tool-chip-icon{font-size:13px}.tool-chip-status{font-size:11px;color:#b45309}.tool-chip.in-progress{border-style:dashed}.tool-chip.error{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.tool-chip.error .tool-chip-status{color:#dc2626}.tool-chip .spinner{border-top-color:#d97706}.message-content.streaming:after{content:"▍";animation:caret-blink 1s steps(1) infinite}@keyframes caret-blink{50%{opacity:0}}.context-meter{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid #f0f0f0;font-size:11px;color:#666}.context-meter-header{display:flex;justify-content:space-between;font-weight:600;color:#374151}.context-meter-header--log{padding:8px 12px 4px}.context-meter-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:#e5e7eb}.context-seg{display:block;min-width:2px}.context-seg-system{background:#f59e0b}.context-seg-memory{background:#8b5cf6}.context-seg-user{background:#2563eb}.context-seg-loop{background:#059669}.tool-sublist{margin-left:24px;display:flex;flex-direction:column;gap:2px}.tool-sublist .feature-name{font-size:12px;font-weight:400;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.system-state{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-bottom:1px solid #f0f0f0;font-size:11px;color:#666}.system-state-row{display:flex;gap:8px}.system-state-key{flex-shrink:0;width:44px;color:#999;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.system-state-value{min-width:0;word-break:break-word;white-space:pre-line;color:#555;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.context-meter-header .over-budget{color:#dc2626;font-weight:600}.context-meter-legend{display:flex;gap:12px;flex-wrap:wrap}.context-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}.chat-error{padding:8px 16px;border-top:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-size:12px}.prompt-inspector{border-bottom:1px solid #f0f0f0;padding:8px 12px;font-size:11px}.panel-subheader{padding:8px 12px 0;font-size:11px;color:#666}.prompt-inspector pre{margin:8px 0 0;max-height:140px;overflow:auto;color:#1f2937;background:#f6f6f6;border:1px solid #e5e7eb;border-radius:4px;padding:8px;white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.5}.chat-actions{padding:8px 16px;border-top:1px solid #f0f0f0;display:flex;gap:8px}.btn-clear{padding:6px 12px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.btn-clear:hover{background:#e5e7eb}.chat-input-area{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #f0f0f0;background:#fafafa}.chat-input{flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;font-family:inherit;color:#1f2937;background:#fff;transition:border-color .2s}.chat-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.chat-input:disabled{background:#f3f4f6;color:#999;cursor:not-allowed}.btn-send{padding:8px 16px;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.btn-send:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.btn-send:disabled{background:#9ca3af;cursor:not-allowed}.generation-info{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid #f0f0f0;font-size:12px;color:#666;background:#f9fafb}.spinner{width:12px;height:12px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.harness-log-panel{width:260px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;transition:width .15s ease}.harness-log-panel.log-collapsed{width:42px}.log-header{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid #f0f0f0}.log-collapsed .log-header{border-bottom:none;justify-content:center;padding:12px 8px}.log-header h3{margin:0;flex:1;font-size:14px;font-weight:600;color:#1a1a1a;white-space:nowrap}.log-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:1px solid #d1d5db;border-radius:4px;color:#666;font-size:11px;cursor:pointer;flex-shrink:0}.log-toggle:hover{background:#f3f4f6}.log-entries{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}.log-empty{color:#999;font-family:inherit}.log-entry{display:flex;gap:8px}.log-time{color:#b3b3b3;flex-shrink:0}.log-text{min-width:0;word-break:break-word;color:#555}.log-model .log-text{color:#2563eb}.log-prompt .log-text{color:#7c3aed}.log-gen .log-text{color:#059669}.log-tool .log-text{color:#d97706}.log-error .log-text{color:#dc2626}.log-output .log-text{color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;background:#f8fafc;border-left:2px solid #94a3b8;padding:2px 6px;border-radius:2px}.log-phase{margin-top:4px;padding-top:6px;border-top:1px solid #e5e7eb}.log-entry.log-phase:first-child{margin-top:0;border-top:none;padding-top:0}.log-phase .log-text{color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:10px}.log-decision .log-text{color:#b45309;font-weight:600;border-left:2px solid #f59e0b;padding:1px 6px;border-radius:2px;background:#fffbeb}.log-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;margin:8px auto 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.08em;color:#999;white-space:nowrap}.tool-state-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px 12px}.tool-state-tools{display:flex;flex-direction:column;gap:4px}.tool-state-tool{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:5px 7px;border:1px solid #eee;border-radius:4px}.tool-state-tool code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#1a1a1a;word-break:break-word}.tool-state-note{flex-shrink:0;font-size:10px;color:#999}.tool-state-db{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding-top:8px;border-top:1px solid #eee}.tool-state-shared{font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;color:#999}.tool-state-db-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.tool-state-db-actions{display:flex;gap:6px}.menu-table{display:flex;flex-direction:column;gap:8px}.menu-row{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid #eee;border-radius:4px}.menu-row-top{display:flex;align-items:center;gap:6px}.menu-id{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#999}.menu-name-input{flex:1;min-width:0;padding:3px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;font-weight:600;color:#1a1a1a;background:#fff}.menu-text-input{width:100%;padding:4px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:11px;line-height:1.4;font-family:inherit;resize:vertical;color:#333;background:#fafafa}.menu-name-input:focus,.menu-text-input:focus{outline:none;border-color:#2563eb}.menu-delete{flex-shrink:0;width:22px;height:22px;padding:0;border:1px solid #e5e7eb;border-radius:4px;background:none;color:#b91c1c;font-size:11px;cursor:pointer}.menu-delete:hover{background:#fef2f2}.tool-result{align-self:flex-start;max-width:100%;margin-top:2px;font-size:11px}.tool-result summary{cursor:pointer;color:#b45309;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tool-result pre{margin:6px 0 0;max-height:140px;overflow:auto;background:#fffbeb;border:1px solid #fcd34d;border-radius:4px;padding:6px 8px;white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.5;color:#92400e}.harness-scrubber{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:8px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.harness-scrubber.replaying{border-color:#f0c675;box-shadow:inset 0 0 0 1px #f5d99a}.scrubber-transport{display:flex;align-items:center;gap:4px;flex-shrink:0}.scrubber-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:#f7f7f7;border:1px solid #d1d5db;border-radius:4px;color:#444;font-size:12px;line-height:1;cursor:pointer;transition:background .15s}.scrubber-btn:hover:not(:disabled){background:#eaeaea}.scrubber-btn:disabled{opacity:.4;cursor:not-allowed}.scrubber-btn-play{color:#1d9e75;font-size:11px}.scrubber-track{position:relative;flex:1;min-width:40px;height:26px;display:flex;align-items:center}.scrubber-track:focus-within{outline:2px solid rgba(37,99,235,.4);outline-offset:2px;border-radius:4px}.scrubber-ticks{position:absolute;inset:0;display:flex;align-items:stretch;gap:1px;height:12px;margin:auto 0;border-radius:3px;overflow:hidden;background:#ececec}.scrubber-tick{flex:1 1 0;min-width:1px;opacity:.85}.scrubber-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#1a1a1a;border-radius:1px;pointer-events:none;transition:left .12s ease}.scrubber-playhead:after{content:"";position:absolute;top:-1px;left:-3px;width:8px;height:8px;border-radius:50%;background:#1a1a1a}.scrubber-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}.scrubber-range:disabled{cursor:default}.scrubber-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:2px;height:26px}.scrubber-range::-moz-range-thumb{width:2px;height:26px;border:none;background:transparent}.scrubber-readout{display:flex;align-items:center;gap:10px;flex-shrink:0;font-size:11px;color:#666}.scrubber-step{white-space:nowrap;color:#888;min-width:12ch}.scrubber-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.scrubber-pill.live{color:#1d9e75;background:#1d9e751f;border-color:#1d9e7559}.scrubber-pill.replay{color:#b5791f;background:#c98a2b24;border-color:#c98a2b66;cursor:pointer}.scrubber-pill.replay:hover{background:#c98a2b3d}.scrubber-pill.frozen{color:#7c3aed;background:#7c3aed1f;border-color:#7c3aed66;cursor:pointer}.scrubber-pill.frozen:hover{background:#7c3aed38}@media (max-width: 768px){.harness-scrubber{flex-wrap:wrap}.scrubber-track{order:3;flex-basis:100%}.harness-shell{height:auto;max-height:85vh}.harness-shell.llm-fullscreen{height:100vh;max-height:none;overflow-y:auto}.llm-harness-container{grid-template-columns:1fr}.harness-settings-panel,.harness-settings-panel.settings-collapsed{width:100%;max-height:250px}.harness-chat-panel{min-height:300px}.harness-log-panel,.harness-log-panel.log-collapsed{width:100%}.log-entries{max-height:200px}.log-collapsed-label{writing-mode:horizontal-tb;margin:0 auto 8px}}@media (prefers-color-scheme: dark){.harness-shell{background:#1a1a1a}.harness-settings-panel,.harness-chat-panel{background:#2d2d2d;border-color:#444;color:#e0e0e0}.panel-header,.harness-settings-panel .log-header{border-bottom-color:#444}.panel-header h3,.settings-section h4,.chat-header h3,.feature-name{color:#e0e0e0}.settings-section+.settings-section{border-top-color:#3a3a3a}.challenge-lock-note{border-color:#765421;background:#332817;color:#f6c86b}.panel-info,.status-text,.chat-status,.feature-desc{color:#999}.checkbox-label:hover{background:#3d3d3d}.btn-fullscreen,.btn-toolbar{border-color:#555;color:#999}.btn-fullscreen:hover,.btn-toolbar:hover:not(:disabled){background:#3d3d3d}.model-select{background:#3d3d3d;border-color:#555;color:#e0e0e0}.budget-control-label{color:#aaa}.chat-header{border-bottom-color:#444}.messages-container{background:#252525}.empty-state{color:#666}.empty-state .hint{color:#555}.message-user .message-content{background:#1e3a5f;color:#7dd3fc}.message-assistant .message-content{background:#1f3a1f;color:#7ee8a0}.replay-presets{border-top-color:#333}.replay-preset-btn{border-color:#5b4b8a;background:#241f38}.replay-preset-btn:hover,.replay-preset-btn.active{border-color:#a78bfa;background:#2a1f4a}.replay-preset-btn:disabled:hover{border-color:#5b4b8a;background:#241f38}.replay-preset-btn.active{box-shadow:inset 0 0 0 1px #a78bfa}.challenge-preset.active{border-color:#22c55e;background:#14311f;box-shadow:inset 0 0 0 1px #22c55e}.challenge-preset.active .replay-preset-label{color:#86efac}.challenge-selected-check{color:#4ade80}.replay-preset-label{color:#c4b5fd}.challenge-box{border-color:#765421;background:#332817;color:#f8e7bd}.challenge-box-heading h3{color:#fde68a}.challenge-eyebrow,.challenge-lock{color:#f6c86b}.challenge-chip,.challenge-btn{border-color:#765421;background:#272116;color:#fde68a}.challenge-btn:hover{background:#45351d}.challenge-btn-primary{border-color:#1f6b3a;background:#15803d;color:#fff}.challenge-btn-primary:hover{background:#166534}.challenge-result,.challenge-result.passed{border-color:#765421;background:#272116}.challenge-result.passed{border-color:#397858}.challenge-checks li.passed{color:#86efac}.challenge-checks li.failed{color:#fca5a5}.challenge-checks li.bonus{color:#b79a63}.challenge-checks li.bonus.earned{color:#fcd34d}.replay-banner{background:#241f38;border-color:#3a2f5a;color:#c4b5fd}.replay-banner-exit{border-color:#a78bfa;color:#c4b5fd}.replay-banner-exit:hover{background:#2a1f4a}.message-plan .message-role{color:#a78bfa}.message-plan .message-content{background:#2a1f4a;color:#c4b5fd}.message-toolcall .message-role{color:#fbbf24}.tool-chip{border-color:#92400e;background:#3a2e1a;color:#fcd34d}.tool-chip-status{color:#d97706}.tool-chip.error{border-color:#7f1d1d;background:#3a1a1a;color:#fca5a5}.tool-chip.error .tool-chip-status{color:#f87171}.btn-clear{background:#3d3d3d;border-color:#555;color:#e0e0e0}.btn-clear:hover{background:#4d4d4d}.chat-input-area{border-top-color:#444;background:#1f1f1f}.chat-input{background:#3d3d3d;border-color:#555;color:#e0e0e0}.chat-input::-moz-placeholder{color:#777}.chat-input::placeholder{color:#777}.chat-input:focus{border-color:#2563eb}.generation-info{background:#252525;border-top-color:#444;color:#999}.system-prompt-input,.loop-turns-input{background:#3d3d3d;border-color:#555;color:#e0e0e0}.loop-turns-control label{color:#aaa}.context-meter{border-bottom-color:#444;color:#999}.context-meter-header{color:#e5e7eb}.context-meter-header .over-budget{color:#fca5a5}.system-state{border-bottom-color:#444;color:#999}.system-state-key{color:#666}.system-state-value{color:#aaa}.panel-subheader{color:#999}.context-meter-bar{background:#3d3d3d}.chat-error{background:#3f1f1f;border-top-color:#7f1d1d;color:#fca5a5}.prompt-inspector{border-bottom-color:#444}.prompt-inspector pre{background:#1f1f1f;border-color:#444;color:#ccc}.harness-log-panel{background:#2d2d2d;border-color:#444}.log-header{border-bottom-color:#444}.log-header h3{color:#e0e0e0}.log-toggle{border-color:#555;color:#999}.log-toggle:hover{background:#3d3d3d}.log-time{color:#666}.log-text{color:#aaa}.tool-state-tool{border-color:#444}.tool-state-tool code{color:#e0e0e0}.tool-state-note,.tool-state-shared{color:#888}.tool-state-db{border-top-color:#444}.menu-row{border-color:#444}.menu-id{color:#777}.menu-name-input{background:#3d3d3d;border-color:#555;color:#e0e0e0}.menu-text-input{background:#333;border-color:#555;color:#ccc}.menu-delete{border-color:#555;color:#fca5a5}.menu-delete:hover{background:#3f1f1f}.log-model .log-text{color:#7dd3fc}.log-prompt .log-text{color:#c4b5fd}.log-gen .log-text{color:#6ee7b7}.log-tool .log-text{color:#fbbf24}.log-error .log-text{color:#fca5a5}.log-output .log-text{color:#cbd5e1;background:#0f172a;border-left-color:#475569}.log-phase{border-top-color:#334155}.log-phase .log-text{color:#94a3b8}.log-decision .log-text{color:#fcd34d;border-left-color:#f59e0b;background:#2a2011}.log-empty,.log-collapsed-label{color:#666}}@media (prefers-color-scheme: dark){.harness-scrubber{background:#2d2d2d;border-color:#444}.harness-scrubber.replaying{border-color:#8a6d3b;box-shadow:inset 0 0 0 1px #6b5424}.scrubber-btn{background:#3a3a3a;border-color:#555;color:#ccc}.scrubber-btn:hover:not(:disabled){background:#454545}.scrubber-btn-play{color:#4cc79b}.scrubber-ticks{background:#1f1f1f}.scrubber-playhead,.scrubber-playhead:after{background:#f0f0f0}.scrubber-readout{color:#aaa}.scrubber-step{color:#888}.scrubber-pill.live{color:#4cc79b;background:#4cc79b26;border-color:#4cc79b66}.scrubber-pill.replay{color:#e2b06a;background:#e2b06a29;border-color:#e2b06a66}.scrubber-pill.replay:hover{background:#e2b06a47}.scrubber-pill.frozen{color:#c4b5fd;background:#a78bfa29;border-color:#a78bfa66}.scrubber-pill.frozen:hover{background:#a78bfa47}.tool-result summary{color:#fcd34d}.tool-result pre{background:#3a2e1a;border-color:#92400e;color:#fcd34d}}@media (prefers-reduced-motion: reduce){.scrubber-playhead{transition:none}}.harness-chat-panel.cafe-chat{--cafe-cream: #fbf3e7;--cafe-oat: #f3e7d3;--cafe-oat-border: #ead9bf;--cafe-ivory: #fffdf9;--cafe-espresso: #43301f;--cafe-cocoa: #6f5540;--cafe-caramel: #c9a06b;--cafe-sage: #a7c4a0;--cafe-sage-deep: #5c7e57;--cafe-user-bubble: #e8f1e3;--cafe-bot-bubble: #ffffff;--cafe-shadow: 0 2px 8px rgba(67, 48, 31, .08);background:var(--cafe-cream);border:1px solid var(--cafe-oat-border);border-radius:18px;font-family:Nunito,Atkinson Hyperlegible,sans-serif}.cafe-chat .chat-header{padding:14px 16px;border-bottom:1px solid var(--cafe-oat-border);background:var(--cafe-ivory)}.cafe-chat .cafe-id{display:flex;align-items:center;gap:10px}.cafe-chat .cafe-avatar{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#f0f6ee;border:2px solid var(--cafe-sage);font-size:17px;flex-shrink:0;box-shadow:var(--cafe-shadow)}.cafe-chat .cafe-id-text{display:flex;flex-direction:column;line-height:1.15}.cafe-chat .cafe-name{font-family:"Baloo 2",Nunito,sans-serif;font-weight:600;font-size:17px;color:var(--cafe-espresso)}.cafe-chat .cafe-tagline{font-size:11px;color:var(--cafe-cocoa)}.cafe-chat .chat-status{color:var(--cafe-cocoa);font-family:Nunito,sans-serif}.cafe-chat .status-dot{background:var(--cafe-caramel)}.cafe-chat .status-dot.active{background:var(--cafe-sage-deep)}.cafe-chat .status-dot.loading{background:var(--cafe-caramel);animation:cafeDotPulse 1s ease-in-out infinite}@keyframes cafeDotPulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.cafe-chat .status-dot.loading{animation:none}}.cafe-chat .chat-input-loadable{cursor:pointer}.cafe-chat .empty-state-loadable{cursor:pointer;border-radius:14px;transition:background .12s ease}.cafe-chat .empty-state-loadable:hover{background:#c9a06b1f}.cafe-chat .messages-container{background:var(--cafe-cream);gap:14px}.cafe-chat .message-assistant{flex-direction:row;align-items:flex-end;gap:8px;max-width:88%}.cafe-chat .message-assistant:before{content:"☕";display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:50%;background:#f0f6ee;border:2px solid var(--cafe-sage);font-size:14px}.cafe-chat .message-user{align-self:flex-end;align-items:flex-end;max-width:88%}.cafe-chat .message-user .message-role,.cafe-chat .message-assistant .message-role{display:none}.cafe-chat .message-content{font-family:Nunito,Atkinson Hyperlegible,sans-serif;font-size:13.5px;padding:9px 13px;box-shadow:var(--cafe-shadow)}.cafe-chat .message-assistant .message-content{background:var(--cafe-bot-bubble);color:var(--cafe-espresso);border:1px solid var(--cafe-oat-border);border-radius:18px 18px 18px 5px}.cafe-chat .message-user .message-content{background:var(--cafe-user-bubble);color:var(--cafe-espresso);border:1px solid #d5e3cf;border-radius:18px 18px 5px}.cafe-chat .message-content.streaming:after{color:var(--cafe-sage-deep)}.cafe-chat .empty-state{color:var(--cafe-espresso)}.cafe-chat .empty-state:before{content:"☕";font-size:34px;margin-bottom:10px;display:block}.cafe-chat .empty-state p:first-of-type{font-family:"Baloo 2",Nunito,sans-serif;font-weight:600;font-size:15px;color:var(--cafe-espresso)}.cafe-chat .empty-state .hint{color:var(--cafe-cocoa);max-width:34ch}.cafe-chat .message-toolcall .message-role{color:var(--cafe-caramel)}.cafe-chat .tool-chip{background:var(--cafe-oat);border-color:var(--cafe-caramel);color:var(--cafe-espresso);border-radius:12px}.cafe-chat .tool-chip-status{color:var(--cafe-sage-deep)}.cafe-chat .tool-chip .spinner{border-top-color:var(--cafe-caramel)}.cafe-chat .tool-chip.error{border-color:#e6b7a6;background:#fbeee7;color:#9c4a2f}.cafe-chat .tool-chip.error .tool-chip-status{color:#b5482a}.cafe-chat .tool-result summary{color:var(--cafe-cocoa)}.cafe-chat .message-plan .message-role{color:var(--cafe-sage-deep)}.cafe-chat .message-plan .message-content{background:#f3ead9;color:var(--cafe-espresso);border:1px solid var(--cafe-oat-border);border-radius:14px}.cafe-chat .chat-error{background:#fbeee7;border-top-color:#e6b7a6;color:#9c4a2f}.cafe-chat .chat-input-area{background:var(--cafe-ivory);border-top:1px solid var(--cafe-oat-border);padding:12px 14px}.cafe-chat .chat-input{border:1.5px solid var(--cafe-oat-border);border-radius:999px;background:#fff;color:var(--cafe-espresso);font-family:Nunito,sans-serif;padding:9px 15px}.cafe-chat .chat-input::-moz-placeholder{color:#b9a88f}.cafe-chat .chat-input::placeholder{color:#b9a88f}.cafe-chat .chat-input:focus{border-color:var(--cafe-sage);box-shadow:0 0 0 3px #a7c4a059}.cafe-chat .chat-input:disabled{background:#f4ede2;color:#b9a88f}.cafe-chat .btn-send{background:var(--cafe-espresso);color:#fff7ec;font-family:"Baloo 2",Nunito,sans-serif;font-weight:600;border-radius:999px;padding:8px 18px}.cafe-chat .btn-send:hover:not(:disabled){background:#33241a}.cafe-chat .btn-send:disabled{background:#c9b7a6;color:#fff7ec}.cafe-chat .chat-actions{border-top:1px solid var(--cafe-oat-border)}.cafe-chat .btn-clear{background:var(--cafe-oat);border:1px solid var(--cafe-oat-border);border-radius:999px;color:var(--cafe-cocoa);font-family:Nunito,sans-serif}.cafe-chat .btn-clear:hover{background:#ecdcc4}.cafe-chat .generation-info{background:var(--cafe-ivory);border-top:1px solid var(--cafe-oat-border);color:var(--cafe-cocoa);font-family:Nunito,sans-serif;align-items:center}.cafe-chat .generation-info-sub{color:#a3927a;font-size:11px}.cafe-chat .cafe-typing{display:inline-flex;align-items:flex-end;gap:3px;flex-shrink:0}.cafe-chat .cafe-typing span{width:6px;height:6px;border-radius:50%;background:var(--cafe-sage-deep)}@media (prefers-reduced-motion: no-preference){.cafe-chat .message{animation:cafePop .24s ease-out}.cafe-chat .cafe-avatar{animation:cafeSteam 3.2s ease-in-out infinite}.cafe-chat .cafe-typing span{animation:cafeBounce 1s ease-in-out infinite}.cafe-chat .cafe-typing span:nth-child(2){animation-delay:.15s}.cafe-chat .cafe-typing span:nth-child(3){animation-delay:.3s}}@keyframes cafePop{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cafeSteam{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes cafeBounce{0%,60%,to{transform:translateY(0);opacity:.55}30%{transform:translateY(-5px);opacity:1}}
