Spaces:
Sleeping
Sleeping
| /** | |
| * Natural Language Interface Styles | |
| * Positioned in left sidebar alongside build/train controls | |
| */ | |
| .nl-interface { | |
| background: rgba(0, 0, 0, 0.85); | |
| border: 2px solid #4A90E2; | |
| border-radius: 8px; | |
| padding: 12px; | |
| margin: 10px 0; | |
| width: 100%; /* Fill left sidebar width */ | |
| box-sizing: border-box; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); | |
| } | |
| .nl-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 10px; | |
| padding-bottom: 10px; | |
| border-bottom: 1px solid rgba(74, 144, 226, 0.3); | |
| } | |
| .nl-icon { | |
| font-size: 1.5em; | |
| margin-right: 8px; | |
| } | |
| .nl-title { | |
| flex: 1; | |
| font-weight: bold; | |
| color: #4A90E2; | |
| font-size: 1.1em; | |
| } | |
| .nl-toggle-btn { | |
| background: none; | |
| border: 1px solid #4A90E2; | |
| color: #4A90E2; | |
| padding: 4px 8px; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| transition: all 0.2s; | |
| } | |
| .nl-toggle-btn:hover { | |
| background: #4A90E2; | |
| color: white; | |
| } | |
| .nl-toggle-btn .toggle-icon { | |
| display: inline-block; | |
| font-size: 0.8em; | |
| } | |
| .nl-body { | |
| max-height: 600px; | |
| overflow-y: auto; | |
| transition: max-height 0.3s ease; | |
| } | |
| .nl-body.collapsed { | |
| max-height: 0; | |
| overflow: hidden; | |
| } | |
| .nl-status { | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 10px; | |
| padding: 8px; | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 4px; | |
| } | |
| .status-dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| margin-right: 8px; | |
| animation: pulse 2s infinite; | |
| } | |
| .status-dot.ready { | |
| background: #2ecc71; | |
| box-shadow: 0 0 8px #2ecc71; | |
| } | |
| .status-dot.loading { | |
| background: #f39c12; | |
| box-shadow: 0 0 8px #f39c12; | |
| } | |
| .status-dot.error { | |
| background: #e74c3c; | |
| box-shadow: 0 0 8px #e74c3c; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| #nl-status-text { | |
| color: #bbb; | |
| font-size: 0.9em; | |
| } | |
| .nl-input-container { | |
| display: flex; | |
| gap: 8px; | |
| margin-bottom: 15px; | |
| } | |
| .nl-input { | |
| flex: 1; | |
| background: rgba(255, 255, 255, 0.1); | |
| border: 1px solid #4A90E2; | |
| color: white; | |
| padding: 10px; | |
| border-radius: 4px; | |
| font-size: 0.95em; | |
| transition: all 0.2s; | |
| } | |
| .nl-input:focus { | |
| outline: none; | |
| border-color: #5dade2; | |
| background: rgba(255, 255, 255, 0.15); | |
| box-shadow: 0 0 8px rgba(74, 144, 226, 0.3); | |
| } | |
| .nl-input:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .nl-input::placeholder { | |
| color: #888; | |
| } | |
| .nl-send-btn { | |
| background: linear-gradient(135deg, #4A90E2, #357ABD); | |
| border: none; | |
| color: white; | |
| padding: 10px 20px; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-weight: bold; | |
| transition: all 0.2s; | |
| } | |
| .nl-send-btn:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #5dade2, #4A90E2); | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 8px rgba(74, 144, 226, 0.4); | |
| } | |
| .nl-send-btn:active:not(:disabled) { | |
| transform: translateY(0); | |
| } | |
| .nl-send-btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .nl-examples { | |
| background: rgba(255, 255, 255, 0.05); | |
| border: 1px solid rgba(74, 144, 226, 0.3); | |
| border-radius: 4px; | |
| padding: 10px; | |
| margin-bottom: 15px; | |
| } | |
| .examples-header { | |
| color: #4A90E2; | |
| font-weight: bold; | |
| margin-bottom: 8px; | |
| font-size: 0.9em; | |
| } | |
| .examples-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .example-item { | |
| background: rgba(74, 144, 226, 0.1); | |
| border: 1px solid rgba(74, 144, 226, 0.3); | |
| padding: 8px 10px; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| transition: all 0.2s; | |
| color: #ccc; | |
| font-size: 0.85em; | |
| } | |
| .example-item:hover { | |
| background: rgba(74, 144, 226, 0.2); | |
| border-color: #4A90E2; | |
| transform: translateX(4px); | |
| } | |
| .nl-confirmation { | |
| background: linear-gradient(135deg, rgba(46, 204, 113, 0.1), rgba(52, 152, 219, 0.1)); | |
| border: 2px solid #2ecc71; | |
| border-radius: 6px; | |
| padding: 15px; | |
| margin-top: 15px; | |
| animation: slideIn 0.3s ease; | |
| } | |
| @keyframes slideIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .confirmation-header { | |
| color: #2ecc71; | |
| font-weight: bold; | |
| margin-bottom: 10px; | |
| font-size: 1em; | |
| } | |
| .confirmation-content { | |
| background: rgba(0, 0, 0, 0.3); | |
| border-radius: 4px; | |
| padding: 10px; | |
| margin-bottom: 10px; | |
| } | |
| .confirmation-tool, | |
| .confirmation-params { | |
| margin-bottom: 8px; | |
| } | |
| .confirmation-tool strong, | |
| .confirmation-params strong { | |
| color: #4A90E2; | |
| } | |
| .confirmation-tool span, | |
| .confirmation-params pre { | |
| color: #ecf0f1; | |
| } | |
| #confirm-params { | |
| background: rgba(0, 0, 0, 0.4); | |
| padding: 8px; | |
| border-radius: 4px; | |
| overflow-x: auto; | |
| margin-top: 5px; | |
| font-family: 'Courier New', monospace; | |
| font-size: 0.85em; | |
| } | |
| .confirmation-buttons { | |
| display: flex; | |
| gap: 10px; | |
| } | |
| .confirm-btn { | |
| flex: 1; | |
| padding: 10px; | |
| border: none; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-weight: bold; | |
| transition: all 0.2s; | |
| } | |
| .confirm-btn.execute { | |
| background: linear-gradient(135deg, #2ecc71, #27ae60); | |
| color: white; | |
| } | |
| .confirm-btn.execute:hover { | |
| background: linear-gradient(135deg, #27ae60, #229954); | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 8px rgba(46, 204, 113, 0.4); | |
| } | |
| .confirm-btn.cancel { | |
| background: linear-gradient(135deg, #e74c3c, #c0392b); | |
| color: white; | |
| } | |
| .confirm-btn.cancel:hover { | |
| background: linear-gradient(135deg, #c0392b, #a93226); | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 8px rgba(231, 76, 60, 0.4); | |
| } | |
| .confirm-btn:active { | |
| transform: translateY(0); | |
| } | |
| /* Responsive adjustments */ | |
| @media screen and (max-width: 768px) { | |
| .nl-interface { | |
| min-width: 280px; | |
| max-width: 100%; | |
| } | |
| .nl-input { | |
| font-size: 0.9em; | |
| } | |
| .example-item { | |
| font-size: 0.8em; | |
| } | |
| } | |
| /* Scrollbar styling for NL body */ | |
| .nl-body::-webkit-scrollbar { | |
| width: 6px; | |
| } | |
| .nl-body::-webkit-scrollbar-track { | |
| background: rgba(0, 0, 0, 0.2); | |
| border-radius: 3px; | |
| } | |
| .nl-body::-webkit-scrollbar-thumb { | |
| background: #4A90E2; | |
| border-radius: 3px; | |
| } | |
| .nl-body::-webkit-scrollbar-thumb:hover { | |
| background: #5dade2; | |
| } | |