/* ============================================================
   SMM Panel — app.css  (complete, replaces existing file)
   Stack: Tailwind CDN + Alpine.js + CI3
   ============================================================ */

/* ============================================================
   SCROLLBAR
   ============================================================ */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ============================================================
   BADGES — popular (indigo shimmer) + deal (amber shimmer)
   ============================================================ */
.badge-popular {
    background: linear-gradient(135deg, #6366f1, #818cf8);
    color: white;
    animation: shimmer 2.2s ease-in-out infinite;
}
.badge-deal {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
    color: white;
    animation: shimmer 2.2s ease-in-out infinite;
}
@keyframes shimmer {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.75; }
}

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.whatsapp-btn { animation: bob 3.2s ease-in-out infinite; }
@keyframes bob {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-6px); }
}

/* ============================================================
   SUCCESS CHECKMARK ANIMATION (payment success page)
   ============================================================ */
.success-checkmark {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    animation: draw 0.65s ease forwards 0.25s;
}
@keyframes draw { to { stroke-dashoffset: 0; } }

/* ============================================================
   PLATFORM & SERVICE CARDS
   ============================================================ */
.platform-card:hover .platform-icon { transform: scale(1.08); }
.service-card { cursor: pointer; }

/* ============================================================
   SAFE AREA — iOS notch / home indicator
   ============================================================ */
body { padding-bottom: env(safe-area-inset-bottom); }
nav.fixed { padding-bottom: env(safe-area-inset-bottom); }

/* ============================================================
   INPUT FOCUS GLOW
   ============================================================ */
input:focus, textarea:focus, select:focus {
    box-shadow: 0 0 0 3px rgba(216, 27, 96, 0.12);
    outline: none;
}

/* ============================================================
   PAGE FADE-IN
   ============================================================ */
main, .page-content { animation: fadeIn 0.22s ease; }
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   BOTTOM NAV ACTIVE STATE
   ============================================================ */
.bottom-nav-item.active { color: #D81B60; }

/* ============================================================
   ADMIN SIDEBAR ACTIVE LINK
   ============================================================ */
.admin-sidebar-link.active {
    background: rgba(216, 27, 96, 0.1);
    color: #D81B60;
    font-weight: 700;
    border-right: 3px solid #D81B60;
}

/* ============================================================
   LOADING SPINNER
   ============================================================ */
.spinner {
    border: 3px solid rgba(216, 27, 96, 0.2);
    border-top-color: #D81B60;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    animation: spin 0.65s linear infinite;
    display: inline-block;
    vertical-align: middle;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ============================================================
   SKELETON LOADERS
   ============================================================ */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeletonPulse 1.4s ease-in-out infinite;
    border-radius: 10px;
}
.skeleton-text { height: 14px; margin-bottom: 8px; }
.skeleton-text.short  { width: 60%; }
.skeleton-text.medium { width: 80%; }
.skeleton-text.full   { width: 100%; }
.skeleton-circle { border-radius: 50%; }
.skeleton-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    overflow: hidden;
}
@keyframes skeletonPulse {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Skeleton for service card row */
.skeleton-service-row {
    display: flex;
    align-items: center;
    gap: 12px;
    background: white;
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 8px;
}
.skeleton-service-row .sk-icon  { width: 40px; height: 40px; flex-shrink: 0; }
.skeleton-service-row .sk-body  { flex: 1; }
.skeleton-service-row .sk-price { width: 60px; height: 32px; flex-shrink: 0; border-radius: 12px; }

/* ============================================================
   TOAST NOTIFICATIONS
   ============================================================ */
.toast {
    position: fixed;
    top: 72px;
    right: 16px;
    z-index: 9999;
    min-width: 260px;
    max-width: calc(100vw - 32px);
    padding: 12px 16px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    animation: toastIn 0.3s ease;
    font-family: 'Poppins', sans-serif;
}
.toast-success { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.toast-error   { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.toast-info    { background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe; }
@keyframes toastIn {
    from { opacity: 0; transform: translateX(20px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ============================================================
   PWA INSTALL PROMPT
   ============================================================ */
.pwa-prompt {
    position: fixed;
    bottom: 80px;
    left: 16px;
    right: 16px;
    background: white;
    border-radius: 20px;
    padding: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    z-index: 50;
    border: 1px solid rgba(216, 27, 96, 0.15);
    animation: slideUp 0.3s ease;
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   UPI PAYMENT PAGE
   ============================================================ */
.upi-qr-ring {
    border: 3px solid #f3e8f0;
    border-radius: 20px;
    padding: 12px;
    display: inline-block;
}

/* ============================================================
   COUNTDOWN TIMER RING (SVG)
   ============================================================ */
.countdown-ring { transform: rotate(-90deg); transform-origin: center; }
.countdown-ring-track { stroke: rgba(216,27,96,0.12); }
.countdown-ring-fill  {
    stroke: #D81B60;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s linear;
}

/* ============================================================
   ORDER STATUS BADGES (track page + my orders)
   ============================================================ */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.status-pending    { background: #fef9c3; color: #854d0e; }
.status-processing { background: #dbeafe; color: #1d4ed8; }
.status-partial    { background: #ffedd5; color: #c2410c; }
.status-completed  { background: #dcfce7; color: #166534; }
.status-cancelled  { background: #fee2e2; color: #991b1b; }

/* ============================================================
   ADMIN: table row hover transition
   ============================================================ */
.admin-table tbody tr { transition: background 0.12s; }

/* ============================================================
   ADMIN: stat cards gradient
   ============================================================ */
.stat-card-primary {
    background: linear-gradient(135deg, #D81B60, #AD1457);
    color: white;
}
.stat-card-blue   { background: linear-gradient(135deg, #3b82f6, #2563eb); color: white; }
.stat-card-green  { background: linear-gradient(135deg, #22c55e, #16a34a); color: white; }
.stat-card-amber  { background: linear-gradient(135deg, #f59e0b, #d97706); color: white; }

/* ============================================================
   FORM: accent colour for checkboxes / radios
   ============================================================ */
input[type="checkbox"], input[type="radio"] { accent-color: #D81B60; }

/* ============================================================
   TRUNCATE MULTILINE (2 lines)
   ============================================================ */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================================
   MOBILE: tap highlight removal
   ============================================================ */
a, button { -webkit-tap-highlight-color: transparent; }

/* ============================================================
   TRANSITIONS: Alpine.js x-transition helpers
   ============================================================ */
[x-cloak] { display: none !important; }
