/* Общие формы публикации и продуктового кабинета. */
.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[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; }

/* Форма вакансии: кабинет, каталог сайта и Mini App. */
.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-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; padding-top:16px; border-top:1px solid var(--line,#d8e0eb); }
.ve-actions .ve-danger { margin-inline-start:auto; }
.ve-danger { min-height:44px; padding:0 16px; border:0; border-radius:12px; background:none; color:#c4321f; font:inherit; font-weight:700; cursor:pointer; }
.ve-danger:hover { background:#fdecea; }
.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); }
  .ve-actions > * { flex:1 1 100%; }
  .ve-actions .ve-danger { margin-inline-start:0; }
}
