@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&display=swap');


@import "tailwindcss";


@layer base {
    html {
        font-family: 'Source Sans 3';
    }


}

@layer components {
    .assistant-message * {
        font-family: 'Libre Caslon Text', serif !important;
    }

    /* Custom prose styles - no dependency on typography plugin */
    .prose-chat {
        @apply text-base leading-relaxed max-w-none;
        color: rgb(17 24 39);
        /* gray-900 */
    }

    .prose-chat h1,
    .prose-chat h2,
    .prose-chat h3,
    .prose-chat h4,
    .prose-chat h5,
    .prose-chat h6 {
        @apply font-bold mt-4 mb-2;
        color: rgb(17 24 39);
        /* gray-900 */
    }

    .prose-chat h1 {
        @apply text-xl;
    }

    .prose-chat h2 {
        @apply text-lg;
    }

    .prose-chat h3 {
        @apply text-base;
    }

    .prose-chat p {
        @apply my-2;
    }

    .prose-chat pre {
        @apply rounded-lg my-3 text-sm p-4 overflow-x-auto;
        background-color: rgb(31 41 55);
        /* gray-800 */
        color: rgb(243 244 246);
        /* gray-100 */
    }

    .prose-chat code:not(pre code) {
        @apply px-1 py-0.5 rounded text-sm font-mono;
        background-color: rgb(229 231 235);
        /* gray-200 */
    }

    .prose-chat code:not(pre code)::before,
    .prose-chat code:not(pre code)::after {
        content: '';
    }

    .prose-chat ul,
    .prose-chat ol {
        @apply my-2 pl-6;
    }

    .prose-chat ul {
        @apply list-disc;
    }

    .prose-chat ol {
        @apply list-decimal;
    }

    .prose-chat li {
        @apply my-1;
    }

    .prose-chat blockquote {
        @apply pl-4 italic my-3;
        border-left: 4px solid rgb(209 213 219);
        /* gray-300 */
    }

    .prose-chat table {
        @apply my-3 min-w-full;
    }

    .prose-chat table th {
        @apply px-3 py-2 font-bold text-left;
        background-color: rgb(243 244 246);
        /* gray-100 */
    }

    .prose-chat table td {
        @apply px-3 py-2;
        border-top: 1px solid rgb(229 231 235);
        /* gray-200 */
    }

    .prose-chat a {
        @apply underline font-medium;
        color: rgb(2 132 199);
        /* sky-600 */
    }

    .prose-chat a:hover {
        @apply no-underline;
        color: rgb(7 89 133);
        /* sky-800 */
    }

    /* Assistant specific prose styles */
    .prose-chat-assistant {
        font-family: 'Libre Caslon Text', serif !important;
    }

    .prose-chat-assistant * {
        font-family: inherit !important;
    }

    .prose-chat-assistant code,
    .prose-chat-assistant pre {
        font-family: monospace !important;
    }

    .prose-chat-assistant code:not(pre code) {
        background-color: rgb(209 213 219);
        /* gray-300 */
    }
}

@layer utilities {
    .no-scrollbar::-webkit-scrollbar {
        display: none;
    }

    .no-scrollbar {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    @keyframes bounce {

        0%,
        60%,
        100% {
            transform: translateY(0);
        }

        30% {
            transform: translateY(-10px);
        }
    }
}

tippy-box[data-animation="fade"][data-state="hidden"] {
    opacity: 0;
}

[data-tippy-root] {
    max-width: calc(100vw - 10px);
}

.tippy-box {
    position: relative;
    background-color: #333;
    color: #fff;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.4;
    white-space: normal;
    outline: 0;
    transition-property: transform, visibility, opacity;
}

.tippy-box[data-placement^="top"]>.tippy-arrow {
    bottom: 0;
}

.tippy-box[data-placement^="top"]>.tippy-arrow:before {
    bottom: -7px;
    left: 0;
    border-width: 8px 8px 0;
    border-top-color: initial;
    transform-origin: center top;
}

.tippy-box[data-placement^="bottom"]>.tippy-arrow {
    top: 0;
}

.tippy-box[data-placement^="bottom"]>.tippy-arrow:before {
    top: -7px;
    left: 0;
    border-width: 0 8px 8px;
    border-bottom-color: initial;
    transform-origin: center bottom;
}

.tippy-box[data-placement^="left"]>.tippy-arrow {
    right: 0;
}

.tippy-box[data-placement^="left"]>.tippy-arrow:before {
    border-width: 8px 0 8px 8px;
    border-left-color: initial;
    right: -7px;
    transform-origin: center left;
}

.tippy-box[data-placement^="right"]>.tippy-arrow {
    left: 0;
}

.tippy-box[data-placement^="right"]>.tippy-arrow:before {
    left: -7px;
    border-width: 8px 8px 8px 0;
    border-right-color: initial;
    transform-origin: center right;
}

.tippy-box[data-inertia][data-state="visible"] {
    transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
}

.tippy-arrow {
    width: 16px;
    height: 16px;
    color: #333;
}

.tippy-arrow:before {
    content: "";
    position: absolute;
    border-color: transparent;
    border-style: solid;
}

.tippy-content {
    position: relative;
    padding: 5px 9px;
    z-index: 1;
}