Files
EasyCLIProxyAPI/src/styles.css
T

11760 lines
229 KiB
CSS

:root {
color-scheme: light;
--theme-2d2a26: #2d2a26;
--theme-2f6b3a: #2f6b3a;
--theme-2f6b3f: #2f6b3f;
--theme-342f2a: #342f2a;
--theme-344ca1: #344ca1;
--theme-39352f: #39352f;
--theme-3f3550: #3f3550;
--theme-3f6f98: #3f6f98;
--theme-42637f: #42637f;
--theme-433f39: #433f39;
--theme-4b4742: var(--text-secondary);
--theme-4d78a8: #4d78a8;
--theme-4f4a43: #4f4a43;
--theme-4f825c: #4f825c;
--theme-554075: #554075;
--theme-59544d: var(--text-secondary);
--theme-5d9a6c: #5d9a6c;
--theme-5f5a53: var(--text-secondary);
--theme-654f91: #654f91;
--theme-655f57: var(--text-secondary);
--theme-66709a: #66709a;
--theme-6684a1: #6684a1;
--theme-6b655d: var(--text-secondary);
--theme-6d6760: var(--text-secondary);
--theme-6f6961: var(--text-tertiary);
--theme-716b61: var(--text-tertiary);
--theme-777067: var(--text-tertiary);
--theme-7a746c: var(--text-tertiary);
--theme-805a24: #805a24;
--theme-8069ad: #8069ad;
--theme-817b72: var(--text-tertiary);
--theme-817b73: var(--text-tertiary);
--theme-866b4d: #866b4d;
--theme-8a625d: #8a625d;
--theme-8a847c: var(--text-quaternary);
--theme-8b5b21: #8b5b21;
--theme-8d8377: #8d8377;
--theme-8f3025: #8f3025;
--theme-918a81: var(--text-quaternary);
--theme-9a938a: var(--text-quaternary);
--theme-9a958d: var(--text-quaternary);
--theme-9b958c: var(--text-quaternary);
--theme-9ca9df: #9ca9df;
--theme-9d8abd: #9d8abd;
--theme-9db8a5: #9db8a5;
--theme-9f2d20: #9f2d20;
--theme-a33b2b: #a33b2b;
--theme-a83f32: #a83f32;
--theme-aaa49b: #aaa49b;
--theme-b64132: #b64132;
--theme-b6d3bd: #b6d3bd;
--theme-b8d1bb: #b8d1bb;
--theme-b9d5bf: #b9d5bf;
--theme-bdb5a9: #bdb5a9;
--theme-bf8a43: #bf8a43;
--theme-c77b30: #c77b30;
--theme-c7c2b8: #c7c2b8;
--theme-c9c4ba: #c9c4ba;
--theme-c9d6e2: #c9d6e2;
--theme-c9d8ca: #c9d8ca;
--theme-c9dfcf: #c9dfcf;
--theme-d5d2cb: #d5d2cb;
--theme-d8d1eb: #d8d1eb;
--theme-d8d2c8: #d8d2c8;
--theme-d8d4cc: #d8d4cc;
--theme-d9d4c9: #d9d4c9;
--theme-dce2fb: #dce2fb;
--theme-dce8df: #dce8df;
--theme-ddd8ce: #ddd8ce;
--theme-dfb7b0: #dfb7b0;
--theme-dfbf91: #dfbf91;
--theme-dfdcd4: #dfdcd4;
--theme-e2b6ae: #e2b6ae;
--theme-e2ddd3: #e2ddd3;
--theme-e3e1db: #e3e1db;
--theme-e4d0af: #e4d0af;
--theme-e5e1d9: #e5e1d9;
--theme-e8e4dc: #e8e4dc;
--theme-e8e5dc: #e8e5dc;
--theme-ece8df: #ece8df;
--theme-eeeae2: #eeeae2;
--theme-eeece6: #eeece6;
--theme-eef1ff: #eef1ff;
--theme-eef7f0: #eef7f0;
--theme-efc9c2: #efc9c2;
--theme-f0ede6: #f0ede6;
--theme-f0eee8: #f0eee8;
--theme-f1ecfb: #f1ecfb;
--theme-f1f6fa: #f1f6fa;
--theme-f1f8f1: #f1f8f1;
--theme-f2efe8: #f2efe8;
--theme-f2f0ea: #f2f0ea;
--theme-f2f7f2: #f2f7f2;
--theme-f3f8f4: #f3f8f4;
--theme-f4f1ea: #f4f1ea;
--theme-f4f2ec: #f4f2ec;
--theme-f5f1ff: #f5f1ff;
--theme-f5f7ff: #f5f7ff;
--theme-f6f2ec: #f6f2ec;
--theme-f7f3ff: #f7f3ff;
--theme-f8f5ee: #f8f5ee;
--theme-f8f5ef: #f8f5ef;
--theme-f8f5ff: #f8f5ff;
--theme-f8f6f1: #f8f6f1;
--theme-faf8f2: #faf8f2;
--theme-faf8f4: #faf8f4;
--theme-faf9f5: #faf9f5;
--theme-fdf1ee: #fdf1ee;
--theme-fff: #fff;
--theme-fff1ee: #fff1ee;
--theme-fff7e9: #fff7e9;
--theme-fff8eb: #fff8eb;
--theme-fffdf8: #fffdf8;
--theme-ffffff: #ffffff;
--bg-secondary: #f6f7f5;
--bg-primary: #ffffff;
--bg-tertiary: #eff3f0;
--bg-hover: #f6f8f6;
--bg-quinary: #f9faf9;
--bg-card: #ffffff;
--bg-error-light: #fff1ee;
--text-primary: #202521;
--text-secondary: #46524a;
--text-tertiary: #566259;
--text-quaternary: #5f6a62;
--text-muted: var(--text-tertiary);
--text-placeholder: var(--text-quaternary);
--text-disabled: #7d877f;
--border-color: #e2e8e3;
--border-secondary: #edf1ee;
--border-primary: #cfd7d0;
--border-hover: #c0c8c1;
--primary-color: #0f766e;
--primary-hover: #0b5d57;
--primary-active: #094c47;
--primary-contrast: #ffffff;
--success-color: #2f6b3f;
--warning-color: #c77b30;
--error-color: #9f2d20;
--danger-color: #9f2d20;
--info-color: #0f766e;
--amber-color: #c77b30;
--amber-text: #8b5b21;
--success-badge-bg: #eef7f0;
--success-badge-text: #2f6b3f;
--success-badge-border: #b6d3bd;
--failure-badge-bg: #fff1ee;
--failure-badge-text: #9f2d20;
--failure-badge-border: #dfb7b0;
--count-badge-bg: #eff3f0;
--count-badge-text: var(--text-primary);
--ui-accent: #0f766e;
--ui-accent-strong: #0b5d57;
--ui-accent-soft: #d9f0ec;
--ui-focus-ring: rgba(15, 118, 110, 0.28);
--ui-accent-shadow: rgba(15, 118, 110, 0.18);
--ui-panel-shadow: 0 8px 24px rgba(32, 42, 36, 0.07);
--shadow-sm: 0 1px 2px rgba(32, 42, 36, 0.06);
}
:root[data-theme='dark'] {
color-scheme: dark;
--bg-secondary: #0b0d11;
--bg-primary: #141720;
--bg-tertiary: #1c212c;
--bg-hover: #252b38;
--bg-quinary: #10131a;
--bg-card: #141720;
--bg-error-light: rgba(198, 87, 70, 0.18);
--text-primary: #f8fafc;
--text-secondary: #d3dce8;
--text-tertiary: #b0bdcf;
--text-quaternary: #9aa9bf;
--text-disabled: #64748b;
--border-color: #222836;
--border-secondary: #222836;
--border-primary: #2e3646;
--border-hover: #3a4356;
--primary-color: #5dd3c7;
--primary-hover: #83e0d6;
--primary-active: #4ec4b8;
--primary-contrast: #0b0d11;
--success-color: #34d399;
--viz-success: #10b981;
--warning-color: #c65746;
--error-color: #c65746;
--danger-color: #c65746;
--info-color: #f8fafc;
--amber-color: #d97706;
--amber-text: #fcd34d;
--success-badge-bg: rgba(16, 185, 129, 0.16);
--success-badge-text: #6ee7b7;
--success-badge-border: rgba(52, 211, 153, 0.38);
--failure-badge-bg: rgba(198, 87, 70, 0.18);
--failure-badge-text: #fca5a5;
--failure-badge-border: rgba(198, 87, 70, 0.35);
--count-badge-bg: rgba(248, 250, 252, 0.12);
--count-badge-text: var(--text-primary);
--ui-accent: #5dd3c7;
--ui-accent-strong: #83e0d6;
--ui-accent-contrast: #0b0d11;
--ui-accent-soft: rgba(45, 169, 158, 0.2);
--ui-focus-ring: rgba(93, 211, 199, 0.28);
--ui-accent-shadow: rgba(0, 0, 0, 0.22);
--ui-panel-shadow: 0 1px 2px rgba(0, 0, 0, 0.28), 0 12px 32px -10px rgba(0, 0, 0, 0.45);
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.28);
--theme-2d2a26: #f8fafc;
--theme-2f2c28: #ece9e2;
--theme-2f6b3a: #34d399;
--theme-2f6b3f: #34d399;
--theme-342f2a: #ece9e2;
--theme-344ca1: #9c958d;
--theme-39352f: #dfdcd4;
--theme-3f3550: #c9c3bb;
--theme-3f6f98: #9c958d;
--theme-42637f: #9c958d;
--theme-433f39: #d3cfc7;
--theme-4d78a8: #9c958d;
--theme-4f4a43: #cbd5e1;
--theme-4f825c: #34d399;
--theme-554075: #b0aaa2;
--theme-5d9a6c: #34d399;
--theme-654f91: #b0aaa2;
--theme-66709a: #c9c3bb;
--theme-6684a1: #c9c3bb;
--theme-805a24: #fcd34d;
--theme-8069ad: #8a847c;
--theme-866b4d: #8a847c;
--theme-8a625d: #8a847c;
--theme-8b5b21: #fcd34d;
--theme-8d8377: #6d6760;
--theme-8f3025: #c65746;
--theme-9ca9df: #8b8680;
--theme-9d8abd: #8b8680;
--theme-9db8a5: #34d399;
--theme-9f2d20: #c65746;
--theme-a33b2b: #c65746;
--theme-a83f32: #c65746;
--theme-aaa49b: #334155;
--theme-b64132: #c65746;
--theme-b6d3bd: rgba(16, 185, 129, 0.3);
--theme-b8d1bb: rgba(16, 185, 129, 0.3);
--theme-b9d5bf: rgba(16, 185, 129, 0.3);
--theme-bd5e31: #c65746;
--theme-bdb5a9: #3a3530;
--theme-bf8a43: #d97706;
--theme-c77b30: #d97706;
--theme-c7c2b8: #222836;
--theme-c9c4ba: #222836;
--theme-c9d6e2: #222836;
--theme-c9d8ca: rgba(16, 185, 129, 0.3);
--theme-c9dfcf: rgba(16, 185, 129, 0.3);
--theme-d3d0c9: #2e3646;
--theme-d5d2cb: #2e3646;
--theme-d7a447: #d97706;
--theme-d8d1eb: #3a3530;
--theme-d8d2c8: #3a3530;
--theme-d8d4cc: #222836;
--theme-d9d4c9: #1c212c;
--theme-dce2fb: rgba(139, 134, 128, 0.35);
--theme-dce8df: rgba(16, 185, 129, 0.25);
--theme-ddd8ce: #2e2a26;
--theme-dfb7b0: rgba(198, 87, 70, 0.35);
--theme-dfbf91: rgba(217, 119, 6, 0.35);
--theme-dfdcd4: #1c212c;
--theme-e2b6ae: rgba(198, 87, 70, 0.35);
--theme-e2ddd3: #2e2a26;
--theme-e3ded5: #3a3530;
--theme-e3e1db: #222836;
--theme-e4d0af: #3a3530;
--theme-e5e1d9: #2e2a26;
--theme-e8e4dc: #1c212c;
--theme-e8e5dc: #1c212c;
--theme-ece8df: #1c212c;
--theme-eeeae2: #1c212c;
--theme-eeece6: #1c212c;
--theme-eef1ff: rgba(139, 134, 128, 0.15);
--theme-eef7f0: rgba(16, 185, 129, 0.12);
--theme-efc9c2: rgba(198, 87, 70, 0.3);
--theme-f0ede6: #12151c;
--theme-f0eee8: #141720;
--theme-f1ecfb: #1c212c;
--theme-f1f6fa: #1c212c;
--theme-f1f8f1: rgba(16, 185, 129, 0.1);
--theme-f2efe8: #141720;
--theme-f2f0ea: #141720;
--theme-f2f7f2: rgba(16, 185, 129, 0.1);
--theme-f3f8f4: rgba(16, 185, 129, 0.1);
--theme-f4f1ea: #10131a;
--theme-f4f2ec: #10131a;
--theme-f5f1ff: #10131a;
--theme-f5f7ff: #10131a;
--theme-f6f2ec: #10131a;
--theme-f7f3ff: #10131a;
--theme-f8f5ee: #0f1218;
--theme-f8f5ef: #0f1218;
--theme-f8f5ff: #0f1218;
--theme-f8f6f1: #0f1218;
--theme-faf8f2: #0f1218;
--theme-faf8f4: #0f1218;
--theme-faf9f5: #0b0d11;
--theme-fdf1ee: rgba(198, 87, 70, 0.1);
--theme-fff: #141720;
--theme-fff1ee: rgba(198, 87, 70, 0.16);
--theme-fff7e9: rgba(217, 119, 6, 0.14);
--theme-fff8eb: rgba(217, 119, 6, 0.14);
--theme-fffdf8: #141720;
--theme-ffffff: #141720;
}
/*
* Readability-first palette.
*
* The original tokens are retained because they are used throughout the app,
* while these overrides move the interface to a calm graphite-and-teal
* system. New semantic tokens are used by the shell and
* primary interactions below.
*/
:root {
--ui-accent: #0f766e;
--ui-accent-strong: #0b5d57;
--ui-accent-soft: #d9f0ec;
--ui-focus-ring: rgba(15, 118, 110, 0.28);
--ui-accent-shadow: rgba(15, 118, 110, 0.18);
--ui-panel-shadow: 0 8px 24px rgba(32, 42, 36, 0.07);
--theme-2d2a26: #202521;
--theme-342f2a: #282e29;
--theme-39352f: #313832;
--theme-433f39: #39413b;
--theme-4f4a43: #465049;
--theme-8d8377: #808a82;
--theme-aaa49b: #a1aaa3;
--theme-bdb5a9: #b2bab4;
--theme-c7c2b8: #c0c8c1;
--theme-c9c4ba: #c4ccc5;
--theme-d5d2cb: #cfd7d0;
--theme-d8d2c8: #d6ddd7;
--theme-d8d4cc: #d3dbd4;
--theme-d9d4c9: #d8ded9;
--theme-ddd8ce: #dde3de;
--theme-dfdcd4: #e2e9e3;
--theme-e2ddd3: #dce4dd;
--theme-e3e1db: #e2e8e3;
--theme-e5e1d9: #e5eae6;
--theme-e8e4dc: #e8ede9;
--theme-e8e5dc: #e6ece7;
--theme-ece8df: #edf1ee;
--theme-eeeae2: #edf1ee;
--theme-eeece6: #eff3f0;
--theme-f0ede6: #f0f3f1;
--theme-f0eee8: #eef2ef;
--theme-f2efe8: #f2f5f3;
--theme-f2f0ea: #f3f5f3;
--theme-f4f1ea: #f6f8f6;
--theme-f4f2ec: #f5f7f5;
--theme-f6f2ec: #f7f9f7;
--theme-f8f5ee: #f9faf9;
--theme-f8f5ef: #f9faf9;
--theme-f8f6f1: #f9faf9;
--theme-faf8f2: #fbfcfb;
--theme-faf8f4: #fbfcfb;
--theme-faf9f5: #f6f7f5;
--theme-fff: #ffffff;
--theme-fffdf8: #ffffff;
--theme-ffffff: #ffffff;
}
:root {
--font-family-sans: 'Noto Sans SC', 'Noto Sans CJK SC', 'Source Han Sans SC', 'PingFang SC', 'Microsoft YaHei UI', 'Microsoft YaHei', system-ui, sans-serif;
--font-family-mono: 'Cascadia Code', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
--font-mono: var(--font-family-mono);
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-size-caption: 12px;
--font-size-meta: 13px;
--font-size-label: 14px;
--font-size-body: 14px;
--font-size-section: 16px;
--font-size-panel-title: 18px;
--font-size-dialog-title: 20px;
--font-size-page-title: 24px;
--font-size-metric-compact: 24px;
--font-size-display: 28px;
--line-height-tight: 1.35;
--line-height-body: 1.6;
--line-height-relaxed: 1.7;
font-family: var(--font-family-sans);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
color: var(--theme-2d2a26);
background: var(--theme-faf9f5);
font-synthesis: none;
letter-spacing: 0;
text-rendering: optimizeLegibility;
}
:root:lang(zh-TW) {
--font-family-sans: 'Noto Sans TC', 'Noto Sans CJK TC', 'Source Han Sans TC', 'PingFang TC', 'Microsoft JhengHei UI', 'Microsoft JhengHei', system-ui, sans-serif;
}
:root:lang(ja) {
--font-family-sans: 'Noto Sans JP', 'Noto Sans CJK JP', 'Source Han Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', Meiryo, system-ui, sans-serif;
}
:root:lang(en) {
--font-family-sans: 'Inter', 'Segoe UI Variable Text', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Noto Sans', 'Noto Sans SC', sans-serif;
}
h1, h2, h3, h4, strong, b {
font-weight: var(--font-weight-semibold);
}
code, pre, kbd, samp {
font-family: var(--font-family-mono);
}
* {
box-sizing: border-box;
}
html,
body,
#root {
width: 100%;
min-width: 0;
height: 100%;
margin: 0;
background: var(--theme-faf9f5);
}
.app-error-boundary {
display: grid;
min-height: 100vh;
place-items: center;
padding: 24px;
background: var(--theme-faf9f5);
}
.app-error-boundary .empty-state {
width: min(560px, 100%);
}
body {
margin: 0;
}
button,
input,
select,
textarea {
font: inherit;
}
input::placeholder,
textarea::placeholder {
color: var(--text-placeholder);
opacity: 1;
}
button {
cursor: pointer;
font-weight: var(--font-weight-medium);
}
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
outline: 3px solid var(--ui-focus-ring);
outline-offset: 2px;
}
.app-shell {
display: grid;
grid-template-columns: 264px minmax(0, 1fr);
min-height: 100vh;
background: var(--theme-faf9f5);
}
.sidebar {
position: sticky;
top: 0;
display: flex;
flex-direction: column;
height: 100vh;
padding: 20px 14px;
border-right: 1px solid var(--border-color);
background: var(--bg-primary);
color: var(--text-primary);
}
.sidebar-brand {
display: grid;
grid-template-columns: 42px minmax(0, 1fr);
align-items: center;
gap: 12px;
min-height: 54px;
margin-bottom: 22px;
}
.brand-mark {
display: grid;
width: 42px;
height: 42px;
place-items: center;
border: 1px solid var(--theme-d5d2cb);
border-radius: 12px;
background: var(--theme-2d2a26);
color: var(--theme-fffdf8);
font-size: var(--font-size-section);
font-weight: var(--font-weight-semibold);
box-shadow: 0 6px 16px var(--ui-accent-shadow);
}
.brand-logo {
display: block;
object-fit: cover;
}
.sidebar-brand strong,
.sidebar-brand span {
display: block;
min-width: 0;
}
.sidebar-brand strong {
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
text-overflow: ellipsis;
white-space: nowrap;
}
.sidebar-brand div > span {
margin-top: 4px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.nav-section {
display: grid;
gap: 6px;
}
.nav-section button {
display: grid;
grid-template-columns: 19px minmax(0, 1fr) auto;
align-items: center;
gap: 10px;
width: 100%;
min-height: 46px;
padding: 0 13px;
border: 1px solid transparent;
border-radius: 10px;
background: transparent;
color: var(--theme-2d2a26);
font-weight: var(--font-weight-semibold);
text-align: left;
transition: border-color 140ms ease, background 140ms ease, color 140ms ease,
transform 140ms ease;
}
.nav-section button svg {
color: var(--theme-7a746c);
}
.nav-lock-icon {
color: var(--text-tertiary);
opacity: 0.85;
}
.nav-section button span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nav-update-indicator {
display: block;
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--theme-c77b30);
box-shadow: 0 0 0 3px rgba(199, 123, 48, 0.14);
}
.nav-update-indicator.processing {
background: var(--theme-4d78a8);
box-shadow: 0 0 0 3px rgba(77, 120, 168, 0.15);
animation: update-indicator-pulse 1.2s ease-in-out infinite;
}
@keyframes update-indicator-pulse {
50% {
opacity: 0.45;
transform: scale(0.78);
}
}
.nav-section button:hover {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
transform: translateX(2px);
}
.nav-section button:disabled,
.nav-section button.locked {
cursor: not-allowed;
color: var(--text-disabled);
opacity: 0.58;
}
.nav-section button:disabled:hover,
.nav-section button.locked:hover {
background: transparent;
color: var(--text-disabled);
transform: none;
}
.nav-section button:disabled svg,
.nav-section button.locked svg {
color: var(--theme-aaa49b);
}
.nav-section button.active {
border-color: color-mix(in srgb, var(--ui-accent) 30%, transparent);
background: var(--ui-accent-soft);
color: var(--ui-accent-strong);
font-weight: var(--font-weight-semibold);
box-shadow: 0 4px 12px var(--ui-accent-shadow);
}
.nav-section button.active svg {
color: var(--ui-accent);
}
.sidebar-bottom {
display: grid;
gap: 10px;
margin-top: auto;
padding-top: 18px;
border-top: 1px solid var(--theme-e3e1db);
}
.sidebar-easy-entry {
display: block;
width: 100%;
min-height: 38px;
padding: 0 10px;
border: 1px dashed var(--border-primary);
border-radius: 9px;
background: transparent;
color: var(--text-secondary);
text-align: center;
transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.sidebar-easy-entry:hover {
border-style: solid;
border-color: var(--border-hover);
background: var(--bg-tertiary);
color: var(--text-primary);
}
.sidebar-easy-entry.active {
border-style: solid;
border-color: var(--border-primary);
background: var(--bg-tertiary);
color: var(--text-primary);
}
.sidebar-easy-entry span {
min-width: 0;
overflow: hidden;
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.sidebar-theme-selector {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 3px;
width: 100%;
padding: 3px;
border: 1px solid var(--border-color);
border-radius: 9px;
background: var(--bg-tertiary);
}
.sidebar-theme-selector button {
min-width: 0;
min-height: 32px;
padding: 0 8px;
border: 0;
border-radius: 5px;
background: transparent;
color: var(--theme-716b61);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
transition: background 140ms ease, color 140ms ease, box-shadow 140ms ease;
white-space: nowrap;
}
.sidebar-theme-selector button:hover {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
}
.sidebar-theme-selector button.active {
background: var(--bg-primary);
box-shadow: var(--shadow-sm);
color: var(--text-primary);
}
.sidebar-language {
position: relative;
width: 100%;
}
.sidebar-language-trigger {
display: grid;
grid-template-columns: 18px minmax(0, 1fr) 14px;
align-items: center;
gap: 8px;
width: 100%;
min-height: 38px;
padding: 0 10px;
border: 1px solid var(--border-color);
border-radius: 9px;
background: var(--bg-primary);
color: var(--text-secondary);
text-align: left;
}
.sidebar-language-trigger:hover,
.sidebar-language-trigger[aria-expanded='true'] {
border-color: var(--theme-c7c2b8);
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
}
.sidebar-language-trigger span {
min-width: 0;
overflow: hidden;
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.sidebar-language-trigger > svg:last-child {
transition: transform 160ms ease;
}
.sidebar-language-trigger > svg:last-child.expanded {
transform: rotate(180deg);
}
.sidebar-language-list {
position: absolute;
z-index: 120;
right: 0;
bottom: calc(100% + 8px);
left: 0;
display: grid;
gap: 3px;
padding: 5px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 9px;
background: var(--theme-fff);
box-shadow: 0 -10px 28px rgba(45, 42, 38, 0.16);
}
.sidebar-language-list button {
display: grid;
grid-template-columns: minmax(0, 1fr) 16px;
align-items: center;
gap: 8px;
width: 100%;
min-height: 36px;
padding: 0 9px;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
text-align: left;
}
.sidebar-language-list button:hover {
background: var(--theme-f0eee8);
color: var(--theme-2d2a26);
}
.sidebar-language-list button.selected {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
}
.sidebar-language-list button svg {
color: var(--theme-2d2a26);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.sidebar-contact {
display: grid;
grid-template-columns: 18px minmax(0, 1fr) 14px;
align-items: center;
gap: 8px;
width: 100%;
min-height: 38px;
padding: 0 10px;
border: 1px solid var(--border-color);
border-radius: 9px;
background: var(--bg-primary);
color: var(--text-secondary);
text-align: left;
}
.sidebar-contact:hover {
border-color: var(--theme-c7c2b8);
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
}
.sidebar-contact svg {
color: var(--theme-7a746c);
}
.sidebar-contact span {
overflow: hidden;
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.workspace {
min-width: 0;
}
.state-pill {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 28px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 999px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
white-space: nowrap;
}
.state-pill.success {
border-color: var(--theme-b6d3bd);
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
}
.state-pill.error {
border-color: var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.state-pill.warning {
border-color: var(--theme-dfbf91);
background: var(--theme-fff7e9);
color: var(--theme-8b5b21);
}
.state-pill.update {
border-color: var(--theme-dfbf91);
background: var(--theme-fff7e9);
color: var(--theme-8b5b21);
}
.content {
width: 100%;
padding: clamp(20px, 3vw, 32px) clamp(18px, 3.2vw, 40px) clamp(28px, 4vw, 48px);
container-type: inline-size;
container-name: workspace;
}
.page {
width: 100%;
max-width: none;
min-width: 0;
margin-inline: 0;
}
.page > * {
min-width: 0;
}
.kernel-page,
.config-page,
.management-page {
display: grid;
gap: 18px;
}
.panel {
width: 100%;
min-width: 0;
padding: 24px;
border: 1px solid var(--theme-e3e1db);
border-radius: 12px;
background: var(--theme-fffdf8);
box-shadow: var(--ui-panel-shadow);
}
.quiet-panel {
background: var(--theme-faf9f5);
}
.panel-heading {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
min-height: 49px;
margin-bottom: 16px;
}
.panel-heading > div {
min-width: 0;
}
.panel h2 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
line-height: var(--line-height-tight);
}
.panel-heading p {
min-height: 0;
margin: 5px 0 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.panel-heading p.success {
color: var(--theme-2f6b3f);
}
.panel-heading p.error {
color: var(--theme-9f2d20);
}
.status-strip {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
gap: 12px;
}
.status-card {
display: grid;
gap: 4px;
min-width: 0;
min-height: 72px;
padding: 12px 14px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.status-card-primary {
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 10px;
}
.status-card-primary > div {
display: grid;
gap: 4px;
min-width: 0;
}
.status-card span {
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.status-card strong {
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
line-height: var(--line-height-tight);
text-overflow: ellipsis;
white-space: nowrap;
}
.software-version-line {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-width: 0;
}
.software-version-line > strong {
flex: none;
}
.software-version-action {
display: inline-flex;
align-items: center;
justify-content: flex-end;
gap: 4px;
min-width: 0;
max-width: 62%;
padding: 0;
border: 0;
background: transparent;
color: var(--theme-817b73);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
}
.software-version-action span {
color: inherit;
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
}
.software-version-action:hover:not(:disabled) span {
text-decoration: underline;
text-underline-offset: 2px;
}
.software-version-action:disabled {
cursor: wait;
opacity: 0.72;
}
.software-version-action.update {
color: var(--theme-866b4d);
}
.software-version-action.error {
color: var(--theme-8a625d);
}
.status-dot {
display: block;
width: 12px;
height: 12px;
border-radius: 999px;
background: var(--theme-9b958c);
box-shadow: 0 0 0 5px rgba(155, 149, 140, 0.14);
}
.status-dot.success {
background: var(--theme-2f6b3f);
box-shadow: 0 0 0 5px rgba(47, 107, 63, 0.15);
}
.status-dot.error {
background: var(--theme-9f2d20);
box-shadow: 0 0 0 5px rgba(159, 45, 32, 0.15);
}
.status-dot.neutral {
background: var(--theme-9b958c);
}
.kernel-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: start;
gap: 18px;
}
/* ==========================================================================
Version Management Redesign
========================================================================== */
.version-management-page {
display: flex;
flex-direction: column;
width: 100%;
max-width: 1160px;
margin: 0 auto;
}
.version-list {
display: grid;
gap: 20px;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
}
.version-source-row,
.version-list-item,
.app-release-notes {
border: 1px solid var(--theme-e3e1db);
border-radius: 14px;
background: var(--theme-fffdf8);
box-shadow: var(--ui-panel-shadow);
}
.version-source-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
min-height: 84px;
align-items: center;
gap: 24px;
padding: 20px 26px;
}
.version-source-copy {
display: grid;
min-width: 0;
gap: 5px;
}
.version-source-copy strong,
.version-card-top h2 {
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
font-weight: var(--font-weight-semibold);
line-height: var(--line-height-body);
}
.version-source-copy > span {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.version-source-copy > .version-source-error {
color: var(--theme-9f2d20);
}
.version-source-control label {
display: grid;
}
.version-source-control {
display: grid;
grid-template-columns: minmax(0, 220px) auto;
width: max-content;
max-width: 100%;
gap: 8px;
}
.version-source-control select {
width: 220px;
max-width: 100%;
height: 42px;
padding: 0 36px 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
cursor: pointer;
font-size: var(--font-size-body);
}
.version-source-control select:hover:not(:disabled) {
border-color: var(--theme-9b958c);
}
.version-source-control select:disabled {
cursor: not-allowed;
opacity: 0.58;
}
.version-source-add-button {
display: inline-flex;
min-height: 42px;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0 12px;
}
.version-source-add-button:disabled {
cursor: not-allowed;
opacity: 0.58;
}
.version-card-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: stretch;
gap: 20px;
}
.version-list-item {
display: grid;
grid-template-rows: minmax(0, 1fr) auto;
min-height: 280px;
align-items: stretch;
gap: 26px;
padding: 26px;
}
.version-item-content {
min-width: 0;
}
.version-card-top {
display: flex;
min-width: 0;
align-items: baseline;
flex-wrap: wrap;
gap: 6px 14px;
}
.version-card-top h2 {
margin: 0;
}
.version-row-status {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
line-height: var(--line-height-body);
}
.version-row-status::before {
width: 6px;
height: 6px;
flex: none;
border-radius: 50%;
background: currentColor;
content: '';
}
.version-row-status.info {
color: var(--theme-5f5a53);
}
.version-row-status.update {
color: var(--theme-8b5b21);
}
.version-row-status.error {
color: var(--theme-9f2d20);
}
.version-row-status.neutral {
color: var(--theme-817b73);
}
.version-metrics-comparison {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
min-width: 0;
gap: 12px;
margin: 20px 0 0;
}
.version-metric-tile {
display: grid;
min-width: 0;
gap: 5px;
padding: 15px 16px;
border: 1px solid var(--theme-e8e5dc);
border-radius: 10px;
background: var(--theme-faf9f5);
}
.version-metric-label {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.version-metric-value {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
font-weight: var(--font-weight-semibold);
font-family: var(--font-family-mono, monospace);
line-height: var(--line-height-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.version-metric-tile.has-update .version-metric-value {
color: var(--theme-8b5b21);
}
.version-alert-banner {
display: flex;
min-width: 0;
align-items: center;
gap: 6px;
margin-top: 12px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.version-alert-banner > svg {
flex: none;
}
.version-alert-banner.info {
color: var(--theme-5f5a53);
}
.version-alert-banner.neutral {
color: var(--theme-6d6760);
}
.version-alert-banner.update {
color: var(--ui-accent-strong);
}
.version-alert-banner.warning {
color: var(--theme-8b5b21);
}
.version-alert-banner.error {
color: var(--theme-9f2d20);
}
.version-alert-banner.success {
color: var(--theme-2f6b3f);
}
.version-card-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-start;
align-self: end;
gap: 10px;
}
.version-card-actions button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
flex: 1 1 120px;
min-height: 40px;
padding: 8px 14px;
font-weight: var(--font-weight-semibold);
border-radius: 9px;
white-space: nowrap;
}
.app-release-notes {
min-width: 0;
overflow: hidden;
}
.app-release-notes-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
padding: 20px 26px;
}
.app-release-notes-heading > div {
display: flex;
align-items: center;
gap: 9px;
min-width: 0;
}
.app-release-notes-heading h2 {
margin: 0;
font-size: var(--font-size-panel-title);
}
.app-release-notes-heading svg {
flex: none;
color: var(--theme-7a746c);
}
.app-release-notes-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
flex: none;
min-height: 32px;
padding: 3px 0;
border: 0;
background: transparent;
color: var(--theme-6d6760);
font-size: var(--font-size-meta);
cursor: pointer;
}
.app-release-notes-toggle:hover {
color: var(--theme-2d2a26);
}
.app-release-notes-toggle .is-expanded {
transform: rotate(180deg);
}
.app-release-notes-body {
padding: 0 26px 20px;
}
.app-release-notes-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 9px;
padding-bottom: 20px;
border-bottom: 1px solid var(--theme-e8e5dc);
}
.app-release-notes-meta strong {
font-family: var(--font-family-mono, monospace);
font-size: var(--font-size-panel-title);
overflow-wrap: anywhere;
}
.app-release-notes-latest {
padding: 2px 7px;
border-radius: 5px;
background: var(--theme-dce8df);
color: var(--theme-2f6b3f);
font-size: var(--font-size-meta);
}
.app-release-notes-meta time {
margin-left: auto;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.app-release-notes-markdown {
display: grid;
grid-template-columns: minmax(44px, auto) minmax(0, 1fr);
align-items: start;
gap: 18px 22px;
margin-top: 20px;
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.app-release-notes-markdown > * {
grid-column: 2;
min-width: 0;
margin: 0;
}
.app-release-notes-markdown > .release-notes-category {
grid-column: 1;
max-width: 160px;
padding: 3px 9px;
border-radius: 5px;
background: var(--theme-faf9f5);
color: var(--theme-6d6760);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
text-align: center;
}
.app-release-notes-markdown > .release-notes-subtitle {
grid-column: 1 / -1;
}
.app-release-notes-markdown ul,
.app-release-notes-markdown ol {
padding-left: 20px;
}
.app-release-notes-markdown li + li {
margin-top: 7px;
}
.app-release-notes-markdown li p {
margin: 5px 0;
}
.app-release-notes-markdown a {
color: var(--theme-3f6f98);
text-decoration: underline;
}
.app-release-notes-markdown pre {
white-space: pre-wrap;
padding: 12px;
border-radius: 8px;
background: var(--theme-faf9f5);
}
.app-release-notes-markdown blockquote {
border-left: 3px solid var(--theme-e3e1db);
padding-left: 14px;
color: var(--theme-6d6760);
}
.app-release-notes-empty {
margin: 18px 0 0;
color: var(--theme-7a746c);
font-size: var(--font-size-body);
}
.app-release-notes-footer {
display: flex;
justify-content: flex-end;
padding: 10px 26px;
border-top: 1px solid var(--theme-e8e5dc);
background: var(--theme-faf9f5);
}
@media (max-width: 640px) {
.app-release-notes-heading { padding: 16px; }
.app-release-notes-body { padding: 0 16px 16px; }
.app-release-notes-footer { padding: 10px 16px; }
.app-release-notes-markdown { gap: 14px 12px; }
.app-release-notes-markdown > .release-notes-category { max-width: 80px; }
.app-release-notes-meta time { width: 100%; margin-left: 0; }
}
.client-api-panel {
margin-top: 0;
}
.client-api-heading {
min-height: 44px;
margin-bottom: 14px;
}
.client-api-heading .state-pill {
flex: none;
}
.client-api-key-actions {
display: flex;
min-width: 0;
align-items: center;
gap: 5px;
margin: 4px 0 0;
}
.client-api-default-key {
display: inline-flex;
min-width: 0;
min-height: 19px;
flex: 0 1 auto;
align-items: center;
gap: 6px;
margin: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.client-api-default-key span {
flex: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.client-api-default-key code {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.client-api-default-key svg {
flex: none;
color: var(--theme-7a746c);
}
.client-api-default-key:hover span {
color: var(--theme-2d2a26);
}
.client-api-key-copy {
width: 26px;
height: 26px;
border-color: transparent !important;
background: transparent !important;
}
.client-api-key-copy:hover:not(:disabled) {
border-color: var(--theme-d5d2cb) !important;
background: var(--theme-f4f1ea) !important;
}
.client-api-no-key {
color: var(--theme-9f2d20) !important;
}
.client-api-grid {
display: flex;
flex-direction: column;
gap: 12px;
}
.client-api-card {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
min-width: 0;
height: 100%;
min-height: 56px;
padding: 0 14px;
border: 1px solid var(--theme-e3e1db);
border-radius: 10px;
background: var(--theme-ffffff);
box-sizing: border-box;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}
.client-api-card:hover {
border-color: var(--theme-d5d2cb);
background: var(--theme-ffffff);
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
}
:root[data-theme='dark'] .client-api-card {
border-color: var(--border-primary);
background: rgba(255, 255, 255, 0.035);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
:root[data-theme='dark'] .client-api-card:hover {
border-color: var(--border-hover);
background: rgba(255, 255, 255, 0.055);
}
.client-api-card-heading {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
flex: 0 0 138px;
width: 138px;
}
.client-api-logo {
display: grid;
width: 36px;
height: 36px;
flex: none;
place-items: center;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--bg-secondary);
}
:root[data-theme='dark'] .client-api-logo {
border-color: var(--border-secondary);
background: var(--bg-quinary);
}
:root[data-theme='dark'] .client-api-card.openai .client-api-logo img {
filter: invert(1);
}
.client-api-logo img {
display: block;
width: 22px;
height: 22px;
object-fit: contain;
}
.client-api-card-heading > div {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.client-api-card-heading strong {
color: var(--theme-2d2a26);
font-size: 13.5px;
font-weight: var(--font-weight-semibold);
line-height: 1.2;
}
.client-api-card-heading .client-api-format-tag,
.client-api-card-heading span {
color: var(--theme-7a746c);
font-size: 11px;
line-height: 1.2;
white-space: nowrap;
}
.client-api-values {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
flex: 1 1 auto;
justify-content: stretch;
}
.client-api-value-row {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
width: 100%;
justify-content: stretch;
height: 36px;
padding: 0;
border: none;
background: transparent;
box-sizing: border-box;
}
.client-api-value-row > span:first-child {
display: none;
}
.client-api-value-row code {
flex: 1 1 auto;
min-width: 0;
height: 36px;
line-height: 34px;
padding: 0 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 6px;
background: var(--bg-secondary);
color: var(--theme-2d2a26);
font-size: 12.5px;
font-family: var(--font-mono);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
user-select: all;
box-sizing: border-box;
text-align: left;
cursor: pointer;
transition: border-color 150ms ease, background-color 150ms ease;
}
.client-api-value-row code:hover {
border-color: var(--theme-d5d2cb);
background: var(--theme-ffffff);
}
:root[data-theme='dark'] .client-api-value-row code {
border-color: var(--border-secondary);
background: var(--bg-quinary);
color: var(--text-primary);
}
:root[data-theme='dark'] .client-api-value-row code:hover {
border-color: var(--border-primary);
background: var(--bg-primary);
}
.client-api-value-row .icon-button {
flex: none;
width: 34px;
height: 34px;
border-radius: 6px;
}
.client-api-copy-placeholder {
display: block;
width: 34px;
height: 34px;
}
.kernel-layout > .panel {
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: repeat(3, auto);
}
.kernel-layout > .panel > .panel-heading {
min-height: 0;
height: auto;
margin: 0;
padding-bottom: 16px;
}
.kernel-layout .panel-action-row {
height: auto;
margin: 0;
padding-top: 18px;
}
.panel-detail-grid {
display: grid;
grid-auto-rows: auto;
gap: 8px;
min-height: 0;
margin: 0;
}
.panel-detail-row {
display: grid;
grid-template-columns: 92px minmax(0, 1fr);
align-items: center;
gap: 14px;
min-width: 0;
min-height: 40px;
}
.panel-detail-row dt {
color: var(--theme-7a746c);
font-size: var(--font-size-body);
}
.panel-detail-row dd {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
text-align: right;
text-overflow: ellipsis;
white-space: nowrap;
}
.panel-detail-row dd.success {
color: var(--theme-2f6b3f);
}
.panel-detail-row dd.update {
color: var(--theme-c77b30);
}
.panel-detail-row dd.error {
color: var(--theme-9f2d20);
}
.detail-control-cell {
display: flex;
align-items: center;
justify-content: flex-end;
height: 40px;
overflow: visible !important;
}
.compact-text-input {
width: min(150px, 100%);
height: 34px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
text-align: right;
}
.compact-text-input::placeholder {
color: var(--text-placeholder);
}
.compact-text-input.error {
border-color: var(--theme-a83f32);
color: var(--theme-9f2d20);
}
.compact-text-input:disabled {
cursor: not-allowed;
background: var(--theme-f4f1ea);
}
.button-row.control-action-row {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-auto-flow: row;
grid-auto-rows: minmax(38px, auto);
gap: 8px;
align-items: stretch;
}
.control-action-row > button {
width: 100%;
min-height: 38px;
height: auto;
padding: 6px 8px;
overflow: hidden;
font-size: var(--font-size-label);
line-height: var(--line-height-tight);
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
}
@container workspace (min-width: 840px) {
.home-page {
grid-template-columns: minmax(320px, 1fr) minmax(360px, 1.15fr);
grid-auto-rows: 1fr;
align-items: stretch;
}
.home-page > .home-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: minmax(0, 1fr);
align-self: stretch;
align-items: stretch;
height: 100%;
}
.home-page > .client-api-panel {
grid-column: 2;
}
.home-page > .home-layout > .control-panel,
.home-page > .client-api-panel {
display: grid;
height: 100%;
align-self: stretch;
row-gap: 16px;
box-sizing: border-box;
}
.home-page > .home-layout > .control-panel {
grid-template-rows: auto minmax(0, 1fr) auto;
}
.home-page > .client-api-panel {
grid-template-rows: auto minmax(0, 1fr);
}
.home-page > .home-layout > .control-panel > .panel-heading,
.home-page > .client-api-panel > .panel-heading,
.version-management-layout > .panel > .panel-heading {
min-height: 0;
margin-bottom: 0;
padding-bottom: 0;
}
.home-page > .home-layout > .control-panel > .panel-detail-grid {
align-content: space-evenly;
}
.home-page > .client-api-panel > .client-api-grid {
display: grid;
grid-template-rows: repeat(3, minmax(0, 1fr));
gap: 12px;
height: 100%;
min-height: 0;
}
.home-page > .home-layout > .control-panel > .panel-action-row {
padding-top: 0;
}
}
@container workspace (max-width: 760px) {
.version-card-grid {
grid-template-columns: minmax(0, 1fr);
}
.version-list-item {
min-height: 0;
gap: 20px;
padding: 22px;
}
.version-card-actions,
.version-card-actions.core-actions {
grid-column: 1;
grid-row: auto;
justify-content: flex-start;
}
.version-source-row {
grid-template-columns: minmax(0, 1fr) auto;
}
}
@container workspace (max-width: 560px) {
.client-api-card {
flex-direction: column;
align-items: stretch;
height: auto;
min-height: 0;
padding: 12px;
gap: 10px;
}
.client-api-card-heading {
flex: none;
}
.client-api-values {
width: 100%;
justify-content: stretch;
}
.client-api-value-row {
width: 100%;
}
.version-source-row {
grid-template-columns: minmax(0, 1fr);
}
.version-source-control select {
width: 100%;
}
.version-source-control {
grid-template-columns: minmax(0, 1fr) auto;
width: 100%;
}
.version-source-add-button {
grid-column: 1 / -1;
}
}
@container workspace (max-width: 360px) {
.button-row.control-action-row {
grid-template-columns: 1fr;
}
}
.info-list {
display: grid;
gap: 10px;
grid-template-rows: repeat(4, 20px);
min-height: 110px;
margin: 0;
}
.info-list div {
display: grid;
grid-template-columns: 92px minmax(0, 1fr);
gap: 14px;
align-items: start;
min-height: 20px;
}
.info-list dt {
color: var(--theme-7a746c);
font-size: var(--font-size-body);
}
.info-list dd {
min-width: 0;
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
text-overflow: ellipsis;
white-space: nowrap;
}
.empty-state {
display: grid;
gap: 6px;
padding: 18px;
border: 1px dashed var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
}
.empty-state strong {
color: var(--theme-2d2a26);
}
.button-row {
display: grid;
grid-auto-columns: minmax(0, 1fr);
grid-auto-flow: column;
gap: 10px;
min-height: 38px;
margin-top: 18px;
}
.primary-button,
.secondary-button,
.danger-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 42px;
min-width: 0;
overflow: hidden;
padding: 0 14px;
border-radius: 8px;
font-size: var(--font-size-label);
font-weight: var(--font-weight-medium);
text-overflow: ellipsis;
white-space: nowrap;
}
.primary-button svg,
.secondary-button svg,
.danger-button svg {
flex: none;
}
.primary-button {
border: 1px solid var(--ui-accent);
background: var(--ui-accent);
color: #ffffff;
box-shadow: 0 4px 12px var(--ui-accent-shadow);
}
.primary-button:hover:not(:disabled) {
border-color: var(--ui-accent-strong);
background: var(--ui-accent-strong);
}
.secondary-button {
border: 1px solid var(--theme-d5d2cb);
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
}
.secondary-button:hover:not(:disabled) {
background: var(--theme-f4f1ea);
}
.danger-button {
border: 1px solid var(--theme-a83f32);
background: var(--theme-fffdf8);
color: var(--theme-9f2d20);
}
.danger-button:hover:not(:disabled) {
background: var(--theme-fff1ee);
}
.primary-button:disabled,
.secondary-button:disabled,
.danger-button:disabled {
cursor: not-allowed;
opacity: 0.55;
}
.switch-control {
position: relative;
display: block;
width: 44px;
height: 24px;
flex: none;
}
.switch-control input {
position: absolute;
inset: 0;
z-index: 1;
width: 100%;
height: 100%;
margin: 0;
cursor: pointer;
opacity: 0;
}
.switch-control input:disabled {
cursor: not-allowed;
}
.switch-control input:disabled + .switch-track {
opacity: 0.55;
}
.switch-track {
display: block;
width: 100%;
height: 100%;
border: 1px solid var(--theme-d5d2cb);
border-radius: 999px;
background: var(--theme-e8e5dc);
transition:
background 140ms ease,
border-color 140ms ease;
}
.switch-track::after {
display: block;
width: 18px;
height: 18px;
margin: 2px;
border-radius: 999px;
background: var(--theme-fffdf8);
box-shadow: 0 1px 2px rgba(45, 42, 38, 0.18);
transition: transform 140ms ease;
content: '';
}
.switch-control input:checked + .switch-track {
border-color: var(--theme-2d2a26);
background: var(--theme-2d2a26);
}
.switch-control input:checked + .switch-track::after {
transform: translateX(20px);
}
.config-general-subpage {
display: grid;
gap: 18px;
}
.config-keys-panel {
display: grid;
min-height: 0;
}
.config-keys-panel {
grid-template-rows: 42px minmax(0, 1fr);
gap: 16px;
height: 350px;
}
.config-management-panel {
display: grid;
gap: 18px;
}
.config-diagnostics-panel {
display: grid;
gap: 16px;
}
.config-diagnostics-intro {
margin: -4px 0 0;
color: var(--theme-6b655d);
font-size: var(--font-size-label);
line-height: var(--line-height-relaxed);
}
.config-diagnostics-toggle-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.config-diagnostics-setting {
display: grid;
grid-template-columns: 38px minmax(0, 1fr) 44px;
align-items: center;
gap: 12px;
min-width: 0;
padding: 15px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-faf8f2);
}
.config-diagnostics-setting-icon {
display: grid;
width: 38px;
height: 38px;
place-items: center;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
}
.config-diagnostics-setting-copy {
display: grid;
min-width: 0;
gap: 4px;
}
.config-diagnostics-setting-copy strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.config-diagnostics-setting-copy small,
.config-diagnostics-field small {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
line-height: var(--line-height-relaxed);
}
.config-diagnostics-fields {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.config-diagnostics-field {
display: grid;
min-width: 0;
gap: 7px;
padding: 14px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.config-diagnostics-field > span {
color: var(--theme-39352f);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.config-diagnostics-commercial-note {
display: flex;
align-items: flex-start;
gap: 8px;
padding: 11px 13px;
border: 1px solid var(--theme-dfbf91);
border-radius: 7px;
background: var(--theme-fff7e9);
color: var(--theme-8b5b21);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.config-diagnostics-commercial-note svg {
flex: none;
margin-top: 1px;
}
.config-diagnostics-footer {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 16px;
}
.config-diagnostics-actions {
display: flex;
align-items: center;
gap: 10px;
}
.config-management-content {
display: grid;
grid-template-columns: minmax(220px, 0.72fr) minmax(420px, 1.28fr);
align-items: stretch;
gap: 18px;
}
.config-management-description,
.config-management-form {
min-width: 0;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-faf8f2);
}
.config-management-description {
display: grid;
align-content: start;
gap: 9px;
}
.config-management-description strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.config-management-description p,
.config-management-description small {
margin: 0;
color: var(--theme-6d6760);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.config-management-description small {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.config-management-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px 16px;
}
.config-management-field {
display: grid;
min-width: 0;
align-content: start;
gap: 8px;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.config-management-field .config-secret-input input,
.config-management-field > .config-dialog-text-input {
background: var(--theme-fffdf8);
}
.config-management-field > .config-dialog-text-input[aria-invalid='true'] {
border-color: var(--theme-a83f32);
}
.config-management-form-footer {
display: grid;
grid-column: 1 / -1;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 14px;
}
.config-management-error {
min-width: 0;
overflow: hidden;
color: transparent;
font-size: var(--font-size-label);
line-height: var(--line-height-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.config-management-error.visible {
color: var(--theme-9f2d20);
}
.config-management-actions {
display: flex;
align-items: center;
justify-content: end;
gap: 10px;
}
.config-network-panel {
display: grid;
gap: 18px;
}
.config-tls-content {
display: grid;
gap: 16px;
}
.config-tls-toggle-row {
padding: 4px 0;
border: 0;
background: transparent;
}
.config-tls-section-heading,
.config-section-heading-with-actions {
justify-content: space-between;
}
.config-tls-section-title,
.config-network-section-title {
display: flex;
align-items: center;
gap: 8px;
}
.config-tls-section-title h3,
.config-network-section-title h3 {
margin: 0;
font-size: var(--font-size-section);
line-height: var(--line-height-body);
}
.config-tls-fields {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.config-tls-fields .config-network-field {
min-height: 142px;
height: auto;
}
.config-tls-path-control {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
}
.config-tls-browse-button {
min-width: max-content;
white-space: nowrap;
}
.config-tls-message {
min-height: 20px;
color: var(--theme-6d6760);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.config-tls-message.error {
color: var(--theme-9f2d20);
}
.config-network-sections {
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: start;
gap: 18px;
}
.config-network-section {
display: grid;
min-width: 0;
gap: 14px;
padding: 16px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.config-network-section[hidden] {
display: none;
}
.config-network-section-heading {
display: flex;
align-items: center;
gap: 8px;
color: var(--theme-39352f);
}
.config-network-section-heading svg {
flex: none;
color: var(--theme-777067);
}
.config-network-section-heading h3 {
margin: 0;
font-size: var(--font-size-section);
line-height: var(--line-height-body);
}
.config-network-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-auto-rows: 154px;
gap: 16px 18px;
}
.config-network-field {
display: grid;
height: 100%;
min-width: 0;
align-content: start;
gap: 8px;
padding: 14px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-faf8f2);
}
.config-network-field > span,
.config-network-toggle > div > span {
color: var(--theme-39352f);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.config-network-field small {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.config-network-label {
display: flex;
align-items: center;
gap: 7px;
}
.config-network-label svg {
flex: none;
color: var(--theme-777067);
}
.config-proxy-heading {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.config-proxy-heading > .config-network-label {
min-width: 0;
color: var(--theme-39352f);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.config-proxy-system-toggle {
display: inline-flex;
flex: none;
align-items: center;
gap: 7px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-medium);
cursor: pointer;
}
.config-network-input {
width: 100%;
height: 38px;
min-width: 0;
padding: 0 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
outline: none;
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
font: inherit;
font-size: var(--font-size-body);
}
.config-network-input:focus {
border-color: var(--theme-777067);
box-shadow: 0 0 0 3px rgba(119, 112, 103, 0.12);
}
.config-network-input.error {
border-color: var(--theme-b64132);
box-shadow: 0 0 0 3px rgba(182, 65, 50, 0.1);
}
.config-network-input:disabled {
cursor: not-allowed;
opacity: 0.58;
}
.config-network-port-field .config-network-input {
width: 120px;
max-width: 100%;
}
.config-network-toggle {
grid-template-columns: minmax(0, 1fr) auto;
align-content: center;
align-items: center;
gap: 16px;
}
.config-network-toggle > div {
display: grid;
min-width: 0;
gap: 7px;
}
.config-panel-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
min-width: 0;
}
.config-heading-title,
.config-heading-actions,
.config-key-identity,
.config-key-actions,
.config-dialog-heading > div {
display: flex;
align-items: center;
}
.config-heading-title {
gap: 9px;
min-width: 0;
}
.config-heading-title svg,
.config-dialog-heading svg {
flex: none;
color: var(--theme-6d6760);
}
.config-heading-title h2 {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.config-heading-actions {
gap: 8px;
flex: none;
}
.config-heading-actions .compact-button {
width: auto;
margin-top: 0;
}
.config-panel-heading .state-pill {
max-width: 108px;
flex: none;
overflow: hidden;
text-overflow: ellipsis;
}
.config-count {
display: inline-flex;
width: 34px;
height: 30px;
align-items: center;
justify-content: center;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-f4f1ea);
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-semibold);
}
.icon-button {
display: inline-flex;
width: 34px;
height: 34px;
flex: none;
align-items: center;
justify-content: center;
padding: 0;
border: 1px solid var(--theme-2d2a26);
border-radius: 6px;
background: var(--theme-2d2a26);
color: var(--theme-fffdf8);
}
.icon-button:hover:not(:disabled) {
background: var(--theme-433f39);
}
.icon-button.quiet {
border-color: var(--theme-d5d2cb);
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
}
.icon-button.quiet:hover:not(:disabled) {
background: var(--theme-f4f1ea);
}
.icon-button.danger {
border-color: var(--theme-dfb7b0);
background: var(--theme-fffdf8);
color: var(--theme-9f2d20);
}
.icon-button.danger:hover:not(:disabled) {
background: var(--theme-fff1ee);
}
.icon-button:disabled {
cursor: not-allowed;
opacity: 0.5;
}
.icon-button.copied,
.icon-button.quiet.copied {
border-color: var(--success-badge-border) !important;
background: var(--success-badge-bg) !important;
color: var(--success-color) !important;
}
.config-key-list {
min-height: 0;
overflow-x: hidden;
overflow-y: auto;
border-top: 1px solid var(--theme-e3e1db);
border-bottom: 1px solid var(--theme-e3e1db);
scrollbar-gutter: stable;
}
.config-key-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 112px;
align-items: center;
gap: 12px;
min-height: 66px;
padding: 0 4px 0 2px;
border-bottom: 1px solid var(--theme-eeece6);
}
.config-key-row:last-child {
border-bottom: 0;
}
.config-key-identity {
gap: 12px;
min-width: 0;
}
.config-key-index {
display: inline-flex;
width: 30px;
height: 28px;
flex: none;
align-items: center;
justify-content: center;
border-radius: 5px;
background: var(--theme-f0eee8);
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-semibold);
}
.config-key-details {
display: grid;
min-width: 0;
gap: 5px;
}
.config-key-label-line {
display: flex;
min-width: 0;
align-items: center;
gap: 7px;
}
.config-key-label-line strong {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.config-key-details code {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
letter-spacing: 0;
text-overflow: ellipsis;
white-space: nowrap;
}
.config-key-actions {
display: grid;
grid-template-columns: repeat(3, 32px);
justify-content: end;
gap: 8px;
}
.config-key-actions .icon-button {
width: 32px;
height: 32px;
}
.config-key-actions .icon-button.danger {
justify-self: center;
}
.config-key-row.skeleton span:first-child {
width: min(280px, 75%);
height: 14px;
border-radius: 4px;
background: var(--theme-eeece6);
}
.config-key-row.skeleton span:last-child {
width: 70px;
height: 28px;
justify-self: end;
border-radius: 5px;
background: var(--theme-f4f1ea);
}
.config-empty-list,
.config-unavailable {
display: grid;
height: 100%;
min-height: 0;
place-content: center;
justify-items: center;
gap: 9px;
padding: 24px;
color: var(--theme-7a746c);
text-align: center;
}
.config-empty-list strong,
.config-unavailable strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.config-unavailable > span {
width: min(360px, 100%);
overflow: hidden;
color: var(--theme-9f2d20);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.compact-button {
gap: 7px;
width: auto;
min-height: 34px;
margin-top: 3px;
padding: 0 12px;
font-size: var(--font-size-body);
}
.routing-segmented {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-self: center;
gap: 4px;
height: 40px;
padding: 4px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-f0eee8);
}
.routing-segmented button {
min-width: 0;
overflow: hidden;
padding: 0 8px;
border: 0;
border-radius: 5px;
background: transparent;
color: var(--theme-6d6760);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.routing-segmented button:hover:not(:disabled) {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
}
.routing-segmented button.active {
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
box-shadow: 0 1px 2px rgba(45, 42, 38, 0.12);
}
.routing-segmented button:disabled {
cursor: not-allowed;
opacity: 0.55;
}
.config-dialog-backdrop {
position: fixed;
inset: 0;
z-index: 70;
display: grid;
place-items: center;
padding: 20px;
background: rgba(45, 42, 38, 0.42);
backdrop-filter: blur(3px);
}
.config-dialog {
display: grid;
grid-template-rows: 40px 72px 72px 20px 40px;
gap: 16px;
width: min(460px, 100%);
height: 340px;
padding: 22px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
box-shadow: 0 18px 48px rgba(45, 42, 38, 0.24);
}
.config-dialog-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.config-dialog-heading > div {
gap: 9px;
min-width: 0;
}
.config-dialog-heading h2 {
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
text-overflow: ellipsis;
white-space: nowrap;
}
.config-dialog-field {
display: grid;
grid-template-rows: 20px 42px;
gap: 8px;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.config-secret-input {
display: grid;
grid-template-columns: minmax(0, 1fr) 34px;
align-items: center;
gap: 7px;
}
.config-secret-input input {
width: 100%;
height: 42px;
min-width: 0;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.config-dialog-text-input {
width: 100%;
height: 42px;
min-width: 0;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.config-dialog-text-input:disabled {
cursor: not-allowed;
background: var(--theme-f4f1ea);
}
.config-secret-input input[aria-invalid='true'] {
border-color: var(--theme-a83f32);
}
.config-secret-input input:disabled {
cursor: not-allowed;
background: var(--theme-f4f1ea);
}
.config-form-message {
min-width: 0;
overflow: hidden;
color: transparent;
font-size: var(--font-size-label);
line-height: var(--line-height-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.config-form-message.error {
color: var(--theme-9f2d20);
}
.config-dialog-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) 118px;
gap: 10px;
min-width: 0;
}
.config-dialog-actions.two-actions {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.config-dialog-actions.single-action {
grid-template-columns: 118px;
justify-content: end;
}
.config-dialog-actions button {
gap: 7px;
height: 40px;
}
.close-dialog-backdrop {
position: fixed;
inset: 0;
z-index: 110;
display: grid;
place-items: center;
padding: 24px;
background: rgba(45, 42, 38, 0.5);
backdrop-filter: blur(4px);
}
.close-dialog {
position: relative;
display: grid;
gap: 18px;
width: min(430px, 100%);
padding: 24px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 10px;
outline: none;
background: var(--theme-fffdf8);
box-shadow: 0 22px 60px rgba(45, 42, 38, 0.28);
}
.close-dialog-heading {
display: grid;
padding-right: 34px;
}
.close-dialog-dismiss {
position: absolute;
top: 12px;
right: 12px;
display: grid;
width: 32px;
height: 32px;
padding: 0;
place-items: center;
border: 1px solid transparent;
border-radius: 7px;
background: transparent;
color: var(--theme-7a746c);
}
.close-dialog-dismiss:hover:not(:disabled) {
border-color: var(--theme-d5d2cb);
background: var(--theme-f0ede6);
color: var(--theme-2d2a26);
}
.close-dialog-dismiss:focus-visible {
outline: 3px solid rgba(66, 99, 127, 0.3);
outline-offset: 2px;
}
.close-dialog-dismiss:disabled {
cursor: not-allowed;
opacity: 0.45;
}
.close-dialog-heading h2 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
line-height: var(--line-height-tight);
}
.close-dialog > p {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: var(--line-height-relaxed);
}
.close-dialog-error {
padding: 9px 11px;
border: 1px solid var(--theme-dfb7b0);
border-radius: 6px;
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.close-dialog-remember {
display: inline-flex;
align-items: center;
justify-self: start;
gap: 8px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
cursor: pointer;
}
.close-dialog-remember input {
width: 16px;
height: 16px;
margin: 0;
accent-color: var(--theme-4f825c);
}
.close-dialog-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.close-choice-button {
display: grid;
min-height: 58px;
gap: 3px;
padding: 8px 12px;
}
.close-choice-button span {
font-size: var(--font-size-body);
}
.close-choice-button:focus-visible {
outline: 3px solid rgba(66, 99, 127, 0.36);
outline-offset: 2px;
}
.config-software-panel {
display: grid;
gap: 18px;
}
.config-sensitive-words-panel {
display: grid;
width: min(780px, 100%);
gap: 16px;
margin: 0 auto;
}
.config-sensitive-words-grid {
display: grid;
gap: 12px;
}
.config-sensitive-words-card {
display: grid;
min-width: 0;
gap: 12px;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.config-sensitive-words-card-heading {
display: flex;
align-items: center;
gap: 8px;
}
.config-sensitive-words-card-heading h3 {
margin: 0;
color: var(--theme-39352f);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.config-sensitive-words-count {
min-width: 22px;
padding: 2px 6px;
border-radius: 10px;
background: var(--theme-f4f1ea);
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
text-align: center;
}
.config-sensitive-words-composer,
.config-sensitive-words-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 38px;
align-items: center;
gap: 8px;
}
.config-sensitive-words-composer .icon-button,
.config-sensitive-words-row .icon-button {
width: 38px;
height: 38px;
}
.config-sensitive-words-list {
display: grid;
gap: 6px;
}
.config-sensitive-words-empty {
margin: 0;
padding: 6px 0;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.config-software-panel > .config-panel-heading {
width: min(960px, 100%);
margin: 0 auto;
}
.config-software-content {
display: grid;
width: min(960px, 100%);
margin: 0 auto;
}
.config-software-setting-icon {
display: inline-flex;
flex: none;
align-items: center;
justify-content: center;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-777067);
}
.config-software-setting-copy > div {
display: grid;
min-width: 0;
gap: 4px;
}
.config-software-setting-copy strong {
color: var(--theme-39352f);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.config-software-settings-list {
overflow: hidden;
border: 1px solid var(--theme-d5d2cb);
border-radius: 10px;
background: var(--theme-fffdf8);
}
.config-software-setting-row {
display: flex;
min-height: 92px;
align-items: center;
justify-content: space-between;
gap: 24px;
padding: 17px 20px;
}
.config-software-setting-row + .config-software-setting-row {
border-top: 1px solid var(--theme-e3e1db);
}
.config-software-setting-copy {
display: flex;
min-width: 0;
align-items: center;
gap: 14px;
}
.config-software-setting-icon {
width: 40px;
height: 40px;
background: var(--theme-faf8f2);
}
.config-software-setting-copy small {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-regular);
line-height: var(--line-height-body);
}
.config-software-select {
display: grid;
width: 228px;
flex: none;
}
.config-software-select .config-network-input {
height: 42px;
}
@media (max-width: 520px) {
.close-dialog-backdrop {
padding: 16px;
}
.close-dialog {
padding: 20px;
}
.close-dialog-actions {
grid-template-columns: 1fr;
}
}
@media (max-width: 700px) {
.config-software-panel .config-panel-heading {
align-items: flex-start;
}
.config-software-setting-row {
min-height: 84px;
gap: 16px;
padding: 15px 16px;
}
.config-software-close-row {
align-items: flex-start;
flex-direction: column;
}
.config-software-select {
width: 100%;
padding-left: 54px;
}
}
@media (max-width: 480px) {
.config-diagnostics-toggle-grid,
.config-diagnostics-fields {
grid-template-columns: 1fr;
}
.config-diagnostics-footer {
align-items: stretch;
grid-template-columns: 1fr;
flex-direction: column;
}
.config-diagnostics-actions,
.config-diagnostics-actions button {
width: 100%;
}
.config-diagnostics-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.config-software-setting-row {
padding: 14px;
}
.config-software-setting-copy {
gap: 11px;
}
.config-software-setting-icon {
width: 36px;
height: 36px;
}
.config-software-select {
padding-left: 47px;
}
}
.config-delete-dialog {
grid-template-rows: 40px 52px 40px;
height: 202px;
}
.config-delete-dialog.has-warning {
grid-template-rows: 40px 52px auto 40px;
height: auto;
min-height: 254px;
}
.config-delete-key {
display: flex;
min-width: 0;
align-items: center;
overflow: hidden;
padding: 0 14px;
border-radius: 6px;
background: var(--theme-f4f1ea);
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
letter-spacing: 0;
text-overflow: ellipsis;
white-space: nowrap;
}
.config-delete-warning {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: start;
gap: 9px;
padding: 10px 12px;
border: 1px solid var(--theme-e2b6ae);
border-radius: 6px;
background: var(--theme-fff1ee);
color: var(--theme-8f3025);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.config-delete-warning svg {
margin-top: 1px;
}
.action-feedback.inline-notice {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: start;
gap: 10px;
width: 100%;
min-height: 38px;
padding: 8px 12px;
margin: 10px 0;
border: 1px solid var(--theme-b6d3bd);
border-radius: 7px;
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
box-sizing: border-box;
}
.action-feedback.inline-notice.error {
border-color: var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.action-feedback.inline-notice.info {
border-color: var(--theme-c9d6e2);
background: var(--theme-f1f6fa);
color: var(--theme-42637f);
}
.action-feedback.inline-notice .action-feedback-main {
display: flex;
align-items: flex-start;
gap: 8px;
min-width: 0;
}
.action-feedback.inline-notice .action-feedback-icon {
flex-shrink: 0;
margin-top: 3px;
}
.action-feedback.inline-notice .action-feedback-text {
min-width: 0;
max-height: min(160px, 25vh);
overflow-y: auto;
overflow-x: hidden;
font-size: var(--font-size-body);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
white-space: pre-wrap;
padding-right: 4px;
}
.action-feedback.inline-notice .action-feedback-text:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
}
.action-feedback.inline-notice .action-feedback-source {
font-weight: var(--font-weight-semibold);
margin-right: 4px;
}
.action-feedback.inline-notice .action-feedback-message {
min-width: 0;
}
.action-feedback.inline-notice .action-feedback-dismiss {
display: grid;
place-items: center;
width: 24px;
height: 24px;
padding: 0;
border: 1px solid transparent;
border-radius: 4px;
background: transparent;
color: inherit;
cursor: pointer;
flex-shrink: 0;
margin-top: 1px;
}
.action-feedback.inline-notice .action-feedback-dismiss:hover {
border-color: currentColor;
background: rgba(0, 0, 0, 0.04);
}
:root[data-theme='dark'] .action-feedback.inline-notice .action-feedback-dismiss:hover {
background: rgba(255, 255, 255, 0.08);
}
.management-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
min-width: 0;
min-height: 54px;
}
.management-header > div {
min-width: 0;
}
.management-header span {
display: block;
margin-bottom: 5px;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-regular);
text-overflow: ellipsis;
text-transform: uppercase;
white-space: nowrap;
}
.management-header h1 {
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-page-title);
line-height: var(--line-height-tight);
text-overflow: ellipsis;
white-space: nowrap;
}
.oauth-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
gap: 14px;
}
.oauth-browser-picker {
display: grid;
grid-template-columns: auto minmax(180px, 240px);
align-items: center;
justify-content: end;
gap: 5px 10px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.oauth-browser-picker select {
width: 100%;
height: 38px;
padding: 0 34px 0 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.oauth-browser-picker small {
grid-column: 1 / -1;
font-size: var(--font-size-caption);
font-weight: var(--font-weight-regular);
text-align: right;
}
.oauth-card {
display: grid;
grid-template-rows: auto auto auto;
gap: 12px;
min-height: 0;
align-content: start;
}
.provider-title-row {
display: grid;
grid-template-columns: 42px minmax(0, 1fr);
align-items: center;
gap: 12px;
min-width: 0;
}
.provider-title-row > div {
min-width: 0;
}
.provider-title-row h2,
.management-panel-heading h2 {
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
line-height: var(--line-height-tight);
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-title-row span:not(.state-pill),
.management-panel-heading span {
display: block;
margin-top: 4px;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
:root[data-theme='dark'] .devin-logo {
filter: invert(1);
}
.provider-logo {
width: 38px;
height: 38px;
flex: none;
object-fit: contain;
}
.oauth-card-body {
display: grid;
gap: 9px;
min-width: 0;
align-content: start;
}
.oauth-hint {
margin: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.oauth-auth-url-box {
display: grid;
gap: 8px;
min-width: 0;
padding: 12px;
border: 1px solid var(--theme-e2ddd3);
border-radius: 8px;
background: var(--theme-f8f5ef);
}
.oauth-auth-url-label {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.oauth-auth-url-value {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
word-break: break-all;
}
.oauth-auth-url-actions,
.oauth-callback-block {
display: grid;
gap: 10px;
min-width: 0;
}
.oauth-auth-url-actions {
grid-template-columns: repeat(2, minmax(0, max-content));
}
.oauth-inline-status {
min-width: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.oauth-inline-status.success {
color: var(--theme-2f6b3a);
}
.oauth-inline-status.error {
color: var(--theme-a33b2b);
}
.spin {
animation: spin 0.9s linear infinite;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.oauth-callback-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 96px;
align-items: center;
gap: 10px;
min-width: 0;
}
.oauth-callback-row input,
.management-toolbar input,
.management-dialog input,
.auth-filter-grid input,
.auth-filter-grid select {
width: 100%;
min-width: 0;
height: 40px;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.oauth-callback-row input:disabled {
cursor: not-allowed;
background: var(--theme-f4f1ea);
}
.management-dialog textarea {
width: 100%;
min-width: 0;
min-height: 78px;
resize: vertical;
padding: 9px 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
font: inherit;
line-height: var(--line-height-body);
}
.management-dialog label.multiline-field {
grid-template-rows: 18px auto;
}
.oauth-callback-row > span {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.management-card-actions {
margin: 0;
}
.model-config-card {
display: grid;
gap: 10px;
min-width: 0;
padding: 12px;
border: 1px solid var(--theme-e2ddd3);
border-radius: 7px;
background: var(--theme-faf9f5);
}
.model-config-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
}
.model-config-heading > div {
display: grid;
gap: 3px;
min-width: 0;
}
.model-config-heading span {
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.model-config-heading small {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-regular);
}
.model-config-summary {
display: grid;
gap: 3px;
min-width: 0;
min-height: 48px;
align-content: center;
padding: 8px 10px;
border: 1px dashed var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fffdf8);
}
.model-config-summary.has-models {
border-style: solid;
border-color: var(--theme-c9d8ca);
background: var(--theme-f2f7f2);
}
.model-config-summary strong,
.model-config-summary span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.model-config-summary strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
}
.model-config-summary span {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.model-config-entries {
display: grid;
gap: 6px;
}
.model-config-entry {
display: grid;
grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) auto;
align-items: center;
gap: 6px;
}
.model-config-entry input {
width: 100%;
min-width: 0;
}
.model-config-entry .icon-button {
width: 32px;
height: 32px;
}
.model-config-add {
justify-self: start;
}
.model-picker-error {
color: var(--theme-9f2d20);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-regular);
}
.model-discovery-backdrop {
position: fixed;
inset: 0;
z-index: 90;
display: grid;
place-items: center;
padding: 24px;
background: rgba(45, 42, 38, 0.54);
backdrop-filter: blur(4px);
}
.model-discovery-dialog {
display: grid;
grid-template-rows: auto 38px auto minmax(190px, 1fr) 38px;
gap: 10px;
width: min(680px, 100%);
height: min(540px, calc(100vh - 32px));
min-height: 400px;
padding: 16px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 9px;
background: var(--theme-fffdf8);
box-shadow: 0 24px 64px rgba(45, 42, 38, 0.3);
}
.model-discovery-header,
.model-discovery-toolbar,
.model-discovery-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
}
.model-discovery-header > div {
display: flex;
align-items: baseline;
gap: 8px;
min-width: 0;
}
.model-discovery-header h2 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
}
.model-discovery-header span,
.model-discovery-toolbar > span {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
white-space: nowrap;
}
.model-discovery-search {
display: grid;
grid-template-columns: 18px minmax(0, 1fr) auto;
align-items: center;
gap: 8px;
min-width: 0;
padding: 0 8px 0 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-ffffff);
color: var(--theme-8a847c);
}
.model-discovery-search input {
width: 100%;
min-width: 0;
height: 38px;
padding: 0;
border: 0;
outline: 0;
background: transparent;
color: var(--theme-2d2a26);
}
.model-discovery-search .compact-button {
min-height: 30px;
}
.model-discovery-toolbar > div {
display: flex;
flex-wrap: wrap;
gap: 7px;
justify-content: flex-end;
}
.model-discovery-content {
min-height: 0;
overflow: hidden;
border: 1px solid var(--theme-e2ddd3);
border-radius: 7px;
background: var(--theme-ffffff);
}
.model-discovery-list {
height: 100%;
overflow: auto;
}
.model-discovery-results {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
height: 100%;
min-height: 0;
}
.model-discovery-inline-error {
display: grid;
gap: 2px;
padding: 8px 11px;
border-bottom: 1px solid var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
font-size: var(--font-size-meta);
}
.model-discovery-inline-error span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.model-discovery-row {
display: grid;
grid-template-columns: 18px minmax(0, 1fr) 18px;
align-items: center;
gap: 10px;
min-height: 44px;
padding: 6px 11px;
border-bottom: 1px solid var(--theme-eeece6);
color: var(--theme-5f5a53);
cursor: pointer;
}
.model-discovery-row:last-child {
border-bottom: 0;
}
.model-discovery-row:hover,
.model-discovery-row.selected {
background: var(--theme-f4f2ec);
}
.model-discovery-row input {
width: 16px;
height: 16px;
margin: 0;
}
.model-discovery-row > span {
display: grid;
gap: 2px;
min-width: 0;
}
.model-discovery-row strong,
.model-discovery-row small {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.model-discovery-row strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.model-discovery-row small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-regular);
}
.model-discovery-row > svg {
color: var(--theme-2f6b3a);
}
.model-discovery-message {
display: grid;
height: 100%;
min-height: 190px;
place-content: center;
justify-items: center;
gap: 8px;
padding: 20px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-align: center;
}
.model-discovery-message strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
}
.model-discovery-message.error,
.model-discovery-message.error strong {
color: var(--theme-9f2d20);
}
.model-discovery-actions {
justify-content: flex-end;
}
.model-discovery-actions button {
min-width: 112px;
}
.model-discovery-dialog.model-transfer-dialog {
display: flex;
flex-direction: column;
width: min(960px, 100%);
height: min(640px, calc(100dvh - 48px));
min-height: 0;
}
.model-transfer-summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.model-transfer-summary > button {
width: auto;
flex: 0 0 auto;
}
.model-transfer-panels {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
flex: 1;
min-height: 0;
}
.model-transfer-panel {
display: flex;
flex-direction: column;
min-width: 0;
min-height: 0;
overflow: hidden;
border: 1px solid var(--theme-e2ddd3);
border-radius: 8px;
background: var(--theme-ffffff);
}
.model-transfer-panel-heading {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
padding: 10px;
}
.model-transfer-panel-heading h3 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.model-transfer-panel-heading button {
width: auto;
flex: 0 0 auto;
margin-left: auto;
}
.model-transfer-count {
border-radius: 5px;
padding: 2px 6px;
background: var(--theme-f4f2ec);
color: var(--theme-6d6760);
font-size: var(--font-size-meta);
font-variant-numeric: tabular-nums;
}
.model-transfer-search {
display: flex;
align-items: center;
gap: 8px;
margin: 0 10px 10px;
padding: 0 8px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
color: var(--theme-8a847c);
}
.model-transfer-search:focus-within {
outline: 2px solid var(--theme-9ca9df);
outline-offset: 1px;
}
.model-transfer-search input {
width: 100%;
min-width: 0;
height: 34px;
padding: 0;
border: 0;
outline: 0;
background: transparent;
color: var(--theme-2d2a26);
}
.model-transfer-list {
flex: 1;
min-height: 0;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
border-top: 1px solid var(--theme-eeece6);
}
.model-transfer-row {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
min-height: 44px;
padding: 9px 12px;
border: 0;
border-bottom: 1px solid var(--theme-eeece6);
background: transparent;
color: var(--theme-6d6760);
text-align: left;
cursor: pointer;
}
.model-transfer-row:hover:not(:disabled) {
background: var(--theme-f4f2ec);
}
.model-transfer-row:focus-visible {
outline: 2px solid var(--theme-9ca9df);
outline-offset: -2px;
}
.model-transfer-row > span {
display: grid;
flex: 1;
min-width: 0;
gap: 2px;
}
.model-transfer-row strong,
.model-transfer-row small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.model-transfer-row strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.model-transfer-row small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.model-transfer-empty {
display: grid;
place-content: center;
height: 100%;
padding: 16px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-align: center;
}
.model-transfer-actions {
flex-wrap: wrap;
}
.model-transfer-actions > span {
margin-right: auto;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
@media (max-width: 600px) {
.model-discovery-dialog.model-transfer-dialog {
height: calc(100dvh - 24px);
padding: 12px;
}
.model-transfer-panels {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.model-transfer-actions > span {
width: 100%;
}
}
.model-discovery-dialog.auth-model-dialog {
grid-template-rows: auto 38px auto minmax(0, 1fr) auto auto;
height: min(720px, calc(100vh - 32px));
min-height: 0;
}
.auth-model-dialog .model-discovery-header {
align-items: flex-start;
}
.auth-model-dialog .model-discovery-header > div {
display: grid;
gap: 5px;
flex: 1;
}
.auth-model-dialog .model-discovery-header span {
white-space: normal;
overflow-wrap: anywhere;
}
.auth-model-dialog .auth-model-target {
color: var(--theme-2d2a26);
font-weight: var(--font-weight-semibold);
}
.auth-model-provider {
display: flex;
align-items: center;
gap: 8px;
}
.auth-model-provider select {
min-width: 0;
max-width: 100%;
padding: 5px 8px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 5px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.auth-model-rules {
display: grid;
gap: 5px;
min-width: 0;
font-size: var(--font-size-meta);
}
.auth-model-rules textarea {
width: 100%;
min-height: 64px;
max-height: 150px;
resize: vertical;
padding: 8px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 5px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
font: inherit;
}
.auth-model-rules small {
color: var(--theme-7a746c);
line-height: 1.5;
}
.auth-model-dialog .model-discovery-row.rule-blocked {
background: var(--theme-f4f2ec);
cursor: not-allowed;
}
.model-discovery-dialog.auth-model-view-dialog {
grid-template-rows: auto 38px minmax(0, 1fr) auto;
height: min(620px, calc(100vh - 32px));
}
.auth-model-view-row {
grid-template-columns: minmax(0, 1fr) 18px;
width: 100%;
text-align: left;
border: 0;
border-radius: 0;
background: transparent;
color: inherit;
}
@media (max-height: 650px) {
.model-discovery-dialog.auth-model-dialog {
height: auto;
max-height: calc(100vh - 32px);
overflow: auto;
grid-template-rows: auto 38px auto minmax(140px, 1fr) auto auto;
}
.model-discovery-dialog.auth-model-view-dialog {
grid-template-rows: auto 38px minmax(140px, 1fr) auto;
}
}
.provider-health-dialog {
width: min(780px, 100%);
height: min(660px, calc(100vh - 32px));
}
.provider-health-overview {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 5px 14px;
min-width: 0;
padding: 9px 11px;
border: 1px solid var(--theme-dfbf91);
border-radius: 7px;
background: var(--theme-fff7e9);
}
.provider-health-overview p,
.provider-health-overview span,
.provider-health-overview small {
margin: 0;
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.provider-health-overview p {
min-width: 0;
color: var(--theme-8b5b21);
}
.provider-health-overview span {
color: var(--theme-5f5a53);
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-semibold);
white-space: nowrap;
}
.provider-health-overview small {
grid-column: 1 / -1;
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-health-overview small.error {
color: var(--theme-9f2d20);
}
.provider-health-model-list {
min-height: 0;
border: 1px solid var(--theme-e2ddd3);
border-radius: 7px;
background: var(--theme-ffffff);
}
.provider-health-model-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto 88px;
align-items: center;
gap: 10px;
min-height: 54px;
padding: 7px 10px;
border-bottom: 1px solid var(--theme-eeece6);
}
.provider-health-model-row:last-child {
border-bottom: 0;
}
.provider-health-model-row.failed {
background: var(--theme-fff1ee);
}
.provider-health-model-name {
display: grid;
gap: 3px;
min-width: 0;
}
.provider-health-model-name strong,
.provider-health-model-name small {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-health-model-name strong {
color: var(--theme-2d2a26);
font-family: var(--font-family-mono);
font-size: var(--font-size-label);
}
.provider-health-model-name small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.provider-health-model-name small.error {
color: var(--theme-9f2d20);
}
.provider-health-model-row .provider-health-pill {
max-width: 180px;
overflow: hidden;
text-overflow: ellipsis;
}
.provider-health-single-button {
width: 88px;
min-width: 88px;
margin-top: 0;
}
.provider-health-actions .primary-button {
min-width: 150px;
}
.management-card-actions button,
.management-heading-actions button {
gap: 7px;
}
.provider-workbench {
display: grid;
grid-template-columns: 270px minmax(0, 1fr);
align-items: start;
gap: 14px;
}
.provider-category-panel {
display: grid;
gap: 8px;
height: 520px;
overflow: hidden;
}
.provider-category-panel button {
display: grid;
grid-template-columns: 30px minmax(0, 1fr) minmax(24px, auto);
align-items: center;
gap: 8px;
height: 48px;
min-width: 0;
padding: 0 10px;
border: 1px solid transparent;
border-radius: 10px;
background: transparent;
color: var(--text-primary);
}
.provider-category-panel button:hover {
background: var(--bg-tertiary);
}
.provider-category-panel button.active {
border-color: transparent;
background: var(--bg-tertiary);
}
.provider-category-panel .provider-logo {
width: 30px;
height: 30px;
}
.provider-category-panel span,
.provider-category-panel strong {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-category-panel span {
line-height: var(--line-height-tight);
overflow-wrap: anywhere;
text-align: left;
font-weight: var(--font-weight-semibold);
text-overflow: clip;
white-space: normal;
}
.provider-category-panel strong {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-align: right;
}
.provider-resource-panel {
display: grid;
grid-template-rows: 52px 42px minmax(0, 1fr);
gap: 14px;
height: 520px;
}
.management-panel-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
min-width: 0;
}
.management-panel-heading > div {
min-width: 0;
}
.management-heading-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
flex: none;
}
.management-toolbar {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: center;
gap: 9px;
min-width: 0;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-ffffff);
}
.management-toolbar input {
height: 38px;
padding: 0;
border: 0;
}
.resource-table {
min-height: 0;
overflow: auto;
border-top: 1px solid var(--theme-e3e1db);
border-bottom: 1px solid var(--theme-e3e1db);
scrollbar-gutter: stable;
}
.resource-row {
display: grid;
grid-template-columns: minmax(150px, 1fr) minmax(108px, 0.8fr) minmax(170px, 1fr) 48px 74px;
align-items: center;
gap: 12px;
min-height: 64px;
padding: 0 4px 0 0;
border-bottom: 1px solid var(--theme-eeece6);
}
.resource-row:last-child {
border-bottom: 0;
}
.resource-main {
display: grid;
gap: 4px;
min-width: 0;
}
.resource-main strong,
.resource-main span,
.resource-row code,
.resource-models,
.resource-priority {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.resource-main strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.resource-main span,
.resource-models,
.resource-priority {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.resource-row code {
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.resource-priority {
text-align: right;
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-semibold);
}
.resource-row .state-pill {
width: 70px;
}
.management-empty {
display: grid;
height: 100%;
min-height: 220px;
place-content: center;
justify-items: center;
gap: 10px;
color: var(--theme-7a746c);
}
.management-empty strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.management-dialog {
display: grid;
grid-template-rows: 40px repeat(3, 64px) 40px;
gap: 14px;
width: min(460px, 100%);
height: 358px;
padding: 22px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
box-shadow: 0 18px 48px rgba(45, 42, 38, 0.24);
}
.management-dialog label,
.auth-filter-grid label {
display: grid;
grid-template-rows: 18px 40px;
gap: 6px;
min-width: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.auth-files-panel {
display: grid;
grid-template-rows: 42px 64px minmax(0, 1fr);
gap: 14px;
height: 610px;
}
.auth-filter-grid {
display: grid;
grid-template-columns: 160px 150px minmax(0, 1fr);
gap: 12px;
min-width: 0;
}
.auth-file-list {
min-height: 0;
overflow: auto;
border-top: 1px solid var(--theme-e3e1db);
border-bottom: 1px solid var(--theme-e3e1db);
scrollbar-gutter: stable;
}
.auth-file-row {
display: grid;
grid-template-columns: 42px minmax(150px, 1.2fr) minmax(130px, 1fr) 48px 74px 34px;
align-items: center;
gap: 12px;
min-height: 68px;
padding: 0 4px 0 0;
border-bottom: 1px solid var(--theme-eeece6);
}
.auth-file-row:last-child {
border-bottom: 0;
}
.auth-file-row > span:not(.state-pill) {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.muted-summary {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
white-space: nowrap;
}
.management-alert {
display: flex;
align-items: center;
min-height: 38px;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
}
.management-alert.error {
border-color: var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.management-alert.success {
border-color: var(--theme-b8d1bb);
background: var(--theme-f1f8f1);
color: var(--theme-2f6b3f);
}
.real-provider-workbench {
grid-template-columns: 240px minmax(0, 1fr);
}
.real-provider-workbench .provider-category-panel {
height: auto;
min-height: 0;
}
.real-provider-workbench .provider-resource-panel {
display: block;
height: auto;
min-height: 500px;
}
.compact-toolbar {
width: min(320px, 42%);
min-height: 38px;
}
.real-provider-list {
margin-top: 16px;
border-top: 1px solid var(--theme-e3e1db);
}
.real-provider-row {
display: grid;
grid-template-columns: 32px minmax(280px, 1.6fr) minmax(120px, 0.5fr) max-content;
align-items: start;
gap: 16px;
min-height: 88px;
padding: 14px 0;
border-bottom: 1px solid var(--theme-eeece6);
transition: background 180ms ease, box-shadow 180ms ease, opacity 160ms ease;
}
.real-provider-row.dragging {
border-radius: 10px;
background: var(--theme-faf9f5);
box-shadow: 0 10px 28px rgb(45 42 38 / 14%);
opacity: 0.96;
}
.real-provider-row.drag-over {
background: color-mix(in srgb, var(--theme-f4f1ea) 65%, transparent);
}
.provider-drag-handle {
margin-top: -2px;
cursor: grab;
color: var(--theme-9b958c);
touch-action: none;
}
.provider-drag-handle:hover {
color: var(--theme-2d2a26);
}
.provider-drag-handle:active {
cursor: grabbing;
}
@media (prefers-reduced-motion: reduce) {
.real-provider-row {
transition: none;
}
}
.provider-row-main,
.provider-row-title,
.provider-row-meta,
.provider-row-actions,
.auth-file-main,
.auth-file-title,
.auth-file-meta,
.auth-file-actions {
display: flex;
align-items: center;
min-width: 0;
}
.provider-row-main {
display: grid;
gap: 5px;
}
.provider-row-main > span,
.provider-row-main > code,
.provider-row-meta span {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-row-main > code {
color: var(--theme-2d2a26);
}
.provider-row-main > .provider-row-url,
.provider-row-main > .provider-row-models {
overflow: visible;
line-height: var(--line-height-body);
overflow-wrap: anywhere;
text-overflow: clip;
white-space: normal;
}
.provider-row-title {
align-items: flex-start;
gap: 8px;
}
.provider-row-title strong,
.auth-file-title strong {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
text-overflow: ellipsis;
white-space: nowrap;
}
.provider-row-title strong {
line-height: var(--line-height-body);
overflow-wrap: anywhere;
text-overflow: clip;
white-space: normal;
}
.provider-row-title .state-pill {
flex: none;
}
.provider-health-pill {
min-height: 24px;
padding: 0 8px;
font-size: var(--font-size-meta);
}
.provider-health-pill.checking {
border-color: var(--theme-d5d2cb);
background: var(--theme-f4f1ea);
color: var(--theme-5f5a53);
}
.provider-row-meta {
align-items: flex-end;
flex-direction: column;
justify-content: flex-end;
gap: 6px;
padding-top: 2px;
}
.provider-row-actions,
.auth-file-actions {
justify-content: flex-end;
gap: 7px;
}
.provider-row-actions .provider-health-button {
min-width: max-content;
width: auto;
flex: 0 0 auto;
min-height: 30px;
overflow: visible;
padding: 0 10px;
font-size: var(--font-size-label);
text-overflow: clip;
white-space: nowrap;
}
.provider-enabled-control {
display: flex;
min-width: 108px;
align-items: center;
justify-content: flex-end;
gap: 8px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
white-space: nowrap;
}
.provider-enabled-control .switch-control {
display: inline-block;
flex: none;
}
.management-loading {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 240px;
color: var(--theme-7a746c);
}
.real-provider-workbench .management-empty {
min-height: 360px;
}
.real-provider-workbench + .config-dialog-backdrop .management-dialog {
grid-template-rows: auto repeat(5, minmax(52px, auto)) auto;
height: auto;
max-height: min(720px, calc(100vh - 48px));
overflow: auto;
}
.real-provider-workbench + .config-dialog-backdrop .api-provider-dialog {
grid-template-rows: auto;
grid-auto-rows: auto;
width: min(560px, 100%);
gap: 10px;
padding: 16px 18px;
scrollbar-gutter: stable;
}
.api-provider-dialog .config-dialog-heading {
position: sticky;
z-index: 3;
top: -16px;
margin: -16px -18px 0;
padding: 14px 18px 10px;
border-bottom: 1px solid var(--theme-e8e4dc);
background: var(--theme-fffdf8);
}
.api-provider-dialog .config-dialog-actions {
position: sticky;
z-index: 3;
bottom: -16px;
margin: 0 -18px -16px;
padding: 10px 18px 16px;
border-top: 1px solid var(--theme-e8e4dc);
background: var(--theme-fffdf8);
}
.api-provider-dialog label {
grid-template-rows: 16px 36px;
gap: 4px;
}
.api-provider-dialog input {
height: 36px;
}
.api-provider-dialog .api-provider-proxy-clear {
justify-self: start;
}
.api-provider-dialog textarea {
min-height: 64px;
padding-block: 7px;
}
.api-provider-dialog .model-config-card,
.api-provider-dialog .thinking-level-config {
gap: 7px;
padding: 9px 10px;
}
.api-provider-dialog .model-config-summary {
min-height: 42px;
}
.thinking-level-config {
display: grid;
gap: 9px;
padding: 11px 12px;
border: 1px solid var(--theme-e2ddd3);
border-radius: 7px;
background: var(--theme-faf9f5);
}
.thinking-level-heading {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 10px;
}
.thinking-level-heading strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
}
.thinking-level-heading span {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.thinking-level-entry {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 7px;
}
.thinking-level-entry input {
width: 100%;
min-width: 0;
height: 36px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
}
.thinking-level-tags {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
}
.thinking-level-tags > span {
display: inline-flex;
min-height: 28px;
align-items: center;
gap: 5px;
padding: 0 7px 0 9px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 999px;
background: var(--theme-fffdf8);
color: var(--theme-6d6760);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
}
.thinking-level-tags.readonly > span {
padding-right: 9px;
border-color: var(--theme-9ca9df);
background: var(--theme-eef1ff);
color: var(--theme-344ca1);
}
.thinking-level-tags button {
display: inline-flex;
width: 20px;
height: 20px;
align-items: center;
justify-content: center;
padding: 0;
border: 0;
border-radius: 999px;
background: transparent;
color: var(--theme-8a847c);
}
.thinking-level-tags button:hover {
background: var(--theme-eeece6);
color: var(--theme-2d2a26);
}
.thinking-level-empty {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.provider-advanced-settings {
border: 1px solid var(--theme-e2ddd3);
border-radius: 7px;
background: var(--theme-faf9f5);
}
.provider-advanced-settings > summary {
padding: 11px 12px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
cursor: pointer;
}
.provider-advanced-fields {
display: grid;
gap: 14px;
padding: 4px 12px 14px;
border-top: 1px solid var(--theme-e8e4dc);
}
.provider-advanced-toggle {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 48px;
}
.provider-advanced-toggle > div {
display: grid;
gap: 3px;
min-width: 0;
}
.provider-advanced-toggle strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
}
.provider-advanced-toggle > div > span {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.provider-advanced-toggle .switch-control {
display: inline-block;
flex: 0 0 auto;
}
.provider-cloak-settings {
display: grid;
gap: 14px;
padding: 12px;
border: 1px dashed var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fffdf8);
}
.provider-cloak-settings select {
width: 100%;
min-width: 0;
height: 40px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
}
.thinking-alias-page {
grid-template-rows: auto;
gap: 12px;
}
.thinking-alias-feedback {
min-height: 0;
overflow: hidden;
}
.thinking-alias-feedback:empty {
display: none;
}
.thinking-alias-feedback .management-alert {
min-height: 42px;
}
.thinking-alias-workbench {
display: grid;
grid-template-columns: minmax(min(480px, 100%), 1.4fr) minmax(min(320px, 100%), 0.6fr);
gap: 16px;
align-items: stretch;
}
.thinking-alias-editor-panel,
.thinking-alias-list-panel {
height: clamp(600px, calc(100vh - 250px), 720px);
min-height: 600px;
}
.thinking-alias-editor-panel {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
gap: 12px;
padding: 16px;
overflow: visible;
}
.management-dialog.thinking-alias-dialog {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
width: min(640px, calc(100vw - 32px));
height: auto;
min-height: 0;
max-height: min(780px, calc(100vh - 40px));
padding: 0;
gap: 0;
overflow: hidden;
border-radius: 12px;
}
.thinking-alias-dialog .thinking-alias-panel-heading {
padding: 18px 20px 16px;
}
.thinking-alias-dialog .thinking-alias-panel-heading > div {
flex: 1;
}
.thinking-alias-dialog .thinking-alias-panel-heading > .icon-button {
margin-left: auto;
}
.thinking-alias-dialog-body {
display: grid;
grid-auto-rows: max-content;
align-content: start;
gap: 18px;
min-height: 0;
padding: 18px 20px;
overflow-y: auto;
scrollbar-gutter: stable;
}
.thinking-alias-dialog .thinking-alias-field > label {
display: block;
height: auto;
grid-template-rows: none;
}
.thinking-alias-dialog .thinking-field-heading > strong {
flex: none;
}
.thinking-alias-dialog .thinking-field-heading {
display: grid;
justify-content: stretch;
gap: 3px;
}
.thinking-alias-dialog .thinking-field-heading > span {
min-width: 0;
line-height: var(--line-height-body);
text-overflow: initial;
white-space: normal;
}
.thinking-alias-dialog .thinking-alias-field > .thinking-fast-option {
display: flex;
grid-template-rows: none;
}
.thinking-alias-dialog-actions {
display: flex;
gap: 10px;
padding: 14px 20px 18px;
border-top: 1px solid var(--theme-e3e1db);
background: var(--theme-fffdf8);
}
.thinking-alias-dialog-actions > button {
width: auto;
flex: 1;
}
.thinking-alias-dialog-actions .thinking-alias-create {
margin-top: 0;
}
.thinking-alias-section-divider {
height: 1px;
flex: none;
margin: 2px 0;
background: var(--theme-e3e1db);
}
.thinking-alias-panel-heading {
display: flex;
align-items: center;
gap: 11px;
padding-bottom: 11px;
border-bottom: 1px solid var(--theme-e3e1db);
}
.thinking-alias-panel-heading > span {
display: grid;
width: 38px;
height: 38px;
flex: none;
place-items: center;
border: 1px solid var(--theme-d8d1eb);
border-radius: 8px;
background: var(--theme-f5f1ff);
color: var(--theme-654f91);
}
.thinking-alias-panel-heading > div {
display: grid;
min-width: 0;
gap: 3px;
}
.thinking-alias-panel-heading h2,
.thinking-alias-list-heading h2 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
}
.thinking-alias-panel-heading p,
.thinking-alias-list-heading span {
margin: 0;
color: var(--theme-8a847c);
font-size: var(--font-size-section);
line-height: var(--line-height-body);
}
.thinking-alias-field {
display: grid;
min-height: 0;
gap: 6px;
}
.thinking-model-field {
position: relative;
z-index: 10;
}
.thinking-alias-field > label {
color: var(--theme-6f6961);
font-size: var(--font-size-section);
font-weight: var(--font-weight-semibold);
}
.thinking-field-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.thinking-field-heading strong {
color: var(--theme-6f6961);
font-size: var(--font-size-section);
}
.thinking-field-heading span {
overflow: hidden;
color: var(--theme-918a81);
font-size: var(--font-size-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-model-picker {
position: relative;
min-width: 0;
}
.thinking-model-search {
display: flex;
align-items: center;
gap: 7px;
height: 36px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-8a847c);
}
.thinking-model-search input {
flex: 1;
min-width: 0;
height: 34px;
padding: 0;
border: 0;
outline: 0;
background: transparent;
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.thinking-source-kind {
max-width: 105px;
overflow: hidden;
padding: 3px 6px;
border: 1px solid var(--theme-d8d1eb);
border-radius: 999px;
background: var(--theme-f5f1ff);
color: var(--theme-654f91);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-model-list {
position: absolute;
z-index: 40;
top: calc(100% + 6px);
right: 0;
left: 0;
max-height: 270px;
overflow-y: auto;
border: 1px solid var(--theme-e5e1d9);
border-radius: 7px;
background: var(--theme-fff);
box-shadow: 0 12px 28px rgba(45, 42, 38, 0.16);
}
.thinking-model-list > button {
display: grid;
grid-template-columns: minmax(0, 1fr) 16px;
align-items: center;
gap: 8px;
width: 100%;
min-height: 43px;
padding: 7px 10px;
border: 0;
border-bottom: 1px solid var(--theme-eeeae2);
background: transparent;
color: var(--theme-2d2a26);
text-align: left;
}
.thinking-model-list > button:last-child {
border-bottom: 0;
}
.thinking-model-list > button:hover,
.thinking-model-list > button.active {
background: var(--theme-f2efe8);
}
.thinking-model-list > button.selected {
background: var(--theme-f7f3ff);
}
.thinking-model-option-copy {
display: grid;
min-width: 0;
gap: 5px;
}
.thinking-model-option-copy > span:first-child {
display: flex;
min-width: 0;
align-items: baseline;
gap: 7px;
}
.thinking-model-option-copy strong,
.thinking-model-option-copy small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-model-option-copy strong {
font-size: var(--font-size-section);
}
.thinking-model-option-copy > span:first-child small {
color: var(--theme-8a847c);
font-size: var(--font-size-body);
}
.thinking-model-source {
display: flex;
min-width: 0;
align-items: center;
gap: 5px;
}
.thinking-model-source em {
flex: none;
padding: 2px 5px;
border-radius: 4px;
background: var(--theme-eeece6);
color: var(--theme-5f5a53);
font-size: var(--font-size-meta);
font-style: normal;
font-weight: var(--font-weight-semibold);
}
.thinking-model-source small {
color: var(--theme-8a847c);
font-size: var(--font-size-body);
}
.thinking-model-list > button > svg {
color: var(--theme-2f6b3f);
}
.thinking-model-empty {
display: flex;
min-height: 82px;
align-items: center;
justify-content: center;
gap: 7px;
color: var(--theme-8a847c);
font-size: var(--font-size-body);
}
.thinking-model-selection {
display: flex;
min-width: 0;
align-items: center;
gap: 6px;
color: var(--theme-777067);
font-size: var(--font-size-body);
}
.thinking-model-selection > span {
flex: none;
padding: 2px 5px;
border-radius: 4px;
background: var(--theme-eeece6);
color: var(--theme-5f5a53);
font-weight: var(--font-weight-semibold);
}
.thinking-model-selection strong {
min-width: 0;
overflow: hidden;
font-weight: var(--font-weight-medium);
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-model-hint {
color: var(--theme-918a81);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.thinking-effort-options {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 4px;
}
.thinking-effort-options button {
height: 34px;
padding: 0 4px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-7a746c);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.thinking-effort-options button.active {
border-color: var(--theme-8069ad);
background: var(--theme-f1ecfb);
color: var(--theme-554075);
}
.thinking-effort-options button:disabled {
cursor: not-allowed;
opacity: 0.45;
}
.thinking-fast-option {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
width: 100%;
min-height: 48px;
padding: 8px 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-fff);
color: var(--theme-7a746c);
cursor: pointer;
transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.thinking-fast-option:hover {
border-color: var(--theme-d7a447);
}
.thinking-fast-option.active {
border-color: var(--theme-d7a447);
background: var(--theme-fff8eb);
color: var(--theme-805a24);
}
.thinking-fast-option-copy {
display: grid;
min-width: 0;
gap: 2px;
}
.thinking-fast-option-copy > span {
display: inline-flex;
align-items: center;
gap: 5px;
font-size: var(--font-size-section);
font-weight: var(--font-weight-semibold);
}
.thinking-fast-option-copy small {
color: var(--theme-9a938a);
font-size: var(--font-size-label);
}
.thinking-fast-option.active .thinking-fast-option-copy small {
color: var(--theme-805a24);
}
.thinking-fast-option:has(input:disabled) {
cursor: not-allowed;
opacity: 0.55;
}
.thinking-fast-switch {
width: 42px;
height: 23px;
}
.thinking-fast-switch input:checked + .switch-track {
border-color: var(--theme-d7a447);
background: var(--theme-d7a447);
}
.thinking-alias-input {
width: 100%;
height: 36px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
outline: 0;
background: var(--theme-fff);
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.thinking-alias-input:focus,
.thinking-model-search:focus-within {
border-color: var(--theme-9d8abd);
box-shadow: 0 0 0 2px rgba(128, 105, 173, 0.12);
}
.thinking-alias-preview {
display: grid;
grid-template-columns: 22px minmax(0, 1fr);
align-items: center;
gap: 9px;
min-height: 56px;
padding: 9px 11px;
border: 1px solid var(--theme-d8d1eb);
border-radius: 7px;
background: var(--theme-f8f5ff);
color: var(--theme-654f91);
}
.thinking-alias-preview > div {
display: grid;
min-width: 0;
gap: 4px;
}
.thinking-alias-preview span {
display: flex;
min-width: 0;
align-items: center;
gap: 5px;
overflow: hidden;
color: var(--theme-3f3550);
font-size: var(--font-size-section);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-alias-preview code {
color: var(--theme-8069ad);
font-size: var(--font-size-body);
}
.thinking-alias-create {
width: 100%;
margin-top: auto;
}
.thinking-alias-list-panel {
display: grid;
grid-template-rows: minmax(0, 1fr);
padding: 16px;
}
.thinking-alias-list-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding-bottom: 11px;
border-bottom: 1px solid var(--theme-e3e1db);
}
.thinking-alias-list-heading > div {
display: grid;
min-width: 0;
gap: 3px;
}
.thinking-alias-list-heading > strong {
display: grid;
min-width: 32px;
height: 26px;
place-items: center;
border-radius: 999px;
background: var(--theme-eeece6);
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
}
.thinking-alias-list {
min-height: 0;
overflow-y: auto;
}
.thinking-alias-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto 34px;
align-items: center;
gap: 10px;
min-height: 66px;
padding: 9px 7px 9px 10px;
border-bottom: 1px solid var(--theme-eeeae2);
}
.thinking-alias-row:last-child {
border-bottom: 0;
}
.thinking-alias-route {
display: grid;
grid-template-columns: minmax(80px, 1fr) 16px minmax(100px, 1fr);
align-items: center;
gap: 7px;
min-width: 0;
}
.thinking-alias-route span,
.thinking-alias-route strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-alias-route-source > span {
color: var(--theme-7a746c);
font-size: var(--font-size-section);
}
.thinking-alias-route-source {
display: grid;
min-width: 0;
gap: 3px;
}
.thinking-alias-route-source > small {
display: flex;
min-width: 0;
align-items: center;
gap: 4px;
}
.thinking-alias-route-source > small em {
flex: none;
padding: 1px 4px;
border-radius: 3px;
background: var(--theme-eeece6);
color: var(--theme-6f6961);
font-size: var(--font-size-caption);
font-style: normal;
font-weight: var(--font-weight-semibold);
}
.thinking-alias-route-source > small span {
color: var(--theme-9a938a);
font-size: var(--font-size-label);
}
.thinking-alias-route strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.thinking-alias-route svg {
color: var(--theme-aaa49b);
}
.thinking-effort-badge {
min-width: 52px;
padding: 5px 8px;
border: 1px solid var(--theme-d8d1eb);
border-radius: 999px;
background: var(--theme-f5f1ff);
color: var(--theme-654f91);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
text-align: center;
text-transform: uppercase;
}
.thinking-alias-badges {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 5px;
}
.thinking-effort-badge.missing {
border-color: var(--theme-e4d0af);
background: var(--theme-fff8eb);
color: var(--theme-805a24);
text-transform: none;
}
.thinking-effort-badge.fast {
border-color: var(--theme-d7a447);
background: var(--theme-fff8eb);
color: var(--theme-805a24);
}
.agent-workbench {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
min-height: 0;
gap: 16px;
align-items: stretch;
}
.agent-client-list {
min-width: 0;
min-height: 0;
}
.agent-config-panel {
min-height: 0;
overflow: visible;
}
.agents-page {
grid-template-rows: minmax(54px, auto) auto;
gap: 14px;
}
.agents-page-embedded .agent-client-list {
min-height: 0;
}
.agent-header-actions {
display: flex;
min-width: 0;
align-items: center;
justify-content: flex-end;
gap: 10px;
}
.agent-header-actions .agent-inline-message {
max-width: 360px;
text-align: right;
}
.agent-header-actions .compact-button {
flex: none;
}
.agent-inline-message {
display: block;
min-width: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.agent-inline-message.error,
.agent-model-hint.error {
color: var(--theme-9f2d20);
}
.agent-inline-message.warning {
color: var(--theme-805a24);
}
.agent-client-list {
position: relative;
display: block;
overflow: hidden;
padding: 14px;
}
.agent-list-items button > span {
display: grid;
width: 100%;
min-width: 0;
gap: 3px;
}
.agent-list-items strong {
min-width: 0;
max-width: 100%;
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
line-height: 1.3;
overflow-wrap: break-word;
}
.agent-list-items small {
min-width: 0;
max-width: 100%;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
line-height: 1.4;
overflow-wrap: anywhere;
white-space: normal;
}
.agent-list-items {
position: absolute;
inset: 14px;
display: grid;
align-content: start;
grid-auto-rows: max-content;
gap: 6px;
height: auto;
min-height: 0;
max-height: none;
overflow-y: auto;
overscroll-behavior: contain;
padding-right: 4px;
scrollbar-color: var(--border-primary) transparent;
scrollbar-gutter: stable;
scrollbar-width: thin;
}
.agent-list-items::-webkit-scrollbar {
width: 10px;
}
.agent-list-items::-webkit-scrollbar-track {
background: transparent;
}
.agent-list-items::-webkit-scrollbar-thumb {
min-height: 48px;
border: 3px solid transparent;
border-radius: 999px;
background: var(--border-primary);
background-clip: padding-box;
}
.agent-list-items::-webkit-scrollbar-thumb:hover {
border-width: 2px;
background-color: var(--border-hover);
}
.agent-list-items::-webkit-scrollbar-thumb:active {
border-width: 2px;
background-color: color-mix(in srgb, var(--border-hover) 72%, var(--text-quaternary));
}
.agent-list-items::-webkit-scrollbar-button {
display: none;
}
.agent-list-items button {
display: grid;
grid-template-columns: 28px minmax(0, 1fr) 8px;
align-items: center;
gap: 9px;
width: 100%;
min-height: 58px;
padding: 8px 9px;
border: 1px solid transparent;
border-radius: 7px;
background: transparent;
color: var(--theme-2d2a26);
text-align: left;
}
.agent-list-items button:hover {
background: var(--theme-f4f1ea);
}
.agent-list-items button.active {
border-color: var(--theme-d5d2cb);
background: var(--theme-eeece6);
}
.agent-list-items .provider-logo {
width: 26px;
height: 26px;
}
.agent-client-icon {
display: grid;
width: 28px;
height: 28px;
place-items: center;
color: var(--theme-5f5a53);
}
.agent-client-icon .provider-logo {
object-fit: contain;
}
.agent-installed-indicator {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--theme-5d9a6c);
}
.agent-config-panel {
display: flex;
flex-direction: column;
gap: 14px;
container-type: inline-size;
container-name: agent-panel;
}
.agent-config-scroll-region {
display: grid;
min-width: 0;
min-height: 0;
align-content: start;
grid-auto-rows: max-content;
gap: 14px;
}
.agent-subpage-tabs {
display: inline-grid;
grid-auto-flow: column;
justify-self: start;
max-width: 100%;
gap: 3px;
padding: 3px;
overflow-x: auto;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-eeece6);
}
.agent-subpage-tabs button {
display: inline-flex;
min-width: 104px;
height: 34px;
align-items: center;
justify-content: center;
padding: 0 12px;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
white-space: nowrap;
}
.agent-subpage-tabs button:hover,
.agent-subpage-tabs button.active {
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
}
.agent-subpage-tabs button.active {
box-shadow: 0 1px 4px rgba(45, 42, 38, 0.14);
}
.oauth-management-page,
.oauth-subpage-panel {
display: grid;
min-width: 0;
gap: 18px;
}
.agent-core-config {
display: grid;
min-width: 0;
align-content: start;
gap: 14px;
}
.agent-sessions-page {
display: grid;
min-width: 0;
min-height: 360px;
align-content: start;
}
.codex-sessions-page {
display: grid;
min-width: 0;
align-content: start;
gap: 12px;
}
.codex-session-overview,
.codex-session-list-section {
display: grid;
min-width: 0;
gap: 12px;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-faf9f5);
}
.codex-session-overview-head,
.codex-session-list-head {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 14px;
}
.codex-session-overview-head > div,
.codex-session-list-head > div:first-child {
display: grid;
min-width: 0;
gap: 4px;
}
.codex-session-overview-head strong,
.codex-session-list-head strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.codex-session-overview-head span,
.codex-session-list-head > div:first-child > span {
color: var(--theme-8a847c);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.codex-session-overview-head .compact-button,
.codex-session-selection-actions .compact-button,
.codex-session-repair-actions .compact-button,
.codex-session-delete-button {
min-height: 32px;
margin-top: 0;
padding: 0 10px;
font-size: var(--font-size-label);
}
.codex-session-metrics {
display: grid;
grid-template-columns: repeat(3, minmax(74px, 0.55fr)) minmax(150px, 2fr);
gap: 8px;
}
.codex-session-metrics > div {
display: grid;
min-width: 0;
gap: 5px;
padding: 10px 11px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fffdf8);
}
.codex-session-metrics span {
display: flex;
min-width: 0;
align-items: center;
gap: 5px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.codex-session-metrics strong {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
text-overflow: ellipsis;
white-space: nowrap;
}
.codex-session-database-metric strong {
direction: rtl;
font-family: var(--font-family-mono);
font-size: var(--font-size-meta);
text-align: left;
}
.codex-session-repair-panel {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 12px 18px;
padding: 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.codex-session-repair-copy,
.codex-session-repair-actions,
.codex-session-selection-actions,
.codex-session-notice,
.codex-session-pagination {
display: flex;
align-items: center;
}
.codex-session-repair-copy {
min-width: 0;
gap: 9px;
color: var(--theme-5f5a53);
}
.codex-session-repair-copy > div {
display: grid;
min-width: 0;
gap: 3px;
}
.codex-session-repair-copy strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.codex-session-repair-copy span {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.codex-session-repair-actions {
flex: none;
gap: 10px;
}
.codex-session-repair-progress {
display: grid;
grid-column: 1 / -1;
gap: 6px;
}
.codex-session-repair-progress > div:first-child {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.codex-session-progress-track {
height: 5px;
overflow: hidden;
border-radius: 999px;
background: var(--theme-dce8df);
}
.codex-session-progress-track i {
display: block;
height: 100%;
border-radius: inherit;
background: var(--theme-4f825c);
transition: width 0.2s ease;
}
.codex-session-notice {
min-width: 0;
align-items: flex-start;
gap: 8px;
padding: 10px 11px;
border: 1px solid var(--theme-b6d3bd);
border-radius: 7px;
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.codex-session-notice.warning {
border-color: var(--theme-dfbf91);
background: var(--theme-fff7e9);
color: var(--theme-8b5b21);
}
.codex-session-notice.error {
border-color: var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.codex-session-notice > svg {
flex: none;
margin-top: 1px;
}
.codex-session-notice > span {
min-width: 0;
flex: 1;
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.codex-session-notice > button,
.codex-session-dialog-close {
display: grid;
width: 24px;
height: 24px;
flex: none;
place-items: center;
padding: 0;
border: 0;
border-radius: 5px;
background: transparent;
color: currentColor;
}
.codex-session-notice > button:hover,
.codex-session-dialog-close:hover {
background: rgba(45, 42, 38, 0.08);
}
.codex-session-list-section {
background: var(--theme-fffdf8);
}
.codex-session-selection-actions {
min-width: 0;
justify-content: flex-end;
gap: 6px;
flex-wrap: wrap;
}
.codex-session-selection-actions > span {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
white-space: nowrap;
}
.codex-session-list {
display: grid;
min-width: 0;
max-height: clamp(240px, calc(100dvh - 600px), 480px);
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fff);
}
.codex-session-row {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(150px, auto) auto;
min-width: 0;
align-items: center;
gap: 12px;
min-height: 76px;
padding: 10px 11px;
border-bottom: 1px solid var(--theme-eeeae2);
background: var(--theme-fff);
}
.codex-session-row:has(.codex-session-checkbox) {
grid-template-columns: 20px minmax(0, 1fr) minmax(150px, auto) auto;
}
.codex-session-row:last-child {
border-bottom: 0;
}
.codex-session-row:hover,
.codex-session-row.selected {
background: var(--theme-faf9f5);
}
.codex-session-row.selected {
box-shadow: inset 3px 0 var(--theme-4f825c);
}
.codex-session-checkbox {
display: grid;
align-self: stretch;
place-items: center;
}
.codex-session-checkbox input,
.codex-session-cleanup-dialog input {
width: 15px;
height: 15px;
margin: 0;
accent-color: var(--theme-4f825c);
}
.codex-session-main,
.codex-session-meta {
display: grid;
min-width: 0;
}
.codex-session-main {
gap: 4px;
}
.codex-session-main strong,
.codex-session-main code,
.codex-session-main span,
.codex-session-meta small,
.codex-session-meta time {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.codex-session-main strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.codex-session-main code {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.codex-session-main span {
color: var(--theme-5f5a53);
font-size: var(--font-size-meta);
}
.codex-session-meta {
justify-items: end;
gap: 4px;
text-align: right;
}
.codex-session-meta > span {
padding: 3px 7px;
border: 1px solid var(--theme-b6d3bd);
border-radius: 999px;
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
}
.codex-session-meta > span.archived {
border-color: var(--theme-d5d2cb);
background: var(--theme-f4f1ea);
color: var(--theme-5f5a53);
}
.codex-session-meta small,
.codex-session-meta time {
max-width: 190px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.codex-session-delete-button {
align-self: center;
}
.codex-session-empty {
display: grid;
min-height: 150px;
place-content: center;
justify-items: center;
gap: 9px;
padding: 18px;
border: 1px dashed var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-faf9f5);
color: var(--theme-8a847c);
font-size: var(--font-size-label);
text-align: center;
}
.codex-session-pagination {
justify-content: center;
gap: 10px;
}
.codex-session-pagination button {
width: 34px;
min-width: 34px;
min-height: 32px;
padding: 0;
}
.codex-session-pagination span {
min-width: 72px;
color: var(--theme-5f5a53);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
text-align: center;
}
.codex-session-dialog,
.codex-session-cleanup-dialog {
grid-template-rows: auto;
height: auto;
}
.codex-session-dialog {
min-height: 210px;
}
.codex-session-dialog .config-dialog-heading > div,
.codex-session-cleanup-dialog .config-dialog-heading > div {
display: flex;
align-items: center;
color: var(--theme-9f2d20);
}
.codex-session-dialog > p,
.codex-session-cleanup-dialog > p {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
line-height: var(--line-height-relaxed);
overflow-wrap: anywhere;
}
.codex-session-cleanup-dialog {
width: min(580px, 100%);
max-height: min(720px, calc(100vh - 40px));
min-height: 320px;
overflow: hidden;
}
.codex-session-cleanup-select-all {
display: flex;
align-items: center;
gap: 8px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.codex-session-cleanup-list {
display: grid;
min-height: 120px;
max-height: 360px;
overflow-y: auto;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fff);
}
.codex-session-cleanup-list > label {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: center;
gap: 8px;
min-height: 62px;
padding: 8px 10px;
border-bottom: 1px solid var(--theme-eeeae2);
}
.codex-session-cleanup-list > label:last-child {
border-bottom: 0;
}
.codex-session-cleanup-list > label:hover {
background: var(--theme-faf9f5);
}
.codex-session-cleanup-list > label > span {
display: grid;
min-width: 0;
gap: 3px;
}
.codex-session-cleanup-list strong,
.codex-session-cleanup-list code,
.codex-session-cleanup-list small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.codex-session-cleanup-list strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.codex-session-cleanup-list code,
.codex-session-cleanup-list small {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.agent-status-messages {
display: grid;
gap: 4px;
padding: 0 2px;
}
.agent-status-grid span {
display: flex;
align-items: center;
}
.agent-config-footer {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 14px;
min-height: 48px;
padding-top: 14px;
border-top: 1px solid var(--theme-e3e1db);
}
.agent-launch-control {
display: grid;
min-width: 0;
justify-items: end;
gap: 5px;
}
.agent-launch-actions {
display: flex;
min-width: 0;
max-width: 100%;
align-items: center;
justify-content: flex-end;
gap: 8px;
flex-wrap: wrap;
}
.agent-launch-actions > button {
min-width: 120px;
}
.agent-launch-control > .agent-inline-message {
max-width: 420px;
text-align: right;
}
.agent-launch-directory-dialog {
grid-template-rows: auto;
align-content: start;
width: min(620px, 100%);
max-height: calc(100vh - 40px);
height: auto;
min-height: 0;
overflow-y: auto;
}
.agent-launch-directory-dialog > p {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
line-height: var(--line-height-relaxed);
}
.agent-launch-directory-dialog .config-dialog-field {
grid-template-rows: auto auto;
min-height: 0;
}
.deepseek-harness-launch-options {
display: grid;
gap: 12px;
padding: 14px;
border: 1px solid var(--theme-e3ded5);
border-radius: 10px;
background: var(--theme-faf8f4);
}
.deepseek-harness-launch-field {
grid-template-rows: auto auto;
gap: 6px;
}
.deepseek-harness-launch-field > span {
font-size: var(--font-size-label);
}
.deepseek-harness-launch-field select.config-dialog-text-input {
cursor: pointer;
}
.deepseek-harness-launch-field textarea.config-dialog-text-input {
height: 72px;
min-height: 72px;
padding-block: 9px;
resize: vertical;
line-height: var(--line-height-relaxed);
}
.deepseek-harness-launch-mode-description {
margin: -4px 0 0;
color: var(--theme-777067);
font-size: var(--font-size-label);
font-weight: var(--font-weight-medium);
line-height: var(--line-height-relaxed);
}
.deepseek-harness-launch-grid {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(132px, 0.42fr);
gap: 10px;
}
.deepseek-harness-launch-checkbox {
display: flex;
align-items: flex-start;
gap: 10px;
color: var(--theme-5f5a53);
cursor: pointer;
}
.deepseek-harness-launch-checkbox > input {
width: 16px;
height: 16px;
margin: 2px 0 0;
accent-color: var(--theme-8069ad);
}
.deepseek-harness-launch-checkbox > span {
display: grid;
gap: 2px;
}
.deepseek-harness-launch-checkbox strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
}
.deepseek-harness-launch-checkbox small {
color: var(--theme-777067);
font-size: var(--font-size-meta);
line-height: var(--line-height-relaxed);
}
@media (max-width: 680px) {
.deepseek-harness-launch-grid {
grid-template-columns: minmax(0, 1fr);
}
}
.agent-launch-directory-picker {
display: flex;
width: 100%;
min-width: 0;
min-height: 64px;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 11px 13px;
border: 1px solid var(--theme-d8d2c8);
border-radius: 9px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
text-align: left;
}
.agent-launch-directory-picker:hover:not(:disabled) {
border-color: var(--theme-bdb5a9);
background: var(--theme-faf8f4);
}
.agent-launch-directory-picker:focus-visible {
border-color: var(--theme-8d8377);
outline: 0;
box-shadow: 0 0 0 3px rgba(45, 42, 38, 0.1);
}
.agent-launch-directory-picker > span {
display: grid;
min-width: 0;
gap: 4px;
}
.agent-launch-directory-picker small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-launch-directory-picker strong {
overflow: hidden;
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-launch-directory-picker > b {
flex: none;
color: var(--theme-8069ad);
font-size: var(--font-size-label);
}
.agent-launch-directory-history {
display: grid;
min-height: 0;
gap: 7px;
}
.agent-launch-directory-history > strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
}
.agent-launch-directory-history-list {
display: grid;
min-height: 64px;
max-height: 176px;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
border: 1px solid var(--theme-d8d2c8);
border-radius: 9px;
background: var(--theme-fff);
}
.agent-launch-directory-history-list > button {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
width: 100%;
min-height: 58px;
padding: 8px 11px;
border: 0;
border-bottom: 1px solid var(--theme-eeeae2);
border-radius: 0;
background: transparent;
color: var(--theme-2d2a26);
text-align: left;
}
.agent-launch-directory-history-list > button:last-child {
border-bottom: 0;
}
.agent-launch-directory-history-list > button:hover:not(:disabled) {
background: var(--theme-faf8f4);
}
.agent-launch-directory-history-list > button.active {
background: var(--theme-f1ecfb);
box-shadow: inset 3px 0 0 var(--theme-8069ad);
}
.agent-launch-directory-history-list > button > span {
display: grid;
min-width: 0;
gap: 3px;
}
.agent-launch-directory-history-list > button strong {
overflow: hidden;
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-launch-directory-history-list > button small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-launch-directory-history-list > button > b {
display: inline-flex;
flex: none;
align-items: center;
gap: 5px;
color: var(--theme-8069ad);
font-size: var(--font-size-label);
}
.agent-status-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
min-height: 76px;
}
.agent-status-grid.dual-install-status-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.agent-status-grid.pi-status-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.agent-status-grid > div {
display: grid;
min-width: 0;
gap: 5px;
padding: 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fffdf8);
}
.agent-status-grid span {
gap: 5px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-status-grid .agent-version-update-label {
display: inline-flex;
flex: none;
padding: 2px 6px;
border-radius: 4px;
background: var(--theme-f4f1ea);
color: var(--theme-5f5a53);
font-size: var(--font-size-caption);
line-height: 1.4;
white-space: nowrap;
}
.agent-status-grid strong {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-core-setting-section {
display: grid;
min-width: 0;
align-content: start;
gap: 12px;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-faf9f5);
}
.agent-model-section {
min-height: 0;
}
.agent-claude-desktop-mapping {
grid-column: 1 / -1;
}
.agent-claude-desktop-mapping-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.agent-claude-code-runtime-settings {
display: grid;
grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(240px, 1.2fr);
gap: 12px;
padding: 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 9px;
background: var(--theme-faf9f5);
}
.agent-claude-code-number-field {
display: grid;
align-content: start;
gap: 6px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.agent-claude-code-number-field > input,
.agent-claude-code-percent-input input {
width: 100%;
min-width: 0;
padding: 8px 10px;
border: 1px solid var(--theme-d3d0c9);
border-radius: 7px;
background: var(--theme-fff);
color: var(--theme-2f2c28);
font: inherit;
font-variant-numeric: tabular-nums;
}
.agent-claude-code-number-field > input:focus,
.agent-claude-code-percent-input input:focus {
border-color: var(--theme-8069ad);
outline: 2px solid rgba(128, 105, 173, 0.14);
}
.agent-claude-code-number-field > input:disabled,
.agent-claude-code-percent-input input:disabled {
cursor: not-allowed;
opacity: 0.62;
}
.agent-claude-code-number-field small,
.agent-claude-code-disable-compact small {
color: var(--theme-817b72);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-medium);
line-height: 1.4;
}
.agent-claude-code-percent-input {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 7px;
}
.agent-claude-code-percent-input > span {
color: var(--theme-817b72);
font-weight: var(--font-weight-semibold);
}
.agent-claude-code-disable-compact {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fff);
color: var(--theme-5f5a53);
cursor: pointer;
}
.agent-claude-code-disable-compact > span:first-child {
display: grid;
gap: 4px;
}
.agent-claude-code-disable-compact:has(input:checked) {
border-color: rgba(174, 92, 82, 0.48);
background: rgba(174, 92, 82, 0.06);
}
.agent-claude-code-disable-compact:has(input:disabled) {
cursor: not-allowed;
opacity: 0.62;
}
.agent-claude-desktop-mapping-row {
display: grid;
min-width: 0;
align-content: start;
gap: 10px;
padding: 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 9px;
background: var(--theme-fff);
box-shadow: 0 1px 2px rgba(45, 42, 38, 0.04);
}
.agent-desktop-models {
grid-column: 1 / -1;
}
.agent-desktop-models > .agent-section-heading button {
width: auto;
margin-top: 0;
flex-shrink: 0;
white-space: nowrap;
}
.agent-desktop-model-list {
display: grid;
gap: 8px;
}
.agent-desktop-model-row {
padding: 10px;
border-radius: 7px;
box-shadow: none;
}
.agent-desktop-model-fields {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
align-items: end;
gap: 12px;
}
.agent-desktop-model-field {
display: grid;
min-width: 0;
gap: 5px;
font-size: var(--font-size-label);
color: var(--theme-5f5a53);
}
.agent-desktop-model-actions {
height: 44px;
}
.agent-desktop-model-notice {
margin: 0;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
line-height: 1.5;
}
.agent-desktop-help-dialog {
grid-template-rows: auto;
align-content: start;
width: min(600px, calc(100vw - 32px));
height: fit-content;
max-height: calc(100vh - 32px);
margin: auto;
overflow: auto;
}
.agent-desktop-help-dialog::backdrop {
background: rgba(45, 42, 38, 0.42);
backdrop-filter: blur(3px);
}
.agent-desktop-help-list {
display: grid;
gap: 16px;
margin: 0;
padding-left: 22px;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: 1.6;
overflow-wrap: anywhere;
}
.agent-desktop-help-actions {
display: flex;
justify-content: flex-end;
}
@media (max-width: 700px) {
.agent-desktop-models > .agent-section-heading { flex-wrap: wrap; }
.agent-desktop-models > .agent-section-heading > .agent-section-heading-actions {
width: 100%;
flex-wrap: wrap;
}
}
@media (max-width: 520px) {
.agent-desktop-model-fields { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.agent-desktop-model-actions { height: 34px; justify-self: end; }
}
.agent-claude-desktop-mapping-row:has(.agent-claude-context-toggle input:checked) {
border-color: rgba(128, 105, 173, 0.48);
box-shadow: 0 0 0 2px rgba(128, 105, 173, 0.08);
}
.agent-claude-mapping-card-heading {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.agent-claude-mapping-card-heading > strong {
min-width: 0;
overflow: hidden;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-claude-context-toggle {
display: flex;
flex: none;
align-items: center;
gap: 6px;
padding: 4px 7px;
border: 1px solid var(--theme-e3e1db);
border-radius: 999px;
background: var(--theme-faf9f5);
color: var(--theme-5f5a53);
cursor: pointer;
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.agent-claude-context-toggle:has(input:checked) {
border-color: var(--theme-8069ad);
background: var(--theme-f1ecfb);
color: var(--theme-554075);
}
.agent-claude-context-toggle:has(input:disabled) {
cursor: not-allowed;
opacity: 0.62;
}
.agent-section-heading-actions {
display: flex !important;
flex: none;
align-items: center;
justify-content: flex-end;
gap: 8px !important;
}
.agent-claude-desktop-mapping-filter {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 8px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fff);
color: var(--theme-5f5a53);
cursor: pointer;
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.agent-claude-desktop-mapping-filter:has(input:checked) {
border-color: var(--theme-8069ad);
background: var(--theme-f1ecfb);
color: var(--theme-554075);
}
.agent-claude-desktop-mapping-filter:has(input:disabled) {
cursor: not-allowed;
opacity: 0.62;
}
.agent-section-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
}
.agent-section-heading > div {
display: grid;
min-width: 0;
gap: 3px;
}
.agent-section-heading strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.agent-section-heading > div > span,
.agent-model-hint {
color: var(--theme-8a847c);
font-size: var(--font-size-label);
}
.agent-model-hint {
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.agent-model-picker {
position: relative;
min-width: 0;
}
.agent-model-trigger {
display: grid;
grid-template-columns: minmax(0, 1fr) 18px;
align-items: center;
gap: 10px;
width: 100%;
min-width: 0;
min-height: 44px;
padding: 7px 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
text-align: left;
}
.agent-model-trigger:hover:not(:disabled),
.agent-model-picker.open .agent-model-trigger {
border-color: var(--theme-aaa49b);
background: var(--theme-fffdf8);
}
.agent-model-trigger:disabled {
cursor: not-allowed;
background: var(--theme-f4f1ea);
opacity: 0.62;
}
.agent-model-trigger > span {
display: grid;
min-width: 0;
gap: 2px;
}
.agent-model-editable-trigger input {
width: 100%;
min-width: 0;
padding: 0;
border: 0;
outline: 0;
background: transparent;
color: inherit;
font: inherit;
font-size: var(--font-size-body);
}
.agent-model-editable-trigger:focus-within {
border-color: var(--theme-8069ad);
box-shadow: 0 0 0 2px rgba(128, 105, 173, 0.14);
}
.agent-model-editable-trigger:has(input:disabled) {
cursor: not-allowed;
background: var(--theme-f4f1ea);
opacity: 0.62;
}
.agent-model-editable-trigger > button {
width: 20px;
height: 24px;
min-height: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--theme-8a847c);
}
.agent-model-picker.open .agent-model-editable-trigger > button > svg {
transform: rotate(180deg);
}
.agent-model-trigger strong,
.agent-model-trigger small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-model-trigger strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.agent-model-trigger small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-model-trigger > svg {
color: var(--theme-8a847c);
transition: transform 0.16s ease;
}
.agent-model-picker.open .agent-model-trigger > svg {
transform: rotate(180deg);
}
.agent-model-dropdown {
position: fixed;
z-index: 45;
display: grid;
grid-template-rows: 40px minmax(0, 1fr) 28px;
gap: 7px;
padding: 9px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
box-shadow: 0 14px 34px rgba(45, 42, 38, 0.2);
}
.agent-model-dropdown-editable {
grid-template-rows: minmax(0, 1fr) 28px;
}
.agent-model-search {
display: grid;
grid-template-columns: 17px minmax(0, 1fr) auto auto;
align-items: center;
gap: 6px;
padding: 0 6px 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-8a847c);
}
.agent-model-search input {
width: 100%;
min-width: 0;
height: 38px;
padding: 0;
border: 0;
outline: 0;
background: transparent;
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.agent-model-list {
min-height: 0;
overflow-y: auto;
border: 1px solid var(--theme-ece8df);
border-radius: 6px;
}
.agent-model-option {
display: grid;
grid-template-columns: minmax(0, 1fr) 18px;
align-items: center;
gap: 9px;
width: 100%;
min-height: 48px;
padding: 7px 10px;
border: 0;
border-bottom: 1px solid var(--theme-eeeae2);
background: var(--theme-fff);
color: var(--theme-2d2a26);
text-align: left;
}
.agent-model-option:last-child {
border-bottom: 0;
}
.agent-model-option:hover,
.agent-model-option.active {
background: var(--theme-f4f1ea);
}
.agent-model-option.selected {
background: var(--theme-eeece6);
}
.agent-model-option > span {
display: grid;
min-width: 0;
gap: 3px;
}
.agent-model-option strong,
.agent-model-option small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-model-option strong {
font-size: var(--font-size-body);
}
.agent-model-option small {
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-model-option > svg {
color: var(--theme-2f6b3f);
}
.agent-model-empty {
display: grid;
min-height: 118px;
place-items: center;
align-content: center;
gap: 6px;
padding: 16px;
color: var(--theme-8a847c);
font-size: var(--font-size-label);
text-align: center;
}
.agent-model-empty strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
}
.agent-model-empty.error,
.agent-model-empty.error strong {
color: var(--theme-9f2d20);
}
.agent-model-dropdown-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.agent-model-dropdown-footer .error {
color: var(--theme-9f2d20);
}
.agent-modification-actions {
min-height: 0;
}
.agent-codex-options {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: stretch;
gap: 8px;
min-width: 0;
}
.agent-codex-options > .agent-oauth-configuration {
height: 100%;
min-height: 54px;
padding: 10px 12px;
}
.agent-codex-catalog-button {
width: 100%;
min-height: 54px;
height: auto;
padding: 10px 12px;
white-space: normal;
}
.codex-catalog-backdrop {
z-index: 90;
}
.codex-catalog-dialog {
position: relative;
grid-template-rows: auto minmax(0, 1fr) auto;
gap: 14px;
width: min(1080px, calc(100vw - 40px));
height: min(780px, calc(100vh - 40px));
padding: 20px;
}
.codex-catalog-heading {
align-items: flex-start;
}
.codex-catalog-heading > div {
display: grid;
gap: 4px;
}
.codex-catalog-heading p {
margin: 0;
color: var(--theme-716b61);
font-size: var(--font-size-label);
font-weight: var(--font-weight-medium);
}
.codex-catalog-body {
display: grid;
grid-template-columns: 250px minmax(0, 1fr);
min-height: 0;
overflow: hidden;
border: 1px solid var(--theme-d5d2cb);
border-radius: 9px;
background: var(--theme-ffffff);
}
.codex-catalog-sidebar {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
gap: 10px;
min-height: 0;
padding: 12px;
border-right: 1px solid var(--theme-d5d2cb);
background: var(--theme-faf8f4);
}
.codex-catalog-search {
display: flex;
align-items: center;
gap: 7px;
height: 38px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
background: var(--theme-ffffff);
color: var(--theme-716b61);
}
.codex-catalog-search input {
width: 100%;
min-width: 0;
border: 0;
outline: 0;
background: transparent;
color: var(--theme-2d2a26);
}
.codex-catalog-models {
display: grid;
align-content: start;
gap: 6px;
min-height: 0;
overflow: auto;
}
.codex-catalog-models > button {
display: grid;
gap: 2px;
width: 100%;
padding: 9px 10px;
border: 1px solid transparent;
border-radius: 7px;
background: transparent;
color: var(--theme-2d2a26);
text-align: left;
}
.codex-catalog-models > button:hover {
background: var(--theme-ffffff);
}
.codex-catalog-models > button.active {
border-color: var(--theme-9db8a5);
background: var(--theme-f3f8f4);
}
.codex-catalog-models strong,
.codex-catalog-models span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.codex-catalog-models span,
.codex-catalog-models small {
color: var(--theme-716b61);
font-size: var(--font-size-meta);
}
.codex-catalog-models small {
color: var(--theme-2f6b3f);
}
.codex-catalog-reload {
width: 100%;
}
.codex-catalog-editor {
min-width: 0;
min-height: 0;
overflow: auto;
padding: 18px;
}
.codex-catalog-model-heading {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
margin-bottom: 16px;
}
.codex-catalog-model-heading > div {
display: grid;
gap: 3px;
min-width: 0;
}
.codex-catalog-model-heading h3 {
margin: 0;
overflow-wrap: anywhere;
color: var(--theme-2d2a26);
font-size: var(--font-size-section-title);
}
.codex-catalog-model-heading span {
color: var(--theme-716b61);
font-size: var(--font-size-meta);
}
.codex-catalog-model-heading span.customized {
color: var(--theme-2f6b3f);
}
.codex-catalog-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.codex-catalog-form > label {
display: grid;
align-content: start;
gap: 7px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.codex-catalog-form > label.wide,
.codex-catalog-form > fieldset.wide {
grid-column: 1 / -1;
}
.codex-catalog-form input[type='text'],
.codex-catalog-form input[type='number'],
.codex-catalog-form input:not([type]),
.codex-catalog-form select,
.codex-catalog-form textarea {
width: 100%;
min-width: 0;
padding: 9px 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 7px;
outline: 0;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
font: inherit;
font-weight: var(--font-weight-medium);
}
.codex-catalog-form input[type='text'],
.codex-catalog-form input[type='number'],
.codex-catalog-form input:not([type]),
.codex-catalog-form select {
height: 40px;
}
.codex-catalog-form textarea {
min-height: 70px;
resize: vertical;
}
.codex-catalog-form input:focus,
.codex-catalog-form select:focus,
.codex-catalog-form textarea:focus {
border-color: var(--theme-8d8377);
box-shadow: 0 0 0 3px rgba(45, 42, 38, 0.08);
}
.codex-catalog-choice-group {
min-width: 0;
margin: 0;
padding: 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
}
.codex-catalog-choice-group legend {
padding: 0 5px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.codex-catalog-chips,
.codex-catalog-checkboxes {
display: flex;
flex-wrap: wrap;
gap: 7px;
}
.codex-catalog-chips label,
.codex-catalog-checkboxes label {
cursor: pointer;
user-select: none;
}
.codex-catalog-chips input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.codex-catalog-chips span {
display: inline-flex;
align-items: center;
gap: 4px;
min-height: 30px;
padding: 5px 9px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 999px;
background: var(--theme-faf8f4);
color: var(--theme-5f5a53);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
}
.codex-catalog-chips label.selected span {
border-color: var(--theme-9db8a5);
background: var(--theme-f3f8f4);
color: var(--theme-2f6b3f);
}
.codex-catalog-checkboxes label {
display: flex;
align-items: center;
gap: 6px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
}
.codex-catalog-switch {
grid-template-columns: auto minmax(0, 1fr) !important;
align-items: center;
min-height: 42px;
padding: 9px 11px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-faf8f4);
}
.codex-catalog-switch input {
width: 16px !important;
height: 16px !important;
}
.codex-catalog-hint {
margin: 14px 0 0;
color: var(--theme-716b61);
font-size: var(--font-size-meta);
line-height: var(--line-height-relaxed);
}
.codex-catalog-state {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 90px;
padding: 14px;
color: var(--theme-716b61);
font-size: var(--font-size-label);
text-align: center;
}
.codex-catalog-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
}
.codex-catalog-footer > div:first-child {
min-width: 0;
color: var(--theme-716b61);
font-size: var(--font-size-meta);
}
.codex-catalog-footer > div:last-child {
display: flex;
flex: none;
gap: 8px;
}
.codex-catalog-confirm {
position: absolute;
inset: 0;
z-index: 2;
display: grid;
place-items: center;
padding: 20px;
border-radius: inherit;
isolation: isolate;
}
/* Blur the backdrop without making it a containing block for fixed notices. */
.codex-catalog-confirm::before {
content: '';
position: absolute;
inset: 0;
z-index: -1;
border-radius: inherit;
background: rgba(45, 42, 38, 0.35);
backdrop-filter: blur(2px);
}
.codex-catalog-confirm > div {
display: grid;
gap: 12px;
width: min(420px, 100%);
padding: 20px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 9px;
background: var(--theme-fffdf8);
box-shadow: 0 18px 48px rgba(45, 42, 38, 0.24);
}
.codex-catalog-confirm span {
color: var(--theme-716b61);
font-size: var(--font-size-label);
}
.codex-catalog-confirm > div > div {
display: flex;
justify-content: flex-end;
gap: 8px;
}
@media (max-width: 760px) {
.codex-catalog-dialog {
width: calc(100vw - 28px);
height: calc(100vh - 28px);
padding: 14px;
}
.codex-catalog-body {
grid-template-columns: 1fr;
grid-template-rows: 190px minmax(0, 1fr);
}
.codex-catalog-sidebar {
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto minmax(0, 1fr);
border-right: 0;
border-bottom: 1px solid var(--theme-d5d2cb);
}
.codex-catalog-models {
grid-column: 1 / -1;
}
.codex-catalog-reload {
width: auto;
}
.codex-catalog-editor {
padding: 14px;
}
.codex-catalog-form {
grid-template-columns: 1fr;
}
.codex-catalog-form > label.wide,
.codex-catalog-form > fieldset.wide {
grid-column: auto;
}
.codex-catalog-footer {
align-items: stretch;
flex-direction: column;
}
.codex-catalog-footer > div:last-child {
display: grid;
grid-template-columns: 1fr 1fr;
}
.codex-catalog-footer > div:last-child > button:first-child {
grid-column: 1 / -1;
}
}
.agent-codex-options .agent-section-heading strong,
.agent-codex-options > .agent-oauth-configuration {
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
line-height: var(--line-height-tight);
}
.agent-modification-control {
display: grid;
min-width: 0;
gap: 6px;
}
.agent-modification-control > .agent-inline-message {
text-align: left;
}
.agent-oauth-configuration {
display: flex;
min-height: 42px;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 8px 12px;
border: 1px solid var(--theme-d8d2c8);
border-radius: 9px;
background: var(--theme-faf8f4);
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
cursor: pointer;
user-select: none;
transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}
.agent-oauth-configuration:hover {
border-color: var(--theme-bdb5a9);
background: var(--theme-f6f2ec);
}
.agent-oauth-configuration:has(input:focus-visible) {
border-color: var(--theme-8d8377);
box-shadow: 0 0 0 3px rgba(45, 42, 38, 0.1);
}
.agent-oauth-configuration:has(input:checked) {
border-color: var(--theme-9db8a5);
background: var(--theme-f3f8f4);
color: var(--theme-2f6b3f);
}
.agent-oauth-configuration:has(input:disabled) {
cursor: not-allowed;
opacity: 0.55;
}
.agent-oauth-configuration .switch-control {
flex: none;
}
.agent-modification-buttons {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 8px;
width: 100%;
}
.agent-modification-buttons.codex {
grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}
.agent-modification-buttons button {
width: 100%;
min-width: 0;
min-height: 38px;
height: auto;
padding: 8px 10px;
line-height: var(--line-height-tight);
white-space: normal;
}
.agent-restore-dialog {
grid-template-rows: auto;
height: auto;
min-height: 210px;
}
.agent-restore-dialog .config-dialog-heading > div {
display: flex;
align-items: center;
color: var(--theme-9f2d20);
}
.agent-restore-dialog p {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
line-height: var(--line-height-relaxed);
}
.agent-restore-dialog > .agent-inline-message {
margin-top: -6px;
}
.usage-records-page {
display: flex;
width: 100%;
max-width: 100%;
min-width: 0;
min-height: 0;
flex: 1 1 auto;
flex-direction: column;
gap: 12px;
overflow: hidden;
}
.app-shell:has(.usage-records-page) {
height: 100%;
min-height: 100%;
}
.app-shell:has(.usage-records-page) .workspace {
display: flex;
min-height: 0;
flex: 1 1 auto;
flex-direction: column;
}
.app-shell:has(.usage-records-page) .content {
display: flex;
min-height: 0;
flex: 1 1 auto;
flex-direction: column;
overflow: hidden;
}
.usage-records-page > .usage-overview-layout,
.usage-records-page > .usage-analysis-grid,
.usage-records-page > .usage-events-panel,
.usage-records-page > .usage-pricing-panel,
.usage-records-page > .usage-data-management-panel,
.usage-records-page > .usage-initial-loading {
flex: 1 1 auto;
min-height: 0;
}
.usage-topbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
flex-wrap: wrap;
}
.usage-topbar-actions {
display: flex;
align-items: center;
gap: 8px;
}
.usage-refresh-btn {
width: 34px;
height: 34px;
border-radius: 7px;
border: 1px solid var(--theme-e3e1db);
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.15s ease;
}
.usage-refresh-btn:hover:not(:disabled) {
background: var(--theme-f4f1ea);
border-color: var(--theme-d5d2cb);
color: var(--theme-2d2a26);
}
.usage-refresh-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.usage-collector-state {
display: inline-flex;
align-items: center;
gap: 7px;
min-width: 0;
height: 34px;
padding: 0 10px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-fffdf8);
white-space: nowrap;
}
.usage-collector-state .status-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--theme-8a847c);
flex-shrink: 0;
box-shadow: 0 0 0 3px rgba(155, 149, 140, 0.15);
}
.usage-collector-state.success .status-dot {
background: #10b981;
box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}
.usage-collector-state.error .status-dot {
background: #ef4444;
box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}
.usage-collector-state strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
line-height: 1.2;
}
.usage-collector-state span {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
line-height: 1.2;
}
.usage-collector-state > span:last-child {
padding-left: 7px;
border-left: 1px solid var(--theme-e3e1db);
}
/* Tab Switcher */
.usage-tabs {
display: inline-flex;
gap: 3px;
padding: 3px;
border: 1px solid var(--border-color);
border-radius: 10px;
background: var(--bg-tertiary);
width: fit-content;
}
.usage-tabs button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
min-width: 96px;
height: 32px;
padding: 0 14px;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
cursor: pointer;
transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.usage-tabs button:hover:not(.active) {
color: var(--text-primary);
background: color-mix(in srgb, var(--bg-primary) 70%, transparent);
}
.usage-tabs button.active {
background: var(--bg-primary);
color: var(--text-primary);
box-shadow: var(--shadow-sm);
}
/* Filter Toolbar */
.usage-filter-panel {
display: grid;
gap: 8px;
padding: 10px 12px;
border: 1px solid var(--border-color);
border-radius: 12px;
background: var(--bg-primary);
}
.usage-filter-row {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.usage-filter-group {
display: flex;
align-items: flex-end;
gap: 10px;
flex-wrap: wrap;
flex: 1;
}
.usage-filter-item {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 120px;
flex: 1 1 130px;
}
.usage-filter-label {
display: flex;
align-items: center;
gap: 4px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
line-height: 1;
}
.usage-filter-item select,
.usage-filter-item input {
min-width: 0;
height: 34px;
padding: 0 9px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
font-size: var(--font-size-meta);
outline: none;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.usage-filter-item select:focus,
.usage-filter-item input:focus {
border-color: var(--theme-3f6f98);
box-shadow: 0 0 0 2px rgba(63, 111, 152, 0.15);
}
.usage-filter-reset-btn {
display: inline-flex;
align-items: center;
gap: 5px;
height: 34px;
padding: 0 12px;
border-radius: 6px;
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
border: 1px dashed var(--theme-d5d2cb);
color: var(--theme-8a847c);
background: transparent;
cursor: pointer;
white-space: nowrap;
transition: all 0.15s ease;
}
.usage-filter-reset-btn:hover {
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
border-color: var(--theme-efc9c2);
}
.usage-custom-range {
display: flex;
align-items: center;
gap: 8px;
padding-top: 6px;
border-top: 1px dashed var(--theme-eeeae2);
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-custom-range input {
height: 32px;
padding: 0 8px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
font-size: var(--font-size-caption);
}
/* Loading & Empty States */
.usage-initial-loading,
.usage-empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 160px;
padding: 30px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.usage-empty svg,
.usage-initial-loading svg {
color: var(--theme-9a958d);
opacity: 0.6;
}
/* Overview Layout */
.usage-overview-layout {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
grid-template-rows: auto minmax(280px, 1fr);
gap: 14px;
align-items: stretch;
overflow-x: hidden;
overflow-y: auto;
}
.usage-stat-grid {
grid-column: 1 / -1;
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
}
.usage-stat-card {
display: flex;
flex-direction: column;
justify-content: center;
gap: 5px;
padding: 10px 12px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
min-width: 0;
transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.usage-stat-card:hover {
border-color: var(--theme-d5d2cb);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
transform: translateY(-1px);
}
.usage-stat-card-label {
color: var(--theme-7a746c);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-medium);
line-height: 1.25;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.usage-stat-card-value {
color: var(--theme-2d2a26);
font-size: 20px;
font-weight: var(--font-weight-semibold);
font-variant-numeric: tabular-nums;
line-height: 1.2;
letter-spacing: -0.01em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.usage-stat-card-meta {
display: none;
}
/* Trend Panel */
.usage-trend-panel,
.usage-health-panel,
.usage-category-panel,
.usage-events-panel {
display: grid;
min-width: 0;
min-height: 0;
grid-template-rows: auto minmax(0, 1fr);
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 9px;
background: var(--theme-fffdf8);
}
.usage-trend-panel,
.usage-health-panel {
height: 100%;
}
.usage-section-heading {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
.usage-section-heading > div {
display: grid;
gap: 2px;
}
.usage-section-heading strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
font-weight: var(--font-weight-semibold);
white-space: nowrap;
}
.usage-section-heading span {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-trend-wrapper {
display: grid;
min-height: 0;
grid-template-rows: auto minmax(0, 1fr);
gap: 8px;
}
.usage-trend-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
flex-wrap: wrap;
}
.usage-trend-legend {
display: flex;
align-items: center;
gap: 4px;
flex-wrap: wrap;
}
.usage-trend-legend-item {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 2px 7px;
border: 1px solid transparent;
border-radius: 999px;
background: transparent;
color: var(--theme-7a746c);
font-size: var(--font-size-caption);
cursor: pointer;
transition: all 0.15s ease;
user-select: none;
}
.usage-trend-legend-item:hover {
background: var(--theme-f4f1ea);
color: var(--theme-2d2a26);
}
.usage-trend-legend-item.is-hidden {
color: var(--text-quaternary);
text-decoration: line-through;
}
.usage-trend-legend-item.is-hidden .usage-trend-swatch {
opacity: 0.38;
}
.usage-trend-swatch {
width: 8px;
height: 8px;
border-radius: 2px;
flex-shrink: 0;
display: inline-block;
}
.usage-trend-chart {
display: grid;
min-height: 0;
height: 100%;
grid-template-columns: 36px minmax(0, 1fr);
grid-template-rows: minmax(140px, 1fr) 18px;
column-gap: 8px;
row-gap: 4px;
}
.usage-trend-y-axis {
position: relative;
grid-column: 1;
grid-row: 1;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-variant-numeric: tabular-nums;
line-height: 1;
user-select: none;
}
.usage-trend-y-axis span {
position: absolute;
right: 0;
transform: translateY(-50%);
}
.usage-trend-plot {
position: relative;
grid-column: 2;
grid-row: 1;
min-width: 0;
min-height: 0;
height: 100%;
outline: none;
cursor: crosshair;
}
.usage-trend-plot:focus-visible {
box-shadow: 0 0 0 2px color-mix(in srgb, #3b82f6 35%, transparent);
border-radius: 6px;
}
.usage-trend-svg {
display: block;
width: 100%;
height: 100%;
overflow: visible;
pointer-events: none;
}
.usage-trend-grid {
stroke: var(--theme-eeeae2);
stroke-dasharray: 3 3;
stroke-width: 1;
vector-effect: non-scaling-stroke;
}
.usage-trend-baseline {
stroke: var(--theme-e3e1db);
stroke-width: 1;
vector-effect: non-scaling-stroke;
}
.usage-trend-bar {
opacity: 0.8;
transition: opacity 0.15s ease;
}
.usage-trend-bar.is-active {
opacity: 1;
}
.usage-trend-cursor-line {
stroke: var(--theme-7a746c);
stroke-dasharray: 3 2;
stroke-width: 1;
opacity: 0.65;
vector-effect: non-scaling-stroke;
}
.usage-trend-x-axis {
position: relative;
grid-column: 2;
grid-row: 2;
height: 18px;
}
.usage-trend-x-axis span {
position: absolute;
top: 2px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-variant-numeric: tabular-nums;
transform: translateX(-50%);
white-space: nowrap;
user-select: none;
}
.usage-trend-x-axis span.is-start {
left: 0 !important;
transform: none;
}
.usage-trend-x-axis span.is-end {
left: 100% !important;
transform: translateX(-100%);
}
.usage-trend-tooltip {
position: absolute;
top: 6px;
z-index: 10;
min-width: 140px;
max-width: 260px;
padding: 8px 10px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
box-shadow: 0 4px 16px rgba(45, 42, 38, 0.12);
pointer-events: none;
font-size: var(--font-size-caption);
}
:root[data-theme='dark'] .usage-trend-tooltip {
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}
.usage-trend-tooltip.is-right {
transform: translateX(12px);
}
.usage-trend-tooltip.is-left {
transform: translateX(calc(-100% - 12px));
}
.usage-trend-tooltip-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding-bottom: 5px;
border-bottom: 1px solid var(--theme-eeeae2);
margin-bottom: 5px;
}
.usage-trend-tooltip-header strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
}
.usage-trend-tooltip-total {
color: var(--theme-3f6f98);
font-weight: var(--font-weight-semibold);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.usage-trend-tooltip-list {
display: grid;
gap: 4px;
}
.usage-trend-tooltip-row {
display: flex;
align-items: center;
gap: 6px;
color: var(--theme-7a746c);
}
.usage-trend-tooltip-label {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-trend-tooltip-row b {
color: var(--theme-2d2a26);
font-variant-numeric: tabular-nums;
}
.usage-trend-tooltip-empty {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
/* Token Breakdown Panel */
.usage-token-breakdown {
display: grid;
min-height: 0;
align-content: start;
gap: 12px;
overflow: auto;
}
.usage-token-row {
display: grid;
gap: 6px;
}
.usage-token-info {
display: flex;
align-items: center;
justify-content: space-between;
font-size: var(--font-size-caption);
}
.usage-token-name {
color: var(--theme-2d2a26);
font-weight: var(--font-weight-semibold);
}
.usage-token-vals {
display: flex;
align-items: center;
gap: 8px;
}
.usage-token-count {
color: var(--theme-7a746c);
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-medium);
}
.usage-token-pct {
display: inline-block;
min-width: 42px;
text-align: right;
color: var(--theme-8a847c);
font-variant-numeric: tabular-nums;
font-size: var(--font-size-caption);
}
.usage-token-bar-track {
width: 100%;
height: 6px;
background: var(--theme-eeece6);
border-radius: 999px;
overflow: hidden;
}
.usage-token-bar-fill {
height: 100%;
border-radius: 999px;
transition: width 0.3s ease;
}
.usage-token-row.tone-input .usage-token-bar-fill {
background: #3b82f6;
}
.usage-token-row.tone-output .usage-token-bar-fill {
background: #10b981;
}
.usage-token-row.tone-reasoning .usage-token-bar-fill {
background: #8b5cf6;
}
.usage-token-row.tone-cache-read .usage-token-bar-fill {
background: #f59e0b;
}
.usage-token-row.tone-cache-creation .usage-token-bar-fill {
background: #ec4899;
}
/* Analysis Tab */
.usage-analysis-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
gap: 14px;
}
.usage-category-list {
display: grid;
min-height: 0;
align-content: start;
gap: 10px;
overflow: auto;
}
.usage-category-row {
display: grid;
gap: 5px;
}
.usage-category-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.usage-category-label-wrap {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
flex: 1;
}
.usage-rank-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
border-radius: 4px;
background: var(--theme-eeece6);
color: var(--theme-7a746c);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
flex-shrink: 0;
}
.usage-rank-badge.top {
background: rgba(59, 130, 246, 0.15);
color: #2563eb;
}
.usage-category-name {
color: var(--theme-2d2a26);
font-size: var(--font-size-meta);
font-weight: var(--font-weight-semibold);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-category-meta {
display: flex;
align-items: center;
gap: 6px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-variant-numeric: tabular-nums;
flex-shrink: 0;
}
.usage-category-pct {
padding: 1px 4px;
border-radius: 3px;
background: var(--theme-f4f1ea);
font-weight: var(--font-weight-semibold);
}
.usage-category-meta strong {
color: var(--theme-5f5a53);
font-weight: var(--font-weight-semibold);
}
.usage-category-track {
width: 100%;
height: 4px;
background: var(--theme-eeece6);
border-radius: 999px;
overflow: hidden;
}
.usage-category-fill {
height: 100%;
background: var(--theme-3f6f98);
border-radius: 999px;
transition: width 0.3s ease;
}
/* Events tab (request details) */
.usage-events-panel {
display: flex;
width: 100%;
max-width: 100%;
min-height: 0;
padding: 0;
flex-direction: column;
overflow: hidden;
}
.usage-events-summary {
display: flex;
min-height: 52px;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 16px;
border-bottom: 1px solid var(--theme-e3e1db);
background: var(--theme-fffdf8);
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
flex-wrap: wrap;
}
.usage-events-summary-left {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
min-width: 0;
}
.usage-events-count-badge {
display: inline-flex;
align-items: center;
padding: 3px 9px;
border: 1px solid var(--theme-e3e1db);
border-radius: 999px;
background: var(--theme-f4f1ea);
color: var(--theme-2d2a26);
font-weight: var(--font-weight-semibold);
font-size: var(--font-size-caption);
white-space: nowrap;
flex-shrink: 0;
}
.usage-pagination-summary {
font-size: var(--font-size-caption);
color: var(--theme-7a746c);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.usage-events-summary-right {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
min-width: 0;
}
.usage-col-hint {
font-size: var(--font-size-caption);
color: var(--text-quaternary);
}
.usage-page-size-select {
height: 30px;
padding: 4px 8px;
border: 1px solid var(--theme-e3e1db);
border-radius: 5px;
background: var(--theme-faf8f4);
color: var(--theme-2d2a26);
font-size: var(--font-size-caption);
cursor: pointer;
flex-shrink: 0;
}
.usage-page-size-select:focus {
border-color: var(--theme-3f6f98);
outline: none;
}
.usage-pagination-right {
display: flex;
align-items: center;
gap: 4px;
flex-shrink: 0;
}
.usage-pagination-top {
display: inline-flex;
align-items: center;
gap: 4px;
}
.usage-page-nav-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 28px;
height: 30px;
padding: 0 8px;
border: 1px solid var(--theme-e3e1db);
border-radius: 5px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
cursor: pointer;
font-size: var(--font-size-caption);
font-weight: var(--font-weight-medium);
transition: all 0.15s ease;
gap: 3px;
flex-shrink: 0;
white-space: nowrap;
}
.usage-page-nav-btn:hover:not(:disabled) {
background: var(--theme-f4f1ea);
border-color: var(--theme-d5d2cb);
color: var(--theme-2d2a26);
}
.usage-page-nav-btn:disabled {
opacity: 0.35;
cursor: default;
}
.usage-pagination-info {
padding: 0 6px;
font-variant-numeric: tabular-nums;
font-weight: var(--font-weight-semibold);
color: var(--theme-7a746c);
white-space: nowrap;
font-size: var(--font-size-caption);
}
.usage-col-settings-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
height: 30px;
padding: 0 10px;
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
background: var(--theme-f4f1ea);
border: 1px solid var(--theme-e3e1db);
border-radius: 5px;
color: var(--theme-7a746c);
cursor: pointer;
line-height: 1.2;
transition: all 0.15s ease;
flex-shrink: 0;
white-space: nowrap;
}
.usage-col-settings-btn:hover {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
border-color: var(--theme-d5d2cb);
}
.usage-col-settings-btn svg {
width: 14px;
height: 14px;
flex: 0 0 auto;
}
.usage-col-reset-btn {
display: inline-flex;
align-items: center;
justify-content: center;
height: 30px;
width: 30px;
padding: 0;
background: var(--theme-f4f1ea);
border: 1px solid var(--theme-e3e1db);
border-radius: 5px;
color: var(--theme-7a746c);
cursor: pointer;
transition: all 0.15s ease;
flex-shrink: 0;
}
.usage-col-reset-btn:hover {
background: var(--theme-e8e5dc);
color: var(--theme-2d2a26);
border-color: var(--theme-d5d2cb);
}
.usage-col-reset-btn svg {
width: 13px;
height: 13px;
flex: 0 0 auto;
}
.usage-col-reset-btn.icon-only {
width: 30px;
padding: 0;
}
/* Column Settings Dialog */
.usage-column-dialog {
display: flex;
width: min(540px, 100%);
height: auto;
max-height: min(680px, calc(100vh - 40px));
flex-direction: column;
gap: 14px;
overflow: hidden;
}
.usage-column-dialog-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.usage-column-dialog-heading > div {
display: flex;
min-width: 0;
align-items: center;
gap: 9px;
color: var(--theme-5f5a53);
}
.usage-column-dialog-heading h2 {
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-column-dialog-description {
margin: 0;
color: var(--theme-7a746c);
font-size: var(--font-size-caption);
line-height: 1.5;
}
.usage-column-options {
display: grid;
min-height: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
overflow-y: auto;
max-height: 380px;
padding: 2px;
}
.usage-column-option {
display: flex;
min-width: 0;
align-items: center;
gap: 9px;
padding: 9px 11px;
border: 1px solid var(--theme-e3e1db);
border-radius: 6px;
background: var(--theme-fffdf8);
color: var(--theme-5f5a53);
cursor: pointer;
font-size: var(--font-size-caption);
}
.usage-column-option:hover {
border-color: var(--theme-d5d2cb);
background: var(--theme-faf8f4);
}
.usage-column-option input {
width: 15px;
height: 15px;
flex: 0 0 auto;
accent-color: var(--theme-3f6f98);
}
.usage-column-option:has(input:disabled) {
cursor: default;
opacity: 0.65;
}
.usage-column-dialog-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
padding-top: 2px;
}
.usage-column-dialog-meta {
display: flex;
min-width: 0;
align-items: center;
gap: 10px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-column-select-all {
padding: 0;
border: 0;
background: transparent;
color: var(--theme-5f5a53);
cursor: pointer;
font: inherit;
font-weight: var(--font-weight-semibold);
}
.usage-column-select-all:hover {
color: var(--theme-2d2a26);
text-decoration: underline;
}
.usage-column-dialog-actions {
display: flex;
flex: 0 0 auto;
gap: 8px;
}
.usage-column-dialog-actions button {
min-width: 84px;
}
/* Native horizontal scrollbar, mirrored above the table. */
.usage-table-top-scrollbar {
overflow-x: auto;
overflow-y: hidden;
flex: 0 0 18px;
height: 18px;
min-height: 18px;
border-bottom: 1px solid var(--theme-e3e1db);
background: var(--theme-fffdf8);
}
.usage-table-top-scrollbar::-webkit-scrollbar {
height: 16px;
}
.usage-table-top-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.usage-table-top-scrollbar::-webkit-scrollbar-thumb {
min-width: 64px;
/* Keep a slim thumb inside a larger draggable area. */
border: 5px solid transparent;
border-radius: 999px;
background: var(--theme-8a847c);
background-clip: padding-box;
cursor: grab;
}
.usage-table-top-scrollbar::-webkit-scrollbar-thumb:hover {
border-width: 4px 5px;
background-color: var(--theme-7a746c);
}
.usage-table-top-scrollbar::-webkit-scrollbar-thumb:active {
border-width: 4px 5px;
background-color: var(--theme-7a746c);
cursor: grabbing;
}
.usage-table-top-scrollbar.is-hidden {
display: none;
}
/* Main Table Wrap & Table */
.usage-table-wrap {
position: relative;
overflow-x: auto;
overflow-y: auto;
flex: 1 1 auto;
min-height: 240px;
height: auto;
border: 0;
border-radius: 0;
background: var(--theme-fffdf8);
overscroll-behavior: contain;
scrollbar-gutter: stable;
}
/* Hide horizontal scrollbar on the table wrap so only the top scrollbar is shown */
.usage-table-wrap::-webkit-scrollbar {
height: 0;
}
.usage-table-wrap::-webkit-scrollbar:horizontal {
display: none;
height: 0;
}
.usage-events-table {
border-collapse: separate;
border-spacing: 0;
table-layout: fixed;
font-size: var(--font-size-meta);
}
.usage-events-table th,
.usage-events-table td {
height: 44px;
padding: 7px 11px;
border-bottom: 1px solid var(--theme-eeeae2);
color: var(--theme-5f5a53);
white-space: nowrap;
vertical-align: middle;
box-sizing: border-box;
}
.usage-events-table tbody tr {
cursor: default;
transition: background-color 0.12s ease;
}
.usage-events-table tbody tr:hover td {
background-color: var(--theme-f4f1ea) !important;
}
.usage-events-table th {
position: sticky;
z-index: 2;
top: 0;
background: var(--theme-f8f6f1);
color: var(--theme-7a746c);
font-weight: var(--font-weight-semibold);
padding: 0;
user-select: none;
border-bottom: 1px solid var(--theme-e3e1db);
box-shadow: 0 1px 0 rgba(45, 42, 38, 0.04);
}
.usage-th-content {
display: flex;
align-items: center;
height: 44px;
padding: 8px 12px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-events-table th.align-left .usage-th-content,
.usage-events-table td.align-left {
text-align: left;
justify-content: flex-start;
}
.usage-events-table th.align-center .usage-th-content,
.usage-events-table td.align-center {
text-align: center;
justify-content: center;
}
.usage-events-table th.align-right .usage-th-content,
.usage-events-table td.align-right {
text-align: right;
justify-content: flex-end;
}
.usage-col-resizer {
position: absolute;
top: 0;
right: -3px;
bottom: 0;
width: 7px;
cursor: col-resize;
z-index: 6;
touch-action: none;
display: flex;
justify-content: center;
align-items: center;
}
.usage-col-resizer::after {
content: '';
display: block;
width: 1px;
height: 62%;
border-radius: 1px;
background-color: var(--theme-bdb5a9);
opacity: 0.9;
transition: background-color 0.15s ease, height 0.15s ease, width 0.15s ease, opacity 0.15s ease;
}
/* Keep the final resize handle from adding overflow when all columns fit. */
.usage-events-table th:last-child .usage-col-resizer {
right: 0;
}
.usage-events-table th:hover .usage-col-resizer::after {
width: 2px;
height: 78%;
background-color: var(--theme-8a847c);
opacity: 1;
}
.usage-col-resizer:hover::after,
.usage-col-resizer.active::after {
background-color: var(--theme-3f6f98) !important;
width: 2px;
height: 100%;
opacity: 1;
}
body.table-col-resizing,
body.table-col-resizing * {
cursor: col-resize !important;
user-select: none !important;
}
.usage-events-table td.usage-td-time {
font-variant-numeric: tabular-nums;
color: var(--theme-7a746c);
}
.usage-events-table td.usage-td-token,
.usage-events-table td.usage-td-latency,
.usage-events-table td.usage-td-ttft,
.usage-events-table td.usage-td-speed,
.usage-events-table td.usage-td-cache-rate {
font-variant-numeric: tabular-nums;
}
.usage-events-table td.usage-td-provider,
.usage-events-table td.usage-td-source {
overflow: hidden;
text-overflow: ellipsis;
}
.usage-tag-pill {
display: inline-block;
padding: 2px 6px;
border-radius: 4px;
background: var(--theme-eeece6);
color: var(--theme-5f5a53);
font-size: var(--font-size-caption);
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-events-table .usage-stacked-cell {
vertical-align: middle;
overflow: hidden;
}
.usage-events-table .usage-stacked-cell > strong,
.usage-events-table .usage-stacked-cell > small {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-events-table td strong {
font-weight: var(--font-weight-semibold);
color: var(--theme-2d2a26);
}
.usage-events-table td small {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
line-height: 1.3;
}
.usage-result {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 2px 7px;
border-radius: 999px;
font-weight: var(--font-weight-semibold);
font-size: var(--font-size-caption);
line-height: 1.3;
}
.usage-result-dot {
width: 5px;
height: 5px;
border-radius: 50%;
background: currentColor;
}
.usage-result.success {
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
}
.usage-result.failed {
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.usage-result.canceled {
background: var(--theme-f4f1ea);
color: var(--theme-7a746c);
}
.usage-events-table .usage-result-cell {
overflow: hidden;
text-align: center;
}
.usage-result-cell > small {
display: block;
margin-top: 2px;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
@media (max-width: 768px) {
.usage-events-summary {
gap: 8px;
padding: 8px 12px;
}
.usage-events-summary-left,
.usage-events-summary-right {
width: 100%;
justify-content: space-between;
}
}
@media (max-width: 540px) {
.usage-pagination-summary {
display: none;
}
.usage-column-options {
grid-template-columns: 1fr;
}
.usage-column-dialog-footer {
align-items: stretch;
flex-direction: column;
}
.usage-column-dialog-actions button {
flex: 1;
}
}
.usage-events-panel > .usage-empty {
flex: 1 1 auto;
min-height: 240px;
}
.usage-analysis-grid {
align-content: start;
overflow: auto;
}
.usage-pricing-panel {
min-height: 0;
overflow: auto;
}
/* Pricing Tab */
.usage-pricing-panel {
display: grid;
min-width: 0;
align-content: start;
gap: 14px;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 9px;
background: var(--theme-fffdf8);
}
.usage-data-management-panel {
min-height: 0;
padding: 24px;
overflow: auto;
}
.usage-data-management-heading,
.usage-data-management-action,
.usage-data-management-result {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
}
.usage-data-management-heading > div {
display: flex;
align-items: flex-start;
gap: 12px;
}
.usage-data-management-heading h2 {
margin: 0;
font-size: var(--font-size-panel-title);
}
.usage-data-management-heading p,
.usage-data-management-action > div:first-child > span {
display: block;
margin: 6px 0 0;
color: var(--theme-716b61);
font-size: var(--font-size-meta);
}
.usage-data-management-badge {
padding: 5px 9px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 999px;
color: var(--theme-716b61);
font-size: var(--font-size-caption);
}
.usage-data-management-action {
margin-top: 22px;
padding: 16px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 12px;
background: var(--theme-f8f5ee);
}
.usage-data-management-action + .usage-data-management-action {
margin-top: 12px;
}
.usage-storage-limit-action small {
display: block;
margin-top: 7px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-storage-limit-editor {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 8px;
}
.usage-storage-limit-editor label {
display: flex;
align-items: center;
overflow: hidden;
border: 1px solid var(--theme-d8d4cc);
border-radius: 7px;
background: var(--theme-fffdf8);
}
.usage-storage-limit-editor input {
width: 168px;
min-height: 40px;
padding: 0 12px;
border: 0;
background: transparent;
box-shadow: none;
text-align: right;
}
.usage-storage-limit-editor input:focus {
box-shadow: none;
}
.usage-storage-limit-editor label > span {
padding: 0 10px 0 4px;
color: var(--theme-716b61);
font-size: var(--font-size-caption);
}
.usage-data-management-result {
align-items: stretch;
margin-top: 26px;
}
.usage-data-management-panel .management-alert.success {
margin-top: 18px;
}
.usage-data-management-result > div {
display: flex;
flex: 1;
min-width: 0;
flex-direction: column;
gap: 5px;
padding: 12px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 10px;
}
.usage-data-management-result span {
color: var(--theme-716b61);
font-size: var(--font-size-caption);
}
.usage-data-management-result strong {
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-pricing-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
flex-wrap: wrap;
}
.usage-pricing-summary {
display: grid;
gap: 2px;
}
.usage-pricing-summary strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
font-weight: var(--font-weight-semibold);
font-variant-numeric: tabular-nums;
}
.usage-pricing-summary span {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-pricing-actions {
display: flex;
align-items: center;
gap: 8px;
}
.usage-pricing-actions input,
.usage-pricing-actions select {
min-width: 180px;
height: 34px;
padding: 0 10px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
font-size: var(--font-size-meta);
}
.usage-pricing-actions button,
.usage-price-editor-actions button {
height: 34px;
}
.usage-price-sync-dialog {
width: min(1100px, calc(100vw - 32px));
max-height: min(760px, calc(100vh - 32px));
padding: 20px;
border: 1px solid var(--theme-e3e1db);
border-radius: 10px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
}
.usage-price-sync-dialog::backdrop {
background: rgb(0 0 0 / 45%);
}
.usage-price-sync-header,
.usage-price-sync-controls,
.usage-price-sync-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.usage-price-sync-header h2 { margin: 0 0 4px; }
.usage-price-sync-note { color: var(--theme-7a746c); }
.usage-price-sync-controls { justify-content: flex-start; margin: 14px 0; flex-wrap: wrap; }
.usage-price-sync-controls span { margin-right: auto; }
.usage-price-sync-list { max-height: 430px; overflow: auto; }
.usage-price-sync-row {
display: grid;
grid-template-columns: minmax(200px, 1.5fr) repeat(4, minmax(115px, 1fr));
gap: 8px;
align-items: end;
padding: 9px 0;
border-bottom: 1px solid var(--theme-eeeae2);
}
.usage-price-sync-row label:not(.usage-price-sync-identity) { display: grid; gap: 4px; font-size: var(--font-size-caption); }
.usage-price-sync-row input[type="number"] { width: 100%; min-width: 0; height: 34px; padding: 0 8px; border: 1px solid var(--theme-d5d2cb); border-radius: 6px; }
.usage-price-sync-identity { display: flex; align-items: center; gap: 8px; min-width: 0; }
.usage-price-sync-identity span { display: grid; min-width: 0; overflow-wrap: anywhere; }
.usage-price-sync-identity small { color: var(--theme-8a847c); }
.usage-price-sync-unmatched { margin-top: 12px; }
.usage-price-sync-unmatched p { max-height: 90px; overflow: auto; overflow-wrap: anywhere; }
.usage-price-sync-error { color: var(--theme-error, #b42318); }
.usage-price-sync-footer { justify-content: flex-end; margin-top: 14px; }
@media (max-width: 800px) {
.usage-price-sync-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.usage-price-sync-identity { grid-column: 1 / -1; }
}
.usage-price-editor {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 10px;
padding: 14px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-f8f5ee);
}
.usage-price-editor label {
display: grid;
gap: 4px;
}
.usage-price-editor label > span {
color: var(--theme-7a746c);
font-size: var(--font-size-caption);
font-weight: var(--font-weight-semibold);
}
.usage-price-editor input {
min-width: 0;
height: 34px;
padding: 0 8px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
background: var(--theme-fff);
color: var(--theme-2d2a26);
font-size: var(--font-size-meta);
}
.usage-price-editor-actions {
display: flex;
grid-column: 1 / -1;
justify-content: flex-end;
gap: 8px;
}
.usage-pricing-table-wrap {
min-height: 380px;
}
.usage-pricing-table {
width: 100%;
min-width: 980px;
border-collapse: collapse;
font-size: var(--font-size-meta);
}
.usage-pricing-table th,
.usage-pricing-table td {
height: 42px;
padding: 7px 10px;
border-bottom: 1px solid var(--theme-eeeae2);
color: var(--theme-5f5a53);
text-align: center;
white-space: nowrap;
}
.usage-pricing-table th {
position: sticky;
z-index: 1;
top: 0;
background: var(--theme-f4f1ea);
color: var(--theme-7a746c);
font-weight: var(--font-weight-semibold);
text-align: center;
}
.usage-pricing-table th:first-child,
.usage-pricing-table td:first-child {
text-align: center;
}
.usage-price-row-actions {
display: flex;
justify-content: center;
gap: 5px;
}
.real-auth-files-panel {
display: block;
height: auto;
min-height: 460px;
}
.auth-files-toolbar {
grid-template-columns: 18px minmax(0, 1fr) 150px 128px;
min-height: 42px;
}
.auth-files-toolbar select {
width: 100%;
height: 38px;
border: 0;
border-left: 1px solid var(--theme-e3e1db);
border-radius: 0;
background: transparent;
color: var(--theme-5f5a53);
}
.real-auth-file-list {
margin-top: 14px;
border-top: 1px solid var(--theme-e3e1db);
}
.real-auth-file-row {
display: grid;
grid-template-columns: 34px minmax(0, 1.2fr) minmax(160px, 0.8fr) auto;
align-items: center;
gap: 14px;
min-height: 76px;
padding: 10px 0;
border-bottom: 1px solid var(--theme-eeece6);
}
.real-auth-file-row > .quota-action-feedback {
grid-column: 2 / -1;
min-width: 0;
}
.auth-file-quota {
display: flex;
grid-column: 2 / -1;
align-items: center;
flex-wrap: wrap;
gap: 5px 8px;
min-width: 0;
margin-top: -7px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.auth-file-quota.loading,
.auth-file-quota.error {
flex-wrap: nowrap;
}
.auth-file-quota.error {
color: var(--theme-9f2d20);
}
.auth-file-quota.error small {
min-width: 0;
overflow: hidden;
color: var(--theme-9f2d20);
text-overflow: ellipsis;
white-space: nowrap;
}
.auth-file-quota-plan,
.auth-file-quota-credit,
.auth-file-quota-empty {
white-space: nowrap;
}
.auth-file-quota-plan {
color: var(--theme-5f5a53);
font-weight: var(--font-weight-semibold);
}
.auth-file-quota-item {
display: inline-flex;
align-items: center;
gap: 4px;
min-width: 0;
padding: 2px 7px;
border-radius: 999px;
background: var(--theme-f2f0ea);
white-space: nowrap;
}
.auth-file-quota-item strong {
color: var(--theme-2d2a26);
}
.auth-file-quota-item small {
display: inline-block;
max-width: 150px;
overflow: hidden;
color: var(--theme-9a958d);
text-overflow: ellipsis;
}
.real-auth-file-row.disabled > :not(.auth-file-actions) {
opacity: 0.68;
}
.real-auth-file-row > .provider-logo {
width: 28px;
height: 28px;
}
.auth-file-main {
display: grid;
gap: 5px;
}
.auth-file-title {
gap: 8px;
}
.auth-file-main > span,
.auth-file-meta span {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.auth-file-meta {
justify-content: flex-end;
gap: 10px;
}
.real-auth-file-row .primary-button,
.real-auth-file-row .secondary-button {
min-width: 52px;
}
.real-auth-file-row .auth-file-priority-button {
min-width: 92px;
white-space: nowrap;
}
.auth-priority-dialog {
grid-template-rows: 40px auto auto 20px 40px;
width: min(460px, 100%);
height: auto;
min-height: 0;
}
.auth-priority-target {
overflow: hidden;
padding: 9px 11px;
border: 1px solid var(--theme-e3e1db);
border-radius: 6px;
background: var(--theme-f4f1ea);
color: var(--theme-5f5a53);
font-family: var(--font-family-mono);
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.auth-priority-field {
display: grid;
gap: 8px;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
font-weight: var(--font-weight-semibold);
}
.auth-priority-field input {
width: 100%;
height: 42px;
min-width: 0;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 6px;
outline: none;
background: var(--theme-ffffff);
color: var(--theme-2d2a26);
font: inherit;
}
.auth-priority-field input:focus {
border-color: var(--theme-777067);
box-shadow: 0 0 0 3px rgba(119, 112, 103, 0.12);
}
.auth-priority-field input[aria-invalid='true'] {
border-color: var(--theme-a83f32);
}
.auth-priority-field small {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-regular);
line-height: var(--line-height-body);
}
.page-footnote {
margin: -6px 0 0;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.quota-group-list {
display: grid;
gap: 18px;
}
.quota-provider-group {
display: grid;
gap: 10px;
}
.quota-group-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.quota-group-heading > div {
display: flex;
align-items: center;
gap: 8px;
}
.quota-group-heading h2 {
margin: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-panel-title);
}
.quota-group-heading .provider-logo {
width: 24px;
height: 24px;
}
.real-quota-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
gap: 12px;
}
.real-quota-card {
display: grid;
gap: 16px;
min-width: 0;
}
.real-quota-card-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.real-quota-card-header > div {
display: grid;
gap: 4px;
min-width: 0;
}
.real-quota-card-header .quota-card-actions {
display: flex;
align-items: center;
gap: 7px;
flex: 0 0 auto;
}
.quota-card-actions .compact-button {
margin-top: 0;
white-space: nowrap;
}
.real-quota-card-header strong,
.real-quota-card-header span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.real-quota-card-header span {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.quota-row-list {
display: grid;
gap: 13px;
}
.app-confirm-backdrop {
z-index: 160;
padding: 20px;
}
.config-dialog.app-confirm-dialog {
width: min(460px, 100%);
height: auto;
grid-template-rows: none;
gap: 18px;
max-height: calc(100vh - 40px);
overflow: auto;
}
.app-confirm-dialog > p {
margin: 0;
line-height: 1.65;
white-space: pre-wrap;
overflow-wrap: anywhere;
}
.app-confirm-details {
display: grid;
gap: 10px;
margin: 0;
padding: 12px;
border-radius: 7px;
background: var(--theme-f4f2ec);
}
.app-confirm-details > div {
display: flex;
justify-content: space-between;
gap: 16px;
}
.app-confirm-details dt {
color: var(--theme-7a746c);
}
.app-confirm-details dd {
margin: 0;
text-align: right;
overflow-wrap: anywhere;
}
.app-confirm-warning {
color: var(--theme-7a746c);
font-size: var(--font-size-label);
}
.quota-action-feedback {
display: flex;
gap: 7px;
align-items: flex-start;
padding: 9px 11px;
border-radius: 6px;
background: var(--theme-f4f2ec);
font-size: var(--font-size-label);
line-height: 1.6;
overflow-wrap: anywhere;
}
.quota-action-feedback svg {
flex-shrink: 0;
margin-top: 3px;
}
.quota-action-feedback.error {
color: var(--theme-9f2d20);
background: var(--theme-fff1ee);
}
.quota-reset-credit-summary {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px 14px;
padding: 8px 10px;
border-radius: 6px;
background: var(--theme-f4f2ec);
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.quota-reset-credit-summary span {
white-space: nowrap;
}
.quota-reset-credit-summary strong {
color: var(--theme-2d2a26);
}
.real-quota-row {
display: grid;
gap: 6px;
}
.real-quota-row > div:first-child {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
}
.real-quota-row > div:first-child strong {
color: var(--theme-2d2a26);
}
.real-quota-track {
height: 8px;
overflow: hidden;
border-radius: 999px;
background: var(--theme-e8e5dc);
}
.real-quota-track span {
display: block;
height: 100%;
border-radius: inherit;
background: var(--theme-2d2a26);
}
.real-quota-row small {
min-height: 15px;
color: var(--theme-9a958d);
font-size: var(--font-size-meta);
}
.quota-card-message,
.quota-card-error {
display: flex;
align-items: center;
gap: 8px;
min-height: 72px;
color: var(--theme-7a746c);
font-size: var(--font-size-body);
}
.quota-card-error {
align-items: flex-start;
color: var(--theme-9f2d20);
}
.quota-summary-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
gap: 12px;
}
.quota-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
gap: 14px;
}
.quota-card {
display: grid;
grid-template-rows: 46px 34px 10px 74px;
gap: 14px;
min-height: 220px;
}
.quota-meter-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
}
.quota-meter-row strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-display);
line-height: 1;
}
.quota-meter-row span {
min-width: 0;
overflow: hidden;
color: var(--theme-7a746c);
font-size: var(--font-size-body);
text-overflow: ellipsis;
white-space: nowrap;
}
.quota-track {
height: 10px;
overflow: hidden;
border-radius: 999px;
background: var(--theme-e8e5dc);
}
.quota-track span {
display: block;
height: 100%;
border-radius: inherit;
background: var(--theme-2d2a26);
}
.quota-meta-grid {
display: grid;
grid-template-columns: 72px minmax(0, 1fr);
align-items: center;
gap: 8px 12px;
min-width: 0;
padding: 10px 12px;
border-radius: 6px;
background: var(--theme-f4f1ea);
}
.quota-meta-grid span,
.quota-meta-grid strong {
min-width: 0;
overflow: hidden;
font-size: var(--font-size-label);
text-overflow: ellipsis;
white-space: nowrap;
}
.quota-meta-grid span {
color: var(--theme-7a746c);
}
.quota-meta-grid strong {
color: var(--theme-2d2a26);
text-align: right;
}
.install-dialog-backdrop {
position: fixed;
inset: 0;
z-index: 50;
display: grid;
place-items: center;
padding: 24px;
background: rgba(45, 42, 38, 0.42);
backdrop-filter: blur(3px);
}
.install-dialog {
display: grid;
grid-template-rows: 48px 42px 10px 22px 72px 40px;
gap: 15px;
width: min(420px, 100%);
height: 360px;
padding: 24px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
outline: none;
background: var(--theme-fffdf8);
box-shadow: 0 18px 48px rgba(45, 42, 38, 0.24);
}
.install-dialog-heading {
min-width: 0;
}
.install-dialog-heading > span {
display: block;
margin-bottom: 5px;
color: var(--theme-7a746c);
font-size: var(--font-size-label);
font-weight: var(--font-weight-semibold);
}
.install-dialog-heading h2 {
margin: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-dialog-title);
line-height: var(--line-height-tight);
text-overflow: ellipsis;
white-space: nowrap;
}
.install-dialog-phase {
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
align-items: center;
gap: 12px;
min-width: 0;
padding: 0 12px;
border-radius: 6px;
background: var(--theme-f4f1ea);
}
.install-dialog-phase span {
color: var(--theme-7a746c);
font-size: var(--font-size-body);
}
.install-dialog-phase strong {
overflow: hidden;
color: var(--theme-2d2a26);
text-align: right;
text-overflow: ellipsis;
white-space: nowrap;
}
.install-progress-track {
width: 100%;
height: 10px;
overflow: hidden;
border-radius: 999px;
background: var(--theme-e8e5dc);
}
.install-progress-fill {
display: block;
width: 0;
height: 100%;
border-radius: inherit;
background: var(--theme-2d2a26);
transition: width 160ms ease;
}
.install-dialog.success .install-progress-fill {
background: var(--theme-2f6b3f);
}
.install-dialog.error .install-progress-fill {
background: var(--theme-9f2d20);
}
.install-progress-track.unknown .install-progress-fill {
visibility: hidden;
width: 36%;
}
.install-progress-track.unknown.is-running .install-progress-fill {
visibility: visible;
animation: install-progress-slide 1.1s ease-in-out infinite;
}
.install-progress-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
min-width: 0;
color: var(--theme-6d6760);
font-size: var(--font-size-body);
}
.install-progress-meta strong,
.install-progress-meta span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.install-progress-meta strong {
color: var(--theme-2d2a26);
}
.install-dialog-message {
overflow: auto;
padding: 10px 12px;
border-radius: 6px;
background: var(--theme-faf9f5);
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.install-dialog-message.success {
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
}
.install-dialog-message.error {
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.install-dialog > button {
width: 100%;
height: 40px;
}
.app-update-dialog {
grid-template-rows: none;
height: auto;
min-height: 0;
gap: 16px;
}
.app-update-confirm-copy {
margin: 0;
color: var(--theme-5f5a53);
font-size: var(--font-size-body);
line-height: var(--line-height-relaxed);
}
.app-update-dialog-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.custom-mirror-dialog {
width: min(500px, 100%);
}
.custom-mirror-dialog-description {
margin: 0;
color: var(--theme-6f6961);
font-size: var(--font-size-body);
line-height: var(--line-height-relaxed);
}
.custom-mirror-dialog > input {
width: 100%;
height: 44px;
min-width: 0;
padding: 0 12px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
}
.custom-mirror-dialog-error {
color: var(--theme-9f2d20);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
}
.custom-mirror-dialog-list {
display: grid;
max-height: 150px;
gap: 6px;
overflow-y: auto;
}
.custom-mirror-dialog-list > span {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.custom-mirror-dialog-list > div {
display: grid;
grid-template-columns: minmax(0, 1fr) 34px;
align-items: center;
gap: 8px;
padding: 6px 6px 6px 10px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
background: var(--theme-faf8f2);
}
.custom-mirror-dialog-list > div > span {
overflow: hidden;
color: var(--theme-4b4742);
font-size: var(--font-size-meta);
text-overflow: ellipsis;
white-space: nowrap;
}
.custom-mirror-dialog-list button {
display: grid;
width: 30px;
height: 30px;
place-items: center;
padding: 0;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--theme-9f2d20);
}
.custom-mirror-dialog-list button:hover:not(:disabled) {
background: rgba(159, 45, 32, 0.08);
}
.app-update-dialog .install-dialog-message {
display: flex;
align-items: center;
gap: 7px;
}
@keyframes install-progress-slide {
from {
transform: translateX(-120%);
}
to {
transform: translateX(300%);
}
}
@container agent-panel (min-width: 900px) {
.agent-core-config {
grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: 8px;
align-items: stretch;
}
.agent-status-grid,
.agent-status-messages,
.agent-config-footer {
grid-column: 1 / -1;
}
.agent-model-section {
grid-column: 1;
height: 100%;
}
.agent-modification-actions {
grid-column: 2;
height: 100%;
}
}
@container agent-panel (max-width: 760px) {
.agent-claude-code-runtime-settings {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.agent-claude-code-disable-compact {
grid-column: 1 / -1;
}
.agent-claude-desktop-mapping-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@container agent-panel (max-width: 640px) {
.agent-claude-desktop-mapping > .agent-section-heading {
align-items: stretch;
flex-direction: column;
}
.agent-claude-desktop-mapping .agent-section-heading-actions {
justify-content: space-between;
}
.agent-claude-desktop-mapping-grid {
grid-template-columns: 1fr;
}
.agent-claude-code-runtime-settings {
grid-template-columns: 1fr;
}
.agent-claude-code-disable-compact {
grid-column: auto;
}
.agent-codex-options {
grid-template-columns: 1fr;
}
.agent-status-grid {
grid-template-columns: 1fr;
min-height: 0;
}
.agent-status-grid.dual-install-status-grid {
grid-template-columns: 1fr;
}
.agent-status-grid.pi-status-grid {
grid-template-columns: 1fr;
}
.codex-session-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.codex-session-database-metric {
grid-column: 1 / -1;
}
.codex-session-repair-panel {
grid-template-columns: 1fr;
}
.codex-session-repair-actions {
justify-content: space-between;
flex-wrap: wrap;
}
.codex-session-row,
.codex-session-row:has(.codex-session-checkbox) {
grid-template-columns: minmax(0, 1fr) auto;
}
.codex-session-row:has(.codex-session-checkbox) {
grid-template-columns: 20px minmax(0, 1fr);
}
.codex-session-row:has(.codex-session-checkbox) .codex-session-main {
grid-column: 2;
}
.codex-session-meta,
.codex-session-row:has(.codex-session-checkbox) .codex-session-meta {
grid-column: 1 / -1;
grid-template-columns: auto minmax(80px, 1fr) auto;
align-items: center;
justify-items: start;
text-align: left;
}
.codex-session-meta small,
.codex-session-meta time {
max-width: none;
}
.codex-session-meta time {
justify-self: end;
}
}
@media (max-width: 1080px) {
.app-shell {
grid-template-columns: 232px minmax(0, 1fr);
}
.status-strip {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.kernel-layout {
grid-template-columns: 1fr;
}
.provider-workbench {
grid-template-columns: 1fr;
}
.provider-category-panel {
grid-template-columns: repeat(4, minmax(0, 1fr));
height: auto;
}
.provider-resource-panel {
height: 520px;
}
.real-provider-row {
grid-template-columns: 32px minmax(0, 1fr) max-content;
}
.provider-row-meta {
display: none;
}
.control-panel,
.version-panel {
grid-column: auto;
}
.config-management-content {
grid-template-columns: 1fr;
}
}
@media (max-width: 760px) {
.app-shell:has(.usage-records-page) {
height: auto;
min-height: 100%;
}
.app-shell:has(.usage-records-page) .content {
overflow: visible;
}
.usage-records-page {
flex: none;
overflow: visible;
}
.usage-table-wrap,
.usage-events-panel > .usage-empty {
min-height: 320px;
height: min(70vh, 640px);
flex: none;
}
.app-shell {
grid-template-columns: 1fr;
}
.sidebar {
position: static;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 12px;
height: auto;
padding: 14px;
}
.sidebar-brand {
margin-bottom: 0;
}
.nav-section {
display: flex;
overflow-x: auto;
padding-bottom: 2px;
}
.nav-section button {
width: auto;
min-width: 116px;
text-align: center;
}
.nav-section button {
grid-template-columns: 17px minmax(0, 1fr) 10px;
}
.sidebar-bottom {
margin-top: 0;
padding-top: 0;
border-top: 0;
}
.content {
padding: 18px;
}
.status-strip {
grid-template-columns: 1fr;
}
.config-network-grid {
grid-template-columns: 1fr;
grid-auto-rows: auto;
}
.config-tls-fields {
grid-template-columns: 1fr;
}
.config-management-form {
grid-template-columns: 1fr;
}
.config-management-form-footer {
grid-column: auto;
}
.client-api-grid {
grid-template-columns: 1fr;
}
.oauth-grid,
.quota-grid,
.quota-summary-grid {
grid-template-columns: 1fr;
}
.real-quota-grid {
grid-template-columns: 1fr;
}
.real-provider-row {
grid-template-columns: 32px minmax(0, 1fr) auto;
}
.real-auth-file-row {
grid-template-columns: 34px minmax(0, 1fr);
}
.auth-file-actions {
grid-column: 2;
flex-wrap: wrap;
justify-content: flex-start;
}
.auth-files-page .management-header {
align-items: stretch;
flex-direction: column;
}
.auth-files-page .management-heading-actions {
flex-wrap: wrap;
justify-content: flex-start;
}
.provider-row-meta,
.auth-file-meta {
display: none;
}
.auth-files-toolbar {
grid-template-columns: 18px minmax(0, 1fr);
}
.auth-files-toolbar select {
border-top: 1px solid var(--theme-e3e1db);
border-left: 0;
}
.auth-files-toolbar select:first-of-type {
grid-column: 1 / -1;
}
.auth-files-toolbar select:last-of-type {
grid-column: 1 / -1;
}
.provider-category-panel {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.agent-workbench {
grid-template-columns: 1fr;
}
.usage-analysis-grid {
grid-template-columns: 1fr;
}
.usage-pricing-toolbar {
align-items: stretch;
flex-direction: column;
}
.usage-pricing-actions {
display: grid;
grid-template-columns: 1fr;
}
.usage-pricing-actions input {
width: 100%;
}
.usage-price-editor {
grid-template-columns: 1fr;
}
.thinking-alias-workbench {
grid-template-columns: 1fr;
}
.thinking-alias-editor-panel,
.thinking-alias-list-panel {
height: auto;
min-height: 0;
}
.thinking-model-list {
max-height: 240px;
}
.thinking-alias-list {
max-height: 460px;
}
.agent-client-list {
height: 270px;
min-height: 0;
max-height: 270px;
}
.agent-config-panel {
height: auto;
min-height: 0;
overflow: visible;
}
.codex-session-metrics {
grid-template-columns: repeat(3, minmax(70px, 1fr));
}
.codex-session-database-metric {
grid-column: 1 / -1;
}
.codex-session-repair-panel {
grid-template-columns: 1fr;
}
.codex-session-repair-actions {
justify-content: space-between;
}
.codex-session-row,
.codex-session-row:has(.codex-session-checkbox) {
grid-template-columns: minmax(0, 1fr) auto;
}
.codex-session-row:has(.codex-session-checkbox) .codex-session-main {
grid-column: 2;
}
.codex-session-row:has(.codex-session-checkbox) .codex-session-meta {
grid-column: 1 / -1;
}
.codex-session-meta {
grid-column: 1 / -1;
grid-template-columns: auto minmax(80px, 1fr) auto;
align-items: center;
justify-items: start;
text-align: left;
}
.codex-session-meta small,
.codex-session-meta time {
max-width: none;
}
.codex-session-meta time {
justify-self: end;
}
.agents-page,
.agent-config-panel {
grid-template-rows: auto;
}
.agent-model-section,
.agent-modification-actions {
height: auto;
}
.agent-list-items {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.agent-list-items button {
grid-template-columns: 26px minmax(0, 1fr) 8px;
}
.auth-filter-grid {
grid-template-columns: 1fr;
}
.auth-files-panel {
grid-template-rows: 84px auto minmax(0, 1fr);
height: 660px;
}
.panel {
padding: 18px;
}
.kernel-layout > .panel {
padding: 20px;
}
}
@media (max-width: 620px) {
.agent-modification-buttons.codex {
grid-template-columns: 1fr;
}
}
@media (max-width: 520px) {
.usage-data-management-heading,
.usage-data-management-action,
.usage-data-management-result {
align-items: stretch;
flex-direction: column;
}
.usage-data-management-action .primary-button {
width: 100%;
}
.usage-storage-limit-editor {
align-items: stretch;
flex-direction: column;
}
.usage-storage-limit-editor label {
width: 100%;
}
.usage-storage-limit-editor input {
flex: 1;
width: auto;
min-width: 0;
}
.panel-heading {
flex-direction: column;
}
.button-row {
grid-auto-columns: auto;
grid-auto-flow: row;
grid-template-columns: 1fr;
}
.primary-button,
.secondary-button,
.danger-button {
width: 100%;
}
.config-management-form-footer {
grid-template-columns: 1fr;
}
.config-management-actions {
display: grid;
grid-template-columns: 1fr;
width: 100%;
}
.kernel-layout .panel-heading {
flex-direction: row;
}
.management-header {
align-items: start;
flex-direction: column;
}
.agent-header-actions {
width: 100%;
align-items: stretch;
flex-direction: column;
}
.agent-header-actions .agent-inline-message {
max-width: none;
text-align: left;
}
.agent-subpage-tabs {
width: 100%;
grid-auto-columns: minmax(104px, 1fr);
}
.codex-session-overview,
.codex-session-list-section {
padding: 12px;
}
.codex-session-overview-head,
.codex-session-list-head {
align-items: stretch;
flex-direction: column;
}
.codex-session-overview-head .compact-button {
width: 100%;
}
.codex-session-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.codex-session-database-metric {
grid-column: 1 / -1;
}
.codex-session-repair-actions,
.codex-session-selection-actions {
width: 100%;
align-items: stretch;
flex-direction: column;
}
.codex-session-row,
.codex-session-row:has(.codex-session-checkbox) {
grid-template-columns: 20px minmax(0, 1fr);
gap: 9px;
}
.codex-session-row:not(:has(.codex-session-checkbox)) .codex-session-main,
.codex-session-row:not(:has(.codex-session-checkbox)) .codex-session-meta,
.codex-session-row:not(:has(.codex-session-checkbox)) .codex-session-delete-button {
grid-column: 1 / -1;
}
.codex-session-main,
.codex-session-row:has(.codex-session-checkbox) .codex-session-main {
grid-column: 2;
}
.codex-session-meta,
.codex-session-row:has(.codex-session-checkbox) .codex-session-meta {
grid-column: 1 / -1;
grid-template-columns: auto minmax(0, 1fr);
gap: 6px;
}
.codex-session-meta time {
grid-column: 1 / -1;
justify-self: start;
}
.codex-session-delete-button {
grid-column: 1 / -1;
width: 100%;
}
.codex-session-cleanup-dialog {
max-height: calc(100vh - 28px);
}
.usage-tabs {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.usage-tabs button {
flex: 1 1 45%;
min-width: 0;
padding: 0 7px;
}
.usage-topbar-actions {
width: 100%;
}
.usage-collector-state {
flex: 1;
}
.usage-stat-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.usage-custom-range {
flex-direction: column;
align-items: stretch;
}
.provider-category-panel {
grid-template-columns: 1fr;
}
.real-provider-row {
grid-template-columns: 32px minmax(0, 1fr);
}
.provider-row-actions {
grid-column: 2;
flex-wrap: wrap;
justify-content: flex-start;
}
.thinking-effort-options {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.thinking-alias-row {
grid-template-columns: minmax(0, 1fr) auto;
}
.thinking-alias-route {
grid-column: 1 / -1;
}
.agent-list-items,
.agent-status-grid {
grid-template-columns: 1fr;
}
.agent-status-grid {
height: auto;
}
.agent-section-heading {
align-items: stretch;
flex-direction: column;
}
.agent-modification-control > .agent-inline-message {
max-width: none;
text-align: left;
}
.agent-config-footer,
.agent-launch-actions {
width: 100%;
}
.agent-launch-control {
width: 100%;
justify-items: stretch;
}
.agent-launch-actions {
display: grid;
grid-template-columns: 1fr;
}
.agent-launch-actions > button {
width: 100%;
}
.agent-launch-control > .agent-inline-message {
max-width: none;
text-align: left;
}
.oauth-card {
grid-template-rows: auto auto auto;
min-height: 0;
}
.oauth-browser-picker {
width: 100%;
grid-template-columns: 1fr;
justify-content: stretch;
}
.oauth-browser-picker small {
grid-column: 1;
text-align: left;
}
.oauth-card-body,
.oauth-callback-row {
grid-template-columns: 1fr;
grid-template-rows: auto;
}
.oauth-callback-row {
align-items: stretch;
}
.management-panel-heading {
align-items: start;
flex-direction: column;
}
.management-heading-actions {
width: 100%;
}
.management-heading-actions button {
flex: 1;
}
.management-heading-actions {
flex-wrap: wrap;
}
.muted-summary {
width: 100%;
}
.compact-toolbar {
width: 100%;
}
.real-provider-row {
grid-template-columns: 32px minmax(0, 1fr);
}
.real-auth-file-row {
grid-template-columns: 30px minmax(0, 1fr);
}
.provider-row-actions {
grid-column: 2;
justify-content: flex-start;
}
.auth-file-actions {
grid-column: 2;
flex-wrap: wrap;
justify-content: flex-start;
}
.real-auth-file-row > .provider-logo {
align-self: start;
margin-top: 3px;
}
.info-list div {
grid-template-columns: 1fr;
gap: 4px;
}
.install-dialog-backdrop {
padding: 16px;
}
.config-dialog-backdrop {
padding: 14px;
}
.config-dialog {
padding: 18px;
}
.model-discovery-backdrop {
padding: 12px;
}
.model-discovery-dialog {
grid-template-rows: auto 40px auto minmax(180px, 1fr) 40px;
height: calc(100vh - 24px);
min-height: 0;
padding: 16px;
}
.model-discovery-header > div {
display: grid;
gap: 2px;
}
.model-discovery-toolbar {
align-items: stretch;
flex-direction: column;
gap: 8px;
}
.model-discovery-toolbar > div,
.model-discovery-actions {
width: 100%;
}
.model-discovery-toolbar button,
.model-discovery-actions button {
flex: 1;
min-width: 0;
}
.provider-health-overview {
grid-template-columns: 1fr;
}
.provider-health-overview span,
.provider-health-overview small {
grid-column: auto;
white-space: normal;
}
.provider-health-model-row {
grid-template-columns: minmax(0, 1fr) auto;
}
.provider-health-single-button {
grid-column: 1 / -1;
width: 100%;
}
}
@media (prefers-reduced-motion: reduce) {
.install-progress-track.unknown.is-running .install-progress-fill {
animation-duration: 2.2s;
}
}
.inline-notice {
margin: 0 0 12px;
padding: 10px 12px;
border: 1px solid var(--theme-e2ddd3);
border-radius: 8px;
background: var(--theme-f8f5ef);
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
line-height: var(--line-height-body);
}
.inline-notice.success {
border-color: var(--theme-c9dfcf);
background: var(--theme-eef7f0);
color: var(--theme-2f6b3a);
}
.inline-notice.error {
border-color: var(--theme-efc9c2);
background: var(--theme-fdf1ee);
color: var(--theme-a33b2b);
}