@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&family=Fira+Sans: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=Google+Sans+Code:ital,wght@0,300..800;1,300..800&display=swap'); /* Override Bootstrap dark theme to use light variables */ html[data-bs-theme="dark"] { --bs-blue: #0d6efd; --bs-indigo: #6610f2; --bs-purple: #6f42c1; --bs-pink: #d63384; --bs-red: #dc3545; --bs-orange: #fd7e14; --bs-yellow: #ffc107; --bs-green: #198754; --bs-teal: #20c997; --bs-cyan: #0dcaf0; --bs-black: #000; --bs-white: #fff; --bs-gray: #6c757d; --bs-gray-dark: #343a40; --bs-gray-100: #f8f9fa; --bs-gray-200: #e9ecef; --bs-gray-300: #dee2e6; --bs-gray-400: #ced4da; --bs-gray-500: #adb5bd; --bs-gray-600: #6c757d; --bs-gray-700: #495057; --bs-gray-800: #343a40; --bs-gray-900: #212529; --bs-primary: #0d6efd; --bs-secondary: #6c757d; --bs-success: #198754; --bs-info: #0dcaf0; --bs-warning: #ffc107; --bs-danger: #dc3545; --bs-light: #f8f9fa; --bs-dark: #212529; --bs-primary-rgb: 13, 110, 253; --bs-secondary-rgb: 108, 117, 125; --bs-success-rgb: 25, 135, 84; --bs-info-rgb: 13, 202, 240; --bs-warning-rgb: 255, 193, 7; --bs-danger-rgb: 220, 53, 69; --bs-light-rgb: 248, 249, 250; --bs-dark-rgb: 33, 37, 41; --bs-primary-text-emphasis: #052c65; --bs-secondary-text-emphasis: #2b2f32; --bs-success-text-emphasis: #0a3622; --bs-info-text-emphasis: #055160; --bs-warning-text-emphasis: #664d03; --bs-danger-text-emphasis: #58151c; --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; --bs-primary-bg-subtle: #cfe2ff; --bs-secondary-bg-subtle: #e2e3e5; --bs-success-bg-subtle: #d1e7dd; --bs-info-bg-subtle: #cff4fc; --bs-warning-bg-subtle: #fff3cd; --bs-danger-bg-subtle: #f8d7da; --bs-light-bg-subtle: #fcfcfd; --bs-dark-bg-subtle: #ced4da; --bs-primary-border-subtle: #9ec5fe; --bs-secondary-border-subtle: #c4c8cb; --bs-success-border-subtle: #a3cfbb; --bs-info-border-subtle: #9eeaf9; --bs-warning-border-subtle: #ffe69c; --bs-danger-border-subtle: #f1aeb5; --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; --bs-black-rgb: 0, 0, 0; --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); --bs-body-font-family: var(--bs-font-sans-serif); --bs-body-font-size: 1rem; --bs-body-font-weight: 400; --bs-body-line-height: 1.5; --bs-body-color: #212529; --bs-body-color-rgb: 33, 37, 41; --bs-body-bg: #fff; --bs-body-bg-rgb: 255, 255, 255; --bs-emphasis-color: #000; --bs-emphasis-color-rgb: 0, 0, 0; --bs-secondary-color: rgba(33, 37, 41, 0.75); --bs-secondary-color-rgb: 33, 37, 41; --bs-secondary-bg: #e9ecef; --bs-secondary-bg-rgb: 233, 236, 239; --bs-tertiary-color: rgba(33, 37, 41, 0.5); --bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg-rgb: 248, 249, 250; --bs-heading-color: inherit; --bs-link-color: #0d6efd; --bs-link-color-rgb: 13, 110, 253; --bs-link-decoration: underline; --bs-link-hover-color: #0a58ca; --bs-link-hover-color-rgb: 10, 88, 202; --bs-code-color: #d63384; --bs-highlight-color: #212529; --bs-highlight-bg: #fff3cd; --bs-border-width: 1px; --bs-border-style: solid; --bs-border-color: #dee2e6; --bs-border-color-translucent: rgba(0, 0, 0, 0.175); --bs-border-radius: 0.375rem; --bs-border-radius-sm: 0.25rem; --bs-border-radius-lg: 0.5rem; --bs-border-radius-xl: 1rem; --bs-border-radius-xxl: 2rem; --bs-border-radius-2xl: var(--bs-border-radius-xxl); --bs-border-radius-pill: 50rem; --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); --bs-focus-ring-width: 0.25rem; --bs-focus-ring-opacity: 0.25; --bs-focus-ring-color: rgba(13, 110, 253, 0.25); --bs-form-valid-color: #198754; --bs-form-valid-border-color: #198754; --bs-form-invalid-color: #dc3545; --bs-form-invalid-border-color: #dc3545; color: var(--bs-body-color); background-color: var(--bs-body-bg); } /* Additional overrides for specific classes */ .text-light { color: #212529 !important; } .bg-dark { background-color: #ffffff !important; } .navbar.bg-dark { background-color: #ffffff !important; } .list-group-item-dark { background-color: #f8f9fa !important; color: #212529 !important; } .form-control, .form-select { background-color: #f8f9fa !important; color: #212529 !important; border-color: #ced4da !important; } .btn-group .btn-select { background-color: #f8f9fa !important; color: #6c757d !important; border-color: #ced4da !important; } /* === Base =============================================================== */ body { font-family: "Fira Sans", sans-serif; font-weight: 300; font-optical-sizing: auto; font-style: normal; font-variation-settings: "wdth" 100; background-color: #ffffff !important; color: #212529; margin: 0 !important; padding: 0 !important; overflow-x: hidden; } .card { background-color: #ffffff; border: none; color: #212529; margin-bottom: 1.5rem; } .container-xl { max-width: 1140px; margin: 0 auto; padding: 0 15px; } /* === Navbar & forms ===================================================== */ .navbar { background-color: #ffffff; border-bottom: 1px solid rgba(0,0,0,.1); } .navbar-brand { font-weight: 600; font-size: 1.5rem; display: flex; align-items: center; gap: 8px; } .nav-link { color: #212529; transition: color .2s; } .nav-link:hover { color: #0d6efd !important; } .search-form { max-width: 300px; width: 100%; display: flex; align-items: center; } .search-form .form-control { background-color: #f8f9fa; border-color: #ced4da; color: #212529; } .search-form .form-control:focus { background-color: #f8f9fa; border-color: #0d6efd; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); } .search-form .btn { border-color: #ced4da; } .dropdown-menu { background-color: #ffffff; border: 1px solid rgba(0,0,0,.1); } .dropdown-item { color: #212529; } .dropdown-item:hover { background: #0d6efd; color: #fff; } .modal-content { background: #ffffff; } .modal-header { border-bottom: 1px solid rgba(0,0,0,.1); } .modal-footer { border-top: 1px solid rgba(0,0,0,.1); } .btn-oauth { display: flex; align-items: center; justify-content: center; gap: 8px; } .navbar-center { flex-grow: 1; display: flex; justify-content: center; } .navbar-toggler { margin-left: 15px; } @media (max-width: 991px) { .navbar-center { justify-content: center; } .search-form { max-width: 100%; margin: 10px auto; } .navbar-nav-guest { margin-top: 10px; } .navbar-collapse { justify-content: flex-end; } .navbar-toggler { margin-left: 10px; } } /* === reCAPTCHA (light) =================================================== */ .g-recaptcha { background: #ffffff !important; border: 0 !important; padding: 0 !important; margin-bottom: 1.5rem !important; width: 304px !important; overflow: hidden !important; } .g-recaptcha > div, .g-recaptcha iframe { background: #ffffff !important; border: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; } .g-recaptcha * { background: #ffffff !important; color: #212529 !important; border: 0 !important; } .g-recaptcha > div > div { background: #ffffff !important; border: 0 !important; box-shadow: none !important; } .g-recaptcha iframe { transform: scale(1) !important; -webkit-transform: scale(1) !important; transform-origin: 0 0 !important; -webkit-transform-origin: 0 0 !important; } /* === Buttons & inputs =================================================== */ .paste-button { width: 150px; margin-top: 1.5rem !important; } /* select disguised as a button inside .btn-group */ .btn-group .btn-select { width: auto; padding: .25rem .75rem; border: 1px solid var(--bs-secondary); color: var(--bs-secondary); border-radius: 0; appearance: none; } .btn-group > .btn-select:first-child { border-top-left-radius: var(--bs-border-radius-sm); border-bottom-left-radius: var(--bs-border-radius-sm); } .btn-group > .btn-select:last-child { border-top-right-radius: var(--bs-border-radius-sm); border-bottom-right-radius: var(--bs-border-radius-sm); } .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-check:checked + .btn-outline-secondary, .show > .btn-outline-secondary.dropdown-toggle { background-color: rgba(var(--bs-secondary-rgb), .2); color: var(--bs-secondary); border-color: var(--bs-secondary); } .btn-outline-secondary:focus-visible { box-shadow: 0 0 0 .2rem rgba(var(--bs-secondary-rgb), .25); } .btn-group .btn-select + .btn { margin-left: -1px; } .form-group, .card-body { background: #ffffff !important; padding: 15px; margin: 0 !important; } .list-group-item-dark { background: #f8f9fa; } .page-link { background: #f8f9fa; border-color: #dee2e6; color: #212529; } /* === Misc small UI bits ================================================= */ .line-number-tooltip { position: absolute; background: #f8f9fa; color: #212529; padding: 2px 6px; border-radius: 3px; font-size: 12px; z-index: 1000; display: none; } .recent-paste-button { margin-left: auto; min-width: 30px; } .list-group-item { display: flex; align-items: center; padding-right: 10px; } .navbar-nav-guest { margin-left: auto !important; } .navbar-nav.me-auto { margin-right: 1rem !important; } .card-header { overflow-x: auto; max-width: 100%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; } .card-header h1 { margin: 0; font-size: 1rem; } .card-header .meta { font-size: .9rem; margin: 0; } .card-header .btn-group { flex-shrink: 0; } /* === Code blocks / GeSHi =============================================== */ .code-content, .paste, .geshi { background: #f6f8fa; color: #24292e; } .code-content .de1, .paste .de2, .paste .li1, .paste .li2 { color: #24292e !important; } .code-content .kw1, .paste .sy1 { color: #005cc5 !important; } .code-content .kw2 { color: #22863a !important; } .code-content .st0 { color: #032f62 !important; } .code-content .co1, .paste .coMULTI { color: #6a737d !important; font-style: italic; } .code-content .nu0 { color: #6f42c1 !important; } .code-content .me1, .code-content .me2 { color: #005cc5 !important; } .code-content .br0 { color: #24292e !important; } .code-content .sy0 { color: #d73a49 !important; } .code-content .re0 { color: #6f42c1 !important; } .code-content .st_h { color: #22863a !important; } .geshi .kw1 { color: #005cc5 !important; } .geshi .kw2 { color: #22863a !important; } .geshi .st0 { color: #032f62 !important; } .geshi .co1 { color: #6a737d !important; font-style: italic; } .geshi .nu0 { color: #6f42c1 !important; } .geshi .sy0 { color: #d73a49 !important; } .geshi .br0 { color: #24292e !important; } .geshi .re0 { color: #6f42c1 !important; } .geshi .me1, .geshi .me2 { color: #005cc5 !important; } .geshi ol.geshi-ln { color: #6a737d; } .geshi.geshi-fancy ol.geshi-ln > li { border-left-color: #e1e4e8; } .code-content { overflow-x: auto; max-width: 100%; border-radius: 6px; margin-bottom: 1rem; font-family: "Fira Code", monospace; font-weight: 200; font-optical-sizing: auto; font-style: normal; font-size: .8rem; } .code-content li { border-left: 1px solid rgba(0,0,0,.12) !important; } .code-content.no-line-numbers ol, .code-content.no-line-numbers pre, .code-content.no-line-numbers ol li, .code-content.no-line-numbers pre span { list-style: none !important; margin-left: 0 !important; padding-left: 0 !important; border-left: none !important; } /* GeSHi tweak when numbers hidden */ .code-content.no-line-numbers ol li { padding-left: 10px !important; } .code-content.no-line-numbers ol li::before, .code-content.no-line-numbers pre::before, .code-content.no-line-numbers pre span::before { content: none !important; } .code-content-fullscreen { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 1050; margin: 0; padding: 1rem; background: #ffffff; } .syntax-select { width: 200px; } .input-group-text { background: #f8f9fa; border-color: #ced4da; color: #212529; } .guest-welcome { padding: 2rem; } .guest-welcome i { font-size: 5rem; margin-bottom: 1rem; } .no-line-numbers ol, .no-line-numbers ol li.marker { list-style: none !important; } .close-btn { position: absolute; top: 5px; right: 10px; background: none; border: none; font-size: 1.5em; cursor: pointer; color: #212529; } .notification { position: relative; overflow: auto; padding: 10px; margin-bottom: 10px; border: 1px solid #ccc; display: none; } .notification.error { border-color: #dc3545; color: #dc3545; } .notification.fade-out { opacity: 0; transition: opacity .5s; } /* GDPR banner */ #cookieBanner { font-size: .9em; z-index: 1080; display: none; background: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; backdrop-filter: blur(3px); } /* === Editor (textarea + gutter) ======================================== */ /* when a file is dragged over the editor */ .editor-wrap { position: relative; } /* Subtle outline when dragging over the zone */ #edit-code.drag-hover, .editor-wrap.drag-hover { outline: 2px dashed var(--drop-accent, var(--bs-primary, #0d6efd)); outline-offset: 4px; } /* Overlay */ .editor-wrap .drop-overlay { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; z-index: 10; pointer-events: none; /* light-friendly glass */ background: rgba(0,0,0, .06); color: var(--drop-text, #212529); border: 2px dashed rgba(0,0,0, .55); border-radius: .6rem; text-shadow: 0 1px 2px rgba(255,255,255,.6); font-weight: 600; /* gentle glow using Bootstrap primary */ box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb, 13,110,253), .15), 0 0 36px rgba(var(--bs-primary-rgb, 13,110,253), .18) inset; } .editor-wrap.dragging .drop-overlay { display: flex; } /* slightly nicer motion */ @media (prefers-reduced-motion: no-preference) { .editor-wrap .drop-overlay { transition: opacity .15s ease-in-out; opacity: .98; } .editor-wrap.dragging .drop-overlay { opacity: 1; } } .editor-wrap { position: relative; display: grid; grid-template-columns: max-content 1fr; align-items: stretch; gap: 0; overflow: hidden; box-shadow: none !important; } .editor-gutter { display: flex; overflow: hidden; text-align: right; user-select: none; white-space: pre; color: #6a737d; background: #f6f8fa; border: 1px solid #d0d7de; border-right: none; border-radius: .5rem 0 0 .5rem; box-sizing: border-box; line-height: 1.5; font-size: 14px; padding: 8px 6px; min-width: 2rem; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; } .editor-gutter-inner { white-space: pre; padding: 0 6px 0 4px; padding-top: 0; align-self: flex-start; will-change: transform; } .editor-ta { font-family: "Fira Code", monospace; line-height: 1.5; font-size: 14px; color: #24292f; background: #ffffff; border: 1px solid #d0d7de; border-left: none; border-radius: 0 .5rem .5rem 0; outline: none !important; box-shadow: none !important; resize: vertical; padding: 8px 10px; width: 100%; caret-color: #24292f; } .editor-ta::-webkit-scrollbar { width: 12px; } .editor-ta::-webkit-scrollbar-track { background: #ffffff; } .editor-ta::-webkit-scrollbar-thumb { background: #d0d7de; border-radius: 6px; border: 3px solid #ffffff; } .editor-ta:focus, .search-form .form-control:focus { box-shadow: none !important; border-color: #d0d7de !important; outline: 0 !important; } /* outline btns */ .btn-outline-secondary { --btn-border: rgba(var(--bs-secondary-rgb), .8); border-color: var(--btn-border); } .btn-outline-secondary:hover, .btn-outline-secondary:focus { border-color: var(--btn-border); background-color: rgba(var(--bs-secondary-rgb), .08); } .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-check:checked + .btn-outline-secondary, .show > .btn-outline-secondary.dropdown-toggle { border-color: var(--btn-border); background-color: rgba(var(--bs-secondary-rgb), .16); } .btn-outline-secondary:focus-visible { outline: 0; box-shadow: 0 0 0 .2rem rgba(var(--bs-secondary-rgb), .25); } .btn-group .btn { position: relative; z-index: 1; } .btn-group .btn:focus, .btn-group .btn:active, .btn-group .btn.active { z-index: 2; } .btn-group .btn-select { border-color: var(--btn-border); } .btn-group .btn-select:focus { box-shadow: none; } /* Force GeSHi line numbers to render and be visible */ .code-content ol { list-style-type: decimal !important; list-style-position: outside !important; padding-left: 3.5em !important; margin-left: 0 !important; } .code-content ol li { list-style-type: none !important; padding-left: .5em; } .code-content ol li::marker { content: counter(list-item)"\a0\a0"; } .code-content:not(.no-line-numbers) ol, .code-content:not(.no-line-numbers) ol li { list-style: decimal !important; } .no-line-numbers ol, .no-line-numbers ol li, .no-line-numbers ol li::before { list-style: none !important; counter-increment: none !important; content: '' !important; padding-left: 0 !important; margin-left: 0 !important; } .no-line-numbers ol { padding-left: 0 !important; } /* highlight.php numbers layout */ .code-content pre.hljs { margin: 0; } .code-content .hljs-ln, .code-content .hljs-ln li { list-style: none !important; margin-left: 0 !important; padding-left: 0 !important; } .code-content .hljs-ln { display: table; width: 100%; border-collapse: separate; border-spacing: 0; } .code-content .hljs-ln-line { display: table-row; } .code-content .hljs-ln-n, .code-content .hljs-ln-c { display: table-cell; vertical-align: top; background: inherit; } .code-content .hljs-ln-n { user-select: none; text-align: right; padding: 0 .50rem 0 0; white-space: pre; opacity: .6; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; width: 1px; } .code-content .hljs-ln-c { border-left: 1px solid rgba(0,0,0,.12); padding-left: .75rem; white-space: pre; width: 100%; } .code-content.no-line-numbers .hljs-ln-n { display: none; } .code-content.no-line-numbers .hljs-ln-c { border-left: 0; padding-left: 0; } /* line highlight */ :root { --line-hl-bg: rgb(107 164 255 / 12%); --line-hl-bar: rgb(74 180 255 / 50%); --line-hl: rgb(74 180 255 / 100%); } @media (prefers-color-scheme: light) { :root { --line-hl-bg: rgb(107 164 255 / 12%); --line-hl-bar: rgb(74 180 255 / 50%); --line-hl: rgb(74 180 255 / 100%); } } .hljs-hl { background: var(--line-hl-bg); position: relative; box-shadow: inset 3px 0 0 var(--line-hl-bar); } .hljs-hl::marker span.hljs-ln-n { color: var(--line-hl); } /* Markdown/Parsedown */ .md-body { padding: 20px; border-radius: var(--bs-border-radius-sm); background: #f6f8fa !important; } html { scroll-behavior: smooth; } /* ---------- Comments ---------- */ /* one place to tweak the indent */ #comments { --indent-step: 1.25rem; overflow-x: hidden; } /* IMPORTANT: cancel Bootstrap’s flex list-group inside comments */ #comments .list-group { display: block; } #comments .list-group-item { display: block !important; /* overrides .list-group-item{display:flex} */ overflow: visible; } /* text wrapping guards */ #comments .comment-main { min-width: 0; } #comments .comment-body, #comments .comment-body a { overflow-wrap: anywhere; word-break: break-word; } /* only the top level keeps dividers */ #comments .list-group.list-group-flush > .list-group-item { border-width: 0 0 1px 0; } /* each nested UL indents itself; because it's display:block, the indent reduces its available width instead of overflowing */ #comments .comment-main > ul.list-group { margin: .5rem 0 0 var(--indent-step); padding-left: .75rem; border-left: 1px solid rgba(0,0,0,.15); box-sizing: border-box; width: auto; /* don’t force 100% in flex land */ max-width: 100%; } /* nested rows don't add their own borders/padding */ #comments .comment-main > ul.list-group > .list-group-item { border: 0 !important; padding-left: 0; padding-right: 0; } .comment-avatar { width: 36px; height: 36px; background: rgba(57,155,255,.15); } #comments .list-group-item:target { outline: 1px solid rgba(13,110,253,.35); background: rgba(13,110,253,.05); scroll-margin-top: 90px; } .comment-permalink { opacity: .5; } .comment-permalink:hover { opacity: 1; } /* ---------- Diff viewer ---------- */ .diff-outer { padding-top: 12px; } /* Toolbar */ .diff-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .5rem .75rem; border: 1px solid var(--bs-border-color, #d0d7de); border-radius: .5rem; background: var(--bs-body-bg, transparent); } .diff-toolbar .grow { flex: 1; } .diff-toolbar .lbl { opacity: .8; font-size: .9rem; margin-right: .25rem; } .langbar { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; width: 100%; } .lang-select { min-width: 160px; } /* Area + scrollport */ .diff-area { --lno: 56px; /* per-side line number width */ --splitter-hit: 14px; /* pointer target width */ --splitter-line: 2px; /* visual line width */ position: relative; margin-top: .75rem; } .diff-area .diff-scroll { height: clamp(60svh, calc(100svh - 240px), 88svh); overflow: auto; border: 1px solid var(--bs-border-color, #d0d7de); border-radius: .5rem; position: relative; } /* Sticky overlay host for the splitter (no layout impact) */ .diff-area .split-overlay { position: sticky; top: 0; height: 0; pointer-events: none; z-index: 10; } /* Splitter — wide hit area, thin visual line */ .diff-area .splitter { position: absolute; top: 0; height: 100svh; left: var(--form-split-left, 50%); width: var(--splitter-hit); transform: translateX(calc(-.5 * var(--splitter-hit))); cursor: col-resize; pointer-events: auto; z-index: 11; } .diff-area .splitter::before { content: ""; position: absolute; inset: 0; margin: 0 calc((var(--splitter-hit) - var(--splitter-line)) / 2); border-radius: 1px; background: var(--bs-border-color, #d0d7de); } .diff-area .splitter::after { content: ""; position: absolute; inset: 0; background: #6c757d1a; opacity: 0; transition: opacity .12s ease-in-out; pointer-events: none; } .diff-area .splitter:hover::before { background: var(--bs-border-color, #6c757db3); } .diff-area .splitter:hover::after, .diff-area .splitter.dragging::after { opacity: .35; } /* Table */ .diff-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font: 13px/1.35 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .diff-table td { vertical-align: top; } /* Line numbers */ .diff-table td.no { width: var(--lno); min-width: var(--lno); color: var(--bs-secondary-color, #6a737d); user-select: none; text-align: right; padding: 2px 6px; border-right: 1px solid var(--bs-border-color, #d0d7de); } /* Code cells */ .diff-table td.code { padding: 0; } .code-inner { display: block; width: 100%; padding: 2px 3px; overflow-x: auto; overflow-y: visible; /* avoid nested vertical scrollbars */ } /* neutralize highlight block padding */ .code-inner .hljs { display: inline; padding: 0 !important; background: transparent; line-height: inherit; } /* Show trailing spaces faintly */ .show-invisibles .code-inner { background-image: linear-gradient(to right, transparent 0, transparent calc(100% - 1ch), rgba(0,0,0,.06) calc(100% - 1ch)); background-size: 100% 1.35em; background-repeat: repeat-y; } /* Zebra */ .diff-table tr:nth-child(even) td { background: rgba(0,0,0,.02); } @media (prefers-color-scheme: light) { .diff-table tr:nth-child(even) td { background: rgba(0,0,0,.02); } } /* highlight changes */ .diff-inside-add, .diff-inside-del { background: none; padding: 0; border-radius: 0; box-decoration-break: clone;/* each wrapped line paints correctly */ } .diff-inside-add { /* marker-style swash under the text */ box-shadow: inset 0 -0.35em 0 rgba(25,135,84,.35); outline: 1px solid transparent; outline-offset: 1px; } .diff-inside-del { box-shadow: inset 0 -0.35em 0 rgba(220,53,69,.28); /*text-decoration: line-through;*/ text-decoration-thickness: 1.8px; text-decoration-color: rgba(220,53,69,.85); text-decoration-skip-ink: auto; } @media (prefers-color-scheme: light) { .diff-inside-add { box-shadow: inset 0 -0.35em 0 rgba(25,135,84,.35); } .diff-inside-del { box-shadow: inset 0 -0.35em 0 rgba(220,53,69,.28); } } /* Change surfaces */ .diff-table td.ctx { background: transparent; } .diff-table td.add { background: rgba(25,135,84,.16); } .diff-table td.del { background: rgba(220,53,69,.18); } .diff-table td.empty { background: rgba(108,117,125,.10); } .marker { font-weight: 600; margin-right: .25rem; opacity: .9; } /* Wrapping + line-number toggles */ .wrap-on .code-inner { white-space: pre-wrap; word-break: break-word; } /* Keep cells, collapse visuals when line numbers are off */ .lineoff td.no { width: 0 !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; color: transparent !important; overflow: hidden !important; } .lineoff col.col-lno-l, .lineoff col.col-lno-r { width: 0 !important; min-width: 0 !important; } /* Unified specifics */ .diff-table.unified td.no { width: 2.75rem; min-width: 2.75rem; } .diff-table.unified.lineoff td.no { width: 0 !important; min-width: 0 !important; padding: 0 !important; border: 0 !important; } .diff-table.unified td.code { width: auto; } /* A11y/UX */ @media (pointer: coarse) { .diff-area { --splitter-hit: 18px; } /* easier to grab on touch */ } @media (prefers-reduced-motion: reduce) { .diff-area .splitter::after { transition: none; } } /* Responsive */ @media (max-width: 1000px) { .langbar { grid-template-columns: 1fr; } } /* ---- Internal CAPTCHA ---- */ .captcha-img { height: 64px; width: 220px; object-fit: cover; border-radius: .5rem; border: 1px solid var(--bs-border-color, rgba(0,0,0,.125)); background: var(--bs-body-bg,#fff); user-select: none; } [data-captcha] .form-control { min-height: 56px; } .imagever { width: auto; max-width: 100%; height: 56px; object-fit: cover; }