/* Aidi (public/static/aidi.js): знак на бумажном диске у правого края, подсказка слева от него, чат — карточка справа
   внизу (телефон — лист снизу на весь экран). Тушь, бумага, точки знака; без эмодзи. */
.aidi{position:fixed;z-index:40;top:0;right:max(16px,env(safe-area-inset-right));transform:translateY(var(--ay,80vh));transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .5s;opacity:0;pointer-events:none}
.aidi.on{opacity:1}
.aidi.on>*{pointer-events:auto}
.aidi-orb{position:relative;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--surface,#fff);color:var(--ink,#14130F);
  box-shadow:0 0 0 1px rgb(20 19 15/.08),0 10px 28px -10px rgb(20 19 15/.35),0 2px 6px rgb(20 19 15/.08);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.aidi-orb:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 0 0 1px rgb(20 19 15/.1),0 16px 34px -12px rgb(20 19 15/.4),0 2px 6px rgb(20 19 15/.08)}
.aidi-orb:active{transform:scale(.96)}
.aidi-orb:focus-visible{outline:2px solid var(--blue,#0A84FF);outline-offset:3px}
.aidi-orb svg{width:34px;height:auto;overflow:visible}
.aidi.open .aidi-orb{opacity:0;pointer-events:none;transform:scale(.6)}
/* знак живой: ряды дышат по очереди, точки моргают, «смотрит» на подсказку */
.aidi svg .ai-g path,.aidi svg .ai-d{transform-box:fill-box;transform-origin:center}
.aidi-orb .ai-r1{animation:aiBreath 4.2s ease-in-out infinite}
.aidi-orb .ai-r2{animation:aiBreath 4.2s ease-in-out -.5s infinite}
.aidi-orb .ai-r3{animation:aiBreath 4.2s ease-in-out -1s infinite}
.aidi-orb .ai-d{animation:aiBlink 6s ease-in-out infinite}
.aidi-orb .ai-d2{animation-delay:-2s}.aidi-orb .ai-d3{animation-delay:-4s}
@keyframes aiBreath{50%{opacity:.55;transform:scale(.94)}}
@keyframes aiBlink{0%,90%,100%{transform:scale(1)}94%{transform:scale(.3)}}
.aidi.tip .aidi-orb svg{transform:translateX(-1.5px)}
.aidi-orb svg{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
/* отвечает: ряды расходятся волнами */
.aidi.talk .ai-r1,.aidi.talk .ai-r2,.aidi.talk .ai-r3{animation:aiTalk .9s ease-in-out infinite}
.aidi.talk .ai-r2{animation-delay:-.3s}.aidi.talk .ai-r3{animation-delay:-.6s}
@keyframes aiTalk{50%{transform:scale(1.08);opacity:.6}}

/* подсказка и «Спросить Aidi» */
.aidi-tip{position:absolute;right:72px;top:50%;display:flex;align-items:center;gap:4px;width:max-content;max-width:min(280px,calc(100vw - 110px));padding:9px 8px 9px 14px;border-radius:16px;
  background:var(--ink,#14130F);color:#F2EEE6;font:600 14px/1.3 var(--font-d,system-ui);box-shadow:0 12px 30px -12px rgb(20 19 15/.5);
  opacity:0;transform:translate(8px,-50%) scale(.96);transform-origin:right center;transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);pointer-events:none;white-space:normal}
.aidi-tip::after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;margin-top:-5px;background:inherit;transform:rotate(45deg);border-radius:2px}
.aidi.tip .aidi-tip{opacity:1;transform:translate(0,-50%);pointer-events:auto}
.aidi-tip span{cursor:pointer}
.aidi-tip-x{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:rgb(242 238 230/.6);flex:none}
.aidi-tip-x:hover{color:#F2EEE6;background:rgb(255 255 255/.1)}
.aidi.hover .aidi-tip{padding-right:14px}.aidi.hover .aidi-tip-x{display:none}

/* чат */
.aidi-chat{position:fixed;z-index:41;right:max(16px,env(safe-area-inset-right));bottom:16px;width:min(390px,calc(100vw - 32px));height:min(620px,calc(100vh - 100px));display:flex;flex-direction:column;
  border-radius:24px;background:var(--surface,#fff);color:var(--ink,#14130F);box-shadow:0 0 0 1px rgb(20 19 15/.08),0 30px 70px -24px rgb(20 19 15/.45);overflow:hidden;
  animation:aiIn .35s cubic-bezier(.2,.8,.2,1);transform-origin:bottom right}
.aidi-chat[hidden]{display:none}
@keyframes aiIn{from{opacity:0;transform:translateY(12px) scale(.97)}}
.aidi-chat header{display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;border-bottom:1px solid var(--sep,rgb(20 19 15/.1))}
.aidi-av{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--cream,#F2EEE6);flex:none}
.aidi-av svg{width:24px;height:auto}
.aidi-chat svg .ai-g path{transform-box:fill-box;transform-origin:center}
.aidi-chat.talk .ai-r1,.aidi-chat.talk .ai-r2,.aidi-chat.talk .ai-r3{animation:aiTalk .9s ease-in-out infinite}
.aidi-t{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}
.aidi-t b{font:800 16px/1.2 var(--font-d,system-ui)}
.aidi-t small{font-size:12.5px;color:var(--label-2,#6B665D)}
.aidi-x{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--label-2,#6B665D)}
.aidi-x:hover{background:var(--fill,rgb(20 19 15/.05));color:var(--ink,#14130F)}
.aidi-log{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain;scroll-behavior:smooth}
.aidi-m{max-width:86%;padding:9px 13px;border-radius:18px;font-size:15px;line-height:1.42;overflow-wrap:anywhere}
.aidi-m p+p,.aidi-m p+ul,.aidi-m ul+p{margin-top:6px}
.aidi-m ul{padding-left:18px;margin:4px 0}
.aidi-m a{text-decoration:underline;text-underline-offset:2px}
.aidi-m.a{align-self:flex-start;background:var(--cream,#F2EEE6);border-bottom-left-radius:6px}
.aidi-m.u{align-self:flex-end;background:var(--ink,#14130F);color:#F2EEE6;border-bottom-right-radius:6px}
.aidi-m.wait{padding:12px 14px}
.aidi-dots{display:inline-flex;gap:5px}
.aidi-dots i{width:7px;height:7px;border-radius:50%;background:#FF3B30;animation:aiDot 1s ease-in-out infinite}
.aidi-dots i:nth-child(2){background:#22C55E;animation-delay:.15s}.aidi-dots i:nth-child(3){background:#0A84FF;animation-delay:.3s}
@keyframes aiDot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.aidi-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}
.aidi-chips button{padding:7px 12px;border-radius:999px;border:1px solid var(--sep,rgb(20 19 15/.12));font-size:13.5px;font-weight:600;text-align:left;transition:background .15s,border-color .15s}
.aidi-chips button:hover{background:var(--cream,#F2EEE6);border-color:transparent}
.aidi-in{display:flex;align-items:flex-end;gap:8px;padding:10px 10px 12px 14px;border-top:1px solid var(--sep,rgb(20 19 15/.1))}
.aidi-in textarea{flex:1;resize:none;border:0;outline:0;background:none;font-family:inherit;font-size:16px;line-height:1.4;color:inherit;max-height:120px;padding:8px 0}
.aidi-go{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink,#14130F);color:#F2EEE6;flex:none;transition:opacity .15s}
.aidi-go:disabled{opacity:.4}

/* форма контактов в чате */
.aidi-lead{align-self:stretch;display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:18px;box-shadow:0 0 0 1px var(--sep,rgb(20 19 15/.12));margin-top:2px}
.aidi-lt{font:700 15px/1.3 var(--font-d,system-ui)}
.aidi-lead label{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--label-2,#6B665D)}
.aidi-lead input:not([type=checkbox]){height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--sep,rgb(20 19 15/.15));background:var(--paper,#FBFAF7);font-family:inherit;font-size:16px;color:var(--ink,#14130F)}
.aidi-lead input:focus{outline:2px solid var(--blue,#0A84FF);outline-offset:0;border-color:transparent}
.aidi-lead label.bad input:not([type=checkbox]){border-color:#FF3B30}
.aidi-lead .aidi-ck{flex-direction:row;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.35}
.aidi-lead .aidi-ck input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--ink,#14130F)}
.aidi-lead .aidi-ck.bad span{color:#FF3B30}
.aidi-lead .aidi-ck a{text-decoration:underline}
.aidi-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.aidi-le{font-size:12.5px;color:#FF3B30;min-height:0}
.aidi-le:empty{display:none}
.aidi-lead .btn{height:42px;margin-top:2px}

/* телефон: знак внизу справа, чат — лист на весь экран */
@media(max-width:719px),(hover:none){
  .aidi{transition:opacity .5s}
  .aidi-orb{width:54px;height:54px}.aidi-orb svg{width:30px}
  .aidi-tip{right:64px;font-size:13.5px}
}
@media(max-width:719px){
  .aidi-chat{inset:auto 0 0 0;width:100%;height:min(88dvh,100%);border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom);animation-name:aiUp}
  @keyframes aiUp{from{transform:translateY(40px);opacity:0}}
}
@media print{.aidi{display:none}}

/* смена «Спикерам ⇄ Организаторам» (View Transitions): знак и чат — своими слоями, поверх логотипа, слогана и капсулы */
.aidi{view-transition-name:aidi-orb}
.aidi-chat{view-transition-name:aidi-chat}
::view-transition-group(aidi-orb),::view-transition-group(aidi-chat){z-index:100;animation:none}
::view-transition-old(aidi-orb),::view-transition-old(aidi-chat){display:none}
::view-transition-new(aidi-orb),::view-transition-new(aidi-chat){animation:none}

/* лист чата на телефоне: ручка сверху, тянется вниз за шапку — закрывается */
.aidi-grab{display:none}
@media(max-width:719px){
  .aidi-chat header{position:relative;padding-top:20px;touch-action:none;cursor:grab}
  .aidi-grab{display:block;position:absolute;top:8px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:rgb(20 19 15/.18)}
  .aidi-log{overscroll-behavior:contain}
}

/* пока чат открыт — курсора демо нет (на телефоне он оказывался поверх листа чата) */
html.aidi-open .mcur{visibility:hidden!important}
/* свёрнутая форма: кнопка «Оставить контакты» над полем ввода */
.aidi-leave{padding:6px 14px 0}
.aidi-leave[hidden]{display:none}
.aidi-leave button{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--cream,#F2EEE6);font:700 13.5px/1.2 var(--font-d,system-ui);color:var(--ink,#14130F)}
.aidi-leave button::before{content:"";width:7px;height:7px;border-radius:50%;background:#22C55E}
/* тёмная тема страницы: «тушь» светлая — текст на ней тёмный */
:root[data-theme=dark] :is(.aidi-tip,.aidi-m.u,.aidi-go){color:var(--paper)}
:root[data-theme=dark] .aidi-tip-x{color:rgb(18 17 16/.55)}
:root[data-theme=dark] .aidi-tip-x:hover{color:var(--paper);background:rgb(0 0 0/.08)}
:root[data-theme=dark] .aidi-orb{box-shadow:0 0 0 1px rgb(255 255 255/.1),0 10px 28px -10px rgb(0 0 0/.7)}
:root[data-theme=dark] .aidi-chat{box-shadow:0 0 0 1px rgb(255 255 255/.1),0 30px 70px -24px rgb(0 0 0/.8)}
:root[data-theme=dark] .aidi-grab{background:rgb(255 255 255/.2)}
