Spaces:
Sleeping
Sleeping
Download frontend/src/styles/theme.css from BrainForge/AdvisoryBuilderWorkshop: direct link, hf CLI and curl.
- Browser
- Download file 64.5 kB
-
https://huggingface.co/spaces/BrainForge/AdvisoryBuilderWorkshop/resolve/main/frontend/src/styles/theme.css
- Command line
-
hf download hf://spaces/BrainForge/AdvisoryBuilderWorkshop/frontend/src/styles/theme.css
-
curl -L -o theme.css https://huggingface.co/spaces/BrainForge/AdvisoryBuilderWorkshop/resolve/main/frontend/src/styles/theme.css
64.5 kB
| /* Persona / advisor flow accents — small chips & primary CTAs only; surfaces stay cream */ | |
| .theme-persona { | |
| --accent: #2bafed; | |
| --accent-dark: #1f96d4; | |
| --accent-light: #e5f6fd; | |
| --accent-primary: var(--accent); | |
| --accent-secondary: #836cda; | |
| --accent-gradient: linear-gradient(135deg, #2bafed, #836cda); | |
| --sidebar-bg: var(--bg-tertiary); | |
| } | |
| .theme-advisor { | |
| --accent: #a862d0; | |
| --accent-dark: #836cda; | |
| --accent-light: #f5eaf8; | |
| --accent-primary: var(--accent); | |
| --accent-secondary: #836cda; | |
| --accent-gradient: linear-gradient(135deg, #a862d0, #836cda); | |
| --sidebar-bg: var(--bg-tertiary); | |
| } | |
| /* ── Design tokens: warm cream light mode (shared design language) ───────── */ | |
| :root { | |
| --bg-primary: #faf7f1; | |
| --bg-secondary: #f3eee6; | |
| --bg-tertiary: #ebe4d8; | |
| --bg-gradient: linear-gradient(165deg, #fbf8f3 0%, #f5efe6 55%, #f0e9df 100%); | |
| --text-primary: #1a1714; | |
| --text-secondary: #4a453e; | |
| --text-tertiary: #6a645c; | |
| --text-muted: #6a645c; | |
| --accent-primary: #2bafed; | |
| --accent-secondary: #836cda; | |
| --accent-tertiary: #a862d0; | |
| --accent-gradient: linear-gradient(135deg, #2bafed, #a862d0, #836cda); | |
| --accent-light: #e5f6fd; | |
| --accent: var(--accent-primary); | |
| --border-primary: #ddd5c8; | |
| --border-muted: #e8e1d6; | |
| --card-bg: #ffffff; | |
| --card-hover: #f7f3ec; | |
| --sidebar-bg: #e8e0d4; | |
| --header-bg: #fbf9f5; | |
| --shadow-sm: 0 1px 2px rgba(40, 30, 10, 0.06); | |
| --shadow-md: | |
| 0 4px 10px -2px rgba(40, 30, 10, 0.08), | |
| 0 2px 4px -2px rgba(40, 30, 10, 0.05); | |
| --shadow-lg: | |
| 0 12px 24px -6px rgba(40, 30, 10, 0.12), | |
| 0 4px 8px -4px rgba(40, 30, 10, 0.06); | |
| --radius: 10px; | |
| --focus-ring: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--accent-primary); | |
| font-family: 'Inter', system-ui, -apple-system, sans-serif; | |
| font-size: 15px; | |
| color-scheme: light; | |
| } | |
| /* Parallel dark theme (opt-in via data-theme="dark" — not auto-enabled) */ | |
| [data-theme='dark'] { | |
| --bg-primary: #1c1916; | |
| --bg-secondary: #24201c; | |
| --bg-tertiary: #2e2924; | |
| --bg-gradient: linear-gradient(165deg, #1a1714 0%, #221e1a 55%, #2a2520 100%); | |
| --text-primary: #f5f0e8; | |
| --text-secondary: #c9c2b6; | |
| --text-tertiary: #9a9288; | |
| --text-muted: #9a9288; | |
| --accent-primary: #5bc4f2; | |
| --accent-secondary: #a08ee5; | |
| --accent-tertiary: #c48be0; | |
| --accent-gradient: linear-gradient(135deg, #5bc4f2, #c48be0, #a08ee5); | |
| --accent-light: #1a2f3a; | |
| --accent: var(--accent-primary); | |
| --border-primary: #3d3730; | |
| --border-muted: #322e28; | |
| --card-bg: #2a2622; | |
| --card-hover: #332e29; | |
| --sidebar-bg: #161310; | |
| --header-bg: #1f1b17; | |
| --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35); | |
| --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4); | |
| --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.5); | |
| --focus-ring: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--accent-primary); | |
| color-scheme: dark; | |
| } | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| background: var(--bg-gradient); | |
| color: var(--text-primary); | |
| line-height: 1.5; | |
| min-height: 100vh; | |
| font-size: 15px; | |
| } | |
| a { | |
| color: var(--accent-primary); | |
| } | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.4rem; | |
| padding: 0.65rem 1.25rem; | |
| border-radius: 8px; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| border: none; | |
| font-family: inherit; | |
| transition: background 0.15s, transform 0.1s, border-color 0.15s, box-shadow 0.15s; | |
| text-decoration: none; | |
| } | |
| .btn:active { | |
| transform: scale(0.98); | |
| } | |
| .btn:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| } | |
| .btn-primary { | |
| background: var(--accent-gradient); | |
| color: #fff; | |
| border: 1px solid transparent; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .btn-primary:hover { | |
| filter: brightness(1.05); | |
| } | |
| .btn-secondary { | |
| background: var(--card-bg); | |
| color: var(--text-primary); | |
| border: 1.5px solid var(--border-primary); | |
| box-shadow: var(--shadow-sm); | |
| font-weight: 500; | |
| } | |
| .btn-secondary:hover { | |
| background: var(--card-hover); | |
| } | |
| .btn-ghost { | |
| background: var(--card-bg); | |
| color: var(--text-secondary); | |
| border: 1px solid var(--border-muted); | |
| font-weight: 500; | |
| box-shadow: none; | |
| } | |
| .btn-ghost:hover { | |
| background: var(--card-hover); | |
| color: var(--text-primary); | |
| } | |
| /* Auth page — Register actions (quiet surface, not competing accent) */ | |
| .btn-auth-register { | |
| background: var(--card-bg); | |
| color: var(--text-primary); | |
| border: 1.5px solid var(--border-primary); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .btn-auth-register:hover { | |
| background: var(--card-hover); | |
| filter: none; | |
| } | |
| .field { | |
| margin-bottom: 1rem; | |
| } | |
| .field label { | |
| display: block; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| margin-bottom: 0.35rem; | |
| } | |
| .field-hint { | |
| margin: 0 0 0.45rem; | |
| font-size: 13px; | |
| font-weight: 400; | |
| color: var(--text-secondary); | |
| line-height: 1.45; | |
| } | |
| .persona-creativity-field { | |
| margin-bottom: 1.35rem; | |
| } | |
| .persona-creativity-value { | |
| margin-bottom: 0.35rem; | |
| font-size: 1.1rem; | |
| color: var(--text-primary); | |
| } | |
| .persona-creativity-value .persona-creativity-out-of { | |
| font-size: 0.85rem; | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| margin-left: 0.15rem; | |
| } | |
| .persona-creativity-slider { | |
| display: block; | |
| width: 100%; | |
| height: 8px; | |
| margin: 0.5rem 0 0.35rem; | |
| border-radius: 4px; | |
| accent-color: var(--accent-primary); | |
| cursor: pointer; | |
| } | |
| .persona-creativity-ticks { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 0.75rem; | |
| font-size: 0.72rem; | |
| color: var(--text-secondary); | |
| line-height: 1.35; | |
| margin-bottom: 0.75rem; | |
| } | |
| .persona-creativity-info { | |
| margin: 0; | |
| padding: 0.75rem 0.85rem; | |
| font-size: 0.82rem; | |
| line-height: 1.5; | |
| color: var(--text-secondary); | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-primary); | |
| border-radius: 8px; | |
| border-left: 3px solid var(--accent-primary); | |
| } | |
| .field input, | |
| .field textarea, | |
| .field select { | |
| padding: 0.6rem 0.85rem; | |
| border: 1.5px solid var(--border-primary); | |
| border-radius: 8px; | |
| font-size: 0.9rem; | |
| font-family: inherit; | |
| box-sizing: border-box; | |
| background: var(--card-bg); | |
| color: var(--text-primary); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .field select { | |
| width: 100%; | |
| } | |
| /* Text fields: full width by default; intrinsic sizing when supported (grow with content, cap at container). */ | |
| .field input:not([type='range']):not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']):not([type='file']):not([type='color']), | |
| .field textarea { | |
| width: 100%; | |
| min-width: 0; | |
| overflow-wrap: anywhere; | |
| word-break: break-word; | |
| } | |
| .field textarea { | |
| min-height: 88px; | |
| resize: vertical; | |
| } | |
| @supports (field-sizing: content) { | |
| .field input:not([type='range']):not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']):not([type='file']):not([type='color']), | |
| .field textarea { | |
| field-sizing: content; | |
| width: auto; | |
| min-width: 100%; | |
| max-width: 100%; | |
| } | |
| .field textarea { | |
| min-height: unset; | |
| min-block-size: 88px; | |
| resize: none; | |
| } | |
| } | |
| .field input:focus, | |
| .field textarea:focus, | |
| .field select:focus { | |
| outline: none; | |
| border-color: var(--accent-primary); | |
| box-shadow: var(--focus-ring); | |
| } | |
| .field input:focus-visible, | |
| .field textarea:focus-visible, | |
| .field select:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| } | |
| /* Same as chat: html.aj-hide-pointer from useHideCaretWhileTyping */ | |
| html.aj-hide-pointer .field input:not([type='range']):not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='button']):not([type='submit']):not([type='reset']):not([type='file']):not([type='color']), | |
| html.aj-hide-pointer .field textarea { | |
| caret-color: transparent; | |
| } | |
| .card { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-primary); | |
| border-radius: var(--radius); | |
| padding: 1.25rem; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .layout-main { | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 100vh; | |
| padding-bottom: 5rem; | |
| } | |
| .layout-body { | |
| flex: 1 1 0; | |
| min-height: 0; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .layout-main:has(.wizard-layout), | |
| .layout-main:has(.experiment-aj), | |
| .layout-main:has(.experiment-advisor-layout) { | |
| height: 100dvh; | |
| overflow: hidden; | |
| padding-bottom: 0; | |
| } | |
| .layout-main:has(.wizard-layout) .layout-body, | |
| .layout-main:has(.experiment-aj) .layout-body, | |
| .layout-main:has(.experiment-advisor-layout) .layout-body { | |
| overflow: hidden; | |
| } | |
| .save-warning { | |
| position: fixed; | |
| bottom: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 1000; | |
| background: #fef3c7; | |
| border-top: 1px solid #fde68a; | |
| color: #92400e; | |
| padding: 0.75rem 1rem; | |
| text-align: center; | |
| font-size: 0.9rem; | |
| } | |
| .save-warning a { | |
| font-weight: 600; | |
| } | |
| /* Guest save bar is position:fixed; z-index:1000 — reserve space so bottom UI | |
| (experiment chat composer, etc.) stays above it, not hidden underneath. */ | |
| .layout-main--save-banner:has(.experiment-aj) .experiment-aj.aj-app { | |
| padding-bottom: calc(3.75rem + env(safe-area-inset-bottom, 0px)); | |
| } | |
| .layout-main--save-banner:has(.experiment-advisor-layout) .experiment-advisor-layout { | |
| padding-bottom: calc(3.75rem + env(safe-area-inset-bottom, 0px)); | |
| } | |
| /* ── Site header ─────────────────────────────────────────────────────────── | |
| Neon logo + brand lines first, then text-link nav, then account. */ | |
| .header-bar { | |
| --header-ink: var(--text-primary); | |
| --header-muted: var(--text-muted); | |
| --header-line: var(--border-primary); | |
| --header-soft: var(--bg-secondary); | |
| --header-surface: var(--header-bg); | |
| --header-size: 1rem; | |
| --header-weight: 500; | |
| --header-weight-strong: 600; | |
| /* Shared metrics: brand name + nav links + user trigger */ | |
| --header-chip-font-size: 1.125rem; | |
| --header-chip-line-height: 1.25; | |
| --header-chip-pad-y: 0.4rem; | |
| --header-chip-pad-x: 0.75rem; | |
| --header-kicker-size: 0.78rem; | |
| --header-kicker-line-height: 1.2; | |
| /* Kicker + gap + name — logo is ~92% of this stack */ | |
| --header-brand-stack-height: calc( | |
| var(--header-kicker-size) * var(--header-kicker-line-height) | |
| + 0.05rem | |
| + var(--header-chip-font-size) * var(--header-chip-line-height) | |
| ); | |
| display: flex; | |
| /* Baseline-align brand title text with nav/chip labels (not block centers) */ | |
| align-items: baseline; | |
| gap: 1rem; | |
| padding: 0.65rem 1.25rem; | |
| background: var(--header-bg); | |
| border-bottom: 1px solid var(--border-primary); | |
| position: sticky; | |
| top: 0; | |
| z-index: 50; | |
| flex-shrink: 0; | |
| flex-wrap: wrap; | |
| font-family: inherit; | |
| font-size: var(--header-size); | |
| font-weight: var(--header-weight); | |
| color: var(--header-ink); | |
| letter-spacing: 0; | |
| } | |
| .header-bar-brand { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.15rem; | |
| min-width: 0; | |
| flex: 1 1 12rem; | |
| } | |
| .header-brand-lockup { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: baseline; | |
| gap: 0.35rem 0.55rem; | |
| min-width: 0; | |
| } | |
| .header-brand-logo-link { | |
| flex-shrink: 0; | |
| line-height: 0; | |
| text-decoration: none; | |
| color: inherit; | |
| } | |
| .header-brand-logo-link:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| border-radius: 4px; | |
| } | |
| .header-brand-logo { | |
| /* Almost as tall as kicker + name; bottom sits on brand-name baseline */ | |
| height: calc(var(--header-brand-stack-height) * 0.92); | |
| width: auto; | |
| display: block; | |
| object-fit: contain; | |
| } | |
| .header-brand { | |
| /* Kicker is out-of-flow so the brand name is the flex item's first baseline */ | |
| position: relative; | |
| display: block; | |
| text-decoration: none; | |
| color: var(--header-ink); | |
| min-width: 0; | |
| /* Reserve space for absolutely positioned kicker above the name */ | |
| padding-top: calc( | |
| var(--header-kicker-size) * var(--header-kicker-line-height) + 0.05rem | |
| ); | |
| line-height: var(--header-chip-line-height); | |
| font-family: inherit; | |
| } | |
| .header-brand:hover .header-brand-name { | |
| color: var(--header-ink); | |
| opacity: 0.82; | |
| } | |
| .header-brand-kicker { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| font-size: var(--header-kicker-size); | |
| font-weight: var(--header-weight); | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| color: var(--header-muted); | |
| line-height: var(--header-kicker-line-height); | |
| font-family: inherit; | |
| } | |
| .header-brand-name { | |
| display: block; | |
| font-family: inherit; | |
| font-size: var(--header-chip-font-size); | |
| font-weight: var(--header-weight-strong); | |
| color: var(--header-ink); | |
| letter-spacing: -0.01em; | |
| line-height: var(--header-chip-line-height); | |
| } | |
| .header-maker { | |
| display: inline-flex; | |
| align-items: baseline; | |
| gap: 0.3rem; | |
| flex-shrink: 0; | |
| padding: 0; | |
| color: var(--header-muted); | |
| text-decoration: none; | |
| font-family: inherit; | |
| font-size: 0.85rem; | |
| font-weight: var(--header-weight); | |
| letter-spacing: 0; | |
| line-height: var(--header-chip-line-height); | |
| transition: color 0.15s ease; | |
| } | |
| .header-maker:hover { | |
| color: var(--header-ink); | |
| } | |
| .header-maker:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| border-radius: 4px; | |
| } | |
| .header-maker-label { | |
| text-transform: lowercase; | |
| letter-spacing: 0.02em; | |
| } | |
| .header-maker-name { | |
| font-weight: var(--header-weight-strong); | |
| white-space: nowrap; | |
| } | |
| .header-page-context { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: baseline; | |
| gap: 0.35rem 0.5rem; | |
| margin: 0; | |
| max-width: 100%; | |
| line-height: 1.3; | |
| } | |
| .header-page-context-label { | |
| font-size: 0.78rem; | |
| font-weight: var(--header-weight); | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| color: var(--header-muted); | |
| } | |
| .header-page-context-value { | |
| font-size: var(--header-size); | |
| font-weight: var(--header-weight-strong); | |
| color: var(--header-ink); | |
| min-width: 0; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .header-bar-nav { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: center; | |
| gap: 0.1rem 0.35rem; | |
| flex: 0 1 auto; | |
| min-width: 0; | |
| padding: 0; | |
| background: transparent; | |
| border: none; | |
| border-radius: 0; | |
| box-sizing: border-box; | |
| } | |
| .header-bar-nav .header-nav-link { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.25rem; | |
| padding: var(--header-chip-pad-y) var(--header-chip-pad-x); | |
| border: none; | |
| border-radius: 0; | |
| background: transparent; | |
| color: var(--header-muted); | |
| text-decoration: none; | |
| font-family: inherit; | |
| font-size: var(--header-chip-font-size); | |
| font-weight: var(--header-weight-strong); | |
| letter-spacing: -0.01em; | |
| line-height: var(--header-chip-line-height); | |
| white-space: nowrap; | |
| box-sizing: border-box; | |
| box-shadow: none; | |
| cursor: pointer; | |
| appearance: none; | |
| transition: color 0.15s ease; | |
| } | |
| .header-bar-nav .header-nav-link:hover, | |
| .header-bar-nav .header-nav-trigger--open { | |
| color: var(--header-ink); | |
| background: transparent; | |
| text-decoration: underline; | |
| text-underline-offset: 0.22em; | |
| text-decoration-thickness: 1.5px; | |
| } | |
| .header-bar-nav .header-nav-link--current { | |
| background: transparent; | |
| color: var(--header-ink); | |
| box-shadow: none; | |
| text-decoration: underline; | |
| text-underline-offset: 0.22em; | |
| text-decoration-thickness: 2px; | |
| } | |
| .header-bar-nav .header-nav-link:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| border-radius: 4px; | |
| } | |
| .header-nav-dropdown { | |
| position: relative; | |
| flex: 0 1 auto; | |
| min-width: 0; | |
| } | |
| .header-nav-caret { | |
| display: inline-block; | |
| font-size: 0.7em; | |
| line-height: 1; | |
| opacity: 0.75; | |
| transform: translateY(-0.05em); | |
| } | |
| .header-nav-menu { | |
| position: absolute; | |
| left: 0; | |
| top: calc(100% + 2px); | |
| min-width: 16.5rem; | |
| max-width: min(22rem, 92vw); | |
| padding: 0.35rem 0; | |
| background: var(--card-bg, #fff); | |
| border: 1px solid var(--header-line); | |
| border-radius: 8px; | |
| box-shadow: var(--shadow-md); | |
| z-index: 60; | |
| } | |
| .header-nav-menu-item { | |
| display: block; | |
| width: 100%; | |
| padding: 0.5rem 1rem; | |
| color: var(--header-ink); | |
| text-decoration: none; | |
| font-family: inherit; | |
| font-size: 0.95rem; | |
| font-weight: var(--header-weight); | |
| line-height: 1.35; | |
| white-space: normal; | |
| box-sizing: border-box; | |
| } | |
| .header-nav-menu-item:hover, | |
| .header-nav-menu-item:focus-visible { | |
| background: var(--header-soft); | |
| outline: none; | |
| } | |
| .header-bar-tools { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| gap: 0.65rem; | |
| margin-left: auto; | |
| flex-shrink: 0; | |
| } | |
| .user-menu-wrap { | |
| position: relative; | |
| flex-shrink: 0; | |
| } | |
| .user-menu-trigger { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.4rem; | |
| padding: var(--header-chip-pad-y) 0.85rem var(--header-chip-pad-y) | |
| var(--header-chip-pad-x); | |
| border-radius: 999px; | |
| border: 1px solid color-mix(in srgb, var(--accent-primary) 32%, var(--header-line)); | |
| background: var(--accent-light); | |
| cursor: pointer; | |
| appearance: none; | |
| font-family: inherit; | |
| font-size: var(--header-chip-font-size); | |
| font-weight: var(--header-weight-strong); | |
| color: var(--header-ink); | |
| letter-spacing: -0.01em; | |
| line-height: var(--header-chip-line-height); | |
| box-sizing: border-box; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .user-menu-trigger:hover { | |
| border-color: color-mix(in srgb, var(--accent-primary) 48%, var(--header-line)); | |
| background: color-mix(in srgb, var(--accent-primary) 16%, var(--accent-light)); | |
| } | |
| .user-menu-trigger:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| } | |
| .user-menu-name { | |
| max-width: 10rem; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .user-menu-kebab { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 1.125rem; | |
| line-height: 1; | |
| color: var(--header-muted); | |
| } | |
| @media (max-width: 860px) { | |
| .header-bar { | |
| --header-chip-font-size: 1.05rem; | |
| --header-chip-pad-y: 0.45rem; | |
| --header-chip-pad-x: 0.45rem; | |
| gap: 0.65rem; | |
| padding: 0.55rem 0.85rem; | |
| } | |
| .header-bar-nav { | |
| order: 3; | |
| flex: 1 1 100%; | |
| justify-content: stretch; | |
| align-items: stretch; | |
| gap: 0.15rem; | |
| } | |
| .header-bar-nav > .header-nav-link, | |
| .header-nav-dropdown { | |
| flex: 1 1 0; | |
| } | |
| .header-bar-nav .header-nav-link { | |
| width: 100%; | |
| padding: var(--header-chip-pad-y) var(--header-chip-pad-x); | |
| font-size: var(--header-chip-font-size); | |
| } | |
| .header-nav-menu { | |
| left: 0; | |
| right: 0; | |
| min-width: 0; | |
| width: 100%; | |
| } | |
| .user-menu-trigger { | |
| font-size: var(--header-chip-font-size); | |
| padding: var(--header-chip-pad-y) 0.7rem var(--header-chip-pad-y) 0.75rem; | |
| } | |
| } | |
| @media (max-width: 520px) { | |
| .header-maker-label { | |
| display: none; | |
| } | |
| .header-page-context-label { | |
| display: none; | |
| } | |
| } | |
| /* Legacy class hooks (if referenced elsewhere) */ | |
| .header-bar-left, | |
| .header-bar-center, | |
| .header-bar-right { | |
| display: contents; | |
| } | |
| .header-brand-accent { | |
| /* superseded by .header-brand */ | |
| } | |
| .user-dropdown { | |
| position: absolute; | |
| /* Right-align to trigger so the panel stays in the viewport */ | |
| left: auto; | |
| right: 0; | |
| top: calc(100% + 4px); | |
| min-width: 260px; | |
| max-width: min(20rem, calc(100vw - 1rem)); | |
| background: #fff; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 8px; | |
| box-shadow: var(--shadow-md); | |
| padding: 0.35rem 0; | |
| z-index: 60; | |
| box-sizing: border-box; | |
| } | |
| .user-dropdown button { | |
| display: block; | |
| width: 100%; | |
| text-align: left; | |
| padding: 0.5rem 1rem; | |
| border: none; | |
| background: none; | |
| cursor: pointer; | |
| font-size: 0.88rem; | |
| } | |
| .user-dropdown button:hover { | |
| background: var(--bg-secondary); | |
| } | |
| .user-dropdown .danger { | |
| color: #b91c1c; | |
| } | |
| .user-dropdown button:disabled { | |
| cursor: not-allowed; | |
| } | |
| .user-dropdown-link:hover { | |
| background: var(--bg-secondary); | |
| } | |
| .user-dropdown-divider { | |
| height: 1px; | |
| margin: 0.35rem 0.75rem; | |
| background: var(--border-primary); | |
| } | |
| .user-dropdown-speech { | |
| padding: 0 0 0.25rem; | |
| } | |
| .user-dropdown-speech-trigger { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 0.5rem; | |
| font-weight: inherit; | |
| color: inherit; | |
| } | |
| .user-dropdown-speech-trigger svg { | |
| flex-shrink: 0; | |
| opacity: 0.65; | |
| transition: transform 0.2s ease; | |
| } | |
| .user-dropdown-speech-chevron--open { | |
| transform: rotate(180deg); | |
| } | |
| .user-dropdown-speech-body { | |
| padding: 0 0.75rem 0.65rem; | |
| max-height: min(70vh, 28rem); | |
| overflow: auto; | |
| } | |
| .user-dropdown-sample-actions { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.2rem; | |
| padding-top: 0.25rem; | |
| } | |
| .user-dropdown-sample-action { | |
| width: 100%; | |
| text-align: left; | |
| padding: 0.45rem 0.5rem; | |
| font-size: 0.88rem; | |
| font-weight: inherit; | |
| font-family: inherit; | |
| color: inherit; | |
| background: transparent; | |
| border: none; | |
| border-radius: 0.35rem; | |
| cursor: pointer; | |
| } | |
| .user-dropdown-sample-action:hover { | |
| background: var(--bg-secondary); | |
| } | |
| .user-dropdown-sample-action--danger { | |
| color: var(--danger-fg, #b91c1c); | |
| } | |
| .user-dropdown-sample-action--danger:hover { | |
| background: var(--danger-bg-soft, rgba(185, 28, 28, 0.08)); | |
| } | |
| .speech-settings-panel { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| padding-top: 0.35rem; | |
| } | |
| .speech-settings-unavailable { | |
| margin: 0; | |
| font-size: 0.82rem; | |
| color: var(--text-secondary); | |
| } | |
| .speech-settings-checkbox { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 0.5rem; | |
| font-size: 0.86rem; | |
| cursor: pointer; | |
| line-height: 1.35; | |
| } | |
| .speech-settings-checkbox input { | |
| margin-top: 0.15rem; | |
| } | |
| .speech-settings-hint { | |
| margin: 0; | |
| font-size: 0.72rem; | |
| line-height: 1.4; | |
| color: var(--text-secondary); | |
| } | |
| .speech-settings-field { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.35rem; | |
| } | |
| .speech-settings-label { | |
| font-size: 0.78rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| color: var(--text-secondary); | |
| } | |
| .speech-settings-select { | |
| width: 100%; | |
| padding: 0.4rem 0.5rem; | |
| font-size: 0.86rem; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 6px; | |
| background: #fff; | |
| } | |
| .speech-settings-stepper { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.35rem; | |
| } | |
| .speech-settings-step-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 28px; | |
| height: 28px; | |
| padding: 0; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 6px; | |
| background: #fff; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| } | |
| .speech-settings-step-btn:hover:not(:disabled) { | |
| background: var(--bg-secondary); | |
| } | |
| .speech-settings-step-btn:disabled { | |
| opacity: 0.4; | |
| cursor: not-allowed; | |
| } | |
| .speech-settings-step-value { | |
| min-width: 2.5rem; | |
| text-align: center; | |
| font-size: 0.86rem; | |
| font-weight: 600; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .speech-settings-speed { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.35rem; | |
| } | |
| .speech-settings-speed-btn { | |
| padding: 0.35rem 0.65rem; | |
| font-size: 0.82rem; | |
| font-weight: 600; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 6px; | |
| background: #fff; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| } | |
| .speech-settings-speed-btn:hover { | |
| background: var(--bg-secondary); | |
| } | |
| .speech-settings-speed-btn--active { | |
| border-color: var(--accent-primary); | |
| background: var(--accent-light); | |
| color: var(--text-primary); | |
| } | |
| .modal-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(40, 30, 10, 0.4); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 2000; | |
| padding: 1rem; | |
| } | |
| .modal-box { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-primary); | |
| border-radius: 12px; | |
| max-width: 440px; | |
| width: 100%; | |
| max-height: 90vh; | |
| overflow: auto; | |
| padding: 1.25rem; | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .modal-box h2 { | |
| margin: 0 0 1rem; | |
| font-size: 1.15rem; | |
| } | |
| .modal-box--profile { | |
| max-width: 480px; | |
| } | |
| .profile-modal-lead { | |
| margin: 0 0 1rem; | |
| font-size: 0.88rem; | |
| color: var(--text-secondary); | |
| line-height: 1.45; | |
| } | |
| .profile-modal-details { | |
| margin: 0 0 1rem; | |
| display: grid; | |
| gap: 0.85rem; | |
| } | |
| .profile-modal-row { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.2rem; | |
| } | |
| .profile-modal-dt { | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| color: var(--text-secondary); | |
| } | |
| .profile-modal-dd { | |
| margin: 0; | |
| font-size: 0.95rem; | |
| color: var(--text-primary); | |
| line-height: 1.4; | |
| word-break: break-word; | |
| } | |
| .profile-modal-dd--mono { | |
| font-family: ui-monospace, 'Cascadia Code', 'Segoe UI Mono', monospace; | |
| font-size: 0.82rem; | |
| } | |
| .profile-modal-hint { | |
| margin: 0 0 1rem; | |
| font-size: 0.82rem; | |
| color: var(--text-secondary); | |
| line-height: 1.45; | |
| } | |
| .landing-hero { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: 2.5rem 1.25rem 2rem; | |
| text-align: center; | |
| } | |
| .landing-hero h1 { | |
| font-size: clamp(1.75rem, 4vw, 2.35rem); | |
| margin-bottom: 0.75rem; | |
| line-height: 1.2; | |
| } | |
| .landing-subheading { | |
| margin: 0 0 0.65rem; | |
| font-size: clamp(1.1rem, 2.5vw, 1.35rem); | |
| font-weight: 700; | |
| letter-spacing: 0.02em; | |
| line-height: 1.3; | |
| } | |
| .landing-subheading a { | |
| color: var(--text-primary); | |
| text-decoration: none; | |
| } | |
| .landing-subheading a:hover { | |
| text-decoration: underline; | |
| text-underline-offset: 3px; | |
| color: var(--accent-primary); | |
| } | |
| .landing-hero .lead { | |
| font-size: 1.05rem; | |
| color: var(--text-secondary); | |
| max-width: 720px; | |
| margin: 0 auto 1.25rem; | |
| } | |
| .landing-auth-cta { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| justify-content: center; | |
| align-items: stretch; | |
| width: min(100%, 22rem); | |
| margin-left: auto; | |
| margin-right: auto; | |
| margin-bottom: 0.5rem; | |
| } | |
| .landing-auth-cta .btn { | |
| flex: 1 1 9rem; | |
| justify-content: center; | |
| min-width: 0; | |
| } | |
| .benefit-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); | |
| gap: 1rem; | |
| max-width: 960px; | |
| margin: 0 auto 3rem; | |
| padding: 0 1.25rem; | |
| } | |
| .landing-hero .benefit-grid--hero { | |
| margin-top: 0.5rem; | |
| margin-bottom: 1.5rem; | |
| } | |
| .benefit-card { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-primary); | |
| border-radius: var(--radius); | |
| padding: 1.25rem; | |
| box-shadow: var(--shadow-md); | |
| text-align: left; | |
| cursor: pointer; | |
| transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s; | |
| text-decoration: none; | |
| color: inherit; | |
| display: block; | |
| } | |
| .benefit-card:hover { | |
| transform: translateY(-2px); | |
| border-color: var(--border-primary); | |
| box-shadow: var(--shadow-lg); | |
| background: var(--card-hover); | |
| } | |
| .benefit-card h3 { | |
| margin: 0 0 0.5rem; | |
| font-size: 1.05rem; | |
| color: var(--text-primary); | |
| } | |
| .benefit-card p { | |
| margin: 0; | |
| font-size: 0.88rem; | |
| color: var(--text-secondary); | |
| } | |
| .section { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: 2rem 1.25rem; | |
| } | |
| .section h2 { | |
| font-size: 1.35rem; | |
| margin-bottom: 0.75rem; | |
| } | |
| .section p { | |
| color: var(--text-secondary); | |
| } | |
| .section.project-flow-details { | |
| scroll-margin-top: 5rem; | |
| } | |
| #stage-name.project-flow-details { | |
| margin-top: 0.75rem; | |
| padding-top: 2.25rem; | |
| border-top: 1px solid var(--border-primary); | |
| } | |
| .placeholder-shot { | |
| background: linear-gradient(135deg, #e5e7eb, #f3f4f6); | |
| border-radius: var(--radius); | |
| min-height: 180px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--text-secondary); | |
| font-size: 0.9rem; | |
| margin: 1rem 0; | |
| } | |
| .steps-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| margin: 1rem 0; | |
| } | |
| .steps-row a { | |
| padding: 0.5rem 0.9rem; | |
| background: var(--bg-secondary); | |
| border-radius: 8px; | |
| text-decoration: none; | |
| font-size: 0.88rem; | |
| color: var(--text-primary); | |
| border: 1px solid var(--border-primary); | |
| } | |
| .steps-row a:hover { | |
| border-color: var(--accent-primary); | |
| } | |
| .cta-block { | |
| max-width: 720px; | |
| margin: 2rem auto; | |
| padding: 1.5rem; | |
| border-radius: var(--radius); | |
| border: 2px dashed var(--border-primary); | |
| text-align: center; | |
| scroll-margin-top: 5rem; | |
| } | |
| .cta-block h2 { | |
| margin-top: 0; | |
| } | |
| .cta-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| align-items: center; | |
| justify-content: center; | |
| margin-top: 1rem; | |
| } | |
| .cta-buttons-or { | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| user-select: none; | |
| } | |
| .footer-site { | |
| flex-shrink: 0; | |
| text-align: center; | |
| padding: 2rem 1rem; | |
| color: var(--text-secondary); | |
| font-size: 0.85rem; | |
| border-top: 1px solid var(--border-primary); | |
| background: rgba(255, 255, 255, 0.6); | |
| } | |
| .footer-site p { | |
| margin: 0; | |
| } | |
| .footer-site a { | |
| color: inherit; | |
| text-decoration: underline; | |
| } | |
| /* Compact footer pinned to bottom of experiment side columns */ | |
| .footer-site--column { | |
| flex-shrink: 0; | |
| margin-top: auto; | |
| padding: 0.75rem 0.5rem; | |
| font-size: 0.72rem; | |
| line-height: 1.35; | |
| text-align: left; | |
| background: transparent; | |
| } | |
| .wizard-layout { | |
| display: flex; | |
| flex: 1 1 0; | |
| min-height: 0; | |
| } | |
| .wizard-sidebar { | |
| width: 240px; | |
| background: var(--sidebar-bg); | |
| color: var(--text-primary); | |
| padding: 1.25rem 0.75rem; | |
| flex-shrink: 0; | |
| border-right: 1px solid var(--border-primary); | |
| } | |
| .wizard-sidebar h2 { | |
| font-size: 1.125rem; | |
| font-weight: 700; | |
| margin: 0 0 1rem; | |
| padding: 0 0.75rem; | |
| color: var(--text-primary); | |
| } | |
| .wizard-sidebar-actions { | |
| margin-top: 1.5rem; | |
| padding: 0 0.75rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| .wizard-sidebar-new-btn { | |
| background: var(--card-bg); | |
| border: 1px dashed var(--border-primary); | |
| border-radius: 6px; | |
| color: var(--text-secondary); | |
| font-size: 0.78rem; | |
| padding: 0.45rem 0.6rem; | |
| cursor: pointer; | |
| text-align: left; | |
| box-shadow: var(--shadow-sm); | |
| transition: background 0.15s, border-color 0.15s; | |
| } | |
| .wizard-sidebar-new-btn:hover { | |
| background: var(--card-hover); | |
| border-color: var(--text-tertiary); | |
| color: var(--text-primary); | |
| } | |
| .theme-advisor .wizard-sidebar-new-btn { | |
| color: var(--text-secondary); | |
| } | |
| .wizard-sidebar-link { | |
| font-size: 0.75rem; | |
| color: var(--text-secondary); | |
| text-decoration: none; | |
| opacity: 1; | |
| } | |
| .wizard-sidebar-link:hover { | |
| color: var(--accent-primary); | |
| } | |
| .theme-advisor .wizard-sidebar-link { | |
| color: var(--text-secondary); | |
| } | |
| .wizard-nav-item { | |
| padding: 0.5rem 0.75rem; | |
| border-radius: 8px; | |
| font-size: 0.84rem; | |
| margin-bottom: 4px; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| font-weight: 500; | |
| } | |
| .wizard-nav-item:hover { | |
| background: var(--card-hover); | |
| color: var(--text-primary); | |
| } | |
| .wizard-nav-item.active { | |
| background: var(--card-bg); | |
| color: var(--text-primary); | |
| font-weight: 600; | |
| box-shadow: var(--shadow-sm); | |
| border: 1px solid var(--border-primary); | |
| } | |
| .wizard-main { | |
| flex: 1; | |
| min-height: 0; | |
| overflow-y: auto; | |
| padding: 1.5rem 1.5rem 4rem; | |
| max-width: 820px; | |
| background: transparent; | |
| } | |
| .wizard-subheading { | |
| font-size: 1.125rem; | |
| font-weight: 700; | |
| margin: 1.5rem 0 0.5rem; | |
| color: var(--text-primary); | |
| opacity: 1; | |
| } | |
| .chat-panel { | |
| display: flex; | |
| flex-direction: column; | |
| height: min(70vh, 560px); | |
| border: 1px solid var(--border-primary); | |
| border-radius: var(--radius); | |
| background: var(--card-bg); | |
| overflow: hidden; | |
| box-shadow: var(--shadow-md); | |
| } | |
| /* Interactive Q&A — cream-aligned bubble shell */ | |
| .iqa-chat { | |
| --iqa-muted: var(--text-muted); | |
| --iqa-bubble-assistant: var(--bg-secondary); | |
| --iqa-border: var(--border-primary); | |
| --iqa-shadow: var(--shadow-md); | |
| } | |
| .iqa-chat .iqa-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| min-height: 0; | |
| padding: 20px 10px; | |
| background: linear-gradient(180deg, #e8f4fa 0%, #f5f7f4 100%); | |
| } | |
| .iqa-chat .iqa-msg-row { | |
| display: flex; | |
| align-items: flex-end; | |
| gap: 10px; | |
| margin-bottom: 16px; | |
| max-width: 960px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| box-sizing: border-box; | |
| } | |
| .iqa-chat .iqa-msg-row:not(.user) { | |
| padding-right: 35%; | |
| justify-content: flex-end; | |
| } | |
| .iqa-chat .iqa-msg-row.user { | |
| padding-left: 35%; | |
| justify-content: flex-start; | |
| } | |
| .iqa-chat .iqa-bubble-wrap { | |
| max-width: 100%; | |
| position: relative; | |
| z-index: 0; | |
| } | |
| .iqa-chat .iqa-bubble-name { | |
| font-size: 11px; | |
| color: var(--iqa-muted); | |
| margin-bottom: 4px; | |
| padding: 0 4px; | |
| } | |
| .iqa-chat .iqa-msg-row.user .iqa-bubble-name { | |
| text-align: right; | |
| } | |
| .iqa-chat .iqa-msg-row:not(.user) .iqa-bubble-name { | |
| text-align: left; | |
| } | |
| .iqa-chat .iqa-bubble { | |
| padding: 12px 16px; | |
| border-radius: 16px; | |
| line-height: 1.55; | |
| font-size: 14px; | |
| border: 1px solid var(--iqa-border); | |
| background: var(--iqa-bubble-assistant); | |
| box-shadow: var(--iqa-shadow); | |
| display: flex; | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 0.5rem; | |
| } | |
| .iqa-chat .iqa-msg-row:not(.user) .iqa-bubble { | |
| text-align: left; | |
| border-bottom-left-radius: 4px; | |
| } | |
| .iqa-chat .iqa-msg-row.user .iqa-bubble { | |
| text-align: left; | |
| border-radius: 16px; | |
| border-bottom-right-radius: 4px; | |
| background: var(--accent-gradient, linear-gradient(135deg, var(--accent), #836cda)); | |
| color: #fff; | |
| border-color: transparent; | |
| } | |
| .iqa-chat .iqa-bubble-body { | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| } | |
| .iqa-chat .iqa-typing { | |
| display: inline-block; | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: var(--accent-primary, #2bafed); | |
| animation: iqa-pulse 1s ease-in-out infinite; | |
| } | |
| @keyframes iqa-pulse { | |
| 0%, | |
| 100% { | |
| opacity: 0.35; | |
| } | |
| 50% { | |
| opacity: 1; | |
| } | |
| } | |
| .chat-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 1rem; | |
| } | |
| .chat-bubble { | |
| max-width: 85%; | |
| margin-bottom: 0.75rem; | |
| padding: 0.65rem 0.9rem; | |
| border-radius: 12px; | |
| font-size: 0.9rem; | |
| line-height: 1.45; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 0.5rem; | |
| } | |
| .chat-bubble-body { | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| } | |
| .sr-only { | |
| position: absolute; | |
| width: 1px; | |
| height: 1px; | |
| padding: 0; | |
| margin: -1px; | |
| overflow: hidden; | |
| clip: rect(0, 0, 0, 0); | |
| white-space: nowrap; | |
| border: 0; | |
| } | |
| .message-tts-bar { | |
| margin-top: 0.15rem; | |
| padding-top: 0.45rem; | |
| border-top: 1px solid rgba(0, 0, 0, 0.06); | |
| } | |
| .message-tts-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 0.35rem 0.5rem; | |
| } | |
| .message-tts-speed-btn { | |
| width: auto; | |
| min-width: 40px; | |
| padding: 0 6px; | |
| } | |
| .message-tts-speed-label { | |
| font-size: 11px; | |
| font-weight: 700; | |
| line-height: 1; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| @keyframes message-tts-spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .message-tts-loading-spin { | |
| animation: message-tts-spin 0.8s linear infinite; | |
| } | |
| .message-tts-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 32px; | |
| height: 32px; | |
| padding: 0; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 6px; | |
| background: var(--card-bg); | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| box-shadow: var(--shadow-sm); | |
| transition: | |
| background 0.15s, | |
| box-shadow 0.15s, | |
| color 0.15s; | |
| } | |
| .message-tts-btn:hover { | |
| background: var(--card-hover); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .message-tts-btn:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| } | |
| .message-tts-btn:disabled { | |
| opacity: 0.45; | |
| cursor: not-allowed; | |
| } | |
| .message-tts-btn-active { | |
| color: #b91c1c; | |
| border-color: #fecaca; | |
| background: #fef2f2; | |
| } | |
| .message-tts-btn-small { | |
| width: 28px; | |
| height: 28px; | |
| } | |
| .message-tts-stepper { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.2rem; | |
| padding: 0 0.15rem; | |
| } | |
| .message-tts-value { | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| min-width: 2.1rem; | |
| text-align: center; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .message-tts-stepper--pitch { | |
| align-self: flex-start; | |
| } | |
| .tts-pitch-header { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.2rem; | |
| margin-bottom: 0.35rem; | |
| } | |
| .wizard-sidebar-tts .tts-pitch-name { | |
| font-size: 0.68rem; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| text-transform: uppercase; | |
| letter-spacing: 0.03em; | |
| } | |
| .wizard-sidebar-tts .tts-pitch-explainer { | |
| font-size: 0.62rem; | |
| font-weight: 400; | |
| color: var(--text-muted); | |
| line-height: 1.35; | |
| max-width: 16rem; | |
| } | |
| .wizard-sidebar-tts-pitch { | |
| margin-top: 0.65rem; | |
| } | |
| .wizard-sidebar-tts { | |
| padding: 0.75rem 0.75rem 0; | |
| margin-top: 0.5rem; | |
| border-top: 1px solid var(--border-primary); | |
| } | |
| .wizard-sidebar-tts-title { | |
| margin: 0 0 0.35rem; | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| } | |
| .wizard-sidebar-tts-hint { | |
| margin: 0 0 0.5rem; | |
| font-size: 0.7rem; | |
| line-height: 1.35; | |
| color: var(--text-muted); | |
| } | |
| .wizard-sidebar-tts-label { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.3rem; | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| } | |
| .wizard-sidebar-tts-select { | |
| width: 100%; | |
| font-size: 0.75rem; | |
| padding: 0.4rem 0.45rem; | |
| border-radius: 6px; | |
| border: 1px solid var(--border-primary); | |
| background: var(--card-bg); | |
| color: var(--text-primary); | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .wizard-sidebar-tts-select option { | |
| color: var(--text-primary); | |
| background: var(--card-bg); | |
| } | |
| .tooltip-wrap { | |
| position: relative; | |
| } | |
| .chat-bubble.user { | |
| margin-left: auto; | |
| background: var(--accent-light, #e5f6fd); | |
| border: 1px solid var(--border-primary); | |
| } | |
| .chat-bubble.agent { | |
| margin-right: auto; | |
| background: var(--bg-secondary); | |
| } | |
| .chat-input-row { | |
| display: flex; | |
| gap: 0.5rem; | |
| padding: 0.75rem; | |
| border-top: 1px solid var(--border-primary); | |
| align-items: flex-end; | |
| } | |
| .chat-input-row textarea { | |
| flex: 1; | |
| min-height: 44px; | |
| max-height: 120px; | |
| padding: 0.5rem 0.75rem; | |
| border-radius: 8px; | |
| border: 1px solid var(--border-primary); | |
| font-family: inherit; | |
| resize: vertical; | |
| } | |
| /* Same mechanism as Experiment page: html.aj-hide-pointer from useHideCaretWhileTyping */ | |
| html.aj-hide-pointer .chat-input-row textarea, | |
| .chat-input-row textarea.chat-textarea-hide-caret { | |
| caret-color: transparent; | |
| } | |
| .icon-btn { | |
| padding: 0.5rem 0.65rem; | |
| border-radius: 8px; | |
| border: 1px solid var(--border-primary); | |
| background: #fff; | |
| cursor: pointer; | |
| } | |
| .icon-btn:disabled { | |
| opacity: 0.5; | |
| } | |
| .workshop-page { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: 1.5rem 1.25rem 4rem; | |
| } | |
| .workshop-inner { | |
| width: 100%; | |
| } | |
| .workshop-title { | |
| font-size: 1.85rem; | |
| font-weight: 700; | |
| margin: 0 0 0.75rem; | |
| text-align: center; | |
| color: var(--text-primary); | |
| letter-spacing: -0.02em; | |
| line-height: 1.25; | |
| } | |
| .workshop-lead { | |
| color: var(--text-secondary); | |
| font-weight: 400; | |
| font-size: 15px; | |
| margin: 0 0 1rem; | |
| text-align: center; | |
| } | |
| /* Match creations cards: solid edge + card surface (not dashed CTA chrome) */ | |
| .workshop-cta.cta-block { | |
| margin-top: 0; | |
| max-width: none; | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-primary); | |
| box-shadow: var(--shadow-md); | |
| padding: 1.25rem; | |
| } | |
| .workshop-cta.cta-block h2 { | |
| margin: 0 0 0.5rem; | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| letter-spacing: -0.01em; | |
| line-height: 1.35; | |
| color: var(--text-primary); | |
| } | |
| .workshop-experiment { | |
| display: flex; | |
| justify-content: center; | |
| margin: 1.25rem 0 1.75rem; | |
| } | |
| .workshop-experiment-link.btn-primary { | |
| border: none; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .theme-persona .workshop-experiment-link.btn-primary, | |
| .theme-advisor .workshop-experiment-link.btn-primary { | |
| border: none; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .workshop-experiment-link.btn-primary:hover { | |
| filter: brightness(1.05); | |
| } | |
| /* No creations yet — “View my …” preview state */ | |
| .creations-view-mine-disabled { | |
| opacity: 0.48; | |
| cursor: not-allowed; | |
| pointer-events: none; | |
| background: var(--bg-secondary) ; | |
| color: var(--text-secondary) ; | |
| border: 2.5px solid var(--border-primary) ; | |
| } | |
| .creations-view-mine-disabled:hover { | |
| filter: none; | |
| } | |
| .manage-creations-page .manage-creations-lead { | |
| text-align: center; | |
| max-width: 40rem; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| .manage-creations-back { | |
| display: flex; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 0.35rem 0.75rem; | |
| margin: 0 0 1.5rem; | |
| font-size: 0.95rem; | |
| } | |
| .manage-creations-back a { | |
| color: var(--text-link, var(--accent-primary, #2563eb)); | |
| text-decoration: none; | |
| } | |
| .manage-creations-back a:hover { | |
| text-decoration: underline; | |
| } | |
| .manage-creations-back-sep { | |
| color: var(--text-secondary); | |
| user-select: none; | |
| } | |
| .manage-creations-block { | |
| margin-bottom: 1.25rem; | |
| padding: 1rem 1.15rem; | |
| } | |
| .manage-creations-heading { | |
| margin: 0 0 0.85rem; | |
| font-size: 1.1rem; | |
| } | |
| .manage-creations-empty { | |
| margin: 0; | |
| color: var(--text-secondary); | |
| font-size: 0.95rem; | |
| } | |
| .manage-creations-toolbar { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 0.75rem; | |
| margin-bottom: 0.85rem; | |
| } | |
| .manage-creations-select-all { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.45rem; | |
| cursor: pointer; | |
| font-size: 0.92rem; | |
| user-select: none; | |
| } | |
| .manage-creations-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.45rem; | |
| } | |
| .manage-creations-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.35rem; | |
| } | |
| .manage-creations-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 0.5rem 1rem; | |
| padding: 0.5rem 0.55rem; | |
| border-radius: 0.4rem; | |
| border: 1px solid var(--border-primary); | |
| background: var(--bg-secondary); | |
| } | |
| .manage-creations-row-label { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| flex: 1; | |
| min-width: 0; | |
| cursor: pointer; | |
| font-weight: 500; | |
| } | |
| .manage-creations-row-title { | |
| min-width: 0; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .manage-creations-badge { | |
| flex-shrink: 0; | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| padding: 0.12rem 0.4rem; | |
| border-radius: 0.25rem; | |
| background: var(--bg-tertiary, rgba(0, 0, 0, 0.06)); | |
| color: var(--text-secondary); | |
| } | |
| .manage-creations-row-link { | |
| flex-shrink: 0; | |
| font-size: 0.88rem; | |
| color: var(--text-link, var(--accent-primary, #2563eb)); | |
| text-decoration: none; | |
| } | |
| .manage-creations-row-link:hover { | |
| text-decoration: underline; | |
| } | |
| .creations-stack { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.25rem; | |
| margin-top: 0.5rem; | |
| } | |
| .creations-section { | |
| margin-top: 0; | |
| text-align: center; | |
| } | |
| /* Same size as Create a Persona / Create an Advisor Panel h2 */ | |
| .creations-section-title { | |
| margin: 0 0 1rem; | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| letter-spacing: -0.01em; | |
| line-height: 1.35; | |
| text-align: center; | |
| color: var(--text-primary); | |
| } | |
| .creations-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.65rem; | |
| justify-content: center; | |
| } | |
| /* Quiet interactive chips — pale accent fill + wider accent border */ | |
| .creations-buttons .btn-secondary { | |
| background: color-mix(in srgb, var(--accent-primary) 7%, var(--card-bg)); | |
| border: 2.5px solid color-mix(in srgb, var(--accent-primary) 42%, var(--border-primary)); | |
| box-shadow: var(--shadow-sm); | |
| color: var(--text-primary); | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| } | |
| .creations-buttons .btn-secondary:hover { | |
| background: color-mix(in srgb, var(--accent-primary) 12%, var(--card-bg)); | |
| border-color: color-mix(in srgb, var(--accent-primary) 55%, var(--border-primary)); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .creations-buttons .btn-primary { | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| } | |
| .creations-manage { | |
| display: flex; | |
| justify-content: center; | |
| margin-top: 1.15rem; | |
| padding-top: 0.15rem; | |
| } | |
| .creations-section-title + .creations-manage { | |
| margin-top: 0; | |
| } | |
| .creations-manage .btn-secondary { | |
| border: 1.5px solid var(--border-primary); | |
| } | |
| .summary-page { | |
| max-width: 640px; | |
| } | |
| .summary-back { | |
| margin: 0 0 1rem; | |
| font-size: 0.9rem; | |
| } | |
| .summary-back a { | |
| color: var(--accent-primary); | |
| text-decoration: none; | |
| font-weight: 600; | |
| } | |
| .summary-back a:hover { | |
| text-decoration: underline; | |
| } | |
| .summary-switcher { | |
| margin-bottom: 1.25rem; | |
| } | |
| .summary-select { | |
| width: 100%; | |
| max-width: 420px; | |
| padding: 0.55rem 0.75rem; | |
| border-radius: 8px; | |
| border: 1.5px solid var(--border-primary); | |
| font-size: 0.95rem; | |
| font-family: inherit; | |
| background: #fff; | |
| } | |
| .summary-select:focus { | |
| outline: none; | |
| border-color: var(--accent-primary); | |
| box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-primary) 18%, transparent); | |
| } | |
| .summary-card-title { | |
| margin: 0 0 1rem; | |
| font-size: 1.35rem; | |
| } | |
| .summary-fields { | |
| margin: 0; | |
| } | |
| .summary-field { | |
| display: grid; | |
| grid-template-columns: minmax(0, 140px) 1fr; | |
| gap: 0.5rem 1rem; | |
| padding: 0.65rem 0; | |
| border-bottom: 1px solid var(--border-primary); | |
| align-items: start; | |
| } | |
| .summary-field:last-of-type { | |
| border-bottom: none; | |
| } | |
| .summary-field dt { | |
| margin: 0; | |
| font-size: 0.8rem; | |
| font-weight: 700; | |
| color: var(--text-secondary); | |
| text-transform: uppercase; | |
| letter-spacing: 0.03em; | |
| } | |
| .summary-field dd { | |
| margin: 0; | |
| font-size: 0.95rem; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| } | |
| .summary-field--full { | |
| grid-template-columns: 1fr; | |
| } | |
| .summary-field--full dt { | |
| margin-bottom: 0.35rem; | |
| } | |
| .summary-advisor-list { | |
| margin: 0; | |
| padding-left: 1.15rem; | |
| } | |
| .summary-actions { | |
| margin-top: 1.25rem; | |
| padding-top: 1rem; | |
| border-top: 1px solid var(--border-primary); | |
| } | |
| @media (max-width: 768px) { | |
| .wizard-layout { | |
| flex-direction: column; | |
| } | |
| .wizard-sidebar { | |
| width: 100%; | |
| display: flex; | |
| overflow-x: auto; | |
| gap: 0.5rem; | |
| padding: 0.75rem; | |
| } | |
| .wizard-nav-item { | |
| white-space: nowrap; | |
| } | |
| .summary-field { | |
| grid-template-columns: 1fr; | |
| gap: 0.25rem; | |
| } | |
| } | |
| /* Persona prompt build (global) */ | |
| .persona-prompt-build-banner { | |
| position: fixed; | |
| bottom: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 10000; | |
| padding: 0.75rem 1rem; | |
| background: var(--accent-gradient); | |
| color: #fff; | |
| text-align: center; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.18); | |
| } | |
| .persona-prompt-build-warn { | |
| margin-top: 0.75rem; | |
| padding: 0.65rem 0.75rem; | |
| border-radius: 8px; | |
| background: rgba(234, 179, 8, 0.12); | |
| border: 1px solid rgba(234, 179, 8, 0.35); | |
| color: var(--text-primary); | |
| font-size: 0.9rem; | |
| } | |
| .btn-persona-prompt-build { | |
| background: var(--accent-gradient); | |
| color: #fff ; | |
| border: none; | |
| font-weight: 600; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .theme-persona .wizard-main .btn.btn-persona-prompt-build, | |
| .theme-persona .btn.btn-persona-prompt-build { | |
| background: var(--accent-gradient) ; | |
| color: #fff ; | |
| border: none ; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .theme-persona .wizard-main .btn.btn-persona-prompt-build:hover:not(:disabled), | |
| .theme-persona .btn.btn-persona-prompt-build:hover:not(:disabled) { | |
| filter: brightness(1.05); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .btn-persona-prompt-build:hover:not(:disabled) { | |
| filter: brightness(1.05); | |
| } | |
| .btn-persona-prompt-build:disabled { | |
| opacity: 0.55; | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| } | |
| /* ── Advisor Panel Build Button ─────────────────────────────────────── */ | |
| .btn-advisor-panel-build { | |
| background: var(--accent-gradient); | |
| color: #fff ; | |
| border: none; | |
| font-weight: 600; | |
| box-shadow: var(--shadow-sm); | |
| } | |
| .theme-advisor .wizard-main .btn.btn-advisor-panel-build, | |
| .theme-advisor .btn.btn-advisor-panel-build { | |
| background: var(--accent-gradient) ; | |
| color: #fff ; | |
| border: none ; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .theme-advisor .wizard-main .btn.btn-advisor-panel-build:hover:not(:disabled), | |
| .theme-advisor .btn.btn-advisor-panel-build:hover:not(:disabled) { | |
| filter: brightness(1.05); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .btn-advisor-panel-build:hover:not(:disabled) { | |
| filter: brightness(1.06); | |
| } | |
| .btn-advisor-panel-build:disabled { | |
| opacity: 0.55; | |
| cursor: not-allowed; | |
| box-shadow: none; | |
| } | |
| /* ── Advisor Panel Build Banner ─────────────────────────────────────── */ | |
| .advisor-panel-build-banner { | |
| position: fixed; | |
| bottom: 0; | |
| left: 0; | |
| right: 0; | |
| z-index: 9999; | |
| padding: 0.75rem 1rem; | |
| background: var(--accent-gradient); | |
| color: #fff; | |
| text-align: center; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.18); | |
| } | |
| /* ── Experiment with Advisor Panels ─────────────────────────────────── */ | |
| .experiment-advisor-layout { | |
| display: flex; | |
| flex: 1 1 0; | |
| min-height: 0; | |
| overflow: hidden; | |
| } | |
| .experiment-advisor-main { | |
| flex: 1; | |
| min-width: 0; | |
| padding: 2rem 2.5rem; | |
| overflow-y: auto; | |
| } | |
| .experiment-advisor-empty { | |
| text-align: center; | |
| padding: 3rem 1rem; | |
| color: var(--text-secondary); | |
| } | |
| .experiment-advisor-empty p { | |
| margin-bottom: 1rem; | |
| } | |
| .experiment-advisor-toolbar { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| flex-wrap: wrap; | |
| } | |
| /* Sidebar: stack full-width Discard / Refresh buttons */ | |
| .experiment-advisor-toolbar--sidebar { | |
| flex-direction: column; | |
| align-items: stretch; | |
| gap: 0.5rem; | |
| } | |
| .experiment-advisor-toolbar--sidebar .btn { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .experiment-advisor-toolbar--sidebar .experiment-advisor-saved { | |
| text-align: center; | |
| padding-top: 0.15rem; | |
| } | |
| .experiment-advisor-saved { | |
| font-size: 0.85rem; | |
| color: #22c55e; | |
| font-weight: 600; | |
| } | |
| .experiment-advisor-preview-wrap { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| /* ── Right sidebar ─────────────────────────────────────────────────── */ | |
| .experiment-advisor-sidebar { | |
| width: 240px; | |
| min-width: 200px; | |
| background: var(--bg-secondary); | |
| border-left: 1px solid var(--border-primary); | |
| padding: 1.5rem 1rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| overflow: hidden; | |
| min-height: 0; | |
| } | |
| .experiment-advisor-sidebar-scroll { | |
| flex: 1 1 0; | |
| min-height: 0; | |
| overflow-x: hidden; | |
| overflow-y: auto; | |
| overscroll-behavior: contain; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| } | |
| .experiment-advisor-sidebar-controls { | |
| padding-bottom: 0.75rem; | |
| margin-bottom: 0.5rem; | |
| border-bottom: 1px solid var(--border-primary); | |
| } | |
| /* Typography shared with .experiment-aj-page-title in experiment-askjerry.css */ | |
| .experiment-advisor-sidebar-page-title { | |
| margin: 0 0 0.75rem; | |
| color: var(--text-primary); | |
| } | |
| .experiment-advisor-sidebar-subtitle { | |
| font-size: 0.88rem; | |
| font-weight: 600; | |
| margin-top: 0.25rem; | |
| margin-bottom: 0.25rem; | |
| color: var(--text-secondary); | |
| } | |
| .experiment-advisor-sidebar-empty { | |
| font-size: 0.82rem; | |
| color: var(--text-tertiary); | |
| padding: 0.25rem 0.5rem; | |
| } | |
| .experiment-advisor-panel-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.15rem; | |
| } | |
| .experiment-advisor-panel-item { | |
| display: block; | |
| width: 100%; | |
| text-align: left; | |
| background: none; | |
| border: 2px solid transparent; | |
| padding: 0.4rem 0.5rem; | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| color: var(--text-primary); | |
| cursor: pointer; | |
| transition: background 0.15s, border-color 0.15s; | |
| } | |
| .experiment-advisor-panel-item:hover { | |
| background: var(--card-hover); | |
| } | |
| .experiment-advisor-panel-item--active { | |
| background: var(--card-bg); | |
| border-color: color-mix(in srgb, var(--accent-tertiary) 55%, var(--border-primary)); | |
| box-shadow: var(--shadow-sm); | |
| font-weight: 600; | |
| } | |
| .btn-danger { | |
| background: #dc2626; | |
| color: #fff; | |
| border: none; | |
| } | |
| .btn-danger:hover:not(:disabled) { | |
| background: #b91c1c; | |
| } | |
| /* ── Iframe preview ────────────────────────────────────────────────── */ | |
| .experiment-advisor-iframe-wrap { | |
| position: relative; | |
| border-radius: 10px; | |
| overflow: hidden; | |
| border: 1px solid var(--border-primary); | |
| background: var(--card-bg); | |
| box-shadow: var(--shadow-md); | |
| } | |
| .experiment-advisor-iframe { | |
| display: block; | |
| width: 100%; | |
| height: 600px; | |
| border: none; | |
| } | |
| .experiment-advisor-iframe-loading { | |
| position: absolute; | |
| inset: 0; | |
| z-index: 2; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| background: rgba(255, 255, 255, 0.85); | |
| color: var(--text-secondary); | |
| font-size: 0.9rem; | |
| } | |
| /* ── Field editors (persona-experiment accordion pattern) ─────────── */ | |
| .experiment-advisor-edit-block { | |
| margin-top: 0.75rem; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .experiment-advisor-fields { | |
| padding: 10px 12px 12px; | |
| background: var(--lc-inset-surface, var(--bg-secondary)); | |
| } | |
| .experiment-advisor-fields-subhead { | |
| margin: 1rem 0 0.35rem; | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| } | |
| .experiment-advisor-nested-block { | |
| margin: 0.5rem 0 0.75rem; | |
| padding: 0.75rem; | |
| border: 1px solid var(--border-primary); | |
| border-radius: 8px; | |
| background: var(--card-bg, var(--bg-primary)); | |
| display: grid; | |
| gap: 8px; | |
| } | |
| .experiment-advisor-nested-title { | |
| margin: 0; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| } | |
| .experiment-advisor-color-row { | |
| display: flex; | |
| gap: 0.75rem; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| } | |
| .experiment-advisor-color-row input[type='text'] { | |
| max-width: 10rem; | |
| } | |
| .experiment-advisor-persona-checklist { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.4rem; | |
| } | |
| .experiment-advisor-persona-checklist label { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 0.55rem; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| font-weight: 500; | |
| color: var(--text-primary); | |
| } | |
| .experiment-advisor-prompt-textarea { | |
| font-family: ui-monospace, 'Cascadia Code', 'Fira Code', Consolas, monospace; | |
| font-size: 0.85rem; | |
| min-height: 12rem; | |
| } | |
| /* ── Document upload section ──────────────────────────────────────── */ | |
| .doc-upload-section { | |
| margin-top: 1.75rem; | |
| padding-top: 1.25rem; | |
| border-top: 1px solid var(--border-primary); | |
| } | |
| .doc-upload-section h3 { | |
| margin: 0 0 0.25rem; | |
| font-size: 1.05rem; | |
| } | |
| .doc-upload-dropzone { | |
| border: 2px dashed var(--border-primary); | |
| border-radius: 10px; | |
| padding: 1.5rem 1rem; | |
| text-align: center; | |
| color: var(--text-secondary); | |
| transition: border-color 0.15s, background 0.15s; | |
| user-select: none; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 0.25rem; | |
| } | |
| .doc-upload-dropzone:hover { | |
| border-color: var(--accent-primary); | |
| background: var(--card-hover); | |
| } | |
| .doc-upload-dropzone--active { | |
| border-color: var(--accent-primary); | |
| background: var(--accent-light); | |
| } | |
| .doc-upload-dropzone-icon { | |
| font-size: 2rem; | |
| line-height: 1; | |
| margin-bottom: 0.15rem; | |
| opacity: 0.6; | |
| } | |
| .doc-upload-dropzone-text { | |
| margin: 0; | |
| font-size: 0.92rem; | |
| font-weight: 500; | |
| color: var(--text-primary); | |
| } | |
| .doc-upload-dropzone-text code { | |
| font-size: 0.85em; | |
| } | |
| .doc-upload-dropzone-or { | |
| font-size: 0.78rem; | |
| color: var(--text-secondary); | |
| margin: 0.15rem 0; | |
| } | |
| .doc-upload-browse-btn { | |
| margin-top: 0.1rem; | |
| } | |
| .doc-upload-dropzone-limits { | |
| margin: 0.35rem 0 0; | |
| font-size: 0.76rem; | |
| color: var(--text-secondary); | |
| } | |
| .doc-upload-error { | |
| margin: 0.5rem 0 0; | |
| padding: 0.5rem 0.75rem; | |
| background: rgba(220, 38, 38, 0.08); | |
| border: 1px solid rgba(220, 38, 38, 0.25); | |
| border-radius: 6px; | |
| color: #dc2626; | |
| font-size: 0.85rem; | |
| } | |
| .doc-upload-usage { | |
| margin: 0.75rem 0 0.35rem; | |
| font-size: 0.82rem; | |
| color: var(--text-secondary); | |
| } | |
| .doc-upload-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.3rem; | |
| } | |
| .doc-upload-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.35rem 0.5rem; | |
| background: var(--bg-secondary, rgba(0, 0, 0, 0.03)); | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| } | |
| .doc-upload-item-icon { | |
| flex-shrink: 0; | |
| font-size: 1rem; | |
| line-height: 1; | |
| opacity: 0.55; | |
| } | |
| .doc-upload-name { | |
| flex: 1; | |
| min-width: 0; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .doc-upload-size { | |
| flex-shrink: 0; | |
| color: var(--text-secondary); | |
| font-size: 0.78rem; | |
| } | |
| .doc-upload-delete { | |
| flex-shrink: 0; | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| font-size: 1.1rem; | |
| line-height: 1; | |
| padding: 0 0.25rem; | |
| border-radius: 4px; | |
| transition: color 0.15s, background 0.15s; | |
| } | |
| .doc-upload-delete:hover { | |
| color: #dc2626; | |
| background: rgba(220, 38, 38, 0.08); | |
| } | |
| /* ── Workshop tutorial ─────────────────────────────────────────────── */ | |
| .tutorial-launcher-btn--floating { | |
| position: fixed; | |
| bottom: 1.25rem; | |
| left: 1.25rem; | |
| z-index: 1100; | |
| box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18); | |
| } | |
| .tutorial-launcher-sidebar-wrap { | |
| margin-bottom: 0.75rem; | |
| } | |
| .tutorial-launcher-btn--sidebar { | |
| width: 100%; | |
| } | |
| .tutorial-spotlight { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 850; | |
| pointer-events: none; | |
| } | |
| .tutorial-spotlight-hole { | |
| position: absolute; | |
| border-radius: 10px; | |
| box-shadow: 0 0 0 9999px rgba(15, 23, 42, 0.52); | |
| outline: 3px solid color-mix(in srgb, var(--accent-primary) 95%, transparent); | |
| outline-offset: 2px; | |
| } | |
| .tutorial-panel { | |
| position: fixed; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| z-index: 900; | |
| max-height: min(42vh, 360px); | |
| overflow: auto; | |
| background: var(--bg-primary, #fff); | |
| border-top: 1px solid color-mix(in srgb, var(--accent-primary) 35%, transparent); | |
| box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12); | |
| padding: 0.85rem 1.25rem 1rem; | |
| } | |
| .tutorial-panel-spacer { | |
| height: min(42vh, 360px); | |
| flex-shrink: 0; | |
| pointer-events: none; | |
| } | |
| .tutorial-panel-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 0.75rem; | |
| margin-bottom: 0.65rem; | |
| } | |
| .tutorial-panel-tabs { | |
| display: flex; | |
| gap: 0.35rem; | |
| } | |
| .tutorial-panel-tab { | |
| border: 1px solid color-mix(in srgb, var(--accent-primary) 25%, transparent); | |
| background: transparent; | |
| border-radius: 999px; | |
| padding: 0.3rem 0.85rem; | |
| font-size: 0.82rem; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| } | |
| .tutorial-panel-tab--active { | |
| background: color-mix(in srgb, var(--accent-primary) 12%, transparent); | |
| color: var(--text-primary); | |
| font-weight: 600; | |
| } | |
| .tutorial-panel-close { | |
| border: none; | |
| background: transparent; | |
| font-size: 1.45rem; | |
| line-height: 1; | |
| cursor: pointer; | |
| color: var(--text-secondary); | |
| padding: 0.15rem 0.45rem; | |
| border-radius: 6px; | |
| } | |
| .tutorial-panel-close:hover { | |
| background: rgba(0, 0, 0, 0.06); | |
| color: var(--text-primary); | |
| } | |
| .tutorial-panel-body { | |
| font-size: 0.92rem; | |
| } | |
| .tutorial-panel-title { | |
| margin: 0 0 0.45rem; | |
| font-size: 1.05rem; | |
| } | |
| .tutorial-overview-section { | |
| margin-bottom: 0.75rem; | |
| } | |
| .tutorial-overview-section h4 { | |
| margin: 0 0 0.25rem; | |
| font-size: 0.92rem; | |
| } | |
| .tutorial-overview-section p { | |
| margin: 0; | |
| color: var(--text-secondary); | |
| line-height: 1.45; | |
| } | |
| .tutorial-step-progress { | |
| margin: 0 0 0.25rem; | |
| font-size: 0.78rem; | |
| color: var(--text-secondary); | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .tutorial-step-body { | |
| margin: 0 0 0.75rem; | |
| color: var(--text-secondary); | |
| line-height: 1.45; | |
| } | |
| .tutorial-resume-hint { | |
| margin: 0 0 0.85rem; | |
| padding: 0.65rem 0.75rem; | |
| border-radius: 8px; | |
| background: color-mix(in srgb, var(--accent-primary) 8%, transparent); | |
| border: 1px solid color-mix(in srgb, var(--accent-primary) 20%, transparent); | |
| } | |
| .tutorial-resume-heading { | |
| margin: 0 0 0.35rem; | |
| font-size: 0.82rem; | |
| font-weight: 600; | |
| } | |
| .tutorial-resume-link { | |
| display: inline-block; | |
| margin-right: 0.75rem; | |
| font-size: 0.85rem; | |
| color: var(--accent-primary); | |
| } | |
| .tutorial-method-choice { | |
| margin-bottom: 0.85rem; | |
| } | |
| .tutorial-method-label { | |
| margin: 0 0 0.45rem; | |
| font-weight: 500; | |
| } | |
| .tutorial-method-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| } | |
| .tutorial-panel-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| margin-top: 0.5rem; | |
| } | |
| .tutorial-panel-actions--walkthrough { | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .tutorial-panel-actions-right { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| margin-left: auto; | |
| } | |
| @media (max-width: 640px) { | |
| .tutorial-panel-actions--walkthrough { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .tutorial-panel-actions-right { | |
| margin-left: 0; | |
| justify-content: flex-end; | |
| } | |
| } | |
| /* -- Accessibility & motion polish ----------------------------------------- */ | |
| a:focus-visible, | |
| button:focus-visible, | |
| input:focus-visible, | |
| textarea:focus-visible, | |
| select:focus-visible, | |
| summary:focus-visible, | |
| [role='button']:focus-visible, | |
| .header-nav-link:focus-visible, | |
| .header-brand:focus-visible, | |
| .header-brand-logo-link:focus-visible, | |
| .header-maker:focus-visible { | |
| outline: none; | |
| box-shadow: var(--focus-ring); | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| *, | |
| *::before, | |
| *::after { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| scroll-behavior: auto ; | |
| } | |
| .message-tts-loading-spin, | |
| .aj-spin, | |
| .aj-typing { | |
| animation: none ; | |
| } | |
| } | |
| .skeleton { | |
| background: linear-gradient( | |
| 90deg, | |
| var(--bg-secondary) 0%, | |
| var(--bg-tertiary) 50%, | |
| var(--bg-secondary) 100% | |
| ); | |
| background-size: 200% 100%; | |
| animation: skeleton-shimmer 1.2s ease-in-out infinite; | |
| border-radius: 6px; | |
| } | |
| @keyframes skeleton-shimmer { | |
| 0% { background-position: 100% 0; } | |
| 100% { background-position: -100% 0; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| .skeleton { | |
| animation: none; | |
| background: var(--bg-tertiary); | |
| } | |
| } | |
| .empty-state { | |
| padding: 1.5rem 1rem; | |
| text-align: center; | |
| color: var(--text-secondary); | |
| font-size: 0.95rem; | |
| line-height: 1.5; | |
| background: var(--card-bg); | |
| border: 1px dashed var(--border-primary); | |
| border-radius: var(--radius); | |
| box-shadow: var(--shadow-sm); | |
| } | |