#chat-form-container{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background:#fff;
  border-top:1px solid #e0e0e0;
}
#chat-form{
  max-width:896px;
  width:100%;
  margin:0 auto;
  padding:8px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
}
.chat-row{
  display:flex;
  align-items:flex-end;
  gap:8px;
}
.chat-action-btn{
  flex:none;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#2563eb;
  color:#fff;
  border-radius:50%;
  border:none;
  cursor:pointer;
  transition:background-color .2s;
}
.chat-action-btn:hover{
  background:#1d4ed8;
}
.chat-action-btn:focus{outline:2px solid #0EA5E9;outline-offset:2px;}
.chat-textarea{
  flex-grow:1;
  width:100%;
  min-height:72px;
  max-height:200px;
  padding:8px 12px;
  border:1px solid #ccc;
  border-radius:12px;
  resize:none;
  overflow-y:auto;
  background:#ebf4ff;
  font-size:16px;
  line-height:1.4;
}
.chat-textarea:focus{outline:2px solid #0EA5E9;outline-offset:2px;}
#file-preview{
  display:flex;
  align-items:center;
}
#file-preview img{
  max-width:100px;
  max-height:100px;
  margin-right:8px;
}

/* Attachment widget */
#attachment-section{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
#attachment-section.hidden{display:none;}
.file-chip{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
  flex-shrink:0;
}
.file-icon{
  width:24px;
  height:24px;
  flex:none;
}
.file-icon svg{width:100%;height:100%;display:block;color:#0EA5E9;}
.file-info{font-size:14px;line-height:1.2;}
.file-name{font-weight:600;}
.file-size{font-size:12px;color:#6b7280;}
.remove-btn{
  position:absolute;
  top:-8px;right:-8px;
  width:24px;height:24px;
  border:none;
  border-radius:50%;
  background:#f3f4f6;
  cursor:pointer;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:center;
}
.remove-btn:focus{outline:2px solid #0EA5E9;outline-offset:2px;}
progress{
  width:100%;height:4px;
  border:none;border-radius:4px;
  background:#e5e7eb;
}
progress::-webkit-progress-bar{background:#e5e7eb;border-radius:4px;}
progress::-webkit-progress-value{background:#0EA5E9;border-radius:4px;}
progress::-moz-progress-bar{background:#0EA5E9;border-radius:4px;}
.upload-check{color:#16a34a;font-size:16px;margin-left:4px;}

.patient-meta{display:flex;flex-direction:column;gap:4px;align-items:center;}
.params-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;}
.gender-field{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;}
.gender-field .field-label{font-size:15px;font-weight:500;white-space:nowrap;line-height:40px;}
.gender-option{display:flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid #cbd5e1;border-radius:12px;cursor:pointer;transition:background .2s,border-color .2s;height:40px;flex:0 0 auto;font-size:15px;}
.gender-option input{display:none;}
.gender-option.selected{border-color:#0EA5E9;background:#f0f9ff;}
.age-group{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;}
.age-group label{font-weight:500;line-height:40px;}
.age-input{width:5ch;min-width:56px;height:40px;text-align:center;border:1px solid #cbd5e1;border-radius:12px;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;}
.age-unit{padding:0 8px;line-height:40px;flex-shrink:0;}
.help-btn{width:40px;height:40px;display:inline-grid;place-items:center;flex:0 0 40px;background:linear-gradient(#fff,#f1f5f9);border:1px solid #d1d5db;border-radius:12px;font-size:15px;color:#0EA5E9;cursor:pointer;transition:background .3s,color .3s;flex-shrink:0;}
.help-btn:hover{background:#0EA5E9;color:#fff;}
.help-btn:focus{outline:2px solid #0EA5E9;outline-offset:2px;}
.patient-meta input:focus{outline:2px solid #0EA5E9;outline-offset:2px;}
.error-msg{color:#dc2626;font-size:12px;margin-top:4px;}

@media(max-width:768px){
  .params-row{flex-direction:column;align-items:center;}
  .age-group{align-self:center;}
}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);align-items:center;justify-content:center;z-index:70;padding:1rem;}
.modal.show{display:flex;}
.modal-content{background:#fff;border-radius:16px;padding:1.5rem;max-width:320px;line-height:1.4;position:relative;}
.modal-content .close{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:24px;line-height:1;color:#6b7280;cursor:pointer;}
.modal-content .close:focus{outline:2px solid #0EA5E9;outline-offset:2px;}

@media(max-width:640px){
  #chat-form{max-width:100%;padding:8px 6px;gap:6px;}
  .chat-row{gap:6px;}
  .chat-textarea{font-size:14px;min-height:40px;}
}
@media(max-width:480px){
  .patient-meta{flex-direction:column;align-items:stretch;}
  .info-trigger{align-self:flex-start;}
}

  #history-loading{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.9);
  z-index:10;
}


/* Кнопка в шапке */
.menu-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border:1px solid #e5e7eb;border-radius:999px;
  background:#fff;color:#111827;cursor:pointer;line-height:1;
  box-shadow:0 2px 6px rgba(0,0,0,.06); transition:.15s transform,.15s border-color;
}
.menu-btn:hover{transform:translateY(-1px);border-color:#d1d5db}
.menu-btn .menu-label{font-weight:600;font-size:14px}
.menu-btn .icon-burger{display:inline-flex;color:#2563eb}
.avatar{width:24px;height:24px;border-radius:999px;background:#2563eb;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.avatar.lg{width:44px;height:44px;font-size:18px}

/* Бэкдроп */
.drawer-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:60;opacity:0;transition:.2s opacity;
}
.drawer-backdrop.show{opacity:1}

/* Сайдбар */
.drawer{
  position:fixed;top:0;right:0;height:100dvh; /* mobile friendly */
  width:92vw;max-width:420px;min-width:300px;
  background:#fff;z-index:61;box-shadow:-8px 0 24px rgba(0,0,0,.12);
  transform:translateX(100%);transition:.25s transform;display:flex;flex-direction:column;
  padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
  font-size:14px;line-height:1.45;
}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #f1f5f9}
.drawer-close{border:0;background:transparent;cursor:pointer;font-size:0;color:#334155}
.user-card{padding:14px 18px;border-bottom:1px solid #f1f5f9}
.user-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.user-meta .user-name{font-weight:700}
.user-meta .user-phone{color:#6b7280}
.sub-box{border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;background:#fafafa}
.sub-box.ok{border-color:#bbf7d0;background:#f0fdf4}
.sub-box.warn{border-color:#fde68a;background:#fffbeb}
.sub-title{font-weight:700;margin-bottom:4px}
.sub-until{margin-bottom:10px}
.btn.action{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 14px;border-radius:10px;
  background:#2563eb;color:#fff;font-weight:700;text-decoration:none}
.drawer-nav{display:flex;flex-direction:column;padding:8px}
.nav-item{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:4px 8px;border-radius:10px;text-decoration:none;color:#111827;line-height:1.45}
.nav-item.hidden{display:none}
.nav-item:hover{background:#f3f4f6}
.nav-item.primary{color:#2563eb}
.nav-item.danger{color:#dc2626}
.drawer-foot{margin-top:auto;padding:12px 18px;border-top:1px solid #f1f5f9;color:#6b7280;font-size:12px}

/* На больших экранах — прижимаем к правому краю, ширина уже */
@media (min-width:1024px){
  .drawer{width:360px;max-width:360px}
}

/* Общие */
[hidden]{display:none !important}

/* Облако и панель */
.tg-modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center}
.tg-modal__backdrop{position:absolute;inset:0;background:rgba(17,24,39,.55);backdrop-filter:blur(2px);opacity:0;transition:.2s}
.tg-modal__panel{
  position:relative; width:min(92vw,440px); border-radius:16px; background:#fff;
  box-shadow:0 20px 60px rgba(0,0,0,.20);
  padding:18px; transform:translateY(8px) scale(.98); opacity:0; transition:.25s
}
.tg-modal.open .tg-modal__backdrop{opacity:1}
.tg-modal.open .tg-modal__panel{transform:translateY(0) scale(1); opacity:1}

/* Заголовок и закрытие */
.tg-modal__title{margin:0 0 12px;font-size:18px}
.tg-modal__close{
  position:absolute;top:10px;right:10px;border:0;background:#f3f4f6;width:32px;height:32px;
  border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer
}
.tg-modal__close:hover{background:#e5e7eb}

/* Поле ввода с иконкой — как на основной странице */
.input-wrap{position:relative;margin:6px 0 10px}
.input{width:100%;height:48px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;
       padding:0 14px 0 44px;font-size:16px;transition:.15s border-color,.15s box-shadow}
.input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 4px rgba(59,130,246,.15)}
.input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;display:inline-flex}

/* Кнопка Telegram */
.btn-tg{
  width:100%;height:48px;margin-top:6px;border:0;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(180deg,#2AABEE,#229ED9);color:#fff;font-weight:700;font-size:16px;
  cursor:pointer;box-shadow:0 8px 16px rgba(34,158,217,.22);transition:transform .05s,filter .15s
}
.btn-tg:hover{filter:brightness(1.05)}
.btn-tg:active{transform:translateY(1px)}
.btn-icon svg{display:block}

/* Ссылка "Закрыть" */
.link-ghost{
  margin-top:10px;background:transparent;border:0;color:#374151;font-size:14px;
  text-decoration:underline;cursor:pointer
}

/* Мобильные отступы */
@media (max-width:420px){
  .tg-modal__panel{padding:16px;border-radius:14px}
}
