body { background: var(--bs-tertiary-bg); }

.login-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.login-card { width: 100%; max-width: 380px; }

.min-w-0 { min-width: 0; }
.clamp-2, .clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.clamp-2 { -webkit-line-clamp: 2; }
.clamp-3 { -webkit-line-clamp: 3; }

/* product list */
#product-list { max-height: calc(100vh - 290px); min-height: 120px; overflow-y: auto; }
.product-item { display: flex; gap: .75rem; align-items: center; }
.product-thumb { width: 48px; height: 48px; flex: none; object-fit: contain; background: #fff; border-radius: .375rem; border: 1px solid var(--bs-border-color); }
.product-image { width: 96px; height: 96px; object-fit: contain; background: #fff; border-radius: .5rem; border: 1px solid var(--bs-border-color); flex: none; }

/* country tabs */
.country-tabs { gap: .25rem; }
.country-tabs .nav-link { padding: .3rem .6rem; border: 1px solid var(--bs-border-color); background: var(--bs-body-bg); font-weight: 600; }
.country-tabs .nav-link.master { border-color: var(--bs-primary); }
.country-tabs .nav-link.removed { text-decoration: line-through; opacity: .6; }
.country-tabs .nav-link.active .badge.text-bg-light { color: var(--bs-dark) !important; }

/* testimonial list */
.testimonial.inactive { opacity: .65; }
.testimonial.dragging { opacity: .4; }
.testimonial-list.busy { pointer-events: none; opacity: .6; }
.drag-handle { cursor: grab; color: var(--bs-secondary-color); user-select: none; align-self: center; font-size: 1.1rem; letter-spacing: -.2em; }
.testimonial-thumb { width: 64px; height: 64px; flex: none; object-fit: cover; border-radius: .375rem; background: var(--bs-secondary-bg); }
.placeholder-thumb { display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: var(--bs-secondary-color); }
.testimonial-body { white-space: pre-line; overflow-wrap: anywhere; }
.stars { color: #e0a800; white-space: nowrap; letter-spacing: .05em; }

/* images in the editor */
.image-grid { display: flex; flex-wrap: wrap; gap: .5rem; }
.image-tile { margin: 0; width: 120px; border: 1px solid var(--bs-border-color); border-radius: .375rem; overflow: hidden; background: var(--bs-body-bg); }
.image-tile img { display: block; width: 100%; height: 90px; object-fit: cover; }
.image-tile figcaption { display: flex; width: 100%; }
.image-tile figcaption .btn { flex: 1; border-radius: 0; }

.preview-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: .25rem; }
