| @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap"); |
| @import "tailwindcss"; |
|
|
| @custom-variant dark (&:where(.dark, .dark *)); |
|
|
| |
| :root { |
| |
| --color-primary: #e54d5e; |
| --color-primary-hover: #c93d4e; |
|
|
| |
| --color-accent: #6366f1; |
| --color-accent-hover: #8b5cf6; |
| --color-accent-light: #a855f7; |
|
|
| |
| --color-error: #ef4444; |
| --color-success: #22c55e; |
| --color-warning: #f59e0b; |
|
|
| |
| --color-traffic-red: #ff5f56; |
| --color-traffic-yellow: #ffbd2e; |
| --color-traffic-green: #27c93f; |
|
|
| |
| --color-bg: #f9f9fb; |
| --color-bg-alt: #f0f0f5; |
| --color-surface: #ffffff; |
| --color-sidebar: rgba(245, 245, 250, 0.8); |
| --color-border: rgba(0, 0, 0, 0.08); |
| --color-text-main: #1a1a2e; |
| --color-text-muted: #71717a; |
|
|
| |
| --shadow-soft: 0 1px 3px rgba(0, 0, 0, 0.02), 0 4px 12px rgba(0, 0, 0, 0.015); |
| --shadow-warm: 0 2px 12px -2px rgba(229, 77, 94, 0.12); |
| --shadow-elevated: 0 12px 28px -4px rgba(20, 20, 40, 0.06); |
| } |
|
|
| .dark { |
| |
| --color-bg: #0b0e14; |
| --color-bg-alt: #111520; |
| --color-surface: #161b22; |
| --color-sidebar: rgba(16, 20, 30, 0.8); |
| --color-border: rgba(255, 255, 255, 0.08); |
| --color-text-main: #e6e6ef; |
| --color-text-muted: #a1a1aa; |
|
|
| |
| --shadow-soft: 0 1px 3px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1); |
| --shadow-warm: 0 2px 12px -2px rgba(229, 77, 94, 0.15); |
| --shadow-elevated: 0 12px 28px -4px rgba(0, 0, 0, 0.3); |
| } |
|
|
| @theme inline { |
| |
| --color-primary: var(--color-primary); |
| --color-primary-hover: var(--color-primary-hover); |
|
|
| |
| --color-accent: var(--color-accent); |
| --color-accent-hover: var(--color-accent-hover); |
| --color-accent-light: var(--color-accent-light); |
|
|
| |
| --color-error: var(--color-error); |
| --color-success: var(--color-success); |
| --color-warning: var(--color-warning); |
|
|
| |
| --color-bg: var(--color-bg); |
| --color-surface: var(--color-surface); |
| --color-sidebar: var(--color-sidebar); |
| --color-border: var(--color-border); |
| --color-text-main: var(--color-text-main); |
| --color-text-muted: var(--color-text-muted); |
|
|
| |
| --color-bg-light: #f9f9fb; |
| --color-bg-dark: #0b0e14; |
| --color-surface-light: #ffffff; |
| --color-surface-dark: #161b22; |
| --color-sidebar-light: #ededf2; |
| --color-sidebar-dark: #111520; |
| --color-border-light: #e2e2ea; |
| --color-border-dark: #2d333b; |
| --color-text-main-light: #1a1a2e; |
| --color-text-main-dark: #e6e6ef; |
| --color-text-muted-light: #71717a; |
| --color-text-muted-dark: #a1a1aa; |
|
|
| |
| --shadow-soft: var(--shadow-soft); |
| --shadow-warm: var(--shadow-warm); |
| --shadow-elevated: var(--shadow-elevated); |
|
|
| |
| --font-sans: |
| -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif; |
| } |
|
|
| |
| :root { |
| --focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-accent); |
| } |
|
|
| |
| :focus-visible { |
| outline: none; |
| box-shadow: var(--focus-ring); |
| border-radius: 4px; |
| } |
|
|
| |
| .focus-ring:focus-visible { |
| outline: none; |
| box-shadow: var(--focus-ring); |
| } |
|
|
| |
| :focus:not(:focus-visible) { |
| outline: none; |
| box-shadow: none; |
| } |
|
|
| |
| body { |
| background-color: var(--color-bg); |
| color: var(--color-text-main); |
| font-family: var(--font-sans); |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| } |
|
|
| |
| ::selection { |
| background-color: rgba(229, 77, 94, 0.2); |
| color: var(--color-primary); |
| } |
|
|
| |
| *::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
|
|
| *::-webkit-scrollbar-track { |
| background: transparent; |
| } |
|
|
| *::-webkit-scrollbar-thumb { |
| background-color: rgba(156, 163, 175, 0.2); |
| border-radius: 9999px; |
| transition: background-color 0.2s; |
| } |
|
|
| *::-webkit-scrollbar-thumb:hover { |
| background-color: rgba(156, 163, 175, 0.45); |
| } |
|
|
| *::-webkit-scrollbar-corner { |
| background: transparent; |
| } |
|
|
| |
| .dark *::-webkit-scrollbar-thumb { |
| background-color: rgba(255, 255, 255, 0.08); |
| } |
|
|
| .dark *::-webkit-scrollbar-thumb:hover { |
| background-color: rgba(255, 255, 255, 0.2); |
| } |
|
|
| |
| * { |
| scrollbar-width: thin; |
| scrollbar-color: rgba(156, 163, 175, 0.2) transparent; |
| } |
|
|
| .dark * { |
| scrollbar-color: rgba(255, 255, 255, 0.08) transparent; |
| } |
|
|
| |
| .custom-scrollbar { |
| scrollbar-width: thin; |
| } |
|
|
| |
| .bg-hero-gradient { |
| background: linear-gradient(180deg, #f0f0f5 0%, #f9f9fb 100%); |
| } |
|
|
| .dark .bg-hero-gradient { |
| background: linear-gradient(180deg, #111520 0%, #0b0e14 100%); |
| } |
|
|
| |
| .material-symbols-outlined { |
| font-family: "Material Symbols Outlined", sans-serif; |
| font-weight: normal; |
| font-style: normal; |
| font-size: 24px; |
| line-height: 1; |
| letter-spacing: normal; |
| text-transform: none; |
| display: inline-block; |
| white-space: nowrap; |
| word-wrap: normal; |
| direction: ltr; |
| font-feature-settings: "liga"; |
| -webkit-font-feature-settings: "liga"; |
| -webkit-font-smoothing: antialiased; |
| font-variation-settings: |
| "FILL" 0, |
| "wght" 400, |
| "GRAD" 0, |
| "opsz" 24; |
| user-select: none; |
| } |
|
|
| |
| button .material-symbols-outlined, |
| [role="button"] .material-symbols-outlined { |
| pointer-events: none; |
| } |
|
|
| .material-symbols-outlined.fill-1 { |
| font-variation-settings: |
| "FILL" 1, |
| "wght" 400, |
| "GRAD" 0, |
| "opsz" 24; |
| } |
|
|
| |
| @keyframes spin { |
| from { |
| transform: rotate(0deg); |
| } |
| to { |
| transform: rotate(360deg); |
| } |
| } |
|
|
| .animate-spin { |
| animation: spin 1s linear infinite; |
| } |
|
|
| @keyframes pulse { |
| 0%, |
| 100% { |
| opacity: 1; |
| } |
| 50% { |
| opacity: 0.5; |
| } |
| } |
|
|
| .animate-pulse { |
| animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; |
| } |
|
|
| @keyframes border-glow { |
| 0%, |
| 100% { |
| box-shadow: |
| 0 0 5px rgba(229, 77, 94, 0.3), |
| 0 0 10px rgba(229, 77, 94, 0.2); |
| border-color: rgba(229, 77, 94, 0.5); |
| } |
| 50% { |
| box-shadow: |
| 0 0 10px rgba(229, 77, 94, 0.5), |
| 0 0 20px rgba(229, 77, 94, 0.3); |
| border-color: rgba(229, 77, 94, 0.8); |
| } |
| } |
|
|
| .animate-border-glow { |
| animation: border-glow 2s ease-in-out infinite; |
| } |
|
|
| |
| .bg-vibrancy { |
| backdrop-filter: blur(20px); |
| -webkit-backdrop-filter: blur(20px); |
| background: rgba(255, 255, 255, 0.72); |
| } |
|
|
| .dark .bg-vibrancy { |
| background: rgba(16, 20, 30, 0.72); |
| } |
|
|
| |
| .traffic-lights { |
| display: flex; |
| gap: 8px; |
| } |
|
|
| .traffic-light { |
| width: 12px; |
| height: 12px; |
| border-radius: 50%; |
| } |
|
|
| .traffic-light.red { |
| background: var(--color-traffic-red); |
| } |
|
|
| .traffic-light.yellow { |
| background: var(--color-traffic-yellow); |
| } |
|
|
| .traffic-light.green { |
| background: var(--color-traffic-green); |
| } |
|
|