:root { color-scheme: light; --marble-100: #fafafa; --marble-200: #f4f4f2; --volcanic-900: #212121; --volcanic-700: #616161; --volcanic-500: #91918c; --green-700: #39594d; --coral-500: #ff7759; --quartz-500: #d18ee2; --mushroom-200: #e4ded2; --mushroom-300: #d7cfc1; --mushroom-700: #8e8572; --sans: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif; --shell-width: min(1040px, calc(100% - 48px)); /* Keep Gradio tokens light even when HF injects .dark / prefers-color-scheme */ --body-background-fill: var(--marble-100) !important; --body-text-color: var(--volcanic-900) !important; --body-text-color-subdued: var(--volcanic-700) !important; --background-fill-primary: var(--marble-100) !important; --background-fill-secondary: var(--marble-200) !important; --block-background-fill: #ffffff !important; --block-border-color: var(--mushroom-200) !important; --block-label-text-color: var(--volcanic-500) !important; --block-title-text-color: var(--volcanic-500) !important; --border-color-primary: var(--mushroom-200) !important; --input-background-fill: #ffffff !important; --input-border-color: var(--mushroom-300) !important; --input-placeholder-color: var(--volcanic-500) !important; --checkbox-background-color: #ffffff !important; --checkbox-label-background-fill: #ffffff !important; --checkbox-label-text-color: var(--volcanic-900) !important; --checkbox-border-color: var(--mushroom-300) !important; --button-secondary-background-fill: var(--marble-200) !important; --button-secondary-text-color: var(--volcanic-900) !important; --button-secondary-border-color: transparent !important; --color-accent-soft: #f6e8fa !important; } html, body, .gradio-container, .gradio-container.dark, .dark .gradio-container, gradio-app, gradio-app.dark { min-height: 100%; color-scheme: light !important; background: var(--marble-100) !important; color: var(--volcanic-900) !important; font-family: var(--sans) !important; } /* Hugging Face / Gradio dark mode flips body text tokens while our panels stay light. Keep the branded light surface in both modes. */ @media (prefers-color-scheme: dark) { :root, html, body, .gradio-container, .gradio-container.dark, gradio-app { color-scheme: light !important; background: var(--marble-100) !important; color: var(--volcanic-900) !important; --body-background-fill: var(--marble-100) !important; --body-text-color: var(--volcanic-900) !important; --background-fill-primary: var(--marble-100) !important; --background-fill-secondary: var(--marble-200) !important; --block-background-fill: #ffffff !important; --input-background-fill: #ffffff !important; --checkbox-label-background-fill: #ffffff !important; --checkbox-label-text-color: var(--volcanic-900) !important; } } /* Suppress Gradio progress flashes during fast local UI updates */ .progress-bar, .meta-text, .toast-wrap { display: none !important; } .gradio-container { max-width: none !important; padding: 0 !important; } .gradio-container .prose { color: var(--volcanic-900) !important; } footer { display: none !important; } /* Header */ #header-shell { border-bottom: 1px solid var(--mushroom-200); } .cohere-header { display: flex; align-items: center; width: var(--shell-width); height: 56px; margin: 0 auto; } .cohere-header img { display: block; width: 104px; height: 18px; } .model-link { display: flex; align-items: center; margin-left: auto; gap: 5px; color: var(--green-700) !important; font-size: 13px; font-weight: 600; text-decoration: none !important; } .model-link:hover { color: #9b60aa !important; } #app-shell { width: var(--shell-width); margin: 0 auto; padding: 28px 0 24px; gap: 22px; } .config-banner { padding: 8px 12px; border: 1px solid var(--mushroom-300); border-radius: 10px; background: #f5f4f2; color: var(--volcanic-700); font-size: 12px; } /* Translator */ #translator-workspace { align-items: stretch; gap: 26px; } #source-column, #output-column { min-width: 0; gap: 12px; } #source-column { flex: 0.92 1 0%; } #output-column { flex: 1.08 1 0%; } #source-language-control, #target-language-control { position: relative; overflow: visible !important; flex: 0 0 38px !important; height: 38px; min-height: 38px !important; max-height: 38px; } #source-language-control { z-index: 30; } #source-language-button { width: max-content; min-width: 0 !important; border: 0 !important; background: transparent !important; color: var(--volcanic-900) !important; box-shadow: none !important; font-size: 15px !important; font-weight: 600 !important; } #source-language-button { padding: 7px 10px !important; } #source-language-button:hover { background: var(--marble-200) !important; } #source-language-picker, #target-language-popup { position: absolute !important; z-index: 100; top: 42px; width: 680px; max-width: min(680px, calc(100vw - 48px)); padding: 14px !important; border: 1px solid var(--mushroom-200) !important; border-radius: 16px !important; background: #fff !important; box-shadow: 0 18px 60px rgb(33 33 33 / 16%) !important; } #source-language-picker { left: 0; } #target-language-popup { right: 0; padding-top: 42px !important; } #target-language-picker { position: static !important; width: 100%; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; } #target-language-popup > .form, #target-language-popup > .wrap, #target-language-popup .form, #target-language-picker > .form, #target-language-picker > .wrap, #target-language-picker .form, #target-language-picker .wrap { border: 0 !important; background: transparent !important; box-shadow: none !important; } #target-picker-close { position: absolute !important; top: 8px; right: 8px; z-index: 2; width: 30px; min-width: 30px !important; max-width: 30px; height: 30px; min-height: 30px !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; color: var(--volcanic-700) !important; font-size: 22px !important; font-weight: 400 !important; line-height: 1 !important; box-shadow: none !important; } #target-picker-close:hover { background: var(--marble-200) !important; } #source-language-picker .wrap, #target-language-picker .wrap { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 10px !important; } #source-language-picker label, #target-language-picker label { min-width: 0; padding: 7px 8px !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--volcanic-900) !important; font-size: 12px !important; line-height: 1.25 !important; } #source-language-picker label span, #target-language-picker label span, #source-language-picker .checkbox-label, #target-language-picker .checkbox-label, #source-language-picker input + span, #target-language-picker input + span { color: var(--volcanic-900) !important; } #source-language-picker label:hover, #target-language-picker label:hover { background: var(--marble-200) !important; } #instructions-input, #source-text-input, #translation-output { overflow: hidden; position: relative; border: 1px solid var(--mushroom-300) !important; background: #fff !important; box-shadow: none !important; } #instructions-input { height: 128px; min-height: 128px; max-height: 128px; border-radius: 22px !important; } #source-text-input { height: 356px; min-height: 356px; max-height: 356px; border-radius: 24px !important; } #translation-output { height: 272px; min-height: 272px; max-height: 272px; border-radius: 28px !important; background: #f0f2f3 !important; } #instructions-input::before, #source-text-input::before, #translation-output::before { position: absolute; top: 13px; left: 20px; z-index: 1; color: var(--volcanic-500) !important; font-family: var(--sans) !important; font-size: 10px !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: 0.04em; text-transform: uppercase; pointer-events: none; } #instructions-input::before { content: "Instructions"; } #source-text-input::before { content: "Source text"; } #translation-output::before { content: "Translation"; } #instructions-input > .wrap, #source-text-input > .wrap, #translation-output > .wrap, #instructions-input .input-container, #source-text-input .input-container, #translation-output .input-container { display: flex !important; height: 100% !important; min-height: 0 !important; max-height: 100% !important; flex: 1 1 auto; flex-direction: column; } #instructions-input textarea, #source-text-input textarea, #translation-output textarea { height: 100% !important; min-height: 0 !important; max-height: 100% !important; flex: 1 1 auto; padding: 34px 20px 16px !important; overflow-y: auto !important; resize: none !important; scrollbar-width: thin; scrollbar-color: rgb(33 33 33 / 18%) transparent; border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--volcanic-900) !important; font-family: var(--sans) !important; font-size: 15px !important; line-height: 1.55 !important; } #instructions-input textarea::placeholder, #source-text-input textarea::placeholder, #translation-output textarea::placeholder { color: var(--volcanic-500); opacity: 1; } #instructions-input textarea::-webkit-scrollbar, #source-text-input textarea::-webkit-scrollbar, #translation-output textarea::-webkit-scrollbar { width: 6px; } #instructions-input textarea::-webkit-scrollbar-track, #source-text-input textarea::-webkit-scrollbar-track, #translation-output textarea::-webkit-scrollbar-track { background: transparent; } #instructions-input textarea::-webkit-scrollbar-thumb, #source-text-input textarea::-webkit-scrollbar-thumb, #translation-output textarea::-webkit-scrollbar-thumb { border-radius: 999px; background: rgb(33 33 33 / 18%); } #translate-button { min-height: 42px; border: 1px solid #c077d1 !important; border-radius: 22px !important; background: #e7afeF !important; color: var(--volcanic-900) !important; box-shadow: none !important; font-size: 15px !important; font-weight: 600 !important; } #translate-button:hover { border-color: #a95fba !important; background: #dda0e9 !important; } /* Target tabs */ #target-language-control { align-items: center; flex-wrap: nowrap !important; gap: 4px; z-index: 25; } #target-language-control button.target-tab { appearance: none; position: relative; display: inline-flex !important; flex: 0 0 auto !important; align-items: center; width: auto !important; height: 38px !important; min-height: 38px !important; margin: 0 !important; padding: 0 10px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--volcanic-700) !important; box-shadow: none !important; cursor: pointer; font-family: var(--sans) !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1 !important; transition: color 160ms ease, opacity 160ms ease; } #target-language-control button.target-tab::after { position: absolute; right: 8px; bottom: 0; left: 8px; height: 2px; border-radius: 999px; background: var(--volcanic-900); content: ""; opacity: 0; transform: scaleX(0.35); transition: opacity 160ms ease, transform 180ms ease; } #target-language-control button.target-tab:hover, #target-language-control button.target-tab.active { color: var(--volcanic-900) !important; background: transparent !important; } #target-language-control button.target-tab.active::after { opacity: 1; transform: scaleX(1); } #target-language-control button.target-tab.loading, #target-language-control button.target-tab.complete { gap: 6px; } #target-language-control button.target-tab.loading::before, #target-language-control button.target-tab.complete::before { display: inline-flex; flex: 0 0 12px; align-items: center; justify-content: center; width: 12px; height: 12px; content: ""; } #target-language-control button.target-tab.loading::before { border: 1.5px solid rgb(33 33 33 / 22%); border-top-color: var(--volcanic-900); border-radius: 999px; animation: spin 700ms linear infinite; } #target-language-control button.target-tab.complete::before { background-color: var(--green-700); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2.25 6.25 2.25 2.2 5.25-5.1'/%3E%3C/svg%3E") center / 12px 12px no-repeat; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2.25 6.25 2.25 2.2 5.25-5.1'/%3E%3C/svg%3E") center / 12px 12px no-repeat; } #target-language-control button.target-tab.loading { opacity: 0.38; } #target-language-control button.target-tab.unavailable { opacity: 0.38; } #target-language-control button.target-tab.unavailable:hover, #target-language-control button.target-tab.unavailable.active { opacity: 0.55; } #target-add { display: inline-flex; flex: 0 0 36px !important; align-items: center; justify-content: center; width: 36px; min-width: 36px !important; max-width: 36px; height: 36px; min-height: 36px !important; margin-left: 2px; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; color: var(--volcanic-900) !important; cursor: pointer; font-family: var(--sans); font-size: 21px !important; font-weight: 400 !important; box-shadow: none !important; transform: translateY(-2px); } #target-add:hover { background: var(--marble-200) !important; } /* Examples */ #example-cards-shell { margin-top: 10px; align-items: stretch; gap: 18px; } .example-card-shell { min-width: 0; flex: 1 1 0% !important; opacity: 0.76; transition: opacity 160ms ease; } .example-card-shell:hover { opacity: 1; } .example-card-shell, .example-card-shell > div, .example-card-shell .prose { height: 100%; } .example-card { display: flex; width: 100%; height: 100%; min-height: 132px; flex-direction: column; align-items: flex-start; padding: 18px; border: 1px solid var(--mushroom-300); border-radius: 22px; background: #fff !important; color: var(--volcanic-900) !important; cursor: pointer; font-family: var(--sans); text-align: left; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; } .example-card:hover { border-color: var(--quartz-500); box-shadow: 0 10px 26px rgb(117 72 128 / 10%); transform: translateY(-1px); } .example-icon { display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; margin-bottom: 14px; color: var(--green-700); } .example-icon svg { width: 22px; height: 22px; } .example-title { margin-bottom: 5px; color: var(--volcanic-900) !important; font-size: 15px; font-weight: 600; line-height: 1.25; } .example-description { color: var(--volcanic-700) !important; font-size: 12.5px; font-weight: 400; line-height: 1.45; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 820px) { :root { --shell-width: calc(100% - 24px); } #app-shell { padding: 18px 0; } #translator-workspace { flex-direction: column; gap: 22px; } #source-column, #output-column { flex: 1 1 auto; } #source-language-picker, #target-language-popup { width: calc(100vw - 24px); } #source-language-picker .wrap, #target-language-picker .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); } #translation-output { height: 280px; min-height: 280px; max-height: 280px; } #example-cards-shell { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } } @media (max-width: 500px) { .model-link span:first-child { display: none; } #source-language-picker .wrap, #target-language-picker .wrap { grid-template-columns: 1fr; } #example-cards-shell { grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } .tab-spinner { animation: none; } }