/* Чат «Умный помощник» (/ai/) — стили клиента. Вынесены из шаблона
   pages/ai.html (аудит, этап 06): браузер кэширует файл отдельно,
   работает static_v-версионирование. Грузится только на /ai/ (extra_head). */
:root {--kudo-bg:var(--brand-bg); --kudo-surface:#ffffff; --kudo-surface-soft:#f1f1f1; --kudo-surface-user:#f3f3f3; --kudo-text:#242424; --kudo-text-soft:#666666; --kudo-text-muted:#999999; --kudo-border:rgba(0,0,0,0.12); --kudo-border-strong:rgba(0,0,0,0.18); --kudo-red:#1f1f1f; --kudo-red-hover:#000000; --kudo-red-soft:rgba(0,0,0,0.06); --kudo-radius-xl:20px; --kudo-radius-lg:20px; --kudo-radius-md:16px; --kudo-radius-pill:10px; --kudo-ease:cubic-bezier(0.22,1,0.36,1)}
.kudo-chat-column {float:none !important; margin-left:auto !important; margin-right:auto !important}
#kudo-chat-root,#kudo-chat-root *,#kudo-chat-root *::before,#kudo-chat-root *::after {box-sizing:border-box}
#kudo-chat-root {width:100%; margin:32px auto 80px; color:var(--kudo-text); font-size:16px; line-height:1.5}
#kudo-chat-root:not(.is-chatting) {height:70vh; min-height:650px; display:flex; flex-direction:column; justify-content:center; padding:28px; overflow:hidden}
#kudo-chat-root.is-chatting {height:auto; min-height:0; max-height:none; padding:0; border:none; border-radius:0; background:transparent; overflow:visible}
.kudo-welcome {width:100%; max-width:780px; margin:0 auto 35px; padding:0 10px; text-align:center; transition:opacity 0.28s var(--kudo-ease),transform 0.28s var(--kudo-ease),max-height 0.28s var(--kudo-ease),margin 0.28s var(--kudo-ease)}
.kudo-welcome.hidden {opacity:0; transform:translateY(-8px); pointer-events:none; max-height:0; margin:0 auto; overflow:hidden}
.kudo-welcome h2 {margin:0; color:var(--kudo-text); font-size:27px; font-weight:400; line-height:1.25; display:flex; align-items:center; justify-content:center; gap:13px}
.kudo-welcome-logo {width:30px; height:30px; flex:0 0 30px; display:block}
.kudo-welcome-accent {color:var(--kudo-red)}
.kudo-welcome-desc {margin:40px 0 10px; color:var(--kudo-text-soft); font-size:14px !important; margin-top:14vh; text-align:center}
#kudo-messages {width:100%; max-width:860px; margin:0 auto; padding:16px 0 28px; overflow:visible}
.km {width:100%; padding:15px 0; animation:kmAppear 0.24s var(--kudo-ease)}
@keyframes kmAppear {from {opacity:0; transform:translateY(6px)} to {opacity:1; transform:translateY(0)} }
.km-inner {width:100%; display:flex; align-items:flex-start}
.km-bot .km-inner {justify-content:flex-start}
.km-user .km-inner {justify-content:flex-end}
.km-bubble {min-width:0}
.km-bot .km-bubble {width:100%; max-width:760px; padding:0; background:transparent; border:none}
.km-user .km-bubble {max-width:min(680px,82%); padding:10px 15px; border-radius:15px; background:var(--kudo-surface-user)}
.km-content p, .km-content li {color:var(--kudo-text); font-size:16px; line-height:1.76; word-break:normal;font-weight: 300;overflow-wrap:anywhere}
.km-user .km-content {line-height:1.55}
.km-content p {margin:0 0 11px}
.km-content p:last-child {margin-bottom:0}
.km-content b,.km-content strong {font-weight:400}
.km-content a {color:var(--kudo-red); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px}
.km-content a:hover {color:var(--kudo-red-hover)}
.km-content code,.km-content pre {font-family:inherit; color:inherit; background:transparent; font-size:inherit; white-space:normal}
.km-content code {padding:0; border-radius:0}
.km-content pre {margin:0 0 11px; padding:0; overflow:visible}
.km-content ul,.km-content ol {margin:7px 0 12px 16px;list-style:none;padding:0}
.km-content ul li,.km-content ol li { position: relative; padding-left: 18px; }
.km-content ul li::before,.km-content ol li::before  {content: "";position: absolute;left: 0;top: 0.7em;width: 6px; height: 6px;background: #d2d2d2;}
.km-content li {margin-bottom:4px}
.km-content br {display:block; content:""; margin-top:4px}
.km-content h3 {font-size:22px;}
.km-table-wrap {width:100%; margin:14px 0 16px; overflow-x:auto; -webkit-overflow-scrolling:touch}
.km-table-wrap table {width:100%; min-width:620px; border-collapse:collapse; border-spacing:0; color:var(--kudo-text); font-size:14px; line-height:1.45}
.km-table-wrap th,.km-table-wrap td {padding:10px 12px; border:1px solid var(--kudo-border); text-align:left; vertical-align:middle}
.km-table-wrap th {background:var(--kudo-surface-soft); font-weight:700}
.km-table-wrap tr:nth-child(even) td {background:rgba(0,0,0,0.02)}
.km-table-wrap p {margin:0}
.km-text-gap {display:block; height:8px}
.km-bot-signature {display:inline-flex; align-items:center; gap:7px; margin-top:13px; color:var(--kudo-text-muted); font-size:12px; line-height:1; font-weight:400; opacity:0.78; user-select:none}
.km-bot-end-icon {display:block; width:16px; height:16px; flex:0 0 16px; margin:0; opacity:0.68}
.km-bot-signature-text {display:block; transform:translateY(0.5px)}
.km-buttons {display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.km-btn {appearance:none; border:1px solid var(--kudo-border-strong); border-radius:var(--kudo-radius-pill); background:transparent; color:var(--kudo-text); padding:8px 13px; font-size:14px; line-height:1.35; cursor:pointer; transition:background 0.18s var(--kudo-ease),border-color 0.18s var(--kudo-ease),color 0.18s var(--kudo-ease)}
.km-btn:hover:not(:disabled) {color:var(--kudo-red); border-color:rgba(226,6,19,0.36); background:var(--kudo-red-soft)}
.km-btn:disabled {opacity:0.55; cursor:default}
.km-btn-on {color:#fff !important; border-color:var(--kudo-red) !important; background:var(--kudo-red) !important}
.km-typing-dots {display:inline-flex; align-items:center; gap:5px; height:26px}
.km-typing-dot {width:6px; height:6px; border-radius:50%; background:rgba(36,33,30,0.38); animation:kmPulse 1.2s infinite ease-in-out}
.km-typing-dot:nth-child(2) {animation-delay:0.14s}
.km-typing-dot:nth-child(3) {animation-delay:0.28s}
@keyframes kmPulse {0%,70%,100% {transform:translateY(0); opacity:0.35} 35% {transform:translateY(-3px); opacity:1} }
.kudo-input-area {width:100%; max-width:780px; margin:0 auto}
#kudo-chat-root.is-chatting .kudo-input-area {max-width:860px; position:sticky; bottom:18px; z-index:10; padding-top:14px}
.kudo-input-box {position:relative; display:flex; align-items:flex-end; gap:10px; width:100%; min-height:92px; padding:16px 16px 16px 20px; border:1px solid var(--kudo-border-strong); border-radius:20px; background:var(--kudo-surface); transition:border-color 0.18s var(--kudo-ease),background 0.18s var(--kudo-ease)}
.kudo-input-box:focus-within {border-color:rgba(226,6,19,0.45); background:#fff}
#kudo-input {flex:1; width:100%; min-height:58px; max-height:180px; margin:0; padding:0; resize:none; border:none; outline:none; background:transparent; color:var(--kudo-text); font-family:inherit; font-size:16px; line-height:1.55; -webkit-appearance:none}
#kudo-input::placeholder {color:var(--kudo-text-muted)}
.kudo-short-response {height:40px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; margin:0; padding:0 12px; border:1px solid var(--kudo-border-strong); border-radius:12px; color:var(--kudo-text-soft); background:transparent; font-size:13px; line-height:1; cursor:pointer; transition:background 0.18s var(--kudo-ease),border-color 0.18s var(--kudo-ease),color 0.18s var(--kudo-ease),opacity 0.18s var(--kudo-ease)}
.kudo-short-response:hover:not(:disabled) {color:var(--kudo-red); border-color:rgba(226,6,19,0.36); background:var(--kudo-red-soft)}
.kudo-short-response.active {color:#fff; border-color:var(--kudo-red); background:var(--kudo-red)}
.kudo-short-response:disabled {opacity:0.42; cursor:default}
#kudo-send {width:40px; height:40px; flex:0 0 40px; display:flex; align-items:center; justify-content:center; margin:0; border:none; border-radius:14px; color:#fff; background:var(--kudo-red); cursor:pointer; transition:background 0.18s var(--kudo-ease),opacity 0.18s var(--kudo-ease)}
#kudo-send svg {width:18px; height:18px}
#kudo-send:not(:disabled):hover {background:var(--kudo-red-hover)}
#kudo-send:disabled {opacity:0.34; cursor:default}
.kudo-hints {display:flex; flex-wrap:wrap; justify-content:center; gap:10px; width:100%; max-width:760px; margin:20px auto 0; padding:0; overflow:hidden; transition:opacity 0.22s var(--kudo-ease),max-height 0.22s var(--kudo-ease),margin 0.22s var(--kudo-ease)}
.kudo-hints.hidden {opacity:0; max-height:0; margin-top:0; pointer-events:none}
.kudo-hint {appearance:none; display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 12px; border:1px solid var(--kudo-border); border-radius:var(--kudo-radius-pill); color:var(--kudo-text-soft); background:transparent; font-size:14px; line-height:1.25; cursor:pointer; user-select:none; transition:color 0.18s var(--kudo-ease),background 0.18s var(--kudo-ease),border-color 0.18s var(--kudo-ease)}
.kudo-hint:hover {color:var(--kudo-red); border-color:rgba(226,6,19,0.32); background:var(--kudo-red-soft)}
.kudo-hint:focus-visible,.km-btn:focus-visible,.kudo-short-response:focus-visible,#kudo-send:focus-visible {outline:2px solid var(--color-brand); outline-offset:2px}
.kudo-disclaimer {margin:10px 0 0; padding:0; text-align:center; color:var(--kudo-text-muted); font-size:12px; line-height:1.45}
#kudo-chat-root.is-chatting .kudo-disclaimer {}
#kudo-chat-root.is-chatting .kudo-welcome-desc {display:none}
@media (max-width:768px) {
.kudo-welcome-logo {display:none;}
.kudo-chat-column {width:100% !important; padding-left:15px !important; padding-right:15px !important}
#kudo-chat-root {margin:18px auto 48px}
#kudo-chat-root:not(.is-chatting) {height:auto; min-height:520px; padding:22px 0}
.kudo-welcome {max-width:100%;margin-bottom: 25px;}
.kudo-welcome h2 {font-size:22px;text-align:left}
.kudo-welcome-desc {margin-top:60px;text-align:left;}
#kudo-messages {padding:8px 0 22px}
.km {padding:12px 0}
.km-content {font-size:14px; line-height:1.65}
.km-content h3 {font-size: 20px}
.km-user .km-bubble {max-width:88%; padding:10px 15px; border-radius:10px}
.kudo-input-box {min-height:86px; padding:14px 14px 14px 16px; border-radius:15px}
.kudo-short-response {height:38px; padding:0 10px; border-radius:11px; font-size:12px}
#kudo-send {width:38px; height:38px; flex-basis:38px; border-radius:13px}
.kudo-hints {justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; margin-top:20px}
.kudo-hints::-webkit-scrollbar {display:none}
.kudo-hint {flex:0 0 auto; font-size:14px; min-height:32px}
.kudo-disclaimer {font-size:11px}
}
@media (prefers-reduced-motion:reduce) {
.kudo-welcome,.kudo-hints,.kudo-input-box,.kudo-short-response,#kudo-send,.km-btn {transition:none}
.km,.km-typing-dot {animation:none}
}
