/* agent-platform 新增样式 */
.resource-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.resource-bar .api-selector { min-width: 160px; }
.force-pwd-banner { background: #fef3c7; color: #92400e; padding: 10px 16px;
  border-radius: 8px; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; }
.key-display-box { background: #f3f4f6; border: 1px dashed #9ca3af; padding: 10px;
  border-radius: 6px; word-break: break-all; font-family: monospace; font-size: 13px; }
.model-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.model-grid .form-group { margin-bottom: 0; }
.role-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; }
.role-badge.super_admin { background: #fde68a; color: #78350f; }
.role-badge.admin { background: #bfdbfe; color: #1e3a8a; }
.role-badge.user { background: #d1fae5; color: #065f46; }
.inst-status { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; }
.inst-status.online { background: #d1fae5; color: #065f46; }
.inst-status.offline { background: #e5e7eb; color: #374151; }
.inst-status.error { background: #fee2e2; color: #991b1b; }
.inst-status.creating { background: #dbeafe; color: #1e40af; }

/* 主题变量 */
:root {
  --card-bg: #ffffff;
}
[data-theme="dark"] {
  --card-bg: #1f2c3c;
}

/* 深色主题适配 */
[data-theme="dark"] .force-pwd-banner { background: #422006; color: #fde68a; }
[data-theme="dark"] .key-display-box { background: #111827; border-color: #4b5563; color: #d1d5db; }
[data-theme="dark"] .role-badge.super_admin { background: #78350f; color: #fde68a; }
[data-theme="dark"] .role-badge.admin { background: #1e3a8a; color: #bfdbfe; }
[data-theme="dark"] .role-badge.user { background: #065f46; color: #d1fae5; }
[data-theme="dark"] .inst-status.online { background: #065f46; color: #d1fae5; }
[data-theme="dark"] .inst-status.offline { background: #374151; color: #e5e7eb; }
[data-theme="dark"] .inst-status.error { background: #7f1d1d; color: #fee2e2; }
[data-theme="dark"] .inst-status.creating { background: #1e3a8a; color: #bfdbfe; }

/* Fix 10: 空列表提示色用 CSS 变量 */
.empty-tip { color: var(--text-secondary, #999); }

/* Fix 5: 流式输出中的消息内容半透明 */
.message.streaming .message-content { opacity: 0.85; }
