/* Чат ИИ-агента (ai-chat.js). Все селекторы под .ai-chat — чтобы перебить общие
   правила для button/textarea (в том числе body.dark button). */
.ai-panel.ai-chat{display:flex;flex-direction:row;padding:0;overflow:hidden;min-width:320px}
.ai-chat .ai-main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;container-type:inline-size}
.ai-chat .ai-ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* Шапка */
.ai-chat .ai-head{display:flex;align-items:center;gap:2px;padding:10px 8px 10px 10px;border-bottom:1px solid var(--line);min-height:56px;flex-shrink:0}
.ai-chat .ai-hbtn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:7px;border-radius:9px;min-height:0;min-width:0;cursor:pointer;box-shadow:none}
.ai-chat .ai-hbtn:hover,.ai-chat .ai-hbtn.is-on{background:var(--soft);color:var(--dark)}
.ai-chat .ai-back{color:var(--dark);font-size:12.5px;font-weight:500;padding:7px 10px;margin-right:4px;border:1px solid var(--line)}
.ai-chat .ai-title{flex:1;min-width:0;padding:0 6px}
.ai-chat .ai-title b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--dark)}
.ai-chat .ai-title small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Лента */
.ai-chat .ai-body{flex:1;overflow-y:auto;padding:18px 14px 8px;display:flex;flex-direction:column}
.ai-chat .ai-thread{display:flex;flex-direction:column;gap:18px;max-width:760px;width:100%;margin:0 auto}
.ai-chat .ai-row{display:flex;gap:10px;min-width:0}
.ai-chat .ai-row.is-user{justify-content:flex-end}
.ai-chat .ai-bubble{max-width:85%;background:var(--soft);color:var(--dark);padding:9px 14px;border-radius:18px 18px 4px 18px;font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}
.ai-chat .ai-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(135deg,#0f7c84,#7c4dff)}
.ai-chat .ai-avatar .ai-ic{width:15px;height:15px;fill:#fff;stroke:none}
.ai-chat .ai-avatar.is-busy{animation:ai-breathe 1.6s ease-in-out infinite}
.ai-chat .ai-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding-top:3px}
.ai-chat .ai-text{font-size:13.5px;line-height:1.6;color:var(--dark);overflow-wrap:anywhere}
.ai-chat .ai-text p{margin:0 0 8px}.ai-chat .ai-text p:last-child{margin-bottom:0}
.ai-chat .ai-text ul,.ai-chat .ai-text ol{margin:4px 0 8px;padding-left:20px}.ai-chat .ai-text li{margin:2px 0}
.ai-chat .ai-text code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;background:var(--soft);padding:1px 5px;border-radius:5px}
.ai-chat .ai-h{font-weight:600}
.ai-chat .ai-note{font-size:12.5px;color:var(--muted);line-height:1.5}.ai-chat .ai-note p{margin:0}

/* Рассуждение */
.ai-chat .ai-think{border-left:2px solid var(--line);padding:1px 0 1px 10px}
.ai-chat .ai-think summary,.ai-chat .ai-tool summary{list-style:none;cursor:pointer;user-select:none}
.ai-chat summary::-webkit-details-marker{display:none}
.ai-chat .ai-think summary{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.ai-chat .ai-think summary:hover{color:var(--dark)}
.ai-chat .ai-think summary .ai-ic{width:15px;height:15px}
.ai-chat .ai-chev{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin:0 2px;transition:transform .15s;flex-shrink:0}
.ai-chat details[open]>summary .ai-chev{transform:rotate(45deg)}
.ai-chat .ai-think.is-live summary span{background:linear-gradient(90deg,var(--muted) 20%,var(--dark) 50%,var(--muted) 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ai-shimmer 1.8s linear infinite}
.ai-chat .ai-think-body{margin-top:6px;font-size:12px;line-height:1.55;color:var(--muted);max-height:150px;overflow:auto;overflow-wrap:anywhere}
.ai-chat .ai-think:not(.is-live) .ai-think-body{max-height:320px}

/* Шаги-инструменты */
.ai-chat .ai-tools-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.ai-chat .ai-tool+.ai-tool,.ai-chat .ai-confirm+.ai-tool{border-top:1px solid var(--line)}
.ai-chat .ai-tool summary,.ai-chat .ai-tool-sum{padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--dark)}
.ai-chat .ai-tool summary:hover{background:var(--soft)}
.ai-chat .ai-tool-ic{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.ai-chat .ai-tool-ic .ai-ic{width:11px;height:11px;stroke-width:3}
.ai-chat .ai-tool.is-ok .ai-tool-ic{background:#43a04724;color:#2e7d32}
.ai-chat .ai-tool.is-err .ai-tool-ic,.ai-chat .ai-tool.is-cancel .ai-tool-ic{background:#e5393524;color:#c62828}
.ai-chat .ai-tool.is-wait .ai-tool-ic{background:#fb8c0026;color:#e65100}
body.dark .ai-chat .ai-tool.is-ok .ai-tool-ic{color:#81c784}body.dark .ai-chat .ai-tool.is-err .ai-tool-ic,body.dark .ai-chat .ai-tool.is-cancel .ai-tool-ic{color:#ef9a9a}body.dark .ai-chat .ai-tool.is-wait .ai-tool-ic{color:#ffb74d}
.ai-chat .ai-tool-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}
.ai-chat .ai-tool-detail{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.ai-chat .ai-tool summary .ai-chev{margin-left:auto;color:var(--muted)}
.ai-chat .ai-tool pre{margin:0;padding:2px 10px 10px 36px;font-size:11px;line-height:1.45;color:var(--muted);white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,SFMono-Regular,monospace}
.ai-chat .ai-tool.is-run .ai-tool-name{color:var(--muted)}
.ai-chat .ai-spin{width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:ai-rot .8s linear infinite;display:inline-block}
.ai-chat .ai-confirm{padding:10px 10px 10px 36px;border-top:1px solid var(--line);background:#fff6e0}
body.dark .ai-chat .ai-confirm{background:#3a2f17}
.ai-chat .ai-confirm-q{font-size:12.5px;font-weight:600;color:var(--dark);margin-bottom:8px;line-height:1.45}
.ai-chat .ai-confirm-row{display:flex;gap:6px}
.ai-chat .ai-btn{border:1px solid var(--line);background:var(--surface);color:var(--dark);border-radius:8px;padding:6px 14px;font-size:12px;min-height:0;cursor:pointer}
.ai-chat .ai-btn.primary{background:#c62828;border-color:#c62828;color:#fff}

/* Действия под ответом */
.ai-chat .ai-actions{display:flex;align-items:center;gap:2px;margin:-2px 0 0 -6px;opacity:.75}
.ai-chat .ai-row:hover .ai-actions{opacity:1}
.ai-chat .ai-act{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--muted);padding:4px 6px;border-radius:7px;font-size:11.5px;min-height:0;min-width:0;cursor:pointer}
.ai-chat .ai-act .ai-ic{width:14px;height:14px}
.ai-chat .ai-act:hover{background:var(--soft);color:var(--dark)}
.ai-chat .ai-act-undo{color:var(--dark);border:1px solid var(--line)}
.ai-chat .ai-meta{font-size:11px;color:var(--muted);margin-left:6px}
.ai-chat .ai-wait{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);padding:6px 0}
.ai-chat .ai-typing{display:inline-flex;gap:4px}
.ai-chat .ai-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:ai-bounce 1.2s infinite ease-in-out}
.ai-chat .ai-typing i:nth-child(2){animation-delay:.15s}.ai-chat .ai-typing i:nth-child(3){animation-delay:.3s}
.ai-chat .ai-caret{display:inline-block;width:7px;height:14px;background:var(--teal);vertical-align:-2px;margin-left:2px;border-radius:1px;animation:ai-blink 1s steps(2) infinite}

/* Пустой чат */
.ai-chat .ai-empty{max-width:520px;margin:auto;padding:24px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.ai-chat .ai-orb{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0f7c84,#7c4dff);box-shadow:0 8px 24px #7c4dff38}
.ai-chat .ai-orb .ai-ic{width:26px;height:26px;fill:#fff;stroke:none}
.ai-chat .ai-empty h3{font-size:18px;margin:6px 0 0;color:var(--dark);font-weight:600}
.ai-chat .ai-empty p{font-size:12.5px;color:var(--muted);margin:0;line-height:1.5}
.ai-chat .ai-suggest{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px}
.ai-chat .ai-sugg{border:1px solid var(--line);background:var(--surface);color:var(--dark);border-radius:999px;padding:7px 12px;font-size:12px;min-height:0;cursor:pointer;white-space:normal;text-align:left;line-height:1.35}
.ai-chat .ai-sugg:hover{background:var(--soft)}

/* Поле ввода */
.ai-chat .ai-composer{padding:6px 12px 10px;max-width:784px;width:100%;margin:0 auto;flex-shrink:0}
.ai-chat .ai-box{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);padding:10px 8px 6px 14px;transition:border-color .15s}
.ai-chat .ai-box:focus-within{border-color:var(--teal)}
.ai-chat .ai-box textarea{display:block;width:100%;border:0;outline:0;background:transparent;resize:none;font:inherit;font-size:13.5px;line-height:1.5;min-height:22px;max-height:200px;padding:0;box-shadow:none;color:var(--dark)}
.ai-chat .ai-box-row{display:flex;align-items:center;gap:2px;margin:6px 0 0 -6px}
.ai-chat .ai-tool-btn{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--muted);padding:5px 7px;border-radius:8px;font-size:11.5px;min-height:0;min-width:0;cursor:pointer}
.ai-chat .ai-tool-btn .ai-ic{width:15px;height:15px}
.ai-chat .ai-tool-btn:hover{background:var(--soft);color:var(--dark)}
.ai-chat .ai-ctx{flex:1;min-width:0;display:flex;gap:8px;justify-content:flex-end;font-size:10.5px;color:var(--muted);overflow:hidden;white-space:nowrap;padding:0 6px}
.ai-chat .ai-ctx button{padding:0 3px;min-height:0;min-width:0;font-size:11px;border:0;background:transparent;color:var(--muted)}
.ai-chat .ai-send{width:32px;height:32px;border-radius:50%;border:0;background:var(--teal);color:#fff;display:grid;place-items:center;padding:0;min-height:0;min-width:0;flex-shrink:0;cursor:pointer;transition:transform .1s}
.ai-chat .ai-send:active{transform:scale(.93)}
.ai-chat .ai-send .ai-ic{width:17px;height:17px;stroke-width:2.3}
.ai-chat .ai-send.is-stop{background:var(--dark);color:var(--surface)}
.ai-chat .ai-foot{font-size:10.5px;color:var(--muted);text-align:center;margin-top:6px}
@container (max-width:420px){.ai-chat .ai-tool-btn span{display:none}.ai-chat .ai-ctx span:first-child{display:none}}

/* Список чатов */
.ai-chat .ai-pop{display:none;position:absolute;top:58px;left:8px;right:8px;max-height:min(72%,540px);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:6;overflow:hidden}
.ai-chat .ai-pop.is-open{display:flex}
.ai-chat .ai-list{display:flex;flex-direction:column;gap:8px;padding:10px;width:100%;min-height:0;flex:1}
.ai-chat .ai-new-btn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--dark);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:500;min-height:0;cursor:pointer}
.ai-chat .ai-new-btn:hover{background:var(--soft)}
.ai-chat .ai-list-search{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:0 10px;color:var(--muted);background:var(--surface)}
.ai-chat .ai-list-search .ai-ic{width:15px;height:15px}
.ai-chat .ai-list-search input{border:0;background:transparent;flex:1;min-width:0;min-height:32px;font-size:12.5px;outline:0;padding:0;box-shadow:none;color:var(--dark)}
.ai-chat .ai-list-items{overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:1px}
.ai-chat .ai-list-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 8px 4px}
.ai-chat .ai-li{display:flex;align-items:center;border-radius:9px;padding-right:4px}
.ai-chat .ai-li:hover,.ai-chat .ai-li.is-active{background:var(--soft)}
.ai-chat .ai-li-open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:8px;min-height:0;cursor:pointer;color:var(--dark);display:block}
.ai-chat .ai-li-open span{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-chat .ai-li-open small{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}
.ai-chat .ai-li-act{border:0;background:transparent;color:var(--muted);padding:5px;border-radius:6px;min-height:0;min-width:0;opacity:0;cursor:pointer}
.ai-chat .ai-li:hover .ai-li-act,.ai-chat .ai-li.is-active .ai-li-act,.ai-chat .ai-li-act:focus-visible{opacity:1}
.ai-chat .ai-li-act .ai-ic{width:14px;height:14px}
.ai-chat .ai-li-act:hover{color:var(--dark);background:var(--surface)}
.ai-chat .ai-li-rename{flex:1;margin:3px;font-size:12.5px;min-height:30px;min-width:0}
.ai-chat .ai-list-empty{font-size:12px;color:var(--muted);padding:8px}

/* Полноэкранный чат-бот: поверх карты (карта продолжает жить, инструменты работают) */
.ai-panel.ai-chat.ai-full{position:absolute;inset:0;width:auto !important;max-width:none;z-index:40;border-left:0;box-shadow:none}
.ai-chat.ai-full .ai-side{width:272px;flex-shrink:0;border-right:1px solid var(--line);display:flex;background:var(--bg)}
.ai-chat.ai-full .ai-side .ai-list{padding:12px}
.ai-chat.ai-full .ai-list-btn{display:none}
.ai-chat.ai-full .ai-head{padding-left:14px}
.ai-chat.ai-full .ai-body{padding:28px 24px 8px}
.ai-chat.ai-full .ai-pop{right:auto;width:320px}
@media(max-width:760px){.ai-chat.ai-full .ai-side{display:none}.ai-chat.ai-full .ai-list-btn{display:inline-flex}.ai-chat .ai-back span{display:none}}

@keyframes ai-rot{to{transform:rotate(360deg)}}
@keyframes ai-bounce{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}
@keyframes ai-blink{to{opacity:0}}
@keyframes ai-shimmer{to{background-position:-200% 0}}
@keyframes ai-breathe{50%{box-shadow:0 0 0 5px #7c4dff22}}
