/* Additional theme styles not in style.css */

/* ── Scroll to top button ── */
#scrollTop { position: fixed; bottom: 2rem; right: 2rem; width: 44px; height: 44px; background: var(--rht-primary); color: #fff; border: none; border-radius: 50%; cursor: pointer; font-size: 1.2rem; display: none; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(26,86,219,.4); transition: all .2s; z-index: 999; }
#scrollTop.visible { display: flex; }
#scrollTop:hover { background: var(--rht-primary-dark); transform: translateY(-2px); }

/* ── WhatsApp float button ── */
.whatsapp-float { position: fixed; bottom: 2rem; left: 2rem; width: 56px; height: 56px; background: #25d366; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 16px rgba(37,211,102,.5); z-index: 999; text-decoration: none; font-size: 1.6rem; transition: transform .2s; }
.whatsapp-float:hover { transform: scale(1.1); }

/* ── Form validation ── */
.form-control.error { border-color: #dc2626; }
.form-control.success { border-color: #22c55e; }

/* ── Stars input ── */
.stars-input { display: flex; gap: .25rem; flex-direction: row-reverse; justify-content: flex-end; }
.stars-input input { display: none; }
.stars-input label { font-size: 1.5rem; color: #d1d5db; cursor: pointer; transition: color .15s; }
.stars-input label:hover, .stars-input label:hover ~ label, .stars-input input:checked ~ label { color: #f59e0b; }

/* ── Loading states ── */
.btn:disabled { opacity: .65; cursor: not-allowed; }
.skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: var(--rht-radius); }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ── Admin styles ── */
.rht-admin-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; margin-top: 1.5rem; }
.rht-admin-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.5rem; text-align: center; }
.rht-card-val { font-size: 2.25rem; font-weight: 800; color: #1a56db; }
.rht-card-label { color: #6b7280; font-size: .9rem; margin-top: .25rem; }
.rht-card-warn .rht-card-val { color: #f97316; }
.rht-badge { display: inline-block; padding: .2rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: #f3f4f6; color: #374151; }
.rht-badge-active { background: #dcfce7; color: #166534; }
.rht-badge-warn { background: #fef3c7; color: #92400e; }
.rht-badge-open { background: #dbeafe; color: #1e40af; }
.rht-badge-filled { background: #dcfce7; color: #166534; }
.rht-badge-closed { background: #fee2e2; color: #991b1b; }
