body { font-feature-settings: "ss01" on; }
/* Не зависеть от Tailwind CDN: иначе после входа форма остаётся на экране. */
section.view.hidden {
  display: none !important;
}
body.logged-out #main-nav,
body.logged-out #logout-btn,
body.logged-out #session-user { display: none; }
body:not(.logged-out) .guest-only { display: none; }
body:not(.role-admin) .admin-only { display: none !important; }
#view-kp.kp-readonly input,
#view-kp.kp-readonly textarea,
#view-kp.kp-readonly select,
#view-kp.kp-readonly table button,
#view-kp.kp-readonly #add-row,
#view-kp.kp-readonly #add-section,
#view-kp.kp-readonly #kp-catalog-sync,
#view-kp.kp-readonly #kp-bulk-up,
#view-kp.kp-readonly #kp-bulk-down,
#view-kp.kp-readonly #kp-bulk-copy,
#view-kp.kp-readonly #kp-bulk-clear {
  pointer-events: none;
  opacity: 0.55;
}
#view-kp input[type="number"],
#view-kp input.kp-num {
  -moz-appearance: textfield;
  appearance: textfield;
}
#view-kp input[type="number"]::-webkit-inner-spin-button,
#view-kp input[type="number"]::-webkit-outer-spin-button,
#view-kp input.kp-num::-webkit-inner-spin-button,
#view-kp input.kp-num::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.suggest {
  position: fixed;
  z-index: 80;
  max-height: min(70vh, 520px);
  overflow-y: auto;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 12px 40px rgba(15, 39, 68, 0.18);
}
.suggest-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.suggest-thumb {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  object-fit: contain;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.dark .suggest-thumb {
  background: #0f172a;
  border-color: #334155;
}
.suggest-thumb-empty {
  display: grid;
  place-items: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0f766e;
}
.dark .suggest {
  background: #1e293b;
  border-color: #334155;
}
.suggest button[data-active="1"] {
  background: #f0fdfa;
}
.dark .suggest button[data-active="1"] {
  background: #134e4a;
}
.source-link {
  color: #0f766e;
  display: inline-flex;
  align-items: center;
}
.nav-link {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border: 1px solid #e2e8f0;
}
.dark .nav-link { border-color: #334155; }
.nav-link.active,
.settings-tab.active {
  background: #0f766e;
  color: #fff;
  border-color: #0f766e;
}
.cat-btn { color: inherit; }
.cat-btn:hover { background: #f1f5f9; }
.dark .cat-btn:hover { background: #1e293b; }
.cat-row { display: flex; align-items: center; gap: 0.15rem; }
.cat-hide, .cat-show {
  flex-shrink: 0;
  border-radius: 0.4rem;
  padding: 0.15rem 0.35rem;
  font-size: 0.7rem;
  line-height: 1;
  color: #94a3b8;
}
.cat-hide:hover { color: #be123c; background: #fff1f2; }
.cat-show:hover { color: #0f766e; background: #f0fdfa; }
.dark .cat-hide:hover { background: #4c0519; color: #fda4af; }
.cat-fold {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.35rem;
  color: #64748b;
  font-size: 0.65rem;
  line-height: 1;
}
.cat-fold:hover { background: #e2e8f0; color: #0f2744; }
.dark .cat-fold:hover { background: #334155; color: #e2e8f0; }
.cat-fold-spacer { flex-shrink: 0; width: 1.25rem; }
.kp-lines-scroll {
  max-height: min(70vh, calc(100dvh - 8rem));
  overflow: auto;
  overscroll-behavior: contain;
}
.kp-lines-scroll table {
  border-collapse: separate;
  border-spacing: 0;
}
.kp-lines {
  table-layout: fixed;
  width: 100%;
  min-width: 920px;
  font-size: 12.5px;
  line-height: 1.3;
}
.kp-lines .kp-col-check { width: 1.7rem; }
.kp-lines .kp-col-title { width: auto; }
.kp-lines .kp-col-comment { width: 7.25rem; }
.kp-lines .kp-col-unit { width: 3.55rem; }
.kp-lines .kp-col-qty { width: 4.1rem; }
.kp-lines .kp-col-price { width: 7.1rem; }
.kp-lines .kp-col-retail { width: 5.1rem; }
.kp-lines .kp-col-markup { width: 3.35rem; }
.kp-lines .kp-col-sale { width: 5.4rem; }
.kp-lines .kp-col-sum { width: 5.4rem; }
.kp-lines .kp-col-actions { width: 5.4rem; }
.kp-lines thead th {
  padding: 0.45rem 0.28rem;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  white-space: nowrap;
}
.kp-lines thead th.kp-col-title {
  padding-left: 0.5rem;
  white-space: normal;
}
.kp-lines td {
  padding: 0.28rem 0.22rem;
  vertical-align: middle;
}
.kp-lines td.kp-col-check {
  padding-left: 0.15rem;
  padding-right: 0.05rem;
  text-align: center;
}
.kp-lines td.kp-col-title {
  padding-left: 0.4rem;
  padding-right: 0.35rem;
}
.kp-lines td.kp-col-sum {
  padding-right: 0.4rem;
}
.kp-lines input,
.kp-lines select {
  font-size: 12.5px;
  line-height: 1.25;
  padding: 0.32rem 0.38rem;
}
.kp-lines .kp-col-comment input,
.kp-lines .kp-col-unit select,
.kp-lines .kp-col-markup input,
.kp-lines .kp-col-qty input {
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}
.kp-lines .kp-col-check input[type="checkbox"] {
  width: 0.85rem;
  height: 0.85rem;
  margin: 0;
}
.kp-lines-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #0f2744;
}
#rows tr.kp-row-selected { background: #f0fdfa; }
.dark #rows tr.kp-row-selected { background: #134e4a; }
#rows tr.kp-row-selected.bg-slate-900 { background: #115e59; }
#rows tr.kp-row-moved,
#rows tr.kp-row-selected.kp-row-moved {
  background: #fde68a;
  transition: background-color 0.15s ease;
}
.dark #rows tr.kp-row-moved,
.dark #rows tr.kp-row-selected.kp-row-moved {
  background: #a16207;
}
#rows tr.kp-row-moved.bg-slate-900,
#rows tr.kp-row-selected.kp-row-moved.bg-slate-900 {
  background: #0f766e;
}
.reg-sort {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font: inherit;
  font-weight: 600;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
}
.reg-sort:hover { color: #0f766e; }
.dark .reg-sort:hover { color: #5eead4; }
.reg-sort::after { content: ""; min-width: 0.75em; color: #0f766e; }
.reg-sort[aria-sort="ascending"]::after { content: "↑"; }
.reg-sort[aria-sort="descending"]::after { content: "↓"; }
.site-footer {
  width: 100%;
  flex-shrink: 0;
}
#registry-rows tr.reg-delete-mark {
  background: #fff1f2;
  color: #9f1239;
}
#registry-rows tr.reg-delete-mark td {
  color: #9f1239;
}
.dark #registry-rows tr.reg-delete-mark {
  background: #4c0519;
  color: #fecdd3;
}
.dark #registry-rows tr.reg-delete-mark td {
  color: #fecdd3;
}
