Spaces:
Build error
Build error
| /* Header */ | |
| .header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--spacing-2) var(--spacing-4); | |
| background-color: var(--color-canvas-subtle); | |
| border-bottom: 1px solid var(--color-border-default); | |
| position: sticky; | |
| top: 0; | |
| z-index: 10; | |
| backdrop-filter: blur(12px); | |
| background-color: rgba(22, 27, 34, 0.85); | |
| } | |
| .logo { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| text-decoration: none; | |
| color: var(--color-fg-default); | |
| } | |
| .logo-icon { | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 4px; | |
| } | |
| .logo-text { | |
| font-size: 18px; | |
| font-weight: 600; | |
| letter-spacing: -0.01em; | |
| } | |
| .header-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--spacing-2); | |
| } | |
| .model-select { | |
| appearance: none; | |
| background: var(--color-canvas-default); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: 6px; | |
| color: var(--color-fg-default); | |
| font-size: 13px; | |
| font-family: inherit; | |
| padding: 6px 28px 6px 10px; | |
| cursor: pointer; | |
| transition: border-color 0.15s; | |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); | |
| background-repeat: no-repeat; | |
| background-position: right 8px center; | |
| } | |
| .model-select:hover { | |
| border-color: var(--color-accent-fg); | |
| } | |
| .model-select:focus { | |
| outline: none; | |
| border-color: var(--color-accent-fg); | |
| box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15); | |
| } | |
| .model-select:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| /* Main content */ | |
| .main { | |
| flex: 1; | |
| padding: var(--spacing-6) 0; | |
| } | |
| .page-title { | |
| font-size: 32px; | |
| font-weight: 600; | |
| margin-bottom: var(--spacing-2); | |
| } | |
| .page-subtitle { | |
| font-size: 16px; | |
| color: var(--color-fg-muted); | |
| margin-bottom: var(--spacing-5); | |
| } | |
| /* Upload section */ | |
| .upload-section { | |
| max-width: 800px; | |
| margin: 0 auto; | |
| } | |
| .upload-card { | |
| background-color: var(--color-canvas-subtle); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-2); | |
| overflow: hidden; | |
| box-shadow: var(--shadow-md); | |
| transition: box-shadow 0.2s ease; | |
| } | |
| .upload-card:hover { | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .upload-header { | |
| padding: var(--spacing-3) var(--spacing-4); | |
| background-color: var(--color-canvas-inset); | |
| border-bottom: 1px solid var(--color-border-muted); | |
| } | |
| .upload-title { | |
| font-size: 14px; | |
| font-weight: 600; | |
| display: flex; | |
| align-items: center; | |
| gap: var(--spacing-2); | |
| } | |
| .upload-title svg { | |
| width: 16px; | |
| height: 16px; | |
| color: var(--color-fg-muted); | |
| } | |
| .upload-body { | |
| padding: var(--spacing-4); | |
| } | |
| /* Tab content panels */ | |
| .tab-panel { | |
| display: none; | |
| } | |
| .tab-panel.active { | |
| display: block; | |
| animation: fadeIn 0.2s ease-out; | |
| } | |
| /* Form groups */ | |
| .form-group { | |
| margin-bottom: var(--spacing-4); | |
| } | |
| .form-label { | |
| display: block; | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: var(--color-fg-default); | |
| margin-bottom: var(--spacing-2); | |
| } | |
| .form-hint { | |
| font-size: 12px; | |
| color: var(--color-fg-muted); | |
| margin-top: var(--spacing-1); | |
| } | |
| /* File input styling */ | |
| .file-input { | |
| display: none; | |
| } | |
| .file-selected { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--spacing-3); | |
| padding: var(--spacing-3); | |
| background-color: var(--color-canvas-default); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-1); | |
| margin-top: var(--spacing-3); | |
| } | |
| .file-icon { | |
| width: 32px; | |
| height: 32px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background-color: var(--color-accent-emphasis); | |
| border-radius: var(--radius-1); | |
| color: white; | |
| } | |
| .file-info { | |
| flex: 1; | |
| } | |
| .file-name { | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: var(--color-fg-default); | |
| } | |
| .file-size { | |
| font-size: 12px; | |
| color: var(--color-fg-muted); | |
| } | |
| .file-remove { | |
| padding: var(--spacing-1); | |
| background: transparent; | |
| border: none; | |
| color: var(--color-fg-muted); | |
| cursor: pointer; | |
| border-radius: var(--radius-1); | |
| transition: color var(--transition-fast), background-color var(--transition-fast); | |
| } | |
| .file-remove:hover { | |
| color: var(--color-danger-fg); | |
| background-color: rgba(248, 81, 73, 0.1); | |
| } | |
| /* Submit section */ | |
| .submit-section { | |
| display: flex; | |
| justify-content: flex-end; | |
| padding-top: var(--spacing-4); | |
| border-top: 1px solid var(--color-border-muted); | |
| margin-top: var(--spacing-4); | |
| } | |
| /* Response section */ | |
| .response-section { | |
| margin-top: var(--spacing-5); | |
| } | |
| .response-card { | |
| background-color: var(--color-canvas-subtle); | |
| border: 1px solid var(--color-border-default); | |
| border-radius: var(--radius-2); | |
| overflow: hidden; | |
| } | |
| .response-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: var(--spacing-3) var(--spacing-4); | |
| background-color: var(--color-canvas-inset); | |
| border-bottom: 1px solid var(--color-border-muted); | |
| } | |
| .response-title { | |
| font-size: 14px; | |
| font-weight: 600; | |
| display: flex; | |
| align-items: center; | |
| gap: var(--spacing-2); | |
| } | |
| .response-badge { | |
| font-size: 12px; | |
| padding: 2px 8px; | |
| border-radius: var(--radius-full); | |
| background-color: var(--color-btn-primary-bg); | |
| color: white; | |
| } | |
| .response-body { | |
| padding: var(--spacing-4); | |
| } | |
| .response-text { | |
| font-size: 14px; | |
| line-height: 1.7; | |
| color: var(--color-fg-default); | |
| white-space: pre-wrap; | |
| } | |
| /* Loading state */ | |
| .loading { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: var(--spacing-3); | |
| padding: var(--spacing-6); | |
| color: var(--color-fg-muted); | |
| } | |
| .loading-spinner { | |
| width: 24px; | |
| height: 24px; | |
| border: 2px solid var(--color-border-default); | |
| border-top-color: var(--color-accent-fg); | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| /* Footer */ | |
| .footer { | |
| padding: var(--spacing-4); | |
| text-align: center; | |
| font-size: 12px; | |
| color: var(--color-fg-subtle); | |
| border-top: 1px solid var(--color-border-muted); | |
| } | |
| .footer a { | |
| color: var(--color-accent-fg); | |
| text-decoration: none; | |
| } | |
| .footer a:hover { | |
| text-decoration: underline; | |
| } | |
| /* Inline result */ | |
| .inline-result { | |
| margin-top: var(--spacing-3); | |
| padding: var(--spacing-3) var(--spacing-4); | |
| border-radius: var(--radius-1); | |
| font-size: 13px; | |
| line-height: 1.6; | |
| display: flex; | |
| align-items: flex-start; | |
| gap: var(--spacing-2); | |
| border: 1px solid transparent; | |
| } | |
| .inline-result--success { | |
| background-color: rgba(46, 160, 67, 0.08); | |
| border-color: rgba(46, 160, 67, 0.3); | |
| color: var(--color-fg-default); | |
| flex-direction: column; | |
| gap: var(--spacing-2); | |
| } | |
| .inline-result--error { | |
| background-color: rgba(248, 81, 73, 0.08); | |
| border-color: rgba(248, 81, 73, 0.3); | |
| color: var(--color-danger-fg); | |
| align-items: center; | |
| } | |
| .inline-result--loading { | |
| background-color: var(--color-canvas-inset); | |
| border-color: var(--color-border-muted); | |
| color: var(--color-fg-muted); | |
| align-items: center; | |
| } | |
| .inline-result--streaming { | |
| background-color: var(--color-canvas-inset); | |
| border-color: var(--color-accent-emphasis); | |
| color: var(--color-fg-default); | |
| flex-direction: column; | |
| gap: var(--spacing-2); | |
| } | |
| .inline-result--streaming .inline-result__label { | |
| color: var(--color-accent-fg); | |
| } | |
| .inline-result__label { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--spacing-1); | |
| font-size: 12px; | |
| font-weight: 600; | |
| color: rgba(46, 160, 67, 0.9); | |
| width: 100%; | |
| } | |
| .inline-result__text { | |
| font-size: 14px; | |
| line-height: 1.7; | |
| color: var(--color-fg-default); | |
| white-space: pre-wrap; | |
| margin: 0; | |
| } | |
| /* Streaming cursor blink */ | |
| .streaming-cursor { | |
| animation: blink 0.7s step-end infinite; | |
| color: var(--color-accent-fg); | |
| font-weight: 300; | |
| } | |
| @keyframes blink { | |
| 50% { | |
| opacity: 0; | |
| } | |
| } | |
| .streaming-placeholder { | |
| color: var(--color-fg-muted); | |
| font-style: italic; | |
| } |