@import "tailwindcss"; @plugin "@tailwindcss/typography"; @import "tw-animate-css"; @import "vazirmatn/Vazirmatn-font-face.css"; @custom-variant dark (&:is(.dark *)); /* Custom breakpoints for desktop design (matching code.html reference) */ @theme { /* Desktop breakpoints: 1024px (min), 1440px (large), 1920px (ultra-wide) */ --breakpoint-desktop: 1024px; --breakpoint-large-desktop: 1440px; --breakpoint-ultra-wide: 1920px; /* Custom colors matching Keep design */ --color-primary: #64748b; --color-background-light: #f7f7f8; --color-background-dark: #1a1d23; } /* Custom scrollbar for better aesthetics - Keep style */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } .dark ::-webkit-scrollbar-thumb { background: #475569; } /* Custom Prose overrides for compact notes */ @utility prose-compact { & :where(h1, h2, h3, h4) { margin-top: 0.5rem; margin-bottom: 0.25rem; } & :where(p, ul, ol, li) { margin-top: 0.25rem; margin-bottom: 0.25rem; } } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --radius-2xl: calc(var(--radius) + 8px); --radius-3xl: calc(var(--radius) + 12px); --radius-4xl: calc(var(--radius) + 16px); } :root { --radius: 0.625rem; --background: oklch(0.985 0.003 230); /* Blanc grisâtre */ --foreground: oklch(0.2 0.02 230); /* Gris-bleu foncé */ --card: oklch(1 0 0); /* Blanc pur */ --card-foreground: oklch(0.2 0.02 230); --popover: oklch(1 0 0); --popover-foreground: oklch(0.2 0.02 230); --primary: oklch(0.45 0.08 230); /* Gris-bleu doux */ --primary-foreground: oklch(0.99 0 0); /* Blanc */ --secondary: oklch(0.94 0.005 230); /* Gris-bleu très pâle */ --secondary-foreground: oklch(0.2 0.02 230); --muted: oklch(0.92 0.005 230); --muted-foreground: oklch(0.6 0.01 230); --accent: oklch(0.94 0.005 230); --accent-foreground: oklch(0.2 0.02 230); --destructive: oklch(0.6 0.18 25); /* Rouge */ --border: oklch(0.9 0.008 230); /* Gris-bleu très clair */ --input: oklch(0.98 0.003 230); --ring: oklch(0.7 0.005 230); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.97 0.004 230); --sidebar-foreground: oklch(0.2 0.02 230); --sidebar-primary: oklch(0.45 0.08 230); --sidebar-primary-foreground: oklch(0.99 0 0); --sidebar-accent: oklch(0.94 0.005 230); --sidebar-accent-foreground: oklch(0.2 0.02 230); --sidebar-border: oklch(0.9 0.008 230); --sidebar-ring: oklch(0.7 0.005 230); } [data-theme='light'] { --background: oklch(0.985 0.003 230); /* Blanc grisâtre */ --foreground: oklch(0.2 0.02 230); /* Gris-bleu foncé */ --card: oklch(1 0 0); /* Blanc pur */ --card-foreground: oklch(0.2 0.02 230); --popover: oklch(1 0 0); --popover-foreground: oklch(0.2 0.02 230); --primary: oklch(0.45 0.08 230); /* Gris-bleu doux */ --primary-foreground: oklch(0.99 0 0); /* Blanc */ --secondary: oklch(0.94 0.005 230); /* Gris-bleu très pâle */ --secondary-foreground: oklch(0.2 0.02 230); --muted: oklch(0.92 0.005 230); --muted-foreground: oklch(0.6 0.01 230); --accent: oklch(0.94 0.005 230); --accent-foreground: oklch(0.2 0.02 230); --destructive: oklch(0.6 0.18 25); /* Rouge */ --border: oklch(0.9 0.008 230); /* Gris-bleu très clair */ --input: oklch(0.98 0.003 230); --ring: oklch(0.7 0.005 230); --popover: oklch(1 0 0); --popover-foreground: oklch(0.2 0.02 230); --sidebar: oklch(0.97 0.004 230); --sidebar-foreground: oklch(0.2 0.02 230); --sidebar-primary: oklch(0.45 0.08 230); --sidebar-primary-foreground: oklch(0.99 0 0); --sidebar-accent: oklch(0.94 0.005 230); --sidebar-accent-foreground: oklch(0.2 0.02 230); --sidebar-border: oklch(0.9 0.008 230); --sidebar-ring: oklch(0.7 0.005 230); } [data-theme='light'].dark { --background: oklch(0.14 0.005 230); /* Noir grisâtre */ --foreground: oklch(0.97 0.003 230); /* Blanc grisâtre */ --card: oklch(0.18 0.006 230); /* Gris-bleu foncé */ --card-foreground: oklch(0.97 0.003 230); --popover: oklch(0.18 0.006 230); --popover-foreground: oklch(0.97 0.003 230); --primary: oklch(0.55 0.08 230); /* Gris-bleu plus clair */ --primary-foreground: oklch(0.1 0 0); /* Noir */ --secondary: oklch(0.24 0.006 230); --secondary-foreground: oklch(0.97 0.003 230); --muted: oklch(0.22 0.006 230); --muted-foreground: oklch(0.55 0.01 230); --accent: oklch(0.24 0.006 230); --accent-foreground: oklch(0.97 0.003 230); --destructive: oklch(0.65 0.18 25); --border: oklch(0.28 0.01 230); --input: oklch(0.2 0.006 230); --ring: oklch(0.6 0.01 230); --popover: oklch(0.18 0.006 230); --popover-foreground: oklch(0.97 0.003 230); --sidebar: oklch(0.12 0.005 230); --sidebar-foreground: oklch(0.97 0.003 230); --sidebar-primary: oklch(0.55 0.08 230); --sidebar-primary-foreground: oklch(0.1 0 0); --sidebar-accent: oklch(0.24 0.006 230); --sidebar-accent-foreground: oklch(0.97 0.003 230); --sidebar-border: oklch(0.28 0.01 230); --sidebar-ring: oklch(0.6 0.01 230); } .dark { --background: oklch(0.14 0.005 230); /* Noir grisâtre */ --foreground: oklch(0.97 0.003 230); /* Blanc grisâtre */ --card: oklch(0.18 0.006 230); /* Gris-bleu foncé */ --card-foreground: oklch(0.97 0.003 230); --popover: oklch(0.18 0.006 230); --popover-foreground: oklch(0.97 0.003 230); --primary: oklch(0.55 0.08 230); /* Gris-bleu plus clair */ --primary-foreground: oklch(0.1 0 0); /* Noir */ --secondary: oklch(0.24 0.006 230); --secondary-foreground: oklch(0.97 0.003 230); --muted: oklch(0.22 0.006 230); --muted-foreground: oklch(0.55 0.01 230); --accent: oklch(0.24 0.006 230); --accent-foreground: oklch(0.97 0.003 230); --destructive: oklch(0.65 0.18 25); --border: oklch(0.28 0.01 230); --input: oklch(0.2 0.006 230); --ring: oklch(0.6 0.01 230); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.12 0.005 230); --sidebar-foreground: oklch(0.97 0.003 230); --sidebar-primary: oklch(0.55 0.08 230); --sidebar-primary-foreground: oklch(0.1 0 0); --sidebar-accent: oklch(0.24 0.006 230); --sidebar-accent-foreground: oklch(0.97 0.003 230); --sidebar-border: oklch(0.28 0.01 230); --sidebar-ring: oklch(0.6 0.01 230); } [data-theme='midnight'] { --background: oklch(0.94 0.005 250); /* Gris-bleu très pâle */ --foreground: oklch(0.18 0.03 250); /* Gris-bleu très foncé */ --card: oklch(0.97 0.006 250); /* Gris-bleu pâle */ --card-foreground: oklch(0.18 0.03 250); --primary: oklch(0.5 0.12 250); /* Gris-bleu saturé */ --primary-foreground: oklch(0.99 0 0); /* Blanc */ --secondary: oklch(0.2 0.01 250); --secondary-foreground: oklch(0.18 0.03 250); --muted: oklch(0.22 0.01 250); --muted-foreground: oklch(0.55 0.02 250); --accent: oklch(0.25 0.015 250); --accent-foreground: oklch(0.18 0.03 250); --destructive: oklch(0.6 0.22 25); --border: oklch(0.85 0.015 250); --input: oklch(0.25 0.01 250); --ring: oklch(0.65 0.015 250); --popover: oklch(0.97 0.006 250); --popover-foreground: oklch(0.18 0.03 250); --sidebar: oklch(0.9 0.01 250); --sidebar-foreground: oklch(0.18 0.03 250); --sidebar-primary: oklch(0.5 0.12 250); --sidebar-primary-foreground: oklch(0.99 0 0); --sidebar-accent: oklch(0.25 0.015 250); --sidebar-accent-foreground: oklch(0.18 0.03 250); --sidebar-border: oklch(0.85 0.015 250); --sidebar-ring: oklch(0.65 0.015 250); } [data-theme='midnight'].dark { --background: oklch(0.1 0.01 250); /* Noir profond */ --foreground: oklch(0.96 0.005 250); /* Blanc grisâtre */ --card: oklch(0.15 0.015 250); /* Gris-bleu très foncé */ --card-foreground: oklch(0.96 0.005 250); --primary: oklch(0.6 0.12 250); /* Gris-bleu vibrant */ --primary-foreground: oklch(0.1 0 0); /* Noir */ --secondary: oklch(0.18 0.015 250); --secondary-foreground: oklch(0.96 0.005 250); --muted: oklch(0.2 0.015 250); --muted-foreground: oklch(0.5 0.02 250); --accent: oklch(0.22 0.02 250); --accent-foreground: oklch(0.96 0.005 250); --destructive: oklch(0.65 0.2 25); --border: oklch(0.3 0.02 250); --input: oklch(0.22 0.02 250); --ring: oklch(0.55 0.02 250); --popover: oklch(0.15 0.015 250); --popover-foreground: oklch(0.96 0.005 250); --sidebar: oklch(0.08 0.01 250); --sidebar-foreground: oklch(0.96 0.005 250); --sidebar-primary: oklch(0.6 0.12 250); --sidebar-primary-foreground: oklch(0.1 0 0); --sidebar-accent: oklch(0.22 0.02 250); --sidebar-accent-foreground: oklch(0.96 0.005 250); --sidebar-border: oklch(0.3 0.02 250); --sidebar-ring: oklch(0.55 0.02 250); } [data-theme='blue'] { --background: oklch(0.985 0.005 225); /* Blanc légèrement bleuté */ --foreground: oklch(0.18 0.035 225); /* Gris-bleu foncé saturé */ --card: oklch(1 0 0); /* Blanc pur */ --card-foreground: oklch(0.18 0.035 225); --primary: oklch(0.5 0.15 225); /* Bleu vibrant */ --primary-foreground: oklch(0.99 0 0); /* Blanc */ --secondary: oklch(0.93 0.008 225); --secondary-foreground: oklch(0.18 0.035 225); --muted: oklch(0.9 0.01 225); --muted-foreground: oklch(0.58 0.015 225); --accent: oklch(0.93 0.01 225); --accent-foreground: oklch(0.18 0.035 225); --destructive: oklch(0.6 0.2 25); --border: oklch(0.87 0.012 225); --input: oklch(0.95 0.01 225); --ring: oklch(0.65 0.015 225); --popover: oklch(1 0 0); --popover-foreground: oklch(0.18 0.035 225); --sidebar: oklch(0.965 0.008 225); --sidebar-foreground: oklch(0.18 0.035 225); --sidebar-primary: oklch(0.5 0.15 225); --sidebar-primary-foreground: oklch(0.99 0 0); --sidebar-accent: oklch(0.93 0.01 225); --sidebar-accent-foreground: oklch(0.18 0.035 225); --sidebar-border: oklch(0.87 0.012 225); --sidebar-ring: oklch(0.65 0.015 225); } [data-theme='blue'].dark { --background: oklch(0.13 0.008 225); /* Noir légèrement bleuté */ --foreground: oklch(0.97 0.006 225); /* Blanc légèrement bleuté */ --card: oklch(0.17 0.01 225); /* Gris-bleu foncé */ --card-foreground: oklch(0.97 0.006 225); --primary: oklch(0.6 0.15 225); /* Bleu vibrant plus clair */ --primary-foreground: oklch(0.1 0 0); /* Noir */ --secondary: oklch(0.22 0.015 225); --secondary-foreground: oklch(0.97 0.006 225); --muted: oklch(0.25 0.02 225); --muted-foreground: oklch(0.52 0.018 225); --accent: oklch(0.25 0.025 225); --accent-foreground: oklch(0.97 0.006 225); --destructive: oklch(0.65 0.22 25); --border: oklch(0.32 0.018 225); --input: oklch(0.25 0.02 225); --ring: oklch(0.55 0.02 225); --popover: oklch(0.17 0.01 225); --popover-foreground: oklch(0.97 0.006 225); --sidebar: oklch(0.1 0.01 225); --sidebar-foreground: oklch(0.97 0.006 225); --sidebar-primary: oklch(0.6 0.15 225); --sidebar-primary-foreground: oklch(0.1 0 0); --sidebar-accent: oklch(0.25 0.025 225); --sidebar-accent-foreground: oklch(0.97 0.006 225); --sidebar-border: oklch(0.32 0.018 225); --sidebar-ring: oklch(0.55 0.02 225); } [data-theme='sepia'] { --background: oklch(0.985 0.004 45); /* Blanc légèrement doré */ --foreground: oklch(0.2 0.015 45); /* Gris-brun foncé */ --card: oklch(1 0 0); /* Blanc pur */ --card-foreground: oklch(0.2 0.015 45); --primary: oklch(0.45 0.08 45); /* Gris-brun chaud */ --primary-foreground: oklch(0.99 0 0); /* Blanc */ --secondary: oklch(0.94 0.008 45); --secondary-foreground: oklch(0.2 0.015 45); --muted: oklch(0.91 0.01 45); --muted-foreground: oklch(0.6 0.012 45); --accent: oklch(0.93 0.01 45); --accent-foreground: oklch(0.2 0.015 45); --destructive: oklch(0.6 0.2 25); --border: oklch(0.88 0.012 45); --input: oklch(0.97 0.008 45); --ring: oklch(0.68 0.01 45); --popover: oklch(1 0 0); --popover-foreground: oklch(0.2 0.015 45); --sidebar: oklch(0.96 0.01 45); --sidebar-foreground: oklch(0.2 0.015 45); --sidebar-primary: oklch(0.45 0.08 45); --sidebar-primary-foreground: oklch(0.99 0 0); --sidebar-accent: oklch(0.93 0.01 45); --sidebar-accent-foreground: oklch(0.2 0.015 45); --sidebar-border: oklch(0.88 0.012 45); --sidebar-ring: oklch(0.68 0.01 45); } [data-theme='sepia'].dark { --background: oklch(0.15 0.008 45); /* Noir légèrement bruni */ --foreground: oklch(0.97 0.005 45); /* Blanc légèrement bruni */ --card: oklch(0.19 0.01 45); /* Gris-brun foncé */ --card-foreground: oklch(0.97 0.005 45); --primary: oklch(0.55 0.08 45); /* Gris-brun plus clair */ --primary-foreground: oklch(0.1 0 0); /* Noir */ --secondary: oklch(0.25 0.015 45); --secondary-foreground: oklch(0.97 0.005 45); --muted: oklch(0.23 0.02 45); --muted-foreground: oklch(0.55 0.012 45); --accent: oklch(0.27 0.018 45); --accent-foreground: oklch(0.97 0.005 45); --destructive: oklch(0.65 0.2 25); --border: oklch(0.3 0.018 45); --input: oklch(0.27 0.02 45); --ring: oklch(0.58 0.02 45); --popover: oklch(0.19 0.01 45); --popover-foreground: oklch(0.97 0.005 45); --sidebar: oklch(0.12 0.01 45); --sidebar-foreground: oklch(0.97 0.005 45); --sidebar-primary: oklch(0.55 0.08 45); --sidebar-primary-foreground: oklch(0.1 0 0); --sidebar-accent: oklch(0.27 0.018 45); --sidebar-accent-foreground: oklch(0.97 0.005 45); --sidebar-border: oklch(0.3 0.018 45); --sidebar-ring: oklch(0.58 0.02 45); } @layer base { * { @apply border-border outline-ring/50; } /* Set base font size on html element - this affects all rem units */ html { font-size: var(--user-font-size, 16px); } body { @apply bg-background text-foreground; /* Body inherits from html, can be adjusted per language */ } /* Latin languages use default (inherits from html) */ [lang='en'] body, [lang='fr'] body { font-size: 1rem; /* Uses html font size */ } /* Persian/Farsi font with larger size for better readability */ [lang='fa'] body { font-family: 'Vazirmatn', var(--font-sans), sans-serif !important; /* Base 110% for Persian = 1.1rem */ font-size: calc(1.1rem * var(--user-font-size-factor, 1)); } /* Ensure Persian text uses Vazirmatn even in nested elements */ [lang='fa'] * { font-family: 'Vazirmatn', sans-serif !important; } } /* ============================================ Toast Notifications - Fix UI Blocking Issue ============================================ */ /* Ensure the toaster container doesn't block clicks on the page underneath */ [data-sonner-toaster] { pointer-events: none !important; } /* Ensure all children of toaster don't block except the toast itself */ [data-sonner-toaster]>* { pointer-events: none !important; } /* But allow interaction with the toast itself (buttons, close, etc) */ [data-sonner-toast] { pointer-events: auto !important; } /* Also ensure any overlay or background doesn't block */ [data-sonner-toaster]::before, [data-sonner-toaster]::after { pointer-events: none !important; } /* ============================================ Muuri Grid Styles for Drag & Drop ============================================ */ .muuri-grid { position: relative; } /* Note: Width is controlled by Tailwind classes (w-1/2, w-1/3, w-full, etc.) */ .muuri-item { position: absolute; /* width: 100%; REMOVED - Don't override Tailwind size classes */ } .muuri-item.muuri-item-dragging { z-index: 3; } .muuri-item.muuri-item-releasing { z-index: 2; } .muuri-item.muuri-item-hidden { z-index: 0; } /* Ensure note cards work properly with Muuri */ .muuri-item>* { width: 100%; }