/* Typography Base */
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

textarea, .font-mono {
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/* Diff Output Styles */

/* Inline View */
.diff-inline {
    padding: 1rem;
    white-space: pre-wrap;
    word-break: break-all;
}

.diff-inline ins {
    background-color: var(--tw-color-diffAddBg);
    color: var(--tw-color-diffAddText);
    text-decoration: none;
    padding: 0.1em 0.2em;
    border-radius: 0.2em;
}

.dark .diff-inline ins {
    color: var(--tw-color-diffAddTextDark);
}

.diff-inline del {
    background-color: var(--tw-color-diffRemoveBg);
    color: var(--tw-color-diffRemoveText);
    text-decoration: line-through;
    padding: 0.1em 0.2em;
    border-radius: 0.2em;
}

.dark .diff-inline del {
    color: var(--tw-color-diffRemoveTextDark);
}


/* Side-by-Side View */
.diff-split {
    display: flex;
    width: 100%;
    min-height: 100%;
}

.split-side {
    flex: 1;
    width: 50%;
    overflow-x: auto;
    padding: 1rem;
}

.split-side.left {
    border-right: 1px solid #e5e7eb;
}
.dark .split-side.left {
    border-right: 1px solid #1f2937;
}

/* Base line styles */
.split-line {
    display: flex;
    white-space: pre;
    min-height: 1.5em; /* Ensure empty lines still have height */
}

/* Left side (Original) removes */
.split-side.left .removed {
    background-color: var(--tw-color-diffRemoveBg);
    color: var(--tw-color-diffRemoveText);
    display: inline-block;
    min-width: 100%;
}
.dark .split-side.left .removed {
    color: var(--tw-color-diffRemoveTextDark);
}
.split-side.left .added {
    display: none; /* Hide additions on the left */
}
.split-side.left .padded {
    background-color: rgba(0,0,0,0.03); /* Padding to sync lines */
    min-height: 1.5em;
    display: inline-block;
    min-width: 100%;
}
.dark .split-side.left .padded {
    background-color: rgba(255,255,255,0.02);
}

/* Right side (Modified) adds */
.split-side.right .added {
    background-color: var(--tw-color-diffAddBg);
    color: var(--tw-color-diffAddText);
    display: inline-block;
    min-width: 100%;
}
.dark .split-side.right .added {
    color: var(--tw-color-diffAddTextDark);
}
.split-side.right .removed {
    display: none; /* Hide deletions on the right */
}
.split-side.right .padded {
    background-color: rgba(0,0,0,0.03); /* Padding to sync lines */
    min-height: 1.5em;
    display: inline-block;
    min-width: 100%;
}
.dark .split-side.right .padded {
    background-color: rgba(255,255,255,0.02);
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}
.dark ::-webkit-scrollbar-thumb {
    background: #4b5563;
}
.dark ::-webkit-scrollbar-thumb:hover {
    background: #6b7280;
}
