/* Job Search keeps the workspace palette, with its own layout and card hierarchy. */
body[data-page="job-search"] { background: #f7f8f5; }
body[data-page="job-search"] .page-content { max-width: 1380px; padding-top: 38px; }
#job-search { --job-ink: #213d30; --job-muted: #748078; --job-line: #e5eae3; --job-green: #286246; }
#job-search [hidden] { display: none !important; }
#job-search button:focus-visible, #job-search a:focus-visible, #job-search summary:focus-visible { outline: 2px solid #377a55; outline-offset: 4px; }
#job-search .job-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
#job-search .kicker { font-size: 10px; letter-spacing: 1.8px; color: #728574; }
#job-search h1 { margin: 9px 0 10px; color: var(--job-ink); font-size: clamp(29px, 3vw, 38px); letter-spacing: -1.6px; line-height: 1.15; font-weight: 800; }
#job-search .job-heading-dot { color: #79a282; }
#job-search .job-page-heading p { margin: 0; font-size: 13px; line-height: 1.7; color: #748078; }
#job-search .job-source-badge { display: inline-flex; align-items: center; gap: 9px; color: #6c7b70; font-size: 11px; white-space: nowrap; }
#job-search .job-source-badge > span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; background: #e8eee8; color: #53735e; font-size: 15px; font-weight: 800; letter-spacing: -1px; }
#job-search .linkedin-extension-setup { margin: 0 0 20px; padding: 20px 24px; border: 1px solid #e4dfc6; border-radius: 14px; background: #fbfaf2; }
#job-search .linkedin-extension-setup strong { color: #615b39; font-size: 13px; }
#job-search .linkedin-extension-setup p { margin: 7px 0 15px; color: #7b765d; font-size: 12px; line-height: 1.7; }
#job-search .job-extension-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#job-search .job-extension-actions .button { margin: 0; font-size: 11px; }
#job-search .aggregator-input-card { margin: 0 0 36px; padding: 0; border: 1px solid #dce5da; border-radius: 17px; background: #fff; box-shadow: 0 4px 20px #223e2b04; overflow: hidden; }
#job-search .job-search-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 23px 25px 0; }
#job-search .job-search-panel-heading > div { display: flex; align-items: center; gap: 10px; }
#job-search .job-panel-icon { display: grid; place-items: center; width: 32px; height: 32px; background: #edf3eb; border-radius: 9px; color: #477752; flex-shrink: 0; }
#job-search .job-panel-icon svg { width: 18px; height: 18px; }
#job-search .job-search-panel-heading h2 { margin: 0; font-size: 14px; font-weight: 800; color: #344e3b; letter-spacing: -.2px; }
#job-search .plan-hint { margin: 0; font-size: 11px; line-height: 1.6; color: #6b796c; font-weight: 500; text-align: right; }
#job-search .plan-hint a { margin-left: 5px; font-weight: 700; color: #487750; text-decoration: none; }
#job-search .aggregator-search-fields { grid-template-columns: minmax(0, 1fr) 155px 130px auto; gap: 14px; padding: 22px 25px 25px; }
#job-search .followup-field { min-width: 0; font-size: 11px; line-height: 1.5; font-weight: 700; color: #66756a; }
#job-search .followup-field input, #job-search .followup-field select { height: 46px; margin-top: 8px; padding: 11px 13px; border: 1px solid #e1e6de; border-radius: 9px; background-color: #fbfcfa; color: #3b5141; font: 13px/1.5 Manrope, 'Helvetica Neue', Arial, sans-serif; transition: border-color .15s, box-shadow .15s; }
#job-search .followup-field input::placeholder { color: #798675; }
#job-search .followup-field input:focus, #job-search .followup-field select:focus { background-color: #fff; border-color: #83a78a; box-shadow: 0 0 0 3px #edf4eb; }
#job-search .job-input-wrap { display: block; position: relative; }
#job-search .job-input-wrap > svg { width: 17px; height: 17px; position: absolute; left: 14px; top: 15px; color: #87988a; pointer-events: none; }
#job-search .job-input-wrap input { padding-left: 40px; }
#job-search .aggregator-input-actions { flex-direction: row; }
#job-search #aggregator-extract { min-height: 46px; padding: 12px 20px; font-size: 12px; gap: 16px; border-radius: 9px; box-shadow: 0 2px 3px #1d493d0c; }
#job-search #aggregator-extract span { font-size: 18px; font-weight: 400; }
#job-search .job-search-panel-footer { display: flex; align-items: center; gap: 16px; min-height: 46px; padding: 12px 25px; background: #f9fbf7; border-top: 1px solid #edf0e9; }
#job-search .job-search-status { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1; }
#job-search .job-status-dot { flex: 0 0 6px; width: 6px; height: 6px; background: #9bb59c; border-radius: 50%; }
#job-search .job-status-dot.is-busy { background: #3e8255; box-shadow: 0 0 0 4px #e2eddf; animation: job-pulse 1.8s ease-in-out infinite; }
#job-search #aggregator-status { margin: 0; color: #7b897b; font-size: 11px; line-height: 1.6; }
#job-search .job-connection { color: #7e8b7d; font-size: 10px; white-space: nowrap; }
#job-search .job-connection.is-connected { color: #4e7d59; }
#job-search .job-text-button { border: 0; background: transparent; padding: 4px 0; color: #528062; font-size: 11px; font-weight: 700; white-space: nowrap; }
#job-search .job-text-button:hover { color: #214c33; text-decoration: underline; }
#job-search .job-library-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 24px; }
#job-search .job-library-heading h2 { margin: 0; color: var(--job-ink); font-size: 21px; letter-spacing: -.6px; }
#job-search .job-library-heading p { margin: 6px 0 0; color: #6d7b6b; font-size: 12px; }
#job-search .job-library-heading .button { gap: 8px; font-size: 11px; padding: 10px 13px; background: transparent; }
#job-search .job-library-heading svg, #job-search .job-view-switch svg { width: 15px; height: 15px; }
#job-search .job-library-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 15px; border-bottom: 1px solid #e3e9e0; }
#job-search .job-view-switch { display: flex; gap: 5px; padding: 4px; border: 1px solid #e5eae2; border-radius: 10px; background: #eef2eb; }
#job-search .job-view-switch button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; border: 0; border-radius: 7px; background: transparent; color: #657461; font-size: 12px; font-weight: 700; white-space: nowrap; }
#job-search .job-view-switch button[aria-pressed="true"] { background: #fff; color: #31573d; box-shadow: 0 1px 4px #233a2a0d; }
#job-search .job-view-switch button:hover { color: #31573d; }
#job-search .job-view-switch button > span { min-width: 18px; padding: 1px 5px; border-radius: 5px; background: #e6ece2; color: #6e826c; font-size: 10px; }
#job-search .job-view-switch button[aria-pressed="true"] > span { background: #edf3e9; color: #437448; }
#job-search .job-sort-label { display: flex; align-items: center; gap: 5px; font-size: 10px; color: #8a9589; white-space: nowrap; }
#job-search .job-sort-label select { max-width: 165px; padding: 7px 3px; border: 0; background: transparent; color: #506552; font: inherit; font-weight: 700; cursor: pointer; }
#job-search .aggregator-filters { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin: 16px 0 0; }
#job-search .aggregator-filters .followup-field { min-width: 0; margin: 0; }
#job-search .aggregator-filters input, #job-search .aggregator-filters select { margin: 0; height: 41px; background-color: #fff; font-size: 12px; }
#job-search .aggregator-filters .job-input-wrap > svg { top: 12px; width: 16px; height: 16px; }
#job-search .job-results-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 43px; }
#job-search #aggregator-result-count { margin: 0; font-size: 11px; color: #6f7b69; }
#job-search .action-list { gap: 16px; }
#job-search .aggregator-job-card { display: block; padding: 0; border: 1px solid #e0e7dd; border-radius: 15px; background: #fff; box-shadow: 0 2px 4px #223d2c02; transition: box-shadow .2s, border-color .2s; overflow: hidden; }
#job-search .aggregator-job-card:hover { border-color: #c7d6c4; box-shadow: 0 5px 20px #223d2c06; }
#job-search .aggregator-job-card.is-flagged { border-color: #bfd1ba; }
#job-search .job-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 24px 25px 22px; }
#job-search .job-card-identity { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
#job-search .job-company-monogram { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; border: 1px solid #e0e8dc; border-radius: 12px; background: #edf3e9; color: #5b7b54; font-size: 16px; font-weight: 800; letter-spacing: -.5px; }
#job-search .job-company-monogram[data-tone="1"] { background: #eff1f7; border-color: #e4e7f0; color: #687796; }
#job-search .job-company-monogram[data-tone="2"] { background: #faf2e7; border-color: #eee5d7; color: #a38654; }
#job-search .job-company-monogram[data-tone="3"] { background: #f5eff3; border-color: #ece2e8; color: #96788e; }
#job-search .job-card-heading { min-width: 0; }
#job-search .job-company-line { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; min-height: 19px; }
#job-search .aggregator-job-company { font-size: 12px; line-height: 1.5; font-weight: 700; color: #697967; overflow-wrap: anywhere; }
#job-search .job-referral-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border-radius: 5px; color: #5b805b; background: #edf4e9; font-size: 9px; font-weight: 700; }
#job-search .job-referral-badge svg { width: 11px; height: 11px; }
#job-search .aggregator-job-card h3 { margin: 5px 0 9px; color: #243f30; font-size: 20px; line-height: 1.4; letter-spacing: -.45px; font-weight: 800; }
#job-search .job-card-meta { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; color: #6d7b6c; font-size: 12px; line-height: 1.6; }
#job-search .job-card-meta > span { display: inline-flex; align-items: center; gap: 5px; }
#job-search .job-icon { display: inline-block; width: 15px; height: 15px; flex-shrink: 0; vertical-align: middle; }
#job-search .job-card-header .aggregator-job-actions { display: block; flex: 0 0 auto; align-self: flex-start; max-width: none; }
#job-search .aggregator-job-links { display: flex; align-items: stretch; gap: 7px; }
#job-search .aggregator-job-links .button.small { min-height: 35px; padding: 8px 12px; font-size: 11px; gap: 8px; border-radius: 8px; }
#job-search .aggregator-job-links a.button::before { width: 13px; height: 13px; }
#job-search .aggregator-job-links .aggregator-flag-button { width: 35px; flex: 0 0 35px; padding: 0; color: #8b9b87; }
#job-search .aggregator-flag-button[aria-pressed="true"] { color: #487442; background: #eef5e7; border-color: #b9cfae; }
#job-search .aggregator-flag-button svg { width: 15px; height: 15px; }
#job-search .job-card-details { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; margin: 0 25px; padding: 19px 0 20px; border-top: 1px solid #f0f2ed; }
#job-search .job-card-details > section { min-width: 0; }
#job-search .job-card-details > section + section { padding-left: 24px; border-left: 1px solid #eef1e9; }
#job-search .aggregator-job-card h4 { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; color: #65765f; font-size: 11px; font-weight: 700; letter-spacing: .35px; }
#job-search .aggregator-job-card h4 .job-icon { width: 13px; height: 13px; color: #8da087; }
#job-search .aggregator-skills { gap: 6px; }
#job-search .aggregator-skills > span { padding: 5px 9px; border: 1px solid #e9ede4; border-radius: 6px; background: #f7f9f4; color: #617253; font-size: 12px; line-height: 1.4; max-width: 100%; overflow-wrap: anywhere; }
#job-search .aggregator-job-card p { font-size: 12px; line-height: 1.75; color: #6d7967; }
#job-search .aggregator-people { gap: 7px; }
#job-search .aggregator-person-chip { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 5px 9px 5px 5px; border: 1px solid #e0e8da; border-radius: 8px; background: #fafcf7; color: #45643e; font-size: 12px; font-weight: 700; line-height: 1.5; }
#job-search a.aggregator-person-chip::before { display: none; }
#job-search .job-person-avatar { display: grid; place-items: center; flex: 0 0 23px; width: 23px; height: 23px; border-radius: 6px; background: #eaf0e2; color: #8ca177; font-size: 8px; font-weight: 800; }
#job-search .job-person-name { overflow-wrap: anywhere; }
#job-search .aggregator-person-chip > .job-icon { width: 11px; height: 11px; color: #9dac92; }
#job-search .aggregator-person-chip:hover, #job-search .aggregator-person-chip[aria-expanded="true"] { background: #edf4e6; border-color: #bed2ad; }
#job-search .aggregator-person-info { margin-top: 9px; padding: 9px 12px; border-radius: 8px; background: #f7faf3; }
#job-search .aggregator-person-info p { color: #638258; font-size: 10px; }
#job-search .job-card-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 14px 25px; border-top: 1px solid #eff2eb; background: #fcfdfa; }
#job-search .aggregator-description { flex: 1; min-width: 0; margin: 0; }
#job-search .aggregator-description summary { display: flex; align-items: center; gap: 7px; list-style: none; padding: 9px 0; color: #5c7351; font-size: 12px; font-weight: 700; }
#job-search .aggregator-description summary::-webkit-details-marker { display: none; }
#job-search .job-description-chevron { margin-left: 3px; width: 12px; height: 12px; transition: transform .15s; }
#job-search .aggregator-description[open] .job-description-chevron { transform: rotate(180deg); }
#job-search .aggregator-description p { max-height: 360px; margin: 10px 0 5px; padding-right: 12px; color: #6e7d66; font-size: 12px; }
#job-search .job-card-footer .aggregator-job-extra { margin: 8px 0; font-size: 10px; }
#job-search .job-referral-action { flex-shrink: 0; display: flex; align-items: flex-end; flex-direction: column; gap: 5px; }
#job-search .job-referral-action .button.small { min-height: 34px; padding: 8px 13px; border-radius: 8px; gap: 8px; font-size: 12px; }
#job-search .job-referral-action .button.primary { background: #edf3e7; border: 1px solid #dde8d5; color: #5c7d4f; box-shadow: none; }
#job-search .job-referral-action .button.primary:hover { background: #e1edda; }
#job-search .job-referral-action a.button::before { display: none; }
#job-search .job-referral-action small { margin: 0; color: #6f7e64; font-size: 9px; }
#job-search .aggregator-referral { margin: 0; padding: 22px 25px; border-top: 1px solid #e7eede; background: #f7faf3; }
#job-search .aggregator-referral .action-reply-label { color: #56764c; font-size: 11px; }
#job-search .aggregator-referral textarea { margin-top: 10px; padding: 14px; border: 1px solid #d8e4cd; border-radius: 9px; font: 12px/1.8 Manrope, Arial, sans-serif; color: #49623f; background: #fff; }
#job-search .aggregator-referral .followup-hint, #job-search .aggregator-referral > p { font-size: 11px; }
#job-search .empty-state { display: flex; align-items: center; flex-direction: column; padding: 52px 24px; border: 1px dashed #d9e2d1; border-radius: 15px; background: #fbfcf8; text-align: center; }
#job-search .job-empty-icon { display: grid; place-items: center; width: 82px; height: 82px; margin-bottom: 20px; border-radius: 24px; background: #eef3e6; color: #8daa79; }
#job-search .job-empty-icon svg { width: 57px; height: 57px; }
#job-search .empty-state strong { color: #4e6c40; font-size: 17px; letter-spacing: -.4px; }
#job-search .empty-state p { max-width: 360px; margin: 10px 0 0; color: #6d7b60; font-size: 12px; line-height: 1.9; }
#job-search .empty-state .button { margin-top: 20px; font-size: 11px; }
#job-search .job-loading { display: grid; gap: 16px; }
#job-search .job-loading > div { height: 175px; border: 1px solid #e2e9dc; border-radius: 15px; background: linear-gradient(110deg, #eff3ea 25%, #fafcf7 45%, #eff3ea 65%); background-size: 220% 100%; animation: job-shimmer 2s linear infinite; }
#job-search .pagination { margin-top: 22px; color: #849179; font-size: 11px; }
#job-search .page-button, #job-search .pagination-actions { font-size: 11px; }
#job-search .aggregator-archive { margin-top: 30px; padding: 21px 23px; border: 1px solid #e1e7db; border-radius: 13px; background: #f2f5ed; }
#job-search .job-archive-heading { display: flex; align-items: center; gap: 13px; }
#job-search .job-archive-icon { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #e0e7d8; border-radius: 10px; background: #f9fbf5; color: #819472; }
#job-search .job-archive-icon svg { width: 19px; height: 19px; }
#job-search .aggregator-archive .kicker { font-size: 8px; letter-spacing: 1.3px; color: #96a087; }
#job-search .aggregator-archive-toggle #aggregator-archive-title { margin-top: 4px; font-size: 13px; color: #647957; }
#job-search .aggregator-archive-arrow { width: 29px; height: 29px; border: 0; background: transparent; color: #8a9c79; font-size: 16px; }
#job-search .aggregator-archive .followup-hint { font-size: 11px; color: #6c7c5e; }
#job-search .aggregator-company-list { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
#job-search .aggregator-company-card { padding: 16px; border-radius: 10px; border-color: #e1e8d8; }
#job-search .aggregator-company-heading { align-items: flex-start; }
#job-search .aggregator-archive .aggregator-company-heading strong { font-size: 12px; color: #647c55; }
#job-search .aggregator-company-state { padding: 4px 7px; font-size: 9px; }
#job-search .aggregator-company-card p { font-size: 10px; color: #6c7d5f; }
#job-search .job-page-note { margin: 22px 0 0; color: #728066; font-size: 10px; text-align: center; line-height: 1.8; }
#job-search .job-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes job-pulse { 50% { opacity: .5; } }
@keyframes job-shimmer { to { background-position: -220% 0; } }
@media (min-width: 1650px) {
  #job-search .aggregator-job-card h3 { font-size: 20px; }
  #job-search .aggregator-skills > span, #job-search .aggregator-person-chip { font-size: 11px; }
}
@media (max-width: 1150px) {
  #job-search .job-source-badge { display: none; }
  #job-search .aggregator-search-fields { grid-template-columns: minmax(0, 1fr) 140px 115px; }
  #job-search .job-keyword-field { grid-column: 1 / -1; }
  #job-search #aggregator-extract { width: 100%; }
  #job-search .aggregator-input-actions { min-width: 115px; }
  #job-search .aggregator-search-fields > .followup-field:nth-child(2) { grid-column: 1; }
}
@media (max-width: 900px) {
  #job-search .job-card-header { flex-wrap: wrap; }
  #job-search .job-card-header .aggregator-job-actions { margin-left: 60px; }
  #job-search .job-card-details { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  #job-search .job-card-details > section + section { padding-left: 0; border-left: 0; }
  #job-search .aggregator-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #job-search .job-filter-keyword { grid-column: 1 / -1; }
  #job-search .job-search-panel-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  #job-search .plan-hint { text-align: left; }
  #job-search .job-library-toolbar { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 760px) {
  body[data-page="job-search"] .sidebar-bottom { display: none; }
  body[data-page="job-search"] .nav { scrollbar-width: none; }
}
@media (max-width: 650px) {
  body[data-page="job-search"] .page-content { padding: 25px 20px; }
  #job-search .job-page-heading { margin-bottom: 24px; }
  #job-search h1 { font-size: 31px; }
  #job-search .job-page-heading p { max-width: 290px; font-size: 12px; }
  #job-search .job-search-panel-heading { padding: 19px 18px 0; }
  #job-search .aggregator-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px; gap: 14px 10px; }
  #job-search .aggregator-input-actions { grid-column: 1 / -1; }
  #job-search .job-search-panel-footer { align-items: flex-start; flex-wrap: wrap; gap: 6px 14px; padding: 12px 18px; }
  #job-search .job-search-status { flex-basis: calc(100% - 90px); align-items: flex-start; }
  #job-search .job-status-dot { margin-top: 6px; }
  #job-search .job-connection { display: none; }
  #job-search .job-library-heading { margin-bottom: 20px; }
  #job-search .job-library-heading h2 { font-size: 20px; }
  #job-search .job-library-heading p { font-size: 11px; }
  #job-search .job-view-switch { flex: 1; justify-content: space-between; }
  #job-search .job-view-switch button { flex: 1; padding: 8px 7px; font-size: 11px; gap: 5px; }
  #job-search .job-library-toolbar { gap: 10px; }
  #job-search .job-sort-label { margin-left: auto; }
  #job-search .job-card-header { padding: 20px 18px 18px; gap: 14px; }
  #job-search .job-card-identity { gap: 11px; width: 100%; }
  #job-search .job-company-monogram { flex-basis: 40px; width: 40px; height: 40px; border-radius: 10px; font-size: 14px; }
  #job-search .aggregator-job-card h3 { font-size: 18px; }
  #job-search .job-card-header .aggregator-job-actions { margin-left: 51px; }
  #job-search .job-card-details { margin: 0 18px; padding: 17px 0 20px; }
  #job-search .job-card-footer { flex-wrap: wrap; padding: 12px 18px; gap: 8px; }
  #job-search .aggregator-description { flex-basis: 100%; }
  #job-search .job-referral-action { width: 100%; align-items: stretch; }
  #job-search .job-referral-action .button.small { justify-content: center; }
  #job-search .aggregator-referral { padding: 18px; }
  #job-search .aggregator-archive { padding: 18px; }
  #job-search .aggregator-company-list { grid-template-columns: minmax(0, 1fr); }
  #job-search .job-results-meta { min-height: 47px; }
  #job-search #aggregator-result-count { font-size: 10px; }
  #job-search .job-extension-actions .button { flex: 1; }
}
@media (max-width: 370px) {
  #job-search .job-view-switch button { padding: 8px 5px; gap: 3px; }
  #job-search .job-view-switch svg { display: none; }
  #job-search .job-library-heading .button { padding: 8px; font-size: 10px; }
  #job-search .aggregator-filters { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  #job-search *, #job-search *::before, #job-search *::after { animation: none !important; transition: none !important; }
}
