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