Download style.css from plice13/SLT: direct link, hf CLI and curl.
- Browser
- Download file 49.4 kB
-
https://huggingface.co/spaces/plice13/SLT/resolve/main/style.css
- Command line
-
hf download hf://spaces/plice13/SLT/style.css
-
curl -L -o style.css https://huggingface.co/spaces/plice13/SLT/resolve/main/style.css
49.4 kB
| /* ============================================================================== | |
| 1. DESIGN TOKENS (CSS VARIABLES) | |
| ============================================================================== */ | |
| :root { | |
| --bg-page: #221f1f; | |
| --bg-card: #2d2929; | |
| --bg-surface: #1e1b1b; | |
| --bg-surface-hover: #242020; | |
| --bg-button: #383333; | |
| --bg-button-hover: #443e3e; | |
| --bg-btn-preview: #332f2f; | |
| --bg-btn-preview-hover: #3f3939; | |
| --color-btn-preview: var(--text-body); | |
| --bg-btn-change: #2a2525; | |
| --bg-btn-change-hover: rgba(219, 167, 14, 0.18); | |
| --color-btn-change: var(--gold); | |
| --bg-btn-keypoints: linear-gradient(135deg, #383333 0%, #2a2626 100%); | |
| --color-btn-keypoints: var(--gold); | |
| --bg-translation-box: radial-gradient(circle at center, #353030 0%, #242020 100%); | |
| --color-translation-text: var(--text-primary); | |
| --shadow-card: 0 4px 14px rgba(0, 0, 0, 0.45); | |
| --shadow-header-badge: 0 3px 12px rgba(0, 0, 0, 0.4), 0 0 8px var(--gold-glow); | |
| --modal-overlay-bg: rgba(0, 0, 0, 0.85); | |
| --modal-card-bg: #262222; | |
| --modal-card-shadow: 0 20px 50px rgba(0, 0, 0, 0.95); | |
| --modal-title-color: #ffffff; | |
| --gold: #dba70e; | |
| --gold-hover: #e8b625; | |
| --gold-border: rgba(219, 167, 14, 0.4); | |
| --gold-border-subtle: rgba(219, 167, 14, 0.25); | |
| --gold-glow: rgba(219, 167, 14, 0.3); | |
| --text-primary: #ffffff; | |
| --text-body: #f5f5f5; | |
| --text-muted: #cfc8c8; | |
| } | |
| /* ============================================================================== | |
| 2. GLOBAL LAYOUT & BASE STYLES | |
| ============================================================================== */ | |
| html { | |
| background-color: var(--bg-page) ; | |
| color: var(--text-body) ; | |
| min-height: 100vh ; | |
| overflow-y: scroll ; /* Always displays the vertical scrollbar on the right */ | |
| scrollbar-gutter: stable; | |
| scrollbar-width: thin ; | |
| scrollbar-color: #554e4e #1a1717 ; | |
| } | |
| body { | |
| background-color: var(--bg-page) ; | |
| color: var(--text-body) ; | |
| min-height: 100vh ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| overflow-x: hidden ; | |
| } | |
| gradio-app { | |
| background-color: var(--bg-page) ; | |
| color: var(--text-body) ; | |
| min-height: 100vh ; | |
| } | |
| /* Custom Visible Scrollbar for Webkit/Blink (Chrome, Edge, Safari, Opera, Brave) */ | |
| ::-webkit-scrollbar { | |
| width: 12px ; | |
| height: 12px ; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #1a1717 ; | |
| border-left: 1px solid rgba(219, 167, 14, 0.25) ; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #443e3e ; | |
| border-radius: 6px ; | |
| border: 2px solid #1a1717 ; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--gold) ; | |
| } | |
| #main-layout { | |
| max-width: 820px ; | |
| margin: 12px auto 24px auto ; | |
| gap: 12px ; | |
| } | |
| .header-titles h1, | |
| .app-title { | |
| text-align: center; | |
| color: var(--gold) ; | |
| font-weight: 800 ; | |
| letter-spacing: 0.5px; | |
| font-size: clamp(22px, 3vh, 30px) ; | |
| margin: 6px 0 2px 0 ; | |
| white-space: nowrap ; | |
| } | |
| .header-titles h2, | |
| .app-subtitle { | |
| text-align: center; | |
| color: var(--text-body) ; | |
| font-weight: 400 ; | |
| font-size: 13.5px ; | |
| opacity: 0.85; | |
| margin: 0 ; | |
| } | |
| /* ============================================================================== | |
| 3. MODULAR UI CARDS & HEADER CONTROLS | |
| ============================================================================== */ | |
| .ui-card { | |
| background-color: var(--bg-card) ; | |
| border: 1px solid var(--gold-border) ; | |
| border-radius: 10px ; | |
| padding: 16px 20px ; | |
| box-shadow: var(--shadow-card) ; | |
| } | |
| h3, .card-title { | |
| color: var(--gold) ; | |
| font-size: 20px ; | |
| font-weight: 800 ; | |
| letter-spacing: 0.8px ; | |
| margin: 0 ; | |
| } | |
| .card-header-row { | |
| display: flex ; | |
| flex-direction: row ; | |
| flex-wrap: nowrap ; | |
| justify-content: space-between ; | |
| align-items: center ; | |
| width: 100% ; | |
| margin-bottom: 12px ; | |
| } | |
| .record-btn-col { | |
| flex: 0 0 auto ; | |
| width: auto ; | |
| min-width: 0 ; | |
| margin: 0 0 0 auto ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: flex-end ; | |
| } | |
| .record-yourself-btn { | |
| background: var(--bg-button) ; | |
| border: 1px solid var(--gold-border) ; | |
| color: var(--text-body) ; | |
| font-size: 12.5px ; | |
| font-weight: 700 ; | |
| letter-spacing: 0.6px ; | |
| border-radius: 6px ; | |
| height: 32px ; | |
| padding: 0 14px ; | |
| white-space: nowrap ; | |
| display: inline-flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| width: auto ; | |
| cursor: pointer ; | |
| transition: all 0.2s ease ; | |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35) ; | |
| } | |
| .record-yourself-btn:hover { | |
| background: var(--bg-button-hover) ; | |
| border-color: var(--gold) ; | |
| color: var(--text-primary) ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 12px var(--gold-glow) ; | |
| } | |
| /* ============================================================================== | |
| 4. PRIMARY ACTION BUTTONS | |
| ============================================================================== */ | |
| .translate-btn, .modal-done-btn, button.primary { | |
| background: linear-gradient(135deg, var(--gold) 0%, #b8860b 100%) ; | |
| color: #221f1f ; | |
| font-weight: 800 ; | |
| font-size: 18px ; | |
| letter-spacing: 0.5px ; | |
| border: none ; | |
| border-radius: 8px ; | |
| height: 48px ; | |
| width: 100% ; | |
| box-shadow: 0 3px 12px var(--gold-glow) ; | |
| transition: all 0.2s ease ; | |
| margin: 6px 0 ; | |
| cursor: pointer ; | |
| } | |
| .translate-btn:hover, .modal-done-btn:hover, button.primary:hover { | |
| background: linear-gradient(135deg, var(--gold-hover) 0%, var(--gold) 100%) ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 5px 18px rgba(219, 167, 14, 0.45) ; | |
| } | |
| /* ============================================================================== | |
| 5. EXAMPLES SECTION | |
| ============================================================================== */ | |
| .examples-row { | |
| margin-top: 0; | |
| } | |
| .examples-row-second { | |
| margin-top: 14px ; | |
| } | |
| .examples-row, | |
| .examples-row *, | |
| .examples-row video, | |
| .examples-row .wrap, | |
| .examples-row .mirror-wrap, | |
| .examples-row .mirror { | |
| transform: none ; | |
| } | |
| .examples-row > div { | |
| min-width: 0 ; | |
| gap: 6px ; | |
| } | |
| .example-title { | |
| color: var(--gold) ; | |
| font-size: 18px ; | |
| font-weight: 700 ; | |
| text-align: center ; | |
| margin: 0 0 0 0 ; | |
| text-transform: uppercase ; | |
| letter-spacing: 1px ; | |
| text-shadow: none ; | |
| } | |
| .examples-row .gradio-html, | |
| .examples-row .html-container { | |
| min-height: auto ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| } | |
| .example-btn { | |
| background: var(--bg-button) ; | |
| color: var(--text-body) ; | |
| border: 1px solid rgba(219, 167, 14, 0.35) ; | |
| border-radius: 6px ; | |
| font-weight: 600 ; | |
| font-size: 13px ; | |
| margin-top: 8px ; | |
| padding: 7px 10px ; | |
| width: 100% ; | |
| transition: all 0.2s ease ; | |
| cursor: pointer ; | |
| } | |
| .example-btn:hover { | |
| background: var(--gold) ; | |
| color: #221f1f ; | |
| border-color: var(--gold) ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* ============================================================================== | |
| 6. TRANSLATION GRADIO OVERRIDES | |
| ============================================================================== */ | |
| #translation-card .block, | |
| #translation-card .gradio-html, | |
| #translation-card .html-container, | |
| #translation-display { | |
| background: transparent ; | |
| border: none ; | |
| box-shadow: none ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| width: 100% ; | |
| } | |
| #translation-card .wrap, | |
| #translation-card [data-testid="loading-status"], | |
| #translation-card .eta-bar, | |
| #translation-card .progress-level { | |
| display: none ; | |
| } | |
| /* Dedicated Gray Container for Translation */ | |
| .translation-content-box { | |
| display: flex ; | |
| flex-direction: column ; | |
| align-items: center ; | |
| justify-content: center ; | |
| min-height: 90px ; | |
| padding: 16px 20px ; | |
| background: var(--bg-translation-box) ; | |
| border-radius: 8px ; | |
| border: 1px solid var(--gold-border-subtle) ; | |
| box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4) ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| /* Clean White Centered Translation Text */ | |
| .translation-text { | |
| color: var(--color-translation-text) ; | |
| font-size: clamp(24px, 3.5vh, 32px) ; | |
| font-weight: 800 ; | |
| letter-spacing: 1.5px ; | |
| text-transform: uppercase ; | |
| text-align: center ; | |
| line-height: 1.2 ; | |
| margin: 0 ; | |
| width: 100% ; | |
| } | |
| /* Loading Spinner Container & Keyframes */ | |
| .loading-container { | |
| display: flex ; | |
| flex-direction: column ; | |
| align-items: center ; | |
| justify-content: center ; | |
| padding: 8px 0 ; | |
| } | |
| .pulse-spinner { | |
| width: 32px ; | |
| height: 32px ; | |
| border: 3px solid rgba(219, 167, 14, 0.2) ; | |
| border-top: 3px solid var(--gold) ; | |
| border-right: 3px solid var(--text-primary) ; | |
| border-radius: 50% ; | |
| animation: spinRing 0.9s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite ; | |
| box-shadow: 0 0 12px var(--gold-glow) ; | |
| } | |
| /* Live Progress Box inside Translation Box */ | |
| .live-progress-box { | |
| display: flex ; | |
| flex-direction: column ; | |
| align-items: stretch ; | |
| justify-content: flex-start ; | |
| gap: 8px ; | |
| padding: 12px 16px ; | |
| } | |
| .progress-badge-header { | |
| display: flex ; | |
| flex-direction: row ; | |
| align-items: center ; | |
| justify-content: space-between ; | |
| gap: 10px ; | |
| width: 100% ; | |
| } | |
| .pulse-spinner-small { | |
| width: 16px ; | |
| height: 16px ; | |
| border: 2.5px solid rgba(219, 167, 14, 0.2) ; | |
| border-top: 2.5px solid var(--gold) ; | |
| border-radius: 50% ; | |
| animation: spinRing 0.8s linear infinite ; | |
| flex-shrink: 0 ; | |
| } | |
| .progress-step-title { | |
| color: var(--gold) ; | |
| font-size: 13px ; | |
| font-weight: 700 ; | |
| letter-spacing: 0.4px ; | |
| white-space: nowrap ; | |
| overflow: hidden ; | |
| text-overflow: ellipsis ; | |
| flex: 1 1 auto ; | |
| text-align: left ; | |
| } | |
| .progress-step-percent { | |
| color: var(--text-primary) ; | |
| font-size: 12px ; | |
| font-weight: 800 ; | |
| background: rgba(219, 167, 14, 0.2) ; | |
| border: 1px solid var(--gold-border) ; | |
| padding: 2px 8px ; | |
| border-radius: 10px ; | |
| flex-shrink: 0 ; | |
| } | |
| .custom-progress-bar-track { | |
| width: 100% ; | |
| height: 6px ; | |
| background: rgba(0, 0, 0, 0.5) ; | |
| border-radius: 4px ; | |
| overflow: hidden ; | |
| border: 1px solid rgba(219, 167, 14, 0.2) ; | |
| } | |
| .custom-progress-bar-fill { | |
| height: 100% ; | |
| background: linear-gradient(90deg, #b8860b 0%, #dba70e 50%, #ffe066 100%) ; | |
| border-radius: 4px ; | |
| transition: width 0.2s ease-out ; | |
| box-shadow: 0 0 8px rgba(219, 167, 14, 0.6) ; | |
| } | |
| .live-console-log { | |
| background: #181515 ; | |
| border: 1px solid rgba(219, 167, 14, 0.15) ; | |
| border-radius: 6px ; | |
| padding: 8px 12px ; | |
| max-height: 125px ; | |
| overflow-y: hidden ; | |
| box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6) ; | |
| text-align: left ; | |
| } | |
| .console-line { | |
| display: flex ; | |
| justify-content: space-between ; | |
| align-items: center ; | |
| width: 100% ; | |
| line-height: 1.5 ; | |
| font-family: 'Consolas', 'Courier New', monospace ; | |
| font-size: 11px ; | |
| } | |
| .console-msg { | |
| text-align: left ; | |
| white-space: pre ; | |
| color: #cfc8c8 ; | |
| overflow: hidden ; | |
| text-overflow: ellipsis ; | |
| } | |
| .console-time { | |
| text-align: right ; | |
| color: #8a8276 ; | |
| font-size: 10px ; | |
| margin-left: 12px ; | |
| white-space: nowrap ; | |
| flex-shrink: 0 ; | |
| } | |
| @keyframes spinRing { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| /* ============================================================================== | |
| 7. VIDEO UPLOAD DROPZONE & ACTIVE VIDEO ROW | |
| ============================================================================== */ | |
| .compact-dropzone { | |
| background-color: var(--bg-surface) ; | |
| border: 2px dashed var(--gold-border) ; | |
| border-radius: 10px ; | |
| padding: 20px 24px ; | |
| min-height: 155px ; | |
| max-height: 50vh; | |
| transition: all 0.2s ease ; | |
| overflow: hidden ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| position: relative ; | |
| } | |
| .compact-dropzone:hover { | |
| border-color: var(--gold) ; | |
| background-color: var(--bg-surface-hover) ; | |
| } | |
| /* Hide native file input element */ | |
| .compact-dropzone input[type="file"], | |
| .compact-dropzone [data-testid="file-upload"], | |
| input[type="file"] { | |
| display: none ; | |
| visibility: hidden ; | |
| opacity: 0 ; | |
| position: absolute ; | |
| pointer-events: none ; | |
| } | |
| .compact-dropzone .upload-container, | |
| .compact-dropzone > div:not([data-testid="file-upload"]) { | |
| min-height: 130px ; | |
| padding: 12px 18px ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| width: 100% ; | |
| } | |
| .compact-dropzone button { | |
| padding: 10px 22px ; | |
| font-size: 14px ; | |
| font-weight: 700 ; | |
| } | |
| /* Active Video Info Row (Video Name on Left, Action Buttons Aligned Right, strictly single line) */ | |
| .video-info-row { | |
| background: var(--bg-surface) ; | |
| border: 1.5px solid var(--gold-border) ; | |
| border-radius: 10px ; | |
| padding: 10px 16px ; | |
| min-height: 58px ; | |
| display: flex ; | |
| flex-direction: row ; | |
| flex-wrap: nowrap ; | |
| align-items: center ; | |
| justify-content: space-between ; | |
| gap: 12px ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .video-info-row > .video-name-col, | |
| .video-info-row > .prose, | |
| .video-info-row > div:first-child { | |
| flex: 1 1 auto ; | |
| min-width: 0 ; | |
| width: auto ; | |
| margin: 0 ; | |
| display: flex ; | |
| align-items: center ; | |
| } | |
| .video-info-row > .video-name-col p, | |
| .video-info-row > .prose p { | |
| margin: 0 ; | |
| padding: 0 ; | |
| display: flex ; | |
| align-items: center ; | |
| white-space: nowrap ; | |
| background: transparent ; | |
| } | |
| .video-name-col, | |
| .video-name-col *, | |
| .video-name-col p, | |
| .video-name-col span, | |
| .video-name-badge, | |
| .video-name-badge * { | |
| background: transparent ; | |
| background-color: transparent ; | |
| box-shadow: none ; | |
| border: none ; | |
| } | |
| .video-name-badge { | |
| color: var(--text-body) ; | |
| font-size: 15px ; | |
| font-weight: 600 ; | |
| overflow: hidden ; | |
| text-overflow: ellipsis ; | |
| white-space: nowrap ; | |
| display: flex ; | |
| align-items: center ; | |
| } | |
| /* Action buttons in Video Info Row */ | |
| .video-info-row > button, | |
| .preview-modal-btn, | |
| .change-vid-btn { | |
| border-radius: 8px ; | |
| height: 40px ; | |
| padding: 0 16px ; | |
| font-size: 13.5px ; | |
| font-weight: 700 ; | |
| cursor: pointer ; | |
| transition: all 0.2s ease ; | |
| display: inline-flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| white-space: nowrap ; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) ; | |
| flex: 0 0 auto ; | |
| width: auto ; | |
| } | |
| .preview-modal-btn { | |
| background: var(--bg-btn-preview) ; | |
| color: var(--color-btn-preview) ; | |
| border: 1px solid var(--gold) ; | |
| margin: 0 0 0 auto ; | |
| } | |
| .preview-modal-btn:hover { | |
| background: var(--bg-btn-preview-hover) ; | |
| border-color: var(--gold-hover) ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 12px var(--gold-glow) ; | |
| } | |
| .change-vid-btn { | |
| background: var(--bg-btn-change) ; | |
| border: 1px solid var(--gold-border) ; | |
| color: var(--color-btn-change) ; | |
| margin: 0 ; | |
| } | |
| .change-vid-btn:hover { | |
| background: var(--bg-btn-change-hover) ; | |
| border-color: var(--gold) ; | |
| color: var(--text-primary) ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* ============================================================================== | |
| 8. INFORMATION CARD & ADVANCED DEMO LINK | |
| ============================================================================== */ | |
| .info-content { | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: space-between ; | |
| gap: 20px ; | |
| } | |
| .info-text { | |
| color: var(--text-muted) ; | |
| font-size: 12.5px ; | |
| line-height: 1.55 ; | |
| margin: 0 ; | |
| flex: 1 1 auto ; | |
| } | |
| .info-markdown { | |
| color: var(--text-body) ; | |
| font-size: 14px ; | |
| line-height: 1.7 ; | |
| margin-top: 6px ; | |
| } | |
| .info-markdown h1, | |
| .info-markdown h2 { | |
| color: var(--gold) ; | |
| font-size: 16.5px ; | |
| font-weight: 800 ; | |
| text-align: left ; | |
| margin: 20px 0 10px 0 ; | |
| letter-spacing: 0.5px ; | |
| border-bottom: 1.5px solid var(--gold-border-subtle) ; | |
| padding-bottom: 5px ; | |
| opacity: 1 ; | |
| } | |
| .info-markdown h3 { | |
| color: var(--gold) ; | |
| font-size: 14.5px ; | |
| font-weight: 700 ; | |
| text-align: left ; | |
| margin: 14px 0 6px 0 ; | |
| letter-spacing: 0.3px ; | |
| opacity: 1 ; | |
| } | |
| .info-markdown p { | |
| color: var(--text-body) ; | |
| font-size: 14px ; | |
| line-height: 1.7 ; | |
| margin: 0 0 10px 0 ; | |
| } | |
| .info-markdown strong { | |
| color: var(--text-primary) ; | |
| font-weight: 700 ; | |
| } | |
| .info-markdown a { | |
| color: var(--gold) ; | |
| font-weight: 600 ; | |
| text-decoration: underline ; | |
| text-underline-offset: 3px ; | |
| transition: color 0.15s ease ; | |
| } | |
| .info-markdown a:hover { | |
| color: var(--gold-hover) ; | |
| text-decoration: underline ; | |
| } | |
| .info-markdown ul, | |
| .info-markdown ol { | |
| margin: 6px 0 12px 22px ; | |
| padding-left: 0 ; | |
| color: var(--text-body) ; | |
| } | |
| .info-markdown li { | |
| margin-bottom: 6px ; | |
| line-height: 1.6 ; | |
| color: var(--text-body) ; | |
| } | |
| .info-markdown blockquote { | |
| border-left: 4px solid var(--gold) ; | |
| background: rgba(219, 167, 14, 0.12) ; | |
| padding: 10px 16px ; | |
| margin: 14px 0 ; | |
| border-radius: 0 8px 8px 0 ; | |
| color: var(--text-primary) ; | |
| } | |
| .info-markdown blockquote p { | |
| margin: 0 ; | |
| color: var(--text-primary) ; | |
| font-weight: 500 ; | |
| } | |
| .advanced-demo-link { | |
| display: inline-flex ; | |
| flex-direction: column ; | |
| align-items: center ; | |
| justify-content: center ; | |
| text-align: center ; | |
| background: rgba(219, 167, 14, 0.14) ; | |
| color: var(--gold) ; | |
| border: 1.5px solid var(--gold) ; | |
| border-radius: 10px ; | |
| padding: 10px 18px ; | |
| gap: 2px ; | |
| text-decoration: none ; | |
| white-space: nowrap ; | |
| transition: all 0.2s ease ; | |
| flex-shrink: 0 ; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) ; | |
| cursor: pointer ; | |
| } | |
| .advanced-demo-link:hover { | |
| background: var(--gold) ; | |
| color: #221f1f ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 14px rgba(219, 167, 14, 0.35) ; | |
| } | |
| .advanced-demo-link .adv-line { | |
| display: block ; | |
| line-height: 1.25 ; | |
| text-transform: uppercase ; | |
| } | |
| .advanced-demo-link .adv-line-1 { | |
| font-size: 13px ; | |
| font-weight: 800 ; | |
| letter-spacing: 1.2px ; | |
| } | |
| .advanced-demo-link .adv-line-2 { | |
| font-size: 11.5px ; | |
| font-weight: 700 ; | |
| letter-spacing: 1px ; | |
| opacity: 0.95 ; | |
| } | |
| .advanced-demo-link .adv-line-3 { | |
| font-size: 14px ; | |
| font-weight: 800 ; | |
| letter-spacing: 1.2px ; | |
| margin-top: 1px ; | |
| } | |
| /* ============================================================================== | |
| 9. FULLSCREEN MODAL (WEBCAM RECORDING & TRIMMING) | |
| ============================================================================== */ | |
| .modal-overlay, | |
| .gradio-container .modal-overlay, | |
| [class*="gradio-container"] .modal-overlay { | |
| position: fixed ; | |
| top: 0 ; | |
| left: 0 ; | |
| right: 0 ; | |
| bottom: 0 ; | |
| width: 100vw ; | |
| height: 100vh ; | |
| background: var(--modal-overlay-bg) ; | |
| backdrop-filter: blur(10px) ; | |
| -webkit-backdrop-filter: blur(10px) ; | |
| z-index: 99999 ; | |
| display: flex ; | |
| flex-direction: column ; | |
| align-items: center ; | |
| justify-content: flex-start ; | |
| padding: 30px 20px 25px 20px ; | |
| overflow-y: auto ; | |
| box-sizing: border-box ; | |
| flex-grow: 0 ; | |
| } | |
| .modal-dialog-card, | |
| .gradio-container .modal-dialog-card, | |
| .gradio-container .contain .modal-dialog-card, | |
| [class*="gradio-container"] [class*="contain"] .modal-dialog-card { | |
| margin-top: 15px ; | |
| margin-bottom: 25px ; | |
| background-color: var(--modal-card-bg) ; | |
| background: var(--modal-card-bg) ; | |
| border: 1.5px solid var(--gold) ; | |
| border-radius: 16px ; | |
| max-width: 680px ; | |
| width: 95% ; | |
| height: auto ; | |
| max-height: 88vh ; | |
| flex: 0 0 auto ; | |
| flex-grow: 0 ; | |
| flex-shrink: 0 ; | |
| overflow-y: auto ; | |
| padding: 20px 24px ; | |
| box-shadow: var(--modal-card-shadow) ; | |
| box-sizing: border-box ; | |
| display: flex ; | |
| flex-direction: column ; | |
| gap: 14px ; | |
| animation: modalScaleIn 0.22s cubic-bezier(0.16, 1, 0.3, 1) ; | |
| } | |
| .modal-dialog-card > * { | |
| flex-grow: 0 ; | |
| } | |
| @keyframes modalScaleIn { | |
| 0% { | |
| opacity: 0; | |
| transform: scale(0.92); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| .modal-header-row { | |
| display: flex ; | |
| justify-content: space-between ; | |
| align-items: center ; | |
| width: 100% ; | |
| border-bottom: 1px solid rgba(219, 167, 14, 0.3) ; | |
| padding-bottom: 10px ; | |
| } | |
| .modal-title, | |
| .modal-title *, | |
| .modal-header-row h3, | |
| .modal-header-row h3 *, | |
| .modal-header-row .prose, | |
| .modal-header-row .prose *, | |
| .modal-dialog-card .modal-title, | |
| .modal-dialog-card .modal-title * { | |
| color: var(--text-primary) ; | |
| font-size: 18px ; | |
| font-weight: 700 ; | |
| margin: 0px ; | |
| } | |
| .modal-close-col { | |
| flex: 0 0 auto ; | |
| min-width: 36px ; | |
| margin-left: auto ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: flex-end ; | |
| } | |
| .modal-close-icon { | |
| background: transparent ; | |
| border: none ; | |
| color: var(--gold) ; | |
| font-size: 24px ; | |
| font-weight: bold ; | |
| cursor: pointer ; | |
| width: 36px ; | |
| height: 36px ; | |
| padding: 0 ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| border-radius: 6px ; | |
| transition: all 0.2s ease ; | |
| } | |
| .modal-close-icon:hover { | |
| color: var(--text-primary) ; | |
| background-color: var(--gold-border-subtle) ; | |
| transform: scale(1.1) ; | |
| } | |
| /* Video Controls Override - Dark Mode (Default Light Text) */ | |
| .controls, | |
| .controls *, | |
| [class*="controls"], | |
| [class*="controls"] * { | |
| color: #ffffff ; | |
| } | |
| .controls svg, | |
| [class*="controls"] svg { | |
| color: #ffffff ; | |
| } | |
| /* Dynamic Webcam Recording Action Buttons: Strictly hidden by default until video is recorded */ | |
| .record-footer-row { | |
| display: none ; | |
| } | |
| .record-footer-row.has-recording { | |
| display: flex ; | |
| } | |
| .modal-video-player { | |
| width: 100% ; | |
| display: flex ; | |
| flex-direction: column ; | |
| margin: 0 ; | |
| border-radius: 8px ; | |
| flex-grow: 0 ; | |
| flex-shrink: 0 ; | |
| } | |
| .modal-video-player video { | |
| max-height: 38vh ; | |
| width: 100% ; | |
| object-fit: contain ; | |
| border-radius: 8px ; | |
| } | |
| /* Video playback and webcam stream: strictly no flip / unmirrored across all video players */ | |
| video, | |
| .modal-video-player video, | |
| .modal-video-player [data-testid="webcam"] video, | |
| .modal-video-player .record video, | |
| .modal-video-player video:not([src]) { | |
| transform: none ; | |
| } | |
| .modal-footer-col { | |
| width: 100% ; | |
| margin-top: 14px ; | |
| display: flex ; | |
| flex-direction: column ; | |
| gap: 10px ; | |
| align-items: stretch ; | |
| flex-grow: 0 ; | |
| flex-shrink: 0 ; | |
| } | |
| .modal-footer-row { | |
| width: 100% ; | |
| margin-top: 14px ; | |
| display: flex ; | |
| flex-direction: row ; | |
| gap: 10px ; | |
| align-items: center ; | |
| flex-grow: 0 ; | |
| flex-shrink: 0 ; | |
| } | |
| .modal-footer-col button, | |
| .modal-footer-row button, | |
| .modal-done-btn { | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .modal-footer-row button { | |
| flex: 1 1 0 ; | |
| min-width: 0 ; | |
| } | |
| .modal-cancel-btn { | |
| background: var(--bg-button) ; | |
| color: var(--text-body) ; | |
| border: 1px solid var(--gold-border-subtle) ; | |
| font-weight: 600 ; | |
| } | |
| .modal-cancel-btn:hover { | |
| background: var(--bg-button-hover) ; | |
| color: var(--text-primary) ; | |
| border-color: var(--gold-border) ; | |
| } | |
| .modal-use-direct-btn { | |
| background: var(--bg-button) ; | |
| color: var(--gold) ; | |
| border: 1px solid var(--gold-border) ; | |
| font-weight: 700 ; | |
| } | |
| .modal-use-direct-btn:hover { | |
| background: var(--bg-button-hover) ; | |
| border-color: var(--gold-hover) ; | |
| box-shadow: 0 2px 10px rgba(212, 175, 55, 0.25) ; | |
| } | |
| /* Subtle discreet bottom control row (Restart session aligned right) */ | |
| .restart-row { | |
| margin-top: 18px ; | |
| display: flex ; | |
| flex-direction: row ; | |
| justify-content: flex-end ; | |
| align-items: center ; | |
| width: 100% ; | |
| } | |
| .restart-btn { | |
| background: transparent ; | |
| color: #736b6b ; | |
| border: 1px solid #3d3737 ; | |
| border-radius: 6px ; | |
| font-size: 12px ; | |
| font-weight: 500 ; | |
| padding: 4px 12px ; | |
| height: 30px ; | |
| cursor: pointer ; | |
| transition: all 0.2s ease ; | |
| opacity: 0.75 ; | |
| } | |
| .restart-btn:hover { | |
| color: #ded7d7 ; | |
| border-color: #696262 ; | |
| background: rgba(255, 255, 255, 0.05) ; | |
| opacity: 1 ; | |
| } | |
| /* ============================================================================== | |
| 10. SCROLLABLE HEADER WITH GOLD BADGES & RESPONSIVE DESIGN | |
| ============================================================================== */ | |
| .app-header-html, | |
| .app-header-html.block, | |
| .app-header-html .html-container { | |
| background: transparent ; | |
| border: none ; | |
| box-shadow: none ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| width: 100% ; | |
| min-height: auto ; | |
| } | |
| .app-header-container { | |
| display: flex ; | |
| flex-direction: row ; | |
| align-items: center ; | |
| justify-content: space-between ; | |
| width: 100% ; | |
| margin: 6px 0 4px 0 ; | |
| gap: 16px ; | |
| box-sizing: border-box ; | |
| } | |
| .header-titles { | |
| flex: 1 1 auto ; | |
| text-align: center ; | |
| min-width: 0 ; | |
| display: flex ; | |
| flex-direction: column ; | |
| align-items: center ; | |
| justify-content: center ; | |
| } | |
| .app-title { | |
| text-align: center ; | |
| color: var(--gold) ; | |
| font-weight: 800 ; | |
| letter-spacing: 0.5px ; | |
| font-size: clamp(19px, 2.4vw, 27px) ; | |
| margin: 0 0 3px 0 ; | |
| line-height: 1.2 ; | |
| white-space: normal ; | |
| } | |
| .app-subtitle { | |
| text-align: center ; | |
| color: var(--text-body) ; | |
| font-weight: 400 ; | |
| font-size: 13.5px ; | |
| opacity: 0.85 ; | |
| margin: 0 ; | |
| line-height: 1.3 ; | |
| } | |
| /* Gold Box Badges Aligned to the Content Left & Right */ | |
| .header-badge { | |
| flex: 0 0 180px ; | |
| width: 180px ; | |
| max-width: 180px ; | |
| height: 80px ; | |
| max-height: 80px ; | |
| box-sizing: border-box ; | |
| background-color: var(--bg-page) ; | |
| border: 1.5px solid var(--gold) ; | |
| border-radius: 9px ; | |
| padding: 0px ; | |
| box-shadow: 0 3px 12px rgba(0, 0, 0, 0.4), 0 0 8px rgba(212, 175, 55, 0.3) ; | |
| display: inline-flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease ; | |
| overflow: hidden ; | |
| } | |
| .header-badge:hover { | |
| transform: translateY(-2px) ; | |
| border-color: var(--gold-hover) ; | |
| box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45), 0 0 14px var(--gold-glow) ; | |
| } | |
| .header-badge a { | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| width: 100% ; | |
| height: 100% ; | |
| text-decoration: none ; | |
| line-height: 0 ; | |
| } | |
| .header-badge-img { | |
| max-height: 80px ; | |
| max-width: 180px ; | |
| width: auto ; | |
| height: auto ; | |
| display: block ; | |
| object-fit: contain ; | |
| margin: auto ; | |
| padding: 15px 15px ; | |
| } | |
| @media (max-width: 650px) { | |
| .app-header-container { | |
| flex-wrap: wrap ; | |
| justify-content: center ; | |
| gap: 10px ; | |
| } | |
| .header-titles { | |
| order: 1 ; | |
| width: 100% ; | |
| margin-bottom: 4px ; | |
| } | |
| .header-badge-left { | |
| order: 2 ; | |
| } | |
| .header-badge-right { | |
| order: 3 ; | |
| } | |
| .examples-row { | |
| flex-direction: column ; | |
| } | |
| .examples-row > div { | |
| width: 100% ; | |
| } | |
| .video-info-row { | |
| flex-direction: column ; | |
| align-items: stretch ; | |
| height: auto ; | |
| min-height: auto ; | |
| padding: 12px 14px ; | |
| gap: 10px ; | |
| } | |
| .video-info-row > .video-name-col, | |
| .video-info-row > .prose, | |
| .video-info-row > div:first-child { | |
| width: 100% ; | |
| justify-content: center ; | |
| text-align: center ; | |
| } | |
| .video-name-badge { | |
| width: 100% ; | |
| justify-content: center ; | |
| text-align: center ; | |
| } | |
| .preview-modal-btn, | |
| .change-vid-btn, | |
| .video-info-row > button { | |
| width: 100% ; | |
| margin: 0 ; | |
| box-sizing: border-box ; | |
| } | |
| } | |
| /* ============================================================================== | |
| 11. SHOW KEYPOINTS BUTTON & MODAL | |
| ============================================================================== */ | |
| .show-keypoints-btn { | |
| background: var(--bg-btn-keypoints) ; | |
| border: 1.5px solid var(--gold) ; | |
| color: var(--color-btn-keypoints) ; | |
| font-weight: 800 ; | |
| font-size: 18px ; | |
| letter-spacing: 0.5px ; | |
| border-radius: 8px ; | |
| height: 48px ; | |
| width: 100% ; | |
| box-shadow: 0 3px 12px rgba(0, 0, 0, 0.4), 0 0 10px var(--gold-border-subtle) ; | |
| transition: all 0.2s ease ; | |
| margin: 14px 0 0 0 ; | |
| cursor: pointer ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| } | |
| .show-keypoints-btn:hover { | |
| background: var(--gold) ; | |
| color: #1e1b1b ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 5px 18px var(--gold-glow) ; | |
| } | |
| .keypoints-video-player video { | |
| max-height: 52vh ; | |
| width: 100% ; | |
| object-fit: contain ; | |
| border-radius: 8px ; | |
| } | |
| /* ============================================================================== | |
| 12. LIGHT THEME OVERRIDES & TOGGLE BUTTON | |
| ============================================================================== */ | |
| html.light-theme, | |
| body.light-theme, | |
| gradio-app.light-theme, | |
| .light-theme { | |
| --bg-page: #f8fafc ; | |
| --bg-card: #ffffff ; | |
| --bg-surface: #f1f5f9 ; | |
| --bg-surface-hover: #e2e8f0 ; | |
| --bg-button: #ffffff ; | |
| --bg-button-hover: #fef3c7 ; | |
| --bg-btn-preview: #ffffff ; | |
| --bg-btn-preview-hover: #fef3c7 ; | |
| --color-btn-preview: #b8860b ; | |
| --bg-btn-change: #ffffff ; | |
| --bg-btn-change-hover: #fef2f2 ; | |
| --color-btn-change: #64748b ; | |
| --bg-btn-keypoints: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%) ; | |
| --color-btn-keypoints: #b8860b ; | |
| --bg-translation-box: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) ; | |
| --color-translation-text: #0f172a ; | |
| --shadow-card: 0 6px 20px rgba(184, 134, 11, 0.22), 0 0 12px rgba(184, 134, 11, 0.12) ; | |
| --shadow-header-badge: 0 4px 14px rgba(184, 134, 11, 0.22), 0 0 8px rgba(184, 134, 11, 0.12) ; | |
| --gold: #b8860b ; | |
| --gold-hover: #996e05 ; | |
| --gold-border: rgba(184, 134, 11, 0.45) ; | |
| --gold-border-subtle: rgba(184, 134, 11, 0.25) ; | |
| --gold-glow: rgba(184, 134, 11, 0.3) ; | |
| --text-primary: #0f172a ; | |
| --text-body: #1e293b ; | |
| --text-muted: #475569 ; | |
| background-color: var(--bg-page) ; | |
| color: #1e293b ; | |
| } | |
| .light-theme body, | |
| .light-theme gradio-app, | |
| .light-theme #main-layout { | |
| background-color: var(--bg-page) ; | |
| } | |
| .light-theme .ui-card { | |
| background-color: #ffffff ; | |
| border: 1.5px solid var(--gold-border) ; | |
| box-shadow: 0 6px 20px rgba(184, 134, 11, 0.22), 0 0 12px rgba(184, 134, 11, 0.12) ; | |
| } | |
| .light-theme .card-title { | |
| color: #b8860b ; | |
| } | |
| .light-theme .app-title { | |
| color: #b8860b ; | |
| } | |
| .light-theme .app-subtitle, | |
| .light-theme h2, | |
| .light-theme p, | |
| .light-theme span:not(.console-time):not(.progress-step-percent), | |
| .light-theme div, | |
| .light-theme li, | |
| .light-theme ul, | |
| .light-theme ol, | |
| .light-theme strong, | |
| .light-theme em, | |
| .light-theme blockquote, | |
| .light-theme .info-text, | |
| .light-theme .info-markdown, | |
| .light-theme .info-markdown p, | |
| .light-theme .info-markdown span, | |
| .light-theme .info-markdown li, | |
| .light-theme .info-markdown ul, | |
| .light-theme .info-markdown ol, | |
| .light-theme .prose, | |
| .light-theme .prose p { | |
| color: #1e293b ; | |
| } | |
| .light-theme .info-markdown h1, | |
| .light-theme .info-markdown h2, | |
| .light-theme .info-markdown h3 { | |
| color: #b8860b ; | |
| opacity: 1 ; | |
| border-color: var(--gold-border-subtle) ; | |
| } | |
| .light-theme strong { | |
| color: #0f172a ; | |
| } | |
| .light-theme .header-badge { | |
| background: #ffffff ; | |
| border: 1px solid #cbd5e1 ; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) ; | |
| } | |
| .light-theme .header-badge:hover { | |
| border-color: #94a3b8 ; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) ; | |
| } | |
| /* Fix Video Dropzone & Record Button in Light Mode */ | |
| .light-theme .compact-dropzone { | |
| background-color: #f8fafc ; | |
| border-color: var(--gold-border) ; | |
| } | |
| .light-theme .record-yourself-btn { | |
| background: #ffffff ; | |
| color: #b8860b ; | |
| border: 1.5px solid var(--gold) ; | |
| box-shadow: 0 2px 8px rgba(184, 134, 11, 0.2) ; | |
| } | |
| .light-theme .record-yourself-btn:hover { | |
| background: #fef3c7 ; | |
| border-color: var(--gold-hover) ; | |
| color: #996e05 ; | |
| } | |
| /* Fix Action buttons in Video Info Row in Light Mode */ | |
| .light-theme .video-info-row { | |
| background: #f8fafc ; | |
| border-color: var(--gold-border) ; | |
| } | |
| .light-theme .video-name-badge { | |
| background: #ffffff ; | |
| border-color: rgba(184, 134, 11, 0.3) ; | |
| color: #0f172a ; | |
| } | |
| .light-theme .preview-modal-btn { | |
| background: #ffffff ; | |
| color: #b8860b ; | |
| border: 1.5px solid var(--gold) ; | |
| box-shadow: 0 2px 8px rgba(184, 134, 11, 0.2) ; | |
| } | |
| .light-theme .preview-modal-btn:hover { | |
| background: #fef3c7 ; | |
| border-color: var(--gold-hover) ; | |
| color: #996e05 ; | |
| } | |
| .light-theme .change-vid-btn { | |
| background: #ffffff ; | |
| color: #64748b ; | |
| border: 1.5px solid #cbd5e1 ; | |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05) ; | |
| } | |
| .light-theme .change-vid-btn:hover { | |
| background: #fef2f2 ; | |
| color: #dc2626 ; | |
| border-color: #fca5a5 ; | |
| } | |
| /* Fix Primary Translate Button in Light Mode */ | |
| .light-theme .translate-btn, | |
| .light-theme button.primary, | |
| .light-theme .modal-done-btn { | |
| background: linear-gradient(135deg, #dba70e 0%, #b8860b 100%) ; | |
| color: #ffffff ; | |
| box-shadow: 0 4px 14px rgba(184, 134, 11, 0.35) ; | |
| } | |
| .light-theme .translate-btn:hover, | |
| .light-theme button.primary:hover, | |
| .light-theme .modal-done-btn:hover { | |
| background: linear-gradient(135deg, #e8b625 0%, #dba70e 100%) ; | |
| box-shadow: 0 6px 18px rgba(184, 134, 11, 0.5) ; | |
| } | |
| .light-theme .modal-cancel-btn { | |
| background: #f1f5f9 ; | |
| color: #475569 ; | |
| border-color: #cbd5e1 ; | |
| } | |
| .light-theme .modal-cancel-btn:hover { | |
| background: #e2e8f0 ; | |
| color: #0f172a ; | |
| } | |
| .light-theme .modal-use-direct-btn { | |
| background: #ffffff ; | |
| color: #b8860b ; | |
| border-color: #b8860b ; | |
| } | |
| .light-theme .modal-use-direct-btn:hover { | |
| background: #fef9c3 ; | |
| box-shadow: 0 2px 10px rgba(184, 134, 11, 0.2) ; | |
| } | |
| /* Fix Translation Result Box in Light Mode */ | |
| .light-theme .translation-content-box { | |
| background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) ; | |
| border: 1.5px solid var(--gold-border) ; | |
| box-shadow: inset 0 1px 4px rgba(184, 134, 11, 0.15), 0 2px 8px rgba(184, 134, 11, 0.1) ; | |
| } | |
| .light-theme .translation-text { | |
| color: #0f172a ; | |
| } | |
| /* Fix Show Keypoints Button in Light Mode */ | |
| .light-theme .show-keypoints-btn { | |
| background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%) ; | |
| border: 1.5px solid var(--gold) ; | |
| color: #b8860b ; | |
| box-shadow: 0 3px 12px rgba(184, 134, 11, 0.22) ; | |
| } | |
| .light-theme .show-keypoints-btn:hover { | |
| background: var(--gold) ; | |
| color: #ffffff ; | |
| box-shadow: 0 5px 18px rgba(184, 134, 11, 0.4) ; | |
| } | |
| /* Fix Example Buttons & Titles in Light Mode */ | |
| .light-theme .example-title { | |
| color: #b8860b ; | |
| text-shadow: none ; | |
| } | |
| .light-theme .example-btn { | |
| background: #ffffff ; | |
| color: #1e293b ; | |
| border: 1.5px solid var(--gold-border) ; | |
| box-shadow: 0 2px 6px rgba(184, 134, 11, 0.12) ; | |
| } | |
| .light-theme .example-btn:hover { | |
| background: var(--gold) ; | |
| color: #ffffff ; | |
| border-color: var(--gold) ; | |
| } | |
| /* Console logs & Info Markdown in Light Mode */ | |
| .light-theme .live-console-log { | |
| background: #ffffff ; | |
| border-color: rgba(184, 134, 11, 0.25) ; | |
| box-shadow: inset 0 2px 6px rgba(184, 134, 11, 0.08) ; | |
| } | |
| .light-theme .console-msg { | |
| color: #334155 ; | |
| } | |
| .light-theme .console-time { | |
| color: #64748b ; | |
| } | |
| .light-theme .info-markdown blockquote { | |
| background: rgba(184, 134, 11, 0.12) ; | |
| border-left: 4px solid #b8860b ; | |
| } | |
| .light-theme .info-markdown blockquote * { | |
| color: #0f172a ; | |
| } | |
| .light-theme .info-markdown a { | |
| color: #b8860b ; | |
| } | |
| .light-theme .info-markdown code { | |
| background: #e2e8f0 ; | |
| color: #0f172a ; | |
| } | |
| .light-theme .modal-overlay, | |
| .light-theme.modal-overlay, | |
| html.light-theme .modal-overlay, | |
| body.light-theme .modal-overlay, | |
| .light-theme .keypoints-modal-overlay, | |
| .keypoints-modal-overlay.light-theme, | |
| [class*="gradio-container"].light-theme .modal-overlay, | |
| [class*="gradio-container"] .light-theme .modal-overlay { | |
| background: rgba(15, 23, 42, 0.5) ; | |
| } | |
| .light-theme .modal-dialog-card, | |
| .light-theme.modal-dialog-card, | |
| html.light-theme .modal-dialog-card, | |
| body.light-theme .modal-dialog-card, | |
| .light-theme .gradio-container .modal-dialog-card, | |
| .light-theme .gradio-container .contain .modal-dialog-card, | |
| .light-theme .gradio-container.gradio-container-5-50-0-dev0 .contain .modal-dialog-card, | |
| .light-theme [class*="gradio-container"] [class*="contain"] .modal-dialog-card, | |
| html.light-theme .gradio-container.gradio-container-5-50-0-dev0 .contain .modal-dialog-card, | |
| body.light-theme .gradio-container.gradio-container-5-50-0-dev0 .contain .modal-dialog-card, | |
| .light-theme .keypoints-modal-overlay .modal-dialog-card, | |
| .keypoints-modal-overlay.light-theme .modal-dialog-card, | |
| html.light-theme .keypoints-modal-overlay .modal-dialog-card, | |
| body.light-theme .keypoints-modal-overlay .modal-dialog-card { | |
| background: #ffffff ; | |
| background-color: #ffffff ; | |
| border: 2px solid var(--gold) ; | |
| box-shadow: 0 20px 50px rgba(184, 134, 11, 0.35) ; | |
| color: #0f172a ; | |
| } | |
| .light-theme .modal-title, | |
| .light-theme .modal-title *, | |
| .light-theme .modal-header-row h3, | |
| .light-theme .modal-header-row h3 *, | |
| .light-theme .modal-header-row .prose, | |
| .light-theme .modal-header-row .prose *, | |
| .light-theme .modal-dialog-card .modal-title, | |
| .light-theme .modal-dialog-card .modal-title * { | |
| color: #000000 ; | |
| font-size: 18px ; | |
| font-weight: 700 ; | |
| margin: 0px ; | |
| } | |
| .light-theme ::-webkit-scrollbar-track { | |
| background: #e2e8f0 ; | |
| } | |
| .light-theme ::-webkit-scrollbar-thumb { | |
| background: #cbd5e1 ; | |
| } | |
| .light-theme .restart-btn { | |
| color: #64748b ; | |
| border-color: #cbd5e1 ; | |
| } | |
| .light-theme .restart-btn:hover { | |
| color: #0f172a ; | |
| border-color: var(--gold) ; | |
| background: rgba(184, 134, 11, 0.1) ; | |
| } | |
| .theme-toggle-btn { | |
| background: var(--bg-button) ; | |
| border: 1px solid var(--gold-border-subtle) ; | |
| color: var(--text-body) ; | |
| font-size: 11.5px ; | |
| font-weight: 600 ; | |
| border-radius: 6px ; | |
| height: 30px ; | |
| padding: 0 12px ; | |
| cursor: pointer ; | |
| transition: all 0.2s ease ; | |
| } | |
| .theme-toggle-btn:hover { | |
| background: var(--bg-button-hover) ; | |
| border-color: var(--gold) ; | |
| color: var(--gold) ; | |
| } | |
| /* Light Mode Video Controls Override - Black Text & Gray Button Background */ | |
| .light-theme .controls, | |
| .light-theme .controls *, | |
| .light-theme [class*="controls"], | |
| .light-theme [class*="controls"] * { | |
| color: #000000 ; | |
| } | |
| .light-theme .controls svg, | |
| .light-theme [class*="controls"] svg { | |
| color: #000000 ; | |
| } | |
| .light-theme .controls button, | |
| .light-theme .controls button *, | |
| .light-theme [class*="controls"] button, | |
| .light-theme [class*="controls"] button * { | |
| background: #4b4848 ; | |
| background-color: #4b4848 ; | |
| border-color: #cbd5e1 ; | |
| } | |
| .light-theme .controls button:hover, | |
| .light-theme [class*="controls"] button:hover { | |
| background: #cbd5e1 ; | |
| background-color: #cbd5e1 ; | |
| } | |
| /* Queue notice text */ | |
| .queue-notice-text { | |
| margin-top: 14px ; | |
| font-size: 14px ; | |
| font-weight: 600 ; | |
| color: var(--gold) ; | |
| text-align: center ; | |
| letter-spacing: 0.3px ; | |
| } | |
| .light-theme .queue-notice-text { | |
| color: #b8860b ; | |
| } | |