/* ============ ШРИФТ ============ */

/* System font stack works offline and supports Cyrillic. */

/* ============ ПЕРЕМЕННЫЕ ============ */

:root {
  /* Бренд Топ-М (из логотипа) */
  --brand-red:    #E84E1B;
  --brand-orange: #F7931E;
  --brand-yellow: #FFC629;

  /* Фоны */
  --bg-page:      #f5f7fa;
  --bg-card:      #ffffff;
  --bg-subtle:    #f8fafc;
  --bg-hover:     #f8fafc;
  --bg-accent:    #fff4ee;
  --bg-accent-2:  #fff8f0;

  /* Границы */
  --border:       #e5e9ef;
  --border-soft:  #f0f3f7;
  --border-dash:  #e2e8f0;

  /* Текст */
  --text-strong:  #1e293b;
  --text:         #334155;
  --text-muted:   #64748b;
  --text-faint:   #94a3b8;

  /* Статусы */
  --ok-bg:   #d5f4e6; --ok-fg:   #1e9e5a;
  --bad-bg:  #fadbd8; --bad-fg:  #d94b3d;
  --warn-bg: #fef3d7; --warn-fg: #c96a15;
  --off-bg:  #e5e9ef; --off-fg:  #64748b;

  /* Радиусы */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;

  /* Тени */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-md: 0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.10);
}

/* ============ БАЗОВЫЕ НАСТРОЙКИ ============ */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  min-height: 100vh;
  background: linear-gradient(135deg, #E84E1B 0%, #F7931E 50%, #FFC629 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ============ ЛОГИН ============ */

.login-container {
  background: var(--bg-card);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  padding: 44px 40px;
  width: 100%;
  max-width: 420px;
  animation: fadeIn 0.4s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.login-header { text-align: center; margin-bottom: 28px; }
.logo { width: 96px; height: 96px; margin-bottom: 16px; object-fit: contain; }
.login-header h1 { font-size: 26px; font-weight: 700; color: var(--text-strong); margin-bottom: 4px; letter-spacing: -0.02em; }

.login-form { display: flex; flex-direction: column; gap: 18px; }
.form-group { display: flex; flex-direction: column; gap: 8px; }
.form-group label { font-size: 14px; font-weight: 600; color: var(--text-strong); }
.form-group input {
  padding: 13px 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: 15px;
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s, background .15s;
  background: var(--bg-subtle);
  color: var(--text-strong);
}
.form-group input:focus {
  outline: none;
  border-color: var(--brand-orange);
  background: var(--bg-card);
  box-shadow: 0 0 0 4px rgba(247, 147, 30, 0.12);
}
.form-group input::placeholder { color: var(--text-faint); }

.btn {
  padding: 13px 22px;
  border: none;
  border-radius: var(--r-md);
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, transform .12s, box-shadow .15s;
}

.btn-primary {
  background: var(--brand-orange);
  color: white;
}

/* На логине кнопка стоит последней в форме — там отступ сверху нужен */
.login-form .btn-primary {
  margin-top: 8px;
}
.btn-primary:hover {
  background: var(--brand-red);
  box-shadow: 0 6px 16px rgba(232, 78, 27, 0.25);
  transform: translateY(-1px);
}
.btn-primary:active { transform: translateY(0); }
.btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; box-shadow: none; }

.error-message {
  color: var(--brand-red);
  font-size: 14px;
  text-align: center;
  min-height: 20px;
  padding: 8px;
  border-radius: var(--r-sm);
  transition: all .15s;
}
.error-message:not(:empty) { background: #fff4ee; border: 1px solid #ffd0b5; }

.login-footer { text-align: center; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border-soft); }
.login-footer p { font-size: 13px; color: var(--text-faint); }

/* ============ СТРАНИЦА: ИНСТРУМЕНТЫ ============ */

body.page-tools {
  display: block;
  padding: 0;
  background: var(--bg-page);
  align-items: initial;
  justify-content: initial;
  min-height: 100vh;
}

/* ============ ТОПБАР ============ */

.topbar {
  background: var(--bg-card);
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border-soft);
  position: sticky;
  top: 0;
  z-index: 100;
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: opacity .15s;
  user-select: none;
}
.topbar-left:hover { opacity: 0.75; }
.topbar-left:active { opacity: 0.6; }
a.topbar-left {color:inherit;text-decoration:none;}

.topbar-logo { width: 38px; height: 38px; object-fit: contain; }
.topbar-title { font-size: 18px; font-weight: 700; color: var(--text-strong); letter-spacing: -0.01em; }
.topbar-right { display: flex; align-items: center; gap: 14px; }
.user-info { font-size: 14px; color: var(--text-muted); }

.btn-logout {
  padding: 8px 16px;
  background: var(--bg-card);
  border: 1.5px solid var(--brand-orange);
  color: var(--brand-orange);
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}

.main-content { max-width: 1200px; margin: 0 auto; padding: 24px; }

/* ============ НАВИГАЦИЯ В ТОПБАРЕ ============ */

.topbar-nav {
  display: flex;
  gap: 4px;
  margin-left: 24px;
  flex: 1;
}

.nav-link {
  padding: 8px 14px;
  border-radius: var(--r-sm);
  color: var(--text-muted);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.nav-link:hover { background: var(--bg-subtle); color: var(--brand-orange); }
.nav-link.active { background: var(--bg-accent); color: var(--brand-red); font-weight: 600; }

/* ============ ЗАГОЛОВОК СТРАНИЦЫ ============ */

.page-header {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.page-header h1 {
  flex: 0 0 auto;
  font-size: 26px;
  color: var(--text-strong);
  letter-spacing: -0.02em;
  font-weight: 700;
}

.page-header .group-toggle {
  flex: 0 0 auto;
  margin: 0;
}

.page-actions {
  flex: 1 1 auto;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.page-actions .btn-primary {
  padding: 11px 16px;
  font-size: 14px;
  margin-top: 0;
  line-height: 1.5;
}

.search-input {
  padding: 11px 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: 14px;
  font-family: inherit;
  background: var(--bg-card);
  color: var(--text-strong);
  min-width: 280px;
  transition: border-color .15s, box-shadow .15s;
}
.search-input:focus {
  outline: none;
  border-color: var(--brand-orange);
  box-shadow: 0 0 0 4px rgba(247, 147, 30, 0.12);
}
.search-input::placeholder { color: var(--text-faint); }

/* ============ СООБЩЕНИЯ ============ */

.message { padding: 0; margin-bottom: 16px; border-radius: var(--r-md); font-size: 14px; text-align: center; }
.message:not(:empty) { padding: 12px; }
.message.error   { background: #fff4ee; color: var(--brand-red); border: 1px solid #ffd0b5; }
.message.success { background: #eefaf1; color: #1e9e5a;         border: 1px solid #b8e6c4; }

/* ============ ТАБЛИЦА ============ */

.table-wrapper {
  background: var(--bg-card);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border-soft);
}

.tools-table { width: 100%; border-collapse: collapse; }

.tools-table th {
  background: var(--bg-subtle);
  padding: 12px 16px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--border-soft);
}

.tools-table td {
  padding: 14px 16px;
  border-top: 1px solid var(--border-soft);
  font-size: 15px;
  color: var(--text-strong);
  vertical-align: middle;
}

.tools-table tbody tr:hover { background: var(--bg-hover); cursor: pointer; }

.table-loading,
.table-empty {
  text-align: center;
  color: var(--text-faint);
  padding: 40px !important;
  font-style: italic;
}

/* ============ СТАТУСЫ ============ */

.status-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
}
.status-working     { background: var(--ok-bg);   color: var(--ok-fg); }
.status-broken      { background: var(--bad-bg);  color: var(--bad-fg); }
.status-written_off { background: var(--off-bg);  color: var(--off-fg); }

.location-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--text-muted); }

/* ============ ПЕРЕКЛЮЧАТЕЛЬ РЕЖИМОВ ============ */

.group-toggle {
  display: inline-flex;
  gap: 3px;
  background: var(--bg-subtle);
  border-radius: var(--r-md);
  padding: 3px;
  margin: 0 16px;
  border: 1px solid var(--border-soft);
}

.group-btn {
  padding: 7px 14px;
  border: none;
  background: transparent;
  border-radius: 7px;
  cursor: pointer;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--text-muted);
  font-family: inherit;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.group-btn:hover { background: #eef2f7; color: var(--text-strong); }
.group-btn.active {
  background: var(--bg-card);
  color: var(--brand-red);
  box-shadow: var(--shadow-sm);
  font-weight: 600;
}

/* ============ КАРТОЧКА ИНСТРУМЕНТА ============ */

.back-row { margin-bottom: 20px; }

.btn-back {
  padding: 9px 16px;
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: border-color .15s, color .15s;
  color: var(--text-strong);
}
.btn-back:hover { border-color: var(--brand-orange); color: var(--brand-orange); }

.tool-card {
  background: var(--bg-card);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border-soft);
  padding: 32px;
}

.tool-card-header {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 20px;
}

.tool-inv { font-size: 14px; color: var(--text-muted); margin-bottom: 4px; }
.tool-inv strong { color: var(--text-strong); font-size: 16px; }
.tool-identity-row { display: flex; align-items: center; gap: 12px; min-width: 0; flex-wrap: wrap; overflow-wrap: anywhere; }
.tool-identity-row .tool-inv { margin: 0; min-width: 0; }
.tool-main-row { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 20px; width: 100%; align-items: start; }
.tool-name { font-size: 24px; color: var(--text-strong); margin-bottom: 4px; letter-spacing: -0.02em; font-weight: 700; }
.tool-name, .tool-model { min-width: 0; overflow-wrap: anywhere; }
.tool-model { font-size: 15px; color: var(--text-muted); max-width: 100%; }

.tool-actions { margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--border-soft); }
.actions-row { display: flex; gap: 10px; flex-wrap: wrap; }

.btn-action {
  padding: 11px 18px;
  border: none;
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .12s, box-shadow .15s;
  font-family: inherit;
  background: var(--brand-orange);
  color: white;
}
.btn-action:hover {
  background: var(--brand-red);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(232, 78, 27, 0.25);
}
.btn-action:active { transform: translateY(0); }

.tool-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 32px; }
.tool-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.tool-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 28px; }
.tool-summary h2 { margin: 0; }
.tool-characteristics h2 { font-size: 18px; margin-bottom: 20px; color: var(--text-strong); }
.current-comment .tool-comment { padding-top: 0; }
.tool-comment-input { margin-bottom: 24px; }
.reveal-on-hover { opacity: 0; pointer-events: none; }
.tools-table tr:hover .reveal-on-hover, .tools-table tr:focus-within .reveal-on-hover {
  opacity: 1; pointer-events: auto;
}
@media (hover: none), (pointer: coarse) {
  .reveal-on-hover { opacity: 1; pointer-events: auto; }
}
.tool-row-action { white-space: nowrap; min-height: 44px; }
.tool-row-action:disabled { pointer-events: none; }
.tool-row-action[data-confirm-tool] { min-height: 44px; }
.tool-row-action[data-confirm-tool]:disabled { pointer-events: auto; }
.tool-row-action[data-row-tool-action] { width: 160px; min-height: 44px; }
.tool-row-action[data-row-tool-action="repair_return"] {width:auto;}
.tools-table td[data-column="actions"] { width: 192px; min-width: 192px; }
/* Компактные действия только в списках инструментов; высоту и иконки сохраняем. */
.page-tools #toolsContainer .tool-row-action {width:auto;min-width:44px;padding-left:10px;padding-right:10px;}
.page-tools #toolsContainer .tools-table {table-layout:fixed;}
.page-tools #toolsContainer :is(th,td) {white-space:nowrap;}
.page-tools #toolsContainer td[data-column="actions"] {width:auto;min-width:0;}
.page-tools #toolsContainer :is([data-column="name"],[data-column="model"],[data-column="location"],[data-column="holder"]) {white-space:normal;overflow-wrap:anywhere;}
.page-tools #toolsContainer :is(.table-wrapper,.object-group-body) {overflow-x:auto;}
/* Невидимая копия измеряет заголовки и все кнопки, включая скрытые до наведения. */
.page-tools #toolsContainer .tool-column-measure {position:fixed;visibility:hidden;pointer-events:none;width:max-content!important;min-width:0!important;table-layout:auto;}
.page-tools #toolsContainer .tool-column-measure :is(th,td) {width:auto;min-width:0;}
.page-tools th[data-sort-column],.page-users th[data-sort-column] {padding:0;}
.page-tools .column-sort,.page-users .column-sort {display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;min-height:44px;padding:12px 16px;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;white-space:inherit;cursor:pointer;}
.page-tools .column-sort>span:first-child,.page-users .column-sort>span:first-child {min-width:0;overflow-wrap:anywhere;}
.page-tools .sort-direction,.page-users .sort-direction {flex:0 0 10px;width:10px;}
.page-tools th[aria-sort="ascending"],.page-tools th[aria-sort="descending"],.page-users th[aria-sort="ascending"],.page-users th[aria-sort="descending"] {color:var(--brand-orange);}
.page-tools #groupToggle .group-btn[aria-pressed="true"] {background:var(--brand-orange);color:white;}
/* Обновление строки может сбросить :hover. Занятая кнопка остаётся видимой
   и принимает указатель, чтобы повторный клик не попал в ячейку под ней. */
.tool-row-action[data-row-tool-action]:disabled { opacity: .55; pointer-events: auto; }
button.modal-item { width: 100%; font: inherit; text-align: left; color: inherit; background: transparent; }
button.modal-item.selected { background: var(--bg-accent); }
button.modal-item .modal-item-name, button.modal-item .modal-item-role { display: block; }
.tool-field.full-width { grid-column: 1 / -1; }
.field-label {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.field-value { font-size: 15px; color: var(--text-strong); font-weight: 500; }

.equipment-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.receipt-status { display: inline-flex; align-items: center; gap: 6px; vertical-align: middle; }
.receipt-status .receipt-icon { width: 22px; height: 22px; stroke-width: 2.4; background: none; border: none; }
.receipt-confirmed .receipt-icon { color: #17803d; }
.receipt-pending .receipt-icon { color: #c62828; }
.tool-form-fields { display: flex; flex-direction: column; gap: 12px; }
.tool-form-fields .modal-search { margin-bottom: 0; }
.tool-form-fields [hidden] { display: none; }
.tool-form-fields textarea { min-height: 90px; resize: vertical; }
.tool-comments { padding-top: 24px; border-top: 1px solid var(--border-soft); margin-bottom: 24px; }
.tool-comments h2 { font-size: 18px; color: var(--text-strong); margin-bottom: 16px; }
.tool-comment { padding: 12px 0; overflow-wrap: anywhere; }
.tool-comment + .tool-comment { border-top: 1px solid var(--border-soft); }
.tool-comment-form { flex-direction: column; gap: 10px; margin-top: 20px; }
.tool-comment-form textarea { resize: vertical; min-height: 90px; margin: 0; }
.employee-history { margin-top: 32px; }
.history-type-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.history-type-filters [aria-pressed="true"] { background: var(--brand-orange); color: white; border-color: var(--brand-orange); }
.history-limitations { color: var(--text-muted); font-size: 13px; margin-bottom: 16px; overflow-wrap: anywhere; }
.history-comment { white-space: pre-wrap; overflow-wrap: anywhere; }
.history-item, .history-tool, .history-from-to, .history-meta { min-width: 0; overflow-wrap: anywhere; }
.history-more { margin-top: 12px; }
[data-event-more][hidden], .employee-history[hidden], [data-event-limitations][hidden] { display: none; }

/* ============ ИСТОРИЯ ============ */

.tool-history { padding-top: 24px; border-top: 1px solid var(--border-soft); }
.tool-history h2 { font-size: 18px; color: var(--text-strong); margin-bottom: 16px; font-weight: 700; letter-spacing: -0.01em; }
.history-list { display: flex; flex-direction: column; gap: 10px; }

.history-item {
  padding: 14px 16px;
  background: var(--bg-subtle);
  border-left: 3px solid var(--brand-orange);
  border-radius: var(--r-sm);
}
.history-action { font-weight: 600; color: var(--text-strong); margin-bottom: 6px; font-size: 15px; }

.history-from-to {
  font-size: 14px;
  color: var(--text-strong);
  font-weight: 600;
  margin: 6px 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.history-target { font-size: 14px; color: var(--brand-orange); font-weight: 600; margin: 4px 0; }

.history-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--border-dash);
  font-size: 13px;
  color: var(--text-muted);
}

.history-performer { display: flex; align-items: center; gap: 4px; }
.history-role { font-size: 12px; color: var(--text-faint); font-weight: 400; }
.history-date { font-size: 13px; color: var(--text-faint); }

.history-comment {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--border-dash);
  font-size: 13px;
  color: var(--text-muted);
  font-style: italic;
}
.history-empty { text-align: center; color: var(--text-faint); padding: 20px; font-style: italic; }

/* ============ ФИЛЬТРЫ ИСТОРИИ ============ */

.history-filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: var(--bg-subtle);
  border-radius: var(--r-md);
  border: 1px solid var(--border-soft);
}

.filter-group { display: flex; flex-direction: column; gap: 4px; }
.filter-group label {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.filter-input {
  padding: 8px 12px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 14px;
  font-family: inherit;
  background: var(--bg-card);
  color: var(--text-strong);
}
.filter-input:focus { outline: none; border-color: var(--brand-orange); }

.btn-filter {
  padding: 9px 16px;
  background: var(--brand-orange);
  color: white;
  border: none;
  border-radius: var(--r-sm);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
  font-family: inherit;
}
.btn-filter:hover { background: var(--brand-red); }

.btn-filter-clear {
  padding: 9px 16px;
  background: var(--bg-card);
  color: var(--text-muted);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s, color .15s;
  font-family: inherit;
}
.btn-filter-clear:hover { border-color: var(--text-faint); color: var(--text-strong); }

.btn-show-all {
  padding: 10px 22px;
  background: var(--bg-card);
  color: var(--brand-orange);
  border: 1.5px solid var(--brand-orange);
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s;
  font-family: inherit;
}
.btn-show-all:hover { background: var(--brand-orange); color: white; }

/* ============ МОДАЛЬНЫЕ ОКНА ============ */

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
  animation: fadeIn 0.18s ease;
  backdrop-filter: blur(2px);
}

.modal {
  background: var(--bg-card);
  border-radius: var(--r-lg);
  width: 100%;
  max-width: 500px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
  animation: slideUp 0.22s ease;
}

@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 22px;
  border-bottom: 1px solid var(--border-soft);
}
.modal-header h2 { font-size: 17px; color: var(--text-strong); font-weight: 700; }

.modal-close {
  background: none;
  border: none;
  font-size: 20px;
  color: var(--text-faint);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--r-sm);
  transition: background .15s, color .15s;
}
.modal-close:hover { background: var(--bg-subtle); color: var(--text-strong); }

.modal-body { padding: 16px 22px; overflow-y: auto; flex: 1; }

.modal-search {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: 14px;
  font-family: inherit;
  margin-bottom: 12px;
}
.modal-search:focus { outline: none; border-color: var(--brand-orange); }

.modal-list { display: flex; flex-direction: column; gap: 6px; }

.modal-item {
  padding: 13px 15px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  cursor: pointer;
  transition: border-color .15s, background .15s;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.modal-item:hover { border-color: var(--brand-orange); background: var(--bg-accent-2); }
.modal-item.selected { border-color: var(--brand-orange); background: var(--bg-accent); box-shadow: 0 0 0 3px rgba(247, 147, 30, 0.15); }

.modal-item-name { font-size: 15px; font-weight: 600; color: var(--text-strong); }
.modal-item-role { font-size: 13px; color: var(--text-muted); }

.modal-loading, .modal-empty { text-align: center; color: var(--text-faint); padding: 30px; font-style: italic; }

.modal-footer {
  display: flex;
  gap: 10px;
  padding: 16px 22px;
  border-top: 1px solid var(--border-soft);
  justify-content: flex-end;
}

.btn-cancel {
  padding: 11px 20px;
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  color: var(--text-strong);
  font-family: inherit;
  transition: border-color .15s;
}
.btn-cancel:hover { border-color: var(--text-faint); }

#modalConfirm:disabled,
#writeOffModalConfirm:disabled,
#moveModalConfirm:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--brand-orange) !important;
  color: white !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ============ ЧЕКБОКСЫ ОБЪЕКТОВ ============ */

/* Секции общей формы сотрудника на users и tools?holder_id.
   Видимость задаёт user-form.js по ID; этот класс отвечает только за оформление. */
#userModal .user-editor-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #f0f3f7; }
#userModal .user-editor-section > p { font-size: 12px; color: #7f8c8d; margin-top: 8px; }

.checkbox-item { padding: 8px 0; }
.checkbox-item label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text-strong);
}
.checkbox-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--brand-orange);
}

/* ============ ГРУППЫ ПО ОБЪЕКТАМ ============ */

.object-group {
  background: var(--bg-card);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border-soft);
  margin-bottom: 12px;
  overflow: hidden;
}

.object-group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  cursor: pointer;
  user-select: none;
  transition: background .15s;
  border-bottom: 1px solid var(--border-soft);
}
.object-group-header:hover { background: var(--bg-subtle); }

.object-group-title { font-size: 15px; font-weight: 600; color: var(--text-strong); flex: 1; }
.object-group-arrow {
  font-size: 11px;
  color: var(--brand-orange);
  transition: transform .2s;
  display: inline-block;
}
.object-group.collapsed .object-group-arrow { transform: rotate(-90deg); }
.object-group.collapsed .object-group-body { display: none; }
.object-group-body .tools-table { width: 100%; }

.objects-empty-divider {
  text-align: center;
  font-size: 12px;
  color: var(--text-faint);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 24px 0 12px;
  padding-top: 16px;
  border-top: 1px dashed var(--border-dash);
}

/* ============ ССЫЛКИ ДЕРЖАТЕЛЬ / ОБЪЕКТ ============ */

.holder-link,
.object-link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed var(--text-faint);
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.holder-link:hover,
.object-link:hover {
  border-bottom-color: var(--brand-orange);
  color: var(--brand-orange);
}

/* ============ СЕКЦИИ ОБЪЕКТОВ ============ */

.section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  margin-top: 24px;
}
.section-header h2 { font-size: 16px; color: var(--text-strong); font-weight: 700; margin: 0; letter-spacing: -0.01em; }

.section-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 10px;
  background: var(--border-soft);
  color: var(--text-muted);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  min-width: 24px;
  height: 22px;
}

/* ============ АДАПТИВ ============ */

@media (max-width: 768px) {
  .topbar { padding: 10px 14px; flex-wrap: wrap; gap: 8px; }
  .topbar-title { font-size: 15px; }
  .topbar-logo { width: 32px; height: 32px; }
  .user-info { display: none; }

  .topbar-nav {
    margin-left: 0;
    order: 3;
    width: 100%;
    overflow-x: auto;
    padding-top: 6px;
    -webkit-overflow-scrolling: touch;
  }
  .nav-link { padding: 6px 10px; font-size: 13px; }

  .main-content { padding: 16px; }
  .page-header { flex-direction: column; align-items: stretch; gap: 10px; }
  .page-header h1 { font-size: 22px; }
  .search-input { min-width: 100%; }

  .group-toggle { margin: 0; width: 100%; justify-content: space-between; }
  .group-btn { flex: 1; text-align: center; padding: 8px 6px; font-size: 12.5px; }

  /* Keep employee names visible; wide tables scroll within their cards. */

  .tools-table th, .tools-table td { padding: 11px 12px; font-size: 14px; }
}

@media (max-width: 600px) {
  .tool-fields { grid-template-columns: 1fr; }
  .tool-main-row, .tool-summary { grid-template-columns: minmax(0, 1fr); }
  .tool-card { padding: 20px; }
  .tool-name { font-size: 20px; }

  .history-filters { flex-direction: column; align-items: stretch; }
  .filter-group { width: 100%; }
  .filter-input { width: 100%; }
}

@media (max-width: 480px) {
  .login-container { padding: 32px 24px; border-radius: var(--r-md); }
  .logo { width: 72px; height: 72px; }
  .login-header h1 { font-size: 22px; }
  .form-group input { padding: 12px 14px; font-size: 16px; }
}
/* ============ REFINED INTERFACE ============ */
:root {
  --brand-orange: #c8640c;
  --bg-page: #f4f6f9;
  --bg-accent: #fff1e4;
  --border: #dce2e9;
  --r-md: 10px;
  --r-lg: 16px;
  --shadow-md: 0 2px 8px rgba(24,39,58,.035);
}
body {font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, sans-serif;}
button,input,select,textarea {font-family: inherit;}
button {line-height: 1.4;}
.icon {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;flex-shrink:0;pointer-events:none;}
.btn,.btn-action,.btn-logout,.btn-back,.btn-filter,.btn-filter-clear,.btn-show-all,.group-btn,.nav-link {display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;}
.btn,.btn-action,.btn-back,.btn-filter,.btn-filter-clear,.btn-show-all {min-height:42px;border-radius:10px;}
.btn-primary,.btn-action,.btn-filter {background:var(--brand-orange);box-shadow:0 1px 2px rgba(99,48,8,.12);}
.btn-primary:hover,.btn-action:hover,.btn-filter:hover {background:#ae5308;transform:none;box-shadow:0 2px 6px rgba(99,48,8,.15);}
button:disabled {opacity:.55;cursor:not-allowed;}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:3px solid #e99b50;outline-offset:3px;}
.btn-logout {border:1px solid var(--border);color:var(--text-muted);background:white;min-height:38px;}
.btn-logout:hover,.btn-logout:focus-visible {color:white;background:var(--brand-orange);border-color:var(--brand-orange);}
.topbar {min-height:72px;border-bottom:1px solid var(--border);gap:16px;}
.topbar-nav {margin-left:20px;gap:6px;}
.nav-link {min-height:40px;border-radius:10px;}
.nav-link.active {color:#a94f08;background:var(--bg-accent);}
.nav-link:hover {color:var(--text-strong);}
.main-content {padding-top:32px;padding-bottom:48px;}
.page-header {margin-bottom:24px;gap:16px;}
.page-header h1 {font-size:28px;line-height:1.25;}
.employee-title {display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;}
.employee-title h1 {min-width:0;flex-shrink:1;white-space:normal;overflow-wrap:anywhere;}
.employee-title [hidden] {display:none;}
.employee-edit {width:32px;height:32px;flex:0 0 auto;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;}
.employee-edit .icon {width:18px;height:18px;}
.employee-edit:hover,.employee-edit:focus-visible {background:var(--bg-accent);color:var(--text-strong);}
@media (hover: none), (pointer: coarse) {.employee-edit {width:44px;height:44px;}}
.search-input {height:42px;padding:10px 14px;border-width:1px;}
.page-actions .btn-primary {min-height:42px;padding:10px 16px;}
.section-header {margin-top:28px;margin-bottom:12px;}
.section-header h2 {font-size:15px;font-weight:600;display:flex;align-items:center;gap:9px;}
.status-dot {display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:50%;vertical-align:middle;margin-right:3px;}
.dot-ok {background:#26906a;}.dot-warn {background:#c18526;}.dot-bad {background:#c34949;}.dot-off {background:#8893a3;}
.section-count {background:#e9edf3;color:#52647c;font-variant-numeric:tabular-nums;}
.object-group,.table-wrapper {border-color:#e3e8ef;}
.object-group-header {padding:16px 18px;gap:12px;}
.object-group-title {font-weight:600;font-size:14px;line-height:1.6;}
.object-group-title > .icon {margin-right:7px;color:#7c899b;}
.object-group-arrow {color:#8793a4;line-height:1;}
.tools-table th {font-size:11px;letter-spacing:.055em;padding:12px 16px;}
.tools-table td {font-size:14px;padding:13px 16px;line-height:1.5;font-variant-numeric:tabular-nums;}
.tools-table td strong {font-weight:600;}
.tools-table tbody tr:hover {background:#f8fafc;}
.tools-table tbody tr.tool-held-by-fired,
.tools-table tbody tr.tool-held-by-fired:hover,
.tools-table tbody tr.tool-held-by-fired:focus-within {background:#fff1f1;}
.tool-holder-warning {display:block;max-width:240px;margin-top:4px;white-space:normal;overflow-wrap:anywhere;font-size:12px;color:#8a3535;}
.btn-row-edit {width:34px;height:34px;border:1px solid transparent;border-radius:8px;background:transparent;color:#78869a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.btn-row-edit:hover {background:#fff1e4;color:#a94f08;border-color:#f0d8c1;}
.object-status-icon {width:42px;height:42px;padding:8px;}
.object-status-icon .icon {width:24px;height:24px;}
#objectModal .place-modal-actions, #locationModal .place-modal-actions {margin-top:16px;padding-top:16px;border-top:1px solid #f0f3f7;}
#objectModal .place-action-buttons, #locationModal .place-action-buttons {display:flex;align-items:center;gap:10px;}
#objectModal .place-modal-actions p, #locationModal .place-modal-actions p {font-size:12px;color:#7f8c8d;margin-top:8px;}
@media (hover: none), (pointer: coarse) {
  .btn-row-edit {width:44px;height:44px;}
}
.modal-close {width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;}
.modal {border:1px solid var(--border);border-radius:18px;max-height:90vh;}
.modal-header,.modal-footer {padding:18px 24px;}
.modal-body {padding:20px 24px;}
.modal-search,.form-group input,.filter-input {border-width:1px;}
.login-container {border:1px solid rgba(255,255,255,.7);border-radius:20px;}
body:not(.page-tools) {background:radial-gradient(ellipse at 20% 0%,#ffead6,transparent 60%),#f4f6f9;}
@media(max-width:1000px) {.topbar{flex-wrap:wrap;}.topbar-nav{order:3;flex-basis:100%;margin-left:0;overflow-x:auto;}.topbar-right{margin-left:auto;}}
@media(max-width:768px) {
  .topbar{gap:8px;min-height:64px;padding:12px 16px;}
  .main-content{padding:22px 16px 32px;}.page-header h1{font-size:24px;}
  .topbar-nav{padding-top:4px;}.nav-link{min-height:40px;}
  .page-actions{justify-content:stretch;}.page-actions .search-input{min-width:0;width:100%;flex:1 1 100%;}
  .page-actions>.btn{width:100%;}
  .table-wrapper,.object-group-body{overflow-x:auto;}
  .tools-table{min-width:640px;}
  .object-group-title{font-size:13px;}.group-btn{gap:5px;}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* Только панель конкретного сотрудника: tools.html?holder_id=N. */
.page-locations #locationsContent[hidden] {display:none;}
.page-locations .location-edit:hover,.page-locations .location-edit:focus-visible {color:var(--brand-orange);background:var(--bg-accent);border-color:var(--brand-orange);}
.page-locations .tools-table td {overflow-wrap:anywhere;}
.page-locations .location-name {font-weight:700;color:inherit;text-decoration:none;}
.page-locations .location-row:focus-within {background:var(--bg-hover);}
.page-locations .location-name:focus-visible {outline:2px solid var(--brand-orange);outline-offset:4px;}
.page-users .user-issue-cell {width:104px;min-width:104px;white-space:nowrap;}
.page-users .user-issue-button {min-height:42px;padding:8px 12px;}
.place-move-cell {width:150px;min-width:150px;white-space:nowrap;}
.page-tools .tools-bulk-controls {display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.page-tools .tools-bulk-controls[hidden], .page-tools .tools-bulk-controls [hidden] {display:none;}
.page-tools .tools-bulk-selected .tool-name-text {color:#a94f08;}
.page-tools .tools-bulk-selecting tbody {user-select:none;}
/* Сохраняем размер ячейки; область вокруг флажка переключается кликом по строке. */
.page-tools [data-bulk-select] {width:22px;height:22px;vertical-align:middle;transform:scale(.8181818182);cursor:pointer;}
.page-tools tr[data-tool-id]:focus-visible {outline:2px solid var(--brand-orange);outline-offset:-2px;}
.place-move-button {min-height:42px;padding:8px 12px;}
.bulk-move-item {justify-content:flex-start;gap:12px;white-space:normal;overflow-wrap:anywhere;}
.bulk-move-item input {flex:none;width:20px;height:20px;}
.bulk-move-item span {min-width:0;}
#bulkMoveTitle {min-width:0;overflow-wrap:anywhere;}
.page-locations #addLocationBtn[hidden] {display:none;}
.mobile-places-switch,.mobile-locations-search,.location-mobile-address {display:none;}
@media (max-width:768px) {
  .places-account [data-locations-nav] {display:none;}
  .places-account .topbar-nav {flex-wrap:wrap;overflow-x:visible;}
  .places-account:is(.page-objects,.page-locations) .main-content {padding:12px;min-width:0;}
  .mobile-places-switch {display:flex;width:100%;max-width:100%;gap:2px;padding:2px;margin-bottom:10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--bg-card);}
  .mobile-places-switch a {display:flex;align-items:center;justify-content:center;flex:1 1 0;min-height:40px;min-width:44px;padding:2px 10px;border-radius:7px;font-size:12px;color:var(--text-muted);text-decoration:none;}
  .mobile-places-switch a[aria-current="page"] {background:var(--bg-accent);color:var(--brand-orange);font-weight:700;}
  .mobile-places-switch a:focus-visible {outline:2px solid var(--brand-orange);outline-offset:1px;}
  .places-account:is(.page-objects,.page-locations) .page-header {margin-bottom:12px;gap:0;}
  .places-account:is(.page-objects,.page-locations) .page-header h1 {display:none;}
  .places-account:is(.page-objects,.page-locations) .page-actions {display:flex;flex-wrap:nowrap;width:100%;gap:8px;}
  .places-account:is(.page-objects,.page-locations) .page-actions .search-input {min-width:0;flex:1;width:0;min-height:44px;}
  .places-account:is(.page-objects,.page-locations) .page-actions .btn {width:auto;flex:none;min-height:44px;padding:8px 12px;}
  .mobile-locations-search {display:block;}
  .places-account.page-objects .object-manager-cell {display:none;}
  .places-account:is(.page-objects,.page-locations) .tools-table {table-layout:fixed;width:100%;min-width:0;}
  .places-account:is(.page-objects,.page-locations) .tools-table :is(th,td) {padding:6px 4px;white-space:normal;overflow-wrap:anywhere;}
  .places-account:is(.page-objects,.page-locations) .tools-table th {font-size:9px;letter-spacing:0;}
  .places-account:is(.page-objects,.page-locations) .tools-table td {font-size:12px;}
  .places-account.page-objects .tools-table th:first-child {width:26px!important;}
  .places-account.page-objects .object-list-edit-cell,.places-account.page-locations .location-edit-cell {width:44px!important;}
  .places-account:is(.page-objects,.page-locations) :is(.object-count-cell,.location-count-cell) {width:84px;}
  .places-account:is(.page-objects,.page-locations) .place-move-cell {width:96px;min-width:0;}
  .places-account:is(.page-objects,.page-locations) .place-move-button {min-height:44px;max-width:100%;padding:6px;font-size:11px;}
  .places-account.page-locations .location-address-cell,.places-account.page-locations.locations-readonly .location-edit-cell {display:none;}
}
.storage-group > .object-group-header {width:100%;border:0;text-align:left;font:inherit;background:var(--bg-card);}

/* Страница обмена Excel использует общие топбар, кнопки, цвета и шрифты. */
@media(max-width:1250px) {
  .topbar-with-exchange {flex-wrap:wrap;}
  .topbar-with-exchange .topbar-nav {order:3;flex-basis:100%;margin-left:0;overflow-x:auto;}
  .topbar-with-exchange .topbar-right {margin-left:auto;}
}
.exchange-card {background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px;}
.exchange-card h2 {margin:0 0 12px;font-size:20px;}
.exchange-card p {line-height:1.6;overflow-wrap:anywhere;}
.exchange-selection {background:var(--bg-subtle);border:1px solid var(--border);border-radius:10px;padding:16px;margin:20px 0;}
#selectionDescription {white-space:pre-wrap;}
.exchange-modes {border:0;padding:0;margin:20px 0;min-width:0;}
.exchange-modes legend {font-weight:600;margin-bottom:12px;}
.exchange-modes label {display:flex;align-items:flex-start;gap:12px;padding:14px 0;cursor:pointer;}
.exchange-modes input {flex:none;margin-top:5px;accent-color:var(--brand-orange);}
.exchange-modes label > span {min-width:0;}
.exchange-modes label span span {display:block;line-height:1.6;margin-top:4px;color:var(--text-muted);overflow-wrap:anywhere;}
.exchange-note {color:var(--text-muted);font-size:14px;margin-top:20px;}
@media(max-width:600px) {.exchange-card {padding:18px;}#exportBtn {width:100%;min-height:44px;}}
.import-help {flex:none;width:44px;height:44px;padding:0;border-radius:50%;font-size:22px;}
.page-data-exchange .page-header {display:flex;flex-direction:row;align-items:center;justify-content:space-between;}
.page-data-exchange [hidden] {display:none!important;}
.import-rules {width:min(680px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:24px;background:var(--bg-card);color:var(--text);box-sizing:border-box;}
.import-rules::backdrop {background:rgba(0,0,0,.45);}
.import-rules p {line-height:1.6;overflow-wrap:anywhere;}
.import-rules-header {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.import-rules-header h2 {margin:0;font-size:22px;}
.import-rules-header button {min-width:44px;min-height:44px;flex:none;}
.import-file-label {display:block;margin:20px 0 8px;font-weight:600;}
#importFile {display:block;max-width:100%;margin-bottom:16px;min-height:44px;box-sizing:border-box;}
.import-preview-row {border:1px solid var(--border);border-radius:10px;padding:16px;margin:12px 0;min-width:0;}
.import-preview-row h4 {margin:0 0 8px;overflow-wrap:anywhere;line-height:1.5;}
.import-preview-row p {margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;}
.import-row-error {border-color:#c33;background:var(--bg-subtle);}
#confirmImportBtn,#morePreviewBtn {margin-top:12px;}
@media(max-width:600px) {#templateBtn,#checkImportBtn,#confirmImportBtn,#morePreviewBtn {width:100%;min-height:44px;}.import-rules {padding:18px;}.import-preview-row {padding:12px;}.page-data-exchange .page-header {gap:12px;}.page-data-exchange .page-header h1 {min-width:0;}}
.storage-group > .object-group-header:hover {background:var(--bg-subtle);}
.storage-group .object-group-arrow {flex-shrink:0;}
.storage-group .object-group-title {min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;}
.storage-group-label {min-width:0;max-width:100%;overflow-wrap:anywhere;}
.storage-group-count {white-space:nowrap;flex-shrink:0;}
.page-header.employee-page-header {gap:8px;}
.employee-page-header .employee-title {flex:1 1 auto;}
.page-header.employee-page-header h1 {font-size:26px;}
.employee-page-header .page-actions {flex:0 0 auto;min-width:0;max-width:100%;gap:8px;}
.employee-page-header .page-actions .search-input {width:176px;min-width:0;max-width:100%;flex:0 1 176px;}
.employee-page-header .page-actions > .btn {width:auto;max-width:100%;flex:0 0 auto;}
@media(max-width:768px) {
  .page-header.employee-page-header h1 {font-size:24px;}
  .employee-page-header .page-actions {justify-content:flex-start;}
}
.repair-reason {
  width: 100%;
  min-height: 100px;
  resize: vertical;
  font-family: inherit;
  box-sizing: border-box;
}

.btn-tool-delete {display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-muted);cursor:pointer;}
.btn-tool-delete:hover {color:var(--danger);border-color:var(--danger);}
.btn-tool-delete:focus-visible {outline:2px solid var(--brand-orange);outline-offset:2px;}
#toolCard #actionsRow {align-items:center;}
#toolCard #actionsRow > .btn-tool-delete {width:44px;padding:0;background:transparent;border-color:transparent;color:var(--brand-orange);}
#toolCard #actionsRow > .btn-tool-delete:hover {color:#ae5308;}
#toolCard #actionsRow > .btn-tool-delete .icon {width:44px;height:44px;}
.archive-divider {border:0;border-top:1px solid var(--border);margin:24px 0 16px;}
@media(max-width:600px) {.btn-tool-delete {width:44px;height:44px;}}

/* Hide localized pages until the existing session language is resolved. */
html[data-i18n-pending] body { visibility: hidden; }

.receipt-dialog { max-width: min(460px, calc(100vw - 24px)); }
.receipt-dialog .modal-footer { flex-wrap: wrap; }
/* Compact worker/master tools; desktop keeps all columns. */
.tool-mobile-model, .tool-mobile-new, .tool-mobile-detail {display:none;}
.page-tools.tools-worker .page-header.tools-list-header .employee-title {display:none;}
.master-mobile-controls {display:none;}
.page-tools.tools-compact #toolsContainer .tool-row-action[data-confirm-tool] {width:44px;min-width:44px;height:44px;padding:10px;justify-content:center;}
@media (max-width:768px) {
  .page-tools.tools-compact .main-content {padding-top:12px;}
  .page-tools.tools-compact .page-header {gap:0;margin-bottom:12px;}
}
@media (max-width:768px) {
  .page-tools.tools-compact #toolsContainer .tools-table {min-width:0;width:100%;}
  .page-tools.tools-compact #toolsContainer :is(.table-wrapper,.object-group-body) {overflow:visible;}
  .page-tools.tools-compact #toolsContainer :is(th,td) {padding:6px 4px;font-size:13px;}
  .page-tools.tools-compact #toolsContainer th {font-size:10px;letter-spacing:0;text-transform:none;}
  .page-tools.tools-compact #toolsContainer th[data-sort-column] {padding:0;}
  .page-tools.tools-compact #toolsContainer :is([data-column="model"],[data-column="status"]) {display:none;}
  .page-tools.tools-compact #toolsContainer [data-column="inv"] {width:76px;white-space:nowrap;overflow-wrap:normal;}
  .page-tools.tools-compact #toolsContainer [data-column="receipt"] {width:56px;text-align:right;padding-right:8px;white-space:normal;}
  .page-tools.tools-compact #toolsContainer [data-column="receipt"] .tool-column-label {
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;
  }
  .page-tools.tools-compact .column-sort {padding:6px 4px;gap:1px;letter-spacing:0;}
  .page-tools.tools-compact :is(th[data-column="name"],th[data-column="inv"]) .column-sort {white-space:nowrap;}
  .page-tools.tools-compact .column-sort>span:first-child {overflow-wrap:normal;}
  .page-tools.tools-compact .sort-direction {flex-basis:8px;width:8px;}
  .page-tools.tools-compact .tool-mobile-model {display:block;margin-top:3px;font-size:12px;line-height:1.4;color:#52647c;overflow-wrap:anywhere;}
  .page-tools.tools-compact .tool-desktop-new {display:none;}
  .page-tools.tools-compact .tool-new-label {display:table;margin:3px 0 0;white-space:nowrap;}
  .page-tools.tools-compact .tool-mobile-new {display:inline;}
  .page-tools.tools-compact [data-confirm-tool] .icon {width:20px;height:20px;flex-shrink:0;}
}
@media (max-width:768px) and (max-height:500px) and (orientation:landscape) {
  .page-tools.tools-compact .topbar {padding:3px 12px;min-height:50px;gap:8px;flex-wrap:nowrap;}
  .page-tools.tools-compact .topbar-left {gap:6px;flex-shrink:0;}
  .page-tools.tools-compact .topbar-logo {width:28px;height:28px;}
  .page-tools.tools-compact .topbar-title {font-size:14px;}
  .page-tools.tools-compact .topbar-nav {order:0;flex:1 1 auto;width:auto;min-width:0;margin:0;padding:0;overflow:visible;}
  .page-tools.tools-compact .nav-link {display:inline-flex;align-items:center;min-height:44px;padding:4px 8px;font-size:12px;}
  .page-tools.tools-compact .topbar-right {gap:4px;margin-left:0;flex-shrink:0;}
  .page-tools.tools-compact .btn-logout {min-height:44px;padding:6px 10px;font-size:12px;}
  .page-tools.tools-compact .main-content {padding:8px 12px 20px;}
  .page-tools.tools-compact .page-header {flex-direction:row;align-items:center;flex-wrap:nowrap;gap:12px;margin-bottom:8px;}
  .page-tools.tools-compact .page-header h1 {font-size:21px;}
  .page-tools.tools-compact .page-actions {min-width:0;}
  .page-tools.tools-compact .page-actions .search-input {height:36px;padding:6px 10px;}
  .page-tools.tools-compact #toolsContainer :is(th,td) {padding-top:4px;padding-bottom:4px;}
  .page-tools.tools-compact .column-sort {padding-top:4px;padding-bottom:4px;}
}

@media (min-width:769px) {
  .page-tools.tools-master #toolsContainer td {padding-left:8px;padding-right:8px;font-size:13px;}
  .page-tools.tools-master #toolsContainer th:not([data-sort-column]) {padding-left:8px;padding-right:8px;}
  .page-tools.tools-master .column-sort {padding-left:8px;padding-right:8px;}
  .page-tools.tools-master th[data-column="name"] .column-sort>span:first-child {white-space:nowrap;overflow-wrap:normal;}
}
@media (max-width:768px) {
  .page-tools.tools-staff-mobile .page-header.tools-list-header .employee-title {display:none;}
  .page-tools.tools-staff-mobile #groupToggle {display:none!important;}
  .page-tools.tools-staff-mobile .master-mobile-controls {display:flex;}
  .page-tools.tools-staff-mobile [data-master-free-first] {min-height:44px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text-muted);-webkit-tap-highlight-color:transparent;}
  .page-tools.tools-staff-mobile [data-master-free-first][aria-pressed="true"] {background:var(--brand-orange);color:#fff;border-color:var(--brand-orange);}
  .page-tools.tools-staff-mobile .object-group-header {width:100%;text-align:left;border:0;border-bottom:1px solid var(--border-soft);background:transparent;font-family:inherit;}
  .page-tools.tools-staff-mobile #toolsContainer :is([data-column="location"],[data-column="holder"]) {display:none;}
  .page-tools.tools-staff-mobile .tool-mobile-detail {display:block;margin-top:3px;font-size:11px;line-height:1.4;color:#52647c;overflow-wrap:anywhere;}
  .page-tools.tools-staff-mobile .tool-mobile-detail :is(.holder-link,.object-link) {display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere;}
  .page-tools.tools-staff-mobile #toolsContainer [data-column="receipt"] {width:28px;padding-left:2px;padding-right:2px;}
  .page-tools.tools-staff-mobile #toolsContainer [data-column="actions"] {width:76px;padding-left:2px;padding-right:4px;white-space:normal;}
  .page-tools.tools-staff-mobile th[data-column="actions"] .column-sort {white-space:nowrap;}
  .page-tools.tools-staff-mobile #toolsContainer [data-column="selection"] {width:44px;padding:0;}
  .page-tools.tools-staff-mobile #toolsContainer .tool-row-action {width:68px;min-width:44px;min-height:44px;padding:6px 3px;font-size:11px;white-space:normal;opacity:1;visibility:visible;}
  .page-tools.tools-staff-mobile #toolsContainer .tool-row-action:not(:disabled) {pointer-events:auto;}
  .page-tools.tools-staff-mobile [data-column="actions"] .tool-row-action .icon {display:none;}
  .page-tools.tools-staff-mobile .page-header {gap:8px;}
}
.user-mobile-name {display:none;}
.user-mobile-login,[data-admin-object-actions] {display:none;}
.object-card-header {flex-wrap:wrap;min-width:0;}
.object-card-header h1 {max-width:100%;overflow-wrap:anywhere;}
#objectCardActions {min-height:44px;}
@media (max-width:768px) {
  .page-users .user-object-address {display:none;}
  .page-objects .object-address-cell {display:none;}
}
@media (max-width:768px) {
  .page-users.users-staff-mobile .page-header h1 {display:none;}
  .page-users.users-staff-mobile .main-content {padding-top:12px;}
  .page-users.users-staff-mobile .page-header {gap:0;margin-bottom:12px;}
  .page-users.users-staff-mobile .user-full-name,
  .page-users.users-staff-mobile .user-phone-cell {display:none;}
  .page-users.users-master .user-edit-cell {display:none;}
  .page-users.users-staff-mobile .user-mobile-name {display:inline;}
  .page-users.users-staff-mobile .tools-table {min-width:0;width:100%;table-layout:fixed;}
  .page-users.users-staff-mobile .tools-table :is(th,td) {padding:8px 4px;font-size:13px;overflow-wrap:anywhere;}
  .page-users.users-staff-mobile .tools-table th {font-size:10px;letter-spacing:0;}
  .page-users.users-staff-mobile .tools-table th[data-sort-column] {padding:0;}
  .page-users.users-staff-mobile .column-sort {padding:8px 4px;}
  .page-users.users-staff-mobile .user-number-cell {width:32px!important;}
  .page-users.users-staff-mobile .user-tools-cell {width:64px;}
  .page-users.users-staff-mobile .user-object-cell {width:80px;}
  .page-users.users-staff-mobile .user-issue-cell {width:76px;min-width:0;}
  .page-users.users-staff-mobile .user-issue-button {width:68px;min-height:44px;padding:6px 4px;font-size:12px;opacity:1;pointer-events:auto;}
  .page-users.users-staff-mobile :is(#noObjectsTable,#firedTable,#deletedTable) .user-issue-cell {display:none;}
}
@media (max-width:768px) and (orientation:landscape) {
  .page-tools.tools-staff-mobile #toolsContainer [data-column="holder"] {display:table-cell;width:112px;white-space:normal;overflow-wrap:anywhere;}
  .page-tools.tools-staff-mobile #toolsContainer td[data-column="holder"] {font-size:12px;}
  .page-tools.tools-staff-mobile #toolsContainer [data-column="holder"] .holder-link {white-space:normal;overflow-wrap:anywhere;}
  .page-tools.tools-staff-mobile .tool-mobile-detail[data-detail-column="holder"] {display:none;}
}
@media (max-width:768px) and (max-height:500px) and (orientation:landscape) {
  .page-tools.tools-staff-mobile .page-header .group-toggle {width:auto;flex:0 0 auto;}
  .page-tools.tools-staff-mobile .group-btn {min-height:36px;font-size:12px;padding:6px 8px;}
}

/* Manager controls stay available alongside the shared mobile layout. */
@media (max-width:768px) {
  :is(.tools-manager,.users-manager) .topbar-nav {gap:2px;flex-wrap:wrap;overflow-x:visible;}
  :is(.tools-manager,.users-manager) .nav-link {font-size:12px;padding-left:6px;padding-right:6px;}
  .page-tools:is(.tools-manager,.tools-admin) #toolsContainer [data-column="inv"] {width:72px;}
  .page-tools:is(.tools-manager,.tools-admin) #toolsContainer [data-column="receipt"] {width:24px;}
  .page-tools.tools-manager #toolsContainer [data-column="edit"] {width:44px;padding:0;text-align:center;}
  .page-tools:is(.tools-manager,.tools-admin) #toolsContainer [data-column="actions"] {width:68px;padding-left:2px;padding-right:2px;}
  .page-tools:is(.tools-manager,.tools-admin) #toolsContainer .tool-row-action {width:64px;max-width:100%;}
  .page-tools.tools-manager #toolsContainer .btn-row-edit,
  .page-users.users-manager .btn-edit-user {width:44px;height:44px;opacity:1;pointer-events:auto;}
  .page-users.users-manager .user-edit-cell {width:44px!important;padding:0;}
  :is(.tools-manager,.users-manager,.tools-admin,.users-admin) .page-actions {gap:8px;}
  :is(.tools-manager,.users-manager,.tools-admin,.users-admin) .page-actions .search-input {flex:1 1 140px;width:auto;min-width:0;}
  :is(.tools-manager,.users-manager,.tools-admin,.users-admin) .page-actions>.btn {flex:0 0 auto;width:auto;padding-left:10px;padding-right:10px;min-height:44px;}
}
@media (max-width:768px) and (max-height:500px) and (orientation:landscape) {
  :is(.tools-manager,.users-manager).tools-compact .topbar {flex-wrap:wrap;row-gap:0;}
  :is(.tools-manager,.users-manager).tools-compact .topbar-nav {order:3;flex:1 1 100%;width:100%;}
  :is(.tools-manager,.users-manager).tools-compact .topbar-right {margin-left:auto;}
  :is(.tools-manager,.users-manager,.tools-admin,.users-admin) .object-group-header {padding:10px 14px;min-height:44px;}
  .page-users:is(.users-manager,.users-admin) .section-header {margin-top:16px;margin-bottom:8px;}
}

/* Дополнительные данные администратора в тех же компактных мобильных таблицах. */
@media (max-width:768px) {
  .page-tools.tools-admin [data-admin-object-actions] {display:inline-flex;}
  .page-tools.tools-admin .employee-title {flex-wrap:wrap;}
  .page-tools.tools-admin #toolsContainer :is(.archive-group,.deleted-group) [data-column="actions"] {display:none;}
  .page-users.users-admin :is(.user-edit-cell,.user-login-cell),
  .page-objects.places-account .object-list-edit-cell,
  .page-objects.places-account :is(#closedSectionBlock,#deletedSectionBlock) .place-move-cell {display:none;}
  .page-users.users-admin .user-mobile-login {display:block;margin-top:3px;color:var(--text-muted);font-size:11px;overflow-wrap:anywhere;}
  .page-users.users-admin .user-role-cell {width:64px;}
  .page-users.users-admin .tools-table th:first-child {width:32px!important;}
  .page-users.users-admin tr[data-user-id]:focus-visible {outline:2px solid var(--brand-orange);outline-offset:-2px;}
}

/* Одна строка вкладок во всех списках manager/admin, отдельно от служебной строки. */
@media (max-width:768px) {
  .places-account.page-tools .topbar {flex-wrap:wrap;align-items:center;min-height:0;padding:8px 12px;gap:4px 8px;}
  .places-account.page-tools .topbar-left {gap:8px;flex-shrink:0;}
  .places-account.page-tools .topbar-logo {width:32px;height:32px;}
  .places-account.page-tools .topbar-title {font-size:15px;}
  .places-account.page-tools .topbar-right {flex:none;gap:4px;margin-left:auto;}
  .places-account.page-tools .btn-logout {min-height:44px;padding:6px 10px;font-size:12px;}
  .places-account.page-tools .topbar-nav {order:3;flex:0 0 100%;width:100%;min-width:0;margin:0;padding:0;gap:2px;flex-wrap:nowrap;overflow:visible;}
  .places-account.page-tools .nav-link {flex:none;min-height:44px;padding:4px 6px;gap:6px;font-size:12px;font-weight:600;border-radius:10px;white-space:nowrap;}
  .places-account.page-tools .nav-link .icon {width:18px;height:18px;}
  .places-account.page-tools .nav-link[data-locations-nav] {display:none;}
  .places-account.page-tools .nav-link[data-exchange-nav] {width:44px;padding:0;}
  .places-account.page-tools [data-exchange-nav] .exchange-nav-label {display:none;}
}
