@import "tailwindcss"; @plugin "@tailwindcss/typography"; @theme { --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-background: var(--background); --color-foreground: var(--foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --radius-lg: var(--radius); --radius-md: calc(var(--radius) - 2px); --radius-sm: calc(var(--radius) - 4px); --animate-accordion-down: accordion-down 0.2s ease-out; --animate-accordion-up: accordion-up 0.2s ease-out; @keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height); } } @keyframes accordion-up { from { height: var(--radix-accordion-content-height); } to { height: 0; } } --animate-task-shake: task-shake 0.3s ease-in-out; @keyframes task-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(3px); } 50% { transform: translateX(-3px); } 75% { transform: translateX(3px); } } --animate-progress-fast: loading-progress 2s infinite linear; @keyframes loading-progress { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } } } :root { --background: hsl(0 0% 100%); --foreground: hsl(240 5.9% 10%); --card: hsl(0 0% 100%); --card-foreground: hsl(240 5.9% 10%); --popover: hsl(0 0% 100%); --popover-foreground: hsl(240 5.9% 10%); --primary: hsl(199 89% 48%); /* Modern Cyan */ --primary-foreground: hsl(0 0% 100%); --secondary: hsl(210 40% 96.1%); --secondary-foreground: hsl(222.2 47.4% 11.2%); --muted: hsl(210 40% 96.1%); --muted-foreground: hsl(215.4 16.3% 46.9%); --accent: hsl(210 40% 96.1%); --accent-foreground: hsl(222.2 47.4% 11.2%); --destructive: hsl(0 84.2% 60.2%); --destructive-foreground: hsl(210 40% 98%); --border: hsl(214.3 31.8% 91.4%); --input: hsl(214.3 31.8% 91.4%); --ring: hsl(199 89% 48%); --radius: 0.5rem; } .dark { --background: hsl(240 10% 3.9%); --foreground: hsl(0 0% 98%); --card: hsl(240 10% 3.9%); --card-foreground: hsl(0 0% 98%); --popover: hsl(240 10% 3.9%); --popover-foreground: hsl(0 0% 98%); --primary: hsl(199 89% 55%); /* Brighter Cyan for Dark Mode */ --primary-foreground: hsl(0 0% 100%); --secondary: hsl(240 3.7% 15.9%); --secondary-foreground: hsl(0 0% 98%); --muted: hsl(240 3.7% 15.9%); --muted-foreground: hsl(240 5% 64.9%); --accent: hsl(240 3.7% 15.9%); --accent-foreground: hsl(0 0% 98%); --destructive: hsl(0 62.8% 30.6%); --destructive-foreground: hsl(0 0% 98%); --border: hsl(240 3.7% 15.9%); --input: hsl(240 3.7% 15.9%); --ring: hsl(199 89% 55%); } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* --- Custom Scrollbar --- */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: var(--background); } ::-webkit-scrollbar-thumb { background: var(--border); border: 3px solid var(--background); background-clip: content-box; border-radius: 9999px; } ::-webkit-scrollbar-thumb:hover { background: var(--muted-foreground); border: 3px solid var(--background); background-clip: content-box; } /* Firefox */ * { scrollbar-width: thin; scrollbar-color: var(--border) var(--background); } .fade-enter-active, .fade-exit-active { transition: opacity 0.2s ease; } .fade-enter, .fade-exit-to { opacity: 0; } /* --- Tiptap Table Selection --- */ .ProseMirror td.selectedCell, .ProseMirror th.selectedCell { background: color-mix(in srgb, var(--primary), transparent 90%); position: relative; } .ProseMirror td.selectedCell::after, .ProseMirror th.selectedCell::after { content: ""; position: absolute; inset: -1px; border: 2px solid var(--primary); pointer-events: none; z-index: 10; }