:root{font-family:Inter,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f1f5f9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#f1f5f9}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0}button{font-family:inherit}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid rgba(0,0,0,.08);background:#fff;position:sticky;top:0;z-index:20}.top-nav__logo{display:flex;align-items:center;gap:.5rem;cursor:pointer}.top-nav__logo-mark{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;background:linear-gradient(135deg,#1f7aec,#5b96ff);color:#fff;font-weight:600;font-size:.85rem}.top-nav__logo-text{font-weight:600;color:#0f172a;font-size:.95rem}.top-nav__links{display:flex;gap:1rem}.top-nav__link{text-decoration:none;color:#475569;font-weight:500;padding:.35rem .75rem;border-radius:.5rem;transition:background .2s ease,color .2s ease}.top-nav__link:hover{background:#3b82f61a;color:#1d4ed8}.top-nav__link.active{background:#2563eb1f;color:#1d4ed8}#root{min-height:100vh}.app-shell{min-height:100vh;background:linear-gradient(180deg,#0f172a0a,#0f172a14);display:flex;flex-direction:column}.app-content{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.page{display:flex;flex-direction:column;gap:1.5rem}.card{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -15px #0f172a33,0 10px 40px -20px #0f172a26;padding:1.5rem}.card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card__subtitle{margin:.25rem 0 0;font-size:.9rem;color:#64748b}.card__body{display:flex;flex-direction:column;gap:1rem}.card-section{display:flex;flex-direction:column;gap:1.25rem}.card-section+.card-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(15,23,42,.08)}.card-section-title{margin:0;font-size:1.05rem;font-weight:600;color:#0f172a}.column-gap{display:flex;flex-direction:column;gap:1.5rem}.card__actions{display:flex;gap:.75rem}.card__toggle{border:none;background:transparent;color:#2563eb;font-weight:600;cursor:pointer;padding:.35rem .6rem;border-radius:.6rem}.card__toggle:hover{background:#2563eb1f}.card--collapsed .card__body{display:none}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:.75rem;border:none;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;text-decoration:none}.button.primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 10px 20px -10px #2563ebcc}.button.primary:hover{transform:translateY(-1px);box-shadow:0 14px 25px -12px #2563ebe6}.button.secondary{background:#0f172a0f;color:#1f2937}.button.secondary:hover{background:#0f172a1a}.button.tertiary{background:#3b82f61f;color:#1d4ed8;font-size:.85rem;padding:.45rem .9rem}.button.tertiary:hover{background:#3b82f633}.button.ghost{background:transparent;color:#1f2937;border:1px solid rgba(15,23,42,.08)}.button.ghost:hover{border-color:#0f172a26;background:#0f172a0d}.form-field{display:flex;flex-direction:column;gap:.4rem}.form-field span{font-size:.85rem;color:#475569;font-weight:600}.form-field input,.form-field textarea,.form-field select{border-radius:.6rem;border:1px solid rgba(15,23,42,.12);padding:.65rem .75rem;font-size:.95rem;font-family:inherit;transition:border .2s ease,box-shadow .2s ease;background:#fff;color:#0f172a}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:#2563eb99;box-shadow:0 0 0 3px #3b82f633}.form-field textarea{min-height:100px;resize:vertical}.form-field__input-with-action{display:flex;gap:.5rem;align-items:center}.form-field__input-with-action input{flex:1}.form-hint{margin:0;font-size:.85rem;color:#64748b}.form-hint.success{color:#0f766e}.form-hint.error{color:#dc2626}.toggle{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:#1f2937;cursor:pointer}.toggle input{width:1.1rem;height:1.1rem}.vendor-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.vendor-card{border:1px solid rgba(15,23,42,.08);border-radius:1rem;padding:1.25rem;background:#f8fafc99;display:flex;flex-direction:column;gap:.85rem}.vendor-card__header{display:flex;align-items:center;justify-content:space-between}.vendor-card__badge{font-size:.75rem;padding:.2rem .5rem;border-radius:.6rem;background:#2563eb1a;color:#1d4ed8;font-weight:600}.vendor-card__actions{display:flex;gap:.5rem;flex-wrap:wrap}.mode-selector{display:grid;gap:.75rem}.mode-selector__item{display:flex;gap:.85rem;padding:.85rem 1rem;border-radius:.9rem;border:1px solid rgba(15,23,42,.08);background:#f8fafc99;cursor:pointer;transition:border .2s ease,background .2s ease}.mode-selector__item strong{display:block;font-size:.95rem;color:#0f172a}.mode-selector__item p{margin:.2rem 0 0;font-size:.85rem;color:#64748b}.mode-selector__item input{margin-top:.3rem}.mode-selector__item.active{border-color:#2563eb80;background:#2563eb14}.global-model-card{border:1px solid rgba(15,23,42,.12);border-radius:1rem;padding:1.25rem;background:#fff;display:flex;flex-direction:column;gap:1rem}.global-model-card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.grid.two-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.grid.three-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.agent-list{list-style:none;display:flex;flex-direction:column;gap:1rem}.agent-list__item{padding:1rem;border-radius:.75rem;border:1px solid rgba(15,23,42,.08);background:#f8fafc80}.agent-card{border:1px solid rgba(15,23,42,.1);border-radius:1rem;padding:1.25rem;background:#f8fafc80;display:flex;flex-direction:column;gap:1rem}.agent-card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.agent-card__header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.persona-panel{border:1px solid rgba(15,23,42,.08);border-radius:.9rem;padding:1rem;background:#fff;display:flex;flex-direction:column;gap:1rem}.persona-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.form-hint-inline{display:inline-block;margin-left:.35rem;font-size:.75rem;color:#64748b}.agent-model-panel{border:1px solid rgba(37,99,235,.15);border-radius:1rem;padding:1.25rem;background:#2563eb0d;display:flex;flex-direction:column;gap:1rem}.agent-model-panel h4{margin:0;font-size:1rem;color:#1d4ed8}.memory-grid .form-hint{font-size:.8rem;color:#475569}.sentiment-hint{margin-top:-.5rem}.sentiment-model-panel{border:1px solid rgba(251,191,36,.5);border-radius:1rem;padding:1.25rem;background:#fbbf2414;display:flex;flex-direction:column;gap:1rem}.sentiment-model-header{display:flex;align-items:center;justify-content:space-between}.sentiment-model-fields{display:flex;flex-direction:column;gap:1rem}.vendor-test-area{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.vendor-test-result{padding:.75rem;border-radius:.75rem;background:#94a3b81f;border:1px solid rgba(148,163,184,.25);font-size:.85rem;white-space:pre-wrap}.vendor-test-result.success{border-color:#10b98159;background:#10b9811f;color:#047857}.vendor-test-result.error{border-color:#f8717173;background:#f8717126;color:#b91c1c}.code-preview{margin-top:1rem;border:1px solid rgba(15,23,42,.12);border-radius:.9rem;background:#0f172a;color:#e2e8f0;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;overflow:hidden}.code-preview__header{margin:0;padding:.55rem .9rem;background:#94a3b82e;color:#e2e8f0;font-weight:600}.code-preview pre{margin:0;padding:.9rem;white-space:pre-wrap}.agent-memory-block{border:1px solid rgba(37,99,235,.15);border-radius:1rem;padding:1.25rem;background:#2563eb0a;display:flex;flex-direction:column;gap:.75rem}.waiting-indicator{margin:1rem 0;font-weight:600;color:#2563eb;display:inline-flex;align-items:center;gap:.35rem}.waiting-dots{font-family:JetBrains Mono,Fira Code,monospace;letter-spacing:.1rem;min-width:2.5rem}.run-status-panel{display:flex;align-items:center;justify-content:space-between;background:#0f172a0d;padding:.75rem 1rem;border-radius:.75rem;margin-bottom:1rem}.status-pill{display:inline-flex;align-items:center;justify-content:center;background:#6366f126;color:#4338ca;font-weight:600;border-radius:1rem;padding:.25rem .75rem;margin-right:.75rem;font-size:.85rem}.status-detail{font-size:.85rem;color:#475569}.sentiment-tag{display:inline-flex;align-items:center;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;margin-right:.5rem}.sentiment-正向,.sentiment-positive{background:#22c55e26;color:#16a34a}.sentiment-中性,.sentiment-neutral{background:#94a3b833;color:#475569}.sentiment-负向,.sentiment-negative{background:#ef444426;color:#dc2626}.meta-primary{font-weight:600;margin-right:.5rem}.meta-secondary{color:#64748b;font-size:.85rem}.checkbox-field{display:flex;flex-direction:column;gap:.5rem}.checkbox-description{display:flex;align-items:flex-start;gap:.75rem}.checkbox-description input{margin-top:.25rem}.empty-state{text-align:center;padding:2rem 1rem;border:1px dashed rgba(15,23,42,.15);border-radius:.75rem;color:#64748b;background:#f8fafcb3}.message-timeline{list-style:none;display:flex;flex-direction:column;gap:1.25rem}.message-timeline__item{border-left:3px solid rgba(37,99,235,.3);padding-left:1rem;display:flex;flex-direction:column;gap:.5rem}.message-timeline__item header{display:flex;align-items:center;gap:.75rem}.badge{display:inline-flex;align-items:center;justify-content:center;background:#2563eb26;color:#1d4ed8;font-weight:600;border-radius:9999px;padding:.2rem .75rem;font-size:.85rem}.timestamp{color:#94a3b8;font-size:.8rem}.message-content{margin:0;line-height:1.6}.message-meta{font-size:.85rem;color:#475569}.results-summary{display:flex;flex-direction:column;gap:.75rem;color:#1f2937}.results-actions{display:flex;gap:.75rem;flex-wrap:wrap}@media(max-width:768px){.app-content{padding:1rem}.card{padding:1.25rem}.card__actions{flex-wrap:wrap}.vendor-card-grid{grid-template-columns:1fr}.persona-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
