* {
  box-sizing: border-box;
}

a {
  color: var(--accent-dark);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.brand {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 36px;
}

.sidebar nav {
  display: grid;
  gap: 8px;
}

.sidebar nav a {
  color: rgba(255,255,255,.82);
  padding: 12px 14px;
  border-radius: 12px;
}

.sidebar nav a:hover {
  background: rgba(255,255,255,.08);
  text-decoration: none;
  color: white;
}

.panel.narrow {
  max-width: 780px;
}

h1,h2,h3 {
  margin-top: 0;
  letter-spacing: -.02em;
}

.grid {
  display: grid;
  gap: 18px;
  margin-bottom: 24px;
}

.grid.three {
  grid-template-columns: repeat(3, 1fr);
}

.card {
  padding: 20px;
}

.metric {
  font-size: 34px;
  font-weight: 500;
  margin: 8px 0;
}

.form {
  display: grid;
  gap: 16px;
}

label {
  display: grid;
  gap: 7px;
  font-size: 12px; /* v3.8.53: 14→12 канон тела (голые label'ы были крупнее) */
  font-weight: 500;
}

textarea {
  resize: vertical;
}

input:focus,select:focus,textarea:focus {
  outline: 2px solid rgba(155,122,74,.18);
  border-color: var(--accent);
}

/* .button/.primary/.small переехали в components/ui.css (единый дом, без !important). */

.link {
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--accent-dark);
  padding: 0;
}

.link.danger {
  color: var(--danger);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

th {
  text-align: left;
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 12px;
  border-bottom: 1px solid var(--line);
}

td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.muted,.hint {
  color: var(--muted);
  font-size: 12px;
}

.required {
  color: var(--danger);
}

.checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  font-size: 12px;
}

.checks label,label.check,.check-line {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 400; /* v3.8.53: 500→400 — чекбокс-лейблы как тело (ровно как на «Добавить поле») */
}

.checks input,label.check input,.check-line input {
  width: auto;
}

.order-grid {
  display: grid;
  gap: 18px;
}

.form-actions {
  display: flex;
  gap: 12px;
}

.status {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  background: #FAFAFA;
  font-size: 12px;
  color: #5f4c2c;
}

.empty-state {
  padding: 22px;
  border: 1px dashed var(--line);
  border-radius: 12px;
  color: var(--muted);
  background: rgba(255,255,255,.55);
}

dl {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 10px;
  margin: 0;
}

dt {
  color: var(--muted);
}

dd {
  margin: 0;
}

.product-card {
  display: grid;
  grid-template-columns: 96px 1fr auto;
  gap: 18px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  background: #fff;
}

.thumb {
  width: 96px;
  height: 96px;
  border-radius: 12px;
  overflow: hidden;
  background: #FAFAFA;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 12px;
}

.thumb img,.current-photo img,.product-preview img,.view-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-info h3 {
  margin-bottom: 4px;
}

.product-info p {
  margin: 0 0 6px;
}

.actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 1100px) {
  .sidebar { position: static; width: auto; }
  .main { margin-left: 0; padding: 18px; }
  .grid.three, .grid.two, .builder-layout, .selector-row, .product-card { grid-template-columns: 1fr; }
}

.structure-list {
  display: grid;
  gap: 18px;
}

.fields-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.order-section h3 {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.order-section h3 span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

@media (max-width: 900px) {
  .fields-two,
  .structure-section-head {
    grid-template-columns: 1fr;
    display: grid;
  }
}

.main-login,
.main.main-login {
  margin-left: 0;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  box-sizing: border-box;
}

/* fix: flash не сдвигает login-card — показываем поверх страницы */
.main-login .flash-wrap {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: min(460px, 92vw);
  z-index: 9999;
  margin: 0;
}

.login-card {
  width: min(420px, 92vw);
  background: rgba(255,253,249,.96);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 34px;
  box-shadow: var(--shadow);
}

/* Логин-инпуты — высота в духе системы (правило аудита), не 42px по умолчанию */
.login-card .form input {
  height: 34px;
  padding: 0 12px;
  font-size: 12px;
}

.brand-login {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--dark);
  color: white;
  letter-spacing: .08em;
  margin-bottom: 18px;
}

/* .primary-mini удалён — мёртвый класс (нет в шаблонах). */

.bulk-scroll {
  overflow-x: auto;
}

.bulk-table input,.bulk-table select {
  min-width: 120px;
  padding: 8px;
  border-radius: 8px;
}

.bulk-table input[type="checkbox"] {
  min-width: auto;
  width: auto;
}

.lang-switch {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: 8px 0;
}

.lang-switch a {
  font-size: 12px;
  padding: 6px 8px;
  border: 1px solid rgba(255,255,255,.12);
}

.lang-switch a.active {
  background: rgba(255,255,255,.14);
  color: #fff;
}

.order-chat .chat-list {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
}

.chat-message {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 12px 14px;
}

.chat-meta {
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 6px;
}

/* Chat message text — added in v3_8_x audit fix */
.chat-msg-text {
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text);
}

.bulk-table {
  min-width: 1160px;
}

.danger-button {
  border-color: #CC2200;
  color: #CC2200;
}

/* (Удалены мёртвые .muted-link / .description-popover — нет в шаблонах.) */

.entity-list {
  display: grid;
  gap: 16px;
}

.entity-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  background: var(--field-bg);
}

.entity-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.compact-form {
  gap: 10px;
}

.danger-button,.button.danger-button {
  border-color: #CC2200;
  color: #CC2200;
}

/* .icon-button удалён — мёртвый класс (нет в шаблонах; живой аналог — .icon-action). */

.field-error input,.field-error textarea,.field-error select {
  border-color: #CC2200;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12);
}

/* spec (0,1,2): beats any single-class (0,1,0) or element+class (0,1,1) display rule */
html body .is-hidden {
  display: none;
}

.entity-card-clean .entity-head {
  align-items: start;
}

.inactive-card {
  opacity: 0.48;
  background: #eeeeee;
  filter: grayscale(0.45);
}

.inactive-card img {
  opacity: 0.55;
}

.login-lang {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin: 16px 0 20px;
  background: #FAFAFA;
  border-radius: 999px;
  padding: 4px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.login-lang a {
  border: none;
  border-radius: 999px;
  padding: 7px 16px;
  text-decoration: none;
  color: #555;
  font-size: 12px;
  font-weight: 500;
  background: transparent;
  transition: background .15s, color .15s, box-shadow .15s;
}

.login-lang a:hover {
  color: #111;
}

.login-lang a.active {
  background: #fff;
  color: #111;
  font-weight: 500;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

.filters-card {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
  margin: 0 0 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--field-bg);
}

.dashboard-columns {
  display: grid;
  grid-template-columns: repeat(5, minmax(180px, 1fr));
  gap: 14px;
}

.dashboard-column {
  min-height: 220px;
}

.dash-order {
  display: grid;
  gap: 4px;
  padding: 12px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  text-decoration: none;
  background: var(--field-bg);
}

.dash-order span,.dash-order em {
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 1200px) {
  .filters-card,
  .dashboard-columns {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 700px) {
  .filters-card,
  .dashboard-columns {
    grid-template-columns: 1fr;
  }
}

.entity-card.inactive-card {
  opacity: 0.48;
  background: #eeeeee;
  filter: grayscale(0.45);
}

.entity-card.inactive-card table,.entity-card.inactive-card .muted {
  opacity: 0.75;
}

.filters-card input::placeholder {
  color: #8d8a84;
  opacity: 1;
}

.panel.catalog-panel {
  background: var(--panel);
}

h3 {
  font-size: 14px;
  font-weight: 500;
}

.dropzone input {
  display: none;
}

.dropzone-title {
  font-weight: 500;
}

.dropzone-note {
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
}

.compact-dropzone {
  min-height: 92px;
}

.additional-photo-slot {
  min-width: 0;
}

@media (max-width: 800px) {
  .panel {
    padding: 24px;
  }
}

.panel,.card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

h1 {
  font-size: 16px;
  margin-bottom: 6px;
  font-weight: 500;
  letter-spacing: -.02em;
  text-transform: none;
}

h2 {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -.01em;
  text-transform: none;
}

.button.primary {
  background: var(--dark);
  border-color: var(--dark);
  color: #fff;
  border-radius: 8px;
  min-height: 40px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.catalog-panel {
  background: var(--panel);
  border-color: var(--line);
  padding-top: 32px;
}

.selected-photo-caption {
  font-size: 12px;
  color: var(--muted);
  word-break: break-all;
}

.photo-upload-section {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px;
  background: var(--panel);
  display: grid;
  gap: 14px;
}

.dropzone {
  min-height: 126px;
  border: 1px dashed #b9b2a8;
  border-radius: 12px;
  background: linear-gradient(180deg, #FFFFFF, #FAFAFA);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 18px;
  cursor: pointer;
  border-color: #E8E8E8;
}

.dropzone:hover {
  border-color: var(--accent);
  background: #FFFFFF;
}

.photo-slot {
  display: grid;
  gap: 10px;
}

.photo-preview-frame {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #FAFAFA;
  color: var(--muted);
}

.photo-preview-frame.is-empty {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 12px;
}

.photo-preview-main {
  width: 100%;
  aspect-ratio: 3 / 4;
}

.photo-preview-square {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.photo-preview-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  user-select: none;
  -webkit-user-drag: none;
}

.photo-preview-frame .selected-photo-caption {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 8px;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(255,255,255,.82);
  color: #333;
  font-size: 11px;
  word-break: break-all;
}

.photo-delete-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  font-size: 12px;
  color: var(--danger, #CC2200);
  cursor: pointer;
}

.dropzone.drag-active {
  border-color: var(--accent-dark);
  background: #FFFFFF;
}

@media (max-width: 800px) {
  .product-form .photo-preview-main,
  .product-form .main-photo-slot {
    max-width: 100%;
  }
}

.form-block,.product-form-right .photo-upload-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px;
}

.form-block h3,.product-form-right h3 {
  margin-top: 0;
}

.compact-price-grid {
  gap: 12px;
}

@media (max-width: 1150px) {
  .product-edit-wide {
    width: auto;
  }

  .product-form-split {
    grid-template-columns: 1fr;
  }

  .photo-panel-sticky {
    position: static;
  }

  .product-form .photo-preview-main,
  .product-form .main-photo-slot {
    max-width: 100%;
  }
}

@media (max-width: 720px) {
  .extra-photos-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  :root {
    --jit-product-card-width: min(320px, calc(100vw - 64px));
    --jit-product-main-photo-height: 380px;
    --jit-product-thumb-size: 58px;
  }
}

.jit-factory-sections {
  display: grid;
  gap: 28px;
}

.jit-factory-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(222, 212, 198, .75);
}

.jit-factory-section-head h2 {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.1;
  letter-spacing: -.01em;
  text-transform: none;
}

.jit-factory-section-head p {
  margin: 0;
}

.jit-factory-head-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* v3.8.67: подъём при наведении возвращён (плавный, см. theme_v2 + catalog_v2). */
.catalog-page-v44 .jit-product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(22, 19, 15, .085);
}

/* (Удалены мёртвые .jit-product-desc / .jit-order-button / пустые catalog-*-card
   правила — классов нет в шаблонах.) */

@media (max-width: 800px) {
  :root {
    --jit-card-w: min(320px, calc(100vw - 64px));
    --jit-card-main-h: 320px;
    --jit-card-thumb-h: 56px;
  }
  .jit-factory-section {
    padding: 18px;
  }

  .jit-factory-section-head {
    display: grid;
  }
}

.catalog-panel,.factories-panel,.jit-factory-section {
  background: var(--panel);
}

.jit-factory-section {
  border: 1px solid var(--jit-line, var(--line));
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 12px 28px rgba(22, 19, 15, .045);
}

.catalog-page-v44 .jit-product-media {
  display: grid;
  grid-template-rows: var(--jit-card-main-h) auto;
  gap: 10px;
  width: 100%;
  min-height: 0;
  overflow: hidden;
}

.catalog-page-v44 .jit-product-main-photo {
  width: 100%;
  height: var(--jit-card-main-h);
  min-height: var(--jit-card-main-h);
  max-height: var(--jit-card-main-h);
  overflow: hidden;
  border-radius: 12px;
  background: #FAFAFA;
  display: grid;
  place-items: center;
  color: var(--jit-muted, #81786d);
}

.catalog-page-v44 .jit-product-main-photo img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.catalog-page-v44 .jit-product-thumbs {
  width: 100%;
  height: var(--jit-card-thumb-h);
  min-height: var(--jit-card-thumb-h);
  max-height: var(--jit-card-thumb-h);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  overflow: hidden;
  position: static;
  inset: auto;
  transform: none;
  margin: 0;
  padding: 0;
}

.catalog-page-v44 .jit-product-thumb {
  width: 100%;
  height: var(--jit-card-thumb-h);
  min-height: var(--jit-card-thumb-h);
  max-height: var(--jit-card-thumb-h);
  padding: 0;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  background: #FAFAFA;
  cursor: pointer;
  display: block;
}

.catalog-page-v44 .jit-product-thumb.active {
  border-color: var(--dark);
}

.catalog-page-v44 .jit-product-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

/* (Удалён мёртвый слой кнопок/иконок старых карточек: .jit-order-button,
   .jit-product-card-admin .*, .jit-admin-icons — классов нет в шаблонах.) */

@media (max-width: 800px) {
  :root {
    --jit-card-w: min(320px, calc(100vw - 64px));
    --jit-card-main-h: 340px;
    --jit-card-thumb-h: 56px;
  }

  .jit-products-grid {
    grid-template-columns: repeat(auto-fill, minmax(var(--jit-card-w), var(--jit-card-w)));
  }
}

/* (Удалён мёртвый текстовый слой старых карточек: .jit-product-desc/-title,
   .description-popover/-hover, .jit-product-card-admin кнопки — нет в шаблонах.) */

.product-edit-panel .panel-header .actions .button {
  white-space: nowrap;
}

html,body {
  max-width: 100%;
  overflow-x: hidden;
}

.app,.layout,.main,main,.content,.page,.page-content {
  min-width: 0;
  max-width: 100%;
}

.main,main,.content,.page-content {
  padding-left: var(--jit-page-pad);
  padding-right: var(--jit-page-pad);
}

.panel,.catalog-panel,.factories-panel,.fields-panel,.jit-factory-section {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: var(--jit-panel-pad);
  border-radius: var(--jit-radius-lg);
}

.grid.two {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.grid.three,.compact-price-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.form input,.form select,.form textarea,input,select,textarea {
  max-width: 100%;
  box-sizing: border-box;
}

.jit-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--jit-card-w), var(--jit-card-w)));
  gap: clamp(16px, 1.8vw, 24px);
  align-items: start;
  justify-content: start;
}

/* STEP1: spec (0,2,0) — scoped to catalog page (v3.7 leak fix). The factory page
   (.factories-page-v49) owns its card geometry in factories_v2.css, so these
   shared .jit-product-* hook classes no longer leak onto it. */
.catalog-page-v44 .jit-product-card {
  box-sizing: border-box;
  width: var(--jit-card-w);
  min-width: var(--jit-card-w);
  max-width: var(--jit-card-w);
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 4px;
  padding: clamp(12px, 1vw, 16px);
  border: 1px solid var(--jit-line, var(--line));
  border-radius: 12px;
  background: var(--jit-card-bg, var(--panel));
  box-shadow: 0 12px 28px rgba(22, 19, 15, .055);
  overflow: visible;
  padding-bottom: 14px;
}

/* (Удалён мёртвый текстовый слой: .jit-product-info/-type/-price/-desc/-actions
   + .muted-link — нет в шаблонах.) */

/* ── STEP1-FIX (v3_7_3): Restore product card base layout after !important removal ──────────
   Root cause: pages/factory.css (.factory-catalog-page-v45 …) and pages/catalog.css
   (.catalog-page-v44 …) carry spec (0,2,0)–(0,3,0) rules that were always blocked by the
   !important declarations removed above.  Without !important those page rules now WIN:
     – .jit-product-card: grid-template-rows: auto 1fr auto  (was auto auto auto)
     – .jit-product-info:  gap: 6px; padding: 12px 2px 4px  (was 2px / 0 2px)
     – .jit-product-actions: margin-top: 14px; padding-top: 8px (was 2px / 0)
   This causes the "excess space around description" (Bug 3) and the perceived hover-jump
   (Bug 1) because the card geometry now differs from the designed base layout.

   Fix: use element + doubled-class selectors to reach spec (0,2,1) or (0,3,2) and
   restore the original values, beating all page-level overrides.
   ─────────────────────────────────────────────────────────────────────────────────────── */

/* spec (0,2,1): article.jit-product-card.jit-product-card
   Beats catalog.css .catalog-page-v44 .jit-product-card (0,2,0) and
   factory.css .factory-catalog-page-v45 .jit-product-card-admin (0,2,0)
   Also beats theme_v2.css .jit-product-card (0,1,0) which sets
   will-change: transform; backface-visibility: hidden — causing GPU-layer
   promotion on page load and a visible card "jump" (Bug fix v3_7_3). */
article.jit-product-card.jit-product-card {
  grid-template-rows: auto auto auto;
  min-height: 0;
  will-change: auto;
  backface-visibility: visible;
}

/* (Удалены мёртвые .jit-product-info/.jit-product-actions overrides — нет в шаблонах.) */

.bulk-scroll-strong,.bulk-scroll,.table-scroll,.orders-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.bulk-table-wide {
  min-width: 980px;
}

.field-row-card {
  grid-template-columns: minmax(180px, 1fr) minmax(160px, auto) auto;
}

.order-summary,.order-card,.order-product-card {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 1280px) {
  :root {
    --jit-card-w: 260px;
    --jit-card-main-h: 318px;
  }

  .product-form-split {
    grid-template-columns: 1fr;
  }

  .product-form-right .photo-panel-sticky {
    position: static;
  }

  .extra-photos-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
}

@media (max-width: 980px) {
  :root {
    --jit-page-pad: 12px;
    --jit-panel-pad: 16px;
    --jit-card-w: min(100%, 340px);
    --jit-card-main-h: 340px;
    --jit-card-thumb-h: 54px;
  }

  .jit-products-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  }

  .jit-product-card {
    width: 100%;
    min-width: 0;
    max-width: 340px;
  }

  .fields-layout-fixed,
  .field-row-card {
    grid-template-columns: 1fr;
  }

  .bulk-filter-groups {
    grid-template-columns: 1fr;
  }

  .jit-factory-section-head {
    display: grid;
  }

  .jit-factory-head-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .panel-header .actions,
  .bulk-filter-actions {
    width: 100%;
    margin-left: 0;
  }

  .panel-header .actions .button,
  .bulk-filter-actions .button {
    flex: 1 1 auto;
  }
}

.color-picker-field {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding: 10px 0 0;
}

.color-option {
  display: inline-grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  justify-items: center;
  gap: 4px 6px;
  min-width: 54px;
  padding: 4px;
  cursor: pointer;
  font-size: 11px;
}

.color-option input {
  grid-column: 1 / -1;
  width: 16px;
  height: 16px;
  margin: 0;
}

.color-dot {
  grid-column: 1 / -1;
  display: block;
  width: 38px;
  height: 38px;
  border: 2px solid #222;
  border-radius: 999px;
  background: #FAFAFA;
}

.color-code {
  grid-column: 1 / -1;
  text-align: center;
  line-height: 1.1;
  color: #111;
}

.color-option input:checked + .color-dot {
  outline: 3px solid rgba(0,0,0,.18);
  outline-offset: 3px;
}

.select-manual-widget {
  display: grid;
  gap: 8px;
}

.order-value-image {
  display: block;
  width: min(260px, 100%);
  max-height: 220px;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid var(--jit-line, var(--line));
  background: #FAFAFA;
}

.order-values-card table td {
  vertical-align: middle;
}

.panel-header .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
  align-items: center;
}

.compact-actions,.field-row-actions.compact-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: nowrap;
}

.compact-actions form {
  display: inline-flex;
  margin: 0;
  padding: 0;
}

.icon-action {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--field-bg);
  text-decoration: none;
  color: var(--text);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}

.icon-action:hover {
  background: #FAFAFA;
}

.icon-action.danger {
  color: #CC2200;
  border-color: #CC2200;
}

.icon-action.danger:hover {
  background: #fff4f4;
}

/* (Удалён мёртвый .description-hover / .description-popover — нет в шаблонах.) */

.product-trash-card {
  opacity: 0.92;
}

.trash-product-main {
  display: flex;
  gap: 16px;
  align-items: center;
  min-width: 0;
}

.trash-product-photo {
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--section-bg);
}

.product-trash-card h3 {
  margin: 0 0 8px;
}

.trash-product-photo-empty {
  display: grid;
  place-items: center;
  font-size: 11px;
  color: var(--muted);
}

.product-trash-card .entity-head {
  align-items: center;
}

.product-trash-card .actions {
  flex-shrink: 0;
}

.sorting-enabled .jit-product-card {
  cursor: grab;
  outline: 1px dashed var(--accent);
}

.sorting-enabled .jit-product-card.dragging {
  opacity: .45;
  cursor: grabbing;
}

.panel,.card,.jit-product-card,.jit-factory-section,.settings-card,.entity-card,.locked-order-context,.order-section,.photo-upload-section,.form-block {
  background: var(--panel);
  color: var(--text);
  border-color: var(--line);
  border-radius: var(--radius);
}

input,select,textarea,.button,.icon-action,.dropzone {
  border-color: var(--line);
  border-radius: 8px;
}

.button.primary {
  background: var(--dark);
  border-color: var(--dark);
  color: var(--button-text);
}

.button:hover,.icon-action:hover {
  border-color: var(--accent);
}

.muted,.hint,.brand-subtitle {
  color: var(--muted);
}

.flash {
  border-color: var(--line);
}

.technical-image-order-card img,.technical-image-view-card img,.photo-preview-tech img {
  display: block;
  max-width: 100%;
  max-height: 420px;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--section-bg);
}

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 270px;
  background: var(--menu-bg);
  color: var(--menu-text);
  padding: 28px 22px;
  border-right: 1px solid #111;
}

.sidebar a,.sidebar nav a,.brand-title {
  color: var(--menu-text);
}

.sidebar .brand-subtitle,.sidebar .lang-switch a {
  color: var(--menu-muted);
}

.sidebar nav a:hover,.sidebar .lang-switch a.active {
  background: var(--menu-active-bg);
  color: var(--menu-active-text);
}

.panel,.card,.entity-card,.settings-card,.settings-row-card,.jit-product-card,.jit-factory-section,.locked-order-context,.order-section,.photo-upload-section,.form-block,.design-group {
  background: var(--panel);
  color: var(--text);
  border-color: var(--line);
  border-radius: var(--radius);
}

input,select,textarea,.dropzone,.button,.icon-action {
  border-color: var(--line);
  border-radius: 8px;
}

input,select,textarea {
  width: 100%;
  border: 0.5px solid var(--line);
  background: var(--panel);
  border-radius: 8px;
  padding: 6px 11px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  color: var(--text);
}

.button,.icon-action {
  background: var(--button-secondary-bg);
  color: var(--button-secondary-text);
}

.button.primary,button.primary,.layout-toggle[data-mode="save"] {
  background: var(--dark);
  border-color: var(--dark);
  color: var(--button-text);
}

.button:hover,.icon-action:hover {
  border-color: var(--accent);
}

.icon-action {
  color: var(--button-secondary-text);
}

.icon-action.danger,.danger-button,.link.danger {
  color: var(--danger);
  border-color: var(--danger);
}

a,.link {
  color: var(--accent-dark);
}

.muted,.hint,.brand-subtitle {
  color: var(--muted);
}

.image-view-button {
  display: block;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: zoom-in;
  width: 100%;
}

.image-view-button img {
  display: block;
  width: 100%;
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-items: center;
  padding: 32px;
  background: rgba(0, 0, 0, .78);
}

.image-modal.is-open {
  display: grid;
}

.image-modal img {
  max-width: min(1100px, 94vw);
  max-height: 90vh;
  object-fit: contain;
  border-radius: 12px;
  background: #fff;
}

.image-modal-close {
  position: fixed;
  right: 28px;
  top: 22px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(0,0,0,.35);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

a.icon-action,button.icon-action,.actions .icon-action {
  color: var(--button-secondary-text);
  background: var(--button-secondary-bg);
  border-color: var(--line);
}

a.icon-action:hover,button.icon-action:hover,.actions .icon-action:hover {
  color: var(--text);
  border-color: var(--accent);
}

a.icon-action.danger,button.icon-action.danger {
  color: var(--danger);
  border-color: var(--danger);
}

.order-reference-image-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  background: var(--panel);
}

.order-reference-image-card h3 {
  margin: 0 0 10px;
  font-size: 14px;
}

.order-reference-image-card .image-view-button {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--section-bg);
}

.order-reference-image-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.order-reference-image-card p {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.35;
}

.order-meta-grid-v70 {
  display: grid;
  grid-template-columns: minmax(150px, .45fr) minmax(0, 1fr);
  gap: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}

.order-meta-grid-v70 dt:nth-last-child(2),.order-meta-grid-v70 dd:last-child {
  border-bottom: 0;
}

.order-value-row-v70 {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--panel);
}

.order-value-row-image-v70 .order-value-image {
  max-width: 320px;
  max-height: 240px;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid var(--line);
}

.order-file-links-v70 {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.order-reference-card-v70 h3 {
  margin-bottom: 12px;
}

@media (max-width: 1180px) {
  .order-layout-v70 {
    grid-template-columns: 1fr;
  }
  .order-side-v70 {
    position: static;
  }
  .order-reference-card-v70 .order-reference-images {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

@media (max-width: 760px) {
  .order-values-grid-v70 {
    grid-template-columns: 1fr;
  }
  .order-value-row-image-v70 {
    grid-column: span 1;
  }
  .order-meta-grid-v70 {
    grid-template-columns: 1fr;
  }
  .order-meta-grid-v70 dt {
    border-bottom: 0;
    padding-bottom: 4px;
  }
  .order-meta-grid-v70 dd {
    padding-top: 4px;
  }
}

:root {
  --bg: var(--bg);
  --panel: var(--panel);
  --text: var(--text);
  --muted: #81786d;
  --line: var(--line);
  --dark: var(--dark);
  --accent: #8c6a3f;
  --accent-dark: #5d4427;
  --danger: #CC2200;
  --radius: 16px;
  --shadow: 0 18px 48px rgba(22, 19, 15, .075);
  --jit-product-card-width: 320px;
  --jit-product-main-photo-height: 390px;
  --jit-product-thumb-size: 62px;
  --jit-product-card-padding: 16px;
  --jit-card-w: 260px;
  --jit-card-main-h: 318px;
  --jit-card-thumb-h: 52px;
  --jit-card-gap: 12px;
  --jit-bg-warm: var(--bg, #FFFFFF);
  --jit-card-bg: var(--panel, #FFFFFF);
  --jit-line: var(--line, #E8E8E8);
  --jit-black: var(--dark, #111111);
  --jit-muted: var(--muted, #888888);
  --jit-page-pad: clamp(14px, 2vw, 34px);
  --jit-panel-pad: clamp(16px, 2vw, 30px);
  --jit-radius-lg: clamp(18px, 1.4vw, 26px);
  --menu-bg: #151412;
  --menu-text: #FAFAFA;
  --menu-muted: #b7afa3;
  --menu-active-bg: #2a2824;
  --menu-active-text: #ffffff;
  --button-secondary-bg: var(--field-bg);
  --button-secondary-text: #191816;
  --field-bg: var(--field-bg);
  --section-bg: var(--panel);
}

body {
  margin: 0;
  font-family: var(--site-font);
  background: var(--bg);
  color: var(--text);
  letter-spacing: 0;
}

.main {
  margin-left: 270px;
  min-height: 100vh;
  padding: 8px 34px 20px;
  background: transparent;
}

.panel {
  padding: 8px 24px 18px;
  margin-bottom: 16px;
  overflow-x: auto;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.card,.entity-card,.settings-card,.settings-row-card,.jit-product-card,.jit-factory-section,.locked-order-context,.order-section,.photo-upload-section,.form-block,.design-group,.access-card,.factory-card,.company-card {
  background: var(--panel);
}

input,select,textarea,.dropzone,.color-picker-field,.select-manual-widget,.order-value-content-v70 {
  background: var(--field-bg);
}

.order-section,.order-values-card-v70,.order-summary-card-v70 {
  background: var(--section-bg);
}

.order-form-panel-v71 .panel-header {
  margin-bottom: 14px;
}

.order-section-v71 h3 {
  font-size: 14px;
  margin: 0 0 10px;
}

.order-field-v71 input,.order-field-v71 select,.order-field-v71 textarea {
  min-height: 36px;
  padding: 8px 10px;
  font-size: 12px;
}

.order-field-v71.order-field-textarea,.order-field-v71.order-field-image,.order-field-v71.order-field-color {
  grid-column: span 2;
}

.form-actions-v71 .button {
  min-height: 38px;
  padding: 9px 18px;
}

.order-status-card-v70 form {
  display: grid;
  gap: 8px;
}

.order-status-card-v70 .button {
  width: 100%;
  min-height: 38px;
  padding: 9px 14px;
}

.order-status-card-v70 .button.primary {
  margin-top: 8px;
}

.order-view-panel-v70 {
  font-size: 12px;
}

.order-layout-v70 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 14px;
  align-items: start;
}

.order-side-v70 {
  display: grid;
  gap: 12px;
  position: sticky;
  top: 14px;
}

.order-summary-card-v70,.order-values-card-v70,.order-status-card-v70,.order-reference-card-v70,.order-chat {
  padding: 14px;
}

.order-meta-grid-v70 dt,.order-meta-grid-v70 dd {
  margin: 0;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.35);
}

.order-meta-grid-v70 dt {
  font-weight: 500;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
}

.order-meta-grid-v70 dd {
  background: var(--panel);
  font-weight: 500;
  font-size: 12px;
}

.order-values-card-v70 h3 {
  margin-bottom: 12px;
  font-size: 14px;
  margin: 0 0 8px;
}

.order-value-name-v70 {
  padding: 7px 9px;
  background: rgba(0,0,0,.035);
  font-weight: 500;
  font-size: 11px;
}

.order-value-content-v70 {
  padding: 8px 9px;
  min-height: 32px;
  overflow-wrap: anywhere;
  font-size: 12px;
}

.order-reference-card-v70 .order-reference-image-card h4 {
  margin: 0 0 8px;
  font-size: 12px;
}

@media (max-width: 1200px) {
  .order-grid-v71 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .fields-two-v71{
    grid-template-columns: 1fr;
  }
  .order-field-v71.order-field-textarea,
  .order-field-v71.order-field-image,
  .order-field-v71.order-field-color {
    grid-column: span 1;
  }
}

.order-grid-v71 {
  display: block;
  grid-template-columns: repeat(2, minmax(320px, 1fr));
  gap: 12px;
  column-count: 2;
  column-gap: 12px;
}

.order-section-v71 {
  padding: 14px;
  display: inline-block;
  width: 100%;
  vertical-align: top;
  margin: 0 0 12px;
  break-inside: avoid;
  page-break-inside: avoid;
}

.fields-two-v71 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.order-field-v71,.order-field-v71.order-field-textarea,.order-field-v71.order-field-image,.order-field-v71.order-field-color {
  grid-column: span 1;
}

.order-field-v71 {
  font-size: 12px;
  font-weight: 500;
  gap: 4px;
  align-self: start;
}

.order-field-v71 input,.order-field-v71 select {
  height: 34px;
  min-height: 34px;
}

.order-field-v71 textarea {
  min-height: 58px;
  resize: vertical;
}

.form-actions-v71 {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 12px 0 0;
  column-span: all;
  width: 100%;
  margin-top: 4px;
}

.order-main-v70 {
  display: block;
  gap: 12px;
  column-count: 2;
  column-gap: 12px;
}

.order-main-v70 > .card {
  display: inline-block;
  width: 100%;
  margin: 0 0 12px;
  break-inside: avoid;
  vertical-align: top;
}

.order-main-v70 .order-chat,.order-main-v70 .order-summary-card-v70 {
  column-span: all;
  display: block;
}

.order-values-grid-v70 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px 8px;
}

.order-value-row-image-v70 {
  grid-column: span 1;
}

.order-field-v71 select,.order-field-v71 input,.order-field-v71 textarea {
  border-radius: 8px;
}

.select-manual-widget select,.select-manual-widget input,.select-double-manual-widget-v74 select,.select-double-manual-widget-v74 input:not([type="radio"]) {
  min-height: 34px;
  height: 34px;
  padding: 7px 10px;
  font-size: 12px;
}

.current-image-preview-v76 {
  width: 168px;
  height: 126px;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: #FAFAFA;
  margin-bottom: 8px;
  display: block;
}

.current-image-preview-v76 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.compact-file-control-v76 {
  display: grid;
  gap: 4px;
  max-width: 260px;
}

.compact-file-control-v76 input[type="file"] {
  min-height: 32px;
  height: auto;
  padding: 5px 8px;
  font-size: 12px;
  background: var(--field-bg);
}

.order-chat-v76 {
  margin-top: 8px;
}

.order-log-card-v76 table {
  width: 100%;
  font-size: 12px;
}

.order-log-card-v76 th,.order-log-card-v76 td {
  padding: 8px 10px;
}

.select-manual-widget select,.select-double-manual-widget-v74 select,.order-field-v71 select {
  min-height: 32px;
  height: 32px;
}

.order-field-v71.order-field-image {
  min-width: 220px;
}

/* v3.8.45: высота селектов выровнена по инпутам (~30px). Был жёсткий 38px →
   селекты были на 7px выше инпутов, строки фильтров/форм съезжали. Теперь тот же
   бокс-модель, что у input (vertical padding 6px, без фиксированного height).
   Плотные/особые контексты (.order-field-v71, .sh-select, .f-select) держат свою
   высоту своей же специфичностью. */
.order-field-v71 select,.form select,select {
  min-height: 30px;
  line-height: 1.4;
  padding-top: 6px;
  padding-bottom: 6px;
  box-sizing: border-box;
  display: block;
}

.order-field-v71 select {
  font-size: 12px;
}

.order-side-v70 > .card,.order-status-card-v70,.order-reference-card-v70 {
  background: var(--panel);
  background-color: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  padding: 16px;
}

.order-status-card-v70 form,.order-status-card-v70 .compact-form {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

.order-status-card-v70 select,.order-status-card-v70 input,.order-status-card-v70 textarea,.order-reference-card-v70 .order-reference-image-card,.order-reference-card-v70 .image-view-button {
  background: var(--field-bg);
}

.order-reference-card-v70 .order-reference-images {
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 0;
  display: grid;
}

.order-reference-card-v70 .order-reference-image-card {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.order-reference-card-v70 .order-reference-image-card img {
  height: 130px;
  width: 100%;
  max-height: 130px;
  object-fit: cover;
  border-radius: 12px;
}

/* v3_7_1: product gallery in order view reference block */
.order-product-gallery-v80 {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.order-gallery-main-v80 {
  display: block;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: var(--field-bg);
}
.order-gallery-main-v80 img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.order-gallery-thumbs-v80 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.order-gallery-thumbs-v80 .image-view-button {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  background: var(--field-bg);
}
.order-gallery-thumbs-v80 .image-view-button img {
  width: 100%;
  height: 72px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.order-tech-img-v80 {
  margin-top: 12px;
}

.order-main-v70 .order-chat-v76,.order-main-v70 .order-log-card-v76 {
  column-span: all;
  display: block;
  width: 100%;
  max-width: none;
  background: var(--panel);
}

.order-value-row-image-v70 .order-value-image,.current-image-preview-v76 {
  background: var(--field-bg);
}

@media (max-width: 1180px) {
  .order-form-page-v78 .order-form-top-v71 {
    grid-template-columns: 1fr;
  }

  .order-form-page-v78 .order-form-top-v71 > .order-top-card-v78 + .order-top-card-v78,
  .order-form-page-v78 .order-form-top-v71 > .product-preview,
  .order-form-page-v78 .order-form-top-v71 > .technical-image-order-card-v71 {
    border-left: 0;
    border-top: 1px solid #E8E8E8;
  }
}

.panel,.page-section,.settings-section,.catalog-section,.orders-section,.factory-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.panel-header,.page-header,.section-header,.catalog-header,.orders-header,.factory-header {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.panel-header h1,.page-header h1,.section-header h1,.catalog-header h1,.orders-header h1,.factory-header h1 {
  color: var(--text);
  font-size: 16px;   /* v3.7: smaller page titles, in line with the dashboard */
  font-weight: 500;
  letter-spacing: -0.02em;
}

.panel-header .muted,.page-header .muted,.section-header .muted,.catalog-header .muted,.orders-header .muted,.factory-header .muted {
  color: var(--muted);
}

.product-card,.order-values-card-v70,.bulk-product-card-v74 {
  will-change: auto;
}

@media (max-width: 980px) {
  .order-view-page-v78 .order-top-horizontal-v79 {
    grid-template-columns: 1fr;
  }

  .order-view-page-v78 .order-top-horizontal-v79 > .order-side-card-v78 + .order-side-card-v78,
  .order-view-page-v78 .order-top-horizontal-v79 > .order-status-card-v78,
  .order-view-page-v78 .order-top-horizontal-v79 > .order-reference-card-v78 {
    border-left: 0;
    border-top: 1px solid #E8E8E8;
  }}
