| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| :root { |
| --background-color: #1e1e1e; |
| --surface-color: #252526; |
| --primary-text-color: #d4d4d4; |
| --secondary-text-color: #888; |
| --accent-color: #0e639c; |
| --accent-hover-color: #17b; |
| --error-color: #f44747; |
| --recording-color: #ef5350; |
| --border-color: #3c3c3c; |
| --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| background-color: var(--background-color); |
| color: var(--primary-text-color); |
| font-family: var(--font-family); |
| margin: 0; |
| padding: 16px; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| min-height: 100vh; |
| position: relative; |
| } |
|
|
| .container { |
| display: flex; |
| flex-direction: column; |
| gap: 1.5rem; |
| width: 100%; |
| max-width: 720px; |
| margin: 0 auto; |
| } |
|
|
| .title-container { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| position: relative; |
| z-index: 1001; |
| } |
|
|
| #clear-cache-button { |
| position: absolute; |
| top: 16px; |
| right: 16px; |
| background-color: transparent; |
| border: none; |
| color: var(--secondary-text-color); |
| cursor: pointer; |
| font-size: 1.2rem; |
| padding: 0.5rem; |
| border-radius: 50%; |
| width: 48px; |
| height: 48px; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| transition: background-color 0.2s, color 0.2s; |
| } |
|
|
| #clear-cache-button:hover { |
| background-color: var(--surface-color); |
| color: var(--primary-text-color); |
| } |
|
|
| .version-info { |
| position: absolute; |
| top: 16px; |
| right: 80px; |
| display: flex; |
| align-items: center; |
| gap: 0.5rem; |
| z-index: 1001; |
| } |
|
|
| #version-text { |
| font-size: 1rem; |
| color: var(--secondary-text-color); |
| } |
|
|
| #toggle-version-button { |
| background-color: var(--surface-color); |
| color: var(--primary-text-color); |
| border: 1px solid var(--border-color); |
| border-radius: 16px; |
| padding: 6px 12px; |
| cursor: pointer; |
| transition: background-color 0.2s; |
| } |
|
|
| #toggle-version-button:hover { |
| background-color: var(--border-color); |
| } |
|
|
| h1 { |
| text-align: center; |
| font-weight: 300; |
| color: var(--primary-text-color); |
| margin: 0; |
| } |
|
|
| .video-container { |
| position: relative; |
| width: 100%; |
| aspect-ratio: 16 / 9; |
| background-color: #000; |
| border-radius: 8px; |
| overflow: hidden; |
| border: 1px solid var(--border-color); |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| } |
|
|
| #webcam { |
| width: 100%; |
| height: 100%; |
| object-fit: cover; |
| transform: scaleX(-1); |
| } |
|
|
| #status-message { |
| position: absolute; |
| color: var(--secondary-text-color); |
| } |
|
|
| .response-container { |
| background-color: var(--surface-color); |
| border: 1px solid var(--border-color); |
| border-radius: 8px; |
| padding: 1rem; |
| min-height: 100px; |
| font-size: 1rem; |
| line-height: 1.5; |
| white-space: pre-wrap; |
| overflow-y: auto; |
| } |
|
|
| .response-container.thinking { |
| color: var(--secondary-text-color); |
| font-style: italic; |
| } |
|
|
| .disclaimer { |
| text-align: center; |
| font-size: 0.8rem; |
| color: var(--secondary-text-color); |
| margin: 0; |
| } |
|
|
| .input-container { |
| display: flex; |
| gap: 0.5rem; |
| align-items: center; |
| } |
|
|
| #prompt-input { |
| flex-grow: 1; |
| background-color: var(--surface-color); |
| color: var(--primary-text-color); |
| border: 1px solid var(--border-color); |
| border-radius: 24px; |
| padding: 12px 20px; |
| font-size: 1rem; |
| outline: none; |
| transition: border-color 0.2s; |
| } |
|
|
| #prompt-input:focus { |
| border-color: var(--accent-color); |
| } |
|
|
| .input-container button { |
| background-color: var(--surface-color); |
| color: var(--primary-text-color); |
| border: 1px solid var(--border-color); |
| border-radius: 50%; |
| width: 48px; |
| height: 48px; |
| flex-shrink: 0; |
| cursor: pointer; |
| font-size: 1.2rem; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| transition: background-color 0.2s, color 0.2s; |
| } |
|
|
| .input-container button:hover { |
| background-color: var(--border-color); |
| } |
|
|
| .input-container button:disabled { |
| cursor: not-allowed; |
| opacity: 0.5; |
| } |
|
|
| #record-button.recording { |
| background-color: var(--recording-color); |
| color: white; |
| border-color: var(--recording-color); |
| } |
|
|
| #send-button { |
| background-color: var(--accent-color); |
| border-color: var(--accent-color); |
| color: white; |
| } |
|
|
| #send-button:hover { |
| background-color: var(--accent-hover-color); |
| border-color: var(--accent-hover-color); |
| } |
|
|
| |
| .loader-overlay { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background-color: rgba(0, 0, 0, 0.85); |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| z-index: 1000; |
| transition: opacity 0.3s ease-in-out; |
| } |
|
|
| .loader-content { |
| text-align: center; |
| color: white; |
| display: flex; |
| flex-direction: column; |
| gap: 1rem; |
| width: 80%; |
| max-width: 300px; |
| } |
|
|
| .progress-bar { |
| width: 100%; |
| height: 8px; |
| background-color: var(--surface-color); |
| border-radius: 4px; |
| overflow: hidden; |
| } |
|
|
| .progress-bar-fill { |
| width: 0%; |
| height: 100%; |
| background-color: var(--accent-color); |
| border-radius: 4px; |
| transition: width 0.2s ease-out; |
| } |
|
|