/* Единственный файл стилей проекта: палитра, базовые элементы, касса, общие компоненты. */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --theme-page-bg: #f5f6f8;
  --theme-page-panel: #f3f4f6;
  --theme-surface: #fff;
  --theme-surface-soft: #f8f9fa;
  --theme-surface-cool: #f8fafc;
  --theme-surface-subtle: #f7f9fc;
  --theme-surface-muted: #f9fafb;
  --theme-surface-raised: #fbfcfe;
  --theme-surface-hover: #f1f3f5;
  --theme-border: #e5e7eb;
  --theme-border-strong: #d9dee8;
  --theme-border-soft: #eef0f2;
  --theme-text: #212529;
  --theme-text-strong: #111827;
  --theme-text-deep: #0f172a;
  --theme-text-secondary: #495057;
  --theme-text-mid: #374151;
  --theme-text-muted: #6c757d;
  --theme-text-muted-cool: #64748b;
  --theme-text-muted-soft: #6b7280;
  --theme-accent: #2da192;
  --theme-accent-hover: #32a896;
  --theme-accent-ripple: #42b8a6;
  --theme-accent-text: #fff;
  --theme-danger-soft: #fff1f1;
  --theme-warning-soft: #fff7e6;
  --theme-success-soft: #ecfdf3;
  --theme-info-soft: #eef2ff;
  --theme-positive: #157347;
  --theme-writeoff: #198754;
  --theme-negative: #b42318;
  --theme-lock-overlay: hsla(0, 0%, 100%, 0.88);
  --theme-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
  --theme-radius: 1rem;
}
.order-customer-truncate {
  max-width: 220px;
}
:root {
  --app-bg: var(--theme-page-bg);
  --app-surface: var(--theme-surface);
  --app-border: var(--theme-border);
  --app-muted: var(--theme-text-muted);
  --app-text: var(--theme-text);
  --app-shadow: var(--theme-shadow);
  --app-radius: var(--theme-radius);
}
body,
html {
  min-height: 100%;
}
body {
  padding-top: 76px;
  background: var(--app-bg);
  color: var(--app-text);
}
.app-navbar {
  background: var(--theme-surface);
  border-bottom: 1px solid var(--app-border);
  box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.04);
  backdrop-filter: blur(8px);
}
.app-navbar .navbar-brand {
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--app-text);
}
.app-navbar .nav-link {
  color: var(--theme-text-secondary);
  font-weight: 500;
  border-radius: 0.65rem;
  padding: 0.5rem 0.75rem;
}
.app-navbar .nav-link.show,
.app-navbar .nav-link:focus,
.app-navbar .nav-link:hover {
  color: var(--app-text);
  background: var(--theme-surface-hover);
}
.app-navbar .dropdown-menu {
  border: 1px solid var(--app-border);
  border-radius: 0.85rem;
  box-shadow: var(--app-shadow);
  padding: 0.45rem;
}
.app-navbar .dropdown-item {
  border-radius: 0.6rem;
  padding: 0.55rem 0.75rem;
  font-weight: 500;
}
.app-navbar .dropdown-item:focus,
.app-navbar .dropdown-item:hover {
  background: var(--theme-surface-hover);
}
.app-user-box {
  color: var(--app-muted);
  font-size: 0.9rem;
  white-space: nowrap;
}
.app-main {
  width: 100%;
}
.app-content {
  max-width: 1440px;
  margin: 0 auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.app-card,
.card {
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow);
}
.card-header,
.table thead th {
  border-bottom: 1px solid var(--app-border);
}
.table thead th {
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.table tbody td {
  border-color: var(--theme-border-soft);
}
.btn {
  font-weight: 500;
  border-radius: 0.65rem;
}
.form-control,
.form-select {
  border-radius: 0.65rem;
  border-color: var(--theme-border-strong);
}
.form-control:focus,
.form-select:focus {
  border-color: #9aa4b2;
  box-shadow: 0 0 0 0.2rem rgba(33, 37, 41, 0.08);
}
.form-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
}
.alert {
  border-radius: 0.85rem;
  border: 1px solid transparent;
  box-shadow: 0 0.25rem 0.75rem rgba(15, 23, 42, 0.04);
}
.alert-error {
  --bs-alert-color: #842029;
  --bs-alert-bg: #f8d7da;
  --bs-alert-border-color: #f5c2c7;
}
.footer {
  margin-top: 3rem;
  padding: 1.25rem 0;
  background: var(--app-surface);
  border-top: 1px solid var(--app-border);
  text-align: center;
  color: var(--app-muted);
  font-size: 0.9rem;
}
@media (max-width: 991.98px) {
  body {
    padding-top: 68px;
  }
  .app-content {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .app-navbar .navbar-collapse {
    padding-top: 0.75rem;
  }
}
.office-page .form-control,
.office-page .form-select {
  border-color: var(--theme-border-strong);
}
.office-page .metric {
  background: var(--theme-surface-soft);
  border: 1px solid var(--office-border);
  border-radius: 0.85rem;
  padding: 1rem;
}
.office-page .info-table th {
  width: 42%;
  color: var(--theme-text-muted);
  font-weight: 600;
}
.office-page .table td,
.office-page .table th {
  border-color: var(--theme-border-soft);
}
.status-badge {
  border: 1px solid transparent;
  font-weight: 600;
  padding: 0.45rem 0.65rem;
}
.status-new {
  background: var(--theme-info-soft);
  color: #3730a3;
  border-color: var(--theme-border-strong);
}
.status-production {
  background: var(--theme-warning-soft);
  color: #8a5a00;
  border-color: #ffe4ad;
}
.status-ready {
  background: var(--theme-success-soft);
  color: #087443;
  border-color: #bbf7d0;
}
.status-issued {
  background: var(--theme-surface-hover);
  color: var(--theme-text-secondary);
  border-color: var(--theme-border-strong);
}
.order-form-page {
  --of-border: var(--theme-border);
  --of-muted: #6c757d;
  --of-soft: #f8f9fa;
  --of-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
}
.order-form-page .action-panel,
.order-form-page .form-card,
.order-form-page .page-header {
  background: var(--theme-surface);
  border: 1px solid var(--of-border);
  border-radius: 1rem;
  box-shadow: var(--of-shadow);
}
.order-form-page .page-header {
  padding: 1.25rem;
}
.order-form-page .form-card {
  overflow: hidden;
  margin-bottom: 1rem;
}
.order-form-page .form-card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--of-soft);
  border-bottom: 1px solid var(--of-border);
}
.order-form-page .step-number {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #212529;
  color: #fff;
  font-weight: 700;
  font-size: 0.875rem;
  flex: 0 0 auto;
}
.order-form-page .form-card-body {
  padding: 1.25rem;
}
.order-form-page .form-label,
.order-form-page label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
  margin-bottom: 0.35rem;
}
.order-form-page input,
.order-form-page select,
.order-form-page textarea {
  border-color: var(--theme-border-strong);
}
.order-form-page textarea {
  min-height: 42px;
}
.order-form-page .helper-text {
  color: var(--of-muted);
  font-size: 0.875rem;
}
.order-form-page .main-fields {
  background: var(--theme-surface-soft);
}
.order-form-page .main-fields,
.order-form-page .order-item-row {
  border: 1px solid var(--of-border);
  border-radius: 0.875rem;
  padding: 1rem;
}
.order-form-page .order-item-row {
  background: var(--theme-surface);
}
.order-form-page .order-item-row + .order-item-row {
  margin-top: 0.75rem;
}
.order-form-page .order-item-title {
  min-width: 6rem;
}
.order-form-page .order-item-remove {
  white-space: nowrap;
}
.order-form-page .action-panel {
  position: sticky;
  bottom: 1rem;
  z-index: 10;
  padding: 0.875rem;
  margin-top: 1.5rem;
}
.order-form-page .customer-search-wrap {
  position: relative;
}
.order-form-page .customer-search-results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.25rem);
  z-index: 1050;
  max-height: 18rem;
  overflow-y: auto;
  background: var(--theme-surface);
  border: 1px solid var(--of-border);
  border-radius: 0.75rem;
  box-shadow: var(--of-shadow);
}
.order-form-page .customer-search-item {
  width: 100%;
  border: 0;
  background: var(--theme-surface);
  text-align: left;
  padding: 0.75rem 0.9rem;
  border-bottom: 1px solid #f1f3f5;
}
.order-form-page .customer-search-item:focus,
.order-form-page .customer-search-item:hover {
  background: var(--theme-surface-soft);
  outline: none;
}
.order-form-page .selected-customer-card {
  display: none;
  background: var(--theme-surface-soft);
  border: 1px solid var(--of-border);
  border-radius: 0.875rem;
  padding: 0.875rem;
}
.order-form-page .selected-customer-card.is-visible {
  display: block;
}
@media (max-width: 767.98px) {
  .order-form-page .action-panel {
    position: static;
  }
}
.orders-page {
  --orders-border: var(--theme-border);
  --orders-muted: #6c757d;
  --orders-card-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
}
.orders-page .filter-card,
.orders-page .page-header,
.orders-page .table-card {
  background: var(--theme-surface);
  border: 1px solid var(--orders-border);
  border-radius: 1rem;
  box-shadow: var(--orders-card-shadow);
}
.orders-page .page-header {
  padding: 1.25rem;
}
.orders-page .filter-card {
  padding: 1rem;
}
.orders-page .form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
  margin-bottom: 0.35rem;
}
.orders-page .table {
  margin-bottom: 0;
}
.orders-page .table thead th {
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--orders-border);
  white-space: nowrap;
}
.orders-page .table tbody td {
  vertical-align: middle;
  border-color: var(--theme-border-soft);
}
.orders-page .order-number {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    Liberation Mono,
    monospace;
  font-size: 1rem;
  letter-spacing: 0.04em;
}
.orders-page .group-marker {
  border-left: 3px solid #adb5bd;
}
.orders-page .group-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border: 1px solid var(--theme-border-strong);
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  border-radius: 999px;
  padding: 0.18rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.orders-page .group-hint {
  font-size: 0.75rem;
  color: var(--orders-muted);
  margin-top: 0.2rem;
}
.orders-page .status-badge {
  border: 1px solid transparent;
  font-weight: 600;
  padding: 0.45rem 0.65rem;
}
.orders-page .status-new {
  background: var(--theme-info-soft);
  color: #3730a3;
  border-color: var(--theme-border-strong);
}
.orders-page .status-production {
  background: var(--theme-warning-soft);
  color: #8a5a00;
  border-color: #ffe4ad;
}
.orders-page .status-ready {
  background: var(--theme-success-soft);
  color: #087443;
  border-color: #bbf7d0;
}
.orders-page .status-issued {
  background: var(--theme-surface-hover);
  color: var(--theme-text-secondary);
  border-color: var(--theme-border-strong);
}
.orders-page .actions-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}
.orders-page .btn-action-main {
  min-width: 12rem;
}
.orders-page .empty-state {
  padding: 3rem 1rem;
  color: var(--orders-muted);
}
@media (max-width: 991.98px) {
  .orders-page .actions-wrap {
    justify-content: flex-start;
  }
  .orders-page .btn-action-main {
    min-width: auto;
  }
}
.office-page {
  --office-border: var(--theme-border);
  --office-muted: #6c757d;
  --office-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
}
.office-page .office-card,
.office-page .page-header {
  background: var(--theme-surface);
  border: 1px solid var(--office-border);
  border-radius: 1rem;
  box-shadow: var(--office-shadow);
}
.office-page .page-header {
  padding: 1.25rem;
}
.office-page .office-card {
  overflow: hidden;
}
.office-page .office-card-body {
  padding: 1.25rem;
}
.office-page .form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
  margin-bottom: 0.35rem;
}
.office-page .table {
  margin-bottom: 0;
}
.office-page .table thead th {
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--office-border);
  white-space: nowrap;
}
.office-page .table tbody td {
  vertical-align: middle;
  border-color: var(--theme-border-soft);
}
.office-page .actions-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}
.office-page .empty-state {
  padding: 2.5rem 1rem;
  color: var(--office-muted);
}
.office-page .section-title {
  background: var(--theme-surface-soft);
  border-bottom: 1px solid var(--office-border);
  padding: 0.9rem 1.25rem;
  font-weight: 700;
}
.office-page code {
  background: var(--theme-surface-soft);
  border: 1px solid var(--theme-border);
  border-radius: 0.35rem;
  padding: 0.15rem 0.35rem;
  color: var(--theme-text-secondary);
}
@media (max-width: 991.98px) {
  .office-page .actions-wrap {
    justify-content: flex-start;
  }
}
.mvd-page {
  --mvd-border: var(--theme-border);
  --mvd-muted: #6c757d;
  --mvd-card-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
}
.mvd-page .filter-card,
.mvd-page .page-header,
.mvd-page .table-card {
  background: var(--theme-surface);
  border: 1px solid var(--mvd-border);
  border-radius: 1rem;
  box-shadow: var(--mvd-card-shadow);
}
.mvd-page .page-header {
  padding: 1.25rem;
}
.mvd-page .filter-card {
  padding: 1rem;
}
.mvd-page .form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
  margin-bottom: 0.35rem;
}
.mvd-page .table {
  margin-bottom: 0;
}
.mvd-page .table thead th {
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  border-bottom: 1px solid var(--mvd-border);
  white-space: nowrap;
}
.mvd-page .table tbody td {
  vertical-align: middle;
  border-color: var(--theme-border-soft);
  font-size: 0.9rem;
}
.mvd-page .reg-number {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    Liberation Mono,
    monospace;
  letter-spacing: 0.04em;
}
.mvd-page .empty-state {
  padding: 3rem 1rem;
  color: var(--mvd-muted);
}
.cashbox-page .filter-card,
.cashbox-page .office-card {
  border: 1px solid var(--theme-border-strong);
}
.cashbox-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 10px;
}
.cashbox-product-tile {
  border: 1px solid var(--theme-border-strong);
  background: var(--theme-surface);
  border-radius: 12px;
  min-height: 118px;
  padding: 14px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: space-between;
  transition:
    box-shadow 0.15s ease,
    transform 0.15s ease,
    border-color 0.15s ease;
}
.cashbox-product-tile:hover {
  border-color: #9aa7b8;
  box-shadow: 0 8px 24px rgba(33, 37, 41, 0.08);
  transform: translateY(-1px);
}
.cashbox-product-tile .tile-name {
  font-weight: 700;
  line-height: 1.2;
  color: var(--theme-text-strong);
}
.cashbox-product-tile .tile-meta {
  font-size: 12px;
  color: var(--theme-text-muted-soft);
}
.cashbox-product-tile strong {
  font-size: 18px;
  color: var(--theme-text-strong);
}
.cashbox-category-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cashbox-category-row .btn.active {
  background: #212529;
  color: #fff;
  border-color: #212529;
}
.cashbox-receipt-card {
  position: sticky;
  top: 88px;
}
.cashbox-receipt-table-wrap {
  max-height: 430px;
  overflow: auto;
  border: 1px solid var(--theme-border);
  border-radius: 12px;
}
.cashbox-receipt-table {
  margin: 0;
}
.cashbox-receipt-table thead th {
  background: var(--theme-surface-subtle);
  color: var(--theme-text-muted-cool);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--theme-border);
}
.receipt-item-name {
  font-weight: 700;
  color: var(--theme-text-strong);
}
.receipt-item-meta {
  font-size: 12px;
  color: var(--theme-text-muted-soft);
}
.receipt-discount-input,
.receipt-price-input,
.receipt-qty-input {
  width: 82px;
  text-align: right;
}
.cashbox-summary,
.cashbox-total-box {
  border: 1px solid var(--theme-border-strong);
  border-radius: 12px;
  overflow: hidden;
  background: var(--theme-surface);
}
.cashbox-summary > div,
.cashbox-total-box > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--theme-border);
}
.cashbox-summary > div:last-child,
.cashbox-total-box > div:last-child {
  border-bottom: 0;
}
.cashbox-summary span,
.cashbox-total-box span {
  color: var(--theme-text-muted-soft);
}
.cashbox-total-box .total {
  background: var(--theme-surface-subtle);
  font-size: 18px;
}
.cashbox-payment-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--theme-border-strong);
  border-radius: 12px;
  padding: 14px 16px;
  background: var(--theme-surface-subtle);
}
.cashbox-payment-total strong {
  font-size: 24px;
}
@media (max-width: 1199px) {
  .cashbox-receipt-card {
    position: static;
  }
}
@media (max-width: 767px) {
  .cashbox-products-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
  .cashbox-product-tile {
    min-height: 104px;
    padding: 12px;
  }
  .receipt-discount-input,
  .receipt-price-input,
  .receipt-qty-input {
    width: 70px;
  }
}
.cashbox-operation-table td {
  vertical-align: top;
}
.operation-content-cell {
  min-width: 280px;
}
.operation-items-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.operation-item-line {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 7px 9px;
  border: 1px solid var(--theme-border);
  border-radius: 10px;
  background: var(--theme-surface-raised);
}
.operation-item-name {
  font-weight: 650;
  color: var(--theme-text-strong);
}
.operation-item-meta {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  white-space: nowrap;
}
.shift-product-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-bottom: 1px solid var(--theme-border);
}
.shift-product-row:last-child {
  border-bottom: 0;
}
.cashbox-operations-page textarea.form-control {
  min-height: 38px;
  height: 38px;
}
@media (max-width: 767px) {
  .operation-item-line {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .operation-item-meta {
    white-space: normal;
  }
}
.cashbox-page .cashbox-field-col,
.cashbox-page .row.g-3 > .col-12.col-lg-1,
.cashbox-page .row.g-3 > .col-12.col-lg-2,
.cashbox-page .row.g-3 > .col-12.col-lg-3 {
  min-width: 0;
}
.cashbox-register-cell,
.cashbox-register-col {
  width: 120px;
  max-width: 140px;
}
.cashbox-register-cell {
  font-size: 13px;
  line-height: 1.25;
  white-space: normal;
}
.receipt-cost-input {
  width: 82px;
  text-align: right;
}
.receipt-cost-input:disabled {
  background: var(--theme-surface-subtle);
  color: var(--theme-text-muted-soft);
}
.cashbox-operation-table .badge {
  white-space: normal;
  text-align: left;
}
@media (max-width: 767px) {
  .receipt-cost-input {
    width: 70px;
  }
  .cashbox-register-cell,
  .cashbox-register-col {
    width: auto;
    max-width: none;
  }
}
.cashbox-filter-card {
  padding: 16px;
  border-radius: 14px;
  background: var(--theme-surface);
}
.cashbox-filter-row {
  align-items: end;
}
.cashbox-field-col,
.cashbox-filter-field,
.cashbox-filter-submit {
  min-width: 0;
}
.cashbox-field-col .form-label,
.cashbox-filter-field .form-label {
  margin-bottom: 6px;
  color: var(--theme-text-secondary);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.035em;
}
.cashbox-operation-create-card {
  position: relative;
  overflow: hidden;
}
.cashbox-operation-create-card.is-locked {
  min-height: 190px;
}
.cashbox-operation-create-card.is-locked .cashbox-operation-form {
  opacity: 0.18;
  filter: grayscale(0.25);
  pointer-events: none;
  user-select: none;
}
.cashbox-operation-lock {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 24px;
  background: var(--theme-lock-overlay);
  backdrop-filter: blur(2px);
  color: var(--theme-text-strong);
}
.cashbox-lock-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 18px;
  color: var(--theme-text-mid);
  background: var(--theme-page-panel);
  border: 1px solid var(--theme-border-strong);
}
.cashbox-comment-col textarea.form-control,
.cashbox-operation-form textarea.form-control {
  min-height: 38px;
  height: 38px;
  resize: vertical;
}
.receipt-qty-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 94px;
}
.receipt-qty-control span {
  min-width: 24px;
  text-align: center;
  font-weight: 700;
  color: var(--theme-text-strong);
}
.receipt-qty-control .btn {
  width: 28px;
  height: 28px;
  padding: 0;
  line-height: 1;
}
.cashbox-payment-items {
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  padding: 12px;
  background: var(--theme-surface-raised);
}
.cashbox-payment-items-table thead th {
  color: var(--theme-text-muted-cool);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--theme-border);
}
.cashbox-payment-items-table td,
.cashbox-payment-items-table th {
  vertical-align: middle;
}
.payment-cost-input,
.payment-discount-input,
.payment-price-input,
.payment-qty-input {
  width: 92px;
  margin-left: auto;
  text-align: right;
}
.payment-cost-input:disabled,
.payment-discount-input:disabled {
  background: var(--theme-surface-soft);
  color: var(--theme-text-muted-cool);
}
@media (max-width: 767px) {
  .cashbox-payment-items-table {
    min-width: 760px;
  }
  .cashbox-operation-lock {
    padding: 18px;
  }
}
.cashbox-checkout-modal-body {
  background: var(--theme-surface-subtle);
}
.cashbox-checkout-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cashbox-checkout-item {
  border: 1px solid var(--theme-border-strong);
  border-radius: 16px;
  padding: 14px;
  background: var(--theme-surface);
  box-shadow: 0 8px 22px rgba(31, 41, 55, 0.05);
}
.cashbox-checkout-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.cashbox-checkout-grid {
  display: grid;
  grid-template-columns: minmax(150px, 1.05fr) minmax(190px, 1.25fr) minmax(
      120px,
      0.85fr
    ) minmax(150px, 1fr);
  gap: 12px;
}
.cashbox-checkout-field label {
  display: block;
  margin-bottom: 5px;
  color: var(--theme-text-secondary);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-checkout-field .form-control {
  font-weight: 700;
  text-align: right;
}
.cashbox-checkout-hint {
  margin-top: 5px;
  color: var(--theme-text-muted-cool);
  font-size: 11px;
}
.cashbox-checkout-field-muted {
  opacity: 0.72;
}
.cashbox-discount-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.cashbox-checkout-line-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--theme-border-strong);
  color: var(--theme-text-mid);
}
.cashbox-checkout-line-total span {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-checkout-line-total strong {
  color: var(--theme-text-strong);
  font-size: 20px;
  line-height: 1;
}
.cashbox-payment-side {
  position: sticky;
  top: 16px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 16px;
  padding: 16px;
  background: var(--theme-surface);
  box-shadow: 0 8px 22px rgba(31, 41, 55, 0.05);
}
.cashbox-payment-side .form-label {
  margin-bottom: 5px;
  color: var(--theme-text-secondary);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-payment-side .payment-input {
  font-weight: 800;
  text-align: right;
}
.cashbox-payment-accepted {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--theme-border);
  border-radius: 12px;
  background: var(--theme-surface-muted);
}
.cashbox-payment-accepted span {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-payment-accepted strong {
  color: var(--theme-text-strong);
  font-size: 18px;
}
.cashbox-operation-balance-hint.text-danger {
  font-weight: 700;
}
@media (max-width: 991px) {
  .cashbox-payment-side {
    position: static;
  }
  .cashbox-checkout-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 575px) {
  .cashbox-checkout-grid,
  .cashbox-discount-pair {
    grid-template-columns: 1fr;
  }
}
.cashbox-payment-dialog {
  margin: 0;
  max-width: none;
}
.cashbox-payment-dialog .cashbox-payment-modal-header {
  flex: 0 0 auto;
}
.cashbox-payment-layout {
  min-height: 100%;
}
.cashbox-payment-items-col,
.cashbox-payment-side-col {
  min-width: 0;
}
.cashbox-payment-dialog .cashbox-checkout-items {
  max-width: 100%;
}
.cashbox-payment-dialog .cashbox-checkout-item {
  max-width: 100%;
  overflow: hidden;
}
.cashbox-payment-dialog .cashbox-checkout-grid {
  grid-template-columns: minmax(150px, 1fr) minmax(190px, 1.15fr) minmax(
      130px,
      0.8fr
    ) minmax(150px, 0.95fr);
}
.cashbox-payment-dialog .form-control,
.cashbox-payment-dialog .form-select,
.cashbox-payment-dialog .input-group {
  min-width: 0;
}
.cashbox-payment-dialog .input-group-text {
  white-space: nowrap;
}
.cashbox-payment-dialog .cashbox-payment-side {
  top: 18px;
  max-height: calc(100vh - 150px);
  overflow: auto;
}
.cashbox-balance-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.cashbox-balance-card {
  min-width: 0;
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  padding: 14px 16px;
  background: linear-gradient(
    180deg,
    var(--theme-surface) 0,
    var(--theme-surface-muted) 100%
  );
  box-shadow: 0 8px 22px rgba(31, 41, 55, 0.04);
}
.cashbox-balance-label {
  margin-bottom: 5px;
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-balance-amount {
  color: var(--theme-text-strong);
  font-size: 22px;
  font-weight: 800;
  line-height: 1.1;
  word-break: break-word;
}
.cashbox-balance-card-cash {
  border-left: 4px solid #374151;
}
.cashbox-balance-card-card,
.cashbox-balance-card-qr,
.cashbox-balance-card-transfer {
  border-left: 4px solid #9aa7b8;
}
@media (min-width: 1600px) {
  .cashbox-payment-dialog .cashbox-checkout-grid {
    grid-template-columns: minmax(180px, 1.05fr) minmax(220px, 1.2fr) minmax(
        150px,
        0.8fr
      ) minmax(180px, 0.95fr);
  }
}
@media (max-width: 1199px) {
  .cashbox-payment-dialog .cashbox-payment-side {
    position: static;
    max-height: none;
    overflow: visible;
  }
}
@media (max-width: 991px) {
  .cashbox-balance-cards,
  .cashbox-payment-dialog .cashbox-checkout-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575px) {
  .cashbox-balance-cards,
  .cashbox-payment-dialog .cashbox-checkout-grid,
  .cashbox-payment-dialog .cashbox-discount-pair {
    grid-template-columns: 1fr;
  }
  .cashbox-balance-card {
    padding: 12px 14px;
  }
  .cashbox-balance-amount {
    font-size: 19px;
  }
  .cashbox-checkout-item-head {
    align-items: stretch;
  }
}
.cashbox-current-shift-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  border: 1px solid var(--theme-border-strong);
  border-radius: 16px;
  padding: 16px 18px;
  background: var(--theme-surface);
  box-shadow: 0 8px 22px rgba(31, 41, 55, 0.04);
}
.cashbox-current-shift-card.is-open {
  border-left: 4px solid #198754;
}
.cashbox-current-shift-card.is-closed {
  border-left: 4px solid #6b7280;
  background: linear-gradient(
    180deg,
    var(--theme-surface) 0,
    var(--theme-surface-muted) 100%
  );
}
.cashbox-current-shift-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  color: var(--theme-text-mid);
  background: var(--theme-page-panel);
  border: 1px solid var(--theme-border-strong);
}
.cashbox-current-shift-card.is-open .cashbox-current-shift-icon {
  color: #146c43;
  background: var(--theme-success-soft);
  border-color: #badbcc;
}
.cashbox-lockable-block {
  position: relative;
}
.cashbox-lockable-block.is-locked {
  min-height: 108px;
}
.cashbox-lockable-block.is-locked .cashbox-filter-card {
  opacity: 0.18;
  filter: grayscale(0.25);
  pointer-events: none;
  user-select: none;
}
.cashbox-block-lock {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 18px;
  background: var(--theme-lock-overlay);
  backdrop-filter: blur(2px);
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  color: var(--theme-text-strong);
}
.cashbox-journal-locked-card {
  border: 1px dashed var(--theme-border-strong);
  background: linear-gradient(
    180deg,
    var(--theme-surface) 0,
    var(--theme-surface-muted) 100%
  );
}
@media (max-width: 767px) {
  .cashbox-current-shift-card {
    align-items: flex-start;
    padding: 14px;
  }
  .cashbox-current-shift-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
  }
}
@media (max-width: 575px) {
  .cashbox-current-shift-card {
    flex-direction: column;
    align-items: stretch;
  }
  .cashbox-current-shift-card .btn {
    width: 100%;
  }
}
.cashbox-form-section-title {
  padding: 0.75rem 1rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.8rem;
  background: var(--theme-surface-soft);
  color: var(--theme-text-strong);
  font-weight: 700;
  letter-spacing: 0.01em;
}
.cashbox-checkout-production,
.cashbox-checkout-profit {
  margin-top: 0.85rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.9rem;
  background: var(--theme-surface-cool);
  padding: 0.85rem;
}
.cashbox-checkout-production-title {
  font-weight: 700;
  margin-bottom: 0.65rem;
  color: var(--theme-text-strong);
}
.cashbox-checkout-grid-production {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cashbox-readonly-pill {
  min-height: 31px;
  display: flex;
  padding: 0.25rem 0.65rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.5rem;
  background: var(--theme-surface);
  color: var(--theme-text-secondary);
  font-size: 0.875rem;
}
.cashbox-checkout-profit {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}
.cashbox-checkout-profit > div {
  border: 1px solid var(--theme-border);
  border-radius: 0.65rem;
  background: var(--theme-surface);
  padding: 0.65rem 0.75rem;
}
.cashbox-checkout-profit span {
  display: block;
  color: var(--theme-text-muted-soft);
  font-size: 0.76rem;
  margin-bottom: 0.15rem;
}
.cashbox-checkout-profit strong {
  color: var(--theme-text-strong);
  font-size: 0.96rem;
}
@media (max-width: 1199.98px) {
  .cashbox-checkout-grid-production,
  .cashbox-checkout-profit {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575.98px) {
  .cashbox-checkout-grid-production,
  .cashbox-checkout-profit {
    grid-template-columns: 1fr;
  }
}
.cashbox-form-section {
  border: 1px solid var(--theme-border);
  border-radius: 16px;
  background: var(--theme-surface);
  padding: 18px;
}
.cashbox-form-section-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.cashbox-product-form .form-text {
  color: var(--theme-text-muted-soft);
  font-size: 0.78rem;
}
.cashbox-product-form [data-product-section].d-none {
  display: none !important;
}
.cashbox-customer-panel {
  border-radius: 14px;
  padding: 14px;
}
.cashbox-customer-panel,
.cashbox-switch-row {
  border: 1px solid var(--theme-border);
  background: var(--theme-surface-muted);
}
.cashbox-switch-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px;
  border-radius: 12px;
}
.cashbox-switch-option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  color: var(--theme-text-mid);
  cursor: pointer;
  user-select: none;
}
.cashbox-switch-option input {
  margin: 0;
}
.cashbox-switch-option.active {
  background: #111827;
  color: #fff;
}
.cashbox-customer-create-form .cashbox-form-section-title {
  padding-top: 4px;
}
.cashbox-checkout-production {
  border: 1px solid #dbeafe;
  background: var(--theme-info-soft);
}
.cashbox-checkout-hint {
  line-height: 1.25;
}
@media (max-width: 767px) {
  .cashbox-form-section {
    padding: 14px;
    border-radius: 12px;
  }
  .cashbox-switch-row {
    flex-direction: column;
  }
  .cashbox-switch-option {
    width: 100%;
  }
}
.cashbox-products-list {
  display: grid;
  gap: 14px;
}
.cashbox-product-row-card.is-muted {
  opacity: 0.68;
}
.cashbox-product-row-main {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.cashbox-product-row-title {
  min-width: 0;
}
.cashbox-product-row-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.cashbox-product-row-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.cashbox-product-metric {
  border: 1px solid var(--theme-border);
  border-radius: 12px;
  background: var(--theme-surface-muted);
  padding: 12px;
  min-width: 0;
}
.cashbox-product-metric small,
.cashbox-product-metric span {
  display: block;
  color: var(--theme-text-muted-soft);
  font-size: 0.78rem;
}
.cashbox-product-metric strong {
  display: block;
  font-size: 1rem;
  color: var(--theme-text-strong);
  margin-top: 2px;
  overflow-wrap: anywhere;
}
.cashbox-product-row-note {
  border-radius: 12px;
  background: var(--theme-page-panel);
  color: var(--theme-text-mid);
  font-size: 0.86rem;
  padding: 10px 12px;
}
.cashbox-product-row-note span {
  font-weight: 700;
  color: var(--theme-text-strong);
}
@media (max-width: 1199px) {
  .cashbox-product-row-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .cashbox-product-row-main {
    flex-direction: column;
  }
  .cashbox-product-row-actions {
    width: 100%;
    justify-content: stretch;
  }
  .cashbox-product-row-actions .btn {
    flex: 1 1 auto;
  }
  .cashbox-product-row-metrics {
    grid-template-columns: 1fr;
  }
}
.cashbox-representative-panel {
  border: 1px solid var(--theme-border);
  border-radius: 12px;
  background: var(--theme-surface-muted);
  padding: 12px;
}
.cashbox-representative-panel .form-text {
  margin-top: 6px;
}
.cashbox-customer-create-form .cashbox-form-section-title,
.cashbox-representative-create-form .cashbox-form-section-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--theme-text-strong);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cashbox-checkout-grid-docs {
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
}
.cashbox-checkout-production .cashbox-checkout-production-title.mt-3 {
  margin-top: 14px !important;
}
@media (max-width: 1199px) {
  .cashbox-checkout-grid-docs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575px) {
  .cashbox-checkout-grid-docs,
  .cashbox-checkout-grid-production {
    grid-template-columns: 1fr;
  }
  .cashbox-representative-panel {
    padding: 10px;
  }
}
.cashbox-search-wrap {
  position: relative;
}
.cashbox-search-wrap .customer-search-results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 1060;
  max-height: 320px;
  overflow: auto;
  border: 1px solid var(--theme-border-strong);
  border-radius: 12px;
  background: var(--theme-surface);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16);
}
.cashbox-search-wrap .customer-search-item {
  display: block;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: var(--theme-surface);
  text-align: left;
  padding: 10px 12px;
  color: var(--theme-text-strong);
}
.cashbox-search-wrap .customer-search-item:focus,
.cashbox-search-wrap .customer-search-item:hover {
  background: var(--theme-page-panel);
  outline: none;
}
.cashbox-selected-card {
  display: none;
  border: 1px solid var(--theme-border-strong);
  border-radius: 12px;
  background: var(--theme-surface);
  padding: 10px 12px;
}
.cashbox-selected-card.is-visible {
  display: block;
}
.cashbox-qty-input {
  max-width: 92px;
  text-align: center;
}
.cashbox-payment-method-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.cashbox-payment-method-btn {
  min-height: 84px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  background: var(--theme-surface);
  color: var(--theme-text-strong);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  transition: 0.15s ease;
}
.cashbox-payment-method-btn.is-active,
.cashbox-payment-method-btn:hover {
  border-color: #111827;
  background: #111827;
  color: #fff;
}
.cashbox-payment-method-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cashbox-payment-method-icon svg {
  width: 30px;
  height: 30px;
  fill: currentColor;
}
.cashbox-split-payment-panel {
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  background: var(--theme-surface-muted);
  padding: 12px;
}
@media (max-width: 575px) {
  .cashbox-payment-method-grid {
    grid-template-columns: 1fr;
  }
  .cashbox-payment-method-btn {
    min-height: 68px;
    flex-direction: row;
  }
  .cashbox-search-wrap .customer-search-results {
    max-height: 260px;
  }
}
.cashbox-product-tile.is-disabled,
.cashbox-product-tile:disabled {
  background: var(--theme-surface-soft);
  color: var(--theme-text-muted-soft);
  opacity: 0.76;
  cursor: not-allowed;
}
.cashbox-product-tile.is-disabled,
.cashbox-product-tile.is-disabled:hover,
.cashbox-product-tile:disabled,
.cashbox-product-tile:disabled:hover {
  border-color: var(--theme-border-strong);
  box-shadow: none;
  transform: none;
}
.cashbox-product-tile.is-disabled .tile-name,
.cashbox-product-tile.is-disabled strong,
.cashbox-product-tile:disabled .tile-name,
.cashbox-product-tile:disabled strong {
  color: var(--theme-text-secondary);
}
.tile-stock-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  border: 1px solid var(--theme-border-strong);
  border-radius: 999px;
  background: #e5e7eb;
  color: var(--theme-text-mid);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 5px 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.cashbox-readonly-pill {
  min-height: calc(1.5em + 0.5rem + 2px);
  height: auto;
  align-items: center;
  line-height: 1.35;
  padding: 0.43rem 0.65rem;
  overflow-wrap: anywhere;
  white-space: normal;
}
.cashbox-payment-method-grid {
  gap: 8px;
}
.cashbox-payment-method-btn {
  min-height: 58px;
  border-radius: 11px;
  gap: 5px;
  padding: 8px 10px;
  font-size: 13px;
}
.cashbox-payment-method-icon,
.cashbox-payment-method-icon svg {
  width: 22px;
  height: 22px;
}
@media (min-width: 1200px) {
  .cashbox-payment-method-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 575px) {
  .cashbox-payment-method-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cashbox-payment-method-btn {
    min-height: 52px;
    flex-direction: row;
    justify-content: center;
    font-size: 12px;
  }
}
.cashbox-pos-page {
  --pos-border: var(--theme-border-strong);
  --pos-muted: #6b7280;
  --pos-dark: #111827;
}
.cashbox-pos-statusbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  display: grid;
  grid-template-columns: minmax(160px, 280px) minmax(0, 1fr) auto;
  align-items: stretch;
  min-height: 62px;
  border: 1px solid var(--pos-border);
  border-radius: 16px;
  background: var(--theme-surface);
  box-shadow: 0 10px 30px rgba(17, 24, 39, 0.07);
  overflow: visible;
}
.cashbox-pos-menu-wrap {
  position: relative;
  min-width: 0;
  border-right: 1px solid #eef1f5;
}
.cashbox-status-menu-btn {
  width: 100%;
  min-height: 62px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px;
  border: 0;
  background: transparent;
  color: var(--pos-dark);
  font-weight: 800;
  text-align: left;
}
.cashbox-status-menu-btn:hover,
.cashbox-status-menu-btn[aria-expanded="true"] {
  background: var(--theme-surface-subtle);
}
.cashbox-menu-item svg,
.cashbox-pos-connection svg,
.cashbox-status-menu-btn svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  flex: 0 0 auto;
}
.cashbox-pos-menu-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  width: min(360px, 100vw - 30px);
  display: none;
  border: 1px solid var(--pos-border);
  border-radius: 18px;
  background: var(--theme-surface);
  box-shadow: 0 22px 60px rgba(17, 24, 39, 0.18);
  padding: 12px;
  z-index: 1060;
}
.cashbox-pos-menu-panel.is-open {
  display: block;
}
.cashbox-pos-menu-profile {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 10px 10px 12px;
}
.cashbox-pos-avatar {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--theme-surface-soft);
  color: var(--theme-text-mid);
  font-weight: 900;
  text-transform: uppercase;
}
.cashbox-pos-menu-profile a {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  text-decoration: none;
}
.cashbox-pos-menu-profile a:hover {
  color: var(--theme-text-strong);
  text-decoration: underline;
}
.cashbox-pos-register-switch {
  padding: 8px 10px 12px;
}
.cashbox-menu-divider {
  height: 1px;
  margin: 6px 0;
  background: var(--theme-surface-soft);
}
.cashbox-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 700;
}
.cashbox-menu-item,
.cashbox-menu-item:hover {
  color: var(--theme-text-strong);
  text-decoration: none;
}
.cashbox-menu-item:hover {
  background: var(--theme-surface-subtle);
}
.cashbox-menu-item.is-danger {
  color: #b42318;
}
.cashbox-menu-item.is-danger:hover {
  background: var(--theme-danger-soft);
}
.cashbox-menu-item.is-muted {
  color: var(--theme-text-mid);
  background: var(--theme-surface-muted);
  cursor: default;
}
.cashbox-menu-icon {
  width: 20px;
  text-align: center;
  flex: 0 0 20px;
}
.cashbox-beta-icon {
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}
.cashbox-pos-status-center {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  padding: 10px 18px;
  text-align: center;
}
.cashbox-pos-store-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--theme-text-strong);
  font-weight: 900;
  white-space: nowrap;
}
.cashbox-pos-store-line,
.cashbox-pos-store-line span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cashbox-pos-separator {
  color: var(--theme-text-muted-cool);
  flex: 0 0 auto;
}
.cashbox-pos-shift-line {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 700;
}
.cashbox-pos-status-right {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border-left: 1px solid #eef1f5;
  color: var(--theme-text-mid);
  font-weight: 700;
  white-space: nowrap;
}
.cashbox-pos-date {
  color: var(--theme-text-secondary);
  font-size: 13px;
}
.cashbox-pos-time {
  min-width: 44px;
  color: var(--theme-text-strong);
  font-variant-numeric: tabular-nums;
}
.cashbox-pos-connection {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--theme-page-panel);
  color: var(--theme-text-muted-cool);
}
.cashbox-pos-connection.is-online {
  background: var(--theme-success-soft);
  color: #16803c;
}
.cashbox-pos-connection.is-offline {
  background: var(--theme-danger-soft);
  color: #b42318;
}
.cashbox-pos-workspace-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.cashbox-pos-quick-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
@media (max-width: 991px) {
  .cashbox-pos-statusbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    border-radius: 14px;
  }
  .cashbox-status-menu-btn {
    width: auto;
    min-width: 58px;
    padding: 0 14px;
  }
  .cashbox-status-menu-btn span {
    display: none;
  }
  .cashbox-pos-status-center {
    text-align: left;
    padding: 9px 12px;
  }
  .cashbox-pos-store-line {
    justify-content: flex-start;
    max-width: 100%;
  }
  .cashbox-pos-status-right {
    gap: 6px;
    padding: 0 10px;
  }
  .cashbox-pos-date {
    display: none;
  }
  .cashbox-pos-workspace-head {
    align-items: stretch;
    flex-direction: column;
  }
  .cashbox-pos-quick-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 575px) {
  .cashbox-pos-statusbar {
    grid-template-columns: 54px minmax(0, 1fr) 76px;
    min-height: 58px;
  }
  .cashbox-status-menu-btn {
    min-height: 58px;
    padding: 0 12px;
  }
  .cashbox-pos-status-center {
    padding: 8px 10px;
  }
  .cashbox-pos-store-line {
    font-size: 13px;
  }
  .cashbox-pos-shift-line {
    font-size: 11px;
  }
  .cashbox-pos-status-right {
    padding: 0 8px;
  }
  .cashbox-pos-time {
    min-width: 38px;
    font-size: 13px;
  }
  .cashbox-pos-connection {
    width: 28px;
    height: 28px;
  }
  .cashbox-pos-menu-panel {
    position: fixed;
    top: 72px;
    left: 12px;
    right: 12px;
    width: auto;
    max-height: calc(100vh - 86px);
    overflow: auto;
  }
}
.cashbox-pos-page {
  padding-bottom: 88px;
}
.cashbox-pos-app-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 16px;
  background: var(--theme-surface);
}
.cashbox-pos-app-head .fw-semibold,
.cashbox-pos-app-head h1,
.cashbox-pos-bottom-bar,
.cashbox-pos-bottom-menu,
.cashbox-spa-main,
.cashbox-spa-sidebar {
  font-family: inherit;
}
.cashbox-bottom-action,
.cashbox-document-item h3,
.cashbox-menu-item,
.cashbox-pos-app-head h1,
.cashbox-pos-avatar,
.cashbox-pos-store-line,
.cashbox-shift-mini-item strong,
.cashbox-spa-main h2 {
  font-weight: 600;
}
.cashbox-pos-app-head-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.cashbox-pos-view {
  display: none;
}
.cashbox-pos-view.is-active {
  display: block;
}
.cashbox-spa-layout {
  display: grid;
  grid-template-columns: minmax(220px, 310px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.cashbox-spa-main,
.cashbox-spa-sidebar {
  padding: 16px;
}
.cashbox-spa-sidebar {
  position: sticky;
  top: 16px;
  max-height: calc(100vh - 130px);
  overflow: auto;
}
.cashbox-spa-section-title,
.cashbox-spa-sidebar-title {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.cashbox-shift-mini-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cashbox-shift-mini-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--theme-border);
  border-radius: 12px;
  background: var(--theme-surface);
  padding: 10px 12px;
  color: var(--theme-text-strong);
  text-align: left;
}
.cashbox-shift-mini-item.is-active,
.cashbox-shift-mini-item:hover {
  background: var(--theme-surface-subtle);
  border-color: var(--theme-border-strong);
}
.cashbox-shift-mini-item small {
  display: block;
  margin-top: 2px;
  color: var(--theme-text-muted-soft);
}
.cashbox-shift-mini-item b {
  white-space: nowrap;
  font-weight: 600;
}
.cashbox-document-head,
.cashbox-shift-full-head,
.cashbox-spa-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.cashbox-shift-summary {
  display: grid;
  gap: 10px;
}
.cashbox-shift-summary-row {
  display: grid;
  grid-template-columns: minmax(210px, 0.85fr) minmax(0, 3fr);
  overflow: hidden;
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  background: var(--theme-surface-raised);
}
.cashbox-shift-summary-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 14px 16px;
  border-right: 1px solid var(--theme-border);
  background: var(--theme-surface-subtle);
}
.cashbox-shift-summary-title > b {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 12px;
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 700;
}
.cashbox-shift-summary-title > span {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.cashbox-shift-summary-title strong {
  color: var(--theme-text-strong);
  font-size: 13px;
  font-weight: 650;
}
.cashbox-shift-summary-title small {
  color: var(--theme-text-muted-soft);
  font-size: 10px;
  line-height: 1.25;
}
.cashbox-shift-summary-values {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
}
.cashbox-shift-summary-values-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.cashbox-shift-summary-values > div {
  min-width: 0;
  padding: 11px 13px;
  border-left: 1px solid var(--theme-border);
}
.cashbox-shift-summary-values > div:first-child {
  border-left: 0;
}
.cashbox-shift-summary-values span {
  display: block;
  margin-bottom: 3px;
  color: var(--theme-text-muted-soft);
  font-size: 11px;
}
.cashbox-shift-summary-values strong {
  display: block;
  overflow: hidden;
  color: var(--theme-text-strong);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cashbox-shift-summary-row-total {
  border-color: var(--theme-border-strong);
}
.cashbox-shift-summary-row-total .cashbox-shift-summary-title {
  background: var(--theme-surface-cool);
}
.cashbox-shift-summary-row-final {
  border-color: color-mix(in srgb, #3f9b73 34%, var(--theme-border));
  background: color-mix(
    in srgb,
    var(--theme-success-soft) 48%,
    var(--theme-surface-raised)
  );
}
.cashbox-shift-summary-row-final .cashbox-shift-summary-title {
  background: color-mix(
    in srgb,
    var(--theme-success-soft) 68%,
    var(--theme-surface-subtle)
  );
}
.cashbox-shift-summary-details {
  overflow: hidden;
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  background: var(--theme-surface-raised);
}
.cashbox-shift-summary-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  cursor: pointer;
  list-style: none;
  background: var(--theme-surface-cool);
}
.cashbox-shift-summary-details > summary::-webkit-details-marker {
  display: none;
}
.cashbox-shift-summary-details > summary .cashbox-shift-summary-title {
  flex: 1 1 auto;
  border-right: 0;
  background: transparent;
}
.cashbox-shift-summary-details > .cashbox-shift-summary-values {
  border-top: 1px solid var(--theme-border);
}
.cashbox-shift-summary-toggle {
  position: relative;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  margin-right: 14px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 11px;
  background: var(--theme-surface-raised);
}
.cashbox-shift-summary-toggle:after,
.cashbox-shift-summary-toggle:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1.5px;
  border-radius: 999px;
  background: var(--theme-text-secondary);
  transform: translate(-50%, -50%);
  transition: transform 0.18s ease;
}
.cashbox-shift-summary-toggle:after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.cashbox-shift-summary-details[open] .cashbox-shift-summary-toggle:after {
  transform: translate(-50%, -50%) rotate(0deg);
}
.cashbox-shift-product-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--theme-border);
}
.cashbox-shift-product-line:last-child {
  border-bottom: 0;
}
.cashbox-shift-product-line small {
  color: var(--theme-text-muted-soft);
}
.cashbox-documents-feed {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cashbox-document-item {
  border: 1px solid var(--theme-border);
  border-radius: 16px;
  background: var(--theme-surface);
  padding: 14px;
}
.cashbox-document-item h3 {
  margin: 0 0 4px;
  font-size: 16px;
  color: var(--theme-text-strong);
}
.cashbox-document-meta {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
}
.cashbox-document-payment-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
  min-width: 120px;
}
.cashbox-document-payment-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}
.cashbox-document-payment-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 4px 8px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 999px;
  background: var(--theme-surface);
  color: var(--theme-text-mid);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}
.cashbox-document-payment-icon {
  width: 15px;
  height: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cashbox-document-payment-icon svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}
.cashbox-application-btn {
  padding: 2px 8px;
  line-height: 1.35;
}
.cashbox-document-price {
  color: var(--theme-positive);
  white-space: nowrap;
  font-size: 18px;
  font-weight: 600;
}
.cashbox-document-price.is-negative {
  color: var(--theme-negative);
}
.cashbox-document-price.is-writeoff {
  color: var(--theme-writeoff);
}
.cashbox-document-price.is-positive {
  color: var(--theme-positive);
}
.cashbox-document-products th {
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  font-weight: 600;
  background: var(--theme-surface-subtle);
}
.cashbox-pos-bottom-backdrop {
  position: fixed;
  inset: 0;
  display: none;
  background: rgba(17, 24, 39, 0.22);
  z-index: 1050;
}
.cashbox-pos-bottom-backdrop.is-open {
  display: block;
}
.cashbox-pos-bottom-bar {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 1060;
  min-height: 64px;
  display: grid;
  align-items: center;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 20px;
  background: var(--theme-surface);
  box-shadow: 0 22px 60px rgba(17, 24, 39, 0.18);
  backdrop-filter: blur(12px);
}
.cashbox-bottom-action {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: var(--theme-text-mid);
  font-size: 13px;
  text-decoration: none;
}
.cashbox-bottom-action.is-active,
.cashbox-bottom-action:hover,
.cashbox-bottom-action[aria-expanded="true"] {
  background: var(--theme-surface-soft);
  color: var(--theme-text-strong);
}
.cashbox-bottom-action:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.cashbox-bottom-action svg,
.cashbox-bottom-status svg,
.cashbox-pos-bottom-menu svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
  flex: 0 0 auto;
}
.cashbox-bottom-status {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  color: var(--theme-text-secondary);
  font-size: 12px;
  min-width: 0;
}
.cashbox-bottom-status time {
  color: var(--theme-text-strong);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.cashbox-pos-bottom-menu {
  position: fixed;
  left: 16px;
  bottom: 92px;
  top: auto;
  width: min(380px, 100vw - 32px);
  max-height: calc(100vh - 130px);
  overflow: auto;
  z-index: 1065;
  border-radius: 20px;
}
.cashbox-pos-bottom-menu .cashbox-menu-item {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 14px;
}
.cashbox-pos-bottom-menu .cashbox-menu-item:hover {
  background: var(--theme-surface-subtle);
}
.cashbox-beta-icon,
.cashbox-menu-item.is-muted,
.cashbox-pos-statusbar,
.cashbox-pos-workspace-head {
  display: none !important;
}
@media (max-width: 1199px) {
  .cashbox-shift-summary-row {
    grid-template-columns: minmax(190px, 0.8fr) minmax(0, 2fr);
  }
  .cashbox-shift-summary-values,
  .cashbox-shift-summary-values-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cashbox-shift-summary-values > div:nth-child(odd) {
    border-left: 0;
  }
  .cashbox-shift-summary-values > div:nth-child(n + 3) {
    border-top: 1px solid var(--theme-border);
  }
  .cashbox-shift-summary-values-five > div:last-child {
    grid-column: 1/-1;
  }
}
@media (max-width: 991px) {
  .cashbox-spa-layout {
    grid-template-columns: 1fr;
  }
  .cashbox-spa-sidebar {
    position: static;
    max-height: none;
  }
  .cashbox-shift-mini-list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(210px, 1fr);
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .cashbox-pos-app-head {
    align-items: stretch;
    flex-direction: column;
  }
}
@media (max-width: 767px) {
  .cashbox-pos-page {
    padding-bottom: 112px;
  }
  .cashbox-pos-bottom-bar {
    left: 8px;
    right: 8px;
    bottom: 8px;
    grid-template-columns: repeat(4, 1fr);
    min-height: 72px;
    border-radius: 18px;
  }
  .cashbox-bottom-action {
    flex-direction: column;
    gap: 3px;
    min-height: 54px;
    font-size: 11px;
  }
  .cashbox-bottom-status {
    grid-column: 1/-1;
    justify-content: center;
    border-top: 1px solid var(--theme-border);
    padding-top: 6px;
  }
  .cashbox-pos-bottom-menu {
    left: 8px;
    right: 8px;
    bottom: 104px;
    width: auto;
    max-height: calc(100vh - 122px);
  }
  .cashbox-document-head,
  .cashbox-shift-full-head,
  .cashbox-spa-panel-head {
    flex-direction: column;
    align-items: stretch;
  }
  .cashbox-shift-summary-row {
    grid-template-columns: 1fr;
  }
  .cashbox-shift-summary-title {
    border-right: 0;
    border-bottom: 1px solid var(--theme-border);
  }
}
.cashbox-pos-page {
  font-family: inherit;
  font-weight: 400;
}
.cashbox-spa-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 18px;
  align-items: start;
}
.cashbox-inline-ops-card {
  position: sticky;
  top: 18px;
}
.cashbox-method-balance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.cashbox-method-balance {
  border: 1px solid var(--theme-border-strong);
  border-radius: 14px;
  background: var(--theme-surface-cool);
  padding: 12px;
  min-width: 0;
}
.cashbox-method-balance span {
  display: block;
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  margin-bottom: 4px;
}
.cashbox-method-balance strong {
  color: var(--theme-text-strong);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.cashbox-inline-entity-form .form-label,
.cashbox-inline-form .form-label {
  font-size: 12px;
  color: var(--theme-text-secondary);
  margin-bottom: 4px;
}
.cashbox-products-list-inline {
  display: grid;
  gap: 12px;
}
.cashbox-register-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.cashbox-register-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 14px;
  background: var(--theme-surface);
}
.cashbox-product-section,
.cashbox-register-card {
  border: 1px solid var(--theme-border-strong);
  border-radius: 16px;
}
.cashbox-product-section {
  background: var(--theme-surface-raised);
  padding: 16px;
}
.cashbox-pos-bottom-bar {
  overflow-x: auto;
  scrollbar-width: thin;
}
.cashbox-bottom-action {
  font-weight: 500;
  white-space: nowrap;
}
@media (max-width: 1199px) {
  .cashbox-spa-grid {
    grid-template-columns: 1fr;
  }
  .cashbox-inline-ops-card {
    position: static;
  }
}
@media (max-width: 767px) {
  .cashbox-pos-bottom-bar {
    grid-template-columns: repeat(7, minmax(72px, 1fr));
    overflow-x: auto;
    padding-bottom: 6px;
  }
  .cashbox-bottom-status {
    min-width: 160px;
  }
  .cashbox-method-balance-grid,
  .cashbox-register-card,
  .cashbox-register-card-grid {
    grid-template-columns: 1fr;
  }
  .cashbox-register-card {
    align-items: start;
  }
}
.cashbox-shift-mini-item {
  cursor: pointer;
}
.cashbox-shift-products {
  border-top: 1px solid #eef2f7;
  padding-top: 14px;
}
.cashbox-shift-products summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--theme-text-mid);
  list-style: none;
}
.cashbox-shift-products summary::-webkit-details-marker {
  display: none;
}
.cashbox-shift-products summary:after {
  content: "Показать";
  float: right;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--theme-text-muted-cool);
  border: 1px solid var(--theme-border-strong);
  border-radius: 999px;
  padding: 2px 8px;
}
.cashbox-shift-products[open] summary:after {
  content: "Скрыть";
}
.cashbox-document-item {
  scroll-margin-bottom: 120px;
}
.cashbox-bottom-action span {
  font-weight: 500;
}
.cashbox-pos-page,
.cashbox-spa-main {
  font-weight: 400;
}
@media (max-width: 767px) {
  .cashbox-shift-full-head {
    align-items: flex-start;
    gap: 10px;
  }
}
.cashbox-pos-bottom-bar {
  grid-template-columns: repeat(4, minmax(72px, auto)) minmax(130px, 1fr);
}
.cashbox-pos-menu-panel .cashbox-menu-item svg {
  width: 18px;
  height: 18px;
}
@media (max-width: 767.98px) {
  .cashbox-pos-bottom-bar {
    grid-template-columns: repeat(4, minmax(62px, 1fr));
  }
  .cashbox-bottom-status {
    display: none;
  }
}
.cashbox-customer-toggle .btn {
  border-style: dashed;
  min-height: 42px;
}
.cashbox-dadata-panel {
  position: absolute;
  z-index: 2200;
  background: var(--theme-surface);
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
  overflow: hidden;
  max-height: 280px;
  overflow-y: auto;
}
.cashbox-dadata-panel.d-none {
  display: none !important;
}
.cashbox-dadata-item {
  display: block;
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.07);
  background: var(--theme-surface);
  text-align: left;
  padding: 10px 12px;
  color: var(--theme-text-strong);
  cursor: pointer;
}
.cashbox-dadata-item:last-child {
  border-bottom: 0;
}
.cashbox-dadata-item:focus,
.cashbox-dadata-item:hover {
  background: var(--theme-surface-cool);
  outline: none;
}
.cashbox-dadata-title {
  font-weight: 600;
  line-height: 1.25;
}
.cashbox-dadata-meta {
  color: var(--theme-text-muted-cool);
  font-size: 0.82rem;
  margin-top: 2px;
}
@media (max-width: 767.98px) {
  .cashbox-document-payment-stack {
    align-items: flex-start;
    min-width: 0;
    width: 100%;
  }
  .cashbox-document-payment-badges {
    justify-content: flex-start;
  }
  .cashbox-dadata-panel {
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-height: 50vh;
  }
}
.cashbox-duplicate-compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}
.cashbox-duplicate-column {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 16px;
  background: var(--theme-surface);
  overflow: hidden;
  min-width: 0;
}
.cashbox-duplicate-column-title {
  padding: 12px 14px;
  background: var(--theme-surface-cool);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  font-weight: 600;
  color: var(--theme-text-strong);
}
.cashbox-duplicate-list {
  display: flex;
  flex-direction: column;
}
.cashbox-duplicate-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.75fr) minmax(0, 1.25fr);
  gap: 12px;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  align-items: start;
}
.cashbox-duplicate-row:last-child {
  border-bottom: 0;
}
.cashbox-duplicate-row.is-changed {
  background: var(--theme-warning-soft);
}
.cashbox-duplicate-label {
  color: var(--theme-text-muted-cool);
  font-size: 0.84rem;
}
.cashbox-duplicate-value {
  color: var(--theme-text-strong);
  font-weight: 500;
  word-break: break-word;
}
@media (max-width: 767.98px) {
  .cashbox-duplicate-compare,
  .cashbox-duplicate-row {
    grid-template-columns: 1fr;
  }
  .cashbox-duplicate-row {
    gap: 4px;
  }
}
.cashbox-pos-bottom-backdrop {
  opacity: 0;
  pointer-events: none;
  display: block;
  transition: opacity 0.16s ease;
}
.cashbox-pos-bottom-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.cashbox-pos-bottom-menu {
  opacity: 0;
  transform: translateY(18px) scale(0.985);
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    visibility 0.16s ease;
  will-change: transform, opacity;
}
.cashbox-pos-bottom-menu.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
  pointer-events: auto;
}
.cashbox-pos-bottom-menu .cashbox-menu-item.is-danger {
  color: #b42318;
}
.cashbox-pos-bottom-menu .cashbox-menu-item.is-danger:hover {
  background: var(--theme-danger-soft);
}
.cashbox-pos-bottom-menu .cashbox-menu-item.is-disabled,
.cashbox-pos-bottom-menu .cashbox-menu-item:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.cashbox-phone-input {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.cashbox-refund-search-wrap {
  position: relative;
}
.cashbox-refund-search-wrap .form-control {
  padding-left: 42px;
}
.cashbox-refund-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--theme-text-muted-soft);
  pointer-events: none;
}
.cashbox-refund-search-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.cashbox-refund-layout {
  display: grid;
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  min-height: 0;
}
.cashbox-refund-column {
  min-height: 0;
}
.cashbox-refund-sales-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: min(56vh, 560px);
  max-height: min(56vh, 560px);
  overflow: auto;
  padding-right: 4px;
  overscroll-behavior: contain;
}
.cashbox-refund-sale-item {
  width: 100%;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  padding: 12px;
  background: var(--theme-surface);
  color: var(--theme-text-strong);
  text-align: left;
  transition:
    border-color 0.14s ease,
    background 0.14s ease,
    box-shadow 0.14s ease;
}
.cashbox-refund-sale-item.is-active,
.cashbox-refund-sale-item:hover {
  border-color: #c4ccd9;
  background: var(--theme-surface-subtle);
}
.cashbox-refund-sale-item.is-active {
  box-shadow: 0 0 0 2px rgba(31, 41, 55, 0.06);
}
.cashbox-refund-sale-check {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid var(--theme-border-strong);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  color: var(--theme-text-secondary);
  background: var(--theme-surface);
}
.cashbox-refund-sale-item.is-active .cashbox-refund-sale-check {
  background: #1f2937;
  border-color: #1f2937;
  color: #fff;
}
.cashbox-refund-sale-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cashbox-refund-sale-head,
.cashbox-refund-selected-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.cashbox-refund-sale-head b,
.cashbox-refund-sale-item b {
  white-space: nowrap;
  font-weight: 600;
}
.cashbox-refund-sale-products {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--theme-text-secondary);
  font-size: 12px;
  line-height: 1.35;
  max-height: 58px;
  overflow: hidden;
}
.cashbox-refund-sale-item small,
.cashbox-refund-selected small {
  display: block;
  color: var(--theme-text-muted-soft);
  margin-top: 2px;
}
.cashbox-refund-sale-item em {
  display: block;
  color: #b42318;
  font-size: 11px;
  font-style: normal;
}
.cashbox-refund-sale-item.is-refunded {
  opacity: 0.55;
}
.cashbox-refund-selected {
  height: min(56vh, 560px);
  max-height: min(56vh, 560px);
  overflow: auto;
  border: 1px solid var(--theme-border);
  border-radius: 16px;
  background: var(--theme-surface-raised);
  padding: 14px;
  color: var(--theme-text-secondary);
  overscroll-behavior: contain;
}
.cashbox-refund-selected-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 14px;
  align-items: center;
  border-bottom: 1px solid var(--theme-border);
  padding-bottom: 10px;
  margin-bottom: 10px;
  color: var(--theme-text-muted-soft);
}
.cashbox-refund-selected-summary strong {
  color: var(--theme-text-strong);
  text-align: right;
}
.cashbox-refund-selected-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cashbox-refund-selected-card {
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  background: var(--theme-surface);
  padding: 12px;
}
.cashbox-refund-selected-head b {
  color: #b42318;
  white-space: nowrap;
}
.cashbox-refund-remove-btn {
  border: 1px solid var(--theme-border);
  background: var(--theme-surface);
  color: var(--theme-text-muted-soft);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cashbox-refund-remove-btn:hover {
  background: var(--theme-danger-soft);
  color: #b42318;
  border-color: #f0b9b9;
}
@media (max-width: 991px) {
  .cashbox-refund-layout {
    grid-template-columns: 1fr;
  }
  .cashbox-refund-sales-list,
  .cashbox-refund-selected {
    height: auto;
    max-height: 42vh;
  }
}
.cashbox-pos-bottom-menu {
  display: block;
}
.cashbox-shift-mini-list {
  max-height: min(560px, 100vh - 260px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}
.cashbox-shift-list-loader {
  padding: 10px 12px;
  border: 1px dashed var(--theme-border-strong);
  border-radius: 12px;
  color: var(--theme-text-muted-soft);
  font-size: 12px;
  text-align: center;
  background: var(--theme-surface-cool);
}
.cashbox-document-comment {
  margin-top: 8px;
  padding: 9px 11px;
  border: 1px solid var(--theme-border);
  border-radius: 10px;
  background: var(--theme-surface-cool);
  color: var(--theme-text-mid);
  font-size: 12px;
  line-height: 1.35;
  max-width: 620px;
  white-space: normal;
}
@media (max-width: 991px) {
  .cashbox-shift-mini-list {
    display: flex;
    flex-direction: column;
    max-height: 340px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 0;
  }
}
.cashbox-catalog-shell {
  overflow: hidden;
}
.cashbox-catalog-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid var(--theme-border);
  background: var(--theme-surface);
}
.cashbox-catalog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}
.cashbox-catalog-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  min-height: min(72vh, 760px);
}
.cashbox-catalog-sidebar {
  border-right: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
  padding: 1rem;
  overflow: auto;
  max-height: min(72vh, 760px);
}
.cashbox-catalog-main {
  padding: 1rem;
  min-width: 0;
}
.cashbox-catalog-side-title {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--theme-text-muted-cool);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.55rem;
}
.cashbox-blank-summary,
.cashbox-catalog-folder-list {
  display: grid;
  gap: 0.35rem;
}
.cashbox-blank-summary-row,
.cashbox-catalog-folder {
  width: 100%;
  border: 1px solid var(--theme-border);
  background: var(--theme-surface);
  border-radius: 0.75rem;
  padding: 0.55rem 0.65rem;
  display: flex;
  justify-content: space-between;
  gap: 0.7rem;
  align-items: center;
  text-align: left;
  color: var(--theme-text-deep);
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    transform 0.15s ease;
}
.cashbox-blank-summary-row:hover,
.cashbox-catalog-folder:hover {
  border-color: var(--theme-border-strong);
  background: var(--theme-surface-hover);
}
.cashbox-catalog-folder.is-active {
  border-color: #111827;
  background: #111827;
  color: #fff;
}
.cashbox-blank-summary-row small,
.cashbox-catalog-folder small {
  color: inherit;
  opacity: 0.65;
  white-space: nowrap;
}
.cashbox-blank-summary-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}
.cashbox-blank-summary-row span {
  grid-row: span 2;
  min-width: 0;
  font-size: 0.82rem;
}
.cashbox-blank-summary-row strong {
  font-size: 0.86rem;
  white-space: nowrap;
}
.cashbox-blank-summary-row.is-empty {
  background: var(--theme-surface-hover);
  color: var(--theme-text-muted-cool);
}
.cashbox-catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.cashbox-catalog-hint {
  border: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
  border-radius: 0.85rem;
  padding: 0.7rem 0.85rem;
  font-size: 0.84rem;
  color: var(--theme-text-secondary);
  margin-bottom: 0.85rem;
}
.cashbox-catalog-list {
  display: grid;
  gap: 0.45rem;
  max-height: min(62vh, 660px);
  overflow: auto;
  padding-right: 0.15rem;
}
.cashbox-catalog-product-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(90px, 120px) minmax(
      90px,
      120px
    ) minmax(100px, 130px) auto;
  gap: 0.65rem;
  align-items: center;
  border: 1px solid var(--theme-border);
  background: var(--theme-surface);
  border-radius: 0.9rem;
  padding: 0.65rem 0.75rem;
}
.cashbox-catalog-product-row.is-disabled {
  background: var(--theme-surface-hover);
  color: var(--theme-text-muted-cool);
}
.cashbox-catalog-product-title strong {
  font-size: 0.95rem;
  font-weight: 650;
}
.cashbox-catalog-product-blank,
.cashbox-catalog-product-meta {
  font-size: 0.78rem;
  color: var(--theme-text-muted-cool);
  margin-top: 0.15rem;
}
.cashbox-catalog-product-money {
  display: grid;
  gap: 0.1rem;
  text-align: right;
}
.cashbox-catalog-product-money span {
  font-size: 0.72rem;
  color: var(--theme-text-muted-cool);
}
.cashbox-catalog-product-money strong {
  font-size: 0.9rem;
  white-space: nowrap;
}
.cashbox-catalog-product-actions {
  display: flex;
  justify-content: flex-end;
}
.cashbox-catalog-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
  gap: 1rem;
}
.cashbox-catalog-form-side {
  display: grid;
  align-content: start;
  gap: 0.75rem;
}
.cashbox-catalog-form-section,
.cashbox-catalog-side-box {
  border: 1px solid var(--theme-border);
  border-radius: 1rem;
  background: var(--theme-surface);
  padding: 0.9rem;
}
.cashbox-blank-preview-batches div,
.cashbox-blank-preview-total {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  border-bottom: 1px solid var(--theme-border);
  padding: 0.4rem 0;
  font-size: 0.84rem;
}
.cashbox-blank-preview-batches div:last-child,
.cashbox-blank-preview-total:last-child {
  border-bottom: 0;
}
.cashbox-blank-preview-batches strong,
.cashbox-blank-preview-total strong {
  white-space: nowrap;
}
@media (max-width: 991.98px) {
  .cashbox-catalog-head {
    flex-direction: column;
  }
  .cashbox-catalog-form-grid,
  .cashbox-catalog-layout {
    grid-template-columns: 1fr;
  }
  .cashbox-catalog-sidebar {
    border-right: 0;
    border-bottom: 1px solid var(--theme-border);
    max-height: 280px;
  }
  .cashbox-catalog-product-row,
  .cashbox-catalog-toolbar {
    grid-template-columns: 1fr;
  }
  .cashbox-catalog-product-money {
    text-align: left;
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #edf2f7;
    padding-top: 0.4rem;
  }
  .cashbox-catalog-product-actions {
    justify-content: stretch;
  }
  .cashbox-catalog-product-actions .btn {
    width: 100%;
  }
}
.cashbox-catalog-product-row {
  grid-template-columns: minmax(260px, 1fr) minmax(92px, 120px) minmax(
      92px,
      120px
    ) minmax(150px, auto);
}
.cashbox-catalog-product-application span,
.cashbox-catalog-product-blank span {
  color: var(--theme-text-secondary);
  font-weight: 650;
}
.cashbox-catalog-product-blank.is-warning {
  color: #b45309;
}
.cashbox-catalog-product-application {
  font-size: 0.77rem;
  color: var(--theme-text-muted-cool);
  margin-top: 0.12rem;
}
.cashbox-catalog-product-actions {
  gap: 0.35rem;
  flex-wrap: wrap;
}
.cashbox-blank-preview-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--theme-text-deep);
  border: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
  border-radius: 0.75rem;
  padding: 0.55rem 0.65rem;
  margin-bottom: 0.55rem;
}
.cashbox-blanks-shell {
  overflow: hidden;
}
.cashbox-blanks-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
}
.cashbox-blanks-toolbar .form-control {
  max-width: 360px;
}
.cashbox-blanks-content {
  padding: 1rem;
  max-height: min(72vh, 760px);
  overflow: auto;
}
.cashbox-blank-summary-wide {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.cashbox-blank-summary-row span em {
  display: block;
  font-style: normal;
  font-size: 0.74rem;
  color: var(--theme-text-muted-cool);
  margin-top: 0.12rem;
  line-height: 1.25;
}
.cashbox-blank-table {
  display: grid;
  gap: 0.45rem;
}
.cashbox-blank-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(100px, 140px) minmax(
      120px,
      160px
    ) auto;
  gap: 0.75rem;
  align-items: center;
  border: 1px solid var(--theme-border);
  border-radius: 0.9rem;
  background: var(--theme-surface);
  padding: 0.7rem 0.8rem;
}
.cashbox-blank-row > div:not(:first-child) {
  display: grid;
  gap: 0.1rem;
  text-align: right;
}
.cashbox-blank-row span {
  font-size: 0.72rem;
  color: var(--theme-text-muted-cool);
}
.cashbox-blank-row strong {
  font-size: 0.9rem;
}
@media (max-width: 991.98px) {
  .cashbox-blank-row,
  .cashbox-catalog-product-row {
    grid-template-columns: 1fr;
  }
  .cashbox-blanks-toolbar {
    flex-direction: column;
  }
  .cashbox-blanks-toolbar .form-control {
    max-width: none;
  }
  .cashbox-blank-row > div:not(:first-child) {
    text-align: left;
  }
  .cashbox-catalog-product-actions .btn {
    width: auto;
    flex: 1 1 130px;
  }
}
.cashbox-blank-list-caption {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.cashbox-blank-list-caption strong {
  font-size: 0.9rem;
  color: var(--theme-text-deep);
}
.cashbox-blank-list-caption span {
  font-size: 0.76rem;
  color: var(--theme-text-muted-cool);
}
.cashbox-blank-summary-wide {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
}
.cashbox-blank-kind-card {
  border: 1px solid var(--theme-border-strong);
  border-radius: 1rem;
  background: var(--theme-surface);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.cashbox-blank-kind-card.is-empty {
  border-color: #f2d4d4;
}
.cashbox-blank-kind-head {
  width: 100%;
  border: 0;
  background: var(--theme-surface);
  display: grid;
  grid-template-columns: 24px minmax(210px, 1.8fr) repeat(
      4,
      minmax(115px, 0.75fr)
    ) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.9rem 1rem;
  text-align: left;
  color: inherit;
}
.cashbox-blank-kind-head:hover {
  background: var(--theme-surface-cool);
}
.cashbox-blank-chevron {
  font-size: 1.35rem;
  line-height: 1;
  color: var(--theme-text-muted-cool);
  text-align: center;
}
.cashbox-blank-kind-name {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.cashbox-blank-kind-name strong {
  font-size: 0.95rem;
  color: var(--theme-text-deep);
}
.cashbox-blank-kind-name small {
  color: var(--theme-text-muted-cool);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cashbox-blank-kind-stat {
  display: grid;
  gap: 0.1rem;
  text-align: right;
}
.cashbox-blank-kind-stat em {
  font-style: normal;
  color: var(--theme-text-muted-cool);
  font-size: 0.68rem;
}
.cashbox-blank-kind-stat strong {
  color: var(--theme-text-deep);
  font-size: 0.86rem;
}
.cashbox-blank-kind-count {
  border-radius: 999px;
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.25rem 0.48rem;
  white-space: nowrap;
}
.cashbox-blank-kind-body {
  border-top: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
  padding: 0.75rem;
}
.cashbox-blank-kind-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.15rem 0.15rem 0.7rem;
}
.cashbox-blank-batch-list {
  display: grid;
  gap: 0.45rem;
}
.cashbox-blank-batch-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(
      4,
      minmax(100px, 0.7fr)
    ) auto;
  gap: 0.65rem;
  align-items: center;
  border: 1px solid var(--theme-border);
  border-radius: 0.8rem;
  background: var(--theme-surface);
  padding: 0.65rem 0.75rem;
}
.cashbox-blank-batch-row.is-depleted {
  opacity: 0.72;
  background: var(--theme-surface-muted);
}
.cashbox-blank-batch-main {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}
.cashbox-blank-batch-main strong {
  font-size: 0.86rem;
  color: var(--theme-text-deep);
}
.cashbox-blank-batch-main small,
.cashbox-blank-batch-main span {
  font-size: 0.72rem;
  color: var(--theme-text-muted-cool);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cashbox-blank-batch-metric {
  display: grid;
  gap: 0.08rem;
  text-align: right;
}
.cashbox-blank-batch-metric span {
  font-size: 0.66rem;
  color: var(--theme-text-muted-cool);
}
.cashbox-blank-batch-metric strong {
  font-size: 0.82rem;
  color: #1e293b;
}
.cashbox-blank-empty {
  display: grid;
  gap: 0.2rem;
  text-align: center;
  color: var(--theme-text-muted-cool);
  padding: 2rem 1rem;
}
.cashbox-blank-empty strong {
  color: var(--theme-text-mid);
}
.cashbox-product-editor-content .cashbox-catalog-form-main,
.cashbox-product-editor-content .cashbox-catalog-form-side {
  min-width: 0;
}
.cashbox-product-editor-content .cashbox-catalog-form-section,
.cashbox-product-editor-content .cashbox-catalog-side-box {
  background: var(--theme-surface);
  border-color: var(--theme-border-strong);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.025);
}
.cashbox-product-editor-content .form-check.h-100 {
  min-height: 58px;
  display: flex;
  align-items: center;
}
.cashbox-product-editor-content .form-check.h-100 .form-check-label {
  line-height: 1.25;
}
.cashbox-complete-sale-btn {
  min-height: 48px;
  font-weight: 700;
}
.cashbox-checkout-field-wide {
  grid-column: 1/-1;
}
.cashbox-checkout-souvenir {
  border-color: var(--theme-border-strong);
  background: var(--theme-surface-cool);
}
@media (max-width: 1199.98px) {
  .cashbox-blank-kind-head {
    grid-template-columns: 22px minmax(200px, 1fr) repeat(
        2,
        minmax(110px, 0.65fr)
      ) auto;
  }
  .cashbox-blank-kind-stat:nth-of-type(5),
  .cashbox-blank-kind-stat:nth-of-type(6) {
    display: none;
  }
  .cashbox-blank-batch-row {
    grid-template-columns: minmax(220px, 1.4fr) repeat(
        2,
        minmax(110px, 0.7fr)
      ) auto;
  }
  .cashbox-blank-batch-metric:nth-of-type(4),
  .cashbox-blank-batch-metric:nth-of-type(5) {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .cashbox-blank-kind-head {
    grid-template-columns: 20px 1fr auto;
    gap: 0.5rem;
    padding: 0.75rem;
  }
  .cashbox-blank-kind-stat {
    display: none !important;
  }
  .cashbox-blank-kind-name small {
    white-space: normal;
  }
  .cashbox-blank-kind-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .cashbox-blank-batch-row {
    grid-template-columns: 1fr 1fr;
  }
  .cashbox-blank-batch-main {
    grid-column: 1/-1;
  }
  .cashbox-blank-batch-metric {
    text-align: left;
  }
  .cashbox-blank-batch-row .btn {
    grid-column: 1/-1;
    width: 100%;
  }
  .cashbox-blanks-content {
    padding: 0.65rem;
  }
}
.cashbox-product-view-toggle {
  min-width: 112px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  white-space: nowrap;
}
.cashbox-product-view-toggle svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.cashbox-products-grid.is-list-view {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile {
  min-height: 58px;
  display: grid;
  grid-template-columns: minmax(180px, 1.5fr) minmax(220px, 2fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  text-align: left;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile .tile-meta,
.cashbox-products-grid.is-list-view .cashbox-product-tile .tile-name {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile > strong {
  text-align: right;
  white-space: nowrap;
}
.cashbox-products-grid.is-list-view .tile-stock-badge {
  grid-column: 1/-1;
  justify-self: start;
  margin-top: -0.35rem;
}
.cashbox-filter-check,
.cashbox-filter-switch {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-height: 52px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.85rem;
  background: var(--theme-surface);
  padding: 0.7rem 0.8rem;
  cursor: pointer;
}
.cashbox-filter-check input,
.cashbox-filter-switch input {
  margin-top: 0.18rem;
  flex: 0 0 auto;
}
.cashbox-filter-check span {
  display: grid;
  gap: 0.08rem;
}
.cashbox-filter-check strong {
  font-size: 0.84rem;
  color: var(--theme-text-deep);
}
.cashbox-filter-check small {
  font-size: 0.7rem;
  color: var(--theme-text-muted-cool);
  line-height: 1.25;
}
.cashbox-filter-switch {
  min-height: 42px;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 650;
}
.cashbox-trend-chart {
  min-height: 280px;
  width: 100%;
  overflow-x: auto;
}
.cashbox-trend-chart svg {
  width: 100%;
  min-width: 620px;
  height: auto;
  display: block;
}
.cashbox-payment-chart {
  display: grid;
  gap: 0.75rem;
  margin: 0.75rem 0 1rem;
}
.cashbox-stock-shell {
  overflow: hidden;
}
.cashbox-stock-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--theme-border);
  background: var(--theme-surface-cool);
}
.cashbox-stock-toolbar .cashbox-stock-filters {
  display: flex;
  gap: 0.55rem;
  flex: 1 1 auto;
}
.cashbox-stock-toolbar .form-control,
.cashbox-stock-toolbar .form-select {
  max-width: 340px;
}
.cashbox-stock-table-wrap {
  max-height: min(70vh, 740px);
  overflow: auto;
}
.cashbox-stock-table {
  min-width: 980px;
}
.cashbox-stock-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--theme-surface-cool);
  color: var(--theme-text-muted-cool);
  font-size: 0.7rem;
  font-weight: 650;
}
.cashbox-stock-table td {
  font-size: 0.78rem;
  vertical-align: middle;
}
.cashbox-stock-product-name {
  display: grid;
  gap: 0.1rem;
}
.cashbox-stock-product-name strong {
  color: var(--theme-text-deep);
}
.cashbox-stock-product-name small {
  color: var(--theme-text-muted-cool);
}
.cashbox-equal-option {
  height: 100%;
  min-height: 86px;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.85rem;
  background: var(--theme-surface);
  padding: 0.85rem 0.85rem 0.85rem 2.65rem;
  display: flex;
  align-items: flex-start;
}
.cashbox-equal-option .form-check-input {
  margin-top: 0.22rem;
}
.cashbox-equal-option .form-check-label {
  display: grid;
  gap: 0.18rem;
  line-height: 1.25;
}
.cashbox-equal-option .form-check-label strong {
  color: var(--theme-text-deep);
  font-size: 0.82rem;
}
.cashbox-equal-option .form-check-label span {
  color: var(--theme-text-muted-cool);
  font-size: 0.7rem;
}
.cashbox-payment-modal .form-control,
.cashbox-payment-modal .form-select,
.cashbox-product-editor-content .form-control,
.cashbox-product-editor-content .form-select,
.cashbox-product-editor-content .input-group-text {
  min-height: 42px;
  border-color: var(--theme-border-strong);
  border-radius: 0.65rem;
}
.cashbox-payment-modal textarea.form-control,
.cashbox-product-editor-content textarea.form-control {
  min-height: 86px;
}
.cashbox-payment-modal .form-label,
.cashbox-product-editor-content .form-label {
  min-height: 18px;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  color: var(--theme-text-secondary);
}
.cashbox-payment-modal .row > [class*="col-"],
.cashbox-product-editor-content .row > [class*="col-"] {
  display: flex;
  flex-direction: column;
}
.cashbox-payment-modal .row > [class*="col-"] > .form-control,
.cashbox-payment-modal .row > [class*="col-"] > .form-select,
.cashbox-product-editor-content .row > [class*="col-"] > .form-control,
.cashbox-product-editor-content .row > [class*="col-"] > .form-select {
  width: 100%;
}
@media (max-width: 767.98px) {
  .cashbox-sale-search-row .cashbox-product-view-toggle {
    min-width: 0;
    flex: 1 1 auto;
  }
  .cashbox-products-grid.is-list-view .cashbox-product-tile {
    grid-template-columns: 1fr auto;
  }
  .cashbox-products-grid.is-list-view .cashbox-product-tile .tile-meta {
    grid-column: 1/-1;
    white-space: normal;
  }
  .cashbox-stock-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .cashbox-stock-toolbar .cashbox-stock-filters {
    flex-direction: column;
  }
  .cashbox-stock-toolbar .form-control,
  .cashbox-stock-toolbar .form-select {
    max-width: none;
  }
}
#catalogProductModal .cashbox-product-editor-header {
  flex: 0 0 auto;
  padding: 0.85rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
#catalogProductModal .cashbox-product-editor-heading {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}
#catalogProductModal .cashbox-product-editor-heading .small {
  line-height: 1.35;
}
#catalogProductModal .cashbox-product-editor-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
}
#catalogProductModal #catalogProductForm {
  width: min(1600px, 100%);
  margin: 0 auto;
}
#catalogProductModal .cashbox-catalog-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 370px);
  gap: 1.25rem;
  align-items: start;
}
#catalogProductModal.is-help-hidden .cashbox-catalog-form-grid {
  grid-template-columns: minmax(0, 1fr);
}
#catalogProductModal.is-help-hidden .cashbox-catalog-form-side {
  display: none;
}
#catalogProductModal .cashbox-catalog-form-main {
  min-width: 0;
  display: grid;
  gap: 1rem;
}
#catalogProductModal .cashbox-catalog-form-main > .cashbox-catalog-form-section,
#catalogProductModal .cashbox-catalog-form-main > .row {
  margin-top: 0 !important;
}
#catalogProductModal .cashbox-catalog-form-section,
#catalogProductModal .cashbox-catalog-side-box {
  min-width: 0;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.8rem;
  background: var(--theme-surface);
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.025);
}
#catalogProductModal .cashbox-form-section-title {
  margin: 0 0 0.8rem;
  line-height: 1.25;
}
#catalogProductModal .cashbox-catalog-form-section .row,
#catalogProductModal .cashbox-product-primary-grid {
  align-items: stretch;
}
#catalogProductModal .cashbox-catalog-form-section .row > [class*="col-"],
#catalogProductModal .cashbox-product-primary-grid > [class*="col-"] {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
#catalogProductModal .form-label {
  min-height: 1.15rem;
  margin-bottom: 0.38rem;
  color: var(--theme-text-secondary);
  font-size: 0.75rem;
  line-height: 1.2;
}
#catalogProductModal .form-control,
#catalogProductModal .form-select,
#catalogProductModal .input-group-text {
  width: 100%;
  min-height: 42px;
  border-color: var(--theme-border-strong);
  border-radius: 0.65rem;
}
#catalogProductModal textarea.form-control {
  min-height: 92px;
  resize: vertical;
}
#catalogProductModal .cashbox-field-note,
#catalogProductModal .form-text {
  margin-top: 0.42rem;
  padding: 0 0.05rem;
  color: var(--theme-text-muted-cool);
  font-size: 0.71rem;
  line-height: 1.4;
}
#catalogProductModal .cashbox-product-option {
  position: relative;
  flex: 1 1 auto;
  min-height: 88px;
  margin: 0;
  padding: 0.82rem 0.9rem;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  column-gap: 0.7rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.8rem;
  background: var(--theme-surface);
}
#catalogProductModal .cashbox-product-option-compact {
  min-height: 74px;
}
#catalogProductModal .cashbox-product-option .form-check-input {
  position: static;
  float: none;
  width: 1rem;
  height: 1rem;
  margin: 0.12rem 0 0;
}
#catalogProductModal .cashbox-product-option .form-check-label {
  min-width: 0;
  display: grid;
  gap: 0.22rem;
  line-height: 1.3;
  cursor: pointer;
}
#catalogProductModal .cashbox-product-option .form-check-label strong {
  color: var(--theme-text-deep);
  font-size: 0.82rem;
  font-weight: 650;
}
#catalogProductModal .cashbox-product-option .form-check-label span {
  color: var(--theme-text-muted-cool);
  font-size: 0.71rem;
}
#catalogProductModal .cashbox-inline-note {
  min-height: 42px;
  height: 100%;
  padding: 0.72rem 0.82rem;
  display: flex;
  align-items: center;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.65rem;
  background: var(--theme-surface-cool);
  color: var(--theme-text-muted-cool);
  font-size: 0.74rem;
  line-height: 1.4;
}
#catalogProductModal .cashbox-inline-actions {
  margin-top: 0.55rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
#catalogProductModal .cashbox-inline-actions .btn-link {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
  text-decoration: none;
}
#catalogProductModal .cashbox-product-description-section {
  display: grid;
}
#catalogProductModal .cashbox-catalog-form-side {
  min-width: 0;
  position: sticky;
  top: 0;
  display: grid;
  align-content: start;
  gap: 0.85rem;
}
#catalogProductModal .cashbox-context-help-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}
#catalogProductModal .cashbox-context-help-head .cashbox-form-section-title {
  margin-bottom: 0;
}
#catalogProductModal .cashbox-context-help-badge {
  flex: 0 0 auto;
  padding: 0.22rem 0.48rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 999px;
  background: var(--theme-surface-cool);
  color: var(--theme-text-secondary);
  font-size: 0.66rem;
  font-weight: 650;
}
#catalogProductModal .cashbox-context-help-box #catalogProductHelp {
  line-height: 1.45;
}
#catalogProductModal .cashbox-context-help-list {
  margin: 0.75rem 0 0;
  padding: 0.7rem 0 0 1.05rem;
  border-top: 1px solid #edf2f7;
  color: var(--theme-text-muted-cool);
  font-size: 0.72rem;
  line-height: 1.42;
}
#catalogProductModal .cashbox-context-help-list:empty {
  display: none;
}
#catalogProductModal .cashbox-context-help-list li + li,
#catalogProductModal .cashbox-product-flow-help li + li {
  margin-top: 0.32rem;
}
#catalogProductModal .cashbox-product-flow-help ol {
  padding-left: 1.15rem;
}
#catalogProductModal .cashbox-blank-preview-batches {
  max-height: 260px;
  overflow: auto;
  padding-right: 0.2rem;
}
#catalogProductModal .cashbox-blank-preview-name {
  margin-bottom: 0.45rem;
  color: var(--theme-text-deep);
  font-weight: 650;
}
.cashbox-checkout-grid-blank-source {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cashbox-checkout-batch-toggle {
  min-height: 64px;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.75rem;
  padding: 0.75rem 0.8rem;
  background: var(--theme-surface);
  cursor: pointer;
}
.cashbox-checkout-batch-toggle .form-check-input {
  flex: 0 0 auto;
  margin: 0.15rem 0 0;
}
.cashbox-checkout-batch-toggle > span {
  display: grid;
  gap: 0.16rem;
}
.cashbox-checkout-batch-toggle strong {
  color: var(--theme-text-deep);
  font-size: 0.82rem;
}
.cashbox-checkout-batch-toggle small {
  color: var(--theme-text-muted-cool);
  line-height: 1.35;
}
.cashbox-checkout-blank-source {
  border-color: var(--theme-border-strong);
  background: var(--theme-surface-cool);
}
.cashbox-connection-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.cashbox-pos-connection {
  border: 0;
  padding: 0;
  cursor: pointer;
}
.cashbox-pos-connection.is-slow {
  background: var(--theme-warning-soft);
  color: #b56a00;
}
.cashbox-connection-info {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  z-index: 1085;
  width: 250px;
  display: grid;
  gap: 0.5rem;
  padding: 0.8rem;
  border: 1px solid var(--theme-border-strong);
  border-radius: 0.8rem;
  background: var(--theme-surface);
  box-shadow: 0 14px 38px rgba(15, 23, 42, 0.18);
  color: var(--theme-text-mid);
  text-align: left;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(5px);
  transition:
    opacity 0.14s ease,
    transform 0.14s ease,
    visibility 0.14s ease;
}
.cashbox-connection-info:after {
  content: "";
  position: absolute;
  right: 10px;
  top: 100%;
  border: 7px solid transparent;
  border-top-color: #fff;
}
.cashbox-connection-wrap:focus-within .cashbox-connection-info,
.cashbox-connection-wrap:hover .cashbox-connection-info {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cashbox-connection-info > strong {
  color: var(--theme-text-deep);
  font-size: 0.8rem;
}
.cashbox-connection-info > span {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 0.55rem;
}
.cashbox-connection-info b {
  color: var(--theme-text-deep);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
}
.cashbox-connection-info small,
.cashbox-connection-info time {
  color: var(--theme-text-muted-cool);
  font-size: 0.68rem;
  line-height: 1.3;
}
.cashbox-product-view-toggle {
  min-width: 94px;
  min-height: 36px;
  padding: 0.35rem 0.65rem;
  gap: 0.32rem;
  font-size: 0.82rem;
}
.cashbox-product-view-toggle svg {
  width: 14px;
  height: 14px;
}
.cashbox-product-tile {
  justify-content: center;
}
.cashbox-product-tile .tile-name {
  display: flex;
  align-items: center;
  min-height: 2.35em;
}
.cashbox-product-tile .tile-meta {
  line-height: 1.35;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile {
  grid-template-columns: minmax(180px, 1.4fr) minmax(260px, 2fr) minmax(
      110px,
      auto
    );
  min-height: 56px;
  padding: 0.55rem 0.75rem;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile .tile-name {
  min-height: 0;
  align-self: center;
}
.cashbox-products-grid.is-list-view .cashbox-product-tile .tile-meta,
.cashbox-products-grid.is-list-view .cashbox-product-tile > strong {
  align-self: center;
}
@media (max-width: 991.98px) {
  #catalogProductModal .cashbox-catalog-form-grid {
    grid-template-columns: 1fr;
  }
  #catalogProductModal .cashbox-catalog-form-side {
    position: static;
  }
  .cashbox-checkout-grid-blank-source {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767.98px) {
  #catalogProductModal .cashbox-product-editor-header {
    align-items: flex-start;
    gap: 0.65rem;
  }
  #catalogProductModal .cashbox-product-editor-heading .small {
    display: none;
  }
  #catalogProductModal .cashbox-product-editor-header-actions {
    gap: 0.5rem;
  }
  #catalogProductModal #catalogProductHelpToggle {
    padding: 0.3rem 0.5rem;
    font-size: 0.69rem;
    white-space: nowrap;
  }
  #catalogProductModal .cashbox-catalog-form-section,
  #catalogProductModal .cashbox-catalog-side-box {
    padding: 0.85rem;
  }
  .cashbox-products-grid.is-list-view .cashbox-product-tile {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}
body > .cashbox-connection-info {
  position: fixed;
  right: auto;
  top: auto;
  z-index: 5000;
  max-width: calc(100vw - 16px);
  transform: translateY(5px);
}
body > .cashbox-connection-info.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
body > .cashbox-connection-info:after {
  display: none;
}
.cashbox-stock-product-help {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem 1rem;
  margin-top: 0.45rem;
  color: var(--theme-text-muted-cool);
  font-size: 0.78rem;
}
.cashbox-stock-product-help .btn-link {
  text-decoration: none;
  font-weight: 600;
}
[data-catalog-existing-stock-wrap] {
  padding-bottom: 0.15rem;
}
#catalogExistingStockProduct {
  min-height: 42px;
}
.cashbox-stock-shell .cashbox-catalog-head > .d-flex {
  justify-content: flex-end;
}
@media (max-width: 575.98px) {
  .cashbox-stock-shell .cashbox-catalog-head > .d-flex,
  .cashbox-stock-shell .cashbox-catalog-head > .d-flex .btn {
    width: 100%;
  }
}
.cashbox-blank-batch-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  white-space: nowrap;
}
@media (max-width: 767.98px) {
  .cashbox-blank-batch-actions {
    grid-column: 1/-1;
    width: 100%;
  }
  .cashbox-blank-batch-actions .btn {
    flex: 1 1 0;
    width: auto;
  }
}
html[data-theme] body.login-page {
  background: var(--theme-page-panel);
}
body.login-page .login-card {
  border: 1px solid var(--theme-border);
  border-radius: 1rem;
  box-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
body.login-page .login-header {
  border-bottom: 1px solid var(--theme-border);
}
body.login-page .login-body,
body.login-page .login-header {
  background: var(--theme-surface);
  padding: 1.25rem;
}
body.login-page .form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--theme-text-secondary);
}
.app-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-height: 34px;
  padding: 0.36rem 0.65rem;
  color: var(--theme-text-secondary);
  background: var(--theme-surface-soft);
  border: 1px solid var(--theme-border);
  border-radius: 0.65rem;
  white-space: nowrap;
}
.app-theme-toggle:focus-visible,
.app-theme-toggle:hover {
  color: var(--theme-text);
  background: var(--theme-surface-hover);
  border-color: var(--theme-border-strong);
}
.app-theme-toggle:focus-visible {
  box-shadow: 0 0 0 0.2rem
    color-mix(in srgb, var(--theme-accent) 22%, transparent);
}
.app-theme-toggle:disabled {
  opacity: 0.7;
  cursor: wait;
}
.app-theme-toggle.is-save-error {
  border-color: #f57878;
  color: #f57878;
}
.app-theme-toggle-icon {
  display: inline-flex;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
}
.app-theme-toggle-icon svg {
  width: 100%;
  height: 100%;
}
.app-theme-toggle-icon-sun,
html[data-theme="dark"] .app-theme-toggle-icon-moon {
  display: none;
}
html[data-theme="dark"] .app-theme-toggle-icon-sun {
  display: inline-flex;
}
.app-theme-toggle-label {
  font-size: 0.8rem;
  font-weight: 600;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --theme-page-bg: #181b1f;
  --theme-page-panel: #222528;
  --theme-surface: #282e33;
  --theme-surface-soft: #313b43;
  --theme-surface-cool: #2d343a;
  --theme-surface-subtle: #2b3238;
  --theme-surface-muted: #30373d;
  --theme-surface-raised: #262c31;
  --theme-surface-hover: #313b43;
  --theme-border: #42484d;
  --theme-border-strong: #4c535b;
  --theme-border-soft: #343b41;
  --theme-text: #f5f5f5;
  --theme-text-strong: #f5f5f5;
  --theme-text-deep: #e9ecf0;
  --theme-text-secondary: #e9ecf0;
  --theme-text-mid: #cbd1d6;
  --theme-text-muted: #82868a;
  --theme-text-muted-cool: #8d939e;
  --theme-text-muted-soft: #8d939e;
  --theme-accent: #2da192;
  --theme-accent-hover: #32a896;
  --theme-accent-ripple: #42b8a6;
  --theme-accent-text: #fff;
  --theme-danger-soft: #4a2d30;
  --theme-warning-soft: #463a28;
  --theme-success-soft: #203b36;
  --theme-info-soft: #263740;
  --theme-positive: #55e6a5;
  --theme-writeoff: #63e6a7;
  --theme-negative: #ff6b78;
  --theme-lock-overlay: rgba(40, 46, 51, 0.92);
  --theme-shadow: 0 0.55rem 1.4rem rgba(0, 0, 0, 0.28);
  --bs-body-bg: var(--theme-page-bg);
  --bs-body-color: var(--theme-text);
  --bs-emphasis-color: var(--theme-text);
  --bs-secondary-color: var(--theme-text-muted-cool);
  --bs-tertiary-color: var(--theme-text-muted);
  --bs-secondary-bg: var(--theme-surface-soft);
  --bs-tertiary-bg: var(--theme-surface-cool);
  --bs-border-color: var(--theme-border);
  --bs-border-color-translucent: hsla(0, 0%, 100%, 0.1);
  --bs-link-color: #79e8d9;
  --bs-link-hover-color: #8ee4d9;
  --bs-focus-ring-color: rgba(63, 193, 176, 0.28);
}
html[data-theme="dark"] body {
  background: var(--theme-page-bg);
  color: var(--theme-text);
}
html[data-theme="dark"] .app-navbar {
  background: rgba(32, 38, 43, 0.98);
  border-bottom-color: var(--theme-border);
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.26);
}
html[data-theme="dark"] .app-navbar .nav-link,
html[data-theme="dark"] .app-navbar .navbar-brand,
html[data-theme="dark"] .app-user-box .text-body,
html[data-theme="dark"] .text-body {
  color: var(--theme-text) !important;
}
html[data-theme="dark"] .app-navbar .dropdown-item:focus,
html[data-theme="dark"] .app-navbar .dropdown-item:hover,
html[data-theme="dark"] .app-navbar .nav-link.show,
html[data-theme="dark"] .app-navbar .nav-link:focus,
html[data-theme="dark"] .app-navbar .nav-link:hover {
  color: var(--theme-text);
  background: var(--theme-surface-soft);
}
html[data-theme="dark"] .app-navbar .dropdown-menu,
html[data-theme="dark"] .dropdown-menu {
  background: var(--theme-surface);
  border-color: var(--theme-border);
  box-shadow: var(--theme-shadow);
}
html[data-theme="dark"] .dropdown-item {
  color: var(--theme-text-secondary);
}
html[data-theme="dark"] .dropdown-divider {
  border-color: var(--theme-border);
}
html[data-theme="dark"] .navbar-toggler {
  border-color: var(--theme-border-strong);
}
html[data-theme="dark"] .mvd-page,
html[data-theme="dark"] .office-page,
html[data-theme="dark"] .order-form-page,
html[data-theme="dark"] .orders-page {
  --office-border: var(--theme-border);
  --office-muted: var(--theme-text-muted-cool);
  --office-shadow: var(--theme-shadow);
  --of-border: var(--theme-border);
  --of-muted: var(--theme-text-muted-cool);
  --of-soft: var(--theme-surface-soft);
  --of-shadow: var(--theme-shadow);
  --orders-border: var(--theme-border);
  --orders-muted: var(--theme-text-muted-cool);
  --orders-card-shadow: var(--theme-shadow);
  --mvd-border: var(--theme-border);
  --mvd-muted: var(--theme-text-muted-cool);
  --mvd-card-shadow: var(--theme-shadow);
}
html[data-theme="dark"] .cashbox-page,
html[data-theme="dark"] .cashbox-pos-page {
  --pos-border: var(--theme-border-strong);
  --pos-muted: var(--theme-text-muted-cool);
  --pos-dark: var(--theme-text-strong);
}
html[data-theme="dark"] .accordion-item,
html[data-theme="dark"] .app-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .offcanvas,
html[data-theme="dark"] .toast {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border-color: var(--theme-border);
}
html[data-theme="dark"] .accordion-button,
html[data-theme="dark"] .card-footer,
html[data-theme="dark"] .card-header {
  background-color: var(--theme-surface-soft);
  color: var(--theme-text);
  border-color: var(--theme-border);
}
html[data-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(180%);
}
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text,
html[data-theme="dark"] input[type="date"],
html[data-theme="dark"] input[type="time"],
html[data-theme="dark"] textarea {
  background-color: #22282d;
  color: var(--theme-text);
  border-color: var(--theme-border-strong);
}
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
  background-color: #22282d;
  color: var(--theme-text);
  border-color: #3ee2c9;
  box-shadow: 0 0 0 0.2rem rgba(63, 193, 176, 0.18);
}
html[data-theme="dark"] .form-control::placeholder,
html[data-theme="dark"] textarea::placeholder {
  color: #818991;
  opacity: 1;
}
html[data-theme="dark"] .form-check-input {
  background-color: #22282d;
  border-color: #6c6c6c;
}
html[data-theme="dark"] .form-check-input:checked {
  background-color: var(--theme-accent);
  border-color: var(--theme-accent);
}
html[data-theme="dark"] .form-switch .form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(63, 193, 176, 0.18);
}
html[data-theme="dark"] .btn-dark {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--theme-accent);
  --bs-btn-border-color: var(--theme-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--theme-accent-hover);
  --bs-btn-hover-border-color: var(--theme-accent-hover);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--theme-accent-ripple);
  --bs-btn-active-border-color: var(--theme-accent-ripple);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #40655f;
  --bs-btn-disabled-border-color: #40655f;
}
html[data-theme="dark"] .btn-outline-dark {
  --bs-btn-color: #79e8d9;
  --bs-btn-border-color: #29baa7;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--theme-accent);
  --bs-btn-hover-border-color: var(--theme-accent);
}
html[data-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: var(--theme-text-secondary);
  --bs-btn-border-color: var(--theme-border-strong);
  --bs-btn-hover-color: var(--theme-text);
  --bs-btn-hover-bg: var(--theme-surface-soft);
  --bs-btn-hover-border-color: #5b646d;
}
html[data-theme="dark"] .btn-light {
  --bs-btn-color: var(--theme-text);
  --bs-btn-bg: var(--theme-surface-soft);
  --bs-btn-border-color: var(--theme-border);
  --bs-btn-hover-color: var(--theme-text);
  --bs-btn-hover-bg: #3c474f;
  --bs-btn-hover-border-color: #4c535b;
}
html[data-theme="dark"] .table {
  --bs-table-color: var(--theme-text-secondary);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--theme-border-soft);
  --bs-table-striped-bg: hsla(0, 0%, 100%, 0.025);
  --bs-table-hover-bg: rgba(63, 193, 176, 0.08);
  --bs-table-hover-color: var(--theme-text);
}
html[data-theme="dark"] .cashbox-stock-table thead th,
html[data-theme="dark"] .table thead th {
  background: var(--theme-surface-soft);
  color: var(--theme-text-muted-cool);
  border-color: var(--theme-border);
}
html[data-theme="dark"] .table tbody td,
html[data-theme="dark"] .table tbody th {
  border-color: var(--theme-border-soft);
}
html[data-theme="dark"] .bg-light {
  background-color: var(--theme-surface-soft) !important;
}
html[data-theme="dark"] .bg-white {
  background-color: var(--theme-surface) !important;
}
html[data-theme="dark"] .text-muted {
  color: var(--theme-text-muted-cool) !important;
}
html[data-theme="dark"] .border,
html[data-theme="dark"] .border-bottom,
html[data-theme="dark"] .border-end,
html[data-theme="dark"] .border-start,
html[data-theme="dark"] .border-top {
  border-color: var(--theme-border) !important;
}
html[data-theme="dark"] hr {
  border-color: var(--theme-border);
  opacity: 1;
}
html[data-theme="dark"] code {
  color: #8ee4d9;
}
html[data-theme="dark"] .orders-page .status-new,
html[data-theme="dark"] .status-new {
  background: #263740;
  color: #8ee4d9;
  border-color: #3d5961;
}
html[data-theme="dark"] .orders-page .status-production,
html[data-theme="dark"] .status-production {
  background: #463a28;
  color: #f2c47d;
  border-color: #66583c;
}
html[data-theme="dark"] .orders-page .status-ready,
html[data-theme="dark"] .status-ready {
  background: #203b36;
  color: #70dfcf;
  border-color: #31564f;
}
html[data-theme="dark"] .orders-page .status-issued,
html[data-theme="dark"] .status-issued {
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  border-color: var(--theme-border-strong);
}
html[data-theme="dark"] .cashbox-checkout-modal-body,
html[data-theme="dark"] .cashbox-payment-side,
html[data-theme="dark"] .cashbox-pos-bottom-bar,
html[data-theme="dark"] .cashbox-pos-menu-panel,
html[data-theme="dark"] .cashbox-spa-sidebar {
  background-color: var(--theme-page-panel);
  border-color: var(--theme-border);
}
html[data-theme="dark"] .cashbox-blank-kind-head:hover,
html[data-theme="dark"] .cashbox-category-row.is-active,
html[data-theme="dark"] .cashbox-category-row:hover,
html[data-theme="dark"] .cashbox-menu-item.is-active,
html[data-theme="dark"] .cashbox-menu-item:hover,
html[data-theme="dark"] .cashbox-product-tile.is-selected,
html[data-theme="dark"] .cashbox-product-tile:hover {
  background-color: var(--theme-surface-soft);
}
html[data-theme="dark"] .cashbox-filter-switch.is-active,
html[data-theme="dark"] .cashbox-payment-method-btn.is-active,
html[data-theme="dark"] .cashbox-product-view-toggle.is-active {
  background-color: var(--theme-accent);
  color: #fff;
  border-color: var(--theme-accent);
}
html[data-theme="dark"] .cashbox-connection-info {
  background: var(--theme-surface);
  color: var(--theme-text-secondary);
  border-color: var(--theme-border-strong);
  box-shadow: var(--theme-shadow);
}
@media (max-width: 991.98px) {
  .app-theme-toggle {
    width: 100%;
    justify-content: flex-start;
  }
}
.cashbox-pos-bottom-bar {
  grid-template-columns: repeat(5, minmax(72px, auto)) minmax(130px, 1fr);
}
.cashbox-bottom-theme-toggle .app-theme-toggle-icon {
  width: 19px;
  height: 19px;
}
.cashbox-bottom-theme-toggle .app-theme-toggle-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
}
.cashbox-receipt-remove-btn {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dc3545;
  border-radius: 10px;
  background: transparent;
  color: #dc3545;
  line-height: 1;
  transition:
    background-color 0.14s ease,
    border-color 0.14s ease,
    color 0.14s ease,
    box-shadow 0.14s ease;
}
.cashbox-receipt-remove-btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}
.cashbox-receipt-remove-btn:hover {
  background: var(--theme-danger-soft);
  border-color: #ef5a67;
  color: #ef3348;
}
.cashbox-receipt-remove-btn:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.2);
}
.cashbox-operation-amount.is-positive {
  color: var(--theme-positive);
}
.cashbox-operation-amount.is-writeoff {
  color: var(--theme-writeoff);
}
.cashbox-operation-amount.is-negative {
  color: var(--theme-negative);
}
html[data-theme="dark"] #catalogProductModal .cashbox-form-section-title,
html[data-theme="dark"] .alert-light,
html[data-theme="dark"] .cashbox-block-lock,
html[data-theme="dark"] .cashbox-context-help-badge,
html[data-theme="dark"] .cashbox-form-section-title,
html[data-theme="dark"] .list-group-item-light,
html[data-theme="dark"] .table-light {
  background: var(--theme-surface-soft) !important;
  color: var(--theme-text-strong) !important;
  border-color: var(--theme-border-strong) !important;
}
html[data-theme="dark"] .cashbox-blank-batch-row.is-depleted,
html[data-theme="dark"] .cashbox-blank-summary-row.is-empty,
html[data-theme="dark"] .cashbox-blank-summary-row:hover,
html[data-theme="dark"] .cashbox-catalog-folder:hover,
html[data-theme="dark"] .cashbox-catalog-product-row.is-disabled,
html[data-theme="dark"] .cashbox-checkout-blank-source,
html[data-theme="dark"] .cashbox-checkout-souvenir {
  background: var(--theme-surface-hover) !important;
  color: var(--theme-text-secondary);
  border-color: var(--theme-border-strong) !important;
}
html[data-theme="dark"] .cashbox-catalog-folder.is-active,
html[data-theme="dark"] .cashbox-catalog-folder.is-active:hover {
  background: #111827 !important;
  color: #fff !important;
  border-color: #24344b !important;
}
html[data-theme="dark"] .cashbox-document-item,
html[data-theme="dark"]
  .cashbox-product-editor-content
  .cashbox-catalog-form-section,
html[data-theme="dark"]
  .cashbox-product-editor-content
  .cashbox-catalog-side-box,
html[data-theme="dark"] .cashbox-receipt-card {
  box-shadow: 0 0.55rem 1.4rem rgba(0, 0, 0, 0.24) !important;
}
html[data-theme="dark"] .cashbox-menu-item:hover,
html[data-theme="dark"] .cashbox-product-tile:hover,
html[data-theme="dark"] .cashbox-refund-sale-item.is-active,
html[data-theme="dark"] .cashbox-shift-mini-item:hover {
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
}
html[data-theme="dark"] .btn:focus-visible,
html[data-theme="dark"] .cashbox-bottom-action:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(66, 184, 166, 0.24);
}
html[data-theme="dark"] .text-success {
  color: var(--theme-positive) !important;
}
html[data-theme="dark"] .text-danger {
  color: var(--theme-negative) !important;
}
html[data-theme="dark"] .badge.bg-light.text-dark,
html[data-theme="dark"] .text-dark {
  color: var(--theme-text-strong) !important;
}
html[data-theme="dark"] .cashbox-document-price,
html[data-theme="dark"] .cashbox-operation-amount.is-positive {
  color: var(--theme-positive);
}
html[data-theme="dark"] .cashbox-document-price.is-writeoff,
html[data-theme="dark"] .cashbox-operation-amount.is-writeoff {
  color: var(--theme-writeoff);
}
html[data-theme="dark"] .cashbox-document-price.is-negative,
html[data-theme="dark"] .cashbox-operation-amount.is-negative {
  color: var(--theme-negative);
}
@media (max-width: 767.98px) {
  .cashbox-pos-bottom-bar {
    grid-template-columns: repeat(5, minmax(56px, 1fr));
  }
  .cashbox-bottom-theme-toggle [data-theme-label] {
    max-width: 58px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
.cashbox-delete-sale-btn {
  margin-top: 0.55rem;
  white-space: nowrap;
  border-radius: 0.65rem;
}
.cashbox-delete-sale-warning {
  padding: 1rem 1.1rem;
  border: 1px solid var(--theme-border);
  border-radius: 0.85rem;
  background: var(--theme-surface-soft);
  color: var(--theme-text-secondary);
  line-height: 1.55;
}
.cashbox-delete-sale-warning strong {
  color: var(--theme-text-strong);
}
html[data-theme="dark"] .cashbox-delete-sale-warning {
  border-color: var(--theme-border-strong);
  background: var(--theme-surface-soft);
}
@media (max-width: 575.98px) {
  .cashbox-delete-sale-btn {
    width: 100%;
  }
}
.cashbox-payment-method-note {
  color: currentColor;
  font-size: 10px;
  font-weight: 650;
  line-height: 1;
  opacity: 0.68;
}
.cashbox-qr-commission-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 3px 12px;
  margin-top: 8px;
  padding: 9px 12px;
  border: 1px solid var(--theme-border);
  border-radius: 10px;
  background: var(--theme-surface-muted);
}
.cashbox-qr-commission-summary > small,
.cashbox-qr-commission-summary > span {
  color: var(--theme-text-muted-soft);
  font-size: 11px;
}
.cashbox-qr-commission-summary > strong {
  color: var(--theme-negative);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.cashbox-qr-commission-summary > small {
  grid-column: 1/-1;
}
.cashbox-document-payment-fee {
  color: var(--theme-negative);
  font-size: 10px;
  font-weight: 700;
}
.cashbox-shift-summary-values small {
  display: block;
  margin-top: 3px;
  color: var(--theme-text-muted-soft);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.25;
}
/* Shared components. Theme colours remain defined at the start of project.css. */
[hidden] {
  display: none !important;
}
:focus-visible {
  outline: 3px solid var(--theme-accent);
  outline-offset: 3px;
}
.cashbox-app {
  padding-top: 0;
}
.cashbox-app .app-content {
  width: 100%;
  max-width: 1600px;
  padding: 24px;
  margin: auto;
}
.cashbox-app .app-main {
  padding-bottom: 104px;
}
.cashbox-pos-app-head {
  border: 0;
  background: transparent;
  box-shadow: none;
}
.cashbox-pos-view {
  min-width: 0;
}
.cashbox-pos-bottom-bar {
  grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(150px, auto);
}
.cashbox-pos-register-switch {
  margin: 0;
}
.cashbox-pos-menu-panel .btn-link {
  color: var(--theme-text-muted);
}
.form-control,
.form-select {
  min-width: 0;
}

/* A single modal layout: fixed header/footer, one scrolling body. */
.modal {
  --bs-modal-bg: var(--theme-surface);
  --bs-modal-color: var(--theme-text);
  --bs-modal-border-color: var(--theme-border);
  z-index: 2000;
}
.modal-backdrop {
  z-index: 1990;
}
.modal .modal-dialog {
  width: auto;
  margin: 24px auto;
  padding: 0 12px;
}
.modal .modal-dialog-scrollable {
  height: calc(100dvh - 48px);
}
.modal .modal-dialog-centered {
  min-height: calc(100dvh - 48px);
}
.modal .modal-content {
  color: var(--theme-text);
  background: var(--theme-surface);
  border: 1px solid var(--theme-border);
  border-radius: 16px;
  max-height: 100%;
  overflow: hidden;
}
.modal .modal-header,
.modal .modal-footer {
  flex: 0 0 auto;
  background: var(--theme-surface) !important;
  border-color: var(--theme-border) !important;
  padding: 18px 24px;
  gap: 12px;
}
.modal .modal-header {
  align-items: flex-start;
}
.modal .modal-title {
  font-size: 1.15rem;
  line-height: 1.4;
  color: var(--theme-text-strong);
}
.modal .modal-header > div {
  min-width: 0;
}
.modal .modal-body {
  min-height: 0;
  padding: 24px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}
.modal .modal-footer {
  justify-content: flex-end;
  flex-wrap: wrap;
}
.modal .modal-footer > * {
  margin: 0;
}
.modal .btn-close {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  padding: 0;
  margin: -8px -8px -8px auto;
  box-sizing: border-box;
  background-size: 12px;
  opacity: 0.7;
}
.modal .form-label {
  display: block;
  color: var(--theme-text-secondary);
  font-size: 0.85rem;
  line-height: 1.4;
  margin: 0 0 6px;
  min-height: 0;
}
.modal .form-control,
.modal .form-select {
  min-height: 42px;
  font-size: 0.95rem;
  border-radius: 9px;
  color: var(--theme-text);
  background-color: var(--theme-surface);
  border-color: var(--theme-border-strong);
}
.modal textarea.form-control {
  min-height: 88px;
}
.modal .form-check-input {
  flex-shrink: 0;
}
.modal .form-check-label {
  line-height: 1.5;
}
.modal .form-text {
  color: var(--theme-text-muted);
}
.modal .row > * {
  min-width: 0;
}
.modal .modal-fullscreen {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  margin: 0;
  padding: 0;
  min-height: 0;
}
.modal .modal-fullscreen .modal-content {
  height: 100%;
  border: 0;
  border-radius: 0;
}
.modal .cashbox-entity-dialog {
  max-width: min(1200px, 100vw);
}
.modal .cashbox-product-editor-dialog {
  max-width: min(1240px, 100vw);
}
#paymentModal .cashbox-payment-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 24px;
  max-width: 1500px;
  margin: 0 auto;
}
#paymentModal .cashbox-payment-layout > * {
  width: auto;
  margin: 0;
  padding: 0;
}
#paymentModal .cashbox-payment-side {
  position: static;
  max-height: none;
  overflow: visible;
}
#paymentModal .cashbox-checkout-modal-body {
  min-height: 0;
  height: auto;
}
#paymentModal .cashbox-checkout-items {
  max-height: none;
  overflow: visible;
}
.close-shift-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  gap: 16px;
  margin: 16px 0;
}
.close-shift-row label {
  margin: 0;
}
.close-shift-row output {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.close-shift-head {
  font-size: 0.8rem;
  color: var(--theme-text-muted);
  border-bottom: 1px solid var(--theme-border);
  padding-bottom: 12px;
}

/* Management report: readable accounting rows and deliberate typography. */
.report-page {
  color: var(--theme-text);
}
.report-heading,
.report-section-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  margin: 4px 0 24px;
}
.report-heading h2 {
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 650;
  letter-spacing: -0.025em;
  margin-bottom: 8px;
}
.report-eyebrow {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--theme-accent);
  margin-bottom: 6px;
}
.report-filters {
  padding: 20px;
  background: var(--theme-surface);
  border: 1px solid var(--theme-border);
  border-radius: 14px;
}
.report-filter-row {
  display: flex;
  gap: 16px;
  align-items: flex-end;
}
.report-filters label,
.report-section-head label {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--theme-text-secondary);
}
.report-filters label > input,
.report-filters label > select,
.report-section-head label > input {
  margin-top: 6px;
}
.report-filter-row label {
  flex: 1;
  min-width: 0;
}
.report-filter-row .report-register {
  flex: 2;
}
.report-filter-row .btn {
  min-height: 40px;
  padding-inline: 24px;
}
.report-filter-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-top: 16px;
}
.report-presets {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-right: auto;
}
.report-presets button {
  border: 1px solid var(--theme-border);
  background: var(--theme-surface);
  color: var(--theme-text-secondary);
  border-radius: 7px;
  padding: 6px 12px;
  font-size: 0.8rem;
}
.report-presets button:hover {
  background: var(--theme-surface-hover);
  border-color: var(--theme-accent);
}
.report-advanced {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding-top: 20px;
  margin-top: 16px;
  border-top: 1px solid var(--theme-border);
}
.report-filter-help {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.8rem;
  color: var(--theme-text-muted);
  max-width: 1000px;
}
.report-checks {
  display: grid;
  gap: 8px;
  align-content: center;
}
.report-checks label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.report-context {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 24px;
  margin: 22px 0 4px;
  font-size: 0.95rem;
}
.report-context span,
.report-status {
  color: var(--theme-text-muted);
}
.report-status {
  font-size: 0.8rem;
  min-height: 20px;
  margin-bottom: 16px;
}
.report-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.report-highlights article {
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  background: var(--theme-surface);
  padding: 22px;
  min-width: 0;
}
.report-highlights article.report-primary {
  border-color: var(--theme-accent);
  border-top: 3px solid var(--theme-accent);
  padding-top: 20px;
}
.report-highlights h3 {
  font-size: 0.9rem;
  font-weight: 500;
  margin-bottom: 14px;
  color: var(--theme-text-secondary);
}
.report-highlights strong {
  display: block;
  font-size: clamp(1.3rem, 2.3vw, 2rem);
  font-weight: 650;
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.report-highlights p {
  font-size: 0.78rem;
  color: var(--theme-text-muted);
  margin: 10px 0 0;
}
.report-tabs {
  display: flex;
  overflow-x: auto;
  gap: 24px;
  border-bottom: 1px solid var(--theme-border);
  margin-bottom: 24px;
}
.report-tabs button {
  border: 0;
  border-bottom: 3px solid transparent;
  color: var(--theme-text-muted);
  background: transparent;
  padding: 12px 0;
  white-space: nowrap;
  font-size: 0.9rem;
}
.report-tabs button[aria-selected="true"] {
  color: var(--theme-text-strong);
  border-bottom-color: var(--theme-accent);
  font-weight: 600;
}
.report-tabs span {
  font-size: 0.75rem;
  margin-left: 4px;
}
.report-summary-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 20px;
}
.report-card {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  background: var(--theme-surface);
}
.report-card h3,
.report-section-head h3,
.report-panel > h3 {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 20px;
}
.report-ledger {
  margin: 0;
}
.report-ledger > div {
  display: flex;
  gap: 24px;
  align-items: baseline;
  justify-content: space-between;
  padding: 10px 0;
}
.report-ledger dt {
  font-size: 0.87rem;
  font-weight: 400;
  color: var(--theme-text-secondary);
}
.report-ledger dd {
  font-size: 0.95rem;
  margin: 0;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.report-ledger .report-ledger-total {
  border-top: 1px solid var(--theme-border);
  margin-top: 6px;
  padding-top: 14px;
}
.report-ledger-total dt,
.report-ledger-total dd {
  font-weight: 650;
  color: var(--theme-text-strong);
}
.report-note {
  color: var(--theme-text-muted);
  font-size: 0.78rem;
  line-height: 1.6;
  margin: 16px 0 0;
}
.report-page .is-negative {
  color: var(--theme-negative);
}
.report-table {
  margin: 0;
  font-size: 0.87rem;
  vertical-align: middle;
}
.report-table thead th {
  padding: 14px 12px;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--theme-text-muted);
  background: var(--theme-surface-soft);
  border-color: var(--theme-border);
}
.report-table tbody th,
.report-table tbody td {
  padding: 14px 12px;
  border-color: var(--theme-border);
  background: transparent;
}
.report-table tbody th {
  font-weight: 500;
  min-width: 130px;
}
.report-table td,
.report-table th:not(:first-child) {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.report-section-head {
  align-items: flex-end;
}
.report-section-head h3 {
  margin-bottom: 8px;
}
.report-section-head p {
  margin: 0;
  font-size: 0.87rem;
}
.report-section-head label {
  min-width: 260px;
}
.report-panel:not([data-report-panel="summary"]) {
  background: var(--theme-surface);
  border: 1px solid var(--theme-border);
  border-radius: 14px;
  padding: 24px;
}
.report-empty {
  padding: 28px 16px;
  text-align: center;
  color: var(--theme-text-muted);
  margin: 0;
}
.report-unclassified-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  margin: 16px 0;
}
.report-operations-table td:first-child {
  min-width: 240px;
  max-width: 450px;
  white-space: normal;
  text-align: left;
}
.report-operations-table td strong {
  font-weight: 500;
  overflow-wrap: anywhere;
}
.report-operations-table td small {
  display: block;
  margin-top: 6px;
  color: var(--theme-text-muted);
}
.report-operations-table td:nth-child(3) {
  min-width: 240px;
}
.report-operations-table td:last-child {
  font-size: 0.8rem;
}
.report-review-item {
  padding: 20px 0;
  border-top: 1px solid var(--theme-border);
}
.report-review-item h4 {
  font-size: 0.95rem;
  margin: 0 0 8px;
}
.report-review-item p {
  color: var(--theme-text-muted);
  font-size: 0.87rem;
}
.report-review-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 12px;
  font-size: 0.85rem;
}
.report-card summary {
  font-weight: 500;
  cursor: pointer;
}
.report-card[open] summary {
  margin-bottom: 20px;
}

@media (max-width: 1099px) {
  #paymentModal .cashbox-payment-layout {
    grid-template-columns: 1fr;
  }
  .report-summary-grid {
    grid-template-columns: 1fr;
  }
  .report-highlights {
    gap: 12px;
  }
  .report-highlights article {
    padding: 18px;
  }
  .report-highlights article.report-primary {
    padding-top: 16px;
  }
}
@media (max-width: 767px) {
  .cashbox-app .app-content {
    padding: 16px 12px;
  }
  .cashbox-app .app-main {
    padding-bottom: 120px;
  }
  .cashbox-pos-bottom-bar {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding-bottom: env(safe-area-inset-bottom);
  }
  .cashbox-bottom-status {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    padding: 6px 12px;
  }
  .modal .modal-dialog {
    margin: 0;
    padding: 0;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    min-height: 0;
  }
  .modal .modal-content {
    border: 0;
    border-radius: 0;
    height: 100%;
  }
  .modal .modal-header,
  .modal .modal-body {
    padding: 16px;
  }
  .modal .modal-footer {
    padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
  }
  .modal .modal-footer .btn {
    min-height: 42px;
    flex: 1 1 auto;
  }
  .report-heading,
  .report-section-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }
  .report-filters,
  .report-card,
  .report-panel:not([data-report-panel="summary"]) {
    padding: 16px;
  }
  .report-filter-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .report-filter-row .report-register {
    grid-column: 1 / -1;
  }
  .report-filter-row > .btn {
    grid-column: 1 / -1;
  }
  .report-advanced {
    grid-template-columns: 1fr;
  }
  .report-highlights {
    grid-template-columns: 1fr;
  }
  .report-highlights h3 {
    margin-bottom: 8px;
  }
  .report-highlights strong {
    font-size: 1.8rem;
  }
  .report-tabs {
    gap: 20px;
  }
  .report-section-head label {
    width: 100%;
    min-width: 0;
  }
  .report-ledger > div {
    gap: 12px;
  }
  .report-table {
    font-size: 0.8rem;
  }
  .report-table td,
  .report-table th {
    padding: 12px 8px;
  }
  .close-shift-row {
    gap: 8px;
    font-size: 0.8rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
@media print {
  body.cashbox-app {
    padding: 0;
    background: white;
    color: black;
  }
  .cashbox-pos-bottom-bar,
  .cashbox-pos-menu-panel,
  .cashbox-pos-app-head,
  .cashbox-shift-closed-notice,
  #posGlobalNotice,
  .report-filters,
  .report-tabs,
  .report-heading > button,
  .report-section-head label,
  .report-unclassified-filter,
  .report-status,
  .report-review-item button,
  .modal,
  .modal-backdrop {
    display: none !important;
  }
  .cashbox-app .app-content {
    max-width: none;
    padding: 0;
  }
  .cashbox-app .app-main {
    padding: 0;
  }
  .report-page.is-active [data-report-panel][hidden] {
    display: block !important;
  }
  .report-highlights {
    grid-template-columns: repeat(3, 1fr);
  }
  .report-panel,
  .report-card {
    border-color: #ddd;
    box-shadow: none;
    margin: 16px 0;
  }
  .report-summary-grid {
    display: block;
  }
  .report-table {
    font-size: 9pt;
  }
  .report-table td,
  .report-table th {
    white-space: normal;
  }
  .report-page .table-responsive {
    overflow: visible;
  }
  .report-highlights article {
    break-inside: avoid;
  }
}

/* Bank reconciliation shares the cashbox palette and modal components. */
.bank-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin-top:1.25rem}
.bank-filters label{display:grid;gap:.35rem;min-width:9rem;flex:1}
.bank-connect-form{display:flex;flex-direction:column;align-items:start;gap:1rem;max-width:48rem}
.bank-connect-form>label:first-child{display:grid;gap:.4rem;width:100%}
.bank-source{display:grid;grid-template-columns:2fr 2fr 1fr;gap:1rem;align-items:end;padding:1rem 0;border-bottom:1px solid var(--theme-border)}
.bank-source label{display:grid;gap:.35rem;min-width:0}
.bank-source .bank-source-name{display:block;align-self:center;overflow-wrap:anywhere}
.bank-operation,.bank-candidate{display:flex;gap:1.25rem;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--theme-border)}
.bank-operation-info,.bank-candidate>div{min-width:0;flex:1;overflow-wrap:anywhere}
.bank-operation-info p,.bank-candidate p{margin:.35rem 0}
.bank-operation-info small,.bank-candidate small{display:block;color:var(--theme-text-muted)}
.bank-operation-info a{display:inline-block;margin-top:.4rem}
.bank-operation-action{display:flex;flex-direction:column;align-items:end;justify-content:center;gap:.5rem;flex-shrink:0}
.bank-operation-action>strong,.bank-payment-amount{font-variant-numeric:tabular-nums}
.bank-payment-amount{font-size:2rem;font-weight:700;margin-bottom:.5rem}
.bank-wrap,.bank-secret{overflow-wrap:anywhere;white-space:pre-wrap}
.bank-secret{background:var(--theme-surface-soft);padding:1rem}
.bank-modal-section{padding:1.25rem 0;border-top:1px solid var(--theme-border)}
.bank-modal-section:last-child{padding-bottom:0}
.bank-product-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-height:17rem;overflow-y:auto}
.bank-product{display:flex;gap:.75rem;text-align:left;justify-content:space-between;align-items:center;padding:.75rem}
.bank-product span{min-width:0;overflow-wrap:anywhere}
.bank-product small{display:block;color:var(--theme-text-muted)}
.bank-product strong{white-space:nowrap}
.bank-chosen,.bank-checkout-finance>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0}
.bank-chosen{border-bottom:1px solid var(--theme-border)}
.bank-checkout-finance{border-top:1px solid var(--theme-border);padding-top:.5rem}
.bank-checkout-finance p{margin-top:.75rem;margin-bottom:0}
.report-highlights{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media(max-width:600px){.bank-source{grid-template-columns:1fr 1fr}.bank-source-name{grid-column:1/-1}.bank-product-results{grid-template-columns:1fr}.bank-operation,.bank-candidate{flex-direction:column;gap:.5rem}.bank-operation-action{flex-direction:row;justify-content:space-between;align-items:center}.bank-candidate button{align-self:start}.bank-filters{gap:.65rem}.bank-filters button{width:100%}}

/* Журнал, банковские операции и оплата заказа: общая палитра и адаптивность. */
.journal-counters {display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 18px;}
.journal-counters button {border:1px solid var(--theme-border);border-radius:10px;padding:10px 14px;background:var(--theme-surface-soft);color:var(--theme-text);text-align:left;}
.journal-counters strong {margin-left:10px;font-variant-numeric:tabular-nums;}
.journal-filters {display:flex;flex-wrap:wrap;gap:12px;align-items:end;}
.journal-filters label {display:grid;gap:6px;flex:1 1 150px;font-size:.88rem;color:var(--theme-text-secondary);min-width:0;}
.journal-filters label:has(input[type=search]) {flex-basis:230px;}
.journal-feed {display:grid;gap:12px;}
.journal-feed[aria-busy=true] {opacity:.65;}
.journal-entry {padding:18px;border:1px solid var(--theme-border);border-radius:12px;background:var(--theme-surface);min-width:0;}
.journal-entry-head {display:flex;justify-content:space-between;gap:16px;align-items:start;}
.journal-entry-head>div {min-width:0;}
.journal-entry h3 {font-size:1rem;line-height:1.45;margin:5px 0;overflow-wrap:anywhere;}
.journal-kind,.journal-date {font-size:.8rem;color:var(--theme-text-muted);}
.journal-state {font-size:.85rem;margin:6px 0;color:var(--theme-text-secondary);}
.journal-amount {white-space:nowrap;font-size:1.1rem;font-variant-numeric:tabular-nums;}
.journal-items {list-style:none;padding:0;margin:12px 0;border-top:1px solid var(--theme-border-soft);}
.journal-items li {display:flex;justify-content:space-between;gap:14px;padding:9px 0;font-size:.9rem;}
.journal-items li>span:first-child {overflow-wrap:anywhere;min-width:0;}
.journal-items li>span:last-child {display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:end;}
.journal-actions,.journal-footer {display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.journal-actions:empty {display:none;}
.journal-footer {margin-top:20px;}
.journal-empty {padding:40px 16px;text-align:center;color:var(--theme-text-muted);}
.bank-ledger-description {overflow-wrap:anywhere;padding:14px;border-radius:10px;background:var(--theme-surface-soft);}
.bank-ledger-form {display:grid;gap:16px;}
.bank-ledger-form label {display:grid;gap:7px;}
.bank-ledger-form select {width:100%;min-width:0;}
.partner-balance {margin:18px 0;}
.partner-debt {font-size:1.5rem;color:var(--theme-text-strong);font-variant-numeric:tabular-nums;}
.order-qr-body {text-align:center;}
.order-qr-amount {display:block;font-size:2rem;font-variant-numeric:tabular-nums;margin-bottom:12px;}
.order-qr-image {display:block;margin:16px auto;max-width:100%;height:auto;background:#fff;border:12px solid #fff;border-radius:12px;}
#orderQrNumber {overflow-wrap:anywhere;}
@media(max-width:600px){
  .journal-entry {padding:14px;}
  .journal-entry-head {flex-direction:column;gap:4px;}
  .journal-items li {flex-direction:column;gap:6px;}
  .journal-items li>span:last-child {justify-content:start;}
  .journal-actions .btn {flex:1 1 auto;}
  .journal-filters>button {width:100%;}
  .partner-balance .report-section-head {align-items:start;}
}
@media print {.journal-filters,.journal-counters,.journal-actions,.journal-footer {display:none!important;}.journal-entry {break-inside:avoid;}}

/* Прежняя банковская запись сохраняется для сверки, но не выглядит новой оплатой. */
.bank-operation.is-bank-history {background:var(--theme-surface-soft);border-bottom-style:dashed;}
.bank-operation.is-bank-history .bank-operation-action>strong {font-size:.9rem;color:var(--theme-text-secondary);}
