3628 lines
72 KiB
CSS
3628 lines
72 KiB
CSS
*, *::before, *::after {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
:root {
|
|
/* Premium Method colors with enhanced vibrancy */
|
|
--m-get: #10b981;
|
|
--m-post: #6366f1;
|
|
--m-put: #f59e0b;
|
|
--m-patch: #f97316;
|
|
--m-delete: #ef4444;
|
|
--m-head: #a855f7;
|
|
--m-options: #06b6d4;
|
|
--m-default: #6b7280;
|
|
|
|
/* Enhanced Accent palette with gradients */
|
|
--accent: #6366f1;
|
|
--accent-2: #818cf8;
|
|
--accent-3: #c4b5fd;
|
|
--accent-dim: rgba(99,102,241,.12);
|
|
--accent-glow: rgba(99,102,241,.3);
|
|
--accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
|
|
|
|
/* Premium gradient backgrounds */
|
|
--gradient-subtle: linear-gradient(135deg, rgba(99,102,241,.05) 0%, rgba(139,92,246,.05) 100%);
|
|
--gradient-strong: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #06b6d4 100%);
|
|
--gradient-warm: linear-gradient(135deg, #f97316 0%, #f59e0b 100%);
|
|
|
|
/* Typography - enhanced */
|
|
--font-sans: 'Inter', system-ui, -apple-system, sans-serif;
|
|
--font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
|
|
--font-weight-light: 300;
|
|
--font-weight-normal: 400;
|
|
--font-weight-medium: 500;
|
|
--font-weight-semibold: 600;
|
|
--font-weight-bold: 700;
|
|
|
|
/* Radii - refined */
|
|
--radius-xs: 2px;
|
|
--radius-sm: 4px;
|
|
--radius-md: 6px;
|
|
--radius-lg: 10px;
|
|
--radius-xl: 14px;
|
|
--radius-2xl: 20px;
|
|
--radius-full: 9999px;
|
|
|
|
/* Sizing */
|
|
--topbar-h: 56px;
|
|
--sidebar-w: 260px;
|
|
--try-w: 400px;
|
|
|
|
/* Transitions - smooth and sophisticated */
|
|
--ease: cubic-bezier(.22,.1,.36,1);
|
|
--ease-out: cubic-bezier(.16,.1,0,1);
|
|
--ease-in: cubic-bezier(.52,0,.3,1);
|
|
--ease-smooth: cubic-bezier(.4,.0,.2,1);
|
|
|
|
/* Animations */
|
|
--duration-fast: 150ms;
|
|
--duration-base: 250ms;
|
|
--duration-slow: 350ms;
|
|
}
|
|
|
|
/* DARK THEME (default) - Premium */
|
|
[data-theme="dark"] {
|
|
--bg-0: #060609;
|
|
--bg-1: #0a0d14;
|
|
--bg-2: #0f1219;
|
|
--bg-3: #151a28;
|
|
--bg-4: #1d2235;
|
|
--bg-5: #252d42;
|
|
--border: rgba(255,255,255,.05);
|
|
--border-2: rgba(255,255,255,.08);
|
|
--border-3: rgba(255,255,255,.12);
|
|
--text-1: #f0f4f8;
|
|
--text-2: #8b92b0;
|
|
--text-3: #4a5268;
|
|
--text-hover: #ffffff;
|
|
--shadow-xs: 0 1px 2px rgba(0,0,0,.3);
|
|
--shadow-sm: 0 2px 6px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.2);
|
|
--shadow: 0 8px 24px rgba(0,0,0,.6), 0 12px 48px rgba(0,0,0,.3);
|
|
--shadow-lg: 0 20px 60px rgba(0,0,0,.7), 0 8px 24px rgba(0,0,0,.4);
|
|
--shadow-xl: 0 30px 80px rgba(0,0,0,.8);
|
|
--topbar-bg: rgba(10,13,20,.85);
|
|
--sidebar-bg: rgba(10,13,20,.90);
|
|
--code-bg: #020203;
|
|
--code-border: rgba(255,255,255,.08);
|
|
--overlay: rgba(0,0,0,.3);
|
|
--icon-sun: block;
|
|
--icon-moon: none;
|
|
}
|
|
|
|
/* LIGHT THEME - Premium */
|
|
[data-theme="light"] {
|
|
--bg-0: #f8f9fc;
|
|
--bg-1: #ffffff;
|
|
--bg-2: #f3f5fa;
|
|
--bg-3: #eff1f8;
|
|
--bg-4: #e8ebf5;
|
|
--bg-5: #e0e4f0;
|
|
--border: rgba(0,0,0,.06);
|
|
--border-2: rgba(0,0,0,.10);
|
|
--border-3: rgba(0,0,0,.14);
|
|
--text-1: #0d1428;
|
|
--text-2: #63718a;
|
|
--text-3: #959db4;
|
|
--text-hover: #000000;
|
|
--shadow-xs: 0 1px 2px rgba(0,0,0,.05);
|
|
--shadow-sm: 0 2px 6px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.03);
|
|
--shadow: 0 8px 24px rgba(0,0,0,.12), 0 12px 48px rgba(0,0,0,.06);
|
|
--shadow-lg: 0 20px 60px rgba(0,0,0,.15), 0 8px 24px rgba(0,0,0,.08);
|
|
--shadow-xl: 0 30px 80px rgba(0,0,0,.18);
|
|
--topbar-bg: rgba(255,255,255,.88);
|
|
--sidebar-bg: rgba(255,255,255,.95);
|
|
--code-bg: #f7f8fb;
|
|
--code-border: rgba(0,0,0,.08);
|
|
--overlay: rgba(0,0,0,.2);
|
|
--icon-sun: none;
|
|
--icon-moon: block;
|
|
}
|
|
|
|
/* BASE */
|
|
html, body {
|
|
height: 100%;
|
|
overflow: hidden;
|
|
background: var(--bg-0);
|
|
color: var(--text-1);
|
|
font-family: var(--font-sans);
|
|
font-size: 13px;
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
button {
|
|
cursor: pointer;
|
|
border: none;
|
|
background: none;
|
|
font: inherit;
|
|
color: inherit;
|
|
}
|
|
|
|
input, textarea, select {
|
|
font: inherit;
|
|
color: inherit;
|
|
background: transparent;
|
|
border: none;
|
|
outline: none;
|
|
}
|
|
|
|
select {
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
}
|
|
|
|
a {
|
|
color: var(--accent-2);
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 4px;
|
|
height: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--bg-4);
|
|
border-radius: 99px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--bg-5);
|
|
}
|
|
|
|
/* TOP BAR - Premium Enhancement */
|
|
.topbar {
|
|
position: fixed;
|
|
inset: 0 0 auto 0;
|
|
z-index: 100;
|
|
height: var(--topbar-h);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 0 20px;
|
|
background: var(--topbar-bg);
|
|
border-bottom: 1px solid var(--border);
|
|
backdrop-filter: blur(12px) saturate(1.5);
|
|
-webkit-backdrop-filter: blur(12px) saturate(1.5);
|
|
box-shadow: 0 1px 3px var(--overlay);
|
|
transition: all var(--duration-base) var(--ease-smooth);
|
|
}
|
|
|
|
[data-theme="dark"] .topbar {
|
|
background: linear-gradient(180deg, rgba(10,13,20,.95) 0%, rgba(10,13,20,.90) 100%);
|
|
}
|
|
|
|
[data-theme="light"] .topbar {
|
|
background: linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 100%);
|
|
}
|
|
|
|
.topbar-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.topbar-center {
|
|
flex: 1;
|
|
min-width: 0;
|
|
max-width: 480px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.topbar-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Brand - Premium */
|
|
.brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
user-select: none;
|
|
transition: opacity var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.brand:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.brand-icon {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--radius-lg);
|
|
background: var(--gradient-strong);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 4px 16px rgba(99,102,241,.4), 0 0 0 1px rgba(255,255,255,.2) inset;
|
|
position: relative;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.brand-icon::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(135deg, rgba(255,255,255,.2) 0%, transparent 60%);
|
|
}
|
|
|
|
.brand-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
color: #fff;
|
|
position: relative;
|
|
z-index: 1;
|
|
filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
|
|
}
|
|
|
|
.brand-text {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 8px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.brand-name {
|
|
font-size: 15px;
|
|
font-weight: 700;
|
|
letter-spacing: -.02em;
|
|
background: linear-gradient(135deg, var(--text-1) 30%, var(--accent-2) 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
text-shadow: 0 1px 2px rgba(0,0,0,.1);
|
|
}
|
|
|
|
.brand-ver {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
font-family: var(--font-mono);
|
|
padding: 3px 8px;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-full);
|
|
color: var(--text-2);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* API Selector */
|
|
.api-switcher-wrap {
|
|
display: flex;
|
|
}
|
|
|
|
.api-select {
|
|
height: 30px;
|
|
padding: 0 28px 0 10px;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
background: var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%236b7280' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 6px center / 16px no-repeat;
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-1);
|
|
cursor: pointer;
|
|
transition: border-color .15s, box-shadow .15s;
|
|
}
|
|
|
|
.api-select:hover {
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.api-select:focus {
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 3px var(--accent-dim);
|
|
outline: none;
|
|
}
|
|
|
|
/* Search - Enhanced */
|
|
.search-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
height: 38px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-lg);
|
|
padding: 0 12px;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
position: relative;
|
|
}
|
|
|
|
.search-wrap::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
border-radius: inherit;
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
transition: opacity var(--duration-base) var(--ease-smooth);
|
|
}
|
|
|
|
.search-wrap:focus-within {
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 3px var(--accent-dim), 0 4px 12px var(--overlay);
|
|
}
|
|
|
|
.search-wrap:focus-within::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.search-ico {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--text-3);
|
|
flex-shrink: 0;
|
|
transition: color var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.search-wrap:focus-within .search-ico {
|
|
color: var(--accent);
|
|
}
|
|
|
|
.search-wrap input {
|
|
flex: 1;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
background: none;
|
|
color: var(--text-1);
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.search-wrap input::placeholder {
|
|
color: var(--text-3);
|
|
}
|
|
|
|
.search-kbd {
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
padding: 3px 6px;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-xs);
|
|
color: var(--text-3);
|
|
flex-shrink: 0;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Topbar Buttons - Enhanced */
|
|
.tb-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
height: 32px;
|
|
padding: 0 12px;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-2);
|
|
background: transparent;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
white-space: nowrap;
|
|
position: relative;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.tb-btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--bg-2);
|
|
border-radius: inherit;
|
|
opacity: 0;
|
|
transition: opacity var(--duration-fast) var(--ease-smooth);
|
|
z-index: -1;
|
|
}
|
|
|
|
.tb-btn svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
flex-shrink: 0;
|
|
transition: color var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.tb-btn:hover {
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.tb-btn:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.tb-btn:active {
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
.tb-btn-accent {
|
|
background: var(--gradient-strong);
|
|
color: #fff !important;
|
|
box-shadow: 0 4px 12px rgba(99,102,241,.35);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.tb-btn-accent::before {
|
|
display: none !important;
|
|
}
|
|
|
|
.tb-btn-accent:hover {
|
|
box-shadow: 0 6px 20px rgba(99,102,241,.5) !important;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.tb-btn-accent:active {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.tb-divider {
|
|
width: 1px;
|
|
height: 18px;
|
|
background: linear-gradient(180deg, transparent 0%, var(--border-2) 50%, transparent 100%);
|
|
margin: 0 6px;
|
|
}
|
|
|
|
/* Auth dot */
|
|
.auth-dot {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: #34d399;
|
|
box-shadow: 0 0 6px rgba(52,211,153,.7);
|
|
margin-left: 2px;
|
|
}
|
|
|
|
/* Export dropdown */
|
|
.export-group {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
position: relative;
|
|
}
|
|
|
|
.export-dropdown {
|
|
position: relative;
|
|
}
|
|
|
|
/* Export dropdown - Enhanced */
|
|
.export-menu {
|
|
position: absolute;
|
|
top: calc(100% + 8px);
|
|
right: 0;
|
|
min-width: 180px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: 0 10px 32px var(--overlay);
|
|
overflow: hidden;
|
|
display: none;
|
|
z-index: 200;
|
|
animation: pop-in .14s var(--ease-smooth);
|
|
backdrop-filter: blur(8px);
|
|
-webkit-backdrop-filter: blur(8px);
|
|
}
|
|
|
|
.export-menu.open {
|
|
display: block;
|
|
}
|
|
|
|
@keyframes pop-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-8px) scale(.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
.export-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
padding: 10px 14px;
|
|
font-size: 12px;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.export-item:hover {
|
|
background: var(--bg-3);
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.export-fmt {
|
|
font-weight: 600;
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.export-desc {
|
|
color: var(--text-3);
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.chevdown {
|
|
width: 14px;
|
|
height: 14px;
|
|
margin-left: 2px;
|
|
}
|
|
|
|
/* Icon buttons - Enhanced */
|
|
.icon-btn {
|
|
width: 32px;
|
|
height: 32px;
|
|
border-radius: var(--radius-md);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-2);
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
cursor: pointer;
|
|
position: relative;
|
|
}
|
|
|
|
.icon-btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--bg-2);
|
|
border-radius: inherit;
|
|
opacity: 0;
|
|
transition: opacity var(--duration-fast) var(--ease-smooth);
|
|
z-index: -1;
|
|
}
|
|
|
|
.icon-btn:hover {
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.icon-btn:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.icon-btn:active {
|
|
transform: scale(0.92);
|
|
}
|
|
|
|
.icon-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
transition: transform var(--duration-base) var(--ease-smooth);
|
|
}
|
|
|
|
.icon-btn:hover svg {
|
|
transform: rotate(12deg);
|
|
}
|
|
|
|
[data-theme="dark"] .icon-sun {
|
|
display: block;
|
|
}
|
|
|
|
[data-theme="dark"] .icon-moon {
|
|
display: none;
|
|
}
|
|
|
|
[data-theme="light"] .icon-sun {
|
|
display: none;
|
|
}
|
|
|
|
[data-theme="light"] .icon-moon {
|
|
display: block;
|
|
}
|
|
|
|
/*
|
|
LAYOUT
|
|
*/
|
|
.app-shell {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100vh;
|
|
}
|
|
|
|
.layout {
|
|
display: flex;
|
|
flex: 1;
|
|
overflow: hidden;
|
|
margin-top: var(--topbar-h);
|
|
}
|
|
|
|
/*
|
|
SIDEBAR - Enhanced
|
|
*/
|
|
.sidebar {
|
|
width: var(--sidebar-w);
|
|
flex-shrink: 0;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
background: var(--sidebar-bg);
|
|
border-right: 1px solid var(--border);
|
|
display: flex;
|
|
flex-direction: column;
|
|
transition: background var(--duration-base) var(--ease-smooth);
|
|
}
|
|
|
|
.sidebar-inner {
|
|
padding: 12px 0 40px;
|
|
}
|
|
|
|
/* Overview link - Enhanced */
|
|
.nav-overview-link {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
padding: 9px 16px;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-2);
|
|
border-radius: 0;
|
|
margin-bottom: 4px;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
position: relative;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.nav-overview-link svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
flex-shrink: 0;
|
|
transition: color var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.nav-overview-link:hover {
|
|
background: var(--bg-2);
|
|
color: var(--text-1);
|
|
padding-left: 18px;
|
|
}
|
|
|
|
.nav-overview-link.active {
|
|
background: linear-gradient(90deg, var(--accent-dim) 0%, transparent 100%);
|
|
color: var(--accent-2);
|
|
position: relative;
|
|
}
|
|
|
|
.nav-overview-link.active::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 3px;
|
|
height: 18px;
|
|
background: var(--accent-gradient);
|
|
border-radius: 0 2px 2px 0;
|
|
box-shadow: 2px 0 8px rgba(99,102,241,.3);
|
|
}
|
|
|
|
/* Nav groups - Enhanced */
|
|
.nav-group {
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.nav-group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
width: 100%;
|
|
padding: 10px 16px 6px;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
color: var(--text-3);
|
|
letter-spacing: .08em;
|
|
text-transform: uppercase;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.nav-group-header:hover {
|
|
color: var(--text-2);
|
|
}
|
|
|
|
.chev {
|
|
width: 12px;
|
|
height: 12px;
|
|
transition: transform var(--duration-base) var(--ease-smooth);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-group.collapsed .chev {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
.nav-group-count {
|
|
margin-left: auto;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
padding: 1px 7px;
|
|
height: 18px;
|
|
line-height: 18px;
|
|
background: var(--bg-3);
|
|
border-radius: var(--radius-full);
|
|
color: var(--text-3);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.nav-endpoints {
|
|
}
|
|
|
|
.nav-group.collapsed .nav-endpoints {
|
|
display: none;
|
|
}
|
|
|
|
/* Endpoint items - Enhanced */
|
|
.nav-endpoint {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
width: 100%;
|
|
padding: 6px 16px 6px 28px;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-2);
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
border-left: 3px solid transparent;
|
|
overflow: hidden;
|
|
min-height: 32px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
}
|
|
|
|
.nav-endpoint::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
opacity: 0;
|
|
transition: opacity var(--duration-fast) var(--ease-smooth);
|
|
z-index: -1;
|
|
}
|
|
|
|
.nav-endpoint:hover {
|
|
background: var(--bg-2);
|
|
color: var(--text-1);
|
|
padding-left: 30px;
|
|
}
|
|
|
|
.nav-endpoint:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.nav-endpoint.active {
|
|
background: color-mix(in srgb, var(--method-color, var(--accent)) 12%, var(--bg-2));
|
|
color: var(--text-1);
|
|
border-left-color: var(--method-color, var(--accent));
|
|
font-weight: 600;
|
|
}
|
|
|
|
.nav-endpoint.active::after {
|
|
content: '';
|
|
position: absolute;
|
|
right: 0;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 2px;
|
|
height: 12px;
|
|
background: var(--method-color, var(--accent));
|
|
border-radius: 1px 0 0 1px;
|
|
box-shadow: -2px 0 6px rgba(99,102,241,.3);
|
|
}
|
|
|
|
.nav-endpoint.deprecated {
|
|
opacity: 0.5;
|
|
text-decoration: line-through;
|
|
}
|
|
|
|
/* Method tags - Enhanced */
|
|
.method-tag {
|
|
font-family: var(--font-mono);
|
|
font-size: 9px;
|
|
font-weight: 800;
|
|
padding: 2px 6px;
|
|
border-radius: var(--radius-sm);
|
|
flex-shrink: 0;
|
|
letter-spacing: .06em;
|
|
background: color-mix(in srgb, var(--method-color, var(--m-default)) 20%, transparent);
|
|
color: var(--method-color, var(--m-default));
|
|
min-width: 42px;
|
|
text-align: center;
|
|
border: 1px solid color-mix(in srgb, var(--method-color, var(--m-default)) 35%, transparent);
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.nav-endpoint:hover .method-tag {
|
|
background: color-mix(in srgb, var(--method-color, var(--m-default)) 30%, transparent);
|
|
border-color: color-mix(in srgb, var(--method-color, var(--m-default)) 50%, transparent);
|
|
}
|
|
|
|
.nav-endpoint-path {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.nav-empty {
|
|
padding: 20px 16px;
|
|
color: var(--text-3);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* Skeleton */
|
|
.skeleton {
|
|
background: linear-gradient(90deg, var(--bg-3) 25%, var(--bg-4) 50%, var(--bg-3) 75%);
|
|
background-size: 200% 100%;
|
|
animation: shimmer 1.6s infinite;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
from {
|
|
background-position: 200% 0;
|
|
}
|
|
|
|
to {
|
|
background-position: -200% 0;
|
|
}
|
|
}
|
|
|
|
/*
|
|
MAIN CONTENT
|
|
*/
|
|
.content-area {
|
|
flex: 1;
|
|
display: flex;
|
|
overflow: hidden;
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Detail pane */
|
|
.detail-pane {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
min-width: 0;
|
|
background: var(--bg-0);
|
|
}
|
|
|
|
.detail-content {
|
|
max-width: 820px;
|
|
margin: 0 auto;
|
|
padding: 36px 44px 100px;
|
|
}
|
|
|
|
/* Try pane */
|
|
.try-pane {
|
|
width: var(--try-w);
|
|
flex-shrink: 0;
|
|
overflow-y: auto;
|
|
background: var(--bg-1);
|
|
border-left: 1px solid var(--border);
|
|
}
|
|
|
|
.try-content {
|
|
padding: 18px;
|
|
}
|
|
|
|
/*
|
|
ANIMATIONS - Enhanced
|
|
*/
|
|
.fade-in {
|
|
animation: fade-up var(--duration-base) var(--ease);
|
|
}
|
|
|
|
@keyframes fade-up {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(12px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translate(0);
|
|
}
|
|
}
|
|
|
|
@keyframes fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes slide-in-left {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateX(-16px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@keyframes slide-down {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(-12px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes scale-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes bounce-in {
|
|
0% {
|
|
opacity: 0;
|
|
transform: scale(0.3);
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
transform: scale(1.05);
|
|
}
|
|
70% {
|
|
transform: scale(0.9);
|
|
}
|
|
100% {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
0% {
|
|
background-position: -1000px 0;
|
|
}
|
|
100% {
|
|
background-position: 1000px 0;
|
|
}
|
|
}
|
|
|
|
/*
|
|
OVERVIEW
|
|
*/
|
|
.overview-hero {
|
|
margin-bottom: 36px;
|
|
padding-bottom: 36px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.overview-eyebrow {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
font-size: 10.5px;
|
|
font-weight: 700;
|
|
letter-spacing: .12em;
|
|
text-transform: uppercase;
|
|
color: var(--accent-2);
|
|
margin-bottom: 16px;
|
|
opacity: .85;
|
|
}
|
|
|
|
.overview-eyebrow svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
}
|
|
|
|
.overview-title {
|
|
font-size: 30px;
|
|
font-weight: 800;
|
|
line-height: 1.15;
|
|
letter-spacing: -.03em;
|
|
margin-bottom: 12px;
|
|
background: linear-gradient(135deg, var(--text-1) 40%, var(--accent-2) 120%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.overview-desc {
|
|
font-size: 14px;
|
|
color: var(--text-2);
|
|
line-height: 1.75;
|
|
max-width: 540px;
|
|
}
|
|
|
|
.overview-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.overview-pill {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 11.5px;
|
|
font-family: var(--font-mono);
|
|
padding: 5px 12px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: 99px;
|
|
color: var(--text-2);
|
|
}
|
|
|
|
.overview-pill svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
/* Stats */
|
|
.overview-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 12px;
|
|
margin-bottom: 36px;
|
|
}
|
|
|
|
.overview-stat {
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 20px 16px;
|
|
text-align: center;
|
|
position: relative;
|
|
overflow: hidden;
|
|
transition: border-color .2s, transform .2s var(--ease);
|
|
}
|
|
|
|
.overview-stat::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, var(--accent) 0%, #8b5cf6 50%, #06b6d4 100%);
|
|
opacity: 0;
|
|
transition: opacity .2s;
|
|
}
|
|
|
|
.overview-stat:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.overview-stat:hover {
|
|
border-color: var(--border-2);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.overview-stat-value {
|
|
font-size: 28px;
|
|
font-weight: 800;
|
|
color: var(--text-1);
|
|
line-height: 1;
|
|
letter-spacing: -.03em;
|
|
}
|
|
|
|
.overview-stat-label {
|
|
font-size: 10.5px;
|
|
font-weight: 600;
|
|
color: var(--text-3);
|
|
margin-top: 6px;
|
|
text-transform: uppercase;
|
|
letter-spacing: .07em;
|
|
}
|
|
|
|
/* Overview section */
|
|
.overview-section-title {
|
|
font-size: 10.5px;
|
|
font-weight: 700;
|
|
letter-spacing: .1em;
|
|
text-transform: uppercase;
|
|
color: var(--text-3);
|
|
margin: 32px 0 14px;
|
|
}
|
|
|
|
/* Security badges - Enhanced */
|
|
.security-badges {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.security-badge {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
padding: 7px 13px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-2);
|
|
transition: all var(--duration-base) var(--ease-smooth));
|
|
cursor: pointer;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.security-badge::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
opacity: 0;
|
|
transition: opacity var(--duration-base) var(--ease-smooth));
|
|
z-index: -1;
|
|
}
|
|
|
|
.security-badge svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
transition: transform var(--duration-base) var(--ease-smooth));
|
|
}
|
|
|
|
button.security-badge:hover {
|
|
border-color: var(--accent);
|
|
color: var(--accent-2);
|
|
background: var(--accent-dim);
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px rgba(99,102,241,.2);
|
|
}
|
|
|
|
button.security-badge:hover svg {
|
|
transform: rotate(12deg) scale(1.15);
|
|
}
|
|
|
|
/* Overview group cards - Enhanced */
|
|
.overview-group-card {
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
margin-bottom: 14px;
|
|
overflow: hidden;
|
|
transition: all var(--duration-base) var(--ease-smooth);
|
|
box-shadow: 0 1px 3px var(--overlay);
|
|
}
|
|
|
|
.overview-group-card:hover {
|
|
border-color: var(--border-2);
|
|
box-shadow: var(--shadow-sm);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.overview-group-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 16px 18px;
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
border-bottom: 1px solid var(--border);
|
|
background: linear-gradient(90deg, var(--bg-2) 0%, transparent 100%);
|
|
letter-spacing: -.01em;
|
|
}
|
|
|
|
.overview-group-routes {
|
|
}
|
|
|
|
.overview-route-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 12px 18px;
|
|
cursor: pointer;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
border-bottom: 1px solid var(--border);
|
|
position: relative;
|
|
}
|
|
|
|
.overview-route-row::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
opacity: 0;
|
|
transition: opacity var(--duration-fast) var(--ease-smooth);
|
|
z-index: -1;
|
|
}
|
|
|
|
.overview-route-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.overview-route-row:hover {
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
.overview-route-row:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.method-badge {
|
|
font-family: var(--font-mono);
|
|
font-size: 9px;
|
|
font-weight: 800;
|
|
padding: 3px 8px;
|
|
border-radius: var(--radius-sm);
|
|
flex-shrink: 0;
|
|
background: color-mix(in srgb, var(--method-color, var(--m-default)) 18%, transparent);
|
|
color: var(--method-color, var(--m-default));
|
|
min-width: 50px;
|
|
text-align: center;
|
|
letter-spacing: .04em;
|
|
border: 1px solid color-mix(in srgb, var(--method-color, var(--m-default)) 30%, transparent);
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.overview-route-row:hover .method-badge {
|
|
background: color-mix(in srgb, var(--method-color, var(--m-default)) 28%, transparent);
|
|
border-color: color-mix(in srgb, var(--method-color, var(--m-default)) 50%, transparent);
|
|
}
|
|
|
|
.route-path {
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
flex-shrink: 0;
|
|
color: var(--text-1);
|
|
letter-spacing: -.01em;
|
|
}
|
|
|
|
.route-summary {
|
|
font-size: 12px;
|
|
color: var(--text-2);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
flex: 1;
|
|
}
|
|
|
|
.route-arrow {
|
|
width: 16px;
|
|
height: 16px;
|
|
color: var(--text-3);
|
|
flex-shrink: 0;
|
|
margin-left: auto;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
opacity: 0;
|
|
}
|
|
|
|
.overview-route-row:hover .route-arrow {
|
|
opacity: 1;
|
|
color: var(--accent-2);
|
|
transform: translateX(4px);
|
|
}
|
|
|
|
/*
|
|
ENDPOINT DETAIL
|
|
*/
|
|
.endpoint-header {
|
|
margin-bottom: 32px;
|
|
padding-bottom: 28px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.breadcrumb {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 11.5px;
|
|
color: var(--text-3);
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.breadcrumb svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
}
|
|
|
|
.breadcrumb .current {
|
|
color: var(--text-2);
|
|
}
|
|
|
|
.request-line {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-bottom: 14px;
|
|
padding: 12px 16px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
border-left: 3px solid var(--method-color, var(--accent));
|
|
}
|
|
|
|
.endpoint-path {
|
|
font-family: var(--font-mono);
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: var(--text-1);
|
|
letter-spacing: -.01em;
|
|
flex: 1;
|
|
}
|
|
|
|
.copy-route-btn {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: var(--radius-sm);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-3);
|
|
transition: background .12s, color .12s;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.copy-route-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.copy-route-btn:hover {
|
|
background: var(--bg-3);
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.endpoint-summary {
|
|
font-size: 22px;
|
|
font-weight: 800;
|
|
letter-spacing: -.03em;
|
|
margin-bottom: 8px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.endpoint-description {
|
|
font-size: 13.5px;
|
|
color: var(--text-2);
|
|
line-height: 1.75;
|
|
}
|
|
|
|
.deprecated-banner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 10px 16px;
|
|
margin: 14px 0;
|
|
background: color-mix(in srgb, #fbbf24 8%, transparent);
|
|
border: 1px solid color-mix(in srgb, #fbbf24 25%, transparent);
|
|
border-radius: var(--radius-md);
|
|
font-size: 12px;
|
|
color: #fbbf24;
|
|
}
|
|
|
|
.deprecated-banner svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Sections */
|
|
.section {
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 10.5px;
|
|
font-weight: 700;
|
|
letter-spacing: .1em;
|
|
text-transform: uppercase;
|
|
color: var(--text-3);
|
|
margin-bottom: 14px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.count {
|
|
font-size: 10px;
|
|
font-family: var(--font-mono);
|
|
padding: 0 7px;
|
|
height: 17px;
|
|
line-height: 17px;
|
|
background: var(--bg-3);
|
|
border-radius: 99px;
|
|
color: var(--text-2);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* Param table */
|
|
.param-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 12.5px;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.param-table thead th {
|
|
text-align: left;
|
|
padding: 9px 14px;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
letter-spacing: .09em;
|
|
text-transform: uppercase;
|
|
color: var(--text-3);
|
|
background: var(--bg-1);
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.param-table tbody tr {
|
|
border-bottom: 1px solid var(--border);
|
|
transition: background .1s;
|
|
}
|
|
|
|
.param-table tbody tr:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.param-table tbody tr:hover {
|
|
background: var(--bg-2);
|
|
}
|
|
|
|
.param-table td {
|
|
padding: 10px 14px;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.param-name {
|
|
font-family: var(--font-mono);
|
|
font-size: 12.5px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.param-required {
|
|
color: #f87171;
|
|
margin-left: 2px;
|
|
font-size: 14px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.param-loc {
|
|
display: inline-block;
|
|
padding: 2px 7px;
|
|
font-size: 9.5px;
|
|
font-weight: 700;
|
|
background: var(--bg-3);
|
|
border-radius: var(--radius-xs);
|
|
color: var(--text-2);
|
|
font-family: var(--font-mono);
|
|
letter-spacing: .03em;
|
|
}
|
|
|
|
.param-type {
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.param-desc {
|
|
color: var(--text-2);
|
|
font-size: 12px;
|
|
}
|
|
|
|
/* Schema box */
|
|
.schema-box {
|
|
background: var(--code-bg);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 16px 20px;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
line-height: 1.85;
|
|
white-space: pre-wrap;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.schema-key {
|
|
color: #93c5fd;
|
|
}
|
|
|
|
.schema-type {
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.schema-comment {
|
|
color: var(--text-3);
|
|
font-style: italic;
|
|
}
|
|
|
|
.schema-punct {
|
|
color: var(--text-3);
|
|
}
|
|
|
|
.schema-required-mark {
|
|
color: #f87171;
|
|
}
|
|
|
|
.schema-nullable-mark {
|
|
color: #fbbf24;
|
|
}
|
|
|
|
/* Response blocks */
|
|
.response-block {
|
|
margin-bottom: 10px;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
transition: border-color .15s;
|
|
}
|
|
|
|
.response-block:hover {
|
|
border-color: var(--border-2);
|
|
}
|
|
|
|
.response-block-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 11px 16px;
|
|
background: var(--bg-1);
|
|
}
|
|
|
|
.response-block-body {
|
|
padding: 14px 16px;
|
|
border-top: 1px solid var(--border);
|
|
background: var(--bg-0);
|
|
}
|
|
|
|
/* Status pills - Enhanced */
|
|
.status-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
padding: 4px 10px;
|
|
border-radius: var(--radius-md);
|
|
flex-shrink: 0;
|
|
letter-spacing: .04em;
|
|
border: 1px solid;
|
|
transition: all var(--duration-fast) var(--ease-smooth));
|
|
}
|
|
|
|
.status-2xx {
|
|
background: color-mix(in srgb, #10b981 16%, transparent);
|
|
color: #10b981;
|
|
border-color: color-mix(in srgb, #10b981 30%, transparent);
|
|
}
|
|
|
|
.status-2xx:hover {
|
|
background: color-mix(in srgb, #10b981 25%, transparent);
|
|
border-color: #10b981;
|
|
box-shadow: 0 0 8px rgba(16,185,129,.2);
|
|
}
|
|
|
|
.status-4xx {
|
|
background: color-mix(in srgb, #f59e0b 16%, transparent);
|
|
color: #f59e0b;
|
|
border-color: color-mix(in srgb, #f59e0b 30%, transparent);
|
|
}
|
|
|
|
.status-4xx:hover {
|
|
background: color-mix(in srgb, #f59e0b 25%, transparent);
|
|
border-color: #f59e0b;
|
|
box-shadow: 0 0 8px rgba(245,158,11,.2);
|
|
}
|
|
|
|
.status-5xx {
|
|
background: color-mix(in srgb, #ef4444 16%, transparent);
|
|
color: #ef4444;
|
|
border-color: color-mix(in srgb, #ef4444 30%, transparent);
|
|
}
|
|
|
|
.status-5xx:hover {
|
|
background: color-mix(in srgb, #ef4444 25%, transparent);
|
|
border-color: #ef4444;
|
|
box-shadow: 0 0 8px rgba(239,68,68,.2);
|
|
}
|
|
|
|
.response-desc {
|
|
font-size: 13px;
|
|
color: var(--text-2);
|
|
}
|
|
|
|
/*
|
|
TRY-IT PANE
|
|
*/
|
|
.try-empty {
|
|
text-align: center;
|
|
padding: 70px 28px;
|
|
color: var(--text-3);
|
|
font-size: 13px;
|
|
line-height: 1.75;
|
|
}
|
|
|
|
.try-empty svg {
|
|
width: 28px;
|
|
height: 28px;
|
|
margin: 0 auto 14px;
|
|
display: block;
|
|
opacity: .3;
|
|
}
|
|
|
|
.try-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 16px;
|
|
padding-bottom: 14px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.try-title {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
letter-spacing: .1em;
|
|
text-transform: uppercase;
|
|
color: var(--text-2);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.live-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: var(--method-color, var(--accent));
|
|
box-shadow: 0 0 8px var(--method-color, var(--accent));
|
|
animation: pulse-dot 2.2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pulse-dot {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
box-shadow: 0 0 12px color-mix(in srgb, var(--method-color, var(--accent)) 100%, transparent);
|
|
}
|
|
50% {
|
|
opacity: 0.6;
|
|
transform: scale(0.8);
|
|
box-shadow: 0 0 20px color-mix(in srgb, var(--method-color, var(--accent)) 60%, transparent);
|
|
}
|
|
}
|
|
|
|
/* Try tabs */
|
|
.try-tabs {
|
|
display: flex;
|
|
gap: 2px;
|
|
margin-bottom: 16px;
|
|
background: var(--bg-2);
|
|
border-radius: var(--radius-md);
|
|
padding: 3px;
|
|
border: 1px solid var(--border);
|
|
}
|
|
|
|
.try-tab {
|
|
flex: 1;
|
|
height: 27px;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
border-radius: calc(var(--radius-md) - 2px);
|
|
color: var(--text-3);
|
|
transition: background .12s, color .12s, box-shadow .12s;
|
|
}
|
|
|
|
.try-tab.active {
|
|
background: var(--bg-1);
|
|
color: var(--text-1);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
.try-tab:hover:not(.active) {
|
|
color: var(--text-2);
|
|
background: var(--bg-3);
|
|
}
|
|
|
|
/* Auth banner */
|
|
.auth-banner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
padding: 10px 14px;
|
|
border-radius: var(--radius-md);
|
|
font-size: 12px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.auth-banner svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.auth-set {
|
|
background: color-mix(in srgb, #34d399 10%, transparent);
|
|
border: 1px solid color-mix(in srgb, #34d399 22%, transparent);
|
|
color: #34d399;
|
|
}
|
|
|
|
.auth-missing {
|
|
background: color-mix(in srgb, #fbbf24 10%, transparent);
|
|
border: 1px solid color-mix(in srgb, #fbbf24 22%, transparent);
|
|
color: #fbbf24;
|
|
}
|
|
|
|
.auth-banner-link {
|
|
margin-left: auto;
|
|
font-size: 11.5px;
|
|
font-weight: 700;
|
|
text-decoration: underline;
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
color: inherit;
|
|
opacity: .85;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.auth-banner-link:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Mock toggle */
|
|
.mock-toggle-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 9px 14px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
font-size: 12px;
|
|
margin-bottom: 14px;
|
|
cursor: pointer;
|
|
transition: border-color .13s;
|
|
}
|
|
|
|
.mock-toggle-row:hover {
|
|
border-color: var(--border-2);
|
|
}
|
|
|
|
.mock-toggle-label {
|
|
color: var(--text-2);
|
|
}
|
|
|
|
/* Switch */
|
|
.switch {
|
|
position: relative;
|
|
display: inline-block;
|
|
width: 34px;
|
|
height: 19px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.switch input {
|
|
opacity: 0;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
.switch-slider {
|
|
position: absolute;
|
|
inset: 0;
|
|
cursor: pointer;
|
|
background: var(--bg-4);
|
|
border-radius: 99px;
|
|
transition: background .2s;
|
|
}
|
|
|
|
.switch-slider::before {
|
|
content: '';
|
|
position: absolute;
|
|
width: 13px;
|
|
height: 13px;
|
|
border-radius: 50%;
|
|
left: 3px;
|
|
top: 3px;
|
|
background: #fff;
|
|
transition: transform .2s var(--ease);
|
|
box-shadow: 0 1px 4px rgba(0,0,0,.3);
|
|
}
|
|
|
|
.switch input:checked + .switch-slider {
|
|
background: var(--accent);
|
|
}
|
|
|
|
.switch input:checked + .switch-slider::before {
|
|
transform: translateX(15px);
|
|
}
|
|
|
|
/* Field groups */
|
|
.field-group {
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.field-label {
|
|
font-size: 10.5px;
|
|
font-weight: 700;
|
|
letter-spacing: .08em;
|
|
text-transform: uppercase;
|
|
color: var(--text-3);
|
|
margin-bottom: 9px;
|
|
}
|
|
|
|
.field-sublabel {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-2);
|
|
margin-bottom: 5px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
|
|
.type-hint {
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
color: var(--text-3);
|
|
}
|
|
|
|
.req-star {
|
|
color: #f87171;
|
|
}
|
|
|
|
.field-input {
|
|
width: 100%;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-md);
|
|
padding: 8px 12px;
|
|
font-size: 12.5px;
|
|
color: var(--text-1);
|
|
transition: border-color .15s, box-shadow .15s;
|
|
}
|
|
|
|
.field-input:focus {
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 3px var(--accent-dim);
|
|
outline: none;
|
|
}
|
|
|
|
textarea.field-input {
|
|
min-height: 120px;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
resize: vertical;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
/* Send button */
|
|
.send-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
width: 100%;
|
|
height: 40px;
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
letter-spacing: -.01em;
|
|
background: var(--method-color, var(--accent));
|
|
color: #fff;
|
|
border-radius: var(--radius-md);
|
|
margin-top: 6px;
|
|
transition: opacity .14s, transform .1s var(--ease), box-shadow .14s;
|
|
box-shadow: 0 2px 12px color-mix(in srgb, var(--method-color, var(--accent)) 45%, transparent);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.send-btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, transparent 100%);
|
|
}
|
|
|
|
.send-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.send-btn span {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.send-btn:hover {
|
|
opacity: .88;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 4px 18px color-mix(in srgb, var(--method-color, var(--accent)) 55%, transparent);
|
|
}
|
|
|
|
.send-btn:active {
|
|
transform: scale(.98);
|
|
}
|
|
|
|
.send-btn:disabled {
|
|
opacity: .4;
|
|
cursor: not-allowed;
|
|
transform: none;
|
|
}
|
|
|
|
/* Code language tabs */
|
|
.code-lang-tabs {
|
|
display: flex;
|
|
gap: 2px;
|
|
margin-bottom: 12px;
|
|
overflow-x: auto;
|
|
background: var(--bg-2);
|
|
border-radius: var(--radius-md);
|
|
padding: 3px;
|
|
border: 1px solid var(--border);
|
|
}
|
|
|
|
.code-lang-tab {
|
|
padding: 4px 12px;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
border-radius: calc(var(--radius-md) - 2px);
|
|
color: var(--text-3);
|
|
white-space: nowrap;
|
|
transition: background .12s, color .12s;
|
|
}
|
|
|
|
.code-lang-tab.active {
|
|
background: var(--accent-dim);
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.code-lang-tab:hover:not(.active) {
|
|
background: var(--bg-3);
|
|
color: var(--text-2);
|
|
}
|
|
|
|
.curl-header-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 9px;
|
|
}
|
|
|
|
.curl-box {
|
|
background: var(--code-bg);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 16px;
|
|
font-family: var(--font-mono);
|
|
font-size: 11.5px;
|
|
line-height: 1.85;
|
|
overflow-x: auto;
|
|
white-space: pre;
|
|
}
|
|
|
|
.curl-flag {
|
|
color: #38bdf8;
|
|
}
|
|
|
|
.curl-string {
|
|
color: #86efac;
|
|
}
|
|
|
|
/* Response panel */
|
|
.response-panel {
|
|
margin-top: 14px;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
animation: fade-up .18s var(--ease);
|
|
}
|
|
|
|
.response-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
padding: 9px 14px;
|
|
background: var(--bg-2);
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.response-time {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.response-time svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.mock-badge {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
font-size: 10.5px;
|
|
font-weight: 600;
|
|
padding: 2px 8px;
|
|
border-radius: 99px;
|
|
background: color-mix(in srgb, var(--accent) 14%, transparent);
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.response-body {
|
|
padding: 16px;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
line-height: 1.75;
|
|
white-space: pre-wrap;
|
|
word-break: break-all;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
background: var(--code-bg);
|
|
}
|
|
|
|
.response-error {
|
|
color: #f87171;
|
|
}
|
|
|
|
/* JSON highlighting */
|
|
.json-key {
|
|
color: #93c5fd;
|
|
}
|
|
|
|
.json-string {
|
|
color: #86efac;
|
|
}
|
|
|
|
.json-number {
|
|
color: #fdba74;
|
|
}
|
|
|
|
.json-boolean {
|
|
color: #f9a8d4;
|
|
}
|
|
|
|
.json-null {
|
|
color: var(--text-3);
|
|
}
|
|
|
|
/* Copy button */
|
|
.copy-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
height: 27px;
|
|
padding: 0 9px;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-2);
|
|
transition: background .12s, color .12s, border-color .12s;
|
|
}
|
|
|
|
.copy-btn svg {
|
|
width: 12px;
|
|
height: 12px;
|
|
}
|
|
|
|
.copy-btn:hover {
|
|
background: var(--bg-4);
|
|
color: var(--text-1);
|
|
border-color: var(--border-3);
|
|
}
|
|
|
|
/* Spinner - Enhanced */
|
|
.spinner {
|
|
display: inline-block;
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2.5px solid rgba(99,102,241,.15);
|
|
border-top-color: var(--accent);
|
|
border-radius: 50%;
|
|
animation: spin 0.8s cubic-bezier(.8,.2,.2,.8) infinite;
|
|
box-shadow: 0 0 8px rgba(99,102,241,.2);
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
/* History */
|
|
.history-empty {
|
|
padding: 28px 16px;
|
|
text-align: center;
|
|
color: var(--text-3);
|
|
font-size: 12px;
|
|
line-height: 1.75;
|
|
}
|
|
|
|
.history-item {
|
|
padding: 10px;
|
|
border-bottom: 1px solid var(--border);
|
|
cursor: pointer;
|
|
transition: background .1s;
|
|
border-radius: var(--radius-sm);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.history-item:hover {
|
|
background: var(--bg-2);
|
|
}
|
|
|
|
.history-item-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.history-item-time {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
margin-left: auto;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.history-item-path {
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
color: var(--text-2);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/*
|
|
MODAL - Premium with Glassmorphism
|
|
*/
|
|
.modal-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 1000;
|
|
background: rgba(0,0,0,.5);
|
|
backdrop-filter: blur(8px) saturate(1.5);
|
|
-webkit-backdrop-filter: blur(8px) saturate(1.5);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 24px;
|
|
animation: fade-in var(--duration-base) var(--ease-smooth));
|
|
}
|
|
|
|
.modal-box {
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-xl);
|
|
background: linear-gradient(135deg, var(--bg-1) 0%, color-mix(in srgb, var(--bg-1) 95%, var(--accent)) 100%);
|
|
box-shadow: 0 10px 40px rgba(0,0,0,.3), 0 0 1px rgba(99,102,241,.2) inset;
|
|
width: 100%;
|
|
max-width: 490px;
|
|
max-height: 82vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
animation: modal-in var(--duration-base) var(--ease-smooth));
|
|
}
|
|
|
|
.modal-box:before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(135deg, rgba(99,102,241,.05) 0%, transparent 100%);
|
|
pointer-events: none;
|
|
z-index: -1;
|
|
}
|
|
|
|
.modal-wide {
|
|
max-width: 660px;
|
|
}
|
|
|
|
.modal-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20px 24px;
|
|
border-bottom: 1px solid var(--border);
|
|
flex-shrink: 0;
|
|
background: linear-gradient(90deg, var(--bg-2) 0%, transparent 100%);
|
|
}
|
|
|
|
.modal-title {
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
letter-spacing: -.01em;
|
|
background: linear-gradient(135deg, var(--text-1) 40%, var(--accent-2) 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.modal-close {
|
|
width: 30px;
|
|
height: 30px;
|
|
border-radius: var(--radius-md);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-3);
|
|
transition: background .12s, color .12s;
|
|
}
|
|
|
|
.modal-close:hover {
|
|
background: var(--bg-3);
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.modal-close svg {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.modal-body {
|
|
overflow-y: auto;
|
|
padding: 20px 22px;
|
|
flex: 1;
|
|
}
|
|
|
|
/* Auth card - Enhanced */
|
|
.auth-scheme-card {
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-lg);
|
|
padding: 18px;
|
|
margin-bottom: 14px;
|
|
transition: all var(--duration-base) var(--ease-smooth));
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.auth-scheme-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
opacity: 0;
|
|
transition: opacity var(--duration-base) var(--ease-smooth));
|
|
z-index: -1;
|
|
}
|
|
|
|
.auth-scheme-card:hover {
|
|
border-color: var(--accent);
|
|
box-shadow: var(--shadow-sm);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.auth-scheme-card:hover::before {
|
|
opacity: 1;
|
|
}
|
|
|
|
.auth-scheme-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.auth-scheme-name {
|
|
font-size: 13.5px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.auth-scheme-type {
|
|
font-size: 9.5px;
|
|
font-weight: 700;
|
|
padding: 2px 7px;
|
|
border-radius: var(--radius-xs);
|
|
background: var(--bg-3);
|
|
color: var(--text-2);
|
|
font-family: var(--font-mono);
|
|
letter-spacing: .04em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.auth-scheme-status {
|
|
width: 9px;
|
|
height: 9px;
|
|
border-radius: 50%;
|
|
background: var(--bg-5);
|
|
margin-left: auto;
|
|
flex-shrink: 0;
|
|
transition: background .25s, box-shadow .25s;
|
|
}
|
|
|
|
.auth-scheme-status.set {
|
|
background: #34d399;
|
|
box-shadow: 0 0 8px rgba(52,211,153,.5);
|
|
}
|
|
|
|
.auth-scheme-desc {
|
|
font-size: 12px;
|
|
color: var(--text-2);
|
|
margin-bottom: 12px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.auth-clear-btn {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
margin-top: 8px;
|
|
text-decoration: underline;
|
|
transition: color .12s;
|
|
}
|
|
|
|
.auth-clear-btn:hover {
|
|
color: #f87171;
|
|
}
|
|
|
|
/* Console */
|
|
.console-trigger {
|
|
display: flex;
|
|
gap: 8px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.request-url {
|
|
flex: 1;
|
|
}
|
|
|
|
/* Diff */
|
|
.diff-summary {
|
|
display: flex;
|
|
gap: 16px;
|
|
padding: 14px 0;
|
|
margin-bottom: 18px;
|
|
border-bottom: 1px solid var(--border);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.diff-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
font-size: 12.5px;
|
|
color: var(--text-2);
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.diff-tag {
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
padding: 2px 8px;
|
|
border-radius: var(--radius-sm);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.diff-tag-added {
|
|
background: color-mix(in srgb, #34d399 14%, transparent);
|
|
color: #34d399;
|
|
}
|
|
|
|
.diff-tag-removed {
|
|
background: color-mix(in srgb, #f87171 14%, transparent);
|
|
color: #f87171;
|
|
}
|
|
|
|
.diff-tag-changed {
|
|
background: color-mix(in srgb, #fbbf24 14%, transparent);
|
|
color: #fbbf24;
|
|
}
|
|
|
|
/*
|
|
DASHBOARD DRAWER - Premium with Glassmorphism
|
|
*/
|
|
.drawer {
|
|
position: fixed;
|
|
top: var(--topbar-h);
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 90;
|
|
width: 420px;
|
|
background: var(--bg-1);
|
|
border-left: 1px solid var(--border);
|
|
box-shadow: -10px 0 40px rgba(0,0,0,.3);
|
|
display: flex;
|
|
flex-direction: column;
|
|
animation: slide-in-right var(--duration-base) var(--ease-smooth));
|
|
backdrop-filter: blur(2px);
|
|
-webkit-backdrop-filter: blur(2px);
|
|
}
|
|
|
|
@keyframes slide-in-right {
|
|
from {
|
|
transform: translateX(100%);
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
transform: translateX(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.drawer-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20px 22px;
|
|
border-bottom: 1px solid var(--border);
|
|
flex-shrink: 0;
|
|
background: linear-gradient(90deg, var(--bg-2) 0%, transparent 100%);
|
|
}
|
|
|
|
.drawer-title {
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
letter-spacing: -.01em;
|
|
background: linear-gradient(135deg, var(--text-1) 40%, var(--accent-2) 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.drawer-body {
|
|
overflow-y: auto;
|
|
padding: 22px;
|
|
flex: 1;
|
|
}
|
|
|
|
/* Dashboard stat cards - Enhanced */
|
|
.stat-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 12px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.stat-card {
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 18px;
|
|
text-align: center;
|
|
position: relative;
|
|
overflow: hidden;
|
|
transition: all var(--duration-base) var(--ease-smooth);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.stat-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 3px;
|
|
background: linear-gradient(90deg, var(--accent) 0%, #8b5cf6 100%);
|
|
}
|
|
|
|
.stat-card::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-subtle);
|
|
opacity: 0;
|
|
transition: opacity var(--duration-base) var(--ease-smooth);
|
|
z-index: -1;
|
|
}
|
|
|
|
.stat-card:hover {
|
|
border-color: var(--border-2);
|
|
box-shadow: var(--shadow-sm);
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
.stat-card:hover::after {
|
|
opacity: 1;
|
|
}
|
|
|
|
.stat-card-err::before {
|
|
background: linear-gradient(90deg, #ef4444, #f87171);
|
|
}
|
|
|
|
.stat-card-err .stat-val {
|
|
color: #ef4444;
|
|
}
|
|
|
|
.stat-val {
|
|
font-size: 26px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
color: var(--text-1);
|
|
letter-spacing: -.02em;
|
|
transition: all var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.stat-card:hover .stat-val {
|
|
font-size: 28px;
|
|
}
|
|
|
|
.stat-lbl {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
color: var(--text-3);
|
|
margin-top: 6px;
|
|
text-transform: uppercase;
|
|
letter-spacing: .08em;
|
|
transition: color var(--duration-fast) var(--ease-smooth);
|
|
}
|
|
|
|
.stat-card:hover .stat-lbl {
|
|
color: var(--text-2);
|
|
}
|
|
|
|
.dash-section {
|
|
margin-bottom: 18px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
box-shadow: 0 1px 2px var(--overlay);
|
|
transition: all var(--duration-base) var(--ease-smooth);
|
|
}
|
|
|
|
.dash-section-title {
|
|
padding: 13px 16px 0;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
color: var(--text-2);
|
|
text-transform: uppercase;
|
|
letter-spacing: .07em;
|
|
}
|
|
|
|
/* Request items */
|
|
.request-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 9px 16px;
|
|
border-bottom: 1px solid var(--border);
|
|
font-size: 12px;
|
|
transition: background .1s;
|
|
}
|
|
|
|
.request-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.request-item:hover {
|
|
background: var(--bg-3);
|
|
}
|
|
|
|
.request-method {
|
|
font-family: var(--font-mono);
|
|
font-size: 9.5px;
|
|
font-weight: 800;
|
|
padding: 2px 7px;
|
|
border-radius: var(--radius-xs);
|
|
margin-right: 8px;
|
|
background: var(--bg-3);
|
|
color: var(--text-2);
|
|
letter-spacing: .04em;
|
|
}
|
|
|
|
.request-time {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.request-status-error {
|
|
color: #f87171 !important;
|
|
}
|
|
|
|
.request-status-success {
|
|
color: #34d399 !important;
|
|
}
|
|
|
|
/*
|
|
UTILITIES
|
|
*/
|
|
code {
|
|
font-family: var(--font-mono);
|
|
font-size: .9em;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border);
|
|
padding: 1px 6px;
|
|
border-radius: var(--radius-xs);
|
|
}
|
|
|
|
/**
|
|
* ADVANCED REQUEST BUILDER STYLES
|
|
* New UI components for enhanced request handling
|
|
*/
|
|
|
|
/* Request Parameter Editor */
|
|
.params-editor {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.param-group {
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-md);
|
|
background: var(--bg-2);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.param-group-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 10px 12px;
|
|
background: var(--bg-3);
|
|
border-bottom: 1px solid var(--border);
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.param-group-header:hover {
|
|
background: var(--bg-4);
|
|
}
|
|
|
|
.param-group-chevron {
|
|
width: 16px;
|
|
height: 16px;
|
|
stroke: currentColor;
|
|
transition: transform 0.2s;
|
|
}
|
|
|
|
.param-group.collapsed .param-group-chevron {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
.param-group.collapsed .param-items {
|
|
display: none;
|
|
}
|
|
|
|
.param-items {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.param-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr 2fr 1fr auto;
|
|
gap: 8px;
|
|
align-items: center;
|
|
padding: 10px 12px;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.param-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.param-row.required .param-name::before {
|
|
content: '*';
|
|
color: #f87171;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.param-name {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-1);
|
|
font-family: var(--font-mono);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.param-input {
|
|
padding: 6px 8px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border-2);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-1);
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.param-input:focus {
|
|
outline: none;
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 2px var(--accent-dim);
|
|
}
|
|
|
|
.param-type {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
padding: 4px 8px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.param-remove {
|
|
width: 24px;
|
|
height: 24px;
|
|
padding: 4px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-3);
|
|
cursor: pointer;
|
|
border-radius: var(--radius-sm);
|
|
transition: all 0.2s;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.param-remove:hover {
|
|
background: rgba(248, 113, 113, 0.1);
|
|
color: #f87171;
|
|
}
|
|
|
|
/* Code Block & Generator */
|
|
.code-generator {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 12px;
|
|
background: var(--bg-2);
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--border);
|
|
}
|
|
|
|
.code-lang-select {
|
|
display: flex;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.code-lang-btn {
|
|
padding: 6px 12px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
font-size: 12px;
|
|
color: var(--text-2);
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.code-lang-btn:hover {
|
|
border-color: var(--accent);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.code-lang-btn.active {
|
|
background: var(--accent);
|
|
border-color: var(--accent);
|
|
color: white;
|
|
}
|
|
|
|
.code-block {
|
|
background: var(--code-bg);
|
|
border: 1px solid var(--code-border);
|
|
border-radius: var(--radius-lg);
|
|
padding: 14px;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
overflow-x: auto;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
white-space: pre;
|
|
line-height: 1.6;
|
|
transition: all var(--duration-base) var(--ease-smooth));
|
|
position: relative;
|
|
background: linear-gradient(135deg, var(--code-bg) 0%, color-mix(in srgb, var(--code-bg) 90%, var(--accent)) 100%);
|
|
}
|
|
|
|
.code-block:hover {
|
|
border-color: var(--border-3);
|
|
box-shadow: 0 4px 12px var(--overlay);
|
|
}
|
|
|
|
.code-block code {
|
|
background: none;
|
|
border: none;
|
|
padding: 0;
|
|
color: var(--text-1);
|
|
font-size: 12px;
|
|
line-height: 1.6;
|
|
letter-spacing: -.02em;
|
|
}
|
|
|
|
.code-copy-btn {
|
|
align-self: flex-start;
|
|
padding: 7px 14px;
|
|
background: var(--accent-gradient);
|
|
border: none;
|
|
border-radius: var(--radius-md);
|
|
color: white;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
transition: all var(--duration-base) var(--ease-smooth));
|
|
box-shadow: 0 2px 8px rgba(99,102,241,.2);
|
|
}
|
|
|
|
.code-copy-btn:hover {
|
|
box-shadow: 0 4px 14px rgba(99,102,241,.35);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.code-copy-btn:active {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.code-copy-btn.copied {
|
|
background: linear-gradient(135deg, #10b981 0%, #34d399 100%);
|
|
box-shadow: 0 2px 8px rgba(16,185,129,.3);
|
|
}
|
|
|
|
/* Response Preview - Enhanced */
|
|
.response-preview {
|
|
margin-top: 12px;
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--bg-2);
|
|
overflow: hidden;
|
|
box-shadow: 0 2px 8px var(--overlay);
|
|
transition: all var(--duration-base) var(--ease-smooth));
|
|
}
|
|
|
|
.response-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 12px 14px;
|
|
background: linear-gradient(90deg, var(--bg-3) 0%, transparent 100%);
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.response-status {
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
font-family: var(--font-mono);
|
|
letter-spacing: -.01em;
|
|
}
|
|
|
|
.response-status.success {
|
|
color: #10b981;
|
|
text-shadow: 0 0 8px rgba(16,185,129,.2);
|
|
}
|
|
|
|
.response-status.error {
|
|
color: #ef4444;
|
|
text-shadow: 0 0 8px rgba(239,68,68,.2);
|
|
}
|
|
|
|
.response-timing {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
font-family: var(--font-mono);
|
|
font-weight: 500;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.response-tabs {
|
|
display: flex;
|
|
gap: 0;
|
|
border-bottom: 1px solid var(--border);
|
|
background: var(--bg-2);
|
|
}
|
|
|
|
.response-tab {
|
|
flex: 0 0 auto;
|
|
padding: 11px 14px;
|
|
background: none;
|
|
border: none;
|
|
border-bottom: 2px solid transparent;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-2);
|
|
cursor: pointer;
|
|
transition: all var(--duration-fast) var(--ease-smooth));
|
|
position: relative;
|
|
}
|
|
|
|
.response-tab:hover {
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.response-tab.active {
|
|
color: var(--accent);
|
|
border-bottom-color: var(--accent);
|
|
}
|
|
|
|
.response-body {
|
|
padding: 12px;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
color: var(--text-1);
|
|
}
|
|
|
|
/* Workspaces & Collections */
|
|
.workspace-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.workspace-selector {
|
|
padding: 6px 10px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-1);
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.workspace-selector:hover {
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.collection-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.collection-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 10px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.collection-item:hover {
|
|
background: var(--bg-3);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.collection-item.active {
|
|
background: var(--accent-dim);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.collection-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.collection-name {
|
|
flex: 1;
|
|
font-size: 12px;
|
|
color: var(--text-1);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.collection-count {
|
|
font-size: 11px;
|
|
color: var(--text-3);
|
|
padding: 2px 6px;
|
|
background: var(--bg-1);
|
|
border-radius: var(--radius-xs);
|
|
}
|
|
|
|
/* Request Save Dialog */
|
|
.save-request-dialog {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.dialog-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dialog-label {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.dialog-input {
|
|
padding: 8px 10px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-1);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.dialog-input:focus {
|
|
outline: none;
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 2px var(--accent-dim);
|
|
}
|
|
|
|
.dialog-textarea {
|
|
padding: 8px 10px;
|
|
background: var(--bg-1);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-1);
|
|
font-size: 12px;
|
|
font-family: var(--font-sans);
|
|
min-height: 80px;
|
|
resize: vertical;
|
|
}
|
|
|
|
.dialog-textarea:focus {
|
|
outline: none;
|
|
border-color: var(--accent);
|
|
box-shadow: 0 0 0 2px var(--accent-dim);
|
|
}
|
|
|
|
.dialog-buttons {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.btn-primary {
|
|
padding: 8px 16px;
|
|
background: var(--accent);
|
|
border: none;
|
|
border-radius: var(--radius-sm);
|
|
color: white;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: background 0.2s;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: var(--accent-2);
|
|
}
|
|
|
|
.btn-secondary {
|
|
padding: 8px 16px;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-1);
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
border-color: var(--accent);
|
|
color: var(--accent);
|
|
}
|
|
|
|
/* Environment Manager */
|
|
.env-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.env-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 10px;
|
|
background: var(--bg-2);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-sm);
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.env-item:hover {
|
|
background: var(--bg-3);
|
|
}
|
|
|
|
.env-item.active {
|
|
background: var(--accent-dim);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.env-radio {
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 50%;
|
|
border: 2px solid currentColor;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.env-item.active .env-radio {
|
|
background: var(--accent);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.env-name {
|
|
flex: 1;
|
|
font-size: 12px;
|
|
color: var(--text-1);
|
|
}
|
|
|
|
/* Validation Errors & Warnings */
|
|
.validation-error {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 8px;
|
|
padding: 10px;
|
|
background: rgba(248, 113, 113, 0.1);
|
|
border: 1px solid rgba(248, 113, 113, 0.3);
|
|
border-radius: var(--radius-sm);
|
|
font-size: 12px;
|
|
color: #f87171;
|
|
}
|
|
|
|
.validation-warning {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 8px;
|
|
padding: 10px;
|
|
background: rgba(251, 191, 36, 0.1);
|
|
border: 1px solid rgba(251, 191, 36, 0.3);
|
|
border-radius: var(--radius-sm);
|
|
font-size: 12px;
|
|
color: #fbbf24;
|
|
}
|
|
|
|
.validation-icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
flex-shrink: 0;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.validation-message {
|
|
flex: 1;
|
|
}
|
|
|
|
/* Loading & Skeleton States */
|
|
.skeleton-line {
|
|
height: 12px;
|
|
background: linear-gradient(90deg, var(--bg-3) 0%, var(--bg-4) 50%, var(--bg-3) 100%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-loading 1.5s infinite;
|
|
border-radius: var(--radius-xs);
|
|
}
|
|
|
|
@keyframes skeleton-loading {
|
|
0% {
|
|
background-position: 200% 0;
|
|
}
|
|
100% {
|
|
background-position: -200% 0;
|
|
}
|
|
}
|
|
|
|
.loading-spinner {
|
|
display: inline-block;
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid var(--border);
|
|
border-top-color: var(--accent);
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
/* Keyboard Shortcut Hints */
|
|
.kbd {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 20px;
|
|
height: 20px;
|
|
padding: 0 4px;
|
|
background: var(--bg-3);
|
|
border: 1px solid var(--border);
|
|
border-radius: var(--radius-xs);
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
color: var(--text-2);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Tags */
|
|
.tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 4px 8px;
|
|
background: var(--accent-dim);
|
|
border: 1px solid var(--accent);
|
|
border-radius: var(--radius-sm);
|
|
font-size: 11px;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.tag-remove {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 12px;
|
|
height: 12px;
|
|
background: none;
|
|
border: none;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
opacity: 0.7;
|
|
transition: opacity 0.2s;
|
|
}
|
|
|
|
.tag-remove:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 1024px) {
|
|
.param-row {
|
|
grid-template-columns: 1fr 1fr auto;
|
|
}
|
|
|
|
.param-type {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.param-row {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.code-lang-btn {
|
|
flex: 1;
|
|
}
|
|
}
|
|
|
|
.env-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: rgba(0,0,0,.65);
|
|
backdrop-filter: blur(6px);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 9999;
|
|
animation: fadeIn .15s ease;
|
|
}
|
|
|
|
.env-modal {
|
|
width: min(850px, 92vw);
|
|
max-height: 90vh;
|
|
overflow: auto;
|
|
background: #1f1f23;
|
|
color: #fff;
|
|
border-radius: 18px;
|
|
border: 1px solid #35353a;
|
|
box-shadow: 0 24px 80px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.03);
|
|
animation: scaleIn .18s ease;
|
|
}
|
|
|
|
.env-modal-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
padding: 24px;
|
|
border-bottom: 1px solid #35353a;
|
|
}
|
|
|
|
.env-modal-header h2 {
|
|
margin: 0;
|
|
font-size: 22px;
|
|
}
|
|
|
|
.env-subtitle {
|
|
margin-top: 6px;
|
|
color: #9aa0aa;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.env-close-btn {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: 10px;
|
|
border: none;
|
|
cursor: pointer;
|
|
background: transparent;
|
|
color: #aaa;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.env-close-btn:hover {
|
|
background: rgba(255,255,255,.08);
|
|
color: white;
|
|
}
|
|
|
|
.env-modal-body {
|
|
padding: 24px;
|
|
}
|
|
|
|
.env-section-title {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: #9aa0aa;
|
|
text-transform: uppercase;
|
|
letter-spacing: .08em;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.env-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.env-card {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 16px;
|
|
border-radius: 14px;
|
|
border: 1px solid #35353a;
|
|
transition: .15s ease;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.env-card:hover {
|
|
border-color: #5a9cff;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.env-card.active {
|
|
border-color: #5a9cff;
|
|
background: rgba(90,156,255,.12);
|
|
}
|
|
|
|
.env-card-left {
|
|
display: flex;
|
|
gap: 14px;
|
|
align-items: center;
|
|
}
|
|
|
|
.env-name {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.env-url {
|
|
margin-top: 4px;
|
|
color: #9aa0aa;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.env-badge {
|
|
padding: 3px 8px;
|
|
border-radius: 999px;
|
|
font-size: 11px;
|
|
background: #5a9cff;
|
|
color: white;
|
|
}
|
|
|
|
.env-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.icon-btn {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: 10px;
|
|
border: 1px solid #35353a;
|
|
background: transparent;
|
|
color: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.icon-btn:hover {
|
|
background: rgba(255,255,255,.08);
|
|
}
|
|
|
|
.icon-btn.danger:hover {
|
|
background: rgba(255,80,80,.15);
|
|
}
|
|
|
|
.try-header-main {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.try-subtitle {
|
|
color: var(--text-2);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.try-env-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
margin-bottom: 16px;
|
|
padding: 12px 14px;
|
|
border: 1px solid var(--border);
|
|
border-radius: 12px;
|
|
background: var(--bg-2);
|
|
}
|
|
|
|
.try-env-info {
|
|
min-width: 0;
|
|
flex: 1;
|
|
}
|
|
|
|
.try-env-label {
|
|
font-size: 11px;
|
|
text-transform: uppercase;
|
|
letter-spacing: .08em;
|
|
color: var(--text-2);
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.try-env-main {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.try-env-badge {
|
|
padding: 4px 10px;
|
|
border-radius: 999px;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
background: rgba(59,130,246,.15);
|
|
color: #60a5fa;
|
|
border: 1px solid rgba(59,130,246,.25);
|
|
}
|
|
|
|
.try-env-url {
|
|
font-family: var(--font-mono);
|
|
font-size: 13px;
|
|
color: var(--text-2);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.request-target {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-bottom: 16px;
|
|
padding: 10px 12px;
|
|
border: 1px solid var(--border);
|
|
border-radius: 10px;
|
|
background: var(--bg-2);
|
|
}
|
|
|
|
.request-method {
|
|
padding: 4px 8px;
|
|
border-radius: 6px;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
color: white;
|
|
background: var(--method-color);
|
|
}
|
|
|
|
.request-url {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-family: var(--font-mono);
|
|
color: var(--text-1);
|
|
}
|
|
|
|
.env-divider {
|
|
margin: 24px 0;
|
|
border-top: 1px solid #35353a;
|
|
}
|
|
|
|
.env-form {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.field {
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.field label {
|
|
font-size: 13px;
|
|
color: #9aa0aa;
|
|
}
|
|
|
|
.field input {
|
|
height: 42px;
|
|
padding: 0 12px;
|
|
border-radius: 10px;
|
|
border: 1px solid #35353a;
|
|
background: #27272c;
|
|
color: white;
|
|
}
|
|
|
|
.field input:focus {
|
|
outline: none;
|
|
border-color: #5a9cff;
|
|
}
|
|
|
|
.env-modal-footer {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
padding: 20px 24px;
|
|
border-top: 1px solid #35353a;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes scaleIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(.96);
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
} |