/* Кабинет клиента: небольшие надстройки над Bootstrap 5 (раскладка с боковым меню, миниатюры, сцена камеры). */
:root { --sidebar-w: 240px; --navbar-h: 56px; }
body { padding-top: var(--navbar-h); }
.sidebar { width: var(--sidebar-w); }
@media (min-width: 992px) {
  .sidebar { position: fixed; top: var(--navbar-h); bottom: 0; left: 0; overflow-y: auto; z-index: 1020; }
  .main-content { margin-left: var(--sidebar-w); }
}
.sidebar .nav-link { color: var(--bs-body-color); border-radius: .375rem; }
.sidebar .nav-link:hover { background: var(--bs-tertiary-bg); }
.sidebar .nav-link.active { color: #fff; }
.login-wrap { background: var(--bs-tertiary-bg); }
.login-card { width: 100%; max-width: 420px; }
.stat-icon { width: 44px; height: 44px; border-radius: .5rem; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex: 0 0 auto; }
.thumb-sm { width: 64px; height: 44px; object-fit: cover; }
.thumb-md { width: 120px; height: 76px; object-fit: cover; }
.plate-crop { max-height: 40px; max-width: 160px; }
.plate-crop-sm { height: 22px; max-width: 110px; vertical-align: middle; }
.plate-tag { display: inline-block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 600; letter-spacing: .03em; background: #fff; color: #111; border: 1px solid #555; border-radius: 4px; padding: 0 .4rem; line-height: 1.5; white-space: nowrap; }
.preview-box { min-height: 240px; }
.preview-box img { max-height: 70vh; }
.editor-stage { position: relative; width: 100%; max-height: 75vh; line-height: 0; }
.editor-stage img { width: 100%; height: auto; max-height: 75vh; object-fit: contain; display: block; }
.editor-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; }
.push-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 72vh; background: #000; overflow: hidden; }
.push-stage video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.push-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.push-status { position: absolute; left: 0; right: 0; bottom: 0; padding: .35rem .75rem; font-size: .85rem; color: #fff; background: rgba(0,0,0,.55); }
.push-status.err { background: rgba(176,32,32,.85); }
pre { white-space: pre-wrap; word-break: break-all; font-size: .8rem; }
.table td, .table th { vertical-align: middle; }
