Spaces:
Running
Running
| /* Transparent root: on /job-launcher the page background is the surface (no nested card). */ | |
| .root { | |
| font-family: var(--font-body, system-ui, sans-serif); | |
| background: transparent; | |
| color: inherit; | |
| padding: 0 0 0.5rem; | |
| max-width: 960px; | |
| margin: 0 auto; | |
| } | |
| .root * { | |
| box-sizing: border-box; | |
| } | |
| .title { | |
| font-size: clamp(1.25rem, 2vw, 1.5rem); | |
| font-weight: 650; | |
| letter-spacing: -0.03em; | |
| margin-bottom: 1.5rem; | |
| color: var(--text, inherit); | |
| } | |
| .section { | |
| margin-bottom: 1.5rem; | |
| } | |
| /* Distinct raised surface (site targeting, search strings, preview) */ | |
| .surfacePanel { | |
| padding: 18px 20px; | |
| border-radius: 12px; | |
| background: var(--surface-card, #fff); | |
| border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.08)); | |
| box-shadow: var(--shadow-elevated, var(--shadow-sm)); | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| .surfacePanel { | |
| background: var(--surface-card, #111); | |
| border-color: var(--border-subtle, rgba(255, 255, 255, 0.06)); | |
| } | |
| } | |
| .hint { | |
| font-size: 11px; | |
| color: #999; | |
| margin-bottom: 6px; | |
| } | |
| .tag { | |
| font-size: var(--job-launcher-font-tag, 13px); | |
| padding: 4px 10px; | |
| border-radius: var(--job-launcher-radius-pill, 8px); | |
| border: 0.5px solid var(--job-launcher-chip-off-border, #ddd); | |
| cursor: pointer; | |
| background: var(--job-launcher-chip-off-bg, #fff); | |
| color: var(--text, #1a1a1a); | |
| transition: | |
| background var(--motion-xs, 0.18s) var(--ease-soft, ease), | |
| border-color var(--motion-xs, 0.18s) var(--ease-soft, ease); | |
| display: inline-block; | |
| } | |
| .tag:hover { | |
| background: var(--surface-muted, #f5f5f5); | |
| } | |
| .tagOn { | |
| background: var(--job-launcher-chip-on-bg, #e6f1fb); | |
| color: var(--job-launcher-chip-on-fg, #185fa5); | |
| border-color: var(--job-launcher-chip-on-border, #378add); | |
| } | |
| .tagList { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: var(--job-launcher-space-tight, 6px); | |
| } | |
| /* Inline nudge: niche job boards — uses app/globals.css tokens */ | |
| .jobBoardsNudge { | |
| font-size: var(--job-launcher-font-meta, 12px); | |
| line-height: 1.45; | |
| color: var(--job-launcher-nudge-fg, #666); | |
| margin: var(--job-launcher-space-tight, 6px) 0 | |
| var(--job-launcher-space-block, 10px); | |
| padding: 6px 0 6px 10px; | |
| border-left: 2px solid var(--job-launcher-nudge-accent, #378add); | |
| } | |
| .jobBoardsRow { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px 12px; | |
| margin: 2px 0 6px; | |
| } | |
| .jobBoardsRowEnd { | |
| display: inline-flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 10px 14px; | |
| margin-left: auto; | |
| } | |
| .jobBoardsRowLabel { | |
| font-size: var(--job-launcher-font-meta, 11px); | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| color: var(--muted, #888); | |
| } | |
| .jobBoardsCount { | |
| font-size: var(--job-launcher-font-meta, 11px); | |
| color: var(--muted, #888); | |
| } | |
| .jobBoardsNotice { | |
| font-size: var(--job-launcher-font-meta, 11px); | |
| color: var(--muted, #888); | |
| margin: 4px 0 0; | |
| line-height: 1.35; | |
| } | |
| .jobBoardsEmpty { | |
| font-size: var(--job-launcher-font-meta, 12px); | |
| color: var(--muted, #999); | |
| margin: 0 0 6px; | |
| line-height: 1.4; | |
| } | |
| .stats { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 10px; | |
| margin: 1rem 0; | |
| } | |
| .stat { | |
| background: var(--surface-muted, #f5f5f5); | |
| border-radius: var(--radius-lg, 12px); | |
| border: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.06)); | |
| padding: 0.85rem 1.1rem; | |
| box-shadow: var(--shadow-xs, none); | |
| } | |
| .statN { | |
| font-size: 22px; | |
| font-weight: 500; | |
| } | |
| .statL { | |
| font-size: 12px; | |
| color: #888; | |
| margin-top: 2px; | |
| } | |
| .controls { | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| margin: 1rem 0; | |
| } | |
| .btnMain { | |
| background: transparent; | |
| border: 1px solid var(--border-subtle, #ccc); | |
| border-radius: var(--radius-md, 8px); | |
| padding: 9px 16px; | |
| font-size: 14px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| font-family: inherit; | |
| color: var(--text, #1a1a1a); | |
| box-shadow: none; | |
| transition: | |
| background var(--motion-xs, 0.18s) var(--ease-soft, ease), | |
| border-color var(--motion-xs, 0.18s) var(--ease-soft, ease), | |
| box-shadow var(--motion-xs, 0.18s) var(--ease-soft, ease), | |
| color var(--motion-xs, 0.18s) ease; | |
| } | |
| .btnMain:hover:not(:disabled) { | |
| background: var(--surface-muted, #f5f5f5); | |
| border-color: rgba(0, 0, 0, 0.12); | |
| } | |
| .btnMain:disabled { | |
| opacity: 0.4; | |
| cursor: not-allowed; | |
| } | |
| .btnGo { | |
| background: linear-gradient(165deg, #6aa8ff 0%, #4f8fff 40%, #3b7dff 100%); | |
| color: #fff; | |
| border: 1px solid rgba(255, 255, 255, 0.14); | |
| font-weight: 600; | |
| box-shadow: | |
| 0 1px 2px rgba(0, 0, 0, 0.2), | |
| 0 0 0 1px rgba(91, 157, 255, 0.28); | |
| } | |
| .btnGo:hover:not(:disabled) { | |
| background: linear-gradient(165deg, #7cb4ff 0%, #5b9dff 42%, #4f8fff 100%); | |
| box-shadow: | |
| 0 2px 14px rgba(91, 157, 255, 0.38), | |
| 0 0 0 1px rgba(255, 255, 255, 0.16); | |
| } | |
| .progressBar { | |
| height: 6px; | |
| background: #eee; | |
| border-radius: 3px; | |
| overflow: hidden; | |
| margin: 6px 0; | |
| } | |
| .progressFill { | |
| height: 100%; | |
| background: linear-gradient(90deg, var(--accent, #5b9dff), #7ec8ff); | |
| border-radius: 3px; | |
| /* Smooth fill between polls (poll cadence is ~1.6s) so the bar glides instead of jumping. */ | |
| transition: width 1.6s ease-out; | |
| } | |
| .queueInfo { | |
| font-size: 13px; | |
| color: #888; | |
| margin-top: 4px; | |
| } | |
| .batchRecentBlock { | |
| margin-top: 10px; | |
| padding-top: 8px; | |
| border-top: 0.5px solid #e8e8e8; | |
| } | |
| .batchRecentTitle { | |
| font-size: 12px; | |
| font-weight: 500; | |
| color: #888; | |
| margin-bottom: 6px; | |
| } | |
| .batchRecentList { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .batchRecentRow { | |
| font-size: 13px; | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: baseline; | |
| gap: 6px 10px; | |
| } | |
| .batchRecentRow a { | |
| color: #185fa5; | |
| text-decoration: underline; | |
| font-weight: 500; | |
| } | |
| .batchRecentRow a:hover { | |
| color: #0d4a8a; | |
| } | |
| .batchRecentMeta { | |
| font-size: 12px; | |
| color: #888; | |
| } | |
| .select { | |
| font-family: inherit; | |
| font-size: 13px; | |
| padding: 6px 10px; | |
| border: 0.5px solid #ccc; | |
| border-radius: 8px; | |
| background: #fff; | |
| color: #1a1a1a; | |
| } | |
| .customInput { | |
| font-family: ui-monospace, monospace; | |
| font-size: 12px; | |
| padding: 8px 10px; | |
| border: 0.5px solid #ccc; | |
| border-radius: 8px; | |
| background: #fff; | |
| color: #1a1a1a; | |
| width: 100%; | |
| margin-top: 6px; | |
| outline: none; | |
| } | |
| .customInputRow { | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| margin-top: 6px; | |
| } | |
| .customInputRow input { | |
| flex: 1; | |
| } | |
| .tagRemove { | |
| margin-left: 6px; | |
| font-weight: 400; | |
| cursor: pointer; | |
| opacity: 0.6; | |
| } | |
| .tagRemove:hover { | |
| opacity: 1; | |
| } | |
| .clearAllBtn { | |
| background: none; | |
| border: none; | |
| text-decoration: underline; | |
| color: #888; | |
| cursor: pointer; | |
| font-size: 11px; | |
| margin-left: auto; | |
| font-family: inherit; | |
| padding: 0; | |
| } | |
| .clearAllBtn:hover { | |
| color: #555; | |
| } | |
| .customInput::placeholder { | |
| color: #bbb; | |
| } | |
| .negPresetPreview { | |
| font-size: 11px; | |
| color: #666; | |
| line-height: 1.35; | |
| margin-top: 6px; | |
| margin-bottom: 4px; | |
| word-break: break-word; | |
| } | |
| .previewTa { | |
| font-family: var(--font-mono, ui-monospace, monospace); | |
| font-size: 12px; | |
| padding: 12px 14px; | |
| border: 1px solid var(--border-subtle, #ccc); | |
| border-radius: var(--radius-md, 8px); | |
| background: var(--surface-input, #f8f9fb); | |
| color: var(--text, #1a1a1a); | |
| width: 100%; | |
| margin-top: 6px; | |
| outline: none; | |
| min-height: 140px; | |
| resize: vertical; | |
| line-height: 1.5; | |
| box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); | |
| background-image: linear-gradient( | |
| rgba(37, 99, 235, 0.03) 0%, | |
| rgba(37, 99, 235, 0.03) 100% | |
| ); | |
| tab-size: 2; | |
| } | |
| .divider { | |
| height: 0.5px; | |
| background: #eee; | |
| margin: 1.25rem 0; | |
| } | |
| .row2 { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 10px; | |
| align-items: center; | |
| } | |
| .chk { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 13px; | |
| cursor: pointer; | |
| } | |
| /* Phrase style: vertical stack so long checkbox labels align and wrap cleanly */ | |
| .phraseStyleStack { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| align-items: stretch; | |
| width: 100%; | |
| } | |
| .phraseStyleStack .select { | |
| align-self: flex-start; | |
| width: 100%; | |
| max-width: min(100%, 300px); | |
| } | |
| /* Grid keeps checkbox + caption aligned; flex+flex:1 on the text was splitting badly in some layouts */ | |
| .chkMultiline { | |
| display: grid; | |
| grid-template-columns: auto minmax(0, 1fr); | |
| column-gap: 10px; | |
| align-items: start; | |
| font-size: 13px; | |
| cursor: pointer; | |
| line-height: 1.45; | |
| margin: 0; | |
| width: 100%; | |
| max-width: 100%; | |
| } | |
| .chkMultiline input[type="checkbox"] { | |
| margin: 0.2em 0 0; | |
| justify-self: start; | |
| } | |
| .chkLabelText { | |
| min-width: 0; | |
| } | |
| .previewToolbar { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| align-items: center; | |
| margin-bottom: 8px; | |
| } | |
| .seg { | |
| display: inline-flex; | |
| border: 0.5px solid #ccc; | |
| border-radius: 8px; | |
| overflow: hidden; | |
| } | |
| .seg button { | |
| border: none; | |
| background: #fff; | |
| padding: 6px 12px; | |
| font-size: 12px; | |
| cursor: pointer; | |
| font-family: inherit; | |
| color: #1a1a1a; | |
| } | |
| /* `aria-pressed` beats global `button` rules + matches module scope reliably. */ | |
| .seg button[aria-pressed="true"] { | |
| background: #e6f1fb; | |
| color: #185fa5; | |
| font-weight: 600; | |
| } | |
| .headlessCard { | |
| border: 0.5px solid #ddd; | |
| border-radius: 8px; | |
| padding: 8px 10px; | |
| background: transparent; | |
| } | |
| .headlessMeta { | |
| font-size: 12px; | |
| color: #888; | |
| margin-bottom: 4px; | |
| } | |
| .headlessTitle { | |
| font-size: 13px; | |
| font-weight: 500; | |
| line-height: 1.35; | |
| } | |
| .headlessUrl { | |
| font-size: 12px; | |
| color: #666; | |
| word-break: break-all; | |
| margin-top: 2px; | |
| } | |
| .headlessGhost { | |
| font-size: 11px; | |
| font-style: italic; | |
| color: #999; | |
| margin-top: 4px; | |
| letter-spacing: 0.01em; | |
| } | |
| .headlessErr { | |
| font-size: 12px; | |
| color: #b33232; | |
| margin-top: 4px; | |
| } | |
| .headlessScoreLine { | |
| font-size: 12px; | |
| color: #666; | |
| margin-top: 4px; | |
| } | |
| .headlessActions { | |
| display: flex; | |
| gap: 8px; | |
| margin-top: 6px; | |
| } | |
| .headlessHelp { | |
| margin-top: 8px; | |
| font-size: 12px; | |
| } | |
| .headlessHelpSummary { | |
| cursor: pointer; | |
| list-style: none; | |
| color: #185fa5; | |
| font-weight: 500; | |
| user-select: none; | |
| } | |
| .headlessHelpSummary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .headlessHelpIcon { | |
| display: inline-block; | |
| font-size: 13px; | |
| line-height: 1; | |
| vertical-align: -1px; | |
| } | |
| .headlessHelpPanel { | |
| margin-top: 8px; | |
| padding: 8px 10px; | |
| border-radius: 8px; | |
| background: #f0f4f8; | |
| border: 0.5px solid #d0d8e0; | |
| color: #333; | |
| line-height: 1.45; | |
| } | |
| .headlessHelpPanel p { | |
| margin: 0 0 6px; | |
| } | |
| .headlessHelpPanel p:last-child { | |
| margin-bottom: 0; | |
| } | |
| .openLink { | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| .batchApplyToolbar { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 10px 14px; | |
| } | |
| .batchApplySticky { | |
| position: sticky; | |
| top: 0; | |
| z-index: 4; | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 8px 14px; | |
| padding: 10px 12px; | |
| margin-bottom: 12px; | |
| border-radius: 8px; | |
| border: 0.5px solid var(--hairline, #ddd); | |
| font-size: 13px; | |
| line-height: 1.4; | |
| background: var(--surface-muted, #f5f5f5); | |
| } | |
| .batchApplyStickyRunning { | |
| border-color: #378add88; | |
| background: rgba(55, 138, 221, 0.08); | |
| } | |
| .batchApplyStickyInterrupted { | |
| border-color: #ba751788; | |
| background: rgba(186, 117, 23, 0.1); | |
| } | |
| .batchApplyStickyCancelled { | |
| border-color: #e24b4a55; | |
| background: rgba(226, 75, 74, 0.08); | |
| } | |
| .batchApplyStickyCompleted { | |
| border-color: #1d9e7555; | |
| background: rgba(29, 158, 117, 0.08); | |
| } | |
| .batchApplyStickyLead { | |
| flex: 1 1 220px; | |
| min-width: 0; | |
| } | |
| .batchApplyStickyMeta { | |
| font-size: 12px; | |
| color: var(--muted, #888); | |
| white-space: nowrap; | |
| } | |
| .batchApplyCancel { | |
| margin-left: auto; | |
| padding: 4px 10px; | |
| font-size: 12px; | |
| font-family: inherit; | |
| cursor: pointer; | |
| border-radius: 6px; | |
| border: 0.5px solid var(--hairline, #ccc); | |
| background: var(--surface, #fff); | |
| color: inherit; | |
| } | |
| .batchApplyCancel:hover { | |
| background: var(--surface-muted, #eee); | |
| } | |
| .batchApplyPartialFail { | |
| padding: 8px 10px; | |
| border-radius: 8px; | |
| border: 0.5px dashed #ba751788; | |
| background: rgba(186, 117, 23, 0.06); | |
| } | |
| .batchApplyRetry { | |
| padding: 4px 10px; | |
| font-size: 12px; | |
| font-family: inherit; | |
| cursor: pointer; | |
| border-radius: 6px; | |
| border: 0.5px solid var(--hairline, #ccc); | |
| background: transparent; | |
| color: var(--muted, #888); | |
| } | |
| .batchApplyRetry:hover:not(:disabled) { | |
| border-color: #378add; | |
| color: #378add; | |
| } | |
| .batchApplyCardActive { | |
| animation: batchApplyPulse 1.2s ease-in-out infinite; | |
| border-color: #378add ; | |
| box-shadow: 0 0 0 1px rgba(55, 138, 221, 0.35); | |
| } | |
| @keyframes batchApplyPulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 1px rgba(55, 138, 221, 0.25); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 4px rgba(55, 138, 221, 0.12); | |
| } | |
| } | |
| .doneMsg { | |
| color: #2a7a2a; | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| .batchApplySticky { | |
| background: #1a1a1a; | |
| border-color: #444; | |
| } | |
| .batchApplyStickyRunning { | |
| background: rgba(55, 138, 221, 0.12); | |
| } | |
| .batchApplyStickyInterrupted { | |
| background: rgba(186, 117, 23, 0.12); | |
| } | |
| .batchApplyStickyCancelled { | |
| background: rgba(226, 75, 74, 0.1); | |
| } | |
| .batchApplyStickyCompleted { | |
| background: rgba(29, 158, 117, 0.1); | |
| } | |
| .batchApplyCancel { | |
| background: #252525; | |
| border-color: #555; | |
| } | |
| .headlessCard { | |
| border-color: #444; | |
| } | |
| .headlessHelpSummary { | |
| color: #7ab8f5; | |
| } | |
| .headlessHelpPanel { | |
| background: #252525; | |
| border-color: #444; | |
| color: #ccc; | |
| } | |
| .tag { | |
| background: var(--job-launcher-chip-off-bg, #2a2a2a); | |
| color: var(--text, #f0f0f0); | |
| border-color: var(--job-launcher-chip-off-border, #444); | |
| } | |
| .tag:hover { | |
| background: var(--surface-muted, #333); | |
| } | |
| .tagOn { | |
| background: var(--job-launcher-chip-on-bg, #1a3a5c); | |
| color: var(--job-launcher-chip-on-fg, #7ab8f5); | |
| border-color: var(--job-launcher-chip-on-border, #378add); | |
| } | |
| .stat { | |
| background: var(--surface-raised, #1a1a1a); | |
| border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.06)); | |
| box-shadow: var(--shadow-xs); | |
| } | |
| .btnMain { | |
| background: transparent; | |
| border-color: var(--border-subtle, rgba(255, 255, 255, 0.08)); | |
| color: var(--text, #ececee); | |
| } | |
| .btnMain:hover:not(:disabled) { | |
| background: rgba(255, 255, 255, 0.05); | |
| border-color: rgba(255, 255, 255, 0.12); | |
| } | |
| .btnGo { | |
| background: linear-gradient(165deg, #6aa8ff 0%, #4f8fff 40%, #3b7dff 100%); | |
| color: #fff; | |
| border-color: rgba(255, 255, 255, 0.14); | |
| box-shadow: | |
| 0 1px 3px rgba(0, 0, 0, 0.45), | |
| 0 0 0 1px rgba(91, 157, 255, 0.35); | |
| } | |
| .btnGo:hover:not(:disabled) { | |
| background: linear-gradient(165deg, #7cb4ff 0%, #5b9dff 42%, #4f8fff 100%); | |
| box-shadow: | |
| 0 2px 16px rgba(91, 157, 255, 0.42), | |
| 0 0 0 1px rgba(255, 255, 255, 0.12); | |
| } | |
| .select, | |
| .customInput, | |
| .previewTa { | |
| background: var(--surface-input, #0c0c0e); | |
| color: var(--text, #ececee); | |
| border-color: var(--border-subtle, rgba(255, 255, 255, 0.08)); | |
| box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.45); | |
| } | |
| .previewTa { | |
| background-image: linear-gradient(rgba(91, 157, 255, 0.04) 0%, rgba(91, 157, 255, 0.04) 100%), | |
| repeating-linear-gradient( | |
| transparent 0, | |
| transparent calc(1.5em - 1px), | |
| rgba(255, 255, 255, 0.04) calc(1.5em - 1px), | |
| rgba(255, 255, 255, 0.04) 1.5em | |
| ); | |
| } | |
| .progressBar { | |
| background: #333; | |
| } | |
| .divider { | |
| background: #333; | |
| } | |
| .negPresetPreview { | |
| color: #9a9a9a; | |
| } | |
| .sectionTitle, | |
| .hint, | |
| .queueInfo, | |
| .statL { | |
| color: #aaa; | |
| } | |
| .batchRecentBlock { | |
| border-top-color: #444; | |
| } | |
| .batchRecentTitle { | |
| color: #aaa; | |
| } | |
| .batchRecentRow a { | |
| color: #7ab8f5; | |
| } | |
| .batchRecentRow a:hover { | |
| color: #a8d4ff; | |
| } | |
| .batchRecentMeta { | |
| color: #9a9a9a; | |
| } | |
| .clearAllBtn { | |
| color: #9a9a9a; | |
| } | |
| .clearAllBtn:hover { | |
| color: #ccc; | |
| } | |
| .seg { | |
| border-color: #555; | |
| } | |
| .seg button { | |
| background: #2a2a2a; | |
| color: #c8c8c8; | |
| } | |
| .seg button[aria-pressed="true"] { | |
| background: #1a3a5c; | |
| color: #7ab8f5; | |
| font-weight: 600; | |
| box-shadow: inset 0 0 0 1px rgba(55, 138, 221, 0.45); | |
| } | |
| } | |
| /* First-time UX: subtle pulse (CSS only) */ | |
| @keyframes ftuxPulseGlow { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(55, 138, 221, 0.35); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 6px rgba(55, 138, 221, 0.12); | |
| } | |
| } | |
| .ftuxPulse { | |
| border-radius: 6px; | |
| animation: ftuxPulseGlow 2s ease-in-out infinite; | |
| } | |
| .ftuxTip { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 8px; | |
| font-size: 12px; | |
| line-height: 1.45; | |
| color: var(--job-launcher-nudge-fg, #666); | |
| margin: 0 0 8px; | |
| padding: 8px 10px; | |
| border-radius: 6px; | |
| border: 1px solid var(--job-launcher-chip-on-border, #378add44); | |
| background: var(--surface-muted, #f5f8fb); | |
| } | |
| .ftuxTipDismiss { | |
| flex-shrink: 0; | |
| width: 24px; | |
| height: 24px; | |
| border: none; | |
| border-radius: 4px; | |
| background: transparent; | |
| color: var(--muted, #666); | |
| font-size: 18px; | |
| line-height: 1; | |
| cursor: pointer; | |
| } | |
| .ftuxTipDismiss:hover { | |
| background: var(--surface, #fff); | |
| color: var(--text, #1a1a1a); | |
| } | |
| /* Smart Search: footer shown above the partial result list while more are streaming in. */ | |
| .partialFooter { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| align-self: flex-start; | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| background: var(--surface-muted, #f5f8fb); | |
| border: 1px solid var(--job-launcher-chip-on-border, #378add33); | |
| color: var(--muted, #666); | |
| font-size: 12px; | |
| line-height: 1.4; | |
| } | |
| .partialDot { | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: #378add; | |
| animation: partialPulse 1.2s ease-in-out infinite; | |
| } | |
| @keyframes partialPulse { | |
| 0%, | |
| 100% { | |
| transform: scale(1); | |
| opacity: 0.55; | |
| } | |
| 50% { | |
| transform: scale(1.25); | |
| opacity: 1; | |
| } | |
| } | |