:root { --bs-font-sans-serif: 'Tajawal', sans-serif; }
html, body { height: 100%; margin: 0; }
body { font-family: 'Tajawal', sans-serif; background-color: #f5f6f8; }
.page-wrapper { display: flex; flex-direction: column; min-height: 100vh; }
.page-content { flex: 1 0 auto; }
.navbar-brand { font-weight: 900; }
.listing-card img { height: 180px; object-fit: cover; }
.listing-card .price { color: #198754; font-weight: 700; }
.category-pill { white-space: nowrap; }
.admin-sidebar { min-height: 100vh; background: #1e2939; }
.admin-sidebar a { color: #cbd5e1; display: block; padding: .6rem 1rem; text-decoration: none; border-radius: .375rem; }
.admin-sidebar a:hover, .admin-sidebar a.active { background: #334155; color: #fff; }
@media (max-width: 576px) {
    .listing-card img { height: 140px; }
}
.password-toggle-wrap { position: relative; }
.password-toggle-wrap input[type="password"],
.password-toggle-wrap input[type="text"] { padding-left: 2.5rem; }
.password-toggle-btn {
    position: absolute;
    top: 50%;
    left: .25rem;
    transform: translateY(-50%);
    z-index: 5;
    border: none;
    background: transparent;
    color: #6c757d;
    padding: .375rem .5rem;
    line-height: 1;
}
.password-toggle-btn:hover { color: #212529; }

.star-rating { display: inline-flex; flex-direction: row-reverse; font-size: 1.75rem; }
.star-rating input { display: none; }
.star-rating label { color: #d1d5db; cursor: pointer; padding: 0 .1rem; }
.star-rating input:checked ~ label,
.star-rating label:hover,
.star-rating label:hover ~ label { color: #f5b301; }
