@tailwind base; @tailwind components; @tailwind utilities; /* Hide scrollbar but keep functionality */ .scrollbar-hide { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } .scrollbar-hide::-webkit-scrollbar { display: none; /* Chrome, Safari and Opera */ } html, body, :root { height: 100%; } @layer base { :root { --background: 0 0% 100%; --foreground: 0 0% 3.9%; --card: 0 0% 100%; --card-foreground: 0 0% 3.9%; --popover: 0 0% 100%; --popover-foreground: 0 0% 3.9%; --primary: 0 0% 9%; --primary-foreground: 0 0% 98%; --secondary: 0 0% 96.1%; --secondary-foreground: 0 0% 9%; --muted: 0 0% 96.1%; --muted-foreground: 0 0% 45.1%; --accent: 0 0% 96.1%; --accent-foreground: 0 0% 9%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 0 0% 98%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; --ring: 0 0% 3.9%; --radius: 0.5rem; } .dark { --background: 0 0% 3.9%; --foreground: 0 0% 98%; --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; --popover: 0 0% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; --primary-foreground: 0 0% 9%; --secondary: 0 0% 14.9%; --secondary-foreground: 0 0% 98%; --muted: 0 0% 14.9%; --muted-foreground: 0 0% 63.9%; --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 0 0% 98%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; --ring: 0 0% 83.1%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* Tiptap Editor Styles */ .ProseMirror { outline: none; min-height: 200px; color: #1f2937; /* Default text color for light theme */ } /* Dark theme text color */ .dark .ProseMirror, .dark .ProseMirror p, .dark .ProseMirror div, .dark .ProseMirror span { color: #ffffff !important; /* 완전한 하얀색 강제 적용 */ } .ProseMirror p.is-editor-empty:first-child::before { color: #adb5bd; content: attr(data-placeholder); float: left; height: 0; pointer-events: none; } /* Dark theme placeholder */ .dark .ProseMirror p.is-editor-empty:first-child::before { color: #6b7280; } .ProseMirror h1 { font-size: 2em; font-weight: bold; margin: 0.67em 0; color: #111827; } .ProseMirror h2 { font-size: 1.5em; font-weight: bold; margin: 0.83em 0; color: #111827; } .ProseMirror h3 { font-size: 1.17em; font-weight: bold; margin: 1em 0; color: #111827; } /* Dark theme headings */ .dark .ProseMirror h1, .dark .ProseMirror h2, .dark .ProseMirror h3 { color: #f9fafb; } .ProseMirror ul, .ProseMirror ol { padding-left: 1.5em; color: inherit; } .ProseMirror li { color: inherit; } .ProseMirror blockquote { border-left: 3px solid #e2e8f0; padding-left: 1rem; margin: 1rem 0; font-style: italic; color: #6b7280; } /* Dark theme blockquote */ .dark .ProseMirror blockquote { color: #ffffff; /* 완전한 하얀색 */ } .ProseMirror code { background-color: #f1f5f9; border-radius: 0.25rem; padding: 0.125rem 0.25rem; font-family: 'Courier New', monospace; color: #374151; } /* Dark theme inline code */ .dark .ProseMirror code { background-color: #374151; color: #f3f4f6; } .ProseMirror pre { background-color: #1e293b; color: #e2e8f0; border-radius: 0.5rem; padding: 1rem; overflow-x: auto; margin: 1rem 0; } .ProseMirror pre code { background: none; padding: 0; color: inherit; } .ProseMirror table { border-collapse: collapse; margin: 1rem 0; width: 100%; } .ProseMirror th, .ProseMirror td { border: 1px solid #e2e8f0; padding: 0.5rem; text-align: left; } .ProseMirror th { background-color: #f8fafc; font-weight: bold; } .ProseMirror img { max-width: 100%; height: auto; border-radius: 0.5rem; } .ProseMirror a { color: #3b82f6; text-decoration: underline; } /* Dark theme links */ .dark .ProseMirror a { color: #60a5fa; } .ProseMirror mark { background-color: #fef08a; padding: 0.125rem 0.25rem; border-radius: 0.25rem; } /* Dark theme highlight */ .dark .ProseMirror mark { background-color: #fbbf24; color: #111827; } .ProseMirror ul[data-type="taskList"] { list-style: none; padding: 0; } .ProseMirror ul[data-type="taskList"] li { display: flex; align-items: flex-start; } .ProseMirror ul[data-type="taskList"] li > label { flex: 0 0 auto; margin-right: 0.5rem; user-select: none; } .ProseMirror ul[data-type="taskList"] li > div { flex: 1 1 auto; } .ProseMirror ul[data-type="taskList"] input[type="checkbox"] { cursor: pointer; } /* Dark mode styles */ .dark .ProseMirror blockquote { border-left-color: #475569; } .dark .ProseMirror code { background-color: #334155; } .dark .ProseMirror th { background-color: #1e293b; } .dark .ProseMirror th, .dark .ProseMirror td { border-color: #475569; } /* Line clamp utilities */ .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } /* Code block styles */ pre { display: block; overflow-x: auto; padding: 1rem; background: #1e1e1e; color: #d4d4d4; border-radius: 0.5rem; font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 0.875rem; line-height: 1.5; } /* Light mode code block */ .light pre { background: #f8f8f8; color: #333; }