.admin-viewer{min-height:100vh;background:var(--bg-secondary);padding:1rem;max-width:1400px;margin:0 auto}.header{background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);margin-bottom:1.5rem;padding:1.25rem 1.5rem}.header-content{display:flex;justify-content:space-between;align-items:center}.title-section h1{margin:0 0 .25rem;color:var(--text-primary);font-size:1.6rem}.subtitle{margin:0;color:var(--text-secondary);font-size:.9rem}.header-actions{display:flex;gap:1rem;align-items:center}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-color)}.status-dot{width:8px;height:8px;border-radius:50%}.dot-green{background:#28a745}.dot-yellow{background:#ffc107}.dot-red{background:#dc3545}.panel{background:var(--bg-primary);border-radius:10px;border:1px solid var(--border-color);margin-bottom:1rem;overflow:hidden}.panel-title{padding:.75rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.panel-title h3{margin:0;color:var(--text-primary);font-size:1rem;font-weight:600}.panel-body{padding:1rem 1.25rem}.empty-state{color:var(--text-secondary);text-align:center;padding:2rem 1rem}.connection-row{display:flex;gap:.5rem;align-items:center}.connection-row input{flex:1;padding:.6rem .8rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem}.connection-row input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px var(--accent-color-alpha)}.hint{margin-top:.75rem;padding:.6rem .8rem;background:#e7f3ff;color:#0c5aa6;border-radius:6px;border:1px solid #b8daff;font-size:.85rem}.btn{padding:.6rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .15s;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-color-hover)}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--border-color)}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-theme{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.btn-inline{background:none;border:none;color:var(--accent-color);cursor:pointer;font-size:.8rem;padding:.25rem 0;text-decoration:underline}.view-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.view-tabs,.artifact-tabs{display:flex;gap:.25rem}.tab-btn{padding:.5rem .9rem;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .15s}.tab-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.tab-btn:hover:not(.active){background:var(--bg-hover)}.step-indicator{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:1rem}.step{display:flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:4px;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.step.current{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.step.current.error{background:#dc3545;border-color:#dc3545}.step.past{background:#d4edda;color:#155724;border-color:#c3e6cb}.step-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.step-label{line-height:1}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.meta-item{display:flex;flex-direction:column;gap:.2rem}.meta-item.full-width{grid-column:1 / -1}.meta-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.meta-value{font-size:.9rem;color:var(--text-primary)}.meta-value.mono{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;word-break:break-all}.meta-value.error-text{color:#dc3545}.status-in_progress{color:#ffc107;font-weight:600}.status-completed{color:#28a745;font-weight:600}.status-failed{color:#dc3545;font-weight:600}.status-paused{color:var(--text-secondary);font-weight:600}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.right-stack{display:flex;flex-direction:column;gap:1rem}.timeline-scroll{max-height:50vh;overflow-y:auto;padding:.75rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.timeline-msg{padding:.75rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary)}.timeline-msg.user{border-left:3px solid var(--accent-color)}.timeline-msg.assistant{border-left:3px solid #28a745}.timeline-msg.system{border-left:3px solid #ffc107}.msg-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.role-badge{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-badge.user{background:var(--accent-color-alpha);color:var(--accent-color)}.role-badge.assistant{background:#d4edda;color:#155724}.role-badge.system{background:#fff3cd;color:#856404}.msg-time{font-size:.75rem;color:var(--text-secondary)}.msg-body p{margin:0;line-height:1.5;font-size:.85rem;white-space:pre-wrap;word-break:break-word}.collapsible-text p{margin:0 0 .25rem}.quality-header.passed{background:linear-gradient(135deg,#d4edda,#c3e6cb)}.quality-header.failed{background:linear-gradient(135deg,#f8d7da,#f5c6cb)}.assessment{padding:.75rem;background:var(--bg-secondary);border-radius:6px;border-left:3px solid var(--accent-color);margin:0 0 1rem;line-height:1.5;font-size:.9rem}.scores-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.score-bar-item{display:flex;flex-direction:column;gap:.3rem}.score-bar-item .score-label{font-size:.8rem;font-weight:600}.score-track{height:22px;background:var(--bg-secondary);border-radius:11px;overflow:hidden;border:1px solid var(--border-color)}.score-fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding:0 .5rem;border-radius:11px;transition:width .4s ease}.score-fill span{color:#fff;font-size:.7rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}.score-fill.good{background:linear-gradient(90deg,#28a745,#20c997)}.score-fill.ok{background:linear-gradient(90deg,#ffc107,#fd7e14)}.score-fill.low{background:linear-gradient(90deg,#dc3545,#e74c3c)}.feedback-list{padding:.6rem .8rem;border-radius:6px;border:1px solid var(--border-color);margin-bottom:.5rem}.feedback-list h4{margin:0 0 .4rem;font-size:.85rem}.feedback-list ul{margin:0;padding-left:1.2rem}.feedback-list li{font-size:.8rem;line-height:1.4;margin-bottom:.2rem}.feedback-list.strengths{background:#f0f9ff;border-color:#28a745}.feedback-list.strengths h4{color:#155724}.feedback-list.issues{background:#fff3cd;border-color:#dc3545}.feedback-list.issues h4{color:#721c24}.feedback-list.suggestions{background:#fff8e1;border-color:#ffc107}.feedback-list.suggestions h4{color:#856404}.narrative{margin:.75rem 0 0;padding:.75rem;background:var(--bg-secondary);border-radius:6px;font-size:.85rem;line-height:1.5;white-space:pre-wrap}.artifact-json,.raw-json-full{background:var(--bg-secondary);color:var(--text-primary);padding:1rem;border-radius:6px;border:1px solid var(--border-color);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow:auto}.raw-json-full{max-height:75vh}.entity-info,.prompt-info,.saved-info{display:flex;flex-direction:column;gap:.75rem}@media (max-width: 900px){.two-column{grid-template-columns:1fr}.header-content{flex-direction:column;align-items:flex-start;gap:.75rem}.connection-row{flex-direction:column;align-items:stretch}.metadata-grid,.scores-row{grid-template-columns:1fr}.view-controls{flex-direction:column;gap:.5rem;align-items:stretch}}
