/* Settings and assistant spacing measured from the public TaskPyro demo. */
.settings-panel { max-width:780px;min-width:0; }
.settings-panel h2 { margin:0 0 8px;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.4px; }
.settings-panel>p { margin:0 0 24px;font-size:14px;line-height:20px;color:var(--muted); }
.settings-panel form { padding-top:24px; }
.settings-panel .field { margin-bottom:24px; }
.settings-panel .form-grid { gap:24px; }
.settings-panel .form-grid .field { margin:0; }
.settings-panel .form-grid { margin-bottom:24px; }
.settings-panel .field label { font-size:14px;line-height:20px;margin-bottom:8px; }
.settings-panel .check-row { font-size:14px;line-height:20px; }
.settings-panel .inline-info { font-size:13px;line-height:20px;overflow-wrap:anywhere; }
.settings-nav { gap:4px; }
.settings-nav a { padding:8px 12px;line-height:20px;font-size:14px;border-radius:6px; }
.settings-panel .form-section { margin-top:24px;padding-top:24px; }
.settings-panel .form-section h3 { font-size:16px;line-height:24px;margin:0 0 16px;font-weight:600; }
.settings-panel .heading-actions { gap:8px; }
.settings-panel .btn.primary { margin-top:0; }

.model-settings,.bot-settings { display:flex;flex-direction:column;gap:24px;min-width:0; }
.ai-security-note,.bot-guidance { display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid #c9dafa;border-radius:8px;background:#eff6ff;color:#1e40af; }
.ai-security-note>.icon,.bot-guidance>.icon { flex-shrink:0;margin-top:2px; }
.ai-security-note strong { font-size:14px;line-height:20px;font-weight:600; }
.ai-security-note p { margin:4px 0 0;font-size:13px;line-height:20px; }
.bot-guidance p { margin:0;font-size:13px;line-height:20px;font-weight:500; }
.bot-guidance p+p { margin-top:6px; }
.provider-tabs { display:flex;align-items:center;gap:4px;width:fit-content;max-width:100%;padding:4px;border-radius:8px;background:var(--hover);overflow-x:auto; }
.provider-tabs button { border:0;background:transparent;border-radius:6px;color:var(--muted);font-size:14px;line-height:20px;font-weight:500;padding:6px 24px;white-space:nowrap;min-height:32px; }
.provider-tabs button.active { background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0f172a14; }
.provider-card { border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 1px 2px #0f172a10;overflow:hidden; }
.provider-card>header { padding:20px 24px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px; }
.provider-card>header h2 { font-size:16px;line-height:24px;letter-spacing:0;margin:0;font-weight:600; }
.provider-card>header p { font-size:13px;line-height:20px;color:var(--muted);margin:4px 0 0; }
.provider-card>form { padding:8px 24px 24px; }
.provider-card .field { margin-bottom:20px; }
.provider-card .field label { font-size:14px;line-height:20px;font-weight:500;margin-bottom:8px; }
.provider-card input,.provider-card select { font-size:14px;line-height:20px;min-height:36px;padding:7px 12px; }
.provider-card .form-grid { gap:20px; }
.provider-card .form-grid .field { margin:0 0 20px; }
.provider-card .field-hint { margin:-8px 0 24px;color:var(--muted);font-size:12px;line-height:20px; }
.provider-card footer { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:0; }
.provider-card footer .btn { min-height:36px;font-size:14px;line-height:20px; }
.provider-card .check-row { font-size:14px;line-height:20px; }
.bot-runtime { margin:0 24px 20px;padding:12px 16px;background:var(--soft);border:1px solid var(--line);border-radius:8px; }
.bot-runtime-title { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.bot-runtime-meta { display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;line-height:20px;color:var(--muted);margin-top:8px; }
.bot-error { font-size:13px;line-height:20px;color:#dc2626;margin:8px 0 0;overflow-wrap:anywhere; }
.bot-setup-guide { border-top:1px solid var(--line);padding-top:16px; }
.bot-setup-guide summary { cursor:pointer;font-size:14px;line-height:20px;color:var(--muted); }
.bot-setup-guide>div { font-size:13px;line-height:22px;color:var(--muted);padding-top:8px; }
.bot-setup-guide p { margin:8px 0; }
.bot-setup-guide code { overflow-wrap:anywhere; }
body.dark .ai-security-note,body.dark .bot-guidance { background:#122544;border-color:#274974;color:#bfdbfe; }

/* A bounded conversation viewport leaves the composer visible on long threads. */
#page:has(.demo-chat) { height:calc(100dvh - 80px);min-height:560px;display:flex;flex-direction:column;padding-bottom:16px; }
#page:has(.demo-chat)>.page-heading { margin-bottom:16px;flex-shrink:0; }
#page:has(.demo-chat)>.page-heading h1 { font-size:18px;line-height:28px;letter-spacing:-.3px; }
#page:has(.demo-chat)>.page-heading p { font-size:14px;line-height:20px; }
.demo-chat { flex:1;min-height:0;height:100%;grid-template-columns:240px minmax(0,1fr);border-radius:12px; }
.demo-chat .chat-sidebar { min-height:0;overflow:auto;padding:16px 12px;gap:8px;background:var(--panel); }
.demo-chat .chat-sidebar>.btn { width:100%;justify-content:flex-start;font-size:14px;min-height:36px; }
.demo-chat .chat-sidebar>h3 { font-size:12px;line-height:20px;margin:16px 8px 4px; }
.demo-chat .chat-sidebar>.inline-info { font-size:12px;line-height:20px; }
.demo-chat .chat-session { padding:8px;line-height:20px;font-size:14px; }
.demo-chat .chat-session .btn { font-size:14px;line-height:20px; }
.demo-chat .chat-main { min-height:0; }
.demo-chat .chat-toolbar { flex-shrink:0;padding:12px 16px;gap:8px;font-size:12px;min-height:60px; }
.demo-chat .chat-toolbar select { max-width:240px;font-size:13px;line-height:20px;min-height:32px;padding:5px 10px; }
.chat-provider-state { margin-left:auto;font-size:12px;line-height:20px; }
.demo-chat .chat-messages { flex:1;min-height:0;max-height:none;padding:24px; }
.demo-chat .chat-welcome { min-height:240px; }
.demo-chat .chat-welcome h2 { font-size:20px;line-height:28px;letter-spacing:-.4px;margin-bottom:12px; }
.demo-chat .chat-welcome p { max-width:480px;font-size:14px;line-height:24px; }
.demo-chat .suggestions { margin-top:24px;gap:8px; }
.demo-chat .suggestions .btn { font-size:13px;line-height:20px;min-height:34px; }
.demo-chat .message-text { font-size:14px;line-height:24px; }
.demo-chat .message-author { font-size:12px;line-height:20px;margin-bottom:4px; }
.demo-chat .chat-input-area { flex-shrink:0;padding:16px 20px 12px;border-top:0; }
.demo-chat .chat-input-box { padding:12px 14px;border-radius:12px;background:var(--panel); }
.demo-chat .chat-input-box textarea { min-height:64px;font-size:14px;line-height:24px; }
.demo-chat .chat-input-footer { font-size:11px;line-height:20px;gap:8px;margin-top:8px; }
.demo-chat .chat-input-footer .btn { font-size:13px;line-height:20px;min-height:32px;padding:5px 12px; }
.demo-chat .chat-disclaimer { font-size:11px;line-height:16px;margin-top:8px; }

@media(max-width:1050px){
 .demo-chat { grid-template-columns:200px minmax(0,1fr); }
 .chat-provider-state { display:none; }
}
@media(max-width:850px){
 .settings-nav { gap:4px; }
 .settings-nav a { padding:6px 10px;font-size:14px; }
 .provider-tabs { width:100%; }
 .provider-tabs button { flex:1;padding:6px 12px; }
 .demo-chat { grid-template-columns:180px minmax(0,1fr); }
}
@media(max-width:580px){
 .model-settings,.bot-settings { gap:16px; }
 .provider-card>header { padding:16px; }
 .provider-card>form { padding:0 16px 16px; }
 .provider-card .form-grid { grid-template-columns:minmax(0,1fr);gap:0; }
 .bot-runtime { margin:0 16px 20px;padding:12px; }
 .bot-runtime-meta { flex-direction:column;gap:4px; }
 #page:has(.demo-chat) { height:calc(100dvh - 64px);min-height:520px; }
 #page:has(.demo-chat)>.page-heading p { display:none; }
 .demo-chat { grid-template-columns:minmax(0,1fr); }
 .demo-chat .chat-sidebar { display:none; }
 .demo-chat .chat-toolbar { padding:10px 12px;min-height:54px; }
 .demo-chat .chat-toolbar select { max-width:calc(50vw - 40px); }
 .demo-chat .chat-messages { padding:16px; }
 .demo-chat .chat-input-area { padding:12px; }
 .demo-chat .chat-input-footer>span>span { display:none; }
}
