:root {
  --wb-radius: 16px;
  --wb-gap: 10px;
  --wb-control-h: 44px;
  --wb-control-pad: 10px;
  --wb-control-border: 1px;
  --wb-navbar: #0b3d91;
  --wb-stat-from: #ffffff;
  --wb-stat-to: #edf3ff;
  --wb-acc-open: #dbeafe;
  --wb-acc-open-fg: #123a8f;
  --wb-dock-bg: #ffffff;
  --wb-dock-fg: #334155;
  --wb-dock-active-bg: #dbeafe;
  --wb-dock-active-fg: #123a8f;
  --wb-surface: #ffffff;
  --wb-surface-2: #eef2ff;
  --wb-shadow: 0 6px 18px rgba(15,23,42,.14);
  --wb-code-bg: #e8eef8;
  --wb-brand: #1545a1;
  /* Typography scale (one token per role) */
  --wb-font: 18px;
  --wb-font-h: 22px;
  --wb-font-m: 16px;
  --wb-font-s: 14px;
  --wb-font-xs: .72rem;
  --wb-font-xxs: .62rem;
  --wb-font-compact: .85rem;
  --wb-font-chip: .9rem;
  --wb-font-icon: 1.1rem;
  --wb-font-check: 1.15rem;
  --wb-font-xl: 1.75rem;
  --wb-font-stat: 36px;
}
[data-bs-theme="dark"] {
  --wb-navbar: #0a1020;
  --wb-stat-from: #172033;
  --wb-stat-to: #0a0f1d;
  --wb-acc-open: var(--wb-brand);
  --wb-acc-open-fg: #ffffff;
  --wb-dock-bg: #0b1220;
  --wb-dock-fg: #ffffff;
  --wb-dock-active-bg: var(--wb-brand);
  --wb-dock-active-fg: #ffffff;
  --wb-surface: #182235;
  --wb-surface-2: #0f1729;
  --wb-shadow: 0 7px 21px rgba(0,0,0,.55);
  --wb-code-bg: #060b16;
  --bs-body-color: #ffffff;
  --bs-secondary-color: #ffffff;
  --bs-tertiary-color: #ffffff;
  color-scheme: dark;
}
html, body { min-height: 100%; }
body {
  padding-bottom: 88px;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-size: var(--wb-font);
  font-weight: 400;
  line-height: 1.45;
  transition: background-color .2s ease, color .2s ease;
}
/* Hover: затемнение интерактивных элементов */
.btn,
.nav-link,
.dock-link,
.navbar-brand,
.navbar-toggler,
.accordion-button,
.clients-pay-day,
.clients-tile,
.clients-tile-bell,
.clients-tile-x,
.clients-tile-status.is-debt,
.clients-tile-status.is-paid,
.budget-chip,
.btn-close,
.wb-toast-close,
.notify-chip-x,
.form-check-input,
.form-select,
.quick-btn,
a.budget-view-link.form-control[href],
a:has(> .stat-card) > .stat-card {
  transition: filter .15s ease, background-color .15s ease, border-color .15s ease, opacity .15s ease, color .15s ease;
}
@media (hover: hover) and (pointer: fine) {
  .btn:not(:disabled):not(.disabled):hover,
  .nav-link:hover,
  .dock-link:hover,
  .navbar-brand:hover,
  .navbar-toggler:hover,
  .accordion-button:hover,
  .clients-pay-day:not(:disabled):hover,
  .clients-tile:hover,
  .clients-tile-bell:not(:disabled):hover,
  .clients-tile-x:hover,
  .clients-tile-status.is-debt:hover,
  .clients-tile-status.is-paid:hover,
  .budget-chip:hover,
  .btn-close:hover,
  .wb-toast-close:hover,
  .notify-chip-x:hover,
  .form-check-input:hover,
  .form-select:not(:disabled):hover,
  .quick-btn:hover,
  a.budget-view-link.form-control[href]:hover,
  a:has(> .stat-card):hover > .stat-card,
  .dropdown-item:hover,
  .page-link:hover,
  .list-group-item-action:hover {
    filter: brightness(0.84);
  }
}
@media (min-width: 992px) { body { padding-bottom: 20px; } }
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.page-head h1,
.navbar-brand,
.accordion-button,
.card-header,
.fw-semibold {
  font-size: var(--wb-font-h) !important;
  font-weight: 700 !important;
  line-height: 1.3;
}
/*.small, .text-muted, .text-body-secondary, .form-text,
.stat-label, .project-panel-head, .dock-link,
.form-check-label, .badge {
  font-size: var(--wb-font-s) !important;
  font-weight: 100 !important;
}*/
.badge {
  padding: 10px 20px !important;
  line-height: 1.25 !important;
}
.rounded-pill {
  border-radius: 10px !important;
}
.form-label { font-size: var(--wb-font); font-weight: 400; margin-bottom: var(--wb-gap); }
.mb-0 { margin-bottom: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.mb-1, .mb-2, .mb-3, .mb-4, .mb-5 { margin-bottom: var(--wb-gap) !important; }
.mt-1, .mt-2, .mt-3, .mt-4, .mt-5 { margin-top: var(--wb-gap) !important; }
.my-1, .my-2, .my-3, .my-4 { margin-top: var(--wb-gap) !important; margin-bottom: var(--wb-gap) !important; }
.ms-auto { margin-left: auto !important; }
.p-1, .p-2, .p-3, .p-4 { padding: var(--wb-gap) !important; }
.px-1, .px-2, .px-3 {
  padding-left: var(--wb-gap) !important;
  padding-right: var(--wb-gap) !important;
}
.py-1, .py-2, .py-3, .py-md-4 {
  padding-top: var(--wb-gap) !important;
  padding-bottom: var(--wb-gap) !important;
}
.pt-3 { padding-top: var(--wb-gap) !important; }
.pe-2, .pe-3 { padding-right: var(--wb-gap) !important; }
.g-1, .g-2, .g-3 { --bs-gutter-x: var(--wb-gap); --bs-gutter-y: var(--wb-gap); }
.gap-1, .gap-2, .gap-3 { gap: var(--wb-gap) !important; }
.row { --bs-gutter-x: var(--wb-gap); --bs-gutter-y: var(--wb-gap); }
.bg-navbar { background: var(--wb-navbar) !important; }
.navbar-brand,
.navbar-brand:hover,
.navbar-brand:focus { color: #ffffff !important; }
.navbar-brand .brand-logo {
  width: 50px;
  height: 50px;
  display: block;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}
.navbar-brand { line-height: 0 !important; }
.login-logo { display: inline-block; }
[data-bs-theme="dark"] .login-logo { filter: brightness(0) invert(1); }
.card-soft, .stat-card, .table-card { border: 0; border-radius: var(--wb-radius); box-shadow: var(--wb-shadow); background: var(--wb-surface); color: var(--bs-body-color); }
.card-body, .card-header { padding: var(--wb-gap) !important; }
.stat-card { background: linear-gradient(180deg, var(--wb-stat-from), var(--wb-stat-to)); }
.stat-card .stat-label { color: #000; }
.stat-card .stat-value { font-size: var(--wb-font-h); font-weight: 700; letter-spacing: -0.3px; color: var(--bs-body-color); }
.quick-btn { border-radius: 14px; min-height: 68px; }
.accordion-item { background: var(--wb-brand); border: 1px solid var(--wb-brand); margin-bottom: var(--wb-gap) !important; }
.accordion-button { background: var(--wb-brand) !important; color: #ffffff !important; }
.accordion-button:not(.collapsed) { background: var(--wb-brand) !important; color: #ffffff !important; box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 3px rgba(13,110,253,.25); }
.accordion-button::after { filter: brightness(0) invert(1); width: 16px; height: 16px; background-size: 16px; }
[data-bs-theme="dark"] .accordion-button::after { filter: brightness(0) invert(1); }
.form-check-input:checked {
  background-color: #198754 !important;
  border-color: #198754 !important;
}
.form-switch .form-check-input:checked {
  background-color: #198754 !important;
  border-color: #198754 !important;
}
.surface-inner { background: var(--wb-surface) !important; color: var(--bs-body-color); }
.surface-muted { background: var(--wb-surface-2) !important; color: var(--bs-body-color); }
.mobile-dock { background: var(--wb-dock-bg) !important; border-color: var(--bs-border-color) !important; }
.dock-link { color: var(--wb-dock-fg); text-decoration: none; flex: 1; padding: var(--wb-gap); border-radius: 12px; }
.dock-link.active, .dock-link:hover { color: var(--wb-dock-active-fg); background: var(--wb-dock-active-bg); }
.page-head { margin-bottom: var(--wb-gap); }
.form-control, .form-select, .btn {
  box-sizing: border-box !important;
  font-size: var(--wb-font);
  font-weight: 400;
}
input.form-control,
select.form-select:not([multiple]),
.form-control:not(textarea),
.btn:not(.btn-theme-toggle):not(.navbar-toggler),
.btn-touch:not(.btn-theme-toggle),
.btn-sm:not(.btn-theme-toggle) {
  height: var(--wb-control-h) !important;
  min-height: var(--wb-control-h) !important;
  max-height: var(--wb-control-h) !important;
  padding: var(--wb-control-pad) !important;
  border-width: var(--wb-control-border) !important;
  border-style: solid !important;
  line-height: calc(var(--wb-control-h) - (2 * var(--wb-control-pad)) - (2 * var(--wb-control-border))) !important;
  vertical-align: middle;
}
textarea.form-control {
  height: auto !important;
  min-height: calc(var(--wb-control-h) * 3) !important;
  max-height: none !important;
  padding: var(--wb-control-pad) !important;
  border-width: var(--wb-control-border) !important;
  border-style: solid !important;
  line-height: 1.35 !important;
}
select.form-select[multiple] {
  height: auto !important;
  min-height: calc(var(--wb-control-h) * 8) !important;
  max-height: none !important;
  padding: var(--wb-control-pad) !important;
  border-width: var(--wb-control-border) !important;
  border-style: solid !important;
  line-height: 1.35 !important;
  background-image: none !important;
}
#waysSupplierSelect {
  min-height: 16rem !important;
  height: 100% !important;
  flex: 1 1 auto;
}
.form-select:not([multiple]) {
  background-position: right var(--wb-control-pad) center;
  padding-right: calc(var(--wb-control-pad) * 3) !important;
}
code.path { word-break: break-all; }
.search-box { border-radius: 999px; height: var(--wb-control-h) !important; }
.token-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--wb-gap);
  padding: var(--wb-gap) !important;
  margin-bottom: var(--wb-gap);
  border-radius: 14px;
  background: var(--wb-surface-2);
  border: 1px solid var(--bs-border-color);
}
.token-row:last-child { margin-bottom: 0; }
.token-row-name {
  flex: 1 1 auto;
  min-width: 0;
}
.token-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--wb-gap);
  margin-left: auto;
}
.badge.rounded-pill.text-bg-danger,
.badge.rounded-pill.text-bg-warning {
  font-weight: 600 !important;
}
@media (max-width: 767.98px) {
  .token-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: .4rem;
  }
  .token-row-name {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .token-row-meta {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    min-width: auto;
    margin-left: 0;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: .35rem;
  }
  .token-row-meta .badge {
    flex: 0 0 auto;
  }
  .token-row-meta code.small {
    display: none !important;
  }
}
pre.code-block, .code-block { background: var(--wb-code-bg) !important; color: var(--bs-body-color); border-color: var(--bs-border-color) !important; font-size: var(--wb-font-s); font-weight: 100; padding: var(--wb-gap) !important; }
.btn-theme-toggle { border: 1px solid rgba(255,255,255,.35); color: #fff; background: transparent; min-height: 36px; min-width: 40px; border-radius: 10px; line-height: 1; padding: var(--wb-gap); }
.btn-theme-toggle:hover { background: rgba(255,255,255,.12); color: #fff; }
[data-bs-theme="dark"] .btn-theme-toggle { border-color: rgba(255,255,255,.25); }
[data-bs-theme="light"] .theme-icon-light { display: none; }
[data-bs-theme="dark"] .theme-icon-dark { display: none; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--bs-body-color); font-size: var(--wb-font); }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-bg-type: rgba(127,127,127,.06); }
.card-header { background: var(--wb-surface-2); color: var(--bs-body-color); border-bottom-color: var(--bs-border-color); }
.border-primary.border-opacity-25 { border-color: rgba(13,110,253,.35) !important; }
[data-bs-theme="dark"] .border-primary.border-opacity-25 { border-color: rgba(147,197,253,.35) !important; }
[data-bs-theme="dark"] body,
[data-bs-theme="dark"] .card-soft,
[data-bs-theme="dark"] .stat-card,
[data-bs-theme="dark"] .table-card,
[data-bs-theme="dark"] .surface-inner,
[data-bs-theme="dark"] .surface-muted,
[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .project-panel,
[data-bs-theme="dark"] .form-label,
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-text,
[data-bs-theme="dark"] .form-check-label,
[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-body-secondary,
[data-bs-theme="dark"] .small,
[data-bs-theme="dark"] .stat-label,
[data-bs-theme="dark"] .project-panel-head,
[data-bs-theme="dark"] .page-head h1,
[data-bs-theme="dark"] h1,
[data-bs-theme="dark"] h2,
[data-bs-theme="dark"] h3,
[data-bs-theme="dark"] h4,
[data-bs-theme="dark"] h5,
[data-bs-theme="dark"] h6,
[data-bs-theme="dark"] .nav-link,
[data-bs-theme="dark"] .dock-link,
[data-bs-theme="dark"] code,
[data-bs-theme="dark"] pre,
[data-bs-theme="dark"] .code-block,
[data-bs-theme="dark"] .alert {
  color: #ffffff !important;
}
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: var(--wb-surface-2);
  border-color: #334155;
  color: #ffffff !important;
}
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder {
  color: #ffffff;
  opacity: 0.55;
}
[data-bs-theme="dark"] .text-warning-emphasis { color: #fbbf24 !important; }
[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dock-link):not(.navbar-brand) { color: #ffffff !important; }
[data-bs-theme="dark"] .alert-info { --bs-alert-bg: #0c4a6e; --bs-alert-color: #e0f2fe; --bs-alert-border-color: #0369a1; }
[data-bs-theme="dark"] .alert-warning { --bs-alert-bg: #422006; --bs-alert-color: #fde68a; --bs-alert-border-color: #a16207; }
[data-bs-theme="dark"] .alert-success { --bs-alert-bg: #052e16; --bs-alert-color: #bbf7d0; --bs-alert-border-color: #15803d; }
[data-bs-theme="dark"] .alert-danger { --bs-alert-bg: #450a0a; --bs-alert-color: #fecaca; --bs-alert-border-color: #b91c1c; }
[data-bs-theme="dark"] .alert-secondary { --bs-alert-bg: #1e293b; --bs-alert-color: #cbd5e1; --bs-alert-border-color: #334155; }
[data-bs-theme="dark"] .alert-light { --bs-alert-bg: #1e293b; --bs-alert-color: #e2e8f0; --bs-alert-border-color: #334155; }
main.container { position: relative; }
#wbToastHost {
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
  z-index: 1080;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: min(360px, 100%);
  pointer-events: none;
}
.wb-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  box-shadow: var(--wb-shadow);
  border: none;
  font-size: var(--wb-font-s);
  font-weight: 500;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease;
}
.wb-toast.show { opacity: 1; transform: translateY(0); }
.wb-toast-msg { flex: 1 1 auto; min-width: 0; word-break: break-word; }
.wb-toast-close {
  flex: 0 0 auto;
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  opacity: 0.85;
  font-size: var(--wb-font-h);
  line-height: 1;
  padding: 0;
  margin: -2px -4px 0 0;
  cursor: pointer;
}
.wb-toast-close:hover { opacity: 1; }
.wb-toast.ok { background: #198754; color: #ffffff; }
.wb-toast.err { background: #dc3545; color: #ffffff; }
.wb-toast.warn { background: #ffc107; color: #212529; }
.wb-toast.info { background: #0d6efd; color: #ffffff; }
.run-status-badge { font-weight: 500; max-width: 100%; white-space: normal; text-align: left; }
.run-status-pulse { animation: runPulse 1.2s ease-in-out infinite; }
@keyframes runPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}
.ways-signals-badge { margin-left: 6px; vertical-align: middle; }
.project-panel { border: 1px solid var(--bs-border-color); border-radius: 14px; background: var(--wb-surface-2); padding: var(--wb-gap) !important; }
.project-panel-head { letter-spacing: 0.6px; text-transform: uppercase; color: var(--bs-secondary-color); margin-bottom: var(--wb-gap); }
.settings-msg-tiles .project-panel-head {
  font-size: var(--wb-font-m) !important;
  font-weight: 700 !important;
  letter-spacing: 0.2px;
  color: inherit;
}
.project-panel .btn-outline-danger { border-width: 2px; }
.accordion-header { align-items: center !important; }
.accordion-header-extra {
  display: flex;
  align-items: center;
  background: var(--wb-brand) !important;
  border-left: 1px solid rgba(255,255,255,.25);
  padding: var(--wb-gap) !important;
  min-height: 100%;
  color: #ffffff !important;
}
.accordion-header-extra .form-check-label { color: #ffffff !important; }
.accordion-header-extra .form-check,
.card-header .form-check {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  min-height: 24px;
}
.accordion-header-extra .form-check-input,
.card-header .form-check-input,
.form-switch.wb-activity .form-check-input {
  width: 48px !important;
  height: 24px !important;
  margin: 0 !important;
  cursor: pointer;
  flex-shrink: 0;
  background-size: contain;
}
.stat-card .stat-value.display-6 { font-size: var(--wb-font-stat) !important; font-weight: 700 !important; }
.stat-card .stat-value.display-6.stat-value-sm { font-size: var(--wb-font-check) !important; }
.home-top {
  align-items: stretch;
}
.home-top > .home-stats,
.home-top > .home-pay-cal {
  display: flex;
  flex-direction: column;
}
.home-stats {
  gap: .5rem;
  margin: 0 !important;
}
.home-stats > a,
.home-stats > .home-stat-wrap {
  flex: 1 1 0;
  display: flex;
  min-height: 4.75rem;
  text-decoration: none;
  color: inherit;
}
.home-stats .stat-card {
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.home-stats .card-body {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  width: 100%;
}
.home-stats .stat-label { width: 100%; }
.home-stats .clients-pay-month-sum {
  margin-top: .35rem;
  padding-top: 0;
  border-top: 0;
  font-size: var(--wb-font-xl);
  font-weight: 700;
  line-height: 1.15;
}
.home-stats .stat-ago {
  margin-top: .35rem;
  font-size: var(--wb-font-s) !important;
  font-weight: 100 !important;
  opacity: .8;
}
.home-pay-cal {
  min-height: 0;
  margin-top: 0 !important;
}
.home-pay-cal .clients-pay-cal {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
}
.home-pay-cal .clients-pay-cal-months,
.clients-pay-cal.is-home-months .clients-pay-cal-months {
  flex: 1 1 auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-height: 0;
  width: 100%;
}
.home-pay-cal .clients-pay-month {
  height: 100%;
  min-width: 0;
}
@media (max-width: 767.98px) {
  .home-stats > a,
  .home-stats > .home-stat-wrap {
    flex: 0 0 auto;
    min-height: 0;
  }
  .home-pay-cal .clients-pay-cal-months,
  .clients-pay-cal.is-home-months .clients-pay-cal-months {
    grid-template-columns: 1fr;
  }
}
.bot-monitor .accordion-item.is-alert {
  outline: 2px solid #dc3545;
  outline-offset: 0;
}
.bot-monitor .accordion-item.is-warn {
  outline: 2px solid #ffc107;
  outline-offset: 0;
}
.bot-monitor-list .accordion-button {
  font-weight: 700 !important;
}
.bot-monitor-list .accordion-button > .bot-monitor-acc-title {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: .35rem;
}
.bot-monitor-list .bot-monitor-acc-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.bot-monitor-list .bot-monitor-acc-title > .badge {
  margin-left: auto;
  flex: 0 0 auto;
}
.bot-monitor-list .badge {
  font-weight: 600 !important;
}
.bot-monitor-alert {
  margin: 0 0 .55rem 0;
  padding: .4rem .65rem;
  border-radius: 10px;
  background: rgba(220, 53, 69, .18);
  color: #ffb4bc;
}
[data-bs-theme="light"] .bot-monitor-alert {
  color: #842029;
  background: rgba(220, 53, 69, .12);
}
.bot-monitor-list {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.bot-monitor-empty {
  padding: .35rem 0;
}
.bot-monitor-bots {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.bot-monitor-item {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  padding: .35rem .5rem;
  border-radius: 10px;
  color: inherit;
  background: var(--wb-surface-2);
  border: 1px solid transparent;
}
.bot-monitor-dot {
  flex: 0 0 auto;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #6c757d;
}
.bot-monitor-item.is-ok .bot-monitor-dot { background: #198754; }
.bot-monitor-item.is-fail .bot-monitor-dot,
.bot-monitor-item.is-alert .bot-monitor-dot { background: #dc3545; }
.bot-monitor-item.is-running .bot-monitor-dot { background: #0d6efd; }
.bot-monitor-item.is-alert {
  background: rgba(220, 53, 69, .12);
}
.bot-monitor-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .2rem .85rem;
  line-height: 1.25;
}
.bot-monitor-sup {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.bot-monitor-bot {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: .85;
  margin-left: .15rem;
}
.bot-monitor-side {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: .4rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.bot-monitor-status {
  font-weight: 700 !important;
  min-width: 1.6rem;
  text-align: center;
}
.bot-monitor-item.is-ok .bot-monitor-status { color: #198754; }
.bot-monitor-item.is-fail .bot-monitor-status,
.bot-monitor-item.is-alert .bot-monitor-status { color: #dc3545; }
.bot-monitor-time { opacity: .85; }
.bot-monitor-iv {
  opacity: .55;
  min-width: 2.4rem;
  text-align: right;
}
@media (max-width: 575.98px) {
  .bot-monitor-side { gap: .3rem; }
  .bot-monitor-iv { display: none; }
}
.accordion-button { padding: var(--wb-gap) !important; min-height: var(--wb-control-h); }
.accordion-body { padding: var(--wb-gap) !important; }
.alert { padding: var(--wb-gap) !important; margin-bottom: var(--wb-gap) !important; font-size: var(--wb-font); font-weight: 400; }
main.container { padding-top: var(--wb-gap) !important; padding-bottom: var(--wb-gap) !important; }
.nav-link { padding: var(--wb-gap) !important; font-size: var(--wb-font); font-weight: 400; }
.accordion-header-extra .form-check-label,
.card-header .form-check-label {
  margin-left: var(--wb-gap);
  margin-bottom: 0;
  line-height: 24px;
}
footer.border-top { border-color: var(--bs-border-color) !important; }
.surface-muted { padding: var(--wb-gap) !important; margin-bottom: var(--wb-gap) !important; }
.row.g-2.align-items-end > [class*="col"] .btn,
.row.align-items-end > [class*="col"] .btn {
  width: 100%;
}
.add-bot-row {
  align-items: center !important;
}
.add-bot-row .form-select,
.add-bot-row .btn {
  height: var(--wb-control-h) !important;
  min-height: var(--wb-control-h) !important;
  max-height: var(--wb-control-h) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.add-bot-row .col-sm-8,
.add-bot-row .col-sm-4 {
  display: flex;
  align-items: center;
}
.budget-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .75rem;
  border: 1px solid var(--wb-brand);
  border-radius: 999px;
  background: var(--wb-brand);
  text-decoration: none;
  color: #ffffff !important;
  font-size: var(--wb-font-chip);
}
.budget-chip:hover { background: #1a56c4; border-color: #1a56c4; color: #ffffff !important; }
.budget-chip.is-off { opacity: .55; }
.budget-chip-add {
  border-style: dashed;
  border-color: var(--bs-border-color);
  cursor: pointer;
  background: transparent;
  color: inherit !important;
}
.budget-chip-add:hover { border-color: var(--wb-brand); color: var(--wb-brand) !important; background: transparent; }
.budget-edit-group input[readonly] { background-color: var(--bs-secondary-bg); cursor: default; }
.budget-client-form .form-control:focus,
.budget-edit-group .form-control:focus,
.budget-client-form .form-control:focus-visible {
  box-shadow: none !important;
  outline: none !important;
  border-color: var(--bs-border-color) !important;
}
a.budget-view-link.form-control,
.budget-view-text.form-control {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: inherit !important;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: default;
  background-color: var(--bs-secondary-bg);
}
a.budget-view-link.form-control[href] { cursor: pointer; }
a.budget-view-link.form-control[href]:hover { text-decoration: underline; }
.clients-summary {
  display: grid;
  grid-template-columns: minmax(7rem, auto) minmax(12rem, 1fr) minmax(8rem, 11rem);
  align-items: stretch;
  gap: var(--wb-gap);
  margin-bottom: calc(var(--wb-gap) * 1.5);
  padding: calc(var(--wb-gap) * 1.2);
  border: 0;
  border-radius: var(--wb-radius);
  box-shadow: var(--wb-shadow);
  background: linear-gradient(180deg, var(--wb-stat-from), var(--wb-stat-to));
  color: var(--bs-body-color);
}
.clients-summary-item {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .45rem .65rem;
  min-width: 0;
  padding: .35rem .55rem;
}
.clients-summary-item.is-total {
  padding: .35rem .55rem;
  border-radius: 12px;
  background: rgba(21, 69, 161, .12);
  border: 1px solid rgba(21, 69, 161, .35);
}
[data-bs-theme="dark"] .clients-summary-item.is-total {
  background: rgba(21, 69, 161, .28);
  border-color: rgba(96, 145, 235, .45);
}
.clients-summary-label {
  font-size: var(--wb-font-xl) !important;
  font-weight: 400 !important;
  line-height: 1.15;
  color: var(--bs-secondary-color);
  opacity: .85;
  text-transform: uppercase;
  letter-spacing: -.4px;
}
.clients-summary-value {
  font-size: var(--wb-font-xl);
  font-weight: 700;
  letter-spacing: -.4px;
  line-height: 1.15;
  color: var(--bs-body-color);
}
.clients-summary-item.is-total .clients-summary-value,
#clientsTotal {
  font-size: var(--wb-font-xl);
  color: #98ffc4;
}
[data-bs-theme="dark"] .clients-summary-item.is-total .clients-summary-value,
[data-bs-theme="dark"] #clientsTotal {
  color: #98ffc4;
}
.clients-summary-adj {
  display: flex;
  align-items: center;
  min-width: 0;
}
.clients-summary-adj .form-control {
  width: 100%;
  background-color: var(--wb-surface) !important;
  border-color: var(--bs-border-color) !important;
  color: var(--bs-body-color) !important;
}
.clients-summary-adj .form-control::placeholder {
  color: var(--bs-secondary-color);
  opacity: .65;
}
.clients-summary-adj .form-control:focus,
.clients-summary-adj .form-control:focus-visible {
  box-shadow: none !important;
  outline: none !important;
  border-color: var(--wb-brand) !important;
}
@media (max-width: 767.98px) {
  .clients-summary {
    grid-template-columns: 1fr 1fr;
  }
  .clients-summary-adj {
    grid-column: 1 / -1;
  }
}
.clients-tiles {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .5rem;
  width: 100%;
  max-width: 100%;
  margin-bottom: 1.25rem;
}
.clients-tile-row {
  display: flex;
  align-items: stretch;
  gap: .4rem;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: .4rem .45rem;
  border-radius: var(--wb-radius);
  background: var(--wb-surface-2);
  box-shadow: var(--wb-shadow);
}
.clients-tile-row > .clients-tile,
.clients-tile-row > .clients-tile-status,
.clients-tile-row > .clients-tile-bell {
  border-radius: 10px;
}
.clients-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .45rem;
  flex: 0 1 auto;
  min-width: 0;
  box-sizing: border-box;
  padding: .45rem .55rem .45rem .75rem;
  border: 1px solid var(--wb-brand);
  border-radius: 10px;
  background: var(--wb-brand);
  color: #ffffff !important;
  font-size: var(--wb-font-m);
  line-height: 1.25;
}
.clients-tile-client {
  flex: 0 1 auto;
  max-width: min(22rem, 38%);
}
.clients-tile-bots {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: .4rem;
  min-width: 0;
  margin-left: .75rem;
  padding: .35rem .4rem;
  border-radius: 10px;
  background: #172033;
  box-sizing: border-box;
}
.clients-tile-bot {
  flex: 0 0 auto;
  max-width: 100%;
  padding-right: .75rem;
  justify-content: center;
  background: #243049;
  border-color: #334155;
  color: #c5cddb !important;
  font-size: var(--wb-font-s);
  font-weight: 400;
}
.clients-tile-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.clients-tile-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border-radius: 10px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  align-self: stretch;
  aspect-ratio: 1 / 1;
  height: auto;
  width: auto;
  min-width: 2.5rem;
  padding: 0;
}
.clients-tile-status.is-empty {
  visibility: hidden;
  pointer-events: none;
  border: 1px solid transparent;
  background: transparent;
}
.clients-tile-status.is-debt {
  aspect-ratio: auto;
  width: auto;
  min-width: 2.5rem;
  padding: 0 .65rem;
  font-size: var(--wb-font-compact);
  background: #dc3545;
  color: #fff;
  border: 1px solid rgba(220, 53, 69, .85);
}
.clients-tile-status.is-paid {
  font-size: var(--wb-font-check);
  background: #198754;
  color: #fff;
  border: 1px solid rgba(25, 135, 84, .85);
}
.clients-tile-bell {
  appearance: none;
  border: 1px solid var(--wb-brand);
  background: var(--wb-brand);
  color: #fff;
  opacity: 1;
  margin: 0;
  padding: 0;
  line-height: 1;
  cursor: pointer;
  flex: 0 0 auto;
  align-self: stretch;
  aspect-ratio: 1 / 1;
  height: auto;
  width: auto;
  min-width: 2.5rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.clients-tile-x {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  opacity: .8;
  padding: 0 .15rem;
  margin: 0;
  line-height: 1;
  font-size: var(--wb-font-icon);
  cursor: pointer;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.clients-tile-bell:hover { background: #1a56c4; border-color: #1a56c4; }
.clients-tile-x:hover { opacity: 1; }
.clients-tile-bell:disabled {
  opacity: .35;
  cursor: not-allowed;
}
.clients-tile-bell svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}
@media (max-width: 767.98px) {
  .clients-tile-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "client status bell"
      "bots bots bots";
    gap: .4rem;
    align-items: stretch;
  }
  .clients-tile-client {
    grid-area: client;
    max-width: none;
    width: 100%;
  }
  .clients-tile-status {
    grid-area: status;
  }
  .clients-tile-bell {
    grid-area: bell;
  }
  .clients-tile-bots {
    grid-area: bots;
    margin-left: 0;
    width: 100%;
  }
}
.clients-pay-cal {
  margin-bottom: 1.25rem;
  padding: calc(var(--wb-gap) * 1.2);
  border-radius: var(--wb-radius);
  box-shadow: var(--wb-shadow);
  background: linear-gradient(180deg, var(--wb-stat-from), var(--wb-stat-to));
}
.home-pay-cal-link .clients-pay-day:not(:disabled) {
  cursor: pointer;
}
.clients-pay-cal-title {
  font-size: var(--wb-font-h);
  font-weight: 700;
  margin: 0 0 var(--wb-gap) 0;
}
.clients-pay-cal-months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wb-gap);
}
.clients-pay-month {
  background: var(--wb-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: .65rem .7rem .75rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.clients-pay-month-title {
  text-align: center;
  font-weight: 700;
  font-size: var(--wb-font);
  margin-bottom: .5rem;
}
.clients-pay-weekdays,
.clients-pay-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .25rem;
}
.clients-pay-days {
  /* всегда место под 6 строк (как в августе) */
  min-height: calc(6 * 2.45rem + 5 * .25rem);
  align-content: start;
}
.clients-pay-weekdays span {
  text-align: center;
  font-size: var(--wb-font-xs);
  opacity: .7;
  font-weight: 100;
  padding: .15rem 0;
}
.clients-pay-day {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  border-radius: 8px;
  min-height: 2.45rem;
  padding: .2rem .1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .12rem;
  cursor: pointer;
  line-height: 1;
  font-size: var(--wb-font-compact);
  position: relative;
  z-index: 1;
  touch-action: manipulation;
}
.clients-pay-day:disabled {
  cursor: default;
  opacity: .25;
  z-index: 0;
  pointer-events: none;
}
.clients-pay-day.is-due,
.clients-pay-day.is-paid,
.clients-pay-day.is-paid-partial,
.clients-pay-day.is-unpaid {
  pointer-events: auto;
  cursor: pointer;
}
.clients-pay-day.is-today {
  box-shadow: inset 0 0 0 1px rgba(21, 69, 161, .65);
}
.clients-pay-day.is-due {
  background: rgba(108, 117, 125, .22);
  border-color: rgba(108, 117, 125, .55);
  color: inherit;
}
.clients-pay-day.is-paid {
  background: rgba(25, 135, 84, .28) !important;
  border-color: rgba(25, 135, 84, .7) !important;
  font-weight: 700;
}
.clients-pay-day.is-paid-partial {
  background: rgba(25, 135, 84, .16);
  border-color: rgba(25, 135, 84, .45);
}
.clients-pay-day.is-unpaid {
  background: rgba(220, 53, 69, .28) !important;
  border-color: rgba(220, 53, 69, .7) !important;
  font-weight: 700;
}
.clients-pay-day .pay-count {
  font-size: var(--wb-font-xxs);
  font-weight: 700;
  line-height: 1;
  opacity: .9;
}
.clients-pay-day.is-paid .pay-count { color: #198754; }
.clients-pay-day.is-unpaid .pay-count { color: #dc3545; }
[data-bs-theme="dark"] .clients-pay-day.is-due {
  background: rgba(148, 163, 184, .18);
  border-color: rgba(148, 163, 184, .4);
}
[data-bs-theme="dark"] .clients-pay-day.is-paid {
  background: rgba(25, 135, 84, .32) !important;
  border-color: rgba(75, 181, 120, .65) !important;
}
[data-bs-theme="dark"] .clients-pay-day.is-paid .pay-count { color: #75d09a; }
[data-bs-theme="dark"] .clients-pay-day.is-unpaid {
  background: rgba(220, 53, 69, .32) !important;
  border-color: rgba(248, 113, 113, .65) !important;
}
[data-bs-theme="dark"] .clients-pay-day.is-unpaid .pay-count { color: #f87171; }
.clients-pay-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: .75rem .85rem;
  margin-bottom: .65rem;
  background: var(--wb-surface-2);
}
.clients-pay-card.is-paid {
  border-color: rgba(25, 135, 84, .55);
  background: rgba(25, 135, 84, .12);
}
.clients-pay-card.is-unpaid {
  border-color: rgba(220, 53, 69, .45);
  background: rgba(220, 53, 69, .1);
}
.clients-pay-card-title {
  font-weight: 700;
  margin-bottom: .35rem;
}
.clients-pay-card-meta {
  font-size: var(--wb-font-s);
  font-weight: 100;
  margin-bottom: .15rem;
  opacity: .9;
}
.clients-pay-card-meta a { text-decoration: underline; }
.clients-pay-card-actions { margin-top: .55rem; }
.clients-pay-month-sum {
  margin-top: auto;
  padding-top: .65rem;
  border-top: 1px solid var(--bs-border-color);
  text-align: center;
  font-size: var(--wb-font-s);
  font-weight: 100;
}
.clients-pay-month-sum-paid {
  font-weight: 700;
  color: #198754;
}
[data-bs-theme="dark"] .clients-pay-month-sum-paid { color: #75d09a; }
.clients-pay-month-sum-sep { opacity: .6; }
.clients-pay-month-sum-total { font-weight: 700; }
@media (max-width: 991.98px) {
  .clients-pay-cal-months { grid-template-columns: 1fr; }
}
.notify-chip {
  gap: .45rem;
  padding-right: .55rem;
}
.notify-chip-x {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  opacity: .75;
  padding: 0 .15rem;
  margin: 0;
  line-height: 1;
  font-size: var(--wb-font-icon);
  cursor: pointer;
}
.notify-chip-x:hover { opacity: 1; }
.notify-recipients-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}
