Index: lan-frontend/src/styles/theme.css
===================================================================
--- lan-frontend/src/styles/theme.css	(revision 2058e5c694bb6097866a5fe6503c519e8f74970f)
+++ lan-frontend/src/styles/theme.css	(revision d42aac31fe37e6e42a1b0515b54b86e8706d90a8)
@@ -402,2 +402,148 @@
 }
 *::-webkit-scrollbar-track{ background: rgba(2,6,23,0.25); }
+.aiDrawer-backdrop{
+  position: fixed;
+  inset: 0;
+  background: rgba(0,0,0,.55);
+  backdrop-filter: blur(2px);
+  z-index: 999;
+}
+
+/* десен drawer */
+.aiDrawer{
+  position: fixed;
+  top: 0;
+  right: 0;
+  height: 100vh;
+  width: min(520px, 92vw);
+  background: #0b1220;            /* темна */
+  color: #e7eefc;
+  border-left: 1px solid rgba(255,255,255,.08);
+  z-index: 1000;
+  display: grid;
+  grid-template-rows: auto auto 1fr auto;
+
+  /* slide in */
+  transform: translateX(0);
+  animation: aiSlideIn .18s ease-out;
+}
+
+@keyframes aiSlideIn{
+  from { transform: translateX(24px); opacity: .7; }
+  to   { transform: translateX(0); opacity: 1; }
+}
+
+.aiDrawer-head{
+  padding: 14px 16px;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  border-bottom: 1px solid rgba(255,255,255,.08);
+}
+
+.aiDrawer-title{
+  font-size: 16px;
+  font-weight: 700;
+}
+
+.aiDrawer-sub{
+  font-size: 12px;
+  opacity: .75;
+  margin-top: 2px;
+}
+
+.aiDrawer-toolbar{
+  padding: 12px 16px;
+  border-bottom: 1px solid rgba(255,255,255,.08);
+  display: grid;
+  gap: 8px;
+}
+
+.aiSelect{
+  width: 100%;
+  background: rgba(255,255,255,.06);
+  border: 1px solid rgba(255,255,255,.10);
+  color: #e7eefc;
+  padding: 10px 12px;
+  border-radius: 10px;
+  outline: none;
+}
+
+.aiHint{
+  font-size: 12px;
+  opacity: .75;
+}
+
+.aiDrawer-body{
+  padding: 14px 16px;
+  overflow: auto;
+  display: grid;
+  gap: 10px;
+}
+
+/* chat bubbles */
+.aiMsg{
+  max-width: 92%;
+  border: 1px solid rgba(255,255,255,.08);
+  border-radius: 14px;
+  padding: 10px 12px;
+  background: rgba(255,255,255,.04);
+}
+
+.aiMsg.user{
+  margin-left: auto;
+  background: rgba(88, 167, 255, .12);
+  border-color: rgba(88, 167, 255, .20);
+}
+
+.aiMsg-meta{
+  font-size: 11px;
+  opacity: .7;
+  margin-bottom: 6px;
+}
+
+.aiMsg-text{
+  white-space: pre-wrap;
+  line-height: 1.35;
+  font-size: 14px;
+}
+
+.aiDrawer-foot{
+  padding: 12px 16px;
+  border-top: 1px solid rgba(255,255,255,.08);
+  display: grid;
+  grid-template-columns: 1fr auto;
+  gap: 10px;
+  align-items: end;
+  background: rgba(255,255,255,.02);
+}
+
+.aiTextarea{
+  width: 100%;
+  resize: none;
+  background: rgba(255,255,255,.06);
+  border: 1px solid rgba(255,255,255,.10);
+  color: #e7eefc;
+  padding: 10px 12px;
+  border-radius: 12px;
+  outline: none;
+}
+
+.aiBtn{
+  background: rgba(255,255,255,.06);
+  border: 1px solid rgba(255,255,255,.10);
+  color: #e7eefc;
+  padding: 10px 12px;
+  border-radius: 12px;
+  cursor: pointer;
+}
+
+.aiBtn:disabled{
+  opacity: .5;
+  cursor: not-allowed;
+}
+
+.aiBtnPrimary{
+  background: rgba(88, 167, 255, .22);
+  border-color: rgba(88, 167, 255, .35);
+}
