/** * Admin Card Components * * Status cards, metric cards, and data containers for admin interfaces * Consistent with design system color tokens */ /* Base Card */ .card { background: var(--bg-alt); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-lg); box-shadow: 0 1px 3px oklch(0% 0 0 / 0.05); transition: all var(--duration-default) var(--easing-default); } .card:hover { border-color: oklch(from var(--border) l c h / 0.3); box-shadow: 0 4px 12px oklch(0% 0 0 / 0.1); } .card__header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: var(--space-md); } .card__title { font-size: 1.125rem; font-weight: 600; color: var(--text); margin: 0; } .card__subtitle { color: var(--muted); font-size: 0.875rem; margin-top: 0.25rem; } .card__action { color: var(--accent); text-decoration: none; font-size: 0.875rem; font-weight: 500; } .card__action:hover { text-decoration: underline; } .card__content { color: var(--text); } /* Status Cards */ .status-card { position: relative; overflow: hidden; } .status-card--success { border-left: 4px solid var(--success); } .status-card--warning { border-left: 4px solid var(--warning); } .status-card--error { border-left: 4px solid var(--error); } .status-card--info { border-left: 4px solid var(--info-base); } /* Metric Cards */ .metric-card { text-align: center; } .metric-card__value { font-size: 2.5rem; font-weight: 700; color: var(--accent); line-height: 1.2; margin-bottom: 0.5rem; } .metric-card__label { color: var(--muted); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; } .metric-card__change { font-size: 0.75rem; margin-top: 0.5rem; font-weight: 500; } .metric-card__change--positive { color: var(--success); } .metric-card__change--negative { color: var(--error); } .metric-card__change--neutral { color: var(--muted); } /* Progress Cards */ .progress-card__header { margin-bottom: var(--space-sm); } .progress-card__bar { width: 100%; height: 8px; background: oklch(from var(--border) l c h / 0.3); border-radius: 4px; overflow: hidden; margin-bottom: var(--space-sm); } .progress-card__fill { height: 100%; background: var(--accent); border-radius: 4px; transition: width var(--duration-medium) var(--easing-default); } .progress-card__fill--success { background: var(--success); } .progress-card__fill--warning { background: var(--warning); } .progress-card__fill--error { background: var(--error); } .progress-card__stats { display: flex; justify-content: space-between; font-size: 0.875rem; color: var(--muted); } /* Compact Cards */ .card--compact { padding: var(--space-md); } .card--compact .card__title { font-size: 1rem; } /* Card Grid Layouts */ .cards { display: grid; gap: var(--space-lg); margin-bottom: var(--space-lg); } .cards--2-col { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .cards--3-col { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .cards--4-col { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } /* Responsive */ @media (max-width: 768px) { .cards--2-col, .cards--3-col, .cards--4-col { grid-template-columns: 1fr; } .metric-card__value { font-size: 2rem; } }