/* Общие формы публикации и продуктового кабинета. */
.cabinet-block { margin-block:24px; padding-block:12px; border-block-end:1px solid var(--line, #d8e0eb); }
.cabinet-block h2,.cabinet-block h3 { margin-block:0 12px; }
.cabinet-block button { margin-block:8px; margin-inline-end:8px; }
.cab-form label.cab-field { display:grid; gap:8px; margin-block:16px; }
.cab-field input:not([type=checkbox]),.cab-field textarea,.cab-field select { width:100%; min-height:44px; padding:12px; font:inherit; border:1px solid var(--line,#d8e0eb); border-radius:12px; background:var(--white,#fff); color:var(--ink,#172641); }
.cab-field input[aria-invalid="true"],.cab-field textarea[aria-invalid="true"],.cab-field select[aria-invalid="true"] { border-color:#c4321f; }
.cab-field input[type=checkbox] { width:20px; height:20px; accent-color:var(--blue,#0968f9); }
.cab-field textarea { min-height:100px; resize:vertical; }
.product-table-wrap { max-width:100%; overflow:auto; }
.product-table { border-collapse:collapse; width:100%; font-variant-numeric:tabular-nums; }
.product-table caption { text-align:start; margin-block:12px; font-weight:700; }
.product-table th,.product-table td { padding:12px; border-block-end:1px solid var(--line,#d8e0eb); text-align:start; }
.product-table thead th { font-size:14px; }
.product-table tbody th { min-width:180px; }
.product-table caption.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.product-table thead th { color:var(--muted,#53647a); font-size:12px; font-weight:800; white-space:nowrap; }
.product-table td { font-weight:600; }
.product-table tr.is-total th, .product-table tr.is-total td { border-block-end:0; font-weight:800; background:#f5f9ff; }
.product-table tr.is-total th { border-radius:12px 0 0 12px; }
.product-table tr.is-total td:last-child { border-radius:0 12px 12px 0; }

/* Отклики и результаты: воронка и график по дням. Один синий ряд, сетка и оси приглушены. */
.funnel-card, .funnel-chart-card { margin-bottom:16px; }
.funnel-steps { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:16px; }
.funnel-step-top { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; margin-bottom:8px; }
.funnel-step-label { font-size:14px; font-weight:700; color:var(--ink,#172641); }
.funnel-step-value { font-size:18px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.funnel-step-rate { margin-left:auto; color:var(--muted,#53647a); font-size:12px; font-weight:600; }
.funnel-track { height:12px; border-radius:6px; background:#eef3fa; overflow:hidden; }
.funnel-bar { height:100%; border-radius:6px; background:linear-gradient(90deg,#0758d4,#2f86ff); transition:width .5s cubic-bezier(.2,.8,.2,1); }
.funnel-chart-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.funnel-chart-head .cab-card-title { margin-bottom:4px; }
.funnel-switch { display:inline-flex; padding:4px; gap:4px; border-radius:12px; background:#eef3fa; }
.funnel-switch button { min-height:36px; padding:6px 14px; border:0; border-radius:9px; background:none; color:#34445b; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.funnel-switch button[aria-pressed=true] { background:#fff; color:#0758d4; box-shadow:0 1px 3px #0b2a5524; }
.funnel-switch button:focus-visible { outline:2px solid var(--blue,#0968f9); outline-offset:2px; }
.funnel-chart-total { margin:12px 0 4px; color:var(--muted,#53647a); font-size:14px; }
.funnel-chart-total strong { color:var(--ink,#172641); font-size:24px; font-weight:800; letter-spacing:-.02em; }
.funnel-chart { position:relative; }
.funnel-svg { display:block; width:100%; height:auto; overflow:visible; touch-action:pan-y; }
.funnel-grid { stroke:#e7edf5; stroke-width:1; }
.funnel-axis { fill:#7a8aa0; font-size:11px; font-variant-numeric:tabular-nums; }
.funnel-area { fill:#0968f9; fill-opacity:.1; }
.funnel-line { fill:none; stroke:#0968f9; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.funnel-guide { stroke:#9bb3d3; stroke-width:1; stroke-dasharray:3 3; }
.funnel-dot { fill:#0968f9; stroke:#fff; stroke-width:2; }
.funnel-tip { position:absolute; top:0; transform:translateX(-50%); display:grid; gap:2px; padding:8px 12px; border-radius:10px; background:#0f213d; color:#fff; font-size:12px; line-height:1.4; white-space:nowrap; pointer-events:none; box-shadow:0 8px 20px #0b2a5530; }
.funnel-tip span { color:#b7c7de; }
.funnel-tip[hidden] { display:none; }
@media (prefers-reduced-motion:reduce) { .funnel-bar { transition:none; } }

/* Форма вакансии: кабинет, каталог сайта и Mini App. */
.ve-editor { container:vacancy-editor / inline-size; color:var(--ink,#08152b); }
.ve-intro { display:flex; align-items:flex-start; gap:16px; padding:0 40px 24px 0; }
.ve-brand-mark { flex:none; width:48px; height:48px; object-fit:contain; }
.ve-intro-copy { min-width:0; }
.ve-heading { margin:0; font-size:clamp(24px,4cqi,32px); line-height:1.2; font-weight:800; letter-spacing:-.03em; text-wrap:pretty; }
.ve-lead { margin:12px 0 0; color:var(--muted,#53647a); font-size:14px; line-height:1.6; max-width:60ch; }
.ve-intro .cab-section-head { flex:1; margin:0; }
/* В кабинете шапку раздела не нужно отодвигать от кнопки закрытия диалога. */
.ve-intro:has(> .cab-section-head), .ve-intro:has(> .cab-vacancy-head) { padding-right:0; }
.ve-drafts.ve-card { padding:24px; border-radius:16px; }
.ve-drafts .ve-drafts-head { margin:0; padding-bottom:16px; border-bottom:1px solid var(--line,#d8e0eb); }
.ve-empty { display:flex; align-items:center; gap:24px; padding:32px 0 8px; }
.ve-empty-mascot { flex:none; width:144px; height:144px; object-fit:contain; }
.ve-empty-copy { display:grid; justify-items:start; gap:12px; min-width:0; }
.ve-editor .ve-empty-title, #detail-body .ve-empty-title { margin:0; font-size:20px; line-height:1.3; font-weight:800; letter-spacing:-.02em; }
.ve-empty-copy .ve-muted { max-width:48ch; font-size:14px; line-height:1.65; }
.ve-empty-copy .ve-create { margin-top:8px; }
.ve-create { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; }
.ve-create::before { content:'+'; font-size:22px; line-height:1; font-weight:400; }
.ve-editor button:focus-visible { outline:2px solid var(--blue,#0968f9); outline-offset:4px; }
.ve-editor ::selection { background:#cbe2ff; color:#08152b; }
@container vacancy-editor (max-width:440px) {
  .ve-intro { gap:12px; padding-bottom:20px; }
  .ve-brand-mark { width:36px; height:36px; }
  .ve-heading { font-size:24px; }
  .ve-drafts.ve-card { padding:20px; }
  .ve-empty { flex-direction:column; align-items:flex-start; gap:16px; padding-top:24px; }
  .ve-empty-mascot { width:112px; height:112px; align-self:center; }
  .ve-empty-copy { width:100%; }
  .ve-empty-copy .ve-create { width:100%; }
  .ve-drafts-head .ve-create { width:100%; }
}
.ve-card { background:var(--white,#fff); border:1px solid var(--line,#d8e0eb); border-radius:var(--radius,20px); padding:24px; min-width:0; }
.ve-card + .ve-card, .ve-drafts + .ve-workspace:not(:empty) { margin-top:16px; }
.ve-title { font-size:18px; line-height:1.35; letter-spacing:-.03em; margin:0; }
.ve-muted, .ve-hint { color:var(--muted,#53647a); font-size:13px; line-height:1.5; margin:0; }
.ve-drafts-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.ve-list { list-style:none; margin:0; padding:0; display:grid; }
.ve-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:1px solid var(--line,#d8e0eb); }
.ve-row > div { min-width:0; }
.ve-row-title { margin:0; font-weight:700; overflow-wrap:anywhere; }
.ve-row button { flex:none; }
.ve-form { display:grid; gap:24px; }
.ve-group { border:0; margin:0; padding:0; min-width:0; }
.ve-legend { padding:0; margin-bottom:12px; font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--muted,#53647a); }
.ve-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.ve-field { display:grid; gap:8px; align-content:start; min-width:0; }
.ve-field[hidden] { display:none; }
.ve-wide { grid-column:1 / -1; }
.ve-label { font-size:13px; font-weight:800; line-height:1.4; }
.ve-optional { color:var(--muted,#53647a); font-weight:400; }
.ve-required { color:#c4321f; font-weight:800; }
.ve-input, .ve-form .ve-input { width:100%; height:auto; min-height:48px; padding:12px 16px; border:1px solid #cbd8e6; border-radius:12px; background:var(--white,#fff); color:var(--ink,#172641); font:inherit; font-size:15px; line-height:1.4; box-sizing:border-box; }
.ve-select, .ve-form .ve-select { appearance:none; padding-right:40px; background-image:linear-gradient(45deg,transparent 50%,#53647a 50%),linear-gradient(135deg,#53647a 50%,transparent 50%); background-position:calc(100% - 22px) 21px,calc(100% - 16px) 21px; background-size:6px 6px; background-repeat:no-repeat; }
.ve-textarea { min-height:72px; resize:vertical; }
.ve-input:hover { border-color:#9bbfeb; }
.ve-input:focus-visible { outline:none; border-color:var(--blue,#0968f9); box-shadow:0 0 0 3px #0968f933; }
.ve-input[aria-invalid="true"] { border-color:#c4321f; }
.ve-error { color:#c4321f; font-size:12px; font-weight:600; line-height:1.5; margin:0; }
.ve-alert { margin:0; padding:12px 16px; border-radius:12px; background:#fdecea; border:1px solid #f3c9c1; color:#8f2414; font-size:13px; line-height:1.6; }
.ve-status { margin:0; color:var(--muted,#53647a); font-size:13px; min-height:1.5em; }
.ve-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; padding-top:20px; border-top:1px solid var(--line,#d8e0eb); }
.ve-actions-main { display:flex; flex-wrap:wrap; gap:12px; margin-inline-start:auto; }
.ve-actions-review { justify-content:flex-end; }
.ve-actions-review > .ve-secondary { order:-1; }
.ve-actions .ve-submit, .ve-actions .ve-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 22px; border-radius:12px; font-size:15px; font-weight:800; line-height:1.2; }
.ve-actions .ve-submit { box-shadow:inset 0 1px 0 #ffffff40, 0 6px 14px #0968f92e; }
.ve-actions .ve-submit:hover { box-shadow:inset 0 1px 0 #ffffff40, 0 8px 18px #0968f938; }
.ve-actions .ve-secondary { border:1px solid #cbd8e6; background:#fff; color:var(--ink,#172641); }
.ve-actions .ve-secondary:hover { border-color:#9bbfeb; background:#f5f9ff; }
.ve-danger { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 14px; border:0; border-radius:12px; background:none; color:#c4321f; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.ve-danger::before { content:''; width:16px; height:16px; flex:none; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6'/%3E%3C/svg%3E") center/contain no-repeat; }
.ve-danger:hover { background:#fdecea; }
@container vacancy-editor (max-width:560px) {
  .ve-actions { flex-direction:column-reverse; align-items:stretch; }
  .ve-actions-main { flex-direction:column-reverse; margin:0; }
  .ve-actions .ve-submit, .ve-actions .ve-secondary { width:100%; }
  .ve-actions-review { flex-direction:column; }
  .ve-actions-review > .ve-secondary { order:0; }
  .ve-danger { align-self:center; }
}

/* Контакт: выбор способов связи и поле для каждого выбранного. */
.ve-contact-ways { display:flex; flex-wrap:wrap; gap:8px; }
.ve-contact-way { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:8px 14px; border:1px solid #cbd8e6; border-radius:999px; background:#fff; color:#34445b; font:inherit; font-size:14px; font-weight:700; cursor:pointer; transition:background-color .15s, border-color .15s, color .15s; }
.ve-contact-way:hover { border-color:#9bbfeb; background:#f5f9ff; }
.ve-contact-way[aria-pressed=true] { border-color:#0968f9; background:#eaf3ff; color:#0758d4; }
.ve-contact-way:focus-visible { outline:2px solid var(--blue,#0968f9); outline-offset:2px; }
.ve-contact-check { width:16px; height:16px; flex:none; border:1.5px solid #9fb1c8; border-radius:5px; background:#fff; }
.ve-contact-way[aria-pressed=true] .ve-contact-check { border-color:#0968f9; background:#0968f9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3.5 8.5 3 3 6-7'/%3E%3C/svg%3E") center/12px no-repeat; }
.ve-contact-rows { display:grid; gap:8px; }
.ve-contact-rows:has(.ve-contact-row:not([hidden])) { margin-top:4px; }
.ve-contact-row { display:grid; grid-template-columns:96px minmax(0,1fr) 40px; align-items:center; gap:8px; }
.ve-contact-row[hidden] { display:none; }
.ve-contact-tag { font-size:13px; font-weight:800; color:#34445b; }
.ve-contact-remove { width:40px; height:40px; border:0; border-radius:10px; background:none; color:#7a8aa0; font-size:22px; line-height:1; cursor:pointer; }
.ve-contact-remove:hover { background:#fdecea; color:#c4321f; }
.ve-field:has(input[name=contact][aria-invalid=true]) .ve-contact-way:not([aria-pressed=true]) { border-color:#e7a497; }
@container vacancy-editor (max-width:440px) {
  .ve-contact-row { grid-template-columns:minmax(0,1fr) 40px; }
  .ve-contact-tag { grid-column:1 / -1; }
}
.ve-review { display:grid; gap:16px; }
.ve-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0; }
.ve-summary div { min-width:0; }
.ve-summary dt { font-size:12px; color:var(--muted,#53647a); }
.ve-summary dd { margin:2px 0 0; font-weight:600; overflow-wrap:anywhere; white-space:pre-line; }
.ve-check { display:flex; align-items:flex-start; gap:12px; padding:16px; border-radius:12px; background:#f3f8ff; font-size:14px; line-height:1.5; }
.ve-check input { width:20px; height:20px; margin:1px 0 0; flex:none; accent-color:var(--blue,#0968f9); cursor:pointer; }
.ve-check label { cursor:pointer; }
.ve-done { display:grid; gap:12px; justify-items:start; }
@media (max-width:640px) {
  .ve-card { padding:16px; }
  .ve-grid, .ve-summary { grid-template-columns:minmax(0,1fr); }
}

/* Поддержка по сменам: темы, список смен, форма и переписка. */
.support-topics { list-style:none; margin:0 0 16px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.support-topic { display:flex; align-items:flex-start; gap:12px; padding:16px; border:1px solid var(--line,#d8e0eb); border-radius:16px; background:var(--white,#fff); min-width:0; }
.support-topic img { flex:none; width:40px; height:40px; object-fit:contain; }
.support-topic strong { display:block; font-size:15px; line-height:1.35; letter-spacing:-.01em; }
.support-topic p { margin:4px 0 0; color:var(--muted,#53647a); font-size:13px; line-height:1.5; }
.support-list { list-style:none; margin:0; padding:0; display:grid; }
.support-list > li + li { border-top:1px solid #edf1f6; }
.support-shift { display:flex; align-items:center; gap:16px; padding:16px 12px; margin-inline:-12px; border-radius:14px; transition:background-color .15s; }
.support-shift.is-selected { background:#f3f8ff; }
.support-shift > img { flex:none; width:44px; height:44px; object-fit:contain; }
.support-shift-copy { flex:1; min-width:0; }
.support-shift h3 { margin:0; font-size:15px; line-height:1.4; overflow-wrap:anywhere; }
.support-shift .cab-muted { margin:2px 0 0; font-size:13px; line-height:1.5; }
.support-shift-copy .support-pill { margin-top:8px; }
.support-shift button { flex:none; }
.support-pill { display:inline-flex; align-items:center; padding:2px 10px; border-radius:999px; font-size:12px; font-weight:800; line-height:1.6; white-space:nowrap; }
.support-pill-info { background:var(--ice,#eaf3ff); color:#0758d4; }
.support-pill-warn { background:#fff6e0; color:#8a5a00; }
.support-pill-ok { background:#e8f6ee; color:#1a7f45; }
.support-pill-muted { background:#eef1f5; color:#4a5b73; }
.support-case { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:64px; padding:12px; margin-inline:-12px; box-sizing:content-box; border:0; border-radius:14px; background:none; color:inherit; font:inherit; text-align:start; cursor:pointer; }
.support-case:hover { background:#f6f9fc; }
.support-case:focus-visible { outline:2px solid var(--blue,#0968f9); outline-offset:-2px; }
.support-case-copy { display:grid; gap:2px; min-width:0; }
.support-case-copy strong { font-size:15px; line-height:1.4; }
.support-case-copy span { color:var(--muted,#53647a); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.support-empty img { width:112px; height:112px; object-fit:contain; margin:0 0 4px; }
.cab-empty > img { object-fit:contain; }
.support-form { display:grid; gap:16px; margin-top:16px; padding:20px; border:1px solid #cfe0f6; border-radius:16px; background:#f7fbff; }
.support-form .cab-field { margin:0; }
.support-form .cab-hint, .support-thread .cab-hint { margin:0; }
.support-form [role=status]:empty, .support-thread [role=status]:empty { display:none; }
.support-form [role=status] { color:#c4321f; font-weight:600; }
.support-form-head { display:flex; align-items:center; gap:12px; }
.support-form-head img { flex:none; width:40px; height:40px; object-fit:contain; }
.support-form-head h3 { margin:0; font-size:17px; line-height:1.35; overflow-wrap:anywhere; }
.support-eyebrow { margin:0; color:var(--muted,#53647a); font-size:12px; font-weight:700; }
.support-actions { display:flex; flex-wrap:wrap; gap:12px; }
.support-thread { display:grid; gap:20px; }
.support-thread-head { display:flex; align-items:center; gap:16px; }
.support-thread-head img { flex:none; width:48px; height:48px; object-fit:contain; }
.support-thread-head > div { flex:1; min-width:0; }
.support-thread-head .cab-card-title { margin:0 0 2px; }
.support-thread-head .cab-muted { margin:0; font-size:13px; }
.support-messages { list-style:none; margin:0; padding:16px; display:grid; gap:12px; border-radius:16px; background:#f6f9fc; }
.support-message { justify-self:start; max-width:min(560px,88%); padding:12px 16px; border-radius:16px 16px 16px 4px; background:var(--white,#fff); border:1px solid #e3ebf4; }
.support-message.is-mine { justify-self:end; border-radius:16px 16px 4px 16px; background:#e6f0ff; border-color:#cfe0f6; }
.support-message.is-support { border-color:#cfe0f6; box-shadow:inset 3px 0 0 var(--blue,#0968f9); }
.support-message-meta { display:flex; flex-wrap:wrap; gap:4px 8px; margin:0 0 4px; font-size:12px; color:var(--muted,#53647a); }
.support-message-meta strong { color:var(--ink,#172641); }
.support-message-body { margin:0; font-size:14px; line-height:1.55; white-space:pre-line; overflow-wrap:anywhere; }
.support-resolution { padding:16px; border-radius:14px; background:#e8f6ee; color:#14532d; }
.support-resolution p { margin:4px 0 0; font-size:14px; line-height:1.55; white-space:pre-line; }
.support-thread .cab-field { margin:0; }
.support-moderation { display:grid; gap:12px; padding-top:20px; border-top:1px solid #edf1f6; }
.support-moderation h3 { margin:0; font-size:15px; }
.support-back { margin-top:12px; border:0; background:none; cursor:pointer; }
@media (max-width:900px) {
  .support-topics { grid-template-columns:minmax(0,1fr); gap:0; border:1px solid var(--line,#d8e0eb); border-radius:16px; background:var(--white,#fff); overflow:hidden; }
  .support-topic { align-items:center; padding:12px 16px; border:0; border-radius:0; }
  .support-topic + .support-topic { border-top:1px solid #edf1f6; }
  .support-topic img { width:32px; height:32px; }
  .support-topic p { margin-top:2px; }
}
@media (max-width:640px) {
  .support-shift { flex-wrap:wrap; align-items:flex-start; }
  .support-shift > img { width:36px; height:36px; }
  .support-shift button { width:100%; }
  .support-form { padding:16px; }
  .support-actions > * { flex:1 1 100%; }
  .support-messages { padding:12px; }
  .support-message { max-width:100%; }
}

/* Решение модератора по жалобе на работника. */
.support-penalties { display:grid; gap:10px; margin:0 0 16px; padding:16px; border:1px solid #f3dfae; border-radius:14px; background:#fffaf0; }
.support-penalties legend { padding:0 6px; font-size:13px; font-weight:800; }
.support-penalty { margin:8px 0 0; color:#8a5a00; font-size:13px; font-weight:700; }

/* Знаки Telegram и MAX: настоящие логотипы в кнопках и списках способов входа. */
.brand-logo{width:22px;height:22px;flex:none;object-fit:contain;vertical-align:middle}
.brand-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.cab-list-icon--brand{background:transparent}
.cab-list-icon--brand .brand-logo{width:36px;height:36px}
