149 lines
3.1 KiB
CSS
149 lines
3.1 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
:root {
|
|
--toast-bg: #ffffff;
|
|
--toast-color: #374151;
|
|
}
|
|
|
|
[data-theme="dark"] {
|
|
--toast-bg: #1f2937;
|
|
--toast-color: #f3f4f6;
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html {
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
|
"Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans",
|
|
"Helvetica Neue", sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
body {
|
|
background-color: #f9fafb;
|
|
transition: background-color 0.2s ease;
|
|
/* Prevent horizontal scrolling on mobile */
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.dark body {
|
|
background-color: #111827;
|
|
}
|
|
|
|
/* Ensure touch targets are large enough on mobile */
|
|
@media (max-width: 1024px) {
|
|
button,
|
|
a,
|
|
[role="button"] {
|
|
min-height: 44px;
|
|
min-width: 44px;
|
|
}
|
|
}
|
|
|
|
/* Improve text selection on mobile */
|
|
@media (max-width: 768px) {
|
|
* {
|
|
-webkit-text-size-adjust: 100%;
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
.card {
|
|
@apply bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700;
|
|
}
|
|
|
|
.btn-primary {
|
|
@apply bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-lg transition-colors duration-200 font-medium;
|
|
}
|
|
|
|
.btn-secondary {
|
|
@apply bg-gray-200 hover:bg-gray-300 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-900 dark:text-gray-100 px-4 py-2 rounded-lg transition-colors duration-200 font-medium;
|
|
}
|
|
|
|
.input {
|
|
@apply w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-colors duration-200;
|
|
}
|
|
|
|
/* Mobile-specific utilities */
|
|
.mobile-container {
|
|
@apply px-4 sm:px-6 lg:px-8;
|
|
}
|
|
|
|
.mobile-card {
|
|
@apply card p-4 sm:p-6;
|
|
}
|
|
|
|
/* Safe area for mobile devices */
|
|
.safe-area {
|
|
padding-left: env(safe-area-inset-left);
|
|
padding-right: env(safe-area-inset-right);
|
|
padding-top: env(safe-area-inset-top);
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
}
|
|
|
|
/* Mobile-specific form improvements */
|
|
@media (max-width: 768px) {
|
|
.input,
|
|
textarea,
|
|
select {
|
|
@apply text-base; /* Prevent zoom on iOS */
|
|
font-size: 16px !important;
|
|
}
|
|
|
|
.form-grid {
|
|
@apply grid-cols-1 gap-4;
|
|
}
|
|
|
|
.button-group {
|
|
@apply flex-col space-y-3 space-x-0;
|
|
}
|
|
|
|
.button-group > * {
|
|
@apply w-full;
|
|
}
|
|
}
|
|
|
|
/* Responsive text utilities */
|
|
.text-responsive-xs {
|
|
@apply text-xs sm:text-sm;
|
|
}
|
|
|
|
.text-responsive-sm {
|
|
@apply text-sm sm:text-base;
|
|
}
|
|
|
|
.text-responsive-base {
|
|
@apply text-base sm:text-lg;
|
|
}
|
|
|
|
.text-responsive-lg {
|
|
@apply text-lg sm:text-xl lg:text-2xl;
|
|
}
|
|
|
|
.text-responsive-xl {
|
|
@apply text-xl sm:text-2xl lg:text-3xl;
|
|
}
|
|
|
|
/* Mobile chart container */
|
|
.chart-container {
|
|
@apply w-full overflow-hidden;
|
|
min-height: 200px;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.chart-container {
|
|
min-height: 180px;
|
|
}
|
|
}
|
|
}
|