Spaces:
Sleeping
Sleeping
| html.aj-hide-pointer, | |
| html.aj-hide-pointer * { | |
| cursor: none ; | |
| } | |
| .aj-app { | |
| flex: 1 1 0; | |
| min-height: 0; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| background: var(--lc-bg); | |
| color: var(--lc-text); | |
| } | |
| /* Matches Version B: single row, three columns — brand | title | actions */ | |
| .aj-header { | |
| display: grid; | |
| grid-template-columns: 1fr auto 1fr; | |
| align-items: center; | |
| padding: 12px 12px; | |
| background: var(--lc-bg2); | |
| border-bottom: 1px solid var(--lc-border); | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); | |
| position: relative; | |
| z-index: 50; | |
| } | |
| /* Neon.ai header brand — wordmark: solid cyan-teal (darkest stop from previous gradient) */ | |
| .aj-header-brand-link { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| justify-self: start; | |
| text-decoration: none; | |
| color: inherit; | |
| transition: opacity 0.15s; | |
| font-size: 20px; | |
| } | |
| .aj-header-brand-link:hover { | |
| opacity: 0.8; | |
| } | |
| .aj-header-logo { | |
| height: 32px; | |
| width: auto; | |
| display: block; | |
| } | |
| .aj-header-brand-name { | |
| font-size: 20px; | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| line-height: 1.2; | |
| color: #0e7490; | |
| } | |
| .aj-header-title-wrap { | |
| text-align: center; | |
| } | |
| .aj-header-title { | |
| margin: 0; | |
| font-size: 20px; | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| line-height: 1.2; | |
| text-align: center; | |
| white-space: nowrap; | |
| background: linear-gradient(135deg, #6366f1, #8b5cf6); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .aj-sub { | |
| font-size: 14px; | |
| color: var(--lc-muted); | |
| margin: 0; | |
| } | |
| /* Version B: actions live in aj-options-wrap (flex row, right-aligned) */ | |
| .aj-options-wrap { | |
| position: relative; | |
| justify-self: end; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| /* Header icon buttons — compact; overflow / composer use different rules below */ | |
| .aj-header .aj-btn { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 36px; | |
| height: 36px; | |
| padding: 0; | |
| gap: 0; | |
| border-radius: 8px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-bg); | |
| color: var(--lc-muted); | |
| cursor: pointer; | |
| font-size: 0; | |
| } | |
| .aj-header .aj-btn:hover:not(:disabled) { | |
| background: #e0d4fc; | |
| color: #5b21b6; | |
| border-color: #c4b5fd; | |
| } | |
| .aj-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 8px 14px; | |
| border-radius: 10px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-elevated); | |
| color: inherit; | |
| cursor: pointer; | |
| font-size: 13px; | |
| font-weight: 500; | |
| } | |
| .aj-btn:hover:not(:disabled) { | |
| border-color: #c4b5fd; | |
| background: #e0d4fc; | |
| color: #5b21b6; | |
| } | |
| .aj-btn:disabled { | |
| opacity: 0.45; | |
| cursor: not-allowed; | |
| } | |
| .aj-btn.primary { | |
| background: #e0d4fc; | |
| border-color: #c4b5fd; | |
| color: #5b21b6; | |
| } | |
| .aj-btn.primary:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #6366f1, #8b5cf6); | |
| border-color: transparent; | |
| color: #fff; | |
| } | |
| .aj-btn.danger { | |
| border-color: rgba(220, 38, 38, 0.28); | |
| color: #b91c1c; | |
| } | |
| .aj-header .aj-btn.danger { | |
| color: #dc2626; | |
| border-color: #fca5a5; | |
| } | |
| .aj-header .aj-btn.danger:hover:not(:disabled) { | |
| background: #fef2f2; | |
| border-color: #dc2626; | |
| } | |
| .aj-btn.ghost { | |
| border-color: transparent; | |
| background: transparent; | |
| } | |
| .aj-btn.ghost:hover:not(:disabled) { | |
| background: var(--lc-hover); | |
| } | |
| /* Options dropdown: fixed so it is not clipped by .aj-app overflow:hidden; position set via JS (--aj-options-panel-*) */ | |
| .aj-options-panel { | |
| position: fixed; | |
| z-index: 200; | |
| top: var(--aj-options-panel-top, 68px); | |
| right: var(--aj-options-panel-right, 12px); | |
| left: auto; | |
| width: min(400px, calc(100vw - 32px)); | |
| max-height: min(70vh, calc(100dvh - var(--aj-options-panel-top, 68px) - 12px)); | |
| overflow-y: auto; | |
| padding: 14px 16px 16px; | |
| border-radius: 12px; | |
| border: 1px solid #9333ea; | |
| background: #e0d4fc; | |
| box-shadow: var(--lc-shadow); | |
| } | |
| .aj-options-section { | |
| padding: 14px; | |
| border-radius: 10px; | |
| border: 1px solid #7c3aed; | |
| background: rgba(255, 255, 255, 0.55); | |
| } | |
| .aj-options-section + .aj-options-section { | |
| margin-top: 12px; | |
| } | |
| .aj-options-section-title { | |
| margin: 0 0 10px; | |
| font-size: 11px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.06em; | |
| color: var(--lc-muted); | |
| } | |
| .aj-options-section-title + .aj-field, | |
| .aj-options-section-title + .aj-field-checkbox { | |
| margin-top: 0; | |
| } | |
| .aj-options-hint { | |
| margin: 8px 0 0; | |
| font-size: 12px; | |
| color: var(--lc-muted); | |
| line-height: 1.45; | |
| } | |
| .aj-field span { | |
| display: block; | |
| font-size: 11px; | |
| color: var(--lc-muted); | |
| margin-bottom: 6px; | |
| } | |
| .aj-field textarea { | |
| width: 100%; | |
| box-sizing: border-box; | |
| padding: 12px 14px; | |
| border-radius: 10px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-input); | |
| color: var(--lc-text); | |
| font-size: 13px; | |
| line-height: 1.5; | |
| resize: vertical; | |
| min-height: 120px; | |
| } | |
| .aj-field textarea::placeholder { | |
| color: var(--lc-placeholder); | |
| opacity: 0.85; | |
| } | |
| .aj-field-checkbox { | |
| display: flex; | |
| flex-direction: row; | |
| align-items: flex-start; | |
| gap: 10px; | |
| margin-top: 14px; | |
| } | |
| .aj-field-checkbox span { | |
| display: inline; | |
| margin-bottom: 0; | |
| font-size: 13px; | |
| color: var(--lc-text); | |
| } | |
| .aj-field-checkbox input { | |
| margin-top: 2px; | |
| flex-shrink: 0; | |
| } | |
| .aj-speed-options { | |
| display: flex; | |
| gap: 6px; | |
| margin-top: 6px; | |
| } | |
| .aj-speed-option { | |
| padding: 4px 12px; | |
| border-radius: 6px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-input); | |
| color: var(--lc-muted); | |
| font-size: 13px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: all 0.15s; | |
| } | |
| .aj-speed-option:hover { | |
| border-color: var(--lc-accent); | |
| color: var(--lc-accent); | |
| } | |
| .aj-speed-option--active { | |
| background: var(--lc-accent); | |
| color: #fff; | |
| border-color: var(--lc-accent); | |
| } | |
| .aj-speed-option--active:hover { | |
| color: #fff; | |
| } | |
| .aj-chat-wrap { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 0; | |
| overflow: hidden; | |
| } | |
| .aj-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 20px 10px; | |
| background: linear-gradient(180deg, var(--lc-bg2) 0%, var(--lc-bg) 100%); | |
| } | |
| /* Fixed above composer — jump to bottom when chat list is scrolled up */ | |
| .aj-jump-bottom-btn { | |
| position: fixed; | |
| right: 12px; | |
| bottom: calc(96px + env(safe-area-inset-bottom, 0px)); | |
| z-index: 55; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 48px; | |
| height: 48px; | |
| padding: 0; | |
| border-radius: 50%; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-elevated); | |
| color: var(--lc-accent); | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); | |
| cursor: pointer; | |
| transition: transform 0.15s ease, box-shadow 0.15s ease; | |
| } | |
| .aj-jump-bottom-btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 24px rgba(124, 58, 237, 0.2); | |
| border-color: var(--lc-accent); | |
| } | |
| .aj-jump-bottom-btn:focus-visible { | |
| outline: 2px solid var(--lc-accent); | |
| outline-offset: 2px; | |
| } | |
| @media (max-width: 520px) { | |
| .aj-jump-bottom-btn { | |
| right: 8px; | |
| bottom: calc(88px + env(safe-area-inset-bottom, 0px)); | |
| width: 44px; | |
| height: 44px; | |
| } | |
| } | |
| .aj-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; | |
| } | |
| /* Symmetric padding P → center overlap = (1 − 2P) of row; P=35% → 30% overlap */ | |
| .aj-msg-row:not(.user) { | |
| padding-right: 35%; | |
| justify-content: flex-end; | |
| } | |
| /* User: right side, left-justified — extends past center */ | |
| .aj-msg-row.user { | |
| padding-left: 35%; | |
| justify-content: flex-start; | |
| } | |
| .aj-shape { | |
| flex-shrink: 0; | |
| width: 14px; | |
| height: 14px; | |
| border-radius: 50%; | |
| background: var(--lc-accent); | |
| } | |
| .aj-bubble-wrap { | |
| max-width: 100%; | |
| position: relative; | |
| z-index: 0; | |
| } | |
| .aj-bubble-name { | |
| font-size: 11px; | |
| color: var(--lc-muted); | |
| margin-bottom: 4px; | |
| padding: 0 4px; | |
| } | |
| /* Names at the outer edge of each bubble (away from center) */ | |
| .aj-msg-row.user .aj-bubble-name { | |
| text-align: right; | |
| } | |
| .aj-msg-row:not(.user) .aj-bubble-name { | |
| text-align: left; | |
| } | |
| .aj-msg-row:not(.user) .aj-bubble { | |
| text-align: left; | |
| } | |
| .aj-msg-row.user .aj-bubble { | |
| text-align: left; | |
| } | |
| .aj-bubble { | |
| padding: 12px 16px; | |
| border-radius: 16px; | |
| line-height: 1.55; | |
| font-size: 14px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-bubble); | |
| box-shadow: var(--lc-shadow); | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| } | |
| /* Speech-bubble tails: one corner tighter for a natural bubble shape */ | |
| .aj-msg-row:not(.user) .aj-bubble { | |
| border-bottom-left-radius: 4px; | |
| } | |
| .aj-msg-row.user .aj-bubble { | |
| border-radius: 16px; | |
| border-bottom-right-radius: 4px; | |
| background: linear-gradient(135deg, var(--lc-accent), #6366f1); | |
| color: #fff; | |
| border-color: transparent; | |
| } | |
| /* Assistant replies: render markdown as formatted text (not raw syntax) */ | |
| .aj-bubble--assistant-md { | |
| white-space: normal; | |
| } | |
| .aj-bubble-md { | |
| line-height: 1.55; | |
| } | |
| .aj-bubble-md p { | |
| margin: 0 0 0.65em; | |
| } | |
| .aj-bubble-md p:last-child { | |
| margin-bottom: 0; | |
| } | |
| .aj-bubble-md h1, | |
| .aj-bubble-md h2, | |
| .aj-bubble-md h3, | |
| .aj-bubble-md h4 { | |
| margin: 0.85em 0 0.4em; | |
| line-height: 1.25; | |
| font-weight: 600; | |
| } | |
| .aj-bubble-md h1:first-child, | |
| .aj-bubble-md h2:first-child, | |
| .aj-bubble-md h3:first-child, | |
| .aj-bubble-md h4:first-child { | |
| margin-top: 0; | |
| } | |
| .aj-bubble-md h1 { | |
| font-size: 1.2em; | |
| } | |
| .aj-bubble-md h2 { | |
| font-size: 1.1em; | |
| } | |
| .aj-bubble-md h3, | |
| .aj-bubble-md h4 { | |
| font-size: 1.05em; | |
| } | |
| .aj-bubble-md ul, | |
| .aj-bubble-md ol { | |
| margin: 0 0 0.65em; | |
| padding-left: 1.35em; | |
| } | |
| .aj-bubble-md li { | |
| margin: 0.2em 0; | |
| } | |
| .aj-bubble-md li > p { | |
| margin: 0.25em 0; | |
| } | |
| .aj-bubble-md blockquote { | |
| margin: 0.5em 0; | |
| padding: 0 0 0 0.75em; | |
| border-left: 3px solid var(--lc-accent); | |
| color: var(--lc-muted); | |
| } | |
| .aj-bubble-md hr { | |
| margin: 0.85em 0; | |
| border: none; | |
| border-top: 1px solid var(--lc-border); | |
| } | |
| .aj-bubble-md pre { | |
| margin: 0.5em 0; | |
| padding: 10px 12px; | |
| border-radius: 10px; | |
| background: rgba(15, 23, 42, 0.06); | |
| overflow-x: auto; | |
| font-size: 13px; | |
| } | |
| .aj-bubble-md code { | |
| font-family: ui-monospace, 'Cascadia Code', 'Segoe UI Mono', monospace; | |
| font-size: 0.92em; | |
| padding: 0.1em 0.35em; | |
| border-radius: 4px; | |
| background: rgba(15, 23, 42, 0.07); | |
| } | |
| .aj-bubble-md pre code { | |
| padding: 0; | |
| background: none; | |
| font-size: inherit; | |
| } | |
| .aj-bubble-md a { | |
| color: var(--lc-accent); | |
| text-decoration: underline; | |
| text-underline-offset: 2px; | |
| } | |
| .aj-bubble-md table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| margin: 0.5em 0; | |
| font-size: 13px; | |
| } | |
| .aj-bubble-md th, | |
| .aj-bubble-md td { | |
| border: 1px solid var(--lc-border); | |
| padding: 6px 8px; | |
| text-align: left; | |
| } | |
| .aj-bubble-md th { | |
| background: rgba(15, 23, 42, 0.04); | |
| } | |
| .aj-typing { | |
| display: inline-block; | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: var(--lc-accent); | |
| animation: aj-pulse 1s ease-in-out infinite; | |
| } | |
| @keyframes aj-pulse { | |
| 0%, | |
| 100% { | |
| opacity: 0.35; | |
| } | |
| 50% { | |
| opacity: 1; | |
| } | |
| } | |
| /* Context meter bar — sticks at top when scrolling */ | |
| .aj-context-bar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 49; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 6px 10px; | |
| border-bottom: 1px solid var(--lc-border); | |
| background: var(--lc-sidebar); | |
| } | |
| .aj-context-meter { | |
| flex: 1; | |
| height: 4px; | |
| border-radius: 2px; | |
| background: var(--lc-border); | |
| overflow: hidden; | |
| max-width: 180px; | |
| } | |
| .aj-context-fill { | |
| height: 100%; | |
| border-radius: 2px; | |
| background: var(--lc-accent); | |
| transition: width 0.3s; | |
| } | |
| .aj-context-fill[data-hot] { | |
| background: #ef4444; | |
| } | |
| .aj-context-label { | |
| font-size: 11px; | |
| color: var(--lc-muted); | |
| white-space: nowrap; | |
| } | |
| /* Summary banner */ | |
| .aj-summary-banner { | |
| margin: 16px auto; | |
| max-width: 560px; | |
| padding: 14px 18px; | |
| border-radius: 12px; | |
| border: 1px solid var(--lc-accent); | |
| background: var(--lc-hover); | |
| } | |
| .aj-summary-banner p { | |
| margin: 0 0 6px; | |
| font-size: 13px; | |
| line-height: 1.5; | |
| } | |
| .aj-summary-banner p:last-child { | |
| margin-bottom: 0; | |
| } | |
| .aj-summary-text { | |
| color: var(--lc-muted); | |
| font-size: 12px ; | |
| } | |
| /* Context overflow banner */ | |
| .aj-overflow-banner { | |
| display: flex; | |
| gap: 12px; | |
| padding: 16px 10px; | |
| background: #fef2f2; | |
| border-top: 1px solid #fca5a5; | |
| } | |
| .aj-overflow-icon { | |
| flex-shrink: 0; | |
| color: #dc2626; | |
| margin-top: 2px; | |
| } | |
| .aj-overflow-body { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .aj-overflow-title { | |
| margin: 0 0 4px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| color: #991b1b; | |
| } | |
| .aj-overflow-detail { | |
| margin: 0 0 12px; | |
| font-size: 13px; | |
| color: #7f1d1d; | |
| line-height: 1.5; | |
| } | |
| .aj-overflow-actions { | |
| display: flex; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| } | |
| .aj-overflow-actions .aj-btn { | |
| font-size: 12px; | |
| padding: 6px 12px; | |
| } | |
| .aj-composer { | |
| z-index: 40; | |
| padding: 6px 10px; | |
| border-top: 1px solid var(--lc-border); | |
| background: var(--lc-sidebar); | |
| flex-shrink: 0; | |
| flex-grow: 0; | |
| } | |
| .aj-voice-error-banner { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 12px; | |
| padding: 8px 12px; | |
| font-size: 13px; | |
| line-height: 1.45; | |
| color: #7f1d1d; | |
| background: #fef2f2; | |
| border-bottom: 1px solid #fecaca; | |
| } | |
| .aj-voice-error-banner span { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .aj-voice-error-dismiss { | |
| flex-shrink: 0; | |
| border: none; | |
| background: transparent; | |
| color: #991b1b; | |
| font-size: 20px; | |
| line-height: 1; | |
| cursor: pointer; | |
| padding: 0 4px; | |
| } | |
| .aj-voice-error-dismiss:hover { | |
| color: #450a0a; | |
| } | |
| .aj-composer-inner { | |
| display: flex; | |
| gap: 6px; | |
| align-items: flex-end; | |
| width: 100%; | |
| max-width: none; | |
| box-sizing: border-box; | |
| } | |
| .aj-composer-field { | |
| flex: 1; | |
| min-width: 0; | |
| display: flex; | |
| flex-direction: column; | |
| align-self: stretch; | |
| } | |
| .aj-composer-field--listening textarea { | |
| background: #bbf7d0 ; | |
| border-color: #22c55e ; | |
| } | |
| .aj-composer textarea { | |
| width: 100%; | |
| min-width: 0; | |
| flex: 1 1 auto; | |
| align-self: stretch; | |
| box-sizing: border-box; | |
| min-height: 34px; | |
| max-height: 50vh; | |
| padding: 6px 10px; | |
| border-radius: 10px; | |
| border: 1px solid #94a3b8; | |
| background: var(--lc-input); | |
| color: var(--lc-text); | |
| font-size: 14px; | |
| resize: none; | |
| line-height: 1.45; | |
| overflow-y: hidden; | |
| } | |
| .aj-composer textarea:focus { | |
| outline: none; | |
| border-color: var(--lc-accent); | |
| box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15); | |
| } | |
| .aj-composer textarea::placeholder { | |
| color: var(--lc-placeholder); | |
| } | |
| .aj-composer .aj-btn { | |
| width: 34px; | |
| height: 34px; | |
| padding: 0; | |
| justify-content: center; | |
| flex-shrink: 0; | |
| } | |
| .aj-share-wrap { | |
| position: relative; | |
| flex-shrink: 0; | |
| } | |
| .aj-share-panel { | |
| position: absolute; | |
| right: 0; | |
| bottom: calc(100% + 8px); | |
| z-index: 200; | |
| min-width: 200px; | |
| max-width: min(280px, calc(100vw - 40px)); | |
| padding: 8px; | |
| border-radius: 12px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-elevated); | |
| box-shadow: var(--lc-shadow); | |
| } | |
| .aj-share-item { | |
| display: block; | |
| width: 100%; | |
| margin: 0; | |
| padding: 10px 12px; | |
| border: none; | |
| border-radius: 8px; | |
| background: transparent; | |
| color: var(--lc-text); | |
| font-size: 14px; | |
| font-weight: 500; | |
| text-align: left; | |
| cursor: pointer; | |
| } | |
| .aj-share-item:hover { | |
| background: var(--lc-hover); | |
| } | |
| .aj-share-hint { | |
| margin: 6px 4px 2px; | |
| font-size: 11px; | |
| line-height: 1.4; | |
| color: var(--lc-muted); | |
| } | |
| /* Per-message TTS + search (assistant) — popover right or below bubble */ | |
| .aj-msg-actions { | |
| width: 100%; | |
| margin-top: 8px; | |
| } | |
| .aj-msg-search-wrap { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: 6px; | |
| } | |
| .aj-spin { | |
| animation: aj-spin 0.9s linear infinite; | |
| } | |
| @keyframes aj-spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .aj-msg-search-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 32px; | |
| height: 32px; | |
| padding: 0; | |
| border-radius: 8px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-input); | |
| color: var(--lc-muted); | |
| cursor: pointer; | |
| } | |
| .aj-msg-search-btn:hover { | |
| border-color: var(--lc-accent); | |
| color: var(--lc-accent); | |
| background: var(--lc-hover); | |
| } | |
| .aj-tts-speed-btn { | |
| width: auto; | |
| padding: 0 6px; | |
| } | |
| .aj-tts-speed-label { | |
| font-size: 11px; | |
| font-weight: 700; | |
| line-height: 1; | |
| } | |
| [data-tip] { | |
| position: relative; | |
| } | |
| [data-tip]::after { | |
| content: attr(data-tip); | |
| position: absolute; | |
| bottom: calc(100% + 6px); | |
| left: 50%; | |
| transform: translateX(-50%); | |
| white-space: nowrap; | |
| font-size: 13px; | |
| padding: 5px 10px; | |
| border-radius: 6px; | |
| background: var(--lc-text, #1e293b); | |
| color: #fff; | |
| pointer-events: none; | |
| opacity: 0; | |
| transition: opacity 0.15s ease; | |
| z-index: 300; | |
| } | |
| [data-tip]:hover::after { | |
| opacity: 1; | |
| } | |
| /* Header: tooltips below the controls (default is above and clips off the top of the viewport). | |
| Right-side actions: anchor to the right so the label extends left into view. */ | |
| .aj-header [data-tip]::after { | |
| bottom: auto; | |
| top: calc(100% + 6px); | |
| left: auto; | |
| right: 0; | |
| transform: none; | |
| } | |
| .aj-header .aj-header-brand-link[data-tip]::after { | |
| left: 0; | |
| right: auto; | |
| } | |
| /* position: fixed + top/left/width set inline (escapes .aj-messages overflow) */ | |
| .aj-msg-search-popover { | |
| position: fixed; | |
| visibility: hidden; | |
| z-index: 250; | |
| box-sizing: border-box; | |
| min-width: 280px; | |
| padding: 12px 14px; | |
| border-radius: 12px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-sidebar); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12); | |
| max-height: min(70vh, 520px); | |
| overflow-y: auto; | |
| } | |
| .aj-msg-search-popover-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 10px; | |
| font-size: 13px; | |
| font-weight: 600; | |
| color: var(--lc-text); | |
| } | |
| .aj-msg-search-close { | |
| border: none; | |
| background: none; | |
| cursor: pointer; | |
| font-size: 18px; | |
| line-height: 1; | |
| color: var(--lc-muted); | |
| padding: 0 4px; | |
| } | |
| .aj-msg-search-close:hover { | |
| color: var(--lc-text); | |
| } | |
| .aj-msg-search-loading { | |
| font-size: 12px; | |
| color: var(--lc-muted); | |
| } | |
| .aj-msg-search-input { | |
| width: 100%; | |
| box-sizing: border-box; | |
| margin-bottom: 10px; | |
| padding: 8px 10px; | |
| border-radius: 8px; | |
| border: 1px solid var(--lc-border); | |
| background: var(--lc-input); | |
| color: var(--lc-text); | |
| font-size: 12px; | |
| line-height: 1.45; | |
| resize: vertical; | |
| min-height: 64px; | |
| font-family: inherit; | |
| } | |
| .aj-msg-search-input:focus { | |
| outline: none; | |
| border-color: var(--lc-accent); | |
| box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.12); | |
| } | |
| .aj-msg-search-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .aj-msg-search-actions .aj-btn { | |
| width: auto; | |
| height: auto; | |
| padding: 6px 12px; | |
| font-size: 12px; | |
| font-weight: 600; | |
| } | |