172 lines
3.3 KiB
CSS
172 lines
3.3 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
:root {
|
|
--foreground-rgb: 0, 0, 0;
|
|
--background-start-rgb: 214, 219, 220;
|
|
--background-end-rgb: 255, 255, 255;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--foreground-rgb: 255, 255, 255;
|
|
--background-start-rgb: 0, 0, 0;
|
|
--background-end-rgb: 0, 0, 0;
|
|
}
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
max-width: 100vw;
|
|
overflow-x: hidden;
|
|
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
}
|
|
|
|
body {
|
|
color: rgb(var(--foreground-rgb));
|
|
background: linear-gradient(to bottom,
|
|
transparent,
|
|
rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb));
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
html {
|
|
color-scheme: dark;
|
|
}
|
|
}
|
|
|
|
/* Custom scrollbar */
|
|
::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: #f1f1f1;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: #c1c1c1;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: #a8a8a8;
|
|
}
|
|
|
|
/* Focus styles for accessibility */
|
|
.focus-ring {
|
|
@apply focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2;
|
|
}
|
|
|
|
/* Card styles */
|
|
.card {
|
|
@apply bg-white rounded-xl shadow-sm border border-gray-200 p-6;
|
|
}
|
|
|
|
.card-hover {
|
|
@apply transition-all duration-200 hover:shadow-md hover:border-gray-300;
|
|
}
|
|
|
|
/* Button styles */
|
|
.btn-primary {
|
|
@apply bg-primary-600 text-white px-4 py-2 rounded-lg font-medium hover:bg-primary-700 focus-ring transition-colors;
|
|
}
|
|
|
|
.btn-secondary {
|
|
@apply bg-gray-100 text-gray-900 px-4 py-2 rounded-lg font-medium hover:bg-gray-200 focus-ring transition-colors;
|
|
}
|
|
|
|
.btn-outline {
|
|
@apply border border-gray-300 text-gray-700 px-4 py-2 rounded-lg font-medium hover:bg-gray-50 focus-ring transition-colors;
|
|
}
|
|
|
|
/* Input styles */
|
|
.input {
|
|
@apply w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent;
|
|
}
|
|
|
|
/* Badge styles */
|
|
.badge {
|
|
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
|
|
}
|
|
|
|
.badge-success {
|
|
@apply bg-success-100 text-success-800;
|
|
}
|
|
|
|
.badge-warning {
|
|
@apply bg-warning-100 text-warning-800;
|
|
}
|
|
|
|
.badge-info {
|
|
@apply bg-info-100 text-info-800;
|
|
}
|
|
|
|
.badge-gray {
|
|
@apply bg-gray-100 text-gray-800;
|
|
}
|
|
|
|
/* Loading spinner */
|
|
.spinner {
|
|
@apply animate-spin rounded-full border-2 border-gray-300 border-t-primary-600;
|
|
}
|
|
|
|
/* Skeleton loading */
|
|
.skeleton {
|
|
@apply animate-pulse bg-gray-200 rounded;
|
|
}
|
|
|
|
/* Gradient backgrounds */
|
|
.gradient-primary {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
}
|
|
|
|
.gradient-success {
|
|
background: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%);
|
|
}
|
|
|
|
/* Chart container */
|
|
.chart-container {
|
|
position: relative;
|
|
height: 300px;
|
|
width: 100%;
|
|
}
|
|
|
|
/* Blog post spacing overrides */
|
|
.prose h2 {
|
|
margin-top: 1.75rem !important;
|
|
margin-bottom: 0.875rem !important;
|
|
padding-top: 0.875rem !important;
|
|
font-size: 2.25rem !important;
|
|
line-height: 2.5rem !important;
|
|
}
|
|
|
|
.prose p {
|
|
margin-bottom: 0.875rem !important;
|
|
}
|
|
|
|
.prose ul {
|
|
margin-top: 0.875rem !important;
|
|
margin-bottom: 0.875rem !important;
|
|
}
|
|
|
|
.prose blockquote {
|
|
margin-top: 1.25rem !important;
|
|
margin-bottom: 1.25rem !important;
|
|
}
|
|
|
|
.prose .lead {
|
|
margin-bottom: 1.25rem !important;
|
|
} |