Spaces:
Sleeping
Sleeping
| /* Settings page β page-specific styles layered over the design system. | |
| Chrome tokens only: every surface here should rhyme with the status bar. */ | |
| /* Tighter page chrome β reclaim whitespace around title and section padding. */ | |
| .settings-page { padding: 10px 24px 24px; } | |
| .settings-page h1 { font-size: 1.15rem; margin: 0 0 2px; } | |
| .settings-page .settings-subtitle{ font-size: 0.72rem; margin-bottom: 14px; } | |
| .settings-tabs-ui { margin-bottom: var(--space-3); } | |
| .settings-section--compact { padding: 8px 10px; margin-bottom: 8px; } | |
| .settings-row__mono { font-family: var(--chrome-font-mono); color: var(--chrome-fg-muted); } | |
| .settings-muted { color: var(--chrome-fg-dim); font-size: var(--text-md); font-family: var(--font-sans); } | |
| .settings-prose { | |
| margin: 0 0 var(--space-5); | |
| color: var(--chrome-fg-muted); | |
| line-height: 1.6; | |
| font-size: 0.82rem; | |
| font-family: var(--font-sans); | |
| } | |
| .settings-prose strong { color: var(--chrome-fg); font-weight: 600; } | |
| .settings-section__head-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); } | |
| .settings-section__head-left { display: flex; align-items: center; gap: var(--space-4); } | |
| .settings-section__head-actions { display: flex; gap: var(--space-3); } | |
| .settings-log-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-4); | |
| font-size: var(--text-base); | |
| color: var(--chrome-fg-dim); | |
| margin: var(--space-4) 0; | |
| font-family: var(--chrome-font-mono); | |
| } | |
| .settings-log__empty { | |
| color: var(--chrome-fg-dim); | |
| font-family: var(--font-sans); | |
| } | |
| .settings-link-row { | |
| margin-top: var(--space-5); | |
| display: flex; | |
| gap: var(--space-4); | |
| flex-wrap: wrap; | |
| } | |
| /* We're migrating to the ui/ Tabs primitive β keep a thin class so the old | |
| .settings-tabs gradient-above space stays; the Tabs primitive itself | |
| carries visual styling. */ | |
| .settings-tabs-ui { margin-bottom: var(--space-5); } | |
| /* ββ Engines tab βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .engines-family { margin-bottom: var(--space-5); } | |
| .engines-family__active { | |
| margin-left: var(--space-4); | |
| font-weight: 400; | |
| color: var(--chrome-fg-dim); | |
| font-size: var(--text-xs); | |
| font-family: var(--chrome-font-mono); | |
| } | |
| .engines-family__active code { color: var(--chrome-fg); } | |
| .engines-list { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: var(--space-2); | |
| } | |
| .engines-list li { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: var(--space-2) var(--space-3); | |
| background: transparent; | |
| border: 1px solid var(--chrome-border); | |
| border-left: 2px solid var(--chrome-border-strong); | |
| border-radius: var(--chrome-radius-pill); | |
| font-family: var(--font-sans); | |
| font-size: 0.78rem; | |
| color: var(--chrome-fg-muted); | |
| flex-wrap: wrap; | |
| } | |
| .engines-list li.is-ok { | |
| border-left-color: var(--chrome-severity-ok); | |
| background: color-mix(in srgb, var(--chrome-severity-ok) 5%, transparent); | |
| } | |
| .engines-list li.is-off { | |
| border-left-color: var(--chrome-severity-warn); | |
| opacity: 0.85; | |
| } | |
| .engines-list__name { flex: 1; min-width: 240px; color: var(--chrome-fg); } | |
| .engines-list__name code { color: var(--chrome-fg); font-family: var(--chrome-font-mono); font-size: var(--text-sm); } | |
| .engines-list__reason { flex-basis: 100%; font-size: var(--text-xs); color: var(--chrome-fg-dim); font-family: var(--font-sans); padding-left: var(--space-4); } | |
| /* ββ Models tab ββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .reco-banner { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| padding: 6px var(--space-4); | |
| margin-bottom: var(--space-3); | |
| border: 1px solid color-mix(in srgb, #8ec07c 30%, transparent); | |
| border-left: 2px solid #8ec07c; | |
| border-radius: var(--chrome-radius-pill); | |
| background: color-mix(in srgb, #8ec07c 5%, transparent); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-sm); | |
| color: var(--chrome-fg-muted); | |
| } | |
| .reco-banner__text { flex: 1; } | |
| .reco-banner__text strong { color: var(--chrome-fg); font-weight: 600; } | |
| .reco-banner__size { color: var(--chrome-fg-dim); font-size: var(--text-xs); } | |
| .models-row__tag { | |
| margin-left: var(--space-2); | |
| padding: 1px 6px; | |
| font-family: var(--chrome-font-mono); | |
| font-size: var(--chrome-label-size); | |
| letter-spacing: var(--chrome-label-track); | |
| text-transform: uppercase; | |
| color: #d3869b; | |
| border: 1px solid color-mix(in srgb, #d3869b 40%, transparent); | |
| border-radius: var(--chrome-radius-pill); | |
| background: color-mix(in srgb, #d3869b 8%, transparent); | |
| } | |
| /* ββ Models tab: toolbar + role tabs + table βββββββββββββββββββ */ | |
| .models-toolbar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: var(--space-3); | |
| padding: 2px 2px 6px; | |
| font-family: var(--chrome-font-mono); | |
| font-size: var(--text-xs); | |
| color: var(--chrome-fg-muted); | |
| flex-wrap: wrap; | |
| } | |
| .models-toolbar__stats { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| flex-wrap: wrap; | |
| } | |
| .models-toolbar__stats strong { color: var(--chrome-fg); font-weight: 600; } | |
| .models-toolbar__sep { color: var(--chrome-fg-dim); } | |
| .models-toolbar__cache code { color: var(--chrome-fg); font-family: var(--chrome-font-mono); font-size: var(--text-xs); } | |
| .models-roletabs { margin: 4px 0 6px; } | |
| /* ββ Compact recommendation banner βββββββββββββββββββββββββββββββββ */ | |
| .reco-banner { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 6px; | |
| padding: 5px 10px; | |
| border-radius: 8px; | |
| font-size: var(--text-xs); | |
| color: var(--chrome-fg-muted); | |
| border: 1px solid; | |
| border-left-width: 2px; | |
| } | |
| .reco-banner--ok { | |
| border-color: color-mix(in srgb, #8ec07c 30%, transparent); | |
| border-left-color: #8ec07c; | |
| background: color-mix(in srgb, #8ec07c 4%, transparent); | |
| } | |
| .reco-banner--pending { | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 4px; | |
| padding: 8px 12px 10px; | |
| border-color: color-mix(in srgb, #f3a5b6 25%, transparent); | |
| border-left-color: #f3a5b6; | |
| background: linear-gradient(135deg, color-mix(in srgb, #f3a5b6 4%, transparent), color-mix(in srgb, #d3869b 2%, transparent)); | |
| box-shadow: 0 0 12px color-mix(in srgb, #f3a5b6 6%, transparent); | |
| } | |
| .reco-banner__gb { | |
| font-size: var(--text-2xs); | |
| color: var(--chrome-fg-dim); | |
| } | |
| .reco-banner__top { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| } | |
| .reco-banner__title { | |
| font-weight: 600; | |
| font-size: 0.76rem; | |
| color: var(--chrome-fg); | |
| } | |
| .reco-banner__btns { | |
| display: flex; | |
| gap: 4px; | |
| flex-shrink: 0; | |
| } | |
| .reco-banner__grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 0 16px; | |
| font-size: 0.68rem; | |
| line-height: 1.6; | |
| } | |
| .reco-banner__model { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| color: var(--chrome-fg-muted); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .reco-banner__model--ok { color: var(--chrome-fg); } | |
| .reco-banner__model-size { | |
| font-family: var(--chrome-font-mono); | |
| font-size: 0.6rem; | |
| color: var(--chrome-fg-dim); | |
| } | |
| .reco-banner__req { | |
| font-size: 0.54rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| color: #d3869b; | |
| padding: 0 3px; | |
| border: 1px solid color-mix(in srgb, #d3869b 30%, transparent); | |
| border-radius: 999px; | |
| line-height: 1.5; | |
| } | |
| /* Table β dense rows, fixed-width action column. */ | |
| .models-table { border-radius: 8px; } | |
| .models-table .ui-table-header { padding: 5px var(--space-3); } | |
| .models-table__body { max-height: 560px; overflow-y: auto; position: relative; } | |
| .models-table__header { align-items: center; } | |
| .models-table__sort { | |
| border: 0; | |
| background: transparent; | |
| color: inherit; | |
| font: inherit; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| min-width: 0; | |
| } | |
| .models-table__sort:hover { color: var(--chrome-fg); } | |
| .models-table__sort:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| border-radius: var(--chrome-radius-pill); | |
| } | |
| .models-table__sort--off { | |
| border: 0; | |
| background: transparent; | |
| color: inherit; | |
| font: inherit; | |
| cursor: default; | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| .models-table__sortmark { | |
| color: var(--chrome-accent); | |
| font-family: var(--chrome-font-mono); | |
| font-size: var(--text-2xs); | |
| } | |
| .models-table__virtual { | |
| position: relative; | |
| width: 100%; | |
| } | |
| .models-table__empty { | |
| padding: 18px var(--space-4); | |
| color: var(--chrome-fg-dim); | |
| font-size: var(--text-sm); | |
| font-family: var(--font-sans); | |
| } | |
| /* Inside the wizard embed the table stretches to fill β no fixed cap. */ | |
| .setup-wizard__embed .settings-section--compact { | |
| display: flex; flex-direction: column; height: 100%; min-height: 0; | |
| } | |
| .setup-wizard__embed .models-table { | |
| flex: 1 1 0; display: flex; flex-direction: column; min-height: 0; | |
| } | |
| .setup-wizard__embed .models-table__body { max-height: none; flex: 1 1 0; min-height: 0; } | |
| .models-row { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-2); | |
| position: absolute; | |
| left: 0; | |
| right: 0; | |
| top: 0; | |
| width: 100%; | |
| padding: 10px var(--space-3); | |
| border-bottom: 1px solid var(--chrome-border); | |
| font-family: var(--font-sans); | |
| font-size: var(--text-sm); | |
| color: var(--chrome-fg); | |
| border-left: 2px solid transparent; | |
| } | |
| .models-row:last-child { border-bottom: none; } | |
| .models-row.is-ok { border-left-color: var(--chrome-severity-ok); } | |
| .models-row.is-off { border-left-color: var(--chrome-border-strong); opacity: 0.92; } | |
| .models-row.is-unsupported { opacity: 0.4; pointer-events: none; } | |
| .models-row.is-unsupported .models-row__actions { pointer-events: auto; } | |
| .models-row:hover { background: var(--chrome-hover-bg); } | |
| .models-row__cell { min-width: 0; } | |
| .models-row__name { display: flex; flex-direction: column; gap: 3px; overflow: hidden; } | |
| .models-row__title { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--chrome-fg); font-weight: 500; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } | |
| .models-row__avatar { | |
| flex-shrink: 0; | |
| width: 22px; | |
| height: 22px; | |
| border-radius: 5px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 0.54rem; | |
| font-weight: 700; | |
| color: rgba(255, 255, 255, 0.75); | |
| letter-spacing: 0.02em; | |
| } | |
| .models-row__repo { color: var(--chrome-fg-muted); font-size: var(--text-xs); font-family: var(--chrome-font-mono); line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } | |
| .models-row__repo code{ color: var(--chrome-fg-muted); } | |
| .models-row__note { color: var(--chrome-fg-dim); } | |
| .models-row__hint { display: flex; align-items: center; gap: 4px; color: var(--chrome-fg-dim); font-size: var(--text-2xs, 0.62rem); font-family: var(--chrome-font-mono); line-height: 1.4; margin-top: 1px; cursor: help; opacity: 0.7; transition: opacity 150ms ease; } | |
| .models-row:hover .models-row__hint { opacity: 1; } | |
| .models-row__role { color: var(--chrome-fg-muted); font-size: var(--text-xs); font-family: var(--chrome-font-mono); text-transform: uppercase; letter-spacing: 0.03em; } | |
| .models-row__progress { color: var(--chrome-accent); font-size: var(--text-xs); font-family: var(--chrome-font-mono); margin-top: 2px; } | |
| .models-row__progressline { | |
| display: flex; flex-direction: column; gap: 3px; margin-top: 6px; | |
| } | |
| .models-row__progresstext { | |
| color: var(--chrome-fg-muted); font-size: var(--text-xs); | |
| font-family: var(--chrome-font-mono); font-variant-numeric: tabular-nums; | |
| line-height: 1.4; | |
| } | |
| .models-row__size-live { | |
| font-family: var(--chrome-font-mono); | |
| font-variant-numeric: tabular-nums; | |
| font-size: var(--text-2xs); | |
| color: var(--chrome-accent, #fe8019); | |
| } | |
| .models-row__size-sep { | |
| color: var(--chrome-fg-dim); | |
| margin: 0 1px; | |
| } | |
| .models-row__error { | |
| color: var(--chrome-danger, #fb4934); font-size: var(--text-xs); | |
| margin-top: 4px; | |
| } | |
| .models-controls { | |
| display: flex; align-items: center; gap: var(--space-2); | |
| margin: var(--space-2) 0; | |
| } | |
| .models-search { | |
| flex: 1; min-width: 120px; | |
| background: var(--chrome-bg-2, #1d1d1d); | |
| border: 1px solid var(--chrome-border, #2a2a2a); | |
| border-radius: var(--radius-sm, 6px); | |
| color: var(--chrome-fg); | |
| padding: 6px 10px; | |
| font-size: var(--text-xs); | |
| } | |
| .models-search:focus { | |
| outline: none; | |
| border-color: var(--chrome-accent, #fabd2f); | |
| } | |
| .models-row__size { font-family: var(--chrome-font-mono); font-size: var(--text-xs); color: var(--chrome-fg-muted); font-variant-numeric: tabular-nums; } | |
| .models-row__actions { | |
| justify-content: flex-end; | |
| display: inline-flex; | |
| gap: 4px; | |
| opacity: 0.55; | |
| transition: opacity var(--dur-fast, 120ms) ease; | |
| } | |
| .models-row:hover .models-row__actions { opacity: 1; } | |
| /* ββ Responsive: narrow windows stack row cells βββββββββββββββ */ | |
| @media (max-width: 580px) { | |
| .models-row { flex-wrap: wrap; gap: var(--space-3); } | |
| .models-row__name { flex: 1 1 100%; } | |
| .models-row__size { width: auto ; text-align: left ; } | |
| .models-row__actions { margin-left: auto; } | |
| .models-toolbar { flex-direction: column; align-items: flex-start; } | |
| .models-controls { flex-direction: column; align-items: stretch; } | |
| } | |
| /* ββ Engines tab: rows are NOT virtualised, so override the absolute | |
| positioning that .models-row inherits from the Models tab. βββββ */ | |
| .settings-section--compact > .models-table > .models-table__body > .models-row { | |
| position: relative; | |
| top: auto; | |
| } | |
| /* ββ Credentials tab ββββββββββββββββββββββββββββββββββββββββββ */ | |
| .settings-credential { | |
| margin-bottom: var(--space-5); | |
| padding-bottom: var(--space-5); | |
| border-bottom: 1px solid var(--chrome-border); | |
| } | |
| .settings-credential:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } | |
| .settings-credential__header { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--space-3); | |
| margin-bottom: var(--space-2); | |
| } | |
| .settings-credential__label { | |
| font-size: var(--text-sm); | |
| font-weight: 600; | |
| color: var(--chrome-fg); | |
| font-family: var(--font-sans); | |
| } | |
| .settings-credential__row { | |
| display: flex; | |
| gap: var(--space-2); | |
| align-items: center; | |
| } | |
| .settings-credential__input { | |
| flex: 1; | |
| max-width: 380px; | |
| background: var(--chrome-bg-2, #1d1d1d); | |
| border: 1px solid var(--chrome-border); | |
| border-radius: var(--radius-sm, 6px); | |
| color: var(--chrome-fg); | |
| font-size: var(--text-sm); | |
| font-family: var(--chrome-font-mono); | |
| padding: 6px 10px; | |
| } | |
| .settings-credential__input:focus { | |
| outline: none; | |
| border-color: var(--chrome-accent, #fabd2f); | |
| } | |
| .settings-credential__help { | |
| margin: var(--space-2) 0 0; | |
| font-size: var(--text-xs); | |
| color: var(--chrome-fg-dim); | |
| font-family: var(--font-sans); | |
| line-height: 1.6; | |
| } | |
| .settings-credential__help a { | |
| color: var(--chrome-accent, #d3869b); | |
| text-decoration: none; | |
| } | |
| .settings-credential__help a:hover { text-decoration: underline; } | |