/* Утилиты последнего слоя (issue #189).
   Подключается после стилей страницы: раньше те же значения стояли в
   style="..." и перекрывали компонентные правила. Порядок важен. */

.w-100 { width: 100%; }
.inline-block { display: inline-block; }
.block { display: block; }
.mx-auto { margin-left: auto; margin-right: auto; }
.maxw-600 { max-width: 600px; }
.maxw-220 { max-width: 220px; }
.truncate-200 {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.row-center-10 { display: flex; align-items: center; gap: 10px; }
.pad-12-14 { padding: 12px 14px; }
.divider-top {
  border-top: 1px solid var(--border-color);
  padding-top: 12px;
}
.wrap-220 { max-width: 220px; word-break: break-word; }
.my-4-14 { margin: 4px 0 14px; }
.block-center {
  display: block;
  width: 100%;
  text-align: center;
}
.hint-tight {
  display: block;
  margin-top: 4px;
  color: var(--text-muted);
}
.value-warning {
  font-weight: 700;
  color: var(--color-warning-text);
  margin-left: 8px;
}
.bg-glass { background: rgba(255, 255, 255, .3); }
.static-reset {
  transform: none;
  position: relative;
  top: auto;
  left: auto;
}
.input-inline {
  padding: 6px 10px;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: var(--bg-input);
  color: var(--text-primary);
  font-size: 13px;
}
.text-muted { color: var(--text-muted); }
.text-secondary { color: var(--text-secondary); }
.text-primary { color: var(--text-primary); }
.text-warning { color: var(--color-warning-text); }
.text-success { color: #10b981; }
.text-danger { color: #ef4444; }
.text-14 { font-size: 14px; }
.link-primary {
  color: var(--color-primary-text);
  text-decoration: none;
}
