Files
EasyCLIProxyAPI/src/styles.css
T
2026-07-31 01:55:16 +08:00

7466 lines
141 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-4d78a8: #4d78a8;
--theme-4f4a43: #4f4a43;
--theme-4f825c: #4f825c;
--theme-554075: #554075;
--theme-5d9a6c: #5d9a6c;
--theme-5f5a53: #5f5a53;
--theme-654f91: #654f91;
--theme-655f57: #655f57;
--theme-66709a: #66709a;
--theme-6684a1: #6684a1;
--theme-6d6760: #6d6760;
--theme-6f6961: #6f6961;
--theme-716b61: #716b61;
--theme-777067: #777067;
--theme-7a746c: #7a746c;
--theme-805a24: #805a24;
--theme-8069ad: #8069ad;
--theme-817b73: #817b73;
--theme-866b4d: #866b4d;
--theme-8a625d: #8a625d;
--theme-8a847c: #8a847c;
--theme-8b5b21: #8b5b21;
--theme-8d8377: #8d8377;
--theme-8f3025: #8f3025;
--theme-918a81: #918a81;
--theme-9a938a: #9a938a;
--theme-9a958d: #9a958d;
--theme-9b958c: #9b958c;
--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;
}
:root[data-theme='dark'] {
color-scheme: dark;
--theme-2d2a26: #ece9e2;
--theme-2f6b3a: #83d295;
--theme-2f6b3f: #83d29a;
--theme-342f2a: #d3cec6;
--theme-344ca1: #9fb4ff;
--theme-39352f: #d3cfc7;
--theme-3f3550: #cdc8d6;
--theme-3f6f98: #c6d5e1;
--theme-42637f: #c8d3dd;
--theme-433f39: #d4d0c9;
--theme-4d78a8: #a5b7ca;
--theme-4f4a43: #d5d1ca;
--theme-4f825c: #cbdbd0;
--theme-554075: #d0c8dc;
--theme-5d9a6c: #abc4b1;
--theme-5f5a53: #c8cdd5;
--theme-654f91: #b8a4e2;
--theme-655f57: #d8d4cd;
--theme-66709a: #adb1c2;
--theme-6684a1: #acb8c4;
--theme-6d6760: #d8d5ce;
--theme-6f6961: #d9d5ce;
--theme-716b61: #d9d5ce;
--theme-777067: #d9d6cf;
--theme-7a746c: #aab2bd;
--theme-805a24: #e3b778;
--theme-8069ad: #b8a4e2;
--theme-817b73: #dbd7d1;
--theme-866b4d: #dcd4cb;
--theme-8a625d: #dad6d0;
--theme-8a847c: #929ba7;
--theme-8b5b21: #e3b778;
--theme-8d8377: #bcb8b3;
--theme-8f3025: #e6c2be;
--theme-918a81: #bbb8b4;
--theme-9a938a: #bbb8b4;
--theme-9a958d: #747e8a;
--theme-9b958c: #747e8a;
--theme-9ca9df: #9ea8d1;
--theme-9d8abd: #b4aac6;
--theme-9db8a5: #b0c0b4;
--theme-9f2d20: #ff9385;
--theme-a33b2b: #f58d7f;
--theme-a83f32: #f19387;
--theme-aaa49b: #69737f;
--theme-b64132: #f39a8e;
--theme-b6d3bd: #315b3d;
--theme-b8d1bb: #315b3d;
--theme-b9d5bf: #315b3d;
--theme-bdb5a9: #beb9b1;
--theme-bf8a43: #d0bb9f;
--theme-c77b30: #d6b799;
--theme-c7c2b8: #4a5564;
--theme-c9c4ba: #bebab2;
--theme-c9d6e2: #303c47;
--theme-c9d8ca: #315b3d;
--theme-c9dfcf: #315b3d;
--theme-d5d2cb: #3b4451;
--theme-d8d1eb: #493d61;
--theme-d8d2c8: #363a46;
--theme-d8d4cc: #3b4451;
--theme-d9d4c9: #363a45;
--theme-dce2fb: #293a61;
--theme-dce8df: #203c29;
--theme-ddd8ce: #343843;
--theme-dfb7b0: #633832;
--theme-dfbf91: #654a26;
--theme-dfdcd4: #2a313b;
--theme-e2b6ae: #633832;
--theme-e2ddd3: #443d2f;
--theme-e3e1db: #303743;
--theme-e4d0af: #594328;
--theme-e5e1d9: #30343e;
--theme-e8e4dc: #40392c;
--theme-e8e5dc: #2a313b;
--theme-ece8df: #3e382b;
--theme-eeeae2: #2a3039;
--theme-eeece6: #252b34;
--theme-eef1ff: #1b2436;
--theme-eef7f0: #172a1e;
--theme-efc9c2: #633832;
--theme-f0ede6: #3b3529;
--theme-f0eee8: #151a21;
--theme-f1ecfb: #231e31;
--theme-f1f6fa: #192630;
--theme-f1f8f1: #172a1e;
--theme-f2efe8: #3a3428;
--theme-f2f0ea: #393528;
--theme-f2f7f2: #172a1e;
--theme-f3f8f4: #172a1e;
--theme-f4f1ea: #20262f;
--theme-f4f2ec: #1f2229;
--theme-f5f1ff: #231e31;
--theme-f5f7ff: #1b2436;
--theme-f6f2ec: #1f2229;
--theme-f7f3ff: #231e31;
--theme-f8f5ee: #1f2229;
--theme-f8f5ef: #1f2229;
--theme-f8f5ff: #231e31;
--theme-f8f6f1: #1f2229;
--theme-faf8f2: #1f2229;
--theme-faf8f4: #1f2229;
--theme-faf9f5: #101419;
--theme-fdf1ee: #321c1a;
--theme-fff: #1c2129;
--theme-fff1ee: #321c1a;
--theme-fff7e9: #302417;
--theme-fff8eb: #302417;
--theme-fffdf8: #191e25;
--theme-ffffff: #1c2129;
}
/*
* 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-5f5a53: #556159;
--theme-655f57: #5e6a61;
--theme-6d6760: #667169;
--theme-6f6961: #69756c;
--theme-716b61: #6c776f;
--theme-777067: #717c74;
--theme-7a746c: #657168;
--theme-817b73: #758078;
--theme-8a847c: #7d877f;
--theme-8d8377: #808a82;
--theme-918a81: #879189;
--theme-9a938a: #8e9890;
--theme-9a958d: #909a92;
--theme-9b958c: #929c94;
--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[data-theme='dark'] {
--ui-accent: #5dd3c7;
--ui-accent-strong: #83e0d6;
--ui-accent-soft: rgba(45, 169, 158, 0.2);
--ui-focus-ring: rgba(93, 211, 199, 0.36);
--ui-accent-shadow: rgba(0, 0, 0, 0.22);
--ui-panel-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
--theme-2d2a26: #edf2ee;
--theme-342f2a: #e4eae5;
--theme-39352f: #dce3dd;
--theme-433f39: #d5ddd6;
--theme-4f4a43: #ccd5ce;
--theme-5f5a53: #c0cac2;
--theme-655f57: #b8c2ba;
--theme-6d6760: #b0bbb2;
--theme-6f6961: #adb8af;
--theme-716b61: #aab5ac;
--theme-777067: #a7b2a9;
--theme-7a746c: #9eaaa1;
--theme-817b73: #96a299;
--theme-8a847c: #8d998f;
--theme-8d8377: #8a968d;
--theme-918a81: #849087;
--theme-9a938a: #7e8a81;
--theme-9a958d: #768279;
--theme-9b958c: #78847b;
--theme-aaa49b: #6f7b72;
--theme-bdb5a9: #59655c;
--theme-c7c2b8: #4b584e;
--theme-c9c4ba: #465349;
--theme-d5d2cb: #3a473d;
--theme-d8d2c8: #354137;
--theme-d8d4cc: #3b483e;
--theme-d9d4c9: #344036;
--theme-ddd8ce: #303b32;
--theme-dfdcd4: #29352b;
--theme-e2ddd3: #354238;
--theme-e3e1db: #2f3b32;
--theme-e5e1d9: #2d3830;
--theme-e8e4dc: #28332b;
--theme-e8e5dc: #263129;
--theme-ece8df: #232d26;
--theme-eeeae2: #29342c;
--theme-eeece6: #242e27;
--theme-f0ede6: #222c25;
--theme-f0eee8: #171c18;
--theme-f2efe8: #202922;
--theme-f2f0ea: #212a23;
--theme-f4f1ea: #1e2721;
--theme-f4f2ec: #1d251f;
--theme-f6f2ec: #19211b;
--theme-f8f5ee: #1c231e;
--theme-f8f5ef: #1c231e;
--theme-f8f6f1: #1c231e;
--theme-faf8f2: #1a211c;
--theme-faf8f4: #1a211c;
--theme-faf9f5: #111412;
--theme-fff: #1b211c;
--theme-fffdf8: #1a201b;
--theme-ffffff: #1b211c;
}
:root {
/* Shared typography scale for captions, controls, headings, and metrics. */
--font-size-caption: 12px;
--font-size-meta: 13px;
--font-size-label: 14px;
--font-size-body: 15px;
--font-size-section: 16px;
--font-size-panel-title: 18px;
--font-size-dialog-title: 20px;
--font-size-metric-compact: 26px;
--font-size-display: 28px;
--line-height-tight: 1.25;
--line-height-body: 1.5;
--line-height-relaxed: 1.6;
font-family:
'Segoe UI Variable Text', 'Segoe UI', 'Microsoft YaHei UI', 'Microsoft YaHei',
-apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', Arial, sans-serif;
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;
}
* {
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;
}
button {
cursor: pointer;
}
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 16px;
border-right: 1px solid var(--theme-e3e1db);
background: var(--theme-f0eee8);
color: var(--theme-2d2a26);
}
.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: 800;
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) 10px;
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: 600;
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-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(--theme-9a958d);
opacity: 0.58;
}
.nav-section button:disabled:hover,
.nav-section button.locked:hover {
background: transparent;
color: var(--theme-9a958d);
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: 700;
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-theme-selector {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 3px;
width: 100%;
padding: 3px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.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: 700;
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(--theme-dfdcd4);
box-shadow: inset 0 0 0 1px var(--theme-d5d2cb);
color: var(--theme-2d2a26);
}
.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: 40px;
padding: 0 10px;
border: 1px solid var(--theme-d8d4cc);
border-radius: 8px;
background: var(--theme-fffdf8);
color: var(--theme-716b61);
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: 700;
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: 650;
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(--theme-d8d4cc);
border-radius: 7px;
background: var(--theme-fffdf8);
color: var(--theme-4f4a43);
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: 700;
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: 700;
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.update {
border-color: var(--theme-dfbf91);
background: var(--theme-fff7e9);
color: var(--theme-8b5b21);
}
.content {
width: 100%;
padding: 32px 40px 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: 600;
}
.software-version-action span {
color: inherit;
font-size: var(--font-size-caption);
font-weight: 600;
}
.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;
}
.config-subpage-panel {
display: grid;
min-width: 0;
gap: 18px;
}
.control-panel {
grid-column: auto;
}
.version-panel {
grid-column: auto;
}
.version-heading-inline {
display: flex;
min-width: 0;
align-items: baseline;
gap: 10px;
}
.version-heading-inline h2 {
flex: none;
}
.version-offline-hint {
min-width: 0;
overflow: hidden;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-weight: 400;
line-height: var(--line-height-tight);
text-overflow: ellipsis;
white-space: nowrap;
}
.kernel-layout > .version-panel > .panel-heading {
padding-bottom: 10px;
}
.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: grid;
grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
grid-auto-rows: 1fr;
align-items: stretch;
gap: 12px;
}
.client-api-card {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
gap: 14px;
height: 100%;
min-width: 0;
padding: 16px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-faf9f5);
}
.client-api-card-heading {
display: grid;
grid-template-columns: 40px minmax(0, 1fr);
align-items: center;
gap: 11px;
min-width: 0;
}
.client-api-logo {
display: grid;
width: 40px;
height: 40px;
place-items: center;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.client-api-logo img {
display: block;
width: 23px;
height: 23px;
object-fit: contain;
}
.client-api-card-heading > div {
display: grid;
min-width: 0;
gap: 4px;
}
.client-api-card-heading strong,
.client-api-card-heading span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.client-api-card-heading strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.client-api-card-heading > div > span {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.client-api-values {
display: grid;
align-content: start;
gap: 7px;
}
.client-api-value-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 30px;
align-items: center;
gap: 6px 8px;
min-width: 0;
min-height: 52px;
padding: 8px 10px;
border: 1px solid var(--theme-e3e1db);
border-radius: 6px;
background: var(--theme-fffdf8);
}
.client-api-value-row > span:first-child {
grid-column: 1 / -1;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: 700;
}
.client-api-value-row code {
min-width: 0;
color: var(--theme-2d2a26);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
white-space: normal;
}
.client-api-value-row .icon-button {
width: 30px;
height: 30px;
}
.client-api-copy-placeholder {
display: block;
width: 30px;
height: 30px;
}
.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.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(--theme-9b958c);
}
.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 {
--kernel-action-button-min: clamp(112px, 12ch, 156px);
grid-template-columns: repeat(
auto-fit,
minmax(min(100%, var(--kernel-action-button-min)), 1fr)
);
grid-auto-flow: row;
grid-auto-columns: unset;
grid-auto-rows: minmax(42px, auto);
align-items: stretch;
}
.button-row.version-action-row {
grid-template-columns: repeat(4, minmax(0, 1fr));
grid-auto-flow: row;
grid-auto-columns: unset;
grid-auto-rows: 38px;
align-items: stretch;
gap: 10px;
}
.control-action-row > button {
width: 100%;
min-height: 42px;
height: auto;
padding-block: 7px;
overflow: hidden;
line-height: var(--line-height-tight);
overflow-wrap: anywhere;
text-align: center;
text-overflow: clip;
text-wrap: balance;
white-space: normal;
}
.software-update-details {
align-content: start;
}
.software-update-actions {
grid-template-columns: repeat(auto-fit, minmax(min(120px, 100%), 1fr));
grid-auto-flow: row;
grid-auto-rows: 38px;
align-items: stretch;
}
.software-update-actions > button,
.version-action-row > button {
width: 100%;
height: 38px;
min-height: 38px;
padding: 0 10px;
line-height: normal;
overflow-wrap: normal;
text-wrap: nowrap;
white-space: nowrap;
}
.software-update-panel .panel-heading p {
white-space: normal;
}
@container workspace (min-width: 840px) {
.home-page {
grid-template-columns: minmax(320px, 0.8fr) minmax(0, 1.2fr);
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: clamp(12px, 2vh, 22px);
}
.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;
}
.version-management-layout {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-auto-rows: 1fr;
align-items: stretch;
}
.version-management-layout > .panel {
height: 100%;
align-self: stretch;
grid-template-rows: auto minmax(0, 1fr) auto;
row-gap: clamp(12px, 2vh, 22px);
}
.home-page > .home-layout > .control-panel > .panel-detail-grid,
.version-management-layout > .panel > .panel-detail-grid,
.home-page > .client-api-panel > .client-api-grid {
align-content: space-evenly;
}
.home-page > .home-layout > .control-panel > .panel-action-row,
.version-management-layout > .panel > .panel-action-row {
padding-top: 0;
}
}
.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-weight: 700;
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-keys-panel {
display: grid;
min-height: 0;
}
.config-keys-panel {
grid-template-rows: 42px minmax(0, 1fr);
gap: 16px;
height: 350px;
}
.config-network-panel {
display: grid;
gap: 18px;
}
.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-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: 700;
}
.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-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-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: 700;
}
.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;
}
.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: 800;
}
.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: 700;
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: 700;
}
.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 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-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;
}
@media (max-width: 520px) {
.close-dialog-backdrop {
padding: 16px;
}
.close-dialog {
padding: 20px;
}
.close-dialog-actions {
grid-template-columns: 1fr;
}
}
.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;
}
.config-toast {
position: fixed;
right: 24px;
bottom: 24px;
z-index: 90;
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: center;
gap: 9px;
width: min(360px, calc(100vw - 48px));
height: 46px;
padding: 0 14px;
border: 1px solid var(--theme-b6d3bd);
border-radius: 7px;
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
box-shadow: 0 10px 30px rgba(45, 42, 38, 0.16);
}
.config-toast.error {
border-color: var(--theme-dfb7b0);
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.config-toast.info {
border-color: var(--theme-c9d6e2);
background: var(--theme-f1f6fa);
color: var(--theme-42637f);
}
.config-toast span {
min-width: 0;
overflow: hidden;
font-size: var(--font-size-body);
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.management-header {
display: flex;
align-items: end;
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: 800;
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-display);
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-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;
}
.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: 700;
}
.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: 700;
}
.model-config-heading small {
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: 400;
}
.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-picker-error {
color: var(--theme-9f2d20);
font-size: var(--font-size-meta);
font-weight: 400;
}
.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;
gap: 7px;
}
.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-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: 400;
}
.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;
}
.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: 54px;
min-width: 0;
padding: 0 8px;
border: 1px solid transparent;
border-radius: 7px;
background: transparent;
color: var(--theme-2d2a26);
}
.provider-category-panel button:hover {
background: var(--theme-f4f1ea);
}
.provider-category-panel button.active {
border-color: var(--theme-d5d2cb);
background: var(--theme-f0eee8);
}
.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: 700;
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: 700;
}
.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: 700;
}
.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: minmax(280px, 1.6fr) minmax(120px, 0.5fr) auto;
align-items: start;
gap: 16px;
min-height: 88px;
padding: 14px 0;
border-bottom: 1px solid var(--theme-eeece6);
}
.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-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-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 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;
}
.provider-preset-summary {
display: grid;
grid-template-columns: 34px minmax(0, 1fr);
align-items: center;
gap: 10px;
min-height: 52px;
padding: 9px 11px;
border: 1px solid var(--theme-dce2fb);
border-radius: 7px;
background: var(--theme-f5f7ff);
}
.provider-preset-summary .provider-logo {
width: 30px;
height: 30px;
}
.provider-preset-summary > div {
display: grid;
min-width: 0;
gap: 3px;
}
.provider-preset-summary strong {
color: var(--theme-344ca1);
font-size: var(--font-size-label);
}
.provider-preset-summary span {
color: var(--theme-66709a);
font-size: var(--font-size-meta);
overflow-wrap: anywhere;
}
.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: 700;
}
.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: 700;
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(480px, 1.4fr) minmax(320px, 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;
}
.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: 700;
}
.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: 800;
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: 800;
}
.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: 800;
}
.thinking-model-selection strong {
min-width: 0;
overflow: hidden;
font-weight: 500;
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(6, 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: 700;
}
.thinking-effort-options button.active {
border-color: var(--theme-8069ad);
background: var(--theme-f1ecfb);
color: var(--theme-554075);
}
.thinking-effort-options button.custom {
overflow: hidden;
border-style: dashed;
text-overflow: ellipsis;
white-space: nowrap;
}
.thinking-effort-options button.custom.active {
border-style: solid;
}
.thinking-effort-custom {
display: grid;
grid-template-columns: minmax(0, 1fr) 30px;
align-items: center;
gap: 3px;
}
.thinking-effort-custom input {
width: 100%;
height: 34px;
padding: 0 9px;
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-effort-custom input:focus {
border-color: var(--theme-9d8abd);
box-shadow: 0 0 0 2px rgba(128, 105, 173, 0.12);
}
.thinking-effort-custom .icon-button {
width: 30px;
height: 30px;
}
.thinking-effort-custom small {
grid-column: 1 / -1;
color: var(--theme-918a81);
font-size: var(--font-size-label);
line-height: var(--line-height-body);
}
.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: 700;
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: 64px minmax(0, 1fr);
gap: 12px;
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: 800;
}
.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: 800;
text-align: center;
text-transform: uppercase;
}
.thinking-effort-badge.missing {
border-color: var(--theme-e4d0af);
background: var(--theme-fff8eb);
color: var(--theme-805a24);
text-transform: none;
}
@media (min-width: 1081px) {
.thinking-alias-list-panel .thinking-alias-row {
grid-template-columns: minmax(0, 1fr) auto 34px;
min-height: 94px;
}
.thinking-alias-list-panel .thinking-alias-route {
grid-column: 1 / -1;
}
.thinking-alias-list-panel .thinking-effort-badge {
grid-column: 2;
}
.thinking-alias-list-panel .thinking-alias-row > .icon-button {
grid-column: 3;
}
}
.agent-workbench {
display: grid;
grid-template-columns: 230px minmax(0, 1fr);
gap: 16px;
align-items: start;
}
.agent-client-list {
min-height: 960px;
}
.agent-config-panel {
min-height: 0;
}
.agents-page {
grid-template-rows: minmax(54px, auto) auto;
gap: 14px;
}
.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 {
display: grid;
align-content: start;
gap: 14px;
padding: 14px;
}
.agent-list-heading {
display: flex;
align-items: center;
gap: 9px;
min-height: 42px;
padding: 0 6px 11px;
border-bottom: 1px solid var(--theme-e3e1db);
}
.agent-list-heading > div,
.agent-list-items button > span {
display: grid;
min-width: 0;
gap: 3px;
}
.agent-list-heading strong,
.agent-list-items strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-section);
}
.agent-list-heading span,
.agent-list-items small {
overflow: hidden;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-list-items {
display: grid;
gap: 6px;
}
.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-list-items i {
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--theme-c9c4ba);
}
.agent-list-items i.configured {
background: var(--theme-bf8a43);
}
.agent-list-items i.installed {
background: var(--theme-5d9a6c);
}
.agent-config-panel {
display: grid;
grid-template-rows: auto auto;
align-content: start;
gap: 14px;
container-type: inline-size;
container-name: agent-panel;
}
.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: 700;
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);
}
.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: ui-monospace, SFMono-Regular, Consolas, monospace;
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;
overflow: hidden;
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: 800;
}
.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: 700;
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: 700;
}
.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-config-footer,
.agent-status-grid span {
display: flex;
align-items: center;
}
.agent-config-footer {
justify-content: flex-end;
gap: 14px;
}
.agent-launch-actions {
display: flex;
min-width: 0;
max-width: 100%;
align-items: center;
justify-content: flex-end;
gap: 8px;
flex-wrap: wrap;
}
.agent-status-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
min-height: 76px;
}
.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 strong {
min-width: 0;
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
font-weight: 700;
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-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-pending-badge {
flex: none;
padding: 4px 8px;
border: 1px solid var(--theme-e4d0af);
border-radius: 999px;
background: var(--theme-fff8eb);
color: var(--theme-805a24);
font-size: var(--font-size-meta);
font-weight: 700;
}
.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-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-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;
}
.codex-auto-restore-card {
height: 100%;
min-height: 64px;
}
.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: 64px;
}
.agent-codex-options .agent-section-heading strong,
.agent-codex-options > .agent-oauth-configuration {
font-size: var(--font-size-label);
font-weight: 600;
}
.codex-auto-restore-toggle {
display: inline-flex;
flex: none;
align-items: center;
gap: 10px;
cursor: pointer;
user-select: none;
}
.codex-auto-restore-switch {
width: 54px;
height: 30px;
}
.codex-auto-restore-switch .switch-track::after {
width: 22px;
height: 22px;
margin: 3px;
}
.codex-auto-restore-switch input:checked + .switch-track::after {
transform: translateX(24px);
}
.codex-auto-restore-switch input:focus-visible + .switch-track {
outline: 3px solid rgba(45, 42, 38, 0.18);
outline-offset: 2px;
}
.codex-auto-restore-toggle:has(input:disabled) {
cursor: not-allowed;
opacity: 0.55;
}
.codex-auto-restore-toggle > strong {
min-width: 42px;
color: var(--theme-5f5a53);
font-size: var(--font-size-label);
text-align: right;
}
.codex-auto-restore-card.enabled .codex-auto-restore-toggle > strong {
color: var(--theme-2f6b3f);
}
.codex-auto-restore-message {
max-width: 100%;
color: var(--theme-2f6b3f);
font-size: var(--font-size-meta);
line-height: var(--line-height-body);
overflow-wrap: anywhere;
}
.codex-auto-restore-message.error {
color: var(--theme-9f2d20);
}
.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: 600;
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;
}
.agent-config-footer {
min-height: 48px;
padding-top: 14px;
border-top: 1px solid var(--theme-e3e1db);
}
.agent-config-footer > .agent-launch-control {
display: grid;
min-width: 0;
max-width: 100%;
justify-items: end;
gap: 5px;
margin-left: auto;
}
.agent-launch-control > .agent-inline-message {
max-width: 360px;
text-align: right;
}
.agent-config-footer .primary-button {
min-width: 120px;
}
.agent-config-footer .agent-close-app-button {
min-width: 120px;
}
.agent-launch-actions > button {
min-width: 0;
max-width: 100%;
height: auto;
padding-block: 8px;
line-height: var(--line-height-tight);
overflow-wrap: anywhere;
white-space: normal;
}
.usage-records-page {
display: grid;
gap: 14px;
align-content: start;
}
.usage-records-header {
min-height: 54px;
}
.usage-collector-state {
display: flex;
align-items: center;
gap: 10px;
min-width: 164px;
padding: 8px 11px;
border: 1px solid var(--theme-e3e1db);
border-radius: 8px;
background: var(--theme-fffdf8);
}
.usage-collector-state .status-dot {
width: 9px;
height: 9px;
box-shadow: 0 0 0 4px rgba(155, 149, 140, 0.12);
}
.usage-collector-state.success .status-dot {
background: var(--theme-2f6b3f);
box-shadow: 0 0 0 4px rgba(47, 107, 63, 0.12);
}
.usage-collector-state.error .status-dot {
background: var(--theme-9f2d20);
box-shadow: 0 0 0 4px rgba(159, 45, 32, 0.12);
}
.usage-collector-state > div {
display: grid;
gap: 2px;
}
.usage-collector-state strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-meta);
}
.usage-collector-state span {
margin: 0;
overflow: visible;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
font-weight: 400;
text-transform: none;
white-space: normal;
}
.usage-tabs {
display: inline-grid;
grid-auto-flow: column;
justify-self: start;
gap: 3px;
padding: 3px;
border: 1px solid var(--theme-d5d2cb);
border-radius: 8px;
background: var(--theme-eeece6);
}
.usage-tabs button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
min-width: 104px;
height: 34px;
padding: 0 12px;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
font-weight: 700;
}
.usage-tabs button.active {
background: var(--theme-fffdf8);
color: var(--theme-2d2a26);
box-shadow: 0 1px 4px rgba(45, 42, 38, 0.14);
}
.usage-filter-panel {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr));
gap: 8px;
padding: 10px;
}
.usage-filter-panel select,
.usage-filter-panel input {
min-width: 0;
height: 36px;
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);
}
.usage-custom-range {
display: grid;
grid-column: 1 / -1;
grid-template-columns: minmax(170px, 1fr) auto minmax(170px, 1fr);
align-items: center;
gap: 8px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.usage-initial-loading,
.usage-empty {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 120px;
color: var(--theme-8a847c);
font-size: var(--font-size-meta);
}
.usage-overview-layout {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
}
.usage-stat-grid {
display: grid;
grid-column: 1 / -1;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
}
.usage-trend-panel {
grid-column: 1 / 5;
}
.usage-health-panel {
grid-column: 5 / 7;
}
.usage-stat-card {
display: grid;
min-width: 0;
gap: 8px;
padding: 14px;
}
.usage-stat-card > span {
display: flex;
align-items: center;
gap: 7px;
color: var(--theme-7a746c);
font-size: var(--font-size-meta);
}
.usage-stat-card > strong {
overflow: hidden;
color: var(--theme-2d2a26);
font-size: var(--font-size-display);
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-stat-card > small {
overflow: hidden;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
line-height: var(--line-height-body);
text-overflow: ellipsis;
white-space: normal;
}
.usage-trend-panel,
.usage-health-panel,
.usage-category-panel,
.usage-events-panel {
min-width: 0;
}
.usage-section-heading {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 36px;
margin-bottom: 10px;
}
.usage-section-heading > div {
display: grid;
gap: 3px;
}
.usage-section-heading strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-body);
}
.usage-section-heading span {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-trend {
display: grid;
gap: 8px;
}
.usage-trend svg {
width: 100%;
height: 180px;
overflow: visible;
border-bottom: 1px solid var(--theme-e3e1db);
background: repeating-linear-gradient(to bottom, transparent 0, transparent 43px, var(--theme-eeeae2) 44px);
}
.usage-trend polyline {
stroke: var(--theme-3f6f98);
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
}
.usage-trend-labels {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-trend-labels strong {
color: var(--theme-5f5a53);
font-size: var(--font-size-caption);
}
.usage-token-breakdown,
.usage-category-list {
display: grid;
width: 100%;
min-width: 0;
gap: 12px;
}
.usage-token-breakdown > div,
.usage-category-list > div {
display: grid;
grid-template-columns: minmax(0, 1fr);
min-width: 0;
gap: 6px;
}
.usage-token-breakdown span,
.usage-category-list span {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
min-width: 0;
gap: 8px;
}
.usage-token-breakdown strong,
.usage-category-list strong {
flex: 1 1 auto;
min-width: 0;
overflow: hidden;
color: var(--theme-5f5a53);
font-size: var(--font-size-meta);
text-overflow: ellipsis;
white-space: nowrap;
}
.usage-token-breakdown small,
.usage-category-list small {
flex: none;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-token-breakdown i,
.usage-category-list i {
display: block;
width: 100%;
min-width: 0;
max-width: 100%;
overflow: hidden;
height: 5px;
border-radius: 999px;
background: var(--theme-eeece6);
}
.usage-token-breakdown b,
.usage-category-list b {
display: block;
height: 100%;
border-radius: inherit;
background: var(--theme-6684a1);
}
.usage-analysis-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
gap: 12px;
}
.usage-category-panel {
min-height: 290px;
}
.usage-category-panel.compact-labels .usage-category-list strong {
flex: 0 1 auto;
max-width: min(46%, 160px);
}
.usage-events-panel {
display: grid;
gap: 10px;
padding: 12px;
}
.usage-events-summary,
.usage-pagination {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-table-wrap {
overflow: auto;
min-height: 360px;
border: 1px solid var(--theme-e3e1db);
border-radius: 7px;
}
.usage-events-table {
width: 100%;
min-width: 1140px;
border-collapse: collapse;
table-layout: fixed;
font-size: var(--font-size-caption);
}
.usage-events-table th,
.usage-events-table td {
height: 42px;
padding: 7px 9px;
border-bottom: 1px solid var(--theme-eeeae2);
color: var(--theme-5f5a53);
text-align: right;
white-space: nowrap;
}
.usage-events-table th {
position: sticky;
z-index: 1;
top: 0;
background: var(--theme-f4f1ea);
color: var(--theme-7a746c);
font-weight: 700;
}
.usage-events-table th:first-child,
.usage-events-table th:nth-child(2),
.usage-events-table th:nth-child(3),
.usage-events-table td:first-child,
.usage-events-table td:nth-child(2),
.usage-events-table td:nth-child(3) {
text-align: left;
}
.usage-events-table th:first-child {
width: 120px;
}
.usage-events-table th:nth-child(2) {
width: 120px;
}
.usage-events-table th:nth-child(3) {
width: 120px;
}
.usage-events-table th:nth-child(4) {
width: 120px;
}
.usage-events-table th:nth-child(5) {
width: 78px;
}
.usage-events-table th:nth-child(n + 6):nth-child(-n + 10) {
width: 64px;
text-align: center;
}
.usage-events-table td:nth-child(n + 6):nth-child(-n + 10) {
text-align: center;
}
.usage-events-table th:nth-child(11) {
width: 72px;
}
.usage-events-table th:nth-child(12) {
width: 85px;
}
.usage-events-table th:nth-child(13) {
width: 70px;
}
.usage-events-table th:nth-child(-n + 5),
.usage-events-table td:nth-child(-n + 5) {
padding-left: 12px;
padding-right: 12px;
text-align: left;
}
.usage-events-table th:nth-child(5),
.usage-events-table td:nth-child(5) {
padding-right: 2px;
}
.usage-events-table th:nth-child(3),
.usage-events-table td:nth-child(3),
.usage-events-table th:nth-child(4),
.usage-events-table td:nth-child(4) {
overflow: hidden;
text-overflow: ellipsis;
}
.usage-events-table th:nth-child(6),
.usage-events-table td:nth-child(6) {
padding-left: 2px;
text-align: left;
}
.usage-events-table .usage-stacked-cell {
max-width: 180px;
vertical-align: middle;
}
.usage-events-table .usage-stacked-cell > strong,
.usage-events-table .usage-stacked-cell > small {
display: block;
}
.usage-events-table td strong,
.usage-events-table td small {
overflow: hidden;
text-overflow: ellipsis;
}
.usage-events-table td small {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-result {
display: inline-flex;
padding: 3px 7px;
border-radius: 999px;
font-weight: 700;
}
.usage-result.success {
background: var(--theme-eef7f0);
color: var(--theme-2f6b3f);
}
.usage-result.failed {
background: var(--theme-fff1ee);
color: var(--theme-9f2d20);
}
.usage-pagination {
justify-content: flex-end;
}
.usage-pagination button {
min-width: 78px;
min-height: 32px;
}
.usage-pricing-panel {
display: grid;
min-width: 0;
gap: 12px;
padding: 12px;
}
.usage-pricing-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.usage-pricing-summary {
display: grid;
min-width: 0;
gap: 3px;
}
.usage-pricing-summary strong {
color: var(--theme-2d2a26);
font-size: var(--font-size-metric-compact);
}
.usage-pricing-summary span {
color: var(--theme-8a847c);
font-size: var(--font-size-caption);
}
.usage-pricing-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
}
.usage-pricing-actions input {
width: 220px;
height: 38px;
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 {
gap: 6px;
}
.usage-price-editor {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
padding: 12px;
border: 1px solid var(--theme-ddd8ce);
border-radius: 8px;
background: var(--theme-f8f5ee);
}
.usage-price-editor label {
display: grid;
min-width: 0;
gap: 5px;
}
.usage-price-editor label > span {
color: var(--theme-6f6961);
font-size: var(--font-size-caption);
font-weight: 700;
}
.usage-price-editor input {
min-width: 0;
height: 36px;
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);
}
.usage-price-editor-actions {
display: flex;
grid-column: 1 / -1;
justify-content: flex-end;
gap: 8px;
}
.usage-pricing-table-wrap {
min-height: 390px;
}
.usage-pricing-table {
width: 100%;
min-width: 980px;
border-collapse: collapse;
font-size: var(--font-size-caption);
}
.usage-pricing-table th,
.usage-pricing-table td {
height: 44px;
padding: 7px 9px;
border-bottom: 1px solid var(--theme-eeeae2);
color: var(--theme-5f5a53);
text-align: right;
white-space: nowrap;
}
.usage-pricing-table th {
position: sticky;
z-index: 1;
top: 0;
background: var(--theme-f4f1ea);
color: var(--theme-7a746c);
font-weight: 700;
}
.usage-pricing-table th:first-child,
.usage-pricing-table td:first-child {
text-align: left;
}
.usage-price-row-actions {
display: flex;
justify-content: flex-end;
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);
}
.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: 700;
}
.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 {
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 .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: ui-monospace, SFMono-Regular, Consolas, monospace;
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: 700;
}
.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: 400;
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;
}
.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: 700;
}
.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 {
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;
}
.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-config-footer {
align-items: stretch;
flex-direction: column;
}
.agent-config-footer > .agent-launch-control {
width: 100%;
justify-items: stretch;
margin-left: 0;
}
.agent-launch-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
width: 100%;
}
.agent-launch-actions > .primary-button:last-child {
grid-column: 1 / -1;
}
.agent-launch-actions > .agent-close-app-button {
grid-column: 1 / -1;
}
}
@container agent-panel (max-width: 640px) {
.agent-codex-options {
grid-template-columns: 1fr;
}
.agent-codex-options > .agent-oauth-configuration {
min-height: 42px;
}
.agent-status-grid {
grid-template-columns: 1fr;
min-height: 0;
}
.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;
}
.agent-workbench {
grid-template-columns: 200px minmax(0, 1fr);
}
.usage-filter-panel {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.usage-overview-layout {
grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.6fr);
gap: 12px;
}
.usage-trend-panel,
.usage-health-panel {
grid-column: auto;
}
.usage-stat-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.control-panel,
.version-panel {
grid-column: auto;
}
}
@media (max-width: 760px) {
.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;
}
.client-api-grid {
grid-template-columns: 1fr;
}
.client-api-card:last-child {
grid-column: auto;
}
.oauth-grid,
.quota-grid,
.quota-summary-grid {
grid-template-columns: 1fr;
}
.real-quota-grid {
grid-template-columns: 1fr;
}
.real-provider-row {
grid-template-columns: minmax(0, 1fr) auto;
}
.real-auth-file-row {
grid-template-columns: 34px minmax(0, 1fr) auto;
}
.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-overview-layout,
.usage-analysis-grid {
grid-template-columns: 1fr;
}
.usage-filter-panel {
grid-template-columns: repeat(2, minmax(0, 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,
.agent-config-panel {
height: auto;
min-height: 0;
}
.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(3, minmax(0, 1fr));
}
.agent-list-items button {
grid-template-columns: 26px minmax(0, 1fr);
}
.agent-list-items i {
display: none;
}
.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) {
.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%;
}
.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%;
grid-auto-columns: 1fr;
}
.usage-tabs button {
min-width: 0;
padding: 0 7px;
}
.usage-filter-panel,
.usage-stat-grid {
grid-template-columns: 1fr;
}
.usage-custom-range {
grid-template-columns: 1fr;
}
.provider-category-panel {
grid-template-columns: 1fr;
}
.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-config-footer,
.agent-section-heading {
align-items: stretch;
flex-direction: column;
}
.codex-auto-restore-toggle {
width: 100%;
min-width: 0;
justify-content: space-between;
}
.codex-auto-restore-toggle > strong {
text-align: left;
}
.agent-config-footer .primary-button {
width: 100%;
}
.agent-modification-control > .agent-inline-message,
.agent-launch-control > .agent-inline-message {
max-width: none;
text-align: left;
}
.agent-config-footer > .agent-launch-control {
width: 100%;
justify-items: stretch;
}
.agent-launch-actions {
width: 100%;
align-items: stretch;
flex-direction: column;
}
.oauth-card {
grid-template-rows: auto auto auto;
min-height: 0;
}
.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: minmax(0, 1fr);
}
.real-auth-file-row {
grid-template-columns: 30px minmax(0, 1fr);
}
.provider-row-actions {
grid-column: 1;
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;
}
}
@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);
}