/*
 * Dashboard Premium
 * -----------------
 * افکت‌های پریمیوم متمرکز برای کارت‌های آماری و ویجت‌های داشبورد.
 * فقط CSS و pseudo-element — هیچ تغییری در HTML لازم نیست.
 * بعد از premium-polish.css لود می‌شود.
 */

/* ===================== هدر خوش‌آمد (Hero) ===================== */
.dash-hero {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--pp-border, rgba(15, 23, 42, 0.08));
    border-radius: 1rem;
    background:
        linear-gradient(120deg,
            rgba(var(--bs-primary-rgb, 59, 130, 246), 0.12),
            rgba(var(--bs-success-rgb, 16, 185, 129), 0.07) 60%,
            rgba(var(--bs-primary-rgb, 59, 130, 246), 0.04));
}
.dash-hero::after {
    content: "";
    position: absolute;
    top: -60px;
    inset-inline-start: -40px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--bs-primary-rgb, 59, 130, 246), 0.18), transparent 70%);
    pointer-events: none;
}
.dash-hero .card-body { position: relative; z-index: 1; }
.dash-hero h4 { letter-spacing: -0.01em; }

/* ===================== دسترسی سریع ===================== */
.quick-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 1.25rem 0.75rem;
    border-radius: 1rem;
    border: 1px solid var(--pp-border, rgba(15, 23, 42, 0.08));
    background: var(--bs-card-bg, #fff);
    color: var(--bs-body-color, #1e293b);
    text-decoration: none;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.22s ease, border-color 0.22s ease;
}
.quick-action:hover {
    transform: translateY(-4px);
    box-shadow: var(--pp-shadow-md, 0 4px 12px rgba(15, 23, 42, 0.08));
    color: var(--bs-body-color, #1e293b);
}
.quick-action .qa-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.quick-action:hover .qa-icon { transform: scale(1.12) rotate(-4deg); }
.quick-action .qa-label { font-size: 0.85rem; font-weight: 600; }

/* ===================== کارت‌های آماری ===================== */
.stat-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--pp-border, rgba(15, 23, 42, 0.08));
    border-radius: 1rem;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

/* گوی نورانی تزئینی در گوشه (RTL-aware) */
.stat-card::after {
    content: "";
    position: absolute;
    top: -45px;
    inset-inline-end: -45px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--color-student-rgb, 59, 130, 246), 0.28), transparent 70%);
    opacity: 0.55;
    pointer-events: none;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* نوار لهجهٔ بالای کارت */
.stat-card::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-inline-end: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(90deg,
        rgba(var(--color-student-rgb, 59, 130, 246), 0.9),
        rgba(var(--color-student-rgb, 59, 130, 246), 0.2));
    opacity: 0.9;
    transition: opacity 0.28s ease;
}

.stat-card:hover {
    transform: translateY(-5px);
}
.stat-card:hover::after {
    transform: scale(1.3);
    opacity: 0.8;
}

/* عدد آمار: درشت‌تر و گیراتر */
.stat-card .card-body > h3 {
    font-size: 2rem;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

/* دایرهٔ آیکون: پاپ و سایهٔ ظریف هنگام hover */
.stat-card .round-48 {
    transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.28s ease;
}
.stat-card:hover .round-48 {
    transform: scale(1.1) rotate(-4deg);
}

/* ---------- رنگ‌بندی بر اساس variant ---------- */
.stat-card-primary { box-shadow: 0 4px 18px rgba(var(--bs-primary-rgb, 59, 130, 246), 0.10); }
.stat-card-primary::after { background: radial-gradient(circle, rgba(var(--bs-primary-rgb, 59, 130, 246), 0.28), transparent 70%); }
.stat-card-primary::before { background: linear-gradient(90deg, rgba(var(--bs-primary-rgb, 59, 130, 246), 0.9), rgba(var(--bs-primary-rgb, 59, 130, 246), 0.15)); }
.stat-card-primary:hover { box-shadow: 0 16px 36px rgba(var(--bs-primary-rgb, 59, 130, 246), 0.28); }
.stat-card-primary:hover .round-48 { box-shadow: 0 6px 16px rgba(var(--bs-primary-rgb, 59, 130, 246), 0.4); }

.stat-card-success { box-shadow: 0 4px 18px rgba(var(--bs-success-rgb, 16, 185, 129), 0.10); }
.stat-card-success::after { background: radial-gradient(circle, rgba(var(--bs-success-rgb, 16, 185, 129), 0.28), transparent 70%); }
.stat-card-success::before { background: linear-gradient(90deg, rgba(var(--bs-success-rgb, 16, 185, 129), 0.9), rgba(var(--bs-success-rgb, 16, 185, 129), 0.15)); }
.stat-card-success:hover { box-shadow: 0 16px 36px rgba(var(--bs-success-rgb, 16, 185, 129), 0.28); }
.stat-card-success:hover .round-48 { box-shadow: 0 6px 16px rgba(var(--bs-success-rgb, 16, 185, 129), 0.4); }

.stat-card-info { box-shadow: 0 4px 18px rgba(var(--bs-info-rgb, 59, 130, 246), 0.10); }
.stat-card-info::after { background: radial-gradient(circle, rgba(var(--bs-info-rgb, 59, 130, 246), 0.28), transparent 70%); }
.stat-card-info::before { background: linear-gradient(90deg, rgba(var(--bs-info-rgb, 59, 130, 246), 0.9), rgba(var(--bs-info-rgb, 59, 130, 246), 0.15)); }
.stat-card-info:hover { box-shadow: 0 16px 36px rgba(var(--bs-info-rgb, 59, 130, 246), 0.28); }
.stat-card-info:hover .round-48 { box-shadow: 0 6px 16px rgba(var(--bs-info-rgb, 59, 130, 246), 0.4); }

.stat-card-warning { box-shadow: 0 4px 18px rgba(var(--bs-warning-rgb, 245, 158, 11), 0.10); }
.stat-card-warning::after { background: radial-gradient(circle, rgba(var(--bs-warning-rgb, 245, 158, 11), 0.28), transparent 70%); }
.stat-card-warning::before { background: linear-gradient(90deg, rgba(var(--bs-warning-rgb, 245, 158, 11), 0.9), rgba(var(--bs-warning-rgb, 245, 158, 11), 0.15)); }
.stat-card-warning:hover { box-shadow: 0 16px 36px rgba(var(--bs-warning-rgb, 245, 158, 11), 0.28); }
.stat-card-warning:hover .round-48 { box-shadow: 0 6px 16px rgba(var(--bs-warning-rgb, 245, 158, 11), 0.4); }

/* ===================== انیمیشن ورود پلکانی ===================== */
@keyframes pp-rise {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.stat-card {
    animation: pp-rise 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}
/* تأخیر پلکانی برای چهار کارت اول ردیف */
.row > [class*="col-"]:nth-child(1) .stat-card { animation-delay: 0.03s; }
.row > [class*="col-"]:nth-child(2) .stat-card { animation-delay: 0.10s; }
.row > [class*="col-"]:nth-child(3) .stat-card { animation-delay: 0.17s; }
.row > [class*="col-"]:nth-child(4) .stat-card { animation-delay: 0.24s; }

/* ===================== کارت‌های چارت/ویجت داشبورد ===================== */
.dashboard-widget,
.stat-card ~ .card,
.card.shadow-sm.border-0 {
    border-radius: 1rem;
}

/* هدر ویجت‌ها */
.card > .card-header.bg-transparent {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

/* ===================== ردیف‌های لیست اخیر ===================== */
/* آیتم‌های لیستِ داخل ویجت‌ها: هاور لغزشی ملایم */
.card-body .d-flex.align-items-center.gap-3,
.card-body .list-group-item {
    border-radius: 0.65rem;
    transition: background-color 0.18s ease, transform 0.18s ease;
}
.card-body .d-flex.align-items-center.gap-3:hover {
    background-color: rgba(var(--color-student-rgb, 59, 130, 246), 0.05);
}

/* ===================== احترام به کاهش حرکت ===================== */
@media (prefers-reduced-motion: reduce) {
    .stat-card,
    .stat-card:hover,
    .stat-card:hover::after,
    .stat-card:hover .round-48 {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* ===================== زمینه‌ی یکپارچه صفحه ادمین ===================== */
html[data-layout] {
    background-color: var(--app-shell-bg, #f0f5f9);
    min-height: 100%;
}

html[data-layout][data-bs-theme="dark"] {
    --app-shell-bg: #15263a;
}

html[data-layout][data-bs-theme="light"],
html[data-layout]:not([data-bs-theme]),
html[data-layout][data-bs-theme=""] {
    --app-shell-bg: #f0f5f9;
}

html[data-layout].h-100,
body[data-sidebartype].h-100 {
    height: auto !important;
}

body[data-sidebartype],
body[data-sidebartype] #main-wrapper,
body[data-sidebartype] .page-wrapper,
body[data-sidebartype] .body-wrapper,
body[data-sidebartype] .body-wrapper > .container-fluid,
body[data-sidebartype] #admin-content-area {
    background-color: var(--app-shell-bg, #f0f5f9) !important;
}
