:root { --marble-50: #fbfbfa; --marble-100: #f4f3f0; --marble-200: #ebe9e4; --marble-300: #dedbd4; --marble-400: #c9c5bc; --marble-500: #918d84; --volcanic-900: #17171c; --volcanic-700: #494641; --volcanic-600: #65615b; --viewer: #151517; --viewer-toolbar: #2c2c33; --result-text: #1e2639; --green: #299329; --green-bg: #efffed; --red: #b30000; --red-bg: #fff1ed; --white: #ffffff; } html, body, .gradio-container { min-height: 100%; color: var(--volcanic-900); background: var(--white); font-family: Inter, "Helvetica Neue", Arial, sans-serif; } .gradio-container { max-width: none !important; padding: 0 !important; } .gradio-container .main.app { gap: 0 !important; padding: 0 !important; } .gradio-container main > .column { gap: 0 !important; } .gradio-container .prose { max-width: none; } #header-shell, #header-shell .html-container, #workspace .html-container { padding: 0 !important; } .product-header { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 22px 0 13px; border-bottom: 1px solid var(--marble-300); background: var(--white); } .brand-lockup { display: inline-flex; align-items: center; } .brand-lockup img { display: block; width: 109px; height: auto; } .docs-link, .download-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: var(--volcanic-900) !important; text-decoration: none !important; } .docs-link { min-height: 42px; padding: 0 18px; border: 1px solid var(--volcanic-900); border-radius: 10px; background: var(--white); font-size: 15px; font-weight: 400; } .docs-link:hover { background: var(--marble-100); } .docs-link img, .download-link img { display: block; width: 16px; height: 16px; } .configuration-required { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 10px 20px; border-bottom: 1px solid #f0c5b9; color: #8a2f1e; background: var(--red-bg); font-size: 13px; } #upload-screen { display: flex !important; width: 100%; min-height: calc(100vh - 72px); flex: 0 0 auto !important; align-items: center !important; justify-content: flex-start !important; flex-direction: column !important; gap: 0; padding: 77px 20px 48px; background: var(--marble-50); } #upload-content { display: flex !important; width: min(804px, calc(100vw - 40px)); flex: 0 0 auto !important; align-items: center !important; flex-direction: column !important; gap: 36px; margin: 0 auto; } #upload-content > * { width: 100%; max-width: 804px; flex: 0 0 auto; } .upload-intro { text-align: center; } .document-stack-icon { display: block; width: 40px; height: 40px; margin: 0 auto 38px; } .eyebrow { margin: 0 0 14px; color: var(--volcanic-900); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 13px; font-weight: 400; letter-spacing: 0.01em; text-transform: uppercase; } .upload-intro h1 { margin: 0; font-size: 38px; font-weight: 700; line-height: 1.18; letter-spacing: -0.02em; } .upload-subtitle { margin: 20px auto 13px; color: var(--volcanic-600); font-size: 21px; font-weight: 600; line-height: 1.35; } .upload-limits { margin: 0; color: var(--marble-500); font-size: 17px; line-height: 1.35; } #document-upload { width: 100%; height: 240px; min-height: 240px; border: 1px dashed #b7b2a9; border-radius: 8px; background: var(--white); } #document-upload:hover { border-color: var(--volcanic-700); background: var(--marble-50); } #document-upload button { height: 100% !important; min-height: 0 !important; border-color: transparent; color: #6e6d76; background: var(--white); } #document-upload button:hover { color: var(--volcanic-900); background: var(--marble-50); } #document-upload .file-preview-holder { width: 100%; max-width: 100%; overflow: hidden; box-sizing: border-box; padding-right: 12px; } #document-upload .file-preview { width: 100%; max-width: 100%; box-sizing: border-box; } #document-upload .download { box-sizing: border-box; padding-right: 4px !important; } #document-upload .download > a { display: inline-flex; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; align-items: center; justify-content: flex-end; white-space: nowrap; } #privacy-note-shell { position: static; width: min(804px, calc(100vw - 40px)) !important; flex: 0 0 auto !important; align-self: center; margin: 34px auto 0; } .privacy-note { max-width: 804px; margin: 0 auto; color: var(--marble-500); font-size: 14px; line-height: 1.5; text-align: center; } .privacy-note a { color: var(--volcanic-600); } #upload-progress { width: 100% !important; padding: 0 !important; } .upload-progress { display: flex; min-height: 44px; align-items: center; justify-content: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--marble-300); border-radius: 8px; color: var(--volcanic-700); background: var(--marble-100); font-size: 13px; } #workspace, #workspace-grid { min-height: calc(100vh - 72px); gap: 0; background: var(--white); } #page-warning { margin: 0 !important; padding: 0 !important; } #workspace-grid { flex-wrap: nowrap !important; } #document-pane, #result-pane { min-width: 0; gap: 0; border: 0; border-radius: 0; background: var(--white); } #document-pane { border-right: 1px solid var(--marble-300); } .file-strip { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 16px; padding: 0 25px; border-bottom: 1px solid var(--marble-300); } #file-strip-shell { height: 58px !important; min-height: 58px !important; max-height: 58px !important; flex: 0 0 58px !important; overflow: hidden !important; } .file-name, .file-metrics { display: flex; min-width: 0; align-items: center; } .file-name { gap: 9px; } .file-name > span:last-child { overflow: hidden; font-size: 16px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } .file-type { display: block; width: 24px; height: 24px; flex: 0 0 auto; } .file-metrics { flex: 0 0 auto; gap: 16px; color: var(--volcanic-900); font-size: 14px; } .metric-badge { flex: 0 0 auto; padding: 2px 5px; border-radius: 4px; color: var(--white); background: #202025; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; line-height: 1.25; letter-spacing: 0.03em; } .page-limit-alert { display: flex; align-items: flex-start; gap: 10px; padding: 10px 16px; border-bottom: 1px solid #e7bd5a; color: #6f5315; background: #fff5dd; font-size: 12px; } .page-limit-alert div { display: flex; flex-direction: column; } .warning-icon { display: grid; width: 18px; height: 18px; flex: 0 0 auto; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-weight: 700; } #viewer-toolbar { height: 61px; min-height: 61px; flex: 0 0 61px !important; align-items: center; flex-wrap: nowrap !important; gap: 8px; padding: 8px 26px; border: 0; background: var(--viewer-toolbar); } #viewer-toolbar .icon-button { width: 34px; min-width: 34px; max-width: 34px; height: 34px; min-height: 34px; flex: 0 0 34px; padding: 0; border-color: transparent; color: #f5f5f6; background: transparent; font-size: 20px; font-weight: 400; } #viewer-toolbar .icon-button:hover { color: var(--white); background: #3b3b42; } #viewer-toolbar .icon-button:disabled { color: #909098; background: transparent; } #viewer-toolbar .page-arrow { font-size: 0; } #viewer-toolbar .page-arrow::before { width: 16px; height: 16px; content: ""; background-color: currentColor; -webkit-mask: url("/gradio_api/file=assets/back_arrow.svg") center / contain no-repeat; mask: url("/gradio_api/file=assets/back_arrow.svg") center / contain no-repeat; } #viewer-toolbar .next-arrow::before { transform: rotate(180deg); } .page-select { width: 34px !important; height: 34px !important; min-width: 34px !important; min-height: 34px !important; max-width: 34px !important; flex: 0 0 34px !important; } .page-select input { width: 34px !important; height: 34px !important; min-width: 34px !important; min-height: 34px !important; padding: 0 !important; border: 0 !important; border-radius: 4px !important; color: var(--volcanic-900) !important; background: var(--white) !important; font-size: 15px !important; text-align: center; } .page-select svg { display: none !important; } .page-select .wrap, .page-select .wrap-inner, .page-select .secondary-wrap { width: 34px !important; min-width: 34px !important; } .page-total { width: auto !important; min-width: 104px !important; flex: 0 0 auto !important; padding: 0 !important; color: #f0eff2; background: transparent !important; } .page-total > div, .page-total .html-container { display: flex; align-items: center; gap: 22px; padding: 0 !important; } .page-total .prose { display: flex; align-items: center; gap: 22px; } .page-total span { color: #f0eff2; font-size: 15px; } .page-context-muted { color: #aaa9b0 !important; } .toolbar-spacer-shell { min-width: 12px !important; flex: 1 1 auto !important; padding: 0 !important; background: transparent !important; } .zoom-value-shell { width: 52px !important; min-width: 52px !important; flex: 0 0 52px !important; padding: 0 !important; color: #f5f5f6; background: transparent !important; text-align: center; } .zoom-value-shell .html-container { padding: 0 !important; } .zoom-value { color: #f5f5f6; font-size: 15px; } #viewer-toolbar .zoom-button { background-position: center; background-repeat: no-repeat; background-size: 20px 20px; font-size: 0; } #viewer-toolbar .zoom-in { background-image: url("/gradio_api/file=assets/zoom_in.svg"); } #viewer-toolbar .zoom-out { background-image: url("/gradio_api/file=assets/zoom_out.svg"); } .document-viewer { height: calc(100vh - 191px); min-height: 520px; overflow: auto; background: var(--viewer); } .viewer-stage { display: flex; min-height: 100%; align-items: flex-start; justify-content: center; padding: 40px 26px 68px; } .viewer-document { position: relative; max-width: none; flex: 0 0 auto; transition: width 120ms ease; } .viewer-document img { display: block; width: 100%; height: auto; background: var(--white); } .parse-box { position: absolute; z-index: 2; border: 1.5px solid #00aeba; background: rgba(0, 174, 186, 0.06); pointer-events: none; } .parse-box > span { position: absolute; bottom: 100%; left: -1px; max-width: 130px; overflow: hidden; padding: 2px 4px; color: var(--white); background: #00aeba; font-size: 9px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; } .box-color-1 { border-color: #ff7759; background: rgba(255, 119, 89, 0.06); } .box-color-1 > span { background: #ff7759; } .box-color-2 { border-color: #1776f6; background: rgba(23, 118, 246, 0.06); } .box-color-2 > span { background: #1776f6; } .box-color-3 { border-color: #8f62a5; background: rgba(143, 98, 165, 0.06); } .box-color-3 > span { background: #8f62a5; } #result-pane { padding: 0; } #result-pane > * { flex: 0 0 auto !important; } .settings-heading { min-height: 124px; padding: 28px 26px 20px; } .settings-heading h2 { margin: 0; font-size: 27px; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; } #run-status-shell { padding: 0 26px 16px !important; } .run-status { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 12px 16px; border: 1px solid var(--marble-400); border-radius: 8px; color: #333238; background: var(--marble-100); font-size: 16px; } .run-status img { display: block; width: 20px; height: 20px; flex: 0 0 auto; } .run-status.is-running .status-spinner, .upload-progress .status-spinner, .output-progress .status-spinner { animation: spin 1.1s linear infinite; } .run-status.is-complete { border-color: var(--green); color: #293329; background: var(--green-bg); } .run-status.is-error { align-items: flex-start; border-color: var(--red); color: var(--red); background: var(--red-bg); } .run-status.is-error div { display: flex; flex-direction: column; gap: 2px; } @keyframes spin { to { transform: rotate(360deg); } } #parse-controls { position: relative; height: 108px; min-height: 108px; flex: 0 0 108px !important; justify-content: flex-start; gap: 12px; padding: 8px 26px 16px; border: 0; border-radius: 0; background: var(--white); } #parse-controls::before { position: absolute; top: 0; right: 26px; left: 26px; height: 1px; background: var(--marble-400); content: ""; } #parse-controls label { font-size: 16px; font-weight: 400; } #parse-controls > .form { border: 0 !important; border-radius: 0 !important; } #parse-controls > .form > .block { height: 42px !important; min-height: 42px !important; } #parse-controls input[type="checkbox"] { border-color: #868797; border-radius: 5px; } #parse-controls input[type="checkbox"]:checked { border-color: #090910; background: #090910; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.25 8.25 6.5 11.5 12.75 4.75' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 14px 14px; } #workspace-actions { height: 90px; min-height: 90px; flex: 0 0 90px !important; align-items: flex-start; flex-wrap: nowrap !important; gap: 14px; padding: 14px 26px 34px; background: var(--white); } #workspace-actions > * { flex: 0 0 auto; } #workspace-actions button, .download-link { min-height: 42px; border-radius: 9px; font-size: 15px; font-weight: 400; } #workspace-actions .start-over-button { min-width: 131px; margin-right: auto; border: 1px solid var(--volcanic-900); color: var(--volcanic-900); background: var(--white); } #workspace-actions .start-over-button::before { width: 16px; height: 16px; margin-right: 7px; background: url("/gradio_api/file=assets/back_arrow.svg") center / contain no-repeat; content: ""; } #workspace-actions .start-over-button:hover { background: var(--marble-100); } #workspace-actions .run-button { min-width: 86px; border: 1px solid #090910; color: var(--white); background: #090910; } #workspace-actions .run-button::after { width: 16px; height: 16px; margin-left: 6px; background: url("/gradio_api/file=assets/lightning_white.svg") center / contain no-repeat; content: ""; } #workspace-actions .run-button:hover { border-color: #2d2d32; background: #2d2d32; } #workspace-actions .run-button:disabled { border-color: #b9b9c0; color: var(--white); background: #b9b9c0; opacity: 1; } .download-container, #workspace-actions .download-container.block { width: 178px !important; min-width: 178px !important; max-width: 178px !important; flex: 0 0 178px !important; margin: 0 !important; padding: 0 !important; } .download-container:empty, .download-container .html-container:empty { display: none !important; } .download-link { min-width: 178px; padding: 0 15px; color: var(--white) !important; background: #090910; } .download-link:hover { background: #2d2d32; } .download-link span { color: var(--white) !important; } #output-tabs { flex: 1 1 auto !important; border: 0; border-radius: 0; } #output-tabs .tab-wrapper { height: 39px; min-height: 39px; margin: 0 !important; padding: 0 !important; } #output-tabs .tab-container[role="tablist"] { position: static !important; height: 39px; min-height: 39px; gap: 0; padding: 0 26px; border-bottom: 1px solid var(--marble-300); } #output-tabs .tab-container[role="tablist"] button { position: relative; min-height: 39px; height: 39px; min-height: 39px; padding: 0 22px; color: #77758b; border-bottom: 0 !important; font-size: 15px; font-weight: 400; } #output-tabs .tab-container[role="tablist"] button:first-child { padding-left: 0; } #output-tabs .tab-container[role="tablist"] button[aria-selected="true"] { color: var(--volcanic-900); font-weight: 600; } #output-tabs .tab-container[role="tablist"] button[aria-selected="true"]::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: linear-gradient(90deg, #ff7759 0%, #9d74ed 55%, #1776f6 100%); content: ""; } #output-tabs .tabitem { min-height: 0; overflow: hidden; padding: 0; } .text-output.block, .visual-output.block { height: calc(100vh - 521px); min-height: 340px; overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 0 !important; } .text-output.prose, .visual-output.prose { padding: 52px 26px; color: var(--result-text); font-size: 17px; line-height: 1.55; } .text-output h1, .text-output h2, .text-output h3, .text-output h4 { margin: 1.25em 0 0.45em; color: var(--result-text); font-weight: 700; letter-spacing: -0.02em; } .text-output h1 { margin-top: 0; font-size: 28px; } .text-output h2 { font-size: 24px; } .text-output h3 { font-size: 20px; } .text-output ul, .text-output ol { padding-left: 25px; } .empty-result { display: flex; min-height: 180px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; color: var(--marble-500); text-align: center; } .empty-result strong { color: var(--volcanic-700); } .output-progress { display: flex; min-height: 260px; align-items: center; justify-content: center; flex-direction: column; gap: 7px; color: var(--volcanic-600); font-size: 13px; text-align: center; } .output-progress .status-spinner { width: 24px; height: 24px; margin-bottom: 5px; } .output-progress strong { color: var(--volcanic-900); font-size: 15px; } .table-output { overflow-x: auto; } .table-output table { width: 100%; border-collapse: collapse; color: var(--volcanic-900); background: var(--white); font-size: 13px; } .table-output th, .table-output td { padding: 8px 10px; border: 1px solid var(--marble-300); text-align: left; } .table-output th { background: var(--marble-100); font-weight: 700; } .raw-output { min-height: calc(100vh - 521px); border: 0 !important; border-radius: 0 !important; } /* * The Parse interface has an intentionally light visual design. Gradio's * dark theme otherwise leaks dark-mode text and component colors into these * fixed light surfaces, which can leave text with insufficient contrast. */ body.dark, body.dark .gradio-container { color-scheme: light; } body.dark .gradio-container { --body-background-fill: var(--white); --background-fill-primary: var(--white); --background-fill-secondary: var(--marble-100); --block-background-fill: var(--white); --block-border-color: var(--marble-300); --block-label-background-fill: var(--white); --block-label-text-color: var(--volcanic-700); --body-text-color: var(--volcanic-900); --body-text-color-subdued: var(--volcanic-600); --border-color-primary: var(--marble-300); --button-secondary-background-fill: var(--white); --button-secondary-background-fill-hover: var(--marble-100); --button-secondary-text-color: var(--volcanic-900); --code-background-fill: var(--white); --code-foreground: var(--result-text); --input-background-fill: var(--white); --input-border-color: var(--marble-300); --input-placeholder-color: var(--marble-500); color: var(--volcanic-900); background: var(--white); } body.dark .gradio-container .main.app, body.dark .gradio-container main > .column, body.dark #header-shell, body.dark #upload-screen, body.dark #workspace, body.dark #workspace-grid, body.dark #document-pane, body.dark #result-pane, body.dark .settings-heading, body.dark #parse-controls, body.dark #workspace-actions, body.dark #output-tabs, body.dark #output-tabs .tab-wrapper, body.dark #output-tabs .tab-container[role="tablist"], body.dark #output-tabs .tabitem, body.dark .text-output.block, body.dark .visual-output.block { color: var(--volcanic-900) !important; background: var(--white) !important; } body.dark .upload-intro h1, body.dark .eyebrow, body.dark .file-name > span:last-child, body.dark .settings-heading, body.dark .settings-heading h2, body.dark #parse-controls label { color: var(--volcanic-900) !important; } body.dark .upload-subtitle, body.dark .privacy-note, body.dark .privacy-note a { color: var(--volcanic-600) !important; } body.dark .upload-limits { color: var(--marble-500) !important; } body.dark #document-upload, body.dark #document-upload .file-preview-holder, body.dark #document-upload .file-preview, body.dark #document-upload .file, body.dark #document-upload .filename, body.dark #document-upload .download { color: var(--volcanic-900) !important; background: var(--white) !important; } body.dark #document-upload .download > a, body.dark #document-upload .label-clear-button { color: var(--volcanic-700) !important; } body.dark .file-strip, body.dark .file-name, body.dark .file-metrics { color: var(--volcanic-900) !important; background: var(--white) !important; } body.dark #parse-controls > .form, body.dark #parse-controls > .form > .block { color: var(--volcanic-900) !important; background: var(--white) !important; } body.dark #output-tabs .tab-container[role="tablist"] button { color: #77758b !important; background: transparent !important; } body.dark #output-tabs .tab-container[role="tablist"] button[aria-selected="true"] { color: var(--volcanic-900) !important; } body.dark .text-output.prose, body.dark .visual-output.prose { color: var(--result-text) !important; background: var(--white) !important; } body.dark .text-output.prose :where(p, li, strong, em, blockquote, code, pre), body.dark .visual-output.prose :where(p, li, strong, em, blockquote, code, pre) { color: inherit !important; } body.dark .text-output h1, body.dark .text-output h2, body.dark .text-output h3, body.dark .text-output h4 { color: var(--result-text) !important; } body.dark .empty-result { color: var(--marble-500) !important; } body.dark .empty-result strong { color: var(--volcanic-700) !important; } body.dark .output-progress { color: var(--volcanic-600) !important; background: var(--white) !important; } body.dark .output-progress strong { color: var(--volcanic-900) !important; } body.dark .table-output table, body.dark .table-output th, body.dark .table-output td { border-color: var(--marble-300) !important; color: var(--volcanic-900) !important; background: var(--white) !important; } body.dark .table-output th { background: var(--marble-100) !important; } body.dark .raw-output, body.dark .raw-output .wrap, body.dark .raw-output .codemirror-wrapper, body.dark .raw-output .cm-editor, body.dark .raw-output .cm-scroller, body.dark .raw-output .cm-content, body.dark .raw-output .cm-line { color: var(--result-text) !important; background: var(--white) !important; } body.dark .raw-output .cm-content * { color: var(--result-text) !important; } body.dark .raw-output .cm-gutters { border-color: var(--marble-300) !important; color: var(--marble-500) !important; background: var(--marble-50) !important; } body.dark .raw-output .cm-activeLine, body.dark .raw-output .cm-activeLineGutter { background: var(--marble-100) !important; } body.dark .raw-output .cm-selectionBackground { background: #dbe8ff !important; } body.dark .raw-output .cm-cursor { border-left-color: var(--volcanic-900) !important; } body.dark .configuration-required > *, body.dark .page-limit-alert > *, body.dark .upload-progress > *, body.dark .run-status > * { color: inherit !important; } @media (max-width: 900px) { .product-header { padding: 0 15px; } #workspace-grid { display: block; } #document-pane { border-right: 0; border-bottom: 1px solid var(--marble-300); } .document-viewer { height: 60vh; min-height: 430px; } .text-output.block, .visual-output.block, .raw-output { height: 70vh; min-height: 420px; } } @media (max-width: 560px) { .docs-link { width: 42px; min-width: 42px; overflow: hidden; padding: 0; } .docs-link span { display: none; } #upload-screen { padding: 42px 20px 28px; } #upload-content { gap: 26px; } .document-stack-icon { margin-bottom: 28px; } .upload-intro h1 { font-size: 30px; } .upload-subtitle { font-size: 17px; } .upload-limits { font-size: 14px; } #document-upload { height: 210px; min-height: 210px; } #privacy-note-shell { width: 100% !important; margin-top: 32px; } .file-strip { min-height: 76px; align-items: flex-start; flex-direction: column; padding: 12px 15px; } .file-metrics { flex-wrap: wrap; gap: 7px; } #viewer-toolbar { padding: 8px 10px; } .page-total { min-width: 72px !important; } .page-total > div, .page-total .html-container { gap: 12px; } .viewer-stage { padding: 18px 14px 38px; } .settings-heading { min-height: 112px; padding: 24px 20px 18px; } #run-status-shell, #parse-controls, #workspace-actions { padding-right: 20px !important; padding-left: 20px !important; } #workspace-actions { gap: 8px; } #workspace-actions .start-over-button { min-width: 116px; } .download-container, #workspace-actions .download-container.block, .download-link { width: 145px !important; min-width: 145px !important; max-width: 145px !important; flex-basis: 145px !important; font-size: 13px; } #output-tabs .tab-container[role="tablist"], .text-output.prose, .visual-output.prose { padding-right: 20px; padding-left: 20px; } }