:root{--primary-color: #2575fc;--secondary-color: #6a11cb;--success-color: #00b09b;--warning-color: #f5a623;--danger-color: #ff416c;--border-radius: 8px;--box-shadow: 0 4px 12px rgba(0,0,0,.1)}.container{max-width:95%;margin:0 auto;padding:0 20px}header{text-align:center;margin-bottom:30px;padding:20px}h1{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:2.5rem;margin-bottom:10px}.subtitle{color:#6c757d;font-size:1.1rem}.card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:25px;margin-bottom:25px;transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-5px);box-shadow:0 6px 16px #00000026}h2{color:var(--primary-color);margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #e9ecef}.note{background-color:#e7f3ff;border-left:4px solid var(--primary-color);padding:15px;margin:20px 0;border-radius:0 var(--border-radius) var(--border-radius) 0}.environment-item{background:#f8f9fa;border-radius:var(--border-radius);padding:20px;margin-bottom:15px;border-left:4px solid var(--primary-color);transition:all .3s ease}.environment-item:hover{background:#e9f0ff;transform:translate(5px)}.environment-name{font-weight:700;font-size:1.2rem;margin-bottom:5px;color:var(--primary-color)}.environment-info{font-size:.9rem;color:#6c757d}.empty-state{text-align:center;padding:30px;color:#6c757d}.form-row{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.form-group{flex:1;min-width:250px}label{display:block;margin-bottom:8px;font-weight:600;color:#495057;font-size:.9rem}select,input{width:100%;padding:12px 15px;border:2px solid #e1e5eb;border-radius:var(--border-radius);font-size:14px;transition:border-color .3s}select:focus,input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2575fc1a}.button-group{display:flex;gap:10px;flex-wrap:wrap}button{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;border-radius:var(--border-radius);padding:12px 25px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #2575fc4d}button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2575fc66}.btn-search{background:linear-gradient(90deg,var(--success-color),#00d2b6);box-shadow:0 2px 8px #00b09b4d}.btn-test{background:linear-gradient(90deg,var(--warning-color),#f8c053);box-shadow:0 2px 8px #f5a6234d}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.result-controls{display:flex;align-items:center;gap:15px}.result-count{font-weight:600;color:var(--primary-color);font-size:.9rem}.btn-clear-filters{background:#6c757d;color:#fff;border:none;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-clear-filters:hover{background:#5a6268;transform:translateY(-1px)}.status-message{text-align:center;padding:30px;border-radius:var(--border-radius)}.loading{color:var(--primary-color)}.error-message{background:#ff416c1a;color:var(--danger-color);border:1px dashed var(--danger-color)}.empty-message{background:#00b09b1a;color:var(--success-color);border:1px dashed var(--success-color)}.token-display{background:#e9f7ef;border-left:4px solid var(--success-color);padding:15px;border-radius:0 var(--border-radius) var(--border-radius) 0;margin:15px 0;font-family:Courier New,monospace;word-break:break-all;font-size:12px}.spinner{border:4px solid rgba(0,0,0,.1);border-left-color:var(--primary-color);border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;margin:0 auto}.log-table-container{overflow-x:auto;border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;max-height:600px;overflow-y:auto}.log-table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}.log-table thead{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff;position:sticky;top:0}.log-table th{padding:12px 8px;text-align:left;font-weight:600;position:relative}.filter-input{width:100%;max-width:120px;padding:4px 6px;margin-top:5px;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#ffffffe6;color:#333;font-size:11px;font-weight:400;transition:all .2s}.filter-input:focus{border-color:#fffc;background:#fff;outline:none;box-shadow:0 0 0 2px #fff3}.filter-input::placeholder{color:#666;font-size:10px}.log-table tbody tr{border-bottom:1px solid #e9ecef;transition:background-color .2s}.log-table tbody tr:hover{background-color:#f8f9fa}.log-table td{padding:10px 8px;vertical-align:top}.log-row.error{border-left:4px solid var(--danger-color)}.log-row.warn{border-left:4px solid var(--warning-color)}.log-row.info{border-left:4px solid var(--success-color)}.log-timestamp{font-size:.8rem;color:#6c757d;white-space:nowrap}.log-level{font-weight:700;padding:2px 6px;font-size:.75rem;display:inline-block;text-align:center;min-width:60px}.level-error{background:#ff416c26;color:var(--danger-color)}.level-warn{background:#f5a62326;color:var(--warning-color)}.level-info{background:#00b09b26;color:var(--success-color)}.log-message{font-family:Courier New,monospace;background:#00000008;padding:8px;border-radius:4px;white-space:pre-wrap;word-break:break-word;max-width:1000px;font-size:12px;line-height:1.4}.log-message-interactive{position:relative;cursor:pointer;transition:background-color .2s}.log-message-interactive:hover{background:#0000000f}.copy-to-chat-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:4px;background:#c8c8c84d;color:#666;border:1px solid rgba(150,150,150,.3);font-size:18px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.copy-to-chat-btn:hover{background:#b4b4b480;border-color:#96969680;color:#333;transform:scale(1.05)}.copy-to-chat-btn:active{transform:scale(.95)}.log-request-path{word-break:break-word;max-width:200px}.log-app-name{word-break:break-word;max-width:150px}@media(max-width:768px){.form-row{flex-direction:column}.form-group{min-width:100%}h1{font-size:2rem}.result-header{flex-direction:column;align-items:flex-start;gap:10px}.result-controls{width:100%;justify-content:space-between}.filter-input{max-width:80px;font-size:10px}.chat-messages-card{height:calc(100vh - 400px)}.message-bubble{max-width:85%}.message-content{padding:10px 14px}.chat-input-container{padding:15px 20px}.chat-input-wrapper{flex-direction:column;gap:12px}.btn-send,.btn-clear-chat{width:100%;height:48px}.chat-config-row{flex-direction:column;align-items:stretch}.chat-config-row .form-group,.welcome-tips{max-width:100%}.empty-chat{padding:40px 15px}.empty-icon{font-size:3rem}}.alert{padding:15px 20px;border-radius:var(--border-radius);margin-bottom:20px;font-weight:500}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.alert-info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2{margin-bottom:0;border-bottom:none;padding-bottom:0}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#495057;font-size:.9rem}.form-group input{width:100%;padding:12px 15px;border:2px solid #e1e5eb;border-radius:var(--border-radius);font-size:14px;transition:border-color .3s}.form-group input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2575fc1a}.form-group input:disabled{background-color:#e9ecef;cursor:not-allowed}.btn-primary{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;border-radius:var(--border-radius);padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #2575fc4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2575fc66}.btn-secondary{background:#6c757d;color:#fff;border:none;border-radius:var(--border-radius);padding:12px 25px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px)}.btn-edit{background:#ffc107;color:#000;border:none;border-radius:var(--border-radius);padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-right:10px}.btn-edit:hover{background:#e0a800;transform:translateY(-2px)}.btn-delete{background:var(--danger-color);color:#fff;border:none;border-radius:var(--border-radius);padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-delete:hover{background:#dc3545;transform:translateY(-2px)}.environment-item{display:flex;justify-content:space-between;align-items:center;gap:20px}.environment-details{flex:1}.environment-actions{display:flex;gap:10px;flex-shrink:0}@media(max-width:768px){.environment-item{flex-direction:column;align-items:flex-start}.environment-actions{width:100%;justify-content:flex-start}.card-header{flex-direction:column;align-items:flex-start;gap:15px}.card-header h2{margin-bottom:10px}}.chat-container{max-width:100%;width:100%;padding:0 20px}.chat-header{text-align:left;margin-bottom:15px;padding:10px 0;display:flex;justify-content:space-between;align-items:center}.chat-title{font-size:.9rem;color:#666;font-weight:500;margin:0}.chat-config{margin-bottom:20px}.chat-config-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.chat-config-row .form-group{flex:1;max-width:400px}.btn-clear-chat{background:#6c757d;color:#fff;border:none;border-radius:var(--border-radius);padding:12px 25px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;height:fit-content}.btn-clear-chat:hover:not(:disabled){background:#5a6268;transform:translateY(-2px)}.btn-clear-chat:disabled{background:#6c757d;opacity:.5;cursor:not-allowed}.chat-messages-card{display:flex;flex-direction:column;height:calc(100vh - 250px);min-height:500px;padding:0;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px;background:#fafafa}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.empty-chat{text-align:center;padding:60px 20px;color:#6c757d}.empty-icon{font-size:4rem;margin-bottom:20px}.empty-chat h3{color:var(--primary-color);margin-bottom:10px}.welcome-tips{background:#e7f3ff;border-radius:8px;padding:15px;margin-top:20px;text-align:left;max-width:400px;margin-left:auto;margin-right:auto}.welcome-tips p{margin:0 0 8px;color:#1976d2;font-weight:600}.welcome-tips ul{margin:0;padding-left:20px;color:#666}.welcome-tips li{margin-bottom:4px;font-size:14px}.message{margin-bottom:20px;display:flex;align-items:flex-start;gap:12px;animation:fadeIn .3s ease-in}.message.user{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.message.user .message-avatar{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--success-color),#00d2b6);color:#fff}.message-bubble{max-width:75%;min-width:100px}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 4px}.message-role{font-size:.75rem;font-weight:600;color:#666}.message-time{font-size:.7rem;color:#999}.message-content{background:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 2px 8px #00000014;line-height:1.5;word-wrap:break-word}.message.user .message-content{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0}.message.error .message-content{background:#fff5f5;border:1px solid #fed7d7;color:#c53030}.message-text{margin:0}.message-text p{margin:0 0 8px}.message-text p:last-child{margin-bottom:0}.message-text ul,.message-text ol{margin:8px 0;padding-left:20px}.message-text li{margin-bottom:4px}.message-text pre{margin:8px 0;white-space:pre-wrap}.message-text code{font-family:Courier New,Monaco,monospace;font-size:.9em}.error-message-content{color:#c53030;font-weight:500}.typing-indicator{display:flex;align-items:center;gap:8px;color:#666;font-style:italic}.typing-dots{display:flex;gap:3px}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--primary-color);animation:typing 1.4s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}.chat-error{padding:15px 25px;background:#ff416c1a;color:var(--danger-color);border-top:2px solid var(--danger-color);font-weight:500}.chat-input-container{background:#fff;border-top:2px solid #e9ecef;padding:20px 25px}.chat-input-wrapper{display:flex;gap:15px;align-items:flex-end}.chat-input{flex:1;padding:12px 16px;border:2px solid #e1e5eb;border-radius:12px;font-size:15px;font-family:inherit;resize:none;min-height:44px;max-height:120px;transition:all .3s;overflow-y:auto}.chat-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2575fc1a}.chat-input:disabled{background-color:#e9ecef;cursor:not-allowed}.btn-send{background:linear-gradient(90deg,var(--success-color),#00d2b6);color:#fff;border:none;border-radius:12px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #00b09b4d;white-space:nowrap;height:44px;display:flex;align-items:center;justify-content:center;gap:8px}.btn-send:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00b09b66}.btn-send:disabled{background:#6c757d;cursor:not-allowed;opacity:.6;transform:none}.sending-indicator{display:flex;align-items:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-left-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.chat-status{margin-top:12px;min-height:20px;display:flex;align-items:center}.status-text{display:flex;align-items:center;gap:8px;font-size:13px;color:#666;font-style:italic}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--primary-color);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes spin{to{transform:rotate(360deg)}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#f8f9fa,#eef2f7);color:#343a40;line-height:1.6;font-size:14px}#root{min-height:100vh;padding:20px}
