/
mkudmi
/
RUF-API-Platform
Обзор
Документация
Войти
/
mkudmi
/
RUF-API-Platform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/styles.css
2 921 строка
70 KB
mkudmi
Add AI-powered response search
25 май 2026, 22:13
25 май 2026, 22:13
e64694e
Код
Авторство
О чём код?
@font-face { font-family: 'Verdanto'; src: url('../assets/fonts/Verdanto-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Nimbus Sans Round'; src: url('../assets/fonts/Nimbus Sans Round.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; } :root { --radius: 6px; --window-titlebar-height: 38px; --window-request-center-max-width: min(42vw, 560px); --window-request-name-max-width: min(38vw, 500px); --window-recent-tab-width: 180px; --window-recent-tab-overlap: 0.5; --text-color: #ffffff; --font-brand: 'Verdanto', system-ui, -apple-system, Segoe UI, Roboto, Arial; --font-ui: 'Nimbus Sans Round', system-ui, -apple-system, Segoe UI, Roboto, Arial; font-family: var(--font-ui); } html.platform-macos { --font-ui: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif; } * { box-sizing: border-box; } html, body, #root { width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; } body { margin: 0; background: #0b0c10; color: var(--text-color); font-family: var(--font-ui); } *:not(:where(.appTitle, .appTitle *, .reqStar, .keyReqStar, .treeMethodInFlight)) { color: var(--text-color) !important; } button, input, textarea, select { font-family: inherit; } a { color: inherit; } /* Hide native password reveal/clear buttons (Windows/Edge). */ input[type="password"]::-ms-reveal, input[type="password"]::-ms-clear { display: none; } /* Scrollbars */ * { scrollbar-width: thin; scrollbar-color: rgba(116,116,116,.92) rgba(255,255,255,.08); } *::-webkit-scrollbar { width: 10px; height: 10px; } *::-webkit-scrollbar-track { background: rgba(255,255,255,.08); } *::-webkit-scrollbar-thumb { background: rgba(116,116,116,.92); border: 2px solid rgba(255,255,255,.14); border-radius: 999px; } *::-webkit-scrollbar-thumb:hover { background: rgba(136,136,136,.96); } .appTitle { font-family: var(--font-brand); letter-spacing: .2px; } .windowShell { display: grid; grid-template-rows: var(--window-titlebar-height) 1fr; height: 100%; overflow: hidden; } .windowTitlebar { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; min-height: 0; padding: 0 12px; border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(11,12,16,.96); } .windowBrandArea { min-width: 0; flex: 1 1 auto; display: flex; align-items: center; } .windowRequestName { min-width: 0; max-width: var(--window-request-name-max-width); font-weight: 600; font-size: 14px; opacity: .92; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; user-select: none; } .windowRequestCenter { min-width: 0; max-width: var(--window-request-center-max-width); display: flex; align-items: center; gap: 8px; justify-self: center; } .windowBackBtn { width: 28px; height: 24px; padding: 0; border-radius: var(--radius); border: 1px solid transparent; background: transparent; color: rgba(255,255,255,.92); display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: 0 0 auto; transition: border-color .14s ease, background-color .14s ease; } .windowBackBtn svg { display: block; stroke: currentColor; } .windowBackBtn:hover:not(:disabled) { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.13); } .windowBackBtn:disabled { opacity: .45; cursor: default; } .windowBackBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .windowSwaggerBtn { height: 24px; padding: 0 8px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: rgba(255,255,255,.92); font-size: 12px; line-height: 1; flex: 0 0 auto; } .windowSwaggerBtn:hover { border-color: #89bf04; background: #89bf04; color: #000 !important; } .windowSwaggerBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .windowControls { display: flex; align-items: center; gap: 4px; justify-self: end; } .windowControlBtn { width: 30px; height: 26px; border-radius: var(--radius); border: 1px solid transparent; background: transparent; color: rgba(255,255,255,.88); padding: 0; display: inline-flex; align-items: center; justify-content: center; } .windowControlBtn:hover { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); } .windowControlBtnClose:hover { border-color: rgba(255, 90, 90, .35); background: rgba(255, 90, 90, .18); color: #fff; } html.platform-macos .windowTitlebar { padding: 0 12px 0 12px; } html.platform-macos .windowRequestName { font-size: 13px; opacity: 0.86; } [data-tauri-drag-region] { -webkit-app-region: drag; } [data-tauri-drag-region] button, [data-tauri-drag-region] input, [data-tauri-drag-region] textarea, [data-tauri-drag-region] select { -webkit-app-region: no-drag; } .layout { display: grid; grid-template-columns: 420px 8px 1fr; grid-template-rows: 1fr; height: 100%; overflow: hidden; } .sidebar { border-right: 1px solid rgba(255,255,255,.08); padding: 12px 12px 0; overflow: hidden; display: flex; flex-direction: column; gap: 0; min-width: 0; } .sidebarBrandRow { display: flex; gap: 8px; align-items: center; min-width: 0; overflow: visible; } .sidebarBrandRow > .iconBtn { display: none; } .sidebarBrandRow .appTitle { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .windowRecentTabs { display: flex; align-items: center; justify-content: flex-end; gap: 0; min-width: calc(var(--window-recent-tab-width) * (2 - var(--window-recent-tab-overlap))); max-width: min(36vw, 420px); overflow: hidden; } .windowRecentTab { flex: 0 0 var(--window-recent-tab-width); min-width: 0; max-width: var(--window-recent-tab-width); height: 26px; padding: 0 10px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: rgb(39, 42, 52); color: rgb(255,255,255); font-size: 12px; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: relative; } .windowRecentTab + .windowRecentTab { margin-left: calc(var(--window-recent-tab-width) * -1 * var(--window-recent-tab-overlap)); } .windowRecentTab:hover { border-color: rgba(255,255,255,.24); background: rgb(53, 57, 69); z-index: 2; } .windowRecentTab:focus-visible { outline: 2px solid rgba(255,255,255,.36); outline-offset: 2px; z-index: 2; } .sidebarPlusWrap { margin-left: auto; position: relative; flex: 0 0 auto;} .sidebarPlusBtn { width: 30px; height: 30px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; font-size: 22px; line-height: 1; padding: 0; cursor: pointer; } .sidebarPlusGlyph { display: block; line-height: 1; transform: translateY(-1px); } .sidebarPlusBtn:hover { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); } .sidebarPlusBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .sidebarEmptyState { flex: 1; min-height: 0; display: grid; place-items: center; } .sidebarAddWrap { margin-left: 0; } .sidebarAddBtn { width: auto; min-width: 88px; height: 34px; padding: 0 14px; font-size: 14px; font-weight: 600; letter-spacing: .2px; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.06); } .sidebarAddBtn:hover { border-color: rgba(255,255,255,.26); background: rgba(255,255,255,.12); } .sidebarPlusMenu { position: fixed; min-width: 220px; max-width: calc(100vw - 16px); background: rgb(16,18,28); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 6px; box-shadow: 0 14px 50px rgba(0,0,0,.42); z-index: 1000; } .sidebarPlusMenuItem { width: 100%; text-align: left; border: 0; background: transparent; padding: 8px 10px; border-radius: 10px; color: rgba(255,255,255,.92); cursor: pointer; } .sidebarPlusMenuItem:hover { background: rgba(255,255,255,.08); } html.platform-macos .sidebarPlusMenu, html.platform-macos .sidebarPlusMenuItem { font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; } .sidebarTreeWrap { flex: 1; min-height: 0; overflow: visible; display: flex; flex-direction: column; } .sidebarBottom { margin-top: 4px; padding: 5px 0 7px; border-top: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: space-between; } .sidebarBottomLeft { display: flex; gap: 8px; align-items: center; } .sidebarBottom .iconBtn, .responseFooter .iconBtn { width: 32px; min-width: 32px; height: 32px; padding: 0; } .sidebarBottom .iconBtn .iconGlyph, .responseFooter .iconBtn .iconGlyph, .sidebarBottom .iconBtn svg, .responseFooter .iconBtn svg { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 16px; } .sidebarBottom .iconBtn .iconGlyph, .responseFooter .iconBtn .iconGlyph { font-size: 16px; line-height: 1; transform: none; } .footerLambdaGlyph { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; font-size: 16px; line-height: 1; font-weight: 700; letter-spacing: -0.02em; } .settingsBtn { font-size: 18px; line-height: 1; } .settingsBtn > .iconGlyph { display: block; } .terminalBtn { font-size: 14px; line-height: 1; } .terminalBtn > .iconGlyph { display: block; transform: translateY(-1px); } .localMockServerBtnActive { color: #7ce49a; border-color: rgba(124, 228, 154, 0.55); box-shadow: inset 0 0 0 1px rgba(124, 228, 154, 0.25), 0 0 0 1px rgba(124, 228, 154, 0.22); animation: localMockStatusPulse 1.15s ease-in-out infinite; } .sqlTerminalBtn > .iconGlyph { display: inline-flex; align-items: center; justify-content: center; transform: none; } .treeToggleBtn { font-size: 14px; line-height: 1; } .treeToggleBtn > .iconGlyph { display: inline-flex; align-items: center; justify-content: center; transform: none; } .treeSortBtn > .iconGlyph { display: inline-flex; align-items: center; justify-content: center; transform: none; } .sidebarVersion { font-size: 12px; opacity: 0.65; white-space: nowrap; user-select: none; } .updateToast { position: fixed; right: 0; bottom: 0; width: min(360px, 100vw); padding: 12px; border-radius: 12px; border: 1px solid rgba(255,255,255,.18); background: rgba(16,18,28,.96); box-shadow: 0 14px 50px rgba(0,0,0,.45); z-index: 2000; display: grid; gap: 10px; } .updateToastTitle { font-weight: 600; } .updateToastActions { display: flex; gap: 10px; justify-content: flex-end; } .checkRow { display: flex; gap: 10px; align-items: center; cursor: pointer; user-select: none; } .checkInput { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; } .checkBox { width: 18px; height: 18px; border-radius: 5px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); display: grid; place-items: center; position: relative; } .checkRow:hover .checkBox { background: rgba(255,255,255,.09); } .checkInput:focus-visible + .checkBox { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .checkInput:checked + .checkBox { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.12); } .checkInput:checked + .checkBox::after { content: ''; width: 10px; height: 6px; border-left: 2px solid #e8e8e8; border-bottom: 2px solid #e8e8e8; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -70%) rotate(-45deg); } .checkText { line-height: 18px; } .rowCheck { gap: 0; cursor: pointer; } .rowCheck .checkBox { width: 14px; height: 14px; border-radius: 4px; } .rowInactive { opacity: 0.55; } .main { display: flex; flex-direction: column; height: 100%; overflow: hidden; min-width: 0; min-height: 0; } .topbar { border-bottom: 1px solid rgba(255,255,255,.08); padding: 12px; display: none; gap: 12px; align-items: center; } .panel { display: grid; grid-template-columns: 1fr 8px 1fr; grid-template-rows: 1fr; position: relative; flex: 1; height: 100%; overflow: hidden; align-items: stretch; min-height: 0; } .panel > .card { display: flex; flex-direction: column; height: 100%; min-height: 0; } .card { padding: 12px; overflow: auto; min-height: 0; } .resizer { cursor: col-resize; background: rgba(255,255,255,.04); align-self: stretch; height: 100%; } .resizer:hover { background: rgba(255,255,255,.10); } input, textarea, select, button { background: rgba(255,255,255,.06); color: #e8e8e8; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); padding: 10px; font-family: var(--font-ui); } /* Custom select (menu) */ .selectMenuWrap { position: relative; width: 100%; } .selectMenuBtn { width: 100%; text-align: left; display: flex; align-items: center; justify-content: space-between; line-height: 1; padding-top: 10px; padding-bottom: 10px; } .selectMenuBtn::after { content: '▾'; opacity: .9; font-size: 12px; } .selectMenuPanel { position: absolute; left: 0; top: calc(100% + 6px); width: 100%; display: grid; gap: 2px; padding: 6px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 50; } .varMenuPanel { max-height: 260px; overflow: auto; } .varMenuItem { display: grid; gap: 2px; } .varMenuDesc { opacity: .75; font-size: 12px; } .varMenuEmpty { padding: 8px 10px; opacity: .75; } .enumMenuPanel { max-height: 240px; overflow: auto; } .enumMenuEmpty { padding: 8px 10px; opacity: .75; } .selectMenuItem { width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: var(--radius); background: transparent; color: rgba(255,255,255,.92); font-size: 13px; cursor: pointer; } .selectMenuItem:hover { background: rgba(255,255,255,.08); } .selectMenuItemActive { background: rgba(255,255,255,.10); } .valueHistoryInput { padding-right: 60px; box-sizing: border-box; } .valueHistoryBtn { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; padding: 0; border: 1px solid transparent; background: transparent; font-size: 12px; line-height: 1; color: rgba(255,255,255,.85); display: grid; place-items: center; box-sizing: border-box; border-radius: var(--radius); } .valueHistoryBtn:hover { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.16); color: rgba(255,255,255,.98); } .valueHistoryBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .valueHistoryPanel { max-height: 240px; overflow: auto; } .valueHistoryEmpty { padding: 8px 10px; opacity: .75; } .valueHistoryFooterRow { position: sticky; bottom: 0; display: flex; justify-content: flex-end; padding: 6px 2px 2px; background: #0f1117; border-top: 1px solid rgba(255,255,255,.08); } .valueHistoryClearBtn { border: 0; background: transparent; padding: 4px 6px; font-size: 12px; color: rgba(255,255,255,.70); } .valueHistoryClearBtn:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.95); } .valueHistoryClearBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } .valueHistoryItemRow { display: flex; gap: 6px; align-items: center; } .valueHistoryPickBtn { flex: 1; min-width: 0; } .valueHistoryText { white-space: normal; overflow-wrap: anywhere; word-break: break-word; } .valueHistoryDeleteBtn { width: 26px; height: 26px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; color: rgba(255,255,255,.70); border-radius: var(--radius); } .valueHistoryDeleteBtn:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.95); } .valueHistoryDeleteBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 2px; } button { cursor: pointer; } button:hover { background: rgba(255,255,255,.10); } .chooseFileBtn { background: rgba(255,255,255,.10); color: #fff; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius); height: 35px; padding: 0 12px; display: inline-flex; align-items: center; line-height: 1; } .chooseFileBtnLabel { display: inline-block; transform: translateY(1px); } .chooseFileBtn:hover { background: rgba(255,255,255,.14); } .modal { width: min(820px, 92vw); max-height: min(80vh, 720px); border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; color: #e8e8e8; padding: 12px; } .modal::backdrop { background: rgba(0,0,0,.65); } .modalHeader { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 10px; } .modalDivider { border: 0; height: 1px; background: rgba(255,255,255,.10); margin: 10px 0; } .iconBtn { width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border-radius: var(--radius); } .globalTestItemDeleteBtn { border-color: transparent !important; background: transparent !important; } .globalTestItemDeleteBtn:hover, .globalTestItemDeleteBtn:focus-visible { border-color: rgba(255,255,255,.12) !important; background: rgba(255,255,255,.10) !important; } .jsonSearchQueryRow > input, .jsonSearchQueryRow > button { height: 34px; } .jsonSearchQueryRow > button.iconBtn { width: 34px; } .addRowBtn { font-size: 22px; line-height: 1; } .addRowGlyph { display: block; transform: translateY(-2px); } .modalTextarea { width: 100%; min-height: 280px; resize: vertical; } .modalActions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px; } .importMenuGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; } .importMenuBtn { width: 100%; aspect-ratio: 1 / 1; border-radius: var(--radius); padding: 12px; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.2; } @media (max-width: 520px) { .importMenuGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } .importHint { font-size: 12px; opacity: 0.75; } .fab { position: fixed; right: 18px; bottom: 18px; width: 64px; height: 64px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.10); font-size: 32px; line-height: 1; display: grid; place-items: center; padding: 0; } .terminalBackdrop { position: fixed; left: 0; right: 0; bottom: 0; top: var(--window-titlebar-height); background: transparent; opacity: 0; pointer-events: none; transition: opacity 140ms ease; z-index: 999; } .terminalBackdropOpen { opacity: 1; pointer-events: auto; } .terminalDrawer { position: fixed; left: 0; right: 0; bottom: 0; height: min(38vh, 420px); background: rgb(12, 14, 22); border-top: 1px solid rgba(255,255,255,.12); transform: translateY(100%); transition: transform 180ms ease; z-index: 1000; display: grid; grid-template-rows: 10px auto 1fr; overflow: hidden; } .terminalDrawerOpen { transform: translateY(0); box-shadow: 0 -18px 60px rgba(0,0,0,.45); } .localMockServerDrawer, .localMockServerDrawer * { font-size: 13px; } .terminalResizeHandle { cursor: ns-resize; position: relative; } .terminalResizeHandle::before { content: ''; position: absolute; left: 50%; top: 4px; transform: translateX(-50%); width: 48px; height: 3px; border-radius: 999px; background: rgba(255,255,255,.18); } .terminalHeader { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 10px 12px; border-bottom: 1px solid rgba(255,255,255,.10); } .terminalTitle { display: flex; gap: 10px; align-items: center; min-width: 0; } .terminalHeaderActions { display: flex; gap: 8px; align-items: center; } .terminalHeaderActions > .iconBtn { width: 28px; height: 28px; } .terminalTabs { display: flex; gap: 8px; align-items: center; min-width: 0; flex: 1 1 auto; } .terminalTab { border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.03); color: rgba(255,255,255,.92); border-radius: var(--radius); height: 28px; padding: 0 10px; cursor: pointer; display: inline-flex; gap: 8px; align-items: center; max-width: 220px; } .terminalTab:hover { background: rgba(255,255,255,.06); } .terminalTabActive { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.08); } .terminalTab:disabled { opacity: 0.55; cursor: default; } .terminalTabLabel { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .terminalTabClose { opacity: 0.7; } .terminalTabClose:hover { opacity: 1; } .terminalAddWrap { position: relative; flex: 0 0 auto; } .terminalAddBtn { width: 28px; height: 28px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.03); color: rgba(255,255,255,.92); cursor: pointer; padding: 0; display: grid; place-items: center; font-size: 18px; line-height: 1; } .terminalAddBtn:hover { background: rgba(255,255,255,.06); } .terminalAddBtn:disabled { opacity: 0.55; cursor: default; } .terminalAddMenu { position: absolute; left: 0; top: calc(100% + 8px); min-width: 180px; background: rgb(16,18,28); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 6px; box-shadow: 0 14px 50px rgba(0,0,0,.42); z-index: 1100; } .terminalAddMenuItem { width: 100%; text-align: left; border: 0; background: transparent; padding: 8px 10px; border-radius: 10px; color: rgba(255,255,255,.92); cursor: pointer; } .terminalAddMenuItem:hover { background: rgba(255,255,255,.08); } .terminalAddMenuItem:disabled { opacity: 0.55; cursor: default; } .terminalAddMenuHint { opacity: 0.7; font-size: 12px; } @keyframes localMockStatusPulse { 0% { opacity: 1; box-shadow: 0 0 0 0 rgba(46, 214, 123, .65); } 70% { opacity: .45; box-shadow: 0 0 0 6px rgba(46, 214, 123, 0); } 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(46, 214, 123, 0); } } .localMockStatusDot { width: 10px; height: 10px; border-radius: 999px; flex: 0 0 auto; } .localMockStatusDotStopped { background: #ff5b5b; box-shadow: 0 0 0 1px rgba(0,0,0,.25); } .localMockStatusDotRunning { background: #2ed67b; box-shadow: 0 0 0 1px rgba(0,0,0,.2); animation: localMockStatusPulse 1.15s ease-in-out infinite; } .localMockRouteEditDialog, .localMockRouteEditDialog * { font-size: 13px; } .terminalOutput { padding: 10px; overflow: auto; font-size: 12px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; } .terminalLine { color: rgba(255,255,255,.90); } .terminalLine_sys { color: rgba(255,255,255,.62); } .terminalLine_err { color: rgba(255,120,120,.95); } .terminalLine_in { color: rgba(140,200,255,.95); } .terminalPromptLine { display: flex; gap: 10px; align-items: baseline; } .terminalPrompt { opacity: 0.8; flex: 0 1 auto; max-width: min(55%, 60ch); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .terminalInput { width: 100%; flex: 1 1 auto; min-width: 0; border: 0; background: transparent; color: rgba(255,255,255,.92); border-radius: 0; padding: 0; margin: 0; resize: none; min-height: 24px; line-height: 1.45; } .terminalInput:focus-visible { outline: none; } .sqlTerminalDrawer { grid-template-rows: 10px auto 1fr; max-height: calc(100vh - var(--window-titlebar-height)); } .sqlTerminalDrawerLeft { top: var(--window-titlebar-height); left: 0; right: auto; bottom: 0; width: min(68vw, 980px); height: auto; max-height: none; transform: translateX(-100%); grid-template-rows: auto 1fr; padding-right: 8px; box-sizing: border-box; } .sqlTerminalDrawerLeft.terminalDrawerOpen { transform: translateX(0); } .sqlTerminalDrawerLeft .sqlTerminalBody { height: 100%; } .sqlTerminalBackdropLeft { right: auto; } .sqlTerminalDrawerLeft .terminalResizeHandle.sqlTerminalResizeHandleRight { position: absolute; top: 0; right: 0; bottom: 0; width: 10px; cursor: ew-resize; z-index: 2; } .sqlTerminalDrawerLeft .terminalResizeHandle.sqlTerminalResizeHandleRight::before { left: 50%; right: auto; top: 50%; width: 3px; height: 48px; transform: translate(-50%, -50%); } .sqlTerminalBody { display: grid; min-height: 0; } .sqlTerminalPane { flex: 1 1 50%; min-width: 0; display: flex; flex-direction: column; min-height: 0; } .sqlTerminalPaneSql { position: relative; } .sqlTerminalDivider { width: 8px; cursor: col-resize; position: relative; } .sqlTerminalDivider::before { content: ''; position: absolute; left: 50%; top: 10px; bottom: 10px; width: 1px; transform: translateX(-50%); background: rgba(255,255,255,.10); } .sqlTerminalPaneTitle { position: relative; padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.10); color: rgba(255,255,255,.75); font-size: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .sqlTerminalPaneTitleCenter { position: absolute; left: 50%; transform: translateX(-50%); max-width: 56%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(255,255,255,.9); pointer-events: none; } .sqlTerminalPaneTitleLeft { display: flex; align-items: center; gap: 10px; min-width: 0; } .sqlTerminalPaneTitleRight { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; flex-shrink: 0; position: relative; z-index: 1; } .sqlTerminalRowsHint { opacity: 0.75; } .sqlTerminalSchemaMenu { width: min(220px, 36vw); min-width: 140px; } .sqlTerminalSchemaPanel { overscroll-behavior: contain; } .sqlTerminalSchemaPanelAbove { top: auto; bottom: calc(100% + 6px); } .sqlTerminalTableSuggest { position: absolute; z-index: 1200; min-width: 180px; max-width: 240px; max-height: 240px; overflow: auto; padding: 4px; border-radius: 10px; right: 10px; top: 10px; left: auto; } .sqlTerminalTableSuggestTable { top: 0; bottom: auto; right: auto; left: 0; transform-origin: top left; animation: sqlSuggestDropIn 120ms ease-out; } .sqlTerminalTableSuggest .selectMenuItem { padding: 6px 8px; border-radius: 8px; font-size: 12px; } .sqlTerminalEditorWrap { position: relative; flex: 1 1 auto; min-height: 0; --sql-line-gutter-ch: 3; } .sqlTerminalEditorWrap > .sqlTerminalEditor { height: 100%; } @keyframes sqlSuggestDropIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } .sqlTerminalLineNumbers { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--sql-line-gutter-ch) * 1ch + 6px); padding: 10px 3px 10px 4px; border-right: 1px solid rgba(255,255,255,.10); background: rgba(0,0,0,.34); color: rgba(255,255,255,.58); pointer-events: none; overflow: hidden; text-align: right; } .sqlTerminalLineNumbersInner { margin: 0; font-size: 12px; line-height: 1.45; white-space: pre; user-select: none; will-change: transform; } .sqlTerminalLineNumber { display: block; width: 100%; padding: 0 6px 0 0; border-radius: 4px; } .sqlTerminalLineNumberActive { color: rgba(255,255,255,.82); background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.10); } .sqlTerminalEditor { width: 100%; border: 0; background: rgba(255,255,255,.04); color: rgba(255,255,255,.92); padding: 10px 10px 10px calc(var(--sql-line-gutter-ch) * 1ch + 16px); resize: none; outline: none; font-size: 12px; line-height: 1.45; white-space: pre; } .sqlTerminalOutput { flex: 1 1 auto; min-height: 0; padding: 10px; overflow: auto; background: rgba(255,255,255,.04); font-size: 12px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; } .sqlTerminalTableWrap { width: 100%; overflow: auto; } .sqlTerminalTable { border-collapse: collapse; width: max-content; min-width: 100%; font-size: 12px; line-height: 1.45; } .sqlTerminalTable th, .sqlTerminalTable td { border-bottom: 1px solid rgba(255,255,255,.10); border-right: 1px solid rgba(255,255,255,.10); padding: 6px 8px; text-align: left; vertical-align: top; max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sqlTerminalTable th:last-child, .sqlTerminalTable td:last-child { border-right: 0; } .sqlTerminalTable th { position: sticky; top: 0; background: rgb(12, 14, 22); z-index: 1; color: rgba(255,255,255,.80); } .sqlTerminalTable tbody tr { transition: background-color 120ms ease; } .sqlTerminalTable tbody tr:hover { background: rgba(255,255,255,.06); } .sqlTerminalConnMenu { flex: 1 1 auto; min-width: 220px; width: auto; } .sqlTerminalConnMenu .selectMenuBtn { width: 100%; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .sqlTerminalConnMenu .selectMenuPanel { max-height: min(240px, 36vh); overflow: auto; } .sqlTerminalPlayBtn { width: 34px; height: 28px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.03); font-size: 14px; } .sqlTerminalPlayBtn:hover { background: rgba(255,255,255,.06); } .sqlTerminalPlayBtn:disabled { opacity: 0.55; cursor: default; } .fabIcon { display: block; transform: translateY(-2px); line-height: 1; } .fab:hover { background: rgba(255,255,255,.16); } .fabMenu { width: min(420px, 92vw); } .modalSmall { width: min(420px, 92vw); max-height: min(60vh, 520px); } .modalSyntheticData { width: min(840px, 92vw); max-height: min(85vh, 1040px); } .modalSettings { width: min(720px, 92vw); max-height: min(80vh, 860px); font-size: 13px; } .modalSettings input, .modalSettings textarea, .modalSettings select, .modalSettings button { font-size: 13px; } .treeItem { padding: 8px 10px; border-radius: var(--radius); line-height: 1.0; display: flex; justify-content: flex-start; gap: 0.6px; align-items: center; min-width: 0; overflow: visible; } .treeItem:hover { background: rgba(255,255,255,.06); cursor: pointer; } .treeItemActive { background: rgba(255,255,255,.12); } .badge { display: inline-block; padding: 2px 8px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.12); font-size: 12px; opacity: .9; } .testResultBadge { width: 44px; padding-left: 0; padding-right: 0; text-align: center; display: inline-flex; align-items: center; justify-content: center; } .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; } .small { font-size: 15px; opacity: .8; } .codeWithGutterRows { width: 100%; min-width: 0; } .codeRow { display: flex; align-items: flex-start; width: 100%; min-width: 0; line-height: 1.45; } .codeWithGutterRows .codeRow .codeRowGutter { white-space: pre; flex: 0 0 auto; user-select: none; text-align: right; padding: 0 8px 0 2px; color: rgba(255, 255, 255, 0.438) !important; border-right: 1px solid rgba(255,255,255,.10); position: sticky; left: 0; background: rgba(11,12,16,.98); z-index: 1; } .codeRowText { flex: 1 1 auto; min-width: 0; padding: 0 0 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; } .codeRowText .jsonKeyToken { color: #7fd8ff !important; } .codeRowText .jsonNumberToken { color: #a9f5a9 !important; } .codeRowText .jsonStringToken { color: #ffb46a !important; } .codeRowText .jsonBooleanToken { color: #ff8ec2 !important; } .codeRowText .jsonNullToken { color: #b8c0cc !important; } .codeRowText .jsonPunctuationToken { color: #c7d2fe !important; } .codeRowText .xmlTagBracketToken { color: #bfc8d6 !important; } .codeRowText .xmlTagNameToken { color: #7fd8ff !important; } .codeRowText .xmlAttrNameToken { color: #95e7c3 !important; } .codeRowText .xmlAttrValueToken { color: #ffb46a !important; } .codeRowText .xmlCommentToken { color: #9aa6b2 !important; } .codeRowText .xmlDeclarationToken { color: #d8b4fe !important; } .codeRowText .xmlTextToken { color: #e5e7eb !important; } .codeRowText .searchMatchToken { background: rgba(250, 204, 21, 0.85); color: #111827 !important; border-radius: 3px; box-shadow: 0 0 0 1px rgba(250, 204, 21, 0.18); } .codeRowText:empty::before { content: ' '; } /* Collapsible tree */ .tree { display: grid; gap: 8px; min-width: 0; font-size: 13px; } .workspaceRoot { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; min-width: 0; overflow: visible; } .workspaceTreeSearchWrap { flex: 0 0 auto; z-index: 2; background: rgba(11,12,16,.98); padding-bottom: 8px; } .workspaceTreeScroll { flex: 1 1 auto; min-height: 0; overflow: auto; scrollbar-gutter: stable; margin-right: -12px; padding-right: 12px; } .workspaceTreeSearchField { position: relative; padding-right: 10px; } .workspaceTreeSearchInput { width: 100%; height: 34px; padding: 0 92px 0 10px; font-size: 13px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); } .workspaceTreeSearchInput:focus { outline: none; border-color: rgba(255,255,255,.24); } .workspaceTreeSearchActions { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 4px; } .workspaceTreeSearchActionBtn { width: 22px; height: 22px; padding: 0; border: 1px solid transparent; border-radius: var(--radius); display: grid; place-items: center; line-height: 1; color: rgba(255,255,255,.78); background: transparent; } .workspaceTreeSearchActionBtn:hover:not(:disabled) { color: rgba(255,255,255,.96); border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.10); } .workspaceTreeSearchActionBtn:disabled { opacity: .45; cursor: default; } .workspaceTreeSearchClearBtn { border: 0; display: grid; place-items: center; } .workspaceTreeSearchClearIcon { display: block; width: 8px; height: 8px; } .workspaceTreeSearchActionBtn > .iconGlyph { display: inline-flex; align-items: center; justify-content: center; transform: none; } .workspaceTreeEmptyState { padding: 10px; border: 1px dashed rgba(255,255,255,.16); border-radius: var(--radius); color: rgba(255,255,255,.58); } .treeGroup { border: 1px solid rgba(255,255,255,.10); border-radius: var(--radius); padding: 4px; background: rgba(255,255,255,.03); min-width: 0; overflow: visible; } .treeGroupInner { border: none; background: transparent; margin-top: 1px; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.10); } .treeWorkspaceFolderInner { border: none; background: transparent; margin-top: 1px; padding-left: 12px; border-left: 1px solid rgba(90,120,255,.18); } .treeWorkspaceFolderInner > .treeSummary { padding: 0 10px; border-radius: var(--radius); } .treeWorkspaceFolderInner > .treeSummary:hover { background: rgba(255,255,255,.05); } .treeGroupInner > .treeSummary { padding: 0 10px; border-radius: var(--radius); } .treeGroupInner > .treeSummary:hover { background: rgba(255,255,255,.05); } .treeGroup > .treeSummary { padding: 0 10px; border-radius: var(--radius); } .treeSummary { list-style: none; display: flex; justify-content: flex-start; align-items: center; gap: 8px; cursor: pointer; min-width: 0; overflow: visible; } .treeSummaryDnd { display: flex; justify-content: flex-start; align-items: center; gap: 8px; min-width: 0; width: 100%; flex: 1 1 auto; } .treeSummary::-webkit-details-marker { display: none; } .treeSummaryFolder { cursor: pointer; } .treeSummaryWorkspaceFolder { cursor: pointer; padding: 0 10px; border-radius: var(--radius); } .treeWorkspaceFolder[open] > .treeSummaryWorkspaceFolder { margin-bottom: 4px; } .treeWorkspaceFolderInner[open] > .treeSummaryWorkspaceFolder { margin-bottom: 4px; } .treeWorkspaceFolder { background: rgba(90,120,255,.06); border-color: rgba(90,120,255,.18); } .treeChevron { width: 14px; height: 14px; flex: 0 0 14px; display: inline-block; opacity: .75; transition: opacity .12s ease; position: relative; } .treeChevron::before { content: ''; position: absolute; left: 0; top: 3px; width: 14px; height: 10px; border: 1px solid rgba(255,255,255,.55); border-radius: 2px; background: transparent; } .treeChevron::after { content: ''; position: absolute; left: 2px; top: 1px; width: 7px; height: 5px; border: 1px solid rgba(255,255,255,.55); border-bottom: 0; border-radius: 2px 2px 0 0; background: transparent; } .treeGroup[open] > .treeSummary .treeChevron::before { background: rgba(255,255,255,.08); } .treeGroupInner[open] > .treeSummary .treeChevron::before { background: rgba(255,255,255,.08); } .treeSummaryLeft { display: flex; gap: 8px; align-items: baseline; overflow: hidden; min-width: 0; flex: 1 1 auto; } .treeSummaryFolder .treeSummaryLeft { align-items: center; } .treeSummaryRight { display: flex; gap: 6px; align-items: center; margin-left: auto; flex: 0 0 auto; } .treeCollectionName { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; min-width: 0; display: block; } .treeCollectionNameWrap { display: inline-flex; align-items: center; gap: 6px; overflow: hidden; min-width: 0; flex: 1 1 auto; } .treeFolderNameWrap { display: inline-flex; align-items: center; gap: 6px; overflow: hidden; min-width: 0; flex: 1 1 auto; } .treeItemNameWrap { display: inline-flex; align-items: center; gap: 6px; overflow: hidden; min-width: 0; flex: 1; } .treeFolderCount { flex: 0 0 auto; } .treeCollectionCount { flex: 0 0 auto; } .treeNameEditing { cursor: text; outline: none; } .treeNameEditing:focus { outline: none; } .treeCollectionNameWrap > .treeRenameIcon:not(.treeRenameIconConfirm) { display: none; } .treeCollectionNameWrap > .treeRenameIconConfirm { display: none; } .treeFolderNameWrap > .treeRenameIcon:not(.treeRenameIconConfirm) { display: none; } .treeFolderNameWrap > .treeRenameIconConfirm { display: none; } .treeItemNameWrap > .treeRenameIcon:not(.treeRenameIconConfirm) { display: none; } .treeSummaryRight .envBtn, .treeSummaryRight .deleteBtn { display: none; } .treeItem .treeMenuWrap { margin-left: auto; } .treeMenuWrap { position: relative; flex: 0 0 auto; } .treeMenuBtn { display: flex; align-items: center; justify-content: center; background: transparent; border: 0; color: rgba(255,255,255,.75); cursor: pointer; font: inherit; font-size: 0; opacity: 0; pointer-events: none; transition: opacity 120ms ease; } .treeSummaryDnd:hover .treeMenuBtn, .treeSummaryDnd:focus-within .treeMenuBtn, .treeItem:hover .treeMenuBtn, .treeItem:focus-within .treeMenuBtn { opacity: 1; pointer-events: auto; } .treeMenuBtn::before { content: '⋯'; font-size: 18px; line-height: 1; display: block; transform: translateY(-1px); } .treeMenuBtn:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.95); } .treeSummaryDnd:hover .treeMenuBtn:disabled, .treeSummaryDnd:focus-within .treeMenuBtn:disabled, .treeItem:hover .treeMenuBtn:disabled, .treeItem:focus-within .treeMenuBtn:disabled { opacity: .6; cursor: default; } .treeMenuBtn:disabled:hover { background: transparent; color: rgba(255,255,255,.75); } .treeMenuPanel { position: absolute; right: 0; top: 34px; min-width: 170px; display: grid; gap: 2px; padding: 6px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 30; } .treeMenuItem { width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: var(--radius); background: transparent; color: rgba(255,255,255,.92); font-size: 13px; } .treeMenuItem:hover { background: rgba(255,255,255,.08); } .treeMenuSubmenu { position: relative; } .treeMenuSubmenuTrigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .treeMenuSubmenuCaret { opacity: .78; font-size: 11px; line-height: 1; } .treeMenuSubmenuPanel { position: absolute; left: 100%; top: 0; min-width: 170px; display: none; gap: 2px; padding: 6px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 31; } .treeMenuSubmenuPanel::before { content: ''; position: absolute; left: -8px; top: 0; width: 8px; height: 100%; } .treeMenuSubmenu:hover > .treeMenuSubmenuPanel, .treeMenuSubmenu:focus-within > .treeMenuSubmenuPanel { display: grid; } .treeMenuDivider { height: 1px; background: rgba(255,255,255,.12); margin: 4px 2px; } .treeMenuItemSwagger:hover { background: #89bf04; color: #000 !important; } .treeMenuItemDanger { color: rgb(255, 170, 170); } .treeMenuItemDanger:hover { background: rgba(255, 80, 80, .14); } .treeRenameIcon { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; padding: 0; color: rgba(255,255,255,.65); cursor: pointer; font: inherit; line-height: 1; font-size: 0; } .treeRenameIcon::before { content: '✎'; font-size: 14px; line-height: 1; } .treeRenameIconConfirm::before { content: '✓'; } .treeRenameIcon:hover { color: rgba(255,255,255,.9); } .treeRenameIconConfirm { color: rgba(255,255,255,.95); } .treeRenameIconConfirm:hover { color: #fff; } .treeCollectionNameEditing { cursor: text; outline: none; } .treeCollectionNameEditing:focus { outline: none; } .treeFolderName { font-size: 13px; font-weight: 600; opacity: .95; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; display: block; } .treeGroupInner .treeFolderName { font-size: 13px; } .treeGroupInner .treeItem { font-size: 13px; padding: 1px 10px; } .treeGroupInner .treeMethod { font-size: 12px; } .treeGroup > .treeItems > .treeItem { font-size: 13px; padding: 1px 10px; } .treeGroup > .treeItems > .treeItem .treeMethod { font-size: 12px; } .envBtn { padding: 4px 8px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); font-size: 12px; } .envBtn:hover { background: rgba(255,255,255,.10); } .deleteBtn { padding: 4px 8px; border-radius: var(--radius); border: 1px solid rgba(255, 120, 120, .35); background: rgba(255, 80, 80, .10); color: rgb(255, 170, 170); font-size: 12px; } .deleteBtn:hover { background: rgba(255, 80, 80, .16); } .treeItems { display: grid; gap: 3px; margin-top: 4px; padding-left: 12px; border-left: 1px dashed rgba(255,255,255,.10); } .treeMethod { flex: 0 0 33px; text-align: left; opacity: .9; transition: color .12s ease, text-shadow .12s ease, opacity .12s ease; } .treeMethodInFlight { opacity: 1; font-weight: 700; } .treeMethodInFlightGET { color: #60a5fa; text-shadow: 0 0 10px rgba(96,165,250,.35); } .treeMethodInFlightPOST { color: #22c55e; text-shadow: 0 0 10px rgba(34,197,94,.30); } .treeMethodInFlightPUT { color: #eab308; text-shadow: 0 0 10px rgba(234,179,8,.30); } .treeMethodInFlightPATCH { color: #a855f7; text-shadow: 0 0 10px rgba(168,85,247,.30); } .treeMethodInFlightDELETE { color: #ef4444; text-shadow: 0 0 10px rgba(239,68,68,.30); } .treeMethodInFlightHEAD { color: rgba(255,255,255,.75); text-shadow: 0 0 10px rgba(255,255,255,.15); } .treeMethodInFlightOPTIONS { color: #2dd4bf; text-shadow: 0 0 10px rgba(45,212,191,.30); } .treeMethodInFlightCustom { color: #a855f7; text-shadow: 0 0 10px rgba(168,85,247,.30); } .treeMethod, .treeItemName { line-height: 1.0; } .treeItemName { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; display: block; } /* Editor */ .editor { display: grid; gap: 10px; } .editorSendBtn { min-width: 60px; } .editorSendBtnCancel { background: rgba(239,68,68,.18); border-color: rgba(239,68,68,.35); color: rgba(255,255,255,.96); } .editorSendBtnCancel:hover { background: rgba(239,68,68,.28); } .methodMenuWrap { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; } .methodBadgeBtn { cursor: pointer; font-size: 14px; padding: 8px 10px; line-height: 1; flex: 0 0 auto; white-space: nowrap; } .methodBadgeBtn::after { content: '▾'; display: inline-block; margin-left: 6px; opacity: .85; font-size: 12px; } .methodBadgeBtn:disabled { opacity: .7; cursor: default; } .methodBadgeBtn:disabled::after { display: none; } .methodMenuPanel { position: absolute; left: 0; top: 34px; min-width: 140px; display: grid; gap: 2px; padding: 6px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 40; } .copyMenuPanel { left: auto; right: 0; } .methodMenuItem { display: flex; align-items: center; width: 100%; text-align: left; padding: 8px 10px; border: 0; border-radius: var(--radius); background: transparent; color: rgba(255,255,255,.92); font-size: 13px; cursor: pointer; } .methodMenuItemRow { display: flex; align-items: center; gap: 4px; border-radius: var(--radius); } .methodMenuItemRow .methodMenuItem { flex: 1 1 auto; } .methodMenuCustomItemRow { position: relative; } .methodMenuCustomItemBtn { padding-right: 30px; } .methodMenuDeleteBtn { display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 50%; right: 6px; transform: translateY(-50%); margin-left: 0; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: rgba(255,255,255,.65); font-size: 14px; line-height: 1; cursor: pointer; } .methodMenuDeleteBtn:hover { background: rgba(255,255,255,.1); color: rgba(255,255,255,.92); } .methodMenuItem:hover { background: rgba(255,255,255,.08); } .methodMenuCustomItemRow:hover .methodMenuCustomItemBtn { background: rgba(255,255,255,.08); } .methodMenuItemActive { background: transparent; } .methodMenuItemActive .methodMenuItem { background: rgba(255,255,255,.10); } .methodMenuAddBtn { margin-top: 2px; opacity: .9; } .methodMenuAddInput { width: 100%; height: 32px; box-sizing: border-box; padding: 0 10px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: rgba(255,255,255,.92); font-size: 13px; } .editorUrl { padding: 4px 10px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.04); display: flex; gap: 10px; align-items: center; min-height: 36px; min-width: 0; line-height: 1.3; } .editorUrlWrap { position: relative; overflow: visible; min-width: 0; font-size: 13px; } .editorUrl .methodBadgeBtn, .editorUrl .editorUrlActionBtn, .editorUrl .editorSendBtn { height: 32px; box-sizing: border-box; font-size: 13px; } .editorUrl .methodBadgeBtn { width: 65px; min-width: 65px; position: relative; display: inline-flex; align-items: center; justify-content: center; padding-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 14px; background: transparent; border: 0; border-radius: 0; box-shadow: none; text-align: center; } .editorUrl .methodBadgeBtn::after { position: absolute; right: 0; margin-left: 0; } .editorUrl .editorUrlActionBtn { width: 28px; height: 28px; padding: 0; display: inline-flex; align-items: center; justify-content: center; } .editorUrl .editorSendBtn { width: 40px; min-width: 40px; font-family: var(--font-mono); display: inline-flex; align-items: center; justify-content: center; padding-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; margin-left: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: center; } .editorUrl .editorSendBtnCancel, .editorUrl .editorSendBtnCancel:hover { border: 0; border-radius: 0; background: transparent; color: rgba(255,255,255,.96); } .editorUrlInput { height: 28px; box-sizing: border-box; padding: 0 8px; border: 0; background: transparent; font-size: 13px; line-height: 1.3; } .editorUrlInput:focus { outline: none; box-shadow: none; } .editorUrlInput:focus-visible { outline: 2px solid rgba(255,255,255,.22); outline-offset: 2px; border-radius: var(--radius); } .editorUrlText { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; min-width: 0; } .editorUrlMain { position: relative; align-self: stretch; display: flex; align-items: center; min-width: 0; flex: 1 1 auto; border-left: 1px solid rgba(255,255,255,.16); padding-left: 10px; } .editorUrlValue { min-width: 0; flex: 1; font-size: 13px; line-height: 1.3; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .editorUrlSendWrap { align-self: stretch; display: flex; align-items: center; border-left: 1px solid rgba(255,255,255,.16); padding-left: 10px; } .editorUrlBaseUrlDock { position: absolute; left: 0; top: calc(100% + 6px); width: 100%; z-index: 230; } .editorUrlBaseUrlMenu { position: static; left: auto; top: auto; width: 100%; max-height: 240px; overflow: auto; } .editorTextarea { width: 100%; margin-top: 10px; resize: vertical; font-size: 13px; line-height: 1.3; } .editorTextarea:focus { outline: none; box-shadow: none; } .editorTextarea:focus-visible { outline: 2px solid rgba(255,255,255,.20); outline-offset: 2px; } html.platform-macos .bodyResizeHandle { height: 12px; margin-top: -2px; cursor: ns-resize; touch-action: none; user-select: none; position: relative; } html.platform-macos .bodyResizeHandle::before { content: ''; position: absolute; left: 50%; top: 4px; width: 48px; height: 3px; transform: translateX(-50%); border-radius: 999px; background: rgba(255,255,255,.22); } .bodyBeautifyBtn { height: 32px; width: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; gap: 0; font-size: 12px; } .bodyFormatMenuBtn { height: 32px; padding: 0 8px; font-size: 12px; } .accordion { border: 1px solid rgba(255,255,255,.10); border-radius: var(--radius); padding: 8px 10px; background: rgba(255,255,255,.03); } .accordion > summary { cursor: pointer; font-weight: 600; opacity: .95; display: flex; align-items: center; gap: 10px; } .accordion > summary::marker { content: ''; } .accordion > summary::before { content: ''; width: 8px; height: 8px; border-right: 2px solid rgba(255,255,255,.55); border-bottom: 2px solid rgba(255,255,255,.55); transform: rotate(-45deg); flex: 0 0 8px; margin-top: 0; } .accordion[open] > summary::before { transform: translateY(-1px) rotate(45deg); } .accordion > summary::-webkit-details-marker { display: none; } .accordion.authAccordion .section { margin-top: 0; } .accordion.sqlScriptsAccordion .section { margin-top: 0; } .section { display: grid; gap: 8px; margin-top: 10px; } .sectionTitle { font-size: 12px; opacity: .8; font-weight: 600; } .formRow { display: grid; grid-template-columns: 220px 1fr; gap: 10px; align-items: center; } .formLabel { font-size: 12px; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .settingsTable { display: grid; gap: 0; border: 1px solid rgba(255,255,255,.10); border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.03); } .settingsTableRow { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 0; border-top: 1px solid rgba(255,255,255,.08); min-height: 53px; } .settingsTableRow:first-child { border-top: 0; } .settingsTableRowTop { align-items: start; } .settingsTableLabel { display: flex; align-items: center; min-height: 53px; padding: 10px 14px; font-size: 12px; font-weight: 600; opacity: .9; background: rgba(255,255,255,.03); border-right: 1px solid rgba(255,255,255,.08); } .settingsTableRowTop .settingsTableLabel { align-self: stretch; } .settingsTableValue { display: flex; flex-direction: column; justify-content: center; min-width: 0; min-height: 53px; padding: 10px 14px; } .settingsTimeoutCell { flex-direction: row; align-items: stretch; padding: 0; } .settingsTimeoutFieldWrap { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; padding: 10px 14px; } .settingsTimeoutFieldWrapDisabled { background: rgba(0,0,0,.18); } .settingsTimeoutField { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; outline: none; } .settingsTimeoutField:disabled { background: transparent; border-color: transparent; color: rgba(232,232,232,.55); } .settingsTimeoutField:focus { outline: none; } .settingsTimeoutToggle { flex: 0 0 auto; align-self: stretch; display: inline-flex; align-items: center; padding: 10px 14px; border-left: 1px solid rgba(255,255,255,.08); } .settingsActionRow { width: 100%; display: flex; align-items: center; justify-content: flex-end; gap: 10px; } .settingsSplitRow { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .settingsCertsCell { padding-top: 0; padding-bottom: 0; } .settingsCertsInlineRow { width: 100%; min-width: 0; min-height: 53px; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .settingsCertsEmpty { min-width: 0; margin-right: auto; font-size: 13px; line-height: 1.2; opacity: 0.7; } .settingsCertsScroller { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 2px 0; scrollbar-width: thin; } .settingsCertChip { flex: 0 0 auto; max-width: 220px; min-width: 0; display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); } .settingsCertChipText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 1.2; } .settingsCertChipDelete { width: 20px; height: 20px; min-height: 0; padding: 0; border: 0; border-radius: 999px; background: transparent; color: rgba(255,255,255,.75); display: inline-flex; align-items: center; justify-content: center; } .settingsCertChipDelete:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.95); } @media (max-width: 720px) { .modalSettings .settingsTableRow { grid-template-columns: 1fr; } .modalSettings .settingsTimeoutCell { flex-direction: column; align-items: stretch; } .modalSettings .settingsTimeoutToggle { border-left: 0; border-top: 1px solid rgba(255,255,255,.08); } .modalSettings .settingsCertsInlineRow { min-height: 53px; } .modalSettings .settingsTableLabel { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); } } .reqStar { color: #ff9a9a !important; margin-left: 4px; } .keyReqStar { color: #ff9a9a !important; position: absolute; right: 10px; top: 0; bottom: 0; display: flex; align-items: center; transform: translateY(2px); margin-left: 0; pointer-events: none; } .editor .formRow input.keyInput { padding-right: 24px; } .editor .formRow input { height: 36px; padding: 8px 10px; } .editor .formRow input.valueHistoryInput, .editor .formRow textarea.valueHistoryInput { padding-right: 35px; } .editor .headerDeleteBtn, .editor .rowDeleteBtn { height: 36px; } .headerDeleteBtn { width: 44px; height: 36px; min-height: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; } .importCloseBtn { width: 36px; height: 36px; } .terminalCloseBtn { width: 36px; height: 36px; } .terminalClearBtn .terminalClearGlyph { display: inline-flex; align-items: center; justify-content: center; transform: translateY(-1px); font-size: 17px; line-height: 1; } html.platform-macos .terminalClearBtn .terminalClearGlyph { font-size: 19px; } .rowDeleteBtn { width: 44px; height: 36px; min-height: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; } .confirmActionArmed { background: rgba(255, 210, 80, .18); border-color: rgba(255, 210, 80, .55); color: rgb(255, 230, 140); } .confirmActionArmed:hover { background: rgba(255, 210, 80, .26); } .confirmActionArmed:focus-visible { outline: 2px solid rgba(255, 210, 80, .45); outline-offset: 2px; } .confirmActionGlyph { font-size: 18px; line-height: 1; font-weight: 750; transform: translateY(-1px); } /* Response status colors */ .status2xx { border-color: rgba(80, 220, 140, .55); background: rgba(80, 220, 140, .16); color: rgb(120, 255, 185); } .status3xx { border-color: rgba(110, 170, 255, .55); background: rgba(110, 170, 255, .16); color: rgb(160, 200, 255); } .status4xx { border-color: rgba(255, 210, 80, .55); background: rgba(255, 210, 80, .16); color: rgb(255, 230, 140); } .status5xx { border-color: rgba(255, 110, 110, .55); background: rgba(255, 110, 110, .16); color: rgb(255, 160, 160); } .statusOther { border-color: rgba(200, 200, 200, .35); background: rgba(200, 200, 200, .12); color: rgba(255, 255, 255, .9); } .sizePopoverWrap { position: relative; display: inline-flex; align-items: center; outline: none; } .sizePopoverTrigger { cursor: help; text-decoration: underline dotted rgba(255,255,255,.28); text-underline-offset: 2px; } .sizePopoverPortal { position: fixed; inset: 0; z-index: 9999; pointer-events: none; } .sizePopoverPanel { min-width: 280px; padding: 12px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 8px 24px rgba(0,0,0,.45); pointer-events: auto; } .sizePopoverSection { display: grid; gap: 6px; } .sizePopoverHeader { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 2px; } .sizePopoverTitle { display: inline-flex; align-items: center; gap: 8px; font-weight: 650; color: rgba(255,255,255,.92); } .sizePopoverStrong { font-weight: 650; color: rgba(255,255,255,.92); } .sizePopoverIcon { width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); font-size: 13px; line-height: 1; } .sizePopoverRow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: rgba(255,255,255,.78); } .sizePopoverLabel { opacity: .8; } .sizePopoverValue { color: rgba(255,255,255,.86); } .sizePopoverDivider { height: 1px; background: rgba(255,255,255,.10); margin: 10px 0; } .responseFooterWrap { display: grid; grid-template-rows: auto auto auto; row-gap: 6px; min-height: 0; } .responseFooterDivider { margin: 0; } .responseFooter { display: flex; padding: 5px 0 7px; justify-content: space-between; align-items: center; gap: 12px; } .responseFooterLeft { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1 1 auto; } .responseFooterMeta { min-width: 0; opacity: .85; } .responseFooterActions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; } .responseFooterError { color: #ff9a9a; opacity: 1; } .responseFooterUtilityBtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; flex: 0 0 auto; height: 32px; padding-top: 0; padding-bottom: 0; box-sizing: border-box; line-height: 1; } .responseFooterUtilityBtn > svg, .responseFooterUtilityBtn > span { display: inline-flex; align-items: center; justify-content: center; } .syntheticDataGrid { display: grid; gap: 10px; } .syntheticDataField { display: grid; gap: 6px; } .syntheticTypeField { position: relative; z-index: 5; } .syntheticTypeField .syntheticTypeMenuBtn { background: #161b26; border-color: rgba(255,255,255,.16); } .syntheticTypeField .syntheticTypeMenuBtn:hover, .syntheticTypeField .syntheticTypeMenuBtn:focus-visible { background: #1b2230; border-color: rgba(255,255,255,.22); } .syntheticTypeField .syntheticTypeMenuPanel { background: #161b26; border-color: rgba(255,255,255,.16); max-height: 220px; overflow: auto; z-index: 260; } .syntheticDataOutput { width: 100%; min-height: 320px; resize: vertical; } @media (max-width: 640px) { .responseFooter { flex-wrap: wrap; align-items: stretch; } .responseFooterLeft, .responseFooterActions { width: 100%; } .responseFooterActions { justify-content: flex-start; } .responseFooterUtilityBtn { flex: 0 1 auto; } } .responseCard { position: static; overflow: hidden; padding-bottom: 0; } .responseCardBody { height: 100%; min-height: 0; overflow: hidden; } .collectionRunSheetBackdrop { position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.35); z-index: 50; animation: collectionRunBackdropIn 180ms ease; } .collectionRunSheetBackdropClosing { animation: collectionRunBackdropOut 180ms ease forwards; } .collectionRunSheetBackdropDisabled { cursor: not-allowed; } .collectionRunSheetPanel { position: absolute; left: 8px; right: 8px; top: 8px; bottom: 8px; z-index: 60; max-height: none; overflow: hidden; display: flex; flex-direction: column; min-height: 0; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 10px 28px rgba(0,0,0,.45); padding: 12px; animation: collectionRunSheetIn 220ms cubic-bezier(.22,.8,.2,1); font-size: 13px; } .collectionRunSheetPanelClosing { animation: collectionRunSheetOut 220ms cubic-bezier(.22,.8,.2,1) forwards; } .collectionRunSheetPanel .small, .collectionRunSheetPanel .mono, .collectionRunSheetPanel input, .collectionRunSheetPanel button { font-size: 13px; } .dataRunReportSheetBackdrop { position: fixed; inset: 0; border: 0; background: rgba(0,0,0,.35); z-index: 120; animation: collectionRunBackdropIn 180ms ease; cursor: default; user-select: none; -webkit-user-select: none; } .dataRunReportSheetBackdrop:hover, .dataRunReportSheetBackdrop:active, .dataRunReportSheetBackdrop:focus, .dataRunReportSheetBackdrop:focus-visible { background: rgba(0,0,0,.35); box-shadow: none; outline: none; } .dataRunReportSheetPanel { position: fixed; right: 12px; bottom: 12px; left: auto; top: auto; width: min(760px, calc(100vw - 24px)); height: min(56vh, 520px); z-index: 130; max-height: none; overflow: hidden; display: flex; flex-direction: column; min-height: 0; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 10px 28px rgba(0,0,0,.45); padding: 12px; animation: collectionRunSheetIn 220ms cubic-bezier(.22,.8,.2,1); font-size: 13px; } .dataRunReportSheetPanel .small, .dataRunReportSheetPanel .mono, .dataRunReportSheetPanel input, .dataRunReportSheetPanel button { font-size: 13px; } .dataRunInputEditorBackdrop { position: fixed; inset: 0; border: 0; background: rgba(0,0,0,.42); z-index: 140; cursor: default; user-select: none; -webkit-user-select: none; animation: collectionRunBackdropIn 180ms ease; } .dataRunInputEditorBackdrop:hover, .dataRunInputEditorBackdrop:active, .dataRunInputEditorBackdrop:focus, .dataRunInputEditorBackdrop:focus-visible { background: rgba(0,0,0,.42); box-shadow: none; outline: none; } .dataRunInputEditorPanel { position: fixed; left: 50%; top: 50%; width: min(980px, calc(100vw - 40px)); height: min(72vh, 680px); transform: translate(-50%, -50%); z-index: 150; max-height: none; overflow: hidden; display: grid; grid-template-rows: auto 1fr; min-height: 0; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: #0f1117; box-shadow: 0 10px 28px rgba(0,0,0,.45); padding: 12px; animation: dataRunInputEditorIn 180ms cubic-bezier(.22,.8,.2,1); font-size: 13px; } .dataRunInputEditorPanel .small, .dataRunInputEditorPanel .mono, .dataRunInputEditorPanel input, .dataRunInputEditorPanel button, .dataRunInputEditorPanel textarea { font-size: 13px; } @keyframes dataRunInputEditorIn { from { transform: translate(-50%, -50%) scale(.98); opacity: .6; } to { transform: translate(-50%, -50%) scale(1); opacity: 1; } } @keyframes collectionRunSheetIn { from { transform: translateY(100%); opacity: .5; } to { transform: translateY(0); opacity: 1; } } @keyframes collectionRunBackdropIn { from { opacity: 0; } to { opacity: 1; } } @keyframes collectionRunSheetOut { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: .5; } } @keyframes collectionRunBackdropOut { from { opacity: 1; } to { opacity: 0; } } .responseSearchWrap { max-height: 0; overflow: hidden; opacity: 0; transition: max-height 180ms ease, opacity 180ms ease; } .responseSearchWrapOpen { max-height: 120px; opacity: 1; } .responseSearchWrapOpen .responseSearchInner { margin-top: 6px; } .responseSearchInner { display: flex; gap: 8px; align-items: center; } .responseSearchActionBtn, .responseSearchModeBtn { height: 34px; min-height: 34px; padding: 0 12px; border-radius: var(--radius); white-space: nowrap; } .responseSearchInner input { flex: 1; min-width: 0; height: 34px; padding: 6px 10px; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); } .responseSearchInner input.valueHistoryInput { padding-right: 60px; box-sizing: border-box; } .responseSearchInner input:focus { outline: none; } .responseSearchInner input:focus-visible { outline: none; box-shadow: none; border-color: rgba(255,255,255,.22); } .responseSearchModeBtn { min-width: 54px; } .responseSearchModeBtnActive { border-color: rgba(143,211,255,.45); background: rgba(143,211,255,.14); box-shadow: inset 0 0 0 1px rgba(143,211,255,.14); } /* Tabs */ .tabs { display: flex; gap: 0; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); overflow: hidden; } .tab { flex: 1; text-align: center; padding: 8px 12px; background: rgba(255,255,255,.04); border: 0; border-right: 1px solid rgba(255,255,255,.12); border-radius: 0; } .tab:last-child { border-right: 0; } .tabActive { background: rgba(255,255,255,.12); } .tab.tabTestsPass { background: rgba(36, 208, 90, .16); box-shadow: inset 0 0 0 1px rgba(36, 208, 90, .35); } .tab.tabTestsFail { background: rgba(231, 76, 60, .16); box-shadow: inset 0 0 0 1px rgba(231, 76, 60, .38); } .tab.tabTestsPass.tabActive { background: rgba(36, 208, 90, .24); box-shadow: inset 0 0 0 1px rgba(36, 208, 90, .45); } .tab.tabTestsFail.tabActive { background: rgba(231, 76, 60, .24); box-shadow: inset 0 0 0 1px rgba(231, 76, 60, .48); } .tabLabelWithIndicator { display: inline-flex; align-items: center; justify-content: center; gap: 6px; } .tabIndicatorDot { width: 8px; height: 8px; border-radius: 999px; background: #24d05a; box-shadow: 0 0 0 1px rgba(0,0,0,.2); } html.platform-macos .editor .tabs .tab, html.platform-macos .responseViewer .tabs .tab { font-size: 14px; line-height: 1.2; font-weight: 500; } html.platform-macos .modalSettings .tabs .tab { font-size: 13px; line-height: 1.2; font-weight: 500; } html.platform-macos button:focus, html.platform-macos button:focus-visible, html.platform-macos input:focus, html.platform-macos input:focus-visible, html.platform-macos textarea:focus, html.platform-macos textarea:focus-visible, html.platform-macos select:focus, html.platform-macos select:focus-visible, html.platform-macos [tabindex]:focus, html.platform-macos [tabindex]:focus-visible, html.platform-macos dialog:focus, html.platform-macos dialog:focus-visible { outline: none !important; box-shadow: none !important; } .modalSettings .formLabel { font-size: 13px; } .aiCard { display: grid; gap: 8px; padding: 12px; border: 1px solid rgba(255,255,255,.10); border-radius: 12px; background: rgba(255,255,255,.03); } .aiMonoBlock { padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.16); white-space: pre-wrap; overflow-wrap: anywhere; } .aiOutputBlock { margin: 0; padding: 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.18); white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.45; } /* Request history */ .historyList { display: flex; flex-direction: column; height: 100%; overflow: hidden; } .historyItem { text-align: left; padding: 5px 7px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); background: rgba(255,255,255,.04); cursor: pointer; } .historyItem:hover { background: rgba(255,255,255,.08); } .historyItem:active { background: rgba(255,255,255,.10); } .historyDeleteBtn { flex: 0 0 auto; height: 24px; width: 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); } .historyDeleteBtn:hover { background: rgba(255,255,255,.10); } .historyInfoBtn { flex: 0 0 auto; height: 24px; width: 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); font-size: 12px; } .historyInfoBtn:hover { background: rgba(255,255,255,.10); } .historyInfoGlyph { font-weight: 700; line-height: 1; transform: translateY(-0.5px); } .historyInfoPanel { max-height: min(60vh, 420px); overflow: auto; gap: 10px; padding: 10px; } .historyInfoSection { display: grid; gap: 6px; } .historyInfoTitle { font-size: 12px; opacity: .8; font-weight: 700; padding-left: 4px; } .historyInfoList { display: grid; gap: 6px; } .historyInfoRow { display: grid; gap: 4px; min-width: 0; padding: 6px 8px; border: 1px solid rgba(255,255,255,.08); border-radius: var(--radius); background: rgba(255,255,255,.03); } .testResultItemBtn { transition: background-color .12s ease, border-color .12s ease; } .testResultItemBtn:hover { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.2) !important; } .testResultItemBtn:focus-visible { outline: 2px solid rgba(255,255,255,.35); outline-offset: 1px; } .historyInfoValue { font-size: 12px; min-width: 0; max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; user-select: text; } .historyInfoUrlValue { overflow-wrap: anywhere; word-break: break-all; } .historyInfoBody { margin: 0; padding: 8px; max-height: 180px; overflow: auto; border: 1px solid rgba(255,255,255,.08); border-radius: var(--radius); background: rgba(255,255,255,.03); font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; } .historyInfoEmpty { opacity: .75; padding: 2px 0 2px 4px; }