/** * CMS Component: Cards */ .card { border: 1px solid var(--border-color); border-radius: var(--border-radius); box-shadow: var(--shadow-sm); transition: var(--transition-base); overflow: hidden; background: var(--bg-card); } .card:hover { box-shadow: var(--shadow-md); } .card-header { background-color: #fff; border-bottom: 1px solid var(--border-color); padding: 1rem 1.25rem; font-weight: var(--font-weight-semibold); display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; } .card-header-title { font-size: 0.9375rem; font-weight: var(--font-weight-semibold); color: var(--text-main); margin: 0; display: flex; align-items: center; gap: 0.5rem; } .card-header-title i { color: var(--accent-color); font-size: 0.9em; } .card-title { margin-bottom: 0; font-size: 1rem; color: var(--text-main); font-weight: var(--font-weight-semibold); } .card-body { padding: 1.25rem; } .card-footer { background-color: #fafbfc; border-top: 1px solid var(--border-color); padding: 0.75rem 1.25rem; } /* Stat cards — gradient style */ .stat-card { border-radius: var(--border-radius); padding: 1.35rem 1.4rem 1.1rem; position: relative; overflow: hidden; transition: var(--transition-base); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 0.25rem; min-height: 110px; } .stat-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } /* Background ghost icon */ .stat-card::after { content: attr(data-icon); font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; right: -0.5rem; bottom: -0.75rem; font-size: 5rem; opacity: 0.1; line-height: 1; pointer-events: none; } .stat-card-value { font-size: 2rem; font-weight: var(--font-weight-bold); line-height: 1; color: #fff; } .stat-card-label { font-size: 0.7rem; font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: 0.07em; color: rgba(255,255,255,0.75); margin-top: 0.15rem; } .stat-card-icon { display: none; /* icon is now the ghost bg */ } .stat-card-body { display: contents; } /* Color variants */ .stat-card.primary { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%); } .stat-card.accent { background: linear-gradient(135deg, #8a6d3b 0%, var(--accent-color) 100%); } .stat-card.success { background: linear-gradient(135deg, #145c38 0%, var(--success-color) 100%); } .stat-card.danger { background: linear-gradient(135deg, #922b21 0%, var(--danger-color) 100%); } .stat-card.warning { background: linear-gradient(135deg, #b45309 0%, var(--warning-color) 100%); } .stat-card.info { background: linear-gradient(135deg, #0c5a72 0%, var(--info-color) 100%); }