@charset "UTF-8";
.ai-panel[data-v-cc3befd9] {
  /* 关闭态宽度归零、不占 flex 空间；打开态 360px。宽度过渡产生滑入/滑出。 */
  flex-shrink: 0;
  width: 0;
  height: 100%;
  overflow: hidden;
  background: var(--app-bg-surface);
  transition: width var(--app-transition-slow);
}
.ai-panel.is-open[data-v-cc3befd9] {
  width: 360px;
  border-left: 1px solid var(--app-border);
}
.ai-panel[data-v-cc3befd9] {
  /* 全屏：脱离 flex，覆盖整个视口 */
}
.ai-panel.is-fullscreen[data-v-cc3befd9] {
  position: fixed;
  inset: 0;
  width: 100vw;
  z-index: var(--app-z-modal);
  border-left: none;
}
.ai-panel__inner[data-v-cc3befd9] {
  /* 固定 360 宽，避免宽度过渡时内部内容被挤压重排 */
  width: 360px;
  height: 100%;
  display: flex;
  flex-direction: column;
  /* 关键：作为 host 控制条（absolute）的定位上下文。否则其包含块回退到视口，
     会逃出 .ai-panel 的 overflow:hidden 裁剪 → 面板关闭后全屏/关闭按钮仍浮在右上角。 */
  position: relative;
}
.is-fullscreen .ai-panel__inner[data-v-cc3befd9] {
  width: 100%;
}

/* host 控制条：贴右上角，浮在 SDK 头部（.header-box）之上的最右侧，
   高度与应用顶栏（--top-height）一致，纵向居中对齐 SDK 头部按钮 */
.ai-panel__chrome[data-v-cc3befd9] {
  position: absolute;
  top: 0;
  right: 0;
  height: var(--app-layout-toolbar-height);
  display: flex;
  align-items: center;
  /* 与 SDK 头部图标按钮的节奏对齐：按钮间距 4px、右缘留 12px（= .header-box 的左右内边距） */
  gap: 4px;
  padding-right: 12px;
  z-index: 2;
}

/* 与 SDK 头部图标按钮风格统一：24×24 方形、无填充、次要色图标、轻 hover 反馈 */
.ai-panel__chrome-btn[data-v-cc3befd9] {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--app-text-secondary);
  border-radius: var(--app-radius);
  cursor: pointer;
  transition: background var(--app-transition-fast), color var(--app-transition-fast);
}
.ai-panel__chrome-btn .el-icon[data-v-cc3befd9] {
  font-size: 14px;
}
.ai-panel__chrome-btn[data-v-cc3befd9]:hover {
  background: var(--app-bg-fill-light);
  color: var(--app-text-body);
}
.ai-panel__body[data-v-cc3befd9] {
  position: relative;
  flex: 1;
  min-height: 0;
}
.ai-panel__sdk[data-v-cc3befd9] {
  display: block;
  width: 100%;
  height: 100%;
}
.ai-panel__status[data-v-cc3befd9] {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--app-spacing-s);
  background: var(--app-bg-surface);
  z-index: 1;
}
.ai-panel__status--error[data-v-cc3befd9] {
  color: var(--app-color-danger);
}
.ai-panel__error-text[data-v-cc3befd9] {
  margin: 0;
  font-size: var(--app-font-size-sm);
  color: var(--app-text-secondary);
}
.ai-panel__spinner[data-v-cc3befd9] {
  width: 32px;
  height: 32px;
  border: 3px solid var(--app-bg-fill);
  border-top-color: var(--app-color-primary);
  border-radius: 50%;
  animation: ai-panel-rotate-cc3befd9 0.8s linear infinite;
}
@keyframes ai-panel-rotate-cc3befd9 {
to {
    transform: rotate(360deg);
}
}
.ai-panel-fade-enter-active[data-v-cc3befd9],
.ai-panel-fade-leave-active[data-v-cc3befd9] {
  transition: opacity var(--app-transition-base);
}
.ai-panel-fade-enter-from[data-v-cc3befd9],
.ai-panel-fade-leave-to[data-v-cc3befd9] {
  opacity: 0;
}