/* Простые стили без новых возможностей CSS: работают в Firefox ESR 115 и Chrome 109 (Windows 7). */
/* Фирменный стиль Biznova: мох, светлый мох, глина; шрифт Onest хранится у нас (static/fonts/onest, лицензия OFL). */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest/onest-cyrillic-wght-normal.woff2") format("woff2-variations"),
       url("../fonts/onest/onest-cyrillic-wght-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest/onest-latin-ext-wght-normal.woff2") format("woff2-variations"),
       url("../fonts/onest/onest-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest/onest-latin-wght-normal.woff2") format("woff2-variations"),
       url("../fonts/onest/onest-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --moss: #4A6354; --moss-dark: #3B5045; --moss-light: #9DB8A2; --moss-pale: #E4ECE5;
  --clay: #C9A27E; --clay-pale: #F3E9DE;
  --bg: #F6F5F1; --ink: #2A2F2C; --muted: #5E6660; --line: #E2E0D8; --line-strong: #8E968F;
  --danger: #B42318; --danger-pale: #FBEAE6;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; font-family: "Onest", Arial, Helvetica, sans-serif; font-size: 15px; color: var(--ink); background: var(--bg); }
a { color: var(--moss); text-decoration: none; }
a:hover { text-decoration: underline; color: var(--moss-dark); }
h1 { font-size: 24px; font-weight: 700; margin: 0 0 16px; }
h2 { font-size: 18px; font-weight: 700; margin: 24px 0 12px; }
.small { font-size: 13px; }
.muted { color: var(--muted); }

.topbar { display: flex; align-items: center; flex-wrap: wrap; padding: 8px 16px; background: var(--moss); color: #fff; }
.topbar > * { margin-right: 12px; }
.topbar a, .topbar .link { color: #fff; }
.brand { display: inline-flex; align-items: center; font-weight: 800; font-size: 19px; letter-spacing: -0.3px; }
.brand img { width: 28px; height: 28px; margin-right: 8px; }
.brand:hover { text-decoration: none; color: #fff; }
.brand .nova { color: var(--clay); }
.org-name { font-weight: 600; }
.spacer { flex: 1; }
.topbar form { margin: 0; display: inline; }
.link { background: none; border: 0; padding: 0 4px; font: inherit; cursor: pointer; color: var(--moss); }
.link.active { font-weight: 700; text-decoration: underline; }

.menu { display: flex; flex-wrap: wrap; padding: 0 12px; background: #fff; border-bottom: 1px solid var(--line); }
.menu a { padding: 11px 8px; margin-right: 4px; color: var(--ink); border-bottom: 3px solid transparent; }
.menu a:hover { text-decoration: none; border-bottom-color: var(--clay); }

.content { max-width: 1100px; margin: 0 auto; padding: 20px 16px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.cards { display: flex; flex-wrap: wrap; margin: 0 -8px; }
.cards .card { width: 260px; margin: 0 8px 16px; }

table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: #EFEEE8; font-weight: 600; }
.table-wrap { overflow-x: auto; border-radius: 10px; margin-bottom: 16px; }

.btn { display: inline-block; padding: 8px 16px; border: 1px solid var(--moss); border-radius: 8px; background: var(--moss);
       color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.btn:hover { text-decoration: none; background: var(--moss-dark); color: #fff; }
.btn-light { background: #fff; color: var(--moss); }
.btn-light:hover { background: var(--moss-pale); color: var(--moss-dark); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { background: #8f1c13; color: #fff; }

form p { margin: 0 0 12px; }
form label { display: block; margin-bottom: 4px; font-weight: 600; }
input[type=text], input[type=password], input[type=email], input[type=number], input[type=date],
input[type=datetime-local], select, textarea {
  width: 100%; max-width: 420px; padding: 7px 8px; border: 1px solid var(--line-strong); border-radius: 6px; font: inherit; background: #fff; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--moss-light); outline-offset: 0; border-color: var(--moss); }
ul.checkboxes, form ul { list-style: none; padding: 0; margin: 0; }
form ul label { font-weight: normal; }
.errorlist { color: var(--danger); list-style: none; padding: 0; margin: 0 0 8px; }
.helptext { display: block; color: var(--muted); font-size: 13px; }

.msg { padding: 10px 12px; border-radius: 8px; margin-bottom: 12px; background: var(--moss-pale); }
.msg-success { background: #DDEBDF; }
.msg-error { background: var(--danger-pale); }
.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; background: #ECEBE5; }
.badge-on { background: #D6E5D9; }
.badge-off { background: var(--clay-pale); color: var(--muted); }

.login-box { max-width: 380px; margin: 48px auto; }
.login-brand { text-align: center; margin: 40px 0 0; }
.login-brand img { width: 72px; height: 72px; }
.login-brand .name { font-size: 34px; font-weight: 800; letter-spacing: -0.5px; color: var(--moss); }
.login-brand .name .nova { color: var(--clay); }
.login-brand .slogan { color: var(--muted); }
.login-box { margin-top: 20px; }
.pagination { margin-top: 12px; }

@media (max-width: 600px) {
  body { font-size: 16px; }
  .content { padding: 12px; }
  .cards .card { width: 100%; }
  input[type=text], input[type=password], select { max-width: none; }
}

/* Каталог */
.num { text-align: right; white-space: nowrap; }
.thumb { width: 48px; }
.thumb img { display: block; object-fit: cover; border-radius: 3px; }
.filters .row { display: flex; flex-wrap: wrap; align-items: center; margin: 0 -6px; }
.filters .col, .filters .col-wide { padding: 0 6px; margin-bottom: 6px; }
.filters .col-wide { flex: 1 1 260px; }
.filters input[type=text] { max-width: none; }
label.inline { display: inline; font-weight: normal; }
textarea { max-width: 420px; }

/* Склад и документы */
.actions { display: flex; flex-wrap: wrap; align-items: center; }
.actions > * { margin: 0 8px 8px 0; }
.actions form { margin: 0 8px 8px 0; }
.grid { display: flex; flex-wrap: wrap; margin: 0 -8px; }
.grid .field { width: 33.33%; min-width: 220px; padding: 0 8px; margin-bottom: 10px; }
.grid .field input, .grid .field select { max-width: none; }
.warn { color: var(--danger); font-weight: 600; }
td input.qty { width: 80px; }
td input.price { width: 110px; }
td input.qty, td input.price { padding: 4px 6px; border: 1px solid var(--line-strong); border-radius: 6px; font: inherit; text-align: right; }
form.inline { display: inline; }
.nowrap { white-space: nowrap; }
input.money { text-align: right; }
.addline input[type=text] { max-width: none; }
@media (max-width: 600px) { .grid .field { width: 100%; } }

.topbar .lang { margin-right: 16px; }

/* ---------- Касса ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pos-page .content { max-width: none; padding: 12px 16px; }
.pos { display: flex; flex-wrap: wrap; align-items: flex-start; margin: 0 -8px; }
.pos-left { flex: 999 1 520px; min-width: 0; padding: 0 8px; }
.pos-right { flex: 1 1 340px; max-width: 420px; padding: 0 8px; }
.pos-scan { display: flex; margin-bottom: 4px; }
.pos-scan input[type=text] { flex: 1 1 auto; max-width: none; height: 46px; font-size: 18px; border: 2px solid var(--moss); border-radius: 10px; margin-right: 8px; padding: 0 12px; }
.pos-scan .btn { height: 46px; }
.pos-hint { margin: 0 0 10px; }
.pos-lines { padding: 0; overflow: hidden; }
.pos-lines .table-wrap { margin: 0; border-radius: 10px 10px 0 0; }
.pos-lines td { vertical-align: middle; }
.pos-last td { background: var(--moss-pale); }
.pos-counts { margin: 0; padding: 8px 12px; }
.pos-empty { padding: 24px 16px; margin: 0; }
.pos-qty-col { width: 190px; }
.pos-qty { display: flex; align-items: center; }
.pos-qty form { margin: 0 3px 0 0; }
.pos-step { width: 38px; height: 38px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; font: inherit; font-size: 20px; cursor: pointer; }
.pos-step:hover { background: var(--moss-pale); }
input.pos-qty-input { width: 64px; height: 38px; text-align: center; font-weight: 700; font-size: 16px; padding: 0 4px; }
.pos-remove { width: 34px; height: 34px; border: 0; border-radius: 8px; background: var(--danger-pale); color: var(--danger); font: inherit; font-size: 20px; cursor: pointer; }
.pos-choices { padding: 12px; }
.pos-choices p { margin: 0 0 8px; }
.pos-choice-list { display: flex; flex-wrap: wrap; margin: 0 -4px; }
.pos-choice-list form { margin: 0 4px 8px; flex: 1 1 220px; }
.pos-choice { width: 100%; min-height: 44px; text-align: left; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; cursor: pointer; display: flex; flex-direction: column; }
.pos-choice:hover { border-color: var(--moss); }
.pos-sold { border-color: var(--moss-light); background: #F1F6F2; }
.pos-sold p { margin: 0 0 6px; }
.pos-change { font-size: 22px; }
.pos-print-ask { display: flex; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.pos-print-ask > * { margin: 0 8px 4px 0; }
.pos-print-ask span { font-weight: 600; }
.pos-total-card { padding: 12px 14px; }
.pos-customer { display: flex; align-items: center; flex-wrap: wrap; }
.pos-customer > * { margin-right: 6px; }
.pos-inline { display: inline; margin: 0; }
.pos-customer-search { display: flex; margin: 8px 0; }
.pos-customer-search input[type=text] { flex: 1 1 auto; max-width: none; margin-right: 6px; }
.pos-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 6px; }
.pos-total strong { font-size: 38px; font-weight: 800; letter-spacing: -0.5px; font-variant-numeric: tabular-nums; }
.pos-total small { font-size: 16px; color: var(--muted); font-weight: 600; }
.pos-pay-buttons { display: flex; flex-wrap: wrap; margin: 0 -4px 8px; }
.pos-pay-buttons > * { flex: 1 1 45%; margin: 0 4px 8px; }
.pos-pay-buttons form { margin: 0 4px 8px; }
.pos-pay-buttons .btn { width: 100%; }
.btn.pos-big { height: 52px; font-size: 17px; font-weight: 700; }
.btn.pos-mid { height: 44px; font-weight: 700; }
.btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.pos-tiles-title { margin: 4px 0 6px; }
.pos-tiles { display: flex; flex-wrap: wrap; margin: 0 -3px 8px; }
.pos-tiles form { flex: 1 1 30%; margin: 0 3px 6px; }
.pos-tile { width: 100%; height: 58px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2px 4px; overflow: hidden; }
.pos-tile:hover { border-color: var(--moss); }
.pos-tools { display: flex; flex-wrap: wrap; margin: 0 -3px; }
.pos-tools form { margin: 0 3px 6px; }
.pos-pay { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(42, 47, 44, 0.55); z-index: 20; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pos-pay[hidden] { display: none; }
.pos-pay-box { width: 100%; max-width: 640px; max-height: 100%; overflow-y: auto; margin: 0; }
.pos-pay-head { display: flex; justify-content: space-between; align-items: baseline; }
.pos-pay-head h2 { margin: 0 0 12px; }
.pos-pay-total { font-size: 30px; font-weight: 800; }
.pos-pay-grid { display: flex; flex-wrap: wrap; margin: 0 -6px; }
.pos-pay-grid p { flex: 1 1 45%; margin: 0 6px 10px; }
.pos-pay input.money { max-width: none; height: 44px; font-size: 20px; }
.pos-given { background: var(--bg); border-radius: 10px; padding: 12px; margin-bottom: 10px; }
.pos-given p { margin: 0 0 6px; }
.pos-change-live strong { font-size: 20px; }
.pos-qr { display: flex; align-items: center; margin-bottom: 10px; }
.pos-qr img { margin-right: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.pos-pay-row label.inline { margin-right: 10px; }
input.pos-check { width: 150px; }
.pos-pay-actions { display: flex; }
.pos-pay-actions .btn { margin-right: 8px; }
.pos-pay-actions .pos-big { flex: 1 1 auto; }
.pos-print-frame { position: absolute; width: 0; height: 0; border: 0; visibility: hidden; }
@media (max-width: 700px) {
  .pos-right { max-width: none; }
  .pos-qty-col { width: auto; }
  .pos-lines th:first-child, .pos-lines td:first-child,
  .pos-lines th:nth-child(4), .pos-lines td:nth-child(4) { display: none; }
  .pos-lines th, .pos-lines td { padding: 8px 4px; }
  .pos-qty .small { display: none; }
  .pos-step { width: 32px; height: 32px; font-size: 18px; }
  input.pos-qty-input { width: 44px; height: 32px; }
  .pos-remove { width: 30px; height: 30px; }
  .pos-total strong { font-size: 30px; }
  .btn.pos-big { height: 46px; font-size: 16px; }
}

/* ---------- Отчёты ---------- */
.report-presets { margin: 0 0 8px; }
.report-filter label { font-weight: 600; }
.report-filter input[type=date] { max-width: 170px; }
.report-kpis { display: flex; flex-wrap: wrap; margin: 0 -6px 8px; }
.report-kpis .card { flex: 1 1 140px; margin: 0 6px 10px; display: flex; flex-direction: column; }
.report-kpis strong { font-size: 24px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: 2px; }
.report-pl { max-width: 640px; }
.report-net th { font-size: 18px; background: var(--moss-pale); }
.report-matrix { width: auto; min-width: 420px; }
.report-matrix td, .report-matrix th { white-space: nowrap; }
.report-matrix td:first-child, .report-matrix th:first-child { position: sticky; left: 0; background: #fff; white-space: normal; min-width: 200px; max-width: 320px; z-index: 1; }
.report-matrix th:first-child { background: #EFEEE8; }
.report-matrix .m-total { font-weight: 600; }
.report-matrix td.num a { color: inherit; text-decoration: underline; text-decoration-style: dotted; }
@media (max-width: 600px) { .report-matrix td:first-child, .report-matrix th:first-child { min-width: 130px; } }
.report-matrix .neg { color: var(--danger); }
.report-matrix .m-sub td:first-child { padding-left: 28px; }
.report-matrix .m-head td, .report-matrix .m-subhead td { font-weight: 600; padding-top: 14px; }
.report-matrix .m-sum td, .report-matrix .m-subhead td { font-weight: 600; background: var(--bg); }
.report-matrix .m-pct td { color: var(--muted); font-size: 13px; }
.report-matrix .m-net td, .report-matrix .m-balance td { font-weight: 700; background: var(--moss-pale); }
.report-matrix .m-sum td:first-child, .report-matrix .m-subhead td:first-child { background: var(--bg); }
.report-matrix .m-net td:first-child, .report-matrix .m-balance td:first-child { background: var(--moss-pale); }
@media (max-width: 600px) {
  .report-kpis .card { padding: 10px 12px; }
  .report-kpis strong { font-size: 19px; }
}

/* ---------- Карточка контрагента: всё на одном экране ---------- */
.cp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px; }
.cp-col { border: 0; margin: 0; padding: 0; min-width: 0; }
.cp-col legend { font-weight: 700; color: var(--moss); padding: 0; margin-bottom: 6px; font-size: 14px; }
.cp-field { margin-bottom: 8px; }
.cp-form .cp-field label { font-size: 12.5px; font-weight: 600; color: var(--muted); margin-bottom: 2px; }
.cp-form .cp-field input[type=text], .cp-form .cp-field input[type=email], .cp-form .cp-field select,
.cp-form .cp-field textarea { max-width: none; width: 100%; padding: 5px 8px; font-size: 14px; min-height: 0; }
.cp-form .cp-check label { color: inherit; font-weight: normal; font-size: 14px; }
.cp-form .has-error input, .cp-form .has-error select { border-color: var(--danger); }
.cp-form .errorlist { font-size: 12.5px; margin: 2px 0 0; }
.cp-form .actions { margin-top: 6px; }
.cp-req { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 20px; margin: 8px 0 0; }
.cp-req div { font-size: 14px; }
.cp-req span { display: block; font-size: 12px; color: var(--muted); }
@media (max-width: 900px) { .cp-grid, .cp-req { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .cp-grid, .cp-req { grid-template-columns: 1fr; } }

/* Техподдержка в шапке: заметная, но спокойная кнопка цвета глины */
.topbar a.support { color: #2A2F2C; background: var(--clay, #C9A27E); border-radius: 6px; padding: 3px 10px;
  font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.topbar a.support:hover, .topbar a.support:focus { background: #d6b593; }

/* Плашка об оплате для владельца */
.msg-warn { background: var(--clay-pale); border-left: 4px solid var(--clay); }
.plan-table td:first-child { width: 28px; }
.plan-total { font-size: 16px; margin: 14px 0; }
.plan-packages { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-bottom: 14px; }
.plan-package { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; background: #fff; position: relative; }
.plan-package:focus-within { outline: 2px solid var(--moss-light); }
.plan-package.is-checked { border-color: var(--moss); box-shadow: 0 0 0 1px var(--moss); }
.plan-package input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.plan-package strong { font-size: 16px; }
.plan-price { font-weight: 600; }
.plan-table label { display: inline; margin: 0; }
.plan-table td { vertical-align: top; }
#id_months { width: auto; min-width: 140px; }

/* Модификаторы блюд */
.modifier-picker { padding: 12px; }
.modifier-picker p { margin: 0 0 8px; }
.mod-group { border: 1px solid #e3e1da; border-radius: 8px; margin: 0 0 8px; padding: 6px 10px 8px; }
.mod-group legend { font-weight: 600; padding: 0 4px; }
.mod-choice { display: inline-block; margin: 4px 14px 4px 0; padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.mod-choice:hover { background: #f0efe9; }
.mod-choice input { margin-right: 4px; }

/* Зал */
.hall-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.hall-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.hall-tabs a { padding: 6px 12px; border-radius: 6px; border: 1px solid #9DB8A2; text-decoration: none; color: #2A2F2C; }
.hall-tabs a.active { background: #4A6354; color: #fff; border-color: #4A6354; }
.hall-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.hall-table { display: flex; flex-direction: column; justify-content: space-between; width: 140px; min-height: 96px;
  padding: 10px; border-radius: 10px; background: #fff; border: 2px solid #9DB8A2; color: #2A2F2C; text-decoration: none; }
.hall-table.busy { background: #F3E9DE; border-color: #C9A27E; }
.hall-table.mine { box-shadow: 0 0 0 3px #4A6354 inset; }
.hall-table .t-name { font-size: 22px; font-weight: 700; }
.hall-table .t-sum { font-weight: 600; }
.hall-table .t-new { color: #a0522d; }
.hall-order { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.hall-items { flex: 1 1 420px; min-width: 0; }
.hall-menu { flex: 1 1 320px; min-width: 0; }
.hall-tiles { display: flex; flex-wrap: wrap; gap: 6px; }
.hall-tile { display: flex; flex-direction: column; align-items: flex-start; min-width: 110px; padding: 8px 10px;
  border: 1px solid #9DB8A2; border-radius: 8px; background: #fff; cursor: pointer; text-align: left; }
.hall-tile:hover { background: #f0efe9; }
.hall-cat { margin: 10px 0 4px; }
tr.strike td { text-decoration: line-through; }
tr.is-new td:first-child { border-left: 3px solid #C9A27E; }
.checks ul { list-style: none; padding: 0; columns: 3 200px; }
@media (max-width: 600px) { .hall-table { width: calc(50% - 5px); } }
.batch-line { margin-top: 4px; }
.batch-line select, .batch-line input { font-size: 13px; padding: 2px 4px; }
/* Схема зала: план с расставленными столами (координаты — в % плана, на телефоне план уменьшается) */
.floor-plan { position: relative; width: 100%; padding-bottom: 62.5%; background: #fff; border: 1px dashed #9DB8A2;
  border-radius: 10px; margin-bottom: 12px; overflow: hidden; touch-action: none; }
.floor-plan .hall-table.placed { position: absolute; width: 11%; min-width: 0; min-height: 0; height: 15%;
  transform: translate(-50%, -50%); padding: 4px; align-items: center; justify-content: center; text-align: center;
  overflow: hidden; }
.floor-plan .hall-table.placed.shape-round { border-radius: 50%; }
.floor-plan .hall-table.placed.shape-long { width: 20%; }
.floor-plan .hall-table.placed .t-name { font-size: 18px; }
.floor-plan .hall-table.placed .t-info, .floor-plan .hall-table.placed .t-new { display: none; }
.floor-plan .hall-table.placed .t-book { display: block; font-size: 11px; }
.floor-plan .hall-table.placed .t-sum { font-size: 12px; }
.hall-table.booked { border-color: #4A6354; border-style: dashed; }
.floor-plan.editing .hall-table { cursor: move; user-select: none; }
.hall-table.dragging { opacity: .7; z-index: 5; }
#spare .hall-table { cursor: move; user-select: none; }
@media (max-width: 600px) { .floor-plan .hall-table.placed .t-name { font-size: 13px; } .floor-plan .hall-table.placed .t-sum { display: none; } }
/* «Перед началом работы» на главной */
.setup-steps { margin: 8px 0 4px; padding-left: 22px; }
.setup-steps li { margin: 4px 0; }
.setup-steps li.done a { color: var(--muted); }

/* «Помощь»: кнопка в шапке и статьи */
.topbar a.help-link { color: #fff; border: 1px solid rgba(255,255,255,.6); border-radius: 6px; padding: 2px 9px;
  font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.topbar a.help-link:hover, .topbar a.help-link:focus { background: rgba(255,255,255,.15); }
@media (max-width: 600px) { .topbar .help-word { display: none; } }
.help-search { display: flex; gap: 8px; max-width: 520px; margin: 0 0 18px; }
.help-search input { flex: 1; }
.help-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.help-groups h2 { font-size: 17px; margin: 0 0 6px; }
.help-groups ul { margin: 0; padding-left: 18px; }
.help-groups li { margin: 4px 0; }
.help-article { max-width: 760px; line-height: 1.55; }
.help-article h3 { margin: 22px 0 6px; font-size: 17px; }
.help-article li { margin: 3px 0; }
.help-crumbs { margin-bottom: 4px; }

/* Строки документа постранично */
.lines-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 8px 0; }
.lines-pager input[type=search] { width: 240px; max-width: 100%; }
.lines-pager .pages a { margin: 0 4px; }

/* CRM: доска сделок (flex — работает в Chrome 109 / Firefox 115) */
.crm-nav .btn { padding: 6px 12px; }
.crm-board { display: flex; overflow-x: auto; margin: 0 -4px 8px; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.crm-col { flex: 1 0 200px; margin: 0 4px; background: #F0EFEA; border-radius: 10px; padding: 8px; min-height: 140px; }
.crm-col.over { outline: 2px dashed var(--moss-light); }
.crm-col h3 { font-size: 14px; margin: 0 0 2px; }
.crm-col.crm-won { background: var(--moss-pale); }
.crm-col.crm-lost { background: var(--clay-pale); }
.crm-card { display: block; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 8px; margin: 6px 0; color: inherit; cursor: grab; }
.crm-card:hover { text-decoration: none; border-color: var(--moss); }
.crm-stages form { margin: 0 6px 6px 0; }
.filters textarea { width: 100%; max-width: none; }

/* Графики отчётов (SVG с сервера; подсказка — <title>) */
.chart { margin: 0 0 16px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px; }
.chart-title { font-weight: 600; margin-bottom: 6px; }
.chart-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.chart-svg { display: block; }
.chart-legend span { display: inline-block; margin-right: 14px; }
.chart-legend .sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.chart-legend .sw-line { height: 2px; width: 14px; vertical-align: 3px; }
.chart-row { display: flex; flex-wrap: wrap; margin: 0 -6px; }
.chart-row .chart { flex: 1 1 340px; margin: 0 6px 16px; min-width: 0; }
.hbar { display: flex; align-items: center; margin: 4px 0; font-size: 13px; }
.hbar-label { flex: 0 0 34%; padding-right: 8px; overflow-wrap: break-word; word-wrap: break-word; }
.hbar-track { flex: 1 1 auto; height: 14px; }
.hbar-track span { display: block; height: 14px; background: #24805A; border-radius: 0 4px 4px 0; }
.hbar-value { flex: 0 0 auto; padding-left: 8px; white-space: nowrap; }
.kpi-tiles .card { flex: 1 1 170px; }
.kpi-delta { font-weight: 600; }
.kpi-delta.good { color: #24805A; }
.kpi-delta.bad { color: var(--danger); }

/* «Аналитик» → «Пульс» (27.10.2026) */
.pulse-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.pulse-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; align-items: center; }
.pulse-tabs button { font: inherit; padding: 6px 14px; border: 1px solid var(--line); border-radius: 18px; background: #fff; cursor: pointer; }
.pulse-tabs button.active { background: var(--moss); border-color: var(--moss); color: #fff; }
.pulse-tabs select { width: auto; }
.pulse-hero { background: var(--moss); color: #fff; }
.pulse-hero .muted, .pulse-hero .small { color: #E4ECE5; }
.pulse-big { display: block; font-size: 34px; font-weight: 800; font-variant-numeric: tabular-nums; }
.pulse-hero .kpi-delta.good { color: #CFE8D4; }
.pulse-hero .kpi-delta.bad { color: #F3C9B9; }
.pulse-hero-grid { display: flex; flex-wrap: wrap; margin: 10px -8px 0; }
.pulse-hero-grid div { flex: 1 1 120px; margin: 0 8px 6px; display: flex; flex-direction: column; }
.pulse-hero-grid strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.pulse-forecast { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.25); }
.pulse-forecast strong { color: var(--clay); }
.pulse-insights { display: flex; flex-wrap: wrap; margin: 0 -6px 8px; }
.pulse-insight { flex: 1 1 240px; margin: 0 6px 12px; padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--moss-light); display: flex; flex-direction: column; gap: 4px; }
.pulse-insight.problem { border-left-color: var(--clay); }
.pulse-insight.win { border-left-color: #24805A; }
.pulse-tag { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #6b726e; }
.pulse-timeline { list-style: none; padding: 0; margin: 0 0 12px; }
.pulse-timeline li { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.pulse-timeline li.win .pulse-when { background: #DDEBDF; }
.pulse-timeline li.problem .pulse-when { background: var(--clay-pale); }
.pulse-when { flex: 0 0 auto; min-width: 74px; text-align: center; padding: 2px 6px; border-radius: 6px; background: var(--moss-pale); font-variant-numeric: tabular-nums; }
.pulse-cats { margin-bottom: 8px; }
.pulse-cat { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.pulse-cat > div:first-child { flex: 1 1 220px; }
.pulse-bar { flex: 1 1 160px; height: 8px; border-radius: 4px; background: #ECEAE3; overflow: hidden; }
.pulse-bar span { display: block; height: 100%; background: var(--moss-light); }
.pulse-pct { min-width: 52px; text-align: right; font-weight: 700; }
.pulse-matrix { display: flex; flex-wrap: wrap; margin: 0 -5px 8px; }
.pulse-class { flex: 1 1 200px; margin: 0 5px 10px; padding: 10px 12px; border-radius: 10px; display: flex; flex-direction: column; gap: 4px; }
.pulse-class.star, .pulse-chip.star { background: #DDEBDF; }
.pulse-class.horse, .pulse-chip.horse { background: #E7EEF3; }
.pulse-class.puzzle, .pulse-chip.puzzle { background: #F1E8DC; }
.pulse-class.dog, .pulse-chip.dog { background: #F4E1DA; }
.pulse-chip.new { background: #EEEDE8; }
.pulse-chip { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 13px; white-space: nowrap; }
.pulse-staff li { margin-bottom: 4px; }
.pulse-calc-buttons { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.pulse-calc-buttons button { font: inherit; padding: 4px 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; cursor: pointer; }
.pulse-calc-out { font-size: 22px; }
.pulse-calc-diff.good { color: #24805A; }
.pulse-calc-diff.bad { color: var(--danger); }
.analyst-chat { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.analyst-q { align-self: flex-end; max-width: 85%; background: var(--moss); color: #fff; padding: 8px 12px; border-radius: 12px 12px 2px 12px; }
.analyst-a { align-self: flex-start; max-width: 92%; background: #fff; border: 1px solid var(--line); padding: 10px 12px; border-radius: 12px 12px 12px 2px; }
.analyst-ask { display: flex; gap: 8px; align-items: flex-end; }
.analyst-ask textarea { flex: 1; }

/* «Переписка» */
.inbox-list { display: flex; flex-direction: column; border: 1px solid #E3E1DA; border-radius: 8px; background: #fff; }
.inbox-row { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #EEEDE8; color: inherit; text-decoration: none; }
.inbox-row:last-child { border-bottom: 0; }
.inbox-row:hover { background: #F6F5F1; }
.inbox-row.unread strong { color: #2A2F2C; }
.inbox-row.unread { background: #F1F6F2; }
.inbox-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.inbox-last { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inbox-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; }
.inbox-ch { display: inline-block; min-width: 26px; padding: 2px 4px; border-radius: 6px; font-size: 11px; font-weight: 600; text-align: center; color: #fff; background: #4A6354; }
.inbox-ch-instagram { background: #C9A27E; }
.inbox-chat { max-height: 60vh; overflow-y: auto; padding: 10px; border: 1px solid #E3E1DA; border-radius: 8px; background: #FBFAF7; }
.inbox-msg { max-width: 75%; margin: 6px 0; padding: 8px 10px; border-radius: 10px; background: #fff; border: 1px solid #E3E1DA; word-wrap: break-word; }
.inbox-out { margin-left: auto; background: #E6EFE8; border-color: #CFE0D3; }
.inbox-msg.failed { border-color: #C0574A; }
.inbox-msg.deleted .inbox-text { text-decoration: line-through; color: #8A8F8B; }
.inbox-when { margin-top: 4px; }
.inbox-reply { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin: 10px 0; }
.inbox-reply textarea { flex: 1 1 100%; }
.inbox-side { gap: 10px; margin-top: 10px; }
.inbox-side .card { flex: 1 1 220px; }
.inbox-new-client input { margin-bottom: 6px; }
@media (max-width: 640px) { .inbox-msg { max-width: 90%; } .inbox-chat { max-height: 55vh; } }
.btn-small { padding: 4px 10px; font-size: 13px; }
.inbox-side form.inline { display: inline-block; margin: 2px 4px 2px 0; }
.center { text-align: center; }

/* Выбор контрагента с поиском (inventory/widgets) */
.cp-pick { position: relative; max-width: 420px; }
.cp-pick input.cp-pick-q { max-width: none; padding-right: 30px; }
.cp-pick-clear { position: absolute; right: 4px; top: 4px; width: 26px; height: 26px; border: 0; background: transparent;
  color: var(--muted); font-size: 18px; line-height: 1; cursor: pointer; border-radius: 4px; }
.cp-pick-clear:hover { background: var(--moss-pale); color: var(--ink); }
ul.cp-pick-list { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; margin: 2px 0 0; padding: 4px 0;
  list-style: none; background: #fff; border: 1px solid var(--line-strong); border-radius: 6px;
  max-height: 290px; overflow-y: auto; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12); }
.cp-pick-list li { padding: 7px 10px; cursor: pointer; }
.cp-pick-list li.active, .cp-pick-list li[data-i]:hover { background: var(--moss-pale); }
.cp-pick-list li .hint { display: block; font-size: 12px; color: var(--muted); }
.cp-pick-list li.note { cursor: default; color: var(--muted); font-size: 13px; }
@media (max-width: 600px) { .cp-pick { max-width: none; } }

/* Касса: окно поиска товара (F2) */
.pos-find .pos-pay-box { align-self: flex-start; margin-top: 6vh; }
.pos-find-row { display: flex; margin-bottom: 8px; }
.pos-find-row #pos-find-q { flex: 1 1 auto; max-width: none; height: 44px; font-size: 18px; margin-right: 8px; }
.pos-find-row .pos-find-qty { width: 72px; max-width: 72px; height: 44px; font-size: 18px; text-align: center; }
ul.pos-find-list { list-style: none; margin: 0 0 10px; padding: 0; max-height: 52vh; overflow-y: auto;
  border: 1px solid var(--line); border-radius: 8px; }
.pos-find-list li { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.pos-find-list li:last-child { border-bottom: 0; }
.pos-find-list li.active, .pos-find-list li[data-i]:hover { background: var(--moss-pale); }
.pos-find-list li.low .small { color: var(--danger); }
.pos-find-list li.note { cursor: default; color: var(--muted); font-size: 13px; }
.pos-find .pos-pay-actions { justify-content: space-between; align-items: center; }

/* «Помощь» сбоку: статья справа, программа слева — читать и делать сразу */
.help-panel { position: fixed; top: 0; right: 0; bottom: 0; width: 420px; z-index: 30; background: #fff;
  border-left: 1px solid var(--line-strong); box-shadow: -6px 0 18px rgba(0, 0, 0, 0.12); display: flex;
  flex-direction: column; }
.help-panel[hidden] { display: none; }
.help-panel-bar { display: flex; align-items: center; padding: 8px 8px 8px 14px; background: var(--moss); color: #fff; }
.help-panel-bar .spacer { flex: 1 1 auto; }
.help-panel-bar a { color: #fff; margin-right: 8px; opacity: .85; }
.help-panel-close { width: 34px; height: 34px; border: 0; border-radius: 6px; background: transparent; color: #fff;
  font-size: 24px; line-height: 1; cursor: pointer; }
.help-panel-close:hover, .help-panel-close:focus { background: rgba(255, 255, 255, .18); }
.help-panel iframe { flex: 1 1 auto; width: 100%; border: 0; }
@media (min-width: 1000px) {
  body.help-open .topbar, body.help-open .menu, body.help-open main.content { margin-right: 420px; }
}
@media (max-width: 999px) { .help-panel { width: 100%; max-width: 480px; } }
@media (max-width: 600px) { .help-panel { max-width: none; } .help-panel-open { display: none; } }
.help-panel-page main.content { padding: 14px 16px; max-width: none; }
.help-panel-page h1 { font-size: 20px; }
.help-panel-page h2 { font-size: 16px; }
.help-panel-page .help-search { gap: 6px; }

/* Печать списков прямо со страницы (Закупка): без шапки, меню и кнопок */
.print-only { display: none; }
@media print {
  .topbar, .menu, .no-print, .help-panel, .pagination, .billing-banner { display: none !important; }
  .print-only { display: block; }
  body, .content { background: #fff; }
  body.help-open .topbar, body.help-open .menu, body.help-open main.content { margin-right: 0; }
}
/* Касса после проверки 27.10.2026: подсказка «не хватает», долг, клавиши не на телефоне */
.pos-short { margin: 4px 0 0; }
.pos-debt-hint { display: block; margin-top: 2px; }
@media (max-width: 600px) { .pos-key { display: none; } }
.cp-pick-list li.create { color: var(--moss); font-weight: 600; border-top: 1px solid var(--line, #e3e1da); }
.cp-pick-list li.create:hover { background: var(--moss-pale); }
/* Строка «Товар · Кол-во · Добавить» в документах — в одну линию на компьютере (проверка 27.10.2026) */
.addline .row { display: flex; flex-wrap: wrap; align-items: flex-end; margin: 0 -6px; }
.addline .col, .addline .col-wide { padding: 0 6px; margin-bottom: 6px; }
.addline .col-wide { flex: 1 1 280px; }
.addline .col { flex: 0 0 auto; }
.addline .col input { width: 110px; }
.addline .col .btn { white-space: nowrap; }
.doc-extras summary { cursor: pointer; }
/* Телефон: шапка и меню не занимают пол-экрана (проверка 27.10.2026: меню в 3–4 строки) */
@media (max-width: 600px) {
  .topbar { padding: 6px 10px; }
  .topbar > * { margin-right: 8px; }
  .topbar .user { display: none; }
  .topbar .org-name { max-width: 40vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar a.support { padding: 2px 7px; font-size: 13px; }
  .menu { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0 6px; }
  .menu a { white-space: nowrap; padding: 10px 7px; margin-right: 0; flex: 0 0 auto; }
}
@media (max-width: 600px) {
  td input.qty { width: 58px; }
  td input.price { width: 80px; }
  .table-wrap th, .table-wrap td { padding-left: 5px; padding-right: 5px; }
  .doc-save .btn { flex: 1 1 auto; }
}
/* «Сегодня» на главной (проверка 27.10.2026) */
.today-cards { display: flex; flex-wrap: wrap; margin: 0 -6px 12px; }
.today-card { flex: 1 1 180px; margin: 0 6px 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--line);
  border-radius: 10px; color: var(--ink); display: block; }
a.today-card:hover { text-decoration: none; border-color: var(--moss-light); }
.today-card .t-label { display: block; font-size: 13px; color: var(--muted); }
.today-card strong { display: block; font-size: 22px; margin: 2px 0; }
@media (max-width: 600px) { .today-card { flex-basis: 40%; padding: 10px; } .today-card strong { font-size: 18px; } }
.pos-tile strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pos-tile .small { display: block; }
.pos-tile { height: auto; min-height: 58px; }
/* Карточка товара: блоки полей, редкое — под «Дополнительно» */
.form-group-title { font-size: 17px; margin: 18px 0 6px; padding-top: 10px; border-top: 1px solid #e6e3da; }
details.form-more { margin: 16px 0; padding-top: 10px; border-top: 1px solid #e6e3da; }
details.form-more > summary { cursor: pointer; padding: 6px 0; }
/* Роли: права по группам */
fieldset.perm-group { border: 1px solid #e6e3da; border-radius: 8px; margin: 12px 0; padding: 8px 14px 10px; }
fieldset.perm-group legend { font-weight: 600; padding: 0 6px; }
.perm-item { display: block; margin: 5px 0; }
input.input-wide { max-width: 640px; }
.card.danger-zone { margin-top: 32px; border: 1px solid #e8c4c0; }
.card.danger-zone h2 { font-size: 17px; margin-top: 0; }
/* Телефон: кнопки видов документов меньше, чтобы список был виден сразу (проверка 27.10.2026) */
@media (max-width: 600px) {
  form.actions .btn { padding: 6px 10px; font-size: 13px; margin: 0 4px 6px 0; }
}
/* Остаток на складе кассы — в строке чека и на плитке (28.10.2026) */
.pos-stock.bad, .pos-tile .bad { color: var(--danger); font-weight: 600; }
/* Салон: журнал записи по мастерам (28.10.2026) */
.sal-grid { display: flex; overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.sal-times { flex: 0 0 52px; }
.sal-col { flex: 1 0 160px; border-left: 1px solid var(--line); min-width: 160px; }
.sal-head { height: 46px; padding: 6px 8px; border-bottom: 1px solid var(--line); box-sizing: border-box; overflow: hidden; }
.sal-body { position: relative; background: #EFEDE7; }
.sal-times .sal-body { background: #fff; }
.sal-hlabel { position: absolute; left: 6px; font-size: 12px; color: var(--muted); transform: translateY(-50%); }
.sal-hlabel:first-child { transform: none; }
.sal-work { position: absolute; left: 0; right: 0; background: #fff; }
.sal-hour { position: absolute; left: 0; right: 0; border-top: 1px solid var(--line); }
.sal-slot { position: absolute; left: 0; right: 0; height: 42px; display: block; }
.sal-slot span { display: none; font-size: 12px; padding: 2px 6px; color: var(--moss); }
.sal-slot:hover, .sal-slot:focus { background: var(--moss-pale); }
.sal-slot:hover span, .sal-slot:focus span { display: block; }
.sal-block { position: absolute; left: 3px; right: 3px; border-radius: 6px; padding: 2px 6px; font-size: 12px; line-height: 1.3; overflow: hidden; color: var(--ink); background: var(--moss-pale); border-left: 4px solid var(--moss); box-sizing: border-box; z-index: 1; }
.sal-block:hover { box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.sal-block.sal-arrived { background: var(--clay-pale); border-left-color: var(--clay); }
.sal-block.sal-done { background: #ECEDEC; border-left-color: var(--line-strong); color: var(--muted); }
.sal-block.sal-no_show { background: var(--danger-pale); border-left-color: var(--danger); text-decoration: line-through; }
.sal-legend .sal-dot { display: inline-block; width: 16px; height: 12px; border: 1px solid var(--line-strong); border-radius: 2px; margin-left: 8px; vertical-align: middle; background: var(--moss-pale); border-left: 3px solid var(--moss); }
.sal-dot.sal-arrived { background: var(--clay-pale); border-left-color: var(--clay); }
.sal-dot.sal-done { background: #ECEDEC; border-left-color: var(--line-strong); }
.sal-dot.sal-no_show { background: var(--danger-pale); border-left-color: var(--danger); }
.sal-hours td input { width: 84px; }
@media (max-width: 600px) { .sal-col { flex-basis: 130px; min-width: 130px; } }
/* фитнес и студии: неделя занятий */
.cls-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.cls-day { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 6px; min-height: 80px; }
.cls-day.cls-today { border-color: var(--moss); }
.cls-day h3 { font-size: 13px; margin: 0 0 6px; }
.cls-item { display: block; border-left: 4px solid var(--moss); background: var(--moss-pale); border-radius: 6px; padding: 4px 6px; margin-bottom: 6px; font-size: 12px; line-height: 1.35; color: var(--ink); }
.cls-item:hover { box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.cls-item.cls-full { border-left-color: var(--clay); background: var(--clay-pale); }
.cls-item.cls-held { border-left-color: var(--line-strong); background: #ECEDEC; color: var(--muted); }
.cls-item.cls-cancelled { border-left-color: var(--danger); background: var(--danger-pale); text-decoration: line-through; }
@media (max-width: 900px) { .cls-week { grid-template-columns: 1fr; } .cls-day { min-height: 0; } }

/* «Начало работы» по шагам — полоса вверху страниц у владельца новой организации (29.10.2026) */
.guide { margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--moss-light); border-radius: 10px; background: #fff; }
.guide-min { padding: 8px 12px; background: var(--moss-pale); }
.guide-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; }
.guide-bar { flex: 1 1 120px; max-width: 260px; height: 6px; border-radius: 3px; background: var(--moss-pale); overflow: hidden; }
.guide-bar span { display: block; height: 100%; background: var(--moss); }
.guide-stages { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; list-style: none; }
.guide-stage { position: relative; flex: 1 1 170px; min-width: 0; padding: 8px 10px; border-radius: 8px; background: var(--bg, #F6F5F1); }
.guide-stage:after { content: "→"; position: absolute; right: -23px; top: 4px; color: var(--clay); font-size: 24px; font-weight: 700; }
.guide-top strong { font-size: 17px; }
.guide-stage:last-child:after { content: none; }
.guide-stage.done { opacity: .75; }
.guide-stage-title { font-weight: 600; margin-bottom: 4px; }
.guide-steps { margin: 0; padding: 0; list-style: none; font-size: 14px; }
.guide-steps li { margin: 3px 0; }
.guide-steps a { color: inherit; }
.guide-n { display: inline-block; min-width: 20px; height: 20px; margin-right: 4px; border-radius: 10px; text-align: center;
  font-size: 12px; line-height: 20px; background: #fff; border: 1px solid var(--moss-light); color: var(--moss); }
.guide-steps li.done .guide-n { background: var(--moss); border-color: var(--moss); color: #fff; }
.guide-steps li.done a, .guide-steps li.skipped a { color: var(--muted); }
.guide-steps li.current { font-weight: 600; }
.guide-steps li.current .guide-n { background: var(--clay); border-color: var(--clay); color: #fff; }
.guide-steps li.here a { text-decoration: underline; }
.guide-now { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--moss-pale); }
.guide-now p { margin: 0 0 8px; }
@media (max-width: 700px) {
  .guide-stages { display: block; }
  .guide-stage { margin-bottom: 22px; }
  .guide-stage:after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -25px; font-size: 20px; }
}

/* Ctrl+Q — себестоимость при продаже (cost-toggle.js): по умолчанию скрыта */
.cost-hint { display: none; }
.show-cost .cost-hint { display: block; }
.show-cost li .cost-hint { display: inline; }
.sal-online{display:inline-block;padding:0 5px;border-radius:4px;background:var(--clay);color:var(--ink);font-size:11px;font-weight:600;line-height:16px}
