/* Страницы job.ki-ri.ru/hunter в языке J «Apple с иконками» (ТЗ docs/platform/ki-ri/tasks/2026-10-16-site-apple-redesign.md,
   фаза 3; макеты diag/design/previews/site-apple-redesign-{landing,form,list,settings,state}.html). Шапка/подвал/токены и
   компоненты — platform.css (копия platform-ui): капсулы pf-cap, списки pf-grp/pf-row, плашки pf-alert/pf-flash, пейволл pf-pw,
   ошибка pf-err, бейджи pf-badge, тумблер pf-tog, значки pf-icon. Здесь — раскладка страниц и то, чего в platform.css нет.
   Старых .pf-btn/.pf-card/.pf-pill и своих кнопок/карточек/«таблеток» нет. Инлайн-стилей нет (CSP style-src 'self'). */
:root{--warn-bg:#fff4ea;--work-tint:#eef0fe;--ok-bg:#e3f3ec;--warn-chip:#fbebd9;--warn-edge:rgba(180,83,9,.2);--soft:rgba(24,35,31,.04);
  --field-line:rgba(24,35,31,.14);--hover-mat:rgba(255,255,255,.7);--cap-shadow:0 2px 8px -6px rgba(24,35,31,.4)}
summary:focus-visible,a:focus-visible,input:focus-visible,label:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid var(--g);outline-offset:2px}
/* типографика: H1 — Onest 800 одним цветом (docs/conventions.md, «Единая сетка») */
h1{font-size:46px;line-height:1.08;letter-spacing:-.03em;font-weight:800}
.pf-app-head h1,.pf-pw h1,.pf-err h1{font-weight:800}
.pf-err h1{font-size:28px;letter-spacing:-.02em;line-height:1.15}
.pf-err{margin-inline:auto}  /* карточка ошибки — по центру страницы; содержимое внутри по левому краю, как в макете -state */
h2{font-size:24px;letter-spacing:-.02em;margin:12px 0 14px}
.lead{font-size:20px;color:var(--mut);max-width:44ch}
.page-top{margin-top:var(--pf-gap-page)}.page-top>:first-child{margin-top:0}  /* margin: медиазапрос .pf-wrap{padding:0 16px} не должен его обнулять */
.jh-wrap{padding-top:var(--pf-gap-page)}.jh-wrap>*{max-width:900px}.jh-wrap>:first-child{margin-top:0}  /* колонка по левому краю сетки */
.jh-back{font-size:14px;font-weight:600;margin-bottom:16px}.jh-back a{color:var(--c)}.jh-back a:hover{text-decoration:underline}
.jh-wrap>.pf-grp,.jh-wrap>.jh-panel,.jh-wrap>section{margin-top:16px}
.jh-wrap>.pf-app-head+*{margin-top:0}
.jh-note{font-size:13px;color:var(--mut)}
/* служебные глифы (_icons.html): размер задаёт место, обводка 1.9 — в самом SVG */
.jh-g{width:18px;height:18px;flex:none}
.pf-gl{background:var(--work-tint)}  /* светлый тон раздела «Работа» под глифом */
.pf-flash .jh-g{width:18px;height:18px}
.pf-alert b{font-weight:600}
/* панель из толстого материала (статистика, шаги инструкции, админка): поля 22 — как у карточки платформы */
.jh-panel{border-radius:var(--r-m);background:#fff;background:var(--mat-thick);box-shadow:inset 0 1px 0 var(--edge),0 1px 2px rgba(24,35,31,.04),0 0 0 1px var(--hair)}
.pf-grp{box-shadow:inset 0 1px 0 var(--edge),0 1px 2px rgba(24,35,31,.04),0 0 0 1px var(--hair)}  /* хэйрлайн по краю: толстый материал на ровном фоне */
/* строки сгруппированных списков: текст слева, действие справа; на узком экране действие уходит под текст */
.jh-wrap .pf-row{flex-wrap:wrap;row-gap:10px}
.jh-wrap .pf-row>.k{min-width:min(100%,240px)}
.pf-row .k small{margin-top:2px}
.pf-row form{margin:0}
.pf-row .pf-badge{margin-left:6px;vertical-align:2px}
/* поля формы */
.jh-form .field>label{display:block}
.jh-input{display:block;width:100%;margin-top:6px;padding:11px 14px;border:0;border-radius:var(--r-s);font:15px 'Onest',system-ui,sans-serif;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(24,35,31,.14)}
.jh-input:focus-visible{outline:2px solid var(--g);outline-offset:1px}
.jh-formats{border:0;margin-top:14px;min-width:0}
.jh-formats legend{margin-bottom:8px}
.jh-formats .pf-grp{max-width:640px}
.jh-formats .pf-row{min-height:46px;padding:10px 18px}
.jh-actions{display:flex;gap:8px;flex-wrap:wrap}
.jh-code{display:block;word-break:break-all;font-size:14px}
.jh-code p+p{margin-top:4px}
.jh-code a{color:var(--c);font-weight:600}
.jh-code code{background:var(--work-tint);border-radius:6px;padding:1px 6px}
.jh-sources>span{white-space:nowrap}
.jh-src-on{width:15px;height:15px;color:var(--c);vertical-align:-3px}
/* баннер пробного периода — плашка над страницей, по левому краю сетки */
.trial-banner{margin-top:16px;border-radius:var(--r-m);background:var(--work-tint);color:var(--c);padding:10px 16px;font-weight:600;font-size:14px}
.trial-banner.warn{background:var(--warn-bg);color:var(--pf-amber);box-shadow:inset 0 0 0 1px rgba(180,83,9,.2)}
@media (max-width:720px){
  h1{font-size:34px}
  .lead{font-size:17px}
}

/* ====== Порт раздела «Помощник по поиску работы» из diag (ТЗ: паритет web-профиля). ======
   Цвета — токены платформы (platform.css: --g/--gl/--ink/--mut/--line/--bg/--warn, акцент сервиса индиго) +
   локальные --jh-*. Инлайн-стилей нет (CSP style-src 'self'): всё состояние — классами и атрибутами. */
:root{--jh-line-2:#c4d1ca;--jh-fg-2:#34423c;--jh-accent-hover:#4338ca;--jh-accent-tint:#c7c9f5;
  --jh-ok:#1a7f4b;--jh-ok-bg:#e8f5ee;--jh-ok-line:#bfe3cd;--jh-warn-bg:#fbf1ec;
  --jh-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--jh-focus:0 0 0 3px rgba(79,70,229,.28)}
body.jp-noscroll{overflow:hidden}
.rs-flat{margin:0}
.rs-skel-bar.w46{width:46%}.rs-skel-bar.w88{width:88%}.rs-skel-bar.w38{width:38%}.rs-skel-bar.w80{width:80%}
.jp-nojs{font-size:13px}
.jp-js .jp-nojs{display:none}
.jp-root [hidden]{display:none !important}
.jp-root .field{margin-bottom:0}
.jp-section-body .jh-input{max-width:640px}
.jp-section-body textarea.jh-input{max-width:100%}
.jp-section-body .jh-formats{margin-top:20px;padding:0}
.jp-tabs{display:flex;gap:8px;margin-bottom:12px}
.jp-tab{appearance:none;cursor:pointer;font:600 13px 'Onest',system-ui,sans-serif;padding:7px 14px;border-radius:9999px;border:0;background:#fff;box-shadow:inset 0 0 0 1px rgba(24,35,31,.14);color:var(--jh-fg-2)}
.jp-tab.is-active{background:var(--work-tint);box-shadow:inset 0 0 0 1px var(--c);color:var(--c)}
.jp-tab:focus-visible{outline:none;box-shadow:var(--jh-focus)}
.jp-dropzone{display:grid;gap:2px;margin:0 0 8px;padding:14px 16px;border-radius:var(--r-s);background:var(--work-tint);cursor:pointer}
.jp-dropzone-title{font-weight:600}
.jp-file{padding:8px;font-size:14px}
.jp-savebar-actions{margin:0}
.jh-actions-row{margin:0}
.jh-profile .jp-chips{margin-top:8px}
.jh-profile .jp-rv{margin-top:6px}
.jh-stats-empty{padding:16px 22px;margin:0}

/* инструкция (/hunter/guide): гарантии и частые вопросы — pf-grp, шаги — панели толстого материала */
.jh-guide-trust{list-style:none}
.jh-guide-trust .k{font-size:14.5px;color:var(--ink-2);line-height:1.45}
.jh-guide-step{display:flex;gap:16px;padding:22px}
.jh-guide-step>div:last-child{min-width:0;flex:1}
.jh-guide-num{flex:0 0 32px;height:32px;border-radius:50%;background:var(--c);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}
.jh-guide-step-title{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:4px 0 6px}
.jh-guide-step-desc{margin:0;color:var(--ink-2);font-size:15px;max-width:68ch}
.jh-guide-step-desc a{color:var(--c);font-weight:600}
.jh-guide-callout{margin-top:14px;padding:12px 16px;border-radius:var(--r-s);background:rgba(24,35,31,.04);font-size:14px;color:var(--ink-2);max-width:68ch}
.jh-guide-callout.warn{display:flex;gap:10px;align-items:flex-start;background:var(--warn-bg);box-shadow:inset 0 0 0 1px rgba(180,83,9,.2)}
.jh-guide-callout.warn>.jh-g{color:var(--pf-amber);margin-top:1px}
.jh-inl{width:15px;height:15px;vertical-align:-3px}
.jh-guide-legend{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.jh-guide-legend-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.jh-guide-legend-row .pf-badge{min-width:150px;text-align:center}
.jh-guide-legend-row p{margin:0;font-size:14px;color:var(--ink-2);flex:1;min-width:200px}
/* образец карточки бота: тот же значок сервиса, что в заголовке; эмодзи карточки — SVG-глифы */
.jh-guide-phone{margin-top:16px;max-width:420px;border-radius:var(--r-m);padding:14px;background:#fff;box-shadow:0 0 0 1px var(--hair),0 10px 30px -18px rgba(24,35,31,.35)}
.jh-guide-phone-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;margin-bottom:10px;box-shadow:inset 0 -1px 0 var(--hair)}
.jh-guide-phone-name{font-weight:700;font-size:14px}
.jh-guide-phone-sub{font-size:12px;color:var(--mut)}
.jh-guide-bubble{background:rgba(24,35,31,.04);border-radius:14px;padding:10px 12px;font-size:13.5px;margin-bottom:8px;display:grid;gap:2px}
.jh-bl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.jh-bl .jh-g{width:15px;height:15px;color:var(--mut)}
.jh-bl .pf-icon.s{width:20px;height:20px;border-radius:6px}.jh-bl .pf-icon.s svg{width:13px;height:13px}
.jh-guide-kb-row{display:flex;gap:6px;margin:6px 0}
.jh-guide-kb-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;padding:8px 6px;border-radius:10px;background:var(--work-tint);color:var(--c);font-size:12.5px;font-weight:600}
.jh-guide-kb-btn .jh-g{width:15px;height:15px}
.jh-guide-faq{margin-top:12px}
.jh-guide-faq .pf-grp-t{margin:28px 0 8px}  /* заголовок раздела — от левого края сетки (tools/layout_audit.py), не с отступом группы */
.jh-guide-faq .k small{font-size:14px;margin-top:4px}
@media (max-width:560px){.jh-guide-step{gap:12px;padding:18px 16px}}

/* ---------- статистика job-hunter (донат + группы по месяцу отклика) ----------
   Редизайн 2026-09-22 (OD-макет job-hunter-stats-redesign-stats.html):
   компактный SVG-донат вместо двух bar-строк; списки вакансий сворачиваются
   по месяцу РЕШЕНИЯ (resolved_at), не по дню — при поиске работы 4-6
   месяцев дневная группировка дала бы 60-120+ свёрнутых строк. Карточки —
   без padding'а на контейнере (паттерн corp-format, см.
   diag/design/corporate-format.md), хинты — hairline-разделители внутри. */
.jh-stats-card { padding: 0; overflow: hidden; }
.jh-stats-card + .jh-stats-card { margin-top: 16px; }
.jh-stats-card-header {
  padding: 16px 22px; border-bottom: 1px solid var(--hair);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.jh-stats-card-header-title { font-size: 15px; font-weight: 600; margin: 0; }
.jh-stats-card-header-count { font-family: var(--jh-mono); font-size: 12px; color: var(--mut); }

.jh-stats-summary { display: flex; align-items: center; gap: 28px; padding: 22px; flex-wrap: wrap; }
.jh-stats-donut { flex-shrink: 0; }
.jh-stats-donut-ring { stroke: var(--work-tint); }
.jh-stats-donut-arc { stroke: var(--c); stroke-linecap: round; }
.jh-stats-donut-pct { font-family: var(--jh-mono); font-size: 32px; font-weight: 600; fill: var(--ink); }
.jh-stats-donut-label { font-family: inherit; font-size: 11px; fill: var(--mut); }

.jh-stats-legend { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 2px; }
.jh-stats-legend-row { padding: 8px 0; }
.jh-stats-legend-row + .jh-stats-legend-row { border-top: 1px solid var(--hair); }
.jh-stats-legend-main { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.jh-stats-legend-sub { margin: 1px 0 0 17px; font-size: 12px; color: var(--mut); }
.jh-stats-legend-label { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--jh-fg-2); }
.jh-stats-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.jh-stats-legend-dot-accent { background: var(--c); }
.jh-stats-legend-dot-neutral { background: var(--jh-line-2); }
.jh-stats-legend-value { font-family: var(--jh-mono); font-size: 14px; color: var(--ink); font-variant-numeric: tabular-nums; }

.jh-stats-month-group { border-bottom: 1px solid var(--hair); }
.jh-stats-month-group:last-child { border-bottom: none; }
.jh-stats-month-group summary {
  display: flex; align-items: center; gap: 10px; padding: 13px 22px;
  cursor: pointer; list-style: none; user-select: none;
}
.jh-stats-month-group summary::-webkit-details-marker { display: none; }
.jh-stats-month-group summary:hover { background: rgba(255,255,255,.6); }
.jh-stats-month-chev { width: 16px; height: 16px; flex-shrink: 0; color: var(--mut); transition: transform .15s ease; }
.jh-stats-month-group[open] .jh-stats-month-chev { transform: rotate(90deg); }
.jh-stats-month-name { font-family: var(--jh-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--jh-fg-2); }
.jh-stats-month-count {
  margin-left: auto; font-family: var(--jh-mono); font-size: 11.5px; color: var(--mut);
  background: rgba(24,35,31,.06); border-radius: 999px;
  padding: 1px 9px; line-height: 1.5;
}

.jh-stats-list { list-style: none; margin: 0; padding: 2px 22px 14px 46px; }
.jh-stats-list li {
  display: flex; align-items: baseline; gap: 10px; padding: 5px 0; font-size: 14px; white-space: nowrap;
}
.jh-stats-list-date { font-family: var(--jh-mono); font-size: 11.5px; color: var(--mut); flex-shrink: 0; min-width: 48px; }
.jh-stats-list a { color: var(--ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.jh-stats-list a:hover { color: var(--c); text-decoration: underline; }
.jh-stats-list-company { color: var(--mut); font-size: 13.5px; flex-shrink: 0; }

.jh-stats-reset-row { margin-top: 24px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.jh-stats-reset-hint { font-size: 12.5px; color: var(--mut); }

@media (max-width: 560px) {
  .jh-stats-summary { flex-direction: column; align-items: flex-start; gap: 18px; padding: 20px 22px; }
  .jh-stats-legend { width: 100%; }
  .jh-stats-card-header { padding: 14px 22px; }  /* поля панели — 22 на любой ширине */
  .jh-stats-month-group summary { padding: 12px 22px; }
  .jh-stats-list { padding: 2px 22px 12px 46px; }
  .jh-stats-list li { white-space: normal; flex-wrap: wrap; row-gap: 0; padding: 7px 0; }
  .jh-stats-list-company { flex-basis: 100%; padding-left: 58px; }
}

/* ---------- Подсказки ИИ по должностям (форма профиля job-hunter) ----------
   Макет: diag/design/previews/job-hunter-role-suggestions-profile.html,
   ТЗ: docs/tasks/job-hunter/2026-10-05-role-suggestions.md. Токены — общие
   (--dr-*, --color-*, --warn*), рецепты — corporate-format.md §3.1/§3.3
   (bordered-список со строками, условный warn-баннер). hex/var, WeasyPrint-safe. */
.rs-panel { max-width: 640px; margin-top: 14px; border-radius: var(--r-m); background: #fff; overflow: hidden; box-shadow: 0 0 0 1px var(--hair); }
.rs-head { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; }
.rs-head-actions { padding-top: 0; }
.rs-error + .rs-head-actions { padding-top: 14px; }
.rs-head-main { flex: 1; min-width: 0; }
.rs-mark { width: 36px; height: 36px; border-radius: 10px; background: var(--work-tint); color: var(--c); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rs-mark svg { width: 20px; height: 20px; }
.rs-mark.is-muted { background: rgba(24,35,31,.05); color: var(--mut); }
.rs-title-main { font-size: 15.5px; font-weight: 650; margin: 0 0 4px; }
.rs-desc { font-size: 13.5px; margin: 0; max-width: 46ch; color: var(--jh-fg-2); }
.rs-actions-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 14px; }
.rs-btn-icon { display: inline-flex; }
.rs-btn-icon svg { width: 16px; height: 16px; }
.rs-meta { font-family: var(--jh-mono); font-size: 12px; color: var(--mut); }
.rs-meta b { color: var(--jh-fg-2); font-weight: 600; }
.rs-lock-hint { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--jh-fg-2); }
.rs-lock-hint svg { width: 16px; height: 16px; color: var(--mut); }
.rs-note { display: flex; gap: 8px; align-items: flex-start; border-top: 1px solid var(--hair); padding: 12px 20px; font-size: 12.5px; color: var(--mut); background: #fff; }
.rs-note svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; }

.rs-list { background: #fff; border-top: 1px solid var(--hair); }
.rs-listhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; background: rgba(24,35,31,.03); border-bottom: 1px solid var(--hair); }
.rs-listhead .rs-meta { text-transform: uppercase; letter-spacing: .04em; font-size: 11px; }
.rs-row { display: flex; align-items: flex-start; gap: 14px; padding: 14px 20px; border-bottom: 1px solid var(--hair); min-height: 52px; }
.rs-row:last-child { border-bottom: none; }
.rs-row:hover { background: rgba(24,35,31,.025); }
.rs-row.is-added { background: #fff; }
.rs-body { flex: 1; min-width: 0; }
.rs-titlerow { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 6px; }
.rs-title { font-size: 14.5px; font-weight: 620; margin: 0; }
.rs-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.rs-tag { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 6px; font-size: 12px; font-weight: 700; line-height: 1.4; background: rgba(24,35,31,.06); color: var(--mut); }  /* как pf-badge: класс ставит и profile.js */
.rs-tag-strong { background: var(--work-tint); color: var(--c); }
.rs-tag-added { background: #d9efe6; color: #0b6e4f; }
.rs-why { font-size: 13px; color: var(--jh-fg-2); margin: 2px 0 0; }
.rs-query { font-family: var(--jh-mono); font-size: 11.5px; color: var(--mut); margin-top: 6px; overflow-wrap: anywhere; }
.rs-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.rs-actions[hidden] { display: none; }
.rs-quiet { background: transparent; border: none; color: var(--mut); font-size: 13px; font-weight: 500; height: 36px; padding: 0 10px; border-radius: 10px; cursor: pointer; font-family: inherit; }
.rs-quiet:hover { color: var(--jh-fg-2); background: var(--bg); }

.rs-error { display: flex; gap: 10px; align-items: flex-start; padding: 12px 20px; background: var(--warn-bg); box-shadow: inset 0 1px 0 rgba(180,83,9,.2), inset 0 -1px 0 rgba(180,83,9,.2); color: var(--pf-amber); font-size: 13.5px; }
.rs-error svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 3px; }

.rs-loading { padding: 4px 20px 18px; background: #fff; border-top: 1px solid var(--hair); }
.rs-loading[hidden] { display: none; }
.rs-loading > .rs-title-main { padding-top: 14px; }
.rs-skel { display: flex; flex-direction: column; gap: 9px; padding: 12px 0; border-bottom: 1px solid var(--hair); }
.rs-skel:last-child { border-bottom: none; }
.rs-skel-bar { display: block; height: 12px; border-radius: 6px; background: var(--work-tint); animation: rs-pulse 1.4s ease-in-out infinite; }
@keyframes rs-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .rs-skel-bar { animation: none; } }
@media (max-width: 760px) {
  .rs-head { padding: 14px; }
  .rs-row { padding: 12px 14px; flex-wrap: wrap; }
  .rs-actions { width: 100%; }
  .rs-listhead { padding: 10px 14px; flex-wrap: wrap; }
  .rs-note { padding: 10px 14px; }
}

/* ---------- «Ищем также» под полем ролей (варианты написания и синонимы) ----------
   ТЗ docs/tasks/job-hunter/2026-10-07-role-variants.md: пользователь вводит роль
   один раз, остальное подставляется само; здесь показываем, что именно ищется.
   Токены общие (--dr-*, --color-*), hex/var, WeasyPrint-safe. */
.rv-box { margin-top: 10px; max-width: 640px; padding: 12px 14px; background: rgba(24,35,31,.04); border-radius: var(--r-s); }
.rv-title { margin: 0 0 8px; font-family: var(--jh-mono); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--mut); }
.rv-row { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; padding: 6px 0; border-top: 1px solid var(--hair); }
.rv-row:first-of-type { border-top: none; padding-top: 0; }
.rv-role { font-size: 13px; font-weight: 620; color: var(--ink); }
.rv-arrow { color: var(--mut); font-size: 13px; }
.rv-chips { display: flex; gap: 6px; flex-wrap: wrap; min-width: 0; }
.rv-chip { display: inline-flex; padding: 2px 9px; border-radius: 9999px; font-size: 12.5px; background: #fff; box-shadow: inset 0 0 0 1px var(--hair); color: var(--jh-fg-2); overflow-wrap: anywhere; }

/* ---------- Поле «Минимальная зарплата» ----------
   Шире стандартного поля, единица измерения внутри поля («₽ в месяц»), без стрелок
   number-поля, быстрые суммы под ним и живая подсказка, что именно будет скрыто.
   Токены общие (--dr-*, --color-*), hex/var, WeasyPrint-safe. */
.salary-input-wrap { position: relative; width: 100%; max-width: 360px; }
.salary-input { width: 100%; max-width: none; padding-right: 96px; font-family: var(--jh-mono); font-size: 16px; letter-spacing: .01em; }
.salary-suffix { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--mut); white-space: nowrap; pointer-events: none; }
.salary-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.salary-chip { appearance: none; cursor: pointer; font: inherit; font-family: var(--jh-mono); font-size: 12.5px; padding: 5px 12px; min-height: 30px; border-radius: 9999px; border: 0; background: #fff; box-shadow: inset 0 0 0 1px rgba(24,35,31,.14); color: var(--jh-fg-2); }
.salary-chip:hover { color: var(--c); box-shadow: inset 0 0 0 1px var(--c); }
.salary-chip.is-active { background: var(--work-tint); box-shadow: inset 0 0 0 1px var(--c); color: var(--c); font-weight: 600; }
.salary-chip-clear { font-family: inherit; box-shadow: none; background: transparent; color: var(--mut); }
.salary-chip[hidden] { display: none; }
.salary-field .field-hint { max-width: 56ch; }

/* ---------- Форма профиля job-hunter: сводка, секции, chip-ввод, drawer ИИ, липкая панель ----------
   Порт из diag (макет diag/design/previews/job-hunter-profile-ux-final.html, утверждён владельцем 2026-10-07).
   Префикс .jp-, чтобы не пересечься с общими .section/.drawer/.card. Цвета — токены платформы (platform.css) + локальные --jh-*. */
.jp-root [hidden] { display: none !important; }
.jp-muted { color: var(--mut); font-weight: 400; }
.jp-quiet { appearance: none; cursor: pointer; font: inherit; background: transparent; border: 0; color: var(--c); font-size: 13px; font-weight: 600; padding: 8px 4px; border-radius: 7px; }
.jp-quiet:hover { color: var(--jh-accent-hover); text-decoration: underline; }
.jp-quiet:focus-visible, .jp-link:focus-visible { outline: none; box-shadow: var(--jh-focus); text-decoration: none; }
.jp-link { display: inline-block; cursor: pointer; list-style: none; color: var(--c); font-size: 13px; font-weight: 600; padding: 6px 0; border-radius: 7px; }
.jp-link::-webkit-details-marker { display: none; }
.jp-link:hover { color: var(--jh-accent-hover); text-decoration: underline; }
.jp-rv[open] > .jp-link { margin-bottom: 2px; }

/* чипы ролей (режим просмотра) и индикатор «новая роль» в chip-вводе */
.jp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.jp-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 11px; border-radius: 9999px; background: rgba(24,35,31,.06); font-size: 13px; font-weight: 600; color: var(--ink); }
.jp-chip .n { font-family: var(--jh-mono); font-size: 10.5px; font-weight: 600; color: var(--c); }
.jp-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--g); flex-shrink: 0; }
.jp-ai-link { display: inline-flex; margin-top: 6px; padding-left: 0; }

/* секции-аккордеон (<details>; в режиме правки открыта одна — атрибут name) */
.jp-section { background: #fff; background: var(--mat-thick); box-shadow: inset 0 1px 0 var(--edge), 0 1px 2px rgba(24,35,31,.04), 0 0 0 1px var(--hair); border-radius: var(--r-m); overflow: hidden; margin-bottom: 12px; }
.jp-section > summary { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 16px 20px; cursor: pointer; list-style: none; }
.jp-section.is-secondary > summary { padding: 13px 20px; }
.jp-section > summary::-webkit-details-marker { display: none; }
.jp-section > summary:hover { background: rgba(255,255,255,.6); }
.jp-section > summary:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--g); }
.jp-section > summary .pf-icon.s { width: 34px; height: 34px; border-radius: 10px; }  /* значок секции — малый значок раздела «Работа» */
.jp-section > summary .pf-icon.s svg { width: 19px; height: 19px; }
.jp-section-title { flex: 1; min-width: 0; font-size: 15px; font-weight: 700; }
.jp-section.is-secondary .jp-section-title { font-size: 15px; font-weight: 600; color: var(--ink-2); }
.jp-chevron { width: 20px; height: 20px; color: var(--mut); flex-shrink: 0; transition: transform .2s ease; }
.jp-section[open] > summary .jp-chevron { transform: rotate(180deg); }
.jp-section-body { padding: 20px 20px 22px; border-top: 1px solid var(--hair); }
.jp-section-body > .field { margin-bottom: 20px; }
.jp-section-body > .field:last-child { margin-bottom: 0; }

/* chip-ввод ролей */
.jp-chipbox { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; width: 100%; max-width: 640px; padding: 8px; border-radius: var(--r-s); background: #fff; box-shadow: inset 0 0 0 1px rgba(24,35,31,.14); }
.jp-chipbox:focus-within { box-shadow: inset 0 0 0 1px var(--g), var(--jh-focus); }
.jp-role-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 5px 5px 12px; border-radius: 9999px; background: rgba(24,35,31,.06); font-size: 13.5px; font-weight: 600; color: var(--ink); }
.jp-role-chip.is-new { background: var(--work-tint); color: var(--jh-accent-hover); }
.jp-role-chip-x { appearance: none; border: 0; background: transparent; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--mut); cursor: pointer; font-size: 16px; line-height: 1; padding: 0; flex-shrink: 0; }
.jp-role-chip-x:hover { background: #fff; color: var(--warn); }
.jp-role-chip-x:focus-visible { outline: none; box-shadow: var(--jh-focus); }
.jp-chip-entry { flex: 1; min-width: 160px; border: 0; outline: 0; font: inherit; font-size: 14.5px; padding: 6px 4px; background: transparent; color: var(--ink); }
.jp-chip-entry::placeholder { color: var(--mut); }

/* плашка ИИ-подбора в форме (список — только в drawer) */
.jp-ai-entry { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; padding: 13px 16px; max-width: 640px; background: var(--work-tint); border-radius: var(--r-s); }
.jp-ai-entry-icon { width: 32px; height: 32px; border-radius: 10px; background: #fff; color: var(--c); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.jp-ai-entry-icon svg { width: 17px; height: 17px; }
.jp-ai-entry-text { flex: 1; min-width: 180px; }
.jp-ai-entry-title { font-size: 13.5px; font-weight: 650; }
.jp-ai-entry-note { font-size: 12px; color: var(--mut); margin-top: 1px; }

/* резюме: строка статуса (summary вложенного <details>) + редактор по «Заменить» */
.jp-resume > summary { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px; background: rgba(24,35,31,.04); border-radius: var(--r-s); cursor: pointer; list-style: none; }
.jp-resume > summary::-webkit-details-marker { display: none; }
.jp-resume > summary:focus-visible { outline: none; box-shadow: var(--jh-focus); }
.jp-resume-icon { width: 32px; height: 32px; border-radius: 9px; background: #fff; color: var(--c); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.jp-resume-icon svg { width: 16px; height: 16px; }
.jp-resume-text { flex: 1; min-width: 160px; font-size: 13.5px; font-weight: 600; color: var(--ink); }
.jp-resume-text b { font-weight: 700; }
.jp-resume-toggle:hover { text-decoration: underline; }
.jp-resume .jp-when-open, .jp-resume[open] .jp-when-closed { display: none; }
.jp-resume[open] .jp-when-open { display: inline; }
.jp-resume-edit { margin-top: 14px; }

/* липкая нижняя панель сохранения */
.jp-savebar { position: sticky; bottom: 12px; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 16px; padding: 12px 14px 12px 20px; background: #fff; background: var(--mat-thick); border-radius: var(--r-m); box-shadow: inset 0 1px 0 var(--edge), 0 0 0 1px var(--hair), 0 10px 30px -12px rgba(24,35,31,.3); }
.jp-save-status { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--mut); }
.jp-save-status svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--jh-ok); }
.jp-savebar[data-dirty="true"] .jp-save-status { color: var(--ink); }
.jp-savebar[data-dirty="true"] .jp-save-status svg { color: var(--g); }

/* drawer ИИ-подбора (z-index выше .topbar и .stage-banner, как у .drawer «Новый замер»): без JS — карточка под формой, с JS (.jp-js) — панель справа 680 px / bottom sheet */
.jp-drawer { margin-top: 16px; background: #fff; border-radius: var(--r-m); overflow: hidden; box-shadow: 0 0 0 1px var(--hair); }
.jp-drawer:focus { outline: none; }
.jp-drawer-backdrop, .jp-drawer-handle, .jp-drawer-close, .jp-drawer-foot { display: none; }
.jp-drawer-head { display: flex; align-items: flex-start; gap: 14px; padding: 20px 24px; border-bottom: 1px solid var(--hair); }
.jp-drawer-head-main { flex: 1; min-width: 0; }
.jp-drawer-title { font-size: 17px; font-weight: 700; margin: 0 0 4px; }
.jp-drawer-desc { font-size: 13px; color: var(--jh-fg-2); margin: 0; max-width: 48ch; }
.jp-drawer .rs-panel { max-width: none; margin: 0; border: 0; border-radius: 0; background: #fff; }
.jp-drawer .rs-head { padding: 18px 24px; }
.jp-drawer .rs-row, .jp-drawer .rs-listhead, .jp-drawer .rs-note, .jp-drawer .rs-error, .jp-drawer .rs-loading { padding-left: 24px; padding-right: 24px; }
/* max-width:none — подложка лежит прямо в .jh-wrap, а .jh-wrap>*{max-width:900px} (колонка сетки) обрезал её до 900 px: справа оставалась белая полоса до дровера */
.jp-js .jp-drawer-backdrop { display: block; position: fixed; inset: 0; max-width: none; background: rgba(19,23,33,.42); z-index: 1100; opacity: 0; visibility: hidden; transition: opacity .15s ease, visibility 0s .15s; }
.jp-js .jp-drawer-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity .15s ease; }
.jp-js .jp-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 680px; max-width: 92vw; margin: 0; border: 0; border-radius: var(--r-l) 0 0 var(--r-l); z-index: 1101; display: flex; flex-direction: column; visibility: hidden; transform: translateX(100%); box-shadow: -16px 0 36px -10px rgba(19,23,33,.28); transition: transform .22s cubic-bezier(.2,0,0,1), visibility 0s .22s; }
.jp-js .jp-drawer.is-open { visibility: visible; transform: translateX(0); transition: transform .22s cubic-bezier(.2,0,0,1); }
.jp-js .jp-drawer-close { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; border: 0; background: transparent; color: var(--mut); cursor: pointer; flex-shrink: 0; }
.jp-js .jp-drawer-close:hover { background: var(--bg); color: var(--ink); }
.jp-js .jp-drawer-close:focus-visible { outline: none; box-shadow: var(--jh-focus); }
.jp-js .jp-drawer-head { flex-shrink: 0; }
.jp-js .jp-drawer-body { flex: 1; overflow-y: auto; }
.jp-js .jp-drawer-foot { display: flex; align-items: center; justify-content: flex-end; padding: 14px 24px; border-top: 1px solid var(--hair); flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) {
  .jp-js .jp-drawer, .jp-js .jp-drawer.is-open, .jp-js .jp-drawer-backdrop, .jp-js .jp-drawer-backdrop.is-open, .jp-chevron { transition: none; }
}

@media (max-width: 640px) {
  .jp-section > summary { padding: 14px 16px; }
  .jp-section-body { padding: 18px 16px; }
  .jp-savebar { flex-direction: column; align-items: stretch; padding: 12px 16px; }
  .jp-savebar .pf-cap { flex: 1; }
  .jp-chipbox { max-width: 100%; }
  .jp-js .jp-drawer { top: auto; left: 0; right: 0; width: 100%; max-width: none; height: 88%; border-radius: var(--r-l) var(--r-l) 0 0; transform: translateY(100%); box-shadow: 0 -12px 30px -8px rgba(19,23,33,.28); }
  .jp-js .jp-drawer.is-open { transform: translateY(0); }
  .jp-js .jp-drawer-handle { display: block; width: 36px; height: 4px; border-radius: 9999px; background: var(--jh-line-2); margin: 10px auto 0; flex-shrink: 0; }
  .jp-js .jp-drawer-head { padding: 14px 18px; }
  .jp-js .jp-drawer-foot { padding: 12px 18px; }
  .jp-drawer .rs-head { padding: 14px 18px; }
  .jp-drawer .rs-row, .jp-drawer .rs-listhead, .jp-drawer .rs-note, .jp-drawer .rs-error, .jp-drawer .rs-loading { padding-left: 18px; padding-right: 18px; }
}

/* «Очистить данные»: строка списка с опасной капсулой (макет -settings, «Мои данные») */
.jh-clear-row .k small{font-size:14px}

/* пейволл — pf-pw (макет site-apple-redesign-state): здесь только вторичные ссылки и нижняя полоса */
.pw-page{padding-top:var(--pf-gap-page)}
.pw-page .pf-pw .pf-icon svg{width:30px;height:30px}
.pw-page .pf-pw p{max-width:40ch}
.pf-pw.is-off p{margin-bottom:4px}
.pw-form{margin:0}
.pw-quiet{font-size:15px;font-weight:600;color:var(--c);padding:4px 2px}
.pw-fine{font-size:13px;color:var(--mut)}
.pw-contact{margin-top:10px;font-size:13px;line-height:1.5}
.pw-contact a{color:var(--c);font-weight:600}
.pw-bottom{width:100%;margin-top:14px;padding-top:16px;box-shadow:inset 0 1px 0 var(--hair);display:grid;gap:8px;justify-items:center}
.pw-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 18px}
.pw-links form{margin:0}
.pw-link{background:none;border:0;padding:4px 2px;font:600 14px 'Onest',sans-serif;color:var(--ink);cursor:pointer}
.pw-link:hover{color:var(--c)}
.pw-home{margin-top:16px}

/* ====== Посадочная /hunter для гостя (обои — body.pf-wall, макет -landing): значок сервиса над заголовком, капсула цвета раздела,
   шаги — тонкий материал, три гарантии — сгруппированный список. Сетка — .pf-wrap платформы. */
.jl-nb{white-space:nowrap}
.jl-block{margin-top:72px}
.jl-block>h2{margin-bottom:18px}
.jl-trio{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.jl-trio>div{padding:22px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;align-content:start}
.jl-trio>div+div{box-shadow:inset 1px 0 0 var(--hair)}
.jl-trio .pf-gl{grid-row:1/span 2}.jl-trio b{font-size:16px}.jl-trio p{font-size:14px;line-height:1.4;color:var(--mut)}
@media (max-width:860px){
  .jl-trio{grid-template-columns:1fr}
  .jl-trio>div+div{box-shadow:inset 0 1px 0 var(--hair)}
  .jl-block{margin-top:48px}
}

/* ---------- админка владельца (/hunter/admin): плитки, таблицы, подсветка. Макет diag/design/previews/job-hunter-admin-stats-*.
   Только токены платформы и локальные --jh-*; новых цветов нет; инлайн-стилей нет (CSP). ---------- */
.jh-wrap.ja-wrap > * { max-width: none; }
.ja-h { font-size: 18px; margin: 32px 0 12px; }
/* minmax(0,1fr), не голый 1fr: иначе natural min-content подписей раздувает сетку шире контейнера. Все плитки ряда — одной высоты. */
.ja-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 20px; align-items: stretch; }
.ja-tile { border-radius: var(--r-m); padding: 18px; background: #fff; background: var(--mat-thick); box-shadow: inset 0 1px 0 var(--edge), 0 1px 2px rgba(24,35,31,.04), 0 0 0 1px var(--hair); display: flex; flex-direction: column; }
.ja-tile.ja-warn { background: var(--warn-bg); box-shadow: inset 0 0 0 1px rgba(180,83,9,.2); }
.ja-l { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--mut); }
.ja-v { font-size: 30px; font-weight: 600; line-height: 1.2; margin: 4px 0; font-variant-numeric: tabular-nums; }
.ja-v-sm { font-size: 22px; }
.ja-s { font-size: 13px; color: var(--jh-fg-2); }
.ja-s b { font-weight: 600; }
.ja-mut { color: var(--mut); }
.ja-sm { font-size: 15px; font-weight: 400; }
.ja-mono { font-family: var(--jh-mono); font-size: 13px; }
.ja-after { margin-top: 8px; }
.ja-src { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; padding: 16px; }
.ja-src > div { border-radius: var(--r-s); padding: 12px; box-shadow: inset 0 0 0 1px var(--hair); }
.ja-src > div.ja-src-bad { background: var(--warn-bg); box-shadow: inset 0 0 0 1px rgba(180,83,9,.2); }
.ja-src-t { font-weight: 600; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 8px; }
.ja-scroll { overflow-x: auto; }
.ja-table { border-collapse: collapse; width: 100%; font-size: 14px; min-width: 900px; }
.ja-table-sm { min-width: 560px; }
.ja-table th { text-align: left; font-weight: 600; font-size: 12px; letter-spacing: .03em; text-transform: uppercase; color: var(--mut); background: rgba(24,35,31,.03); padding: 10px 12px; border-bottom: 1px solid var(--hair); white-space: nowrap; }
.ja-table th a { color: inherit; text-decoration: none; }
.ja-table th.sort, .ja-table th.sort a { color: var(--c); }
.ja-table td { padding: 11px 12px; border-bottom: 1px solid var(--hair); white-space: nowrap; }
.ja-table td.n, .ja-table th.n { text-align: right; font-variant-numeric: tabular-nums; }
.ja-table tbody tr:last-child td { border-bottom: 0; }
.ja-table tr.ja-attn td { background: var(--warn-bg); }
.ja-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 12px; font-size: 14px; }
.ja-chip { border-radius: 999px; padding: 5px 12px; color: var(--ink-2); text-decoration: none; box-shadow: inset 0 0 0 1px var(--hair); }
.ja-chip.on { background: #fff; background: var(--mat-thick); color: var(--ink); font-weight: 600; box-shadow: inset 0 1px 0 var(--edge), 0 2px 8px -6px rgba(24,35,31,.4); }
.ja-hint { display: block; font-size: 12px; color: var(--warn); }
.ja-hints { margin-top: 12px; }
.ja-check { list-style: none; margin: 0; padding: 8px 16px 16px; }
.ja-check li { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--hair); }
.ja-check li:last-child { border: 0; }
.ja-st { width: 22px; font-weight: 700; flex-shrink: 0; }
.ja-ok { color: var(--jh-ok); }
.ja-bad { color: var(--warn); }

/* ====== Редизайн админки (ТЗ job-hunter-admin-redesign): подполоса владельца, баннер, столбики, мобильные карточки.
   Только токены платформы и локальные --jh-*; новых цветов нет. Цвет не единственный носитель смысла: иконка/стрелка + текст. */
.subnav{background:#fff;background:var(--mat-regular);border-bottom:1px solid var(--hair)}
.subnav .pf-wrap{display:flex;gap:4px;height:42px;align-items:center;font-size:14px;font-weight:500;color:var(--ink-2);overflow-x:auto}
.subnav a{text-decoration:none;padding:4px 12px;border-radius:999px;white-space:nowrap}
.subnav a:hover{color:var(--ink);background:var(--hover-mat)}
.subnav a.on{color:var(--ink);font-weight:600;background:#fff;background:var(--mat-thick);box-shadow:inset 0 1px 0 var(--edge),var(--cap-shadow)}
.ja-banner{display:flex;gap:12px;align-items:flex-start;border-radius:var(--r-m);padding:16px 18px;margin-top:16px;background:#fff;background:var(--mat-thick);box-shadow:0 0 0 1px var(--hair)}
.ja-banner.ok{background:var(--ok-bg);box-shadow:none}
.ja-banner.warn{background:var(--warn-bg);box-shadow:inset 0 0 0 1px var(--warn-edge)}
.ja-banner-ic{width:22px;height:22px;flex-shrink:0}
.ja-banner-ic svg{width:22px;height:22px}
.ja-banner.ok .ja-banner-ic{color:var(--jh-ok)}
.ja-banner.warn .ja-banner-ic{color:var(--pf-amber)}
.ja-banner-main{flex:1;min-width:0;font-size:15px}
.ja-reasons{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px}
.ja-reasons a{color:var(--warn);text-decoration:underline}
.ja-stale{margin-left:8px;padding:2px 8px;border-radius:6px;background:var(--warn-chip);color:var(--pf-amber);font-weight:700}
.ja-stale[hidden]{display:none}
/* подпись не переносится по словам: колонка dt не уже своего содержимого, значение — справа */
.ja-dl{display:grid;grid-template-columns:minmax(max-content,1fr) max-content;gap:3px 12px;margin:10px 0 0;font-size:13px;color:var(--jh-fg-2)}
.ja-dl dt{color:var(--mut);white-space:nowrap}
.ja-dl dd{margin:0;white-space:nowrap;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.ja-foot{margin-top:auto;padding-top:10px}
.ja-banner-meta{margin-left:auto;font-size:13px;color:var(--jh-fg-2);white-space:nowrap;align-self:center}
.ja-banner-meta b{font-weight:600}
.ja-funnel{min-width:0}
.ja-funnel tbody th{text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);background:none;border-bottom:1px solid var(--hair)}
.ja-delta{font-size:13px;white-space:nowrap;display:flex;align-items:center;gap:4px;color:var(--mut)}
.ja-delta b{font-weight:600}
.ja-delta .ja-arrow{flex-shrink:0;width:12px;height:12px}
.ja-ext{width:11px;height:11px}
.ja-search .jh-g{width:15px;height:15px}
.ja-t-good{color:var(--jh-ok)}
.ja-t-bad,.ja-t-warn{color:var(--warn)}
.ja-t-neutral{color:var(--mut)}
.pf-badge .jh-g{width:12px;height:12px;vertical-align:-1px;margin-right:3px}
.ja-todo{margin-top:8px;padding:8px 10px;border-radius:var(--r-s);background:#fff;box-shadow:inset 0 0 0 1px var(--warn-edge);font-size:13px;color:var(--jh-fg-2)}
.ja-todo b{color:var(--warn)}
.ja-search{display:inline-flex;align-items:center;gap:6px;margin-left:auto;border-radius:999px;padding:0 12px;background:#fff;box-shadow:inset 0 0 0 1px var(--field-line);color:var(--mut)}
.ja-search input{border:0;outline:0;background:transparent;font:14px 'Onest',system-ui,sans-serif;color:var(--ink);padding:7px 0;min-width:180px}
.ja-search:focus-within{box-shadow:var(--jh-focus)}
.ja-who{white-space:normal !important;min-width:220px}
.ja-id{display:block;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
a.ja-id{text-decoration:none}
a.ja-id:hover{color:var(--g);text-decoration:underline}
.ja-diag{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--g);text-decoration:none;margin-top:2px}
.ja-diag:hover{text-decoration:underline}
.ja-who-line{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:0 0 6px}
.ja-copy{appearance:none;cursor:pointer;font:600 12px 'Onest',system-ui,sans-serif;padding:4px 11px;border-radius:999px;border:0;background:#fff;box-shadow:inset 0 0 0 1px var(--hair);color:var(--ink-2)}
.ja-copy:hover{color:var(--c)}
.ja-llm{white-space:nowrap}
.ja-llm-v{display:block}
.ja-meter{display:block;width:72px;height:6px;margin:3px 0 0 auto}
.ja-meter .bg{fill:var(--work-tint)}
.ja-meter .fg{fill:var(--c)}
.ja-meter.spike .fg{fill:var(--warn)}
.ja-table tr[hidden]{display:none}
.ja-okcard{padding:14px 16px}
.ja-okline{display:flex;gap:10px;align-items:center;margin:0}
.ja-okline .ja-st{width:20px}
.ja-fold{margin-top:8px}
.ja-fold summary{cursor:pointer;color:var(--g);font-size:14px}
.ja-st svg{width:16px;height:16px;vertical-align:-3px}
.ja-check li.ja-prime{background:var(--jh-warn-bg);border-radius:8px;padding-left:8px;padding-right:8px}
/* причины в баннере: кто именно и что делать (макет diag/design/previews/job-hunter-admin-banner-reasons.html) */
.ja-rgroups{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.ja-rg{background:#fff;border-radius:var(--r-s);overflow:hidden;box-shadow:0 0 0 1px var(--hair)}
.ja-rg>summary,.ja-more>summary{list-style:none;cursor:pointer}
.ja-rg>summary::-webkit-details-marker,.ja-more>summary::-webkit-details-marker{display:none}
.ja-rg>summary{display:flex;align-items:center;gap:12px;padding:14px 16px}
.ja-rg-ic{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--jh-warn-bg);color:var(--warn)}
.ja-rg-ic svg{width:16px;height:16px}
.ja-rg-t{flex:1;min-width:0;font-weight:600;font-size:15px}
.ja-rg-chev{width:18px;height:18px;color:var(--mut);flex-shrink:0;transition:transform .15s}
.ja-rg-chev svg{width:18px;height:18px}
.ja-rg[open] .ja-rg-chev{transform:rotate(180deg)}
.ja-rg>summary:hover .ja-rg-t{color:var(--g)}
.ja-rg-body{padding:0 16px 16px;border-top:1px solid var(--hair)}
.ja-rg-why{font-size:13px;color:var(--mut);line-height:1.55;margin:12px 0 2px}
.ja-rus{display:flex;flex-direction:column;margin-top:4px}
.ja-ru{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--hair)}
.ja-rus>.ja-ru:first-child{border-top:none}
.ja-ru-id{display:flex;flex-direction:column;min-width:0}
.ja-ru-id .ja-id{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ja-ru-act{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:wrap}
.ja-open{display:inline-flex;align-items:center;font-size:12px;font-weight:600;text-decoration:none;padding:5px 12px;border-radius:999px;white-space:nowrap;color:var(--c);background:var(--work-tint)}
.ja-more>summary{color:var(--g);font-size:13px;font-weight:600;padding:9px 0 2px}
.ja-more>summary:hover{text-decoration:underline}
.ja-more .ja-rus{margin-top:0}
.ja-fix{margin-top:14px;background:var(--soft);border-radius:var(--r-s);padding:12px 14px}
.ja-fix-l{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.ja-fix-l svg{width:14px;height:14px;color:var(--mut)}
.ja-fix ol{margin:0;padding-left:20px;font-size:13px;line-height:1.55}
.ja-fix li{margin-bottom:4px}
.ja-fix li::marker{color:var(--g);font-weight:700}
.ja-fix li:last-child{margin-bottom:0}
@media (max-width:1024px){ .ja-tiles{grid-template-columns:repeat(2, minmax(0, 1fr))} }
@media (max-width:720px){
  .ja-tiles{grid-template-columns:1fr}
  .ja-banner{flex-wrap:wrap}
  .ja-ru{flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;border:1px solid var(--hair);border-radius:8px;margin-top:8px}
  .ja-rus>.ja-ru:first-child{border-top:1px solid var(--hair);margin-top:0}
  .ja-ru-id .ja-id{max-width:100%}
  .ja-ru-act{margin-left:0}
  .ja-banner-meta{margin-left:34px;white-space:normal}
  .ja-src{grid-template-columns:1fr}
  .ja-search{margin-left:0;width:100%}
  .ja-search input{min-width:0;width:100%}
  /* одна форма списка: та же таблица превращается в карточки */
  .ja-scroll{overflow-x:visible}
  .ja-users{min-width:0;display:block}
  .ja-users thead{display:none}
  .ja-users tbody{display:flex;flex-direction:column;gap:10px;padding:12px}
  .ja-users tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;border:1px solid var(--hair);border-radius:12px;padding:12px;background:#fff}
  .ja-users tr[hidden]{display:none}
  .ja-users tr.ja-attn{border-color:var(--warn-line);background:var(--jh-warn-bg)}
  .ja-users td,.ja-users tr.ja-attn td{display:block;border:0;padding:2px 0;background:transparent;white-space:normal;text-align:left}
  .ja-users td.n{text-align:left}
  .ja-users td.ja-who{grid-column:1 / -1;min-width:0}
  .ja-users td[data-label]:not(.ja-who)::before{content:attr(data-label);display:block;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--mut)}
  .ja-meter{margin-left:0}
}
