/* ==========================================================================
   微信公众号一键排版 · 扩展面板样式  v3.0
   仅服务 mod-app.js 生成的 DOM
   ========================================================================== */

/* ---------- 三栏布局调整 ---------- */
/* .wxpaiban-main 原为「编辑 + 预览」双栏 flex，这里让扩展侧栏成为第三栏 */
.wxpaiban-wrap .wxpaiban-main {
  align-items: stretch;
}

.wxpaiban-wrap .wxside {
  width: 288px;
  flex: none;
  display: flex;
  flex-direction: column;
  min-height: 460px;
  border: 1px solid var(--wx-border);
  border-radius: var(--wx-radius);
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}

/* 侧栏内标签页与面板体高度自适应，随编辑区一起拉伸 */
.wxpaiban-wrap .wxside-body {
  flex: 1;
  overflow-y: auto;
}

/* 从顶部「一键排版」按钮跳转过来时的短暂高亮 */
@keyframes wxsideFlash {
  0%   { box-shadow: 0 0 0 0 rgba(255, 101, 0, .45); border-color: var(--wx-brand); }
  70%  { box-shadow: 0 0 0 8px rgba(255, 101, 0, 0); border-color: var(--wx-brand); }
  100% { box-shadow: 0 0 0 0 rgba(255, 101, 0, 0); }
}
.wxpaiban-wrap .wxside.wxside-flash {
  animation: wxsideFlash 1.5s ease-out 1;
  border-color: var(--wx-brand);
}

/* ---------- 标签栏 ---------- */
.wxpaiban-wrap .wxside-tabs {
  display: flex;
  background: #fafbfc;
  border-bottom: 1px solid var(--wx-border);
  overflow-x: auto;
}

.wxpaiban-wrap .wxside-tab {
  flex: 1;
  min-width: 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 9px 2px 8px;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: 11px;
  color: #909399;
  cursor: pointer;
  font-family: inherit;
  transition: all .18s;
  white-space: nowrap;
}

.wxpaiban-wrap .wxside-tab .wx-ico { width: 15px; height: 15px; }

.wxpaiban-wrap .wxside-tab:hover { color: var(--wx-brand); }

.wxpaiban-wrap .wxside-tab.active {
  color: var(--wx-brand);
  border-bottom-color: var(--wx-brand);
  background: #fff;
  font-weight: 600;
}

/* ---------- 面板体 ---------- */
.wxpaiban-wrap .wxside-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  position: relative;
}

.wxpaiban-wrap .wxside-pane {
  display: none;
  padding: 14px;
}

.wxpaiban-wrap .wxside-pane.active { display: block; }

.wxside-body::-webkit-scrollbar { width: 7px; }
.wxside-body::-webkit-scrollbar-thumb { background: #d5d8dd; border-radius: 4px; }

.wxpaiban-wrap .wxside-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #303133;
  margin-bottom: 5px;
}

.wxpaiban-wrap .wxside-title .wx-ico { color: var(--wx-brand); }

.wxpaiban-wrap .wxside-hint {
  font-size: 12px;
  color: #909399;
  line-height: 1.65;
  margin-bottom: 12px;
}

.wxpaiban-wrap .wxside-sub {
  font-size: 12px;
  font-weight: 600;
  color: #606266;
  margin: 14px 0 8px;
}

.wxpaiban-wrap .wx-label {
  font-size: 12.5px;
  font-weight: 600;
  color: #606266;
  margin: 12px 0 7px;
}

.wxpaiban-wrap .wxside-btn {
  width: 100%;
  height: 36px;
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: none;
  border-radius: 8px;
  background: linear-gradient(135deg, #ff7a1a, var(--wx-brand));
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all .2s;
  box-shadow: 0 3px 10px rgba(255,101,0,.25);
}

.wxpaiban-wrap .wxside-btn:hover {
  background: linear-gradient(135deg, #ff8a33, #ff5a00);
  box-shadow: 0 5px 16px rgba(255,101,0,.34);
  transform: translateY(-1px);
}

.wxpaiban-wrap .wxside-btn-ghost {
  width: 100%;
  height: 34px;
  margin-top: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #dcdfe6;
  border-radius: 8px;
  background: #fafbfc;
  color: #606266;
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  transition: all .2s;
}

.wxpaiban-wrap .wxside-btn-ghost:hover {
  border-color: var(--wx-brand);
  color: var(--wx-brand);
  background: var(--wx-brand-light);
}

.wxpaiban-wrap .wxside-btn-mini {
  height: 30px;
  padding: 0 14px;
  border: none;
  border-radius: 6px;
  background: var(--wx-brand);
  color: #fff;
  font-size: 12.5px;
  cursor: pointer;
  font-family: inherit;
}

/* ---------- 行业 chip ---------- */
.wxpaiban-wrap .wxchip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.wxpaiban-wrap .wxchip-group.wxchip-col { flex-direction: column; }

.wxpaiban-wrap .wxchip {
  display: inline-block;
  padding: 5px 10px;
  border: 1px solid #e4e7ed;
  border-radius: 16px;
  background: #fff;
  font-size: 12px;
  color: #606266;
  cursor: pointer;
  transition: all .16s;
  white-space: nowrap;
}

.wxpaiban-wrap .wxchip:hover {
  border-color: var(--wx-brand);
  color: var(--wx-brand);
}

.wxpaiban-wrap .wxchip.active {
  border-color: var(--wx-brand);
  background: var(--wx-brand-light);
  color: var(--wx-brand);
  font-weight: 600;
}

.wxpaiban-wrap .wxchip-wide {
  display: flex;
  flex-direction: column;
  gap: 1px;
  border-radius: 8px;
  padding: 7px 11px;
  white-space: normal;
}

.wxpaiban-wrap .wxchip-wide b { font-size: 12.5px; font-weight: 600; }

.wxpaiban-wrap .wxchip-wide i {
  font-style: normal;
  font-size: 11px;
  color: #a8abb2;
}

.wxpaiban-wrap .wxchip-wide.active i { color: var(--wx-brand); opacity: .8; }

.wxpaiban-wrap .wx-chip-tip {
  font-size: 11.5px;
  color: #909399;
  margin-top: 7px;
  min-height: 16px;
}

.wxpaiban-wrap .wx-chip-tip b { color: var(--wx-brand); }

.wxpaiban-wrap .wx-tag-mini {
  display: inline-block;
  padding: 0 5px;
  margin-left: 3px;
  border-radius: 3px;
  background: #eef4ff;
  color: #3a7ab8;
  font-size: 10.5px;
  line-height: 15px;
}

.wxpaiban-wrap .wx-tag-primary {
  display: inline-block;
  padding: 0 6px;
  margin-left: 6px;
  border-radius: 3px;
  background: var(--wx-brand);
  color: #fff;
  font-size: 10.5px;
  line-height: 16px;
  vertical-align: 1px;
}

/* ---------- 排版方案卡片 ---------- */
.wxpaiban-wrap .wxplan-list { margin-top: 4px; }

.wxpaiban-wrap .wxplan {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 10px 10px 10px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--wx-border);
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  transition: all .18s;
}

.wxpaiban-wrap .wxplan:hover {
  border-color: var(--wx-brand);
  box-shadow: 0 3px 10px rgba(255,101,0,.1);
}

.wxpaiban-wrap .wxplan.primary { border-color: #ffd0b0; background: #fffdfb; }

.wxpaiban-wrap .wxplan-swatch {
  width: 4px;
  align-self: stretch;
  min-height: 42px;
  border-radius: 2px;
  flex: none;
}

.wxpaiban-wrap .wxplan-main { flex: 1; min-width: 0; }

.wxpaiban-wrap .wxplan-name {
  font-size: 12.5px;
  font-weight: 600;
  color: #303133;
  line-height: 1.5;
}

.wxpaiban-wrap .wxplan-desc {
  font-size: 11px;
  color: #909399;
  line-height: 1.55;
  margin-top: 3px;
}

.wxpaiban-wrap .wxplan-tags { margin-top: 5px; }

.wxpaiban-wrap .wxplan-apply {
  flex: none;
  align-self: center;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--wx-brand);
  border-radius: 6px;
  background: #fff;
  color: var(--wx-brand);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  transition: all .16s;
}

.wxpaiban-wrap .wxplan-apply:hover {
  background: var(--wx-brand);
  color: #fff;
}

/* ---------- 元素样式库 ---------- */
.wxpaiban-wrap .wxblk-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--wx-border);
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
}

.wxpaiban-wrap .wxblk-cat {
  padding: 4px 9px;
  border-radius: 14px;
  background: #f4f5f7;
  font-size: 11.5px;
  color: #606266;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}

.wxpaiban-wrap .wxblk-cat:hover { background: var(--wx-brand-light); color: var(--wx-brand); }

.wxpaiban-wrap .wxblk-cat.active {
  background: var(--wx-brand);
  color: #fff;
  font-weight: 600;
}

.wxpaiban-wrap .wxblk-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.wxpaiban-wrap .wxblk {
  position: relative;
  border: 1px solid var(--wx-border);
  border-radius: 8px;
  padding: 9px 9px 6px;
  background: #fff;
  cursor: pointer;
  transition: all .18s;
  overflow: hidden;
}

.wxpaiban-wrap .wxblk:hover {
  border-color: var(--wx-brand);
  box-shadow: 0 3px 12px rgba(255,101,0,.1);
}

.wxpaiban-wrap .wxblk-preview {
  pointer-events: none;
  transform: scale(.92);
  transform-origin: center top;
  overflow: hidden;
  max-height: 84px;
  font-size: 14px;
}

/* 预览内的元素统一降级尺寸，避免撑爆卡片 */
.wxpaiban-wrap .wxblk-preview > * { margin: 6px 0 !important; }
.wxpaiban-wrap .wxblk-preview h1,
.wxpaiban-wrap .wxblk-preview h2,
.wxpaiban-wrap .wxblk-preview h3 { font-size: 14px !important; }
.wxpaiban-wrap .wxblk-preview pre { font-size: 11px !important; padding: 8px !important; }
.wxpaiban-wrap .wxblk-preview img { max-height: 54px !important; width: auto !important; margin: 2px auto !important; }
.wxpaiban-wrap .wxblk-preview section { padding: 5px 8px !important; }
.wxpaiban-wrap .wxblk-preview blockquote { padding: 6px 9px !important; font-size: 12px !important; }
.wxpaiban-wrap .wxblk-preview hr { margin: 8px 0 !important; }

.wxpaiban-wrap .wxblk-name {
  font-size: 11.5px;
  color: #909399;
  text-align: center;
  padding-top: 6px;
  border-top: 1px dashed #f0f1f3;
  margin-top: 4px;
}

.wxpaiban-wrap .wxblk-add {
  position: absolute;
  right: 7px;
  top: 7px;
  width: 21px;
  height: 21px;
  border: none;
  border-radius: 50%;
  background: var(--wx-brand);
  color: #fff;
  font-size: 15px;
  line-height: 19px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .18s;
  padding: 0;
}

.wxpaiban-wrap .wxblk:hover .wxblk-add { opacity: 1; }

/* ---------- 配色面板 ---------- */
.wxpaiban-wrap .wxpal-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 7px;
}

.wxpaiban-wrap .wxpal {
  position: relative;
  aspect-ratio: 1;
  border-radius: 50%;
  cursor: pointer;
  transition: transform .16s;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.wxpaiban-wrap .wxpal:hover { transform: scale(1.14); }

.wxpaiban-wrap .wxpal.active {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wx-brand);
}

.wxpaiban-wrap .wxpal i {
  font-style: normal;
  font-size: 10px;
  color: #666;
  font-weight: 700;
}

.wxpaiban-wrap .wxpal.wxpal-sq {
  border-radius: 6px;
  aspect-ratio: 1.5;
}

.wxpaiban-wrap .wxpal-custom {
  display: flex;
  align-items: center;
  gap: 7px;
}

.wxpaiban-wrap .wxpal-custom input[type="color"] {
  width: 34px;
  height: 30px;
  padding: 0;
  border: 1px solid #dcdfe6;
  border-radius: 6px;
  cursor: pointer;
  background: #fff;
}

.wxpaiban-wrap .wxpal-custom input[type="text"] {
  flex: 1;
  min-width: 0;
  height: 30px;
  padding: 0 9px;
  border: 1px solid #dcdfe6;
  border-radius: 6px;
  font-size: 12.5px;
  font-family: Consolas, monospace;
  outline: none;
  color: #303133;
}

.wxpaiban-wrap .wxpal-custom input[type="text"]:focus { border-color: var(--wx-brand); }

.wxpaiban-wrap .wxpal-saved { margin-top: 4px; }

.wxpaiban-wrap .wxpal-saved-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border: 1px solid var(--wx-border);
  border-radius: 7px;
  margin-bottom: 6px;
  cursor: pointer;
  font-size: 12.5px;
  color: #606266;
  transition: all .16s;
}

.wxpaiban-wrap .wxpal-saved-item:hover {
  border-color: var(--wx-brand);
  background: var(--wx-brand-light);
}

.wxpaiban-wrap .wxpal-saved-dot {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  flex: none;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.1);
}

.wxpaiban-wrap .wxpal-saved-name { flex: 1; }

.wxpaiban-wrap .wxpal-saved-del,
.wxpaiban-wrap .wxfav-del {
  flex: none;
  width: 18px;
  height: 18px;
  line-height: 16px;
  text-align: center;
  border-radius: 50%;
  color: #c0c4cc;
  font-size: 14px;
  cursor: pointer;
  transition: all .16s;
}

.wxpaiban-wrap .wxpal-saved-del:hover,
.wxpaiban-wrap .wxfav-del:hover { background: #ffecec; color: #f56c6c; }

/* ---------- 合规检测 ---------- */
.wxpaiban-wrap .wxcheck-stat {
  display: flex;
  gap: 14px;
  padding: 9px 11px;
  background: #fafbfc;
  border-radius: 8px;
  font-size: 12.5px;
  color: #606266;
  margin-bottom: 10px;
}

.wxpaiban-wrap .wxcheck-stat b { font-size: 14px; color: #303133; }
.wxpaiban-wrap .wxcheck-stat b.bad { color: #f56c6c; }
.wxpaiban-wrap .wxcheck-stat b.good { color: #3a9d6e; }

.wxpaiban-wrap .wxcheck-ok {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 12px;
  background: #f0faf4;
  border-radius: 8px;
  color: #2f6d51;
  font-size: 13px;
}

.wxpaiban-wrap .wxcheck-ok .wx-ico { color: #3a9d6e; flex: none; }

.wxpaiban-wrap .wxcheck-warn {
  padding: 9px 11px;
  background: #fff7e6;
  border-left: 3px solid #d98c00;
  border-radius: 0 6px 6px 0;
  color: #8a6100;
  font-size: 12.5px;
  margin-bottom: 11px;
}

.wxpaiban-wrap .wxcheck-group { margin-bottom: 11px; }

.wxpaiban-wrap .wxcheck-group-title {
  font-size: 12px;
  font-weight: 600;
  color: #606266;
  margin-bottom: 6px;
  padding-left: 8px;
  border-left: 3px solid #f56c6c;
}

.wxpaiban-wrap .wxcheck-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 9px;
  background: #fef7f7;
  border-radius: 6px;
  margin-bottom: 4px;
}

.wxpaiban-wrap .wxcheck-word {
  font-size: 12.5px;
  color: #c0392b;
  font-weight: 600;
}

.wxpaiban-wrap .wxcheck-cnt { font-size: 11.5px; color: #c0c4cc; }

.wxpaiban-wrap .wxcheck-tip {
  font-size: 11.5px;
  color: #909399;
  line-height: 1.7;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--wx-border);
}

/* ---------- 收藏 ---------- */
.wxpaiban-wrap .wxfav-list { margin-top: 10px; }

.wxpaiban-wrap .wxfav {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border: 1px solid var(--wx-border);
  border-radius: 8px;
  margin-bottom: 7px;
  cursor: pointer;
  transition: all .16s;
}

.wxpaiban-wrap .wxfav:hover {
  border-color: var(--wx-brand);
  background: var(--wx-brand-light);
}

.wxpaiban-wrap .wxfav-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex: none;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.1);
}

.wxpaiban-wrap .wxfav-body { flex: 1; min-width: 0; }

.wxpaiban-wrap .wxfav-name {
  font-size: 12.5px;
  font-weight: 600;
  color: #303133;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wxpaiban-wrap .wxfav-meta {
  font-size: 11px;
  color: #a8abb2;
  margin-top: 2px;
}

.wxpaiban-wrap .wx-empty {
  padding: 22px 10px;
  text-align: center;
  font-size: 12.5px;
  color: #c0c4cc;
}

/* ---------- 手机预览弹层 ---------- */
.wxphone-mask {
  position: fixed;
  inset: 0;
  z-index: 99998;
  background: rgba(0, 0, 0, .55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

.wxphone-box {
  width: 400px;
  max-width: 100%;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}

.wxphone-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 15px;
  border-bottom: 1px solid #ebedf0;
  background: #fafbfc;
}

.wxphone-title { font-size: 13.5px; font-weight: 600; color: #303133; }

.wxphone-acts { display: flex; gap: 8px; }

.wxphone-btn {
  height: 28px;
  padding: 0 13px;
  border: 1px solid #dcdfe6;
  border-radius: 6px;
  background: #fff;
  font-size: 12.5px;
  color: #606266;
  cursor: pointer;
  font-family: inherit;
  transition: all .16s;
}

.wxphone-btn:hover { border-color: #ff6500; color: #ff6500; }

.wxphone-screen {
  flex: 1;
  overflow-y: auto;
  background: #f4f5f7;
  padding: 14px;
}

.wxphone-inner {
  width: 375px;
  max-width: 100%;
  margin: 0 auto;
  background: #fff;
  border-radius: 8px;
  padding: 20px 16px;
  box-shadow: 0 1px 6px rgba(0, 0, 0, .06);
}

.wxphone-screen::-webkit-scrollbar { width: 7px; }
.wxphone-screen::-webkit-scrollbar-thumb { background: #d5d8dd; border-radius: 4px; }

/* ---------- 响应式 ---------- */
/* 中等屏（≤1440px）：侧栏整行下沉，编辑/预览保持双栏，避免三栏挤压 */
@media (max-width: 1440px) {
  .wxpaiban-wrap .wxpaiban-main { flex-wrap: wrap; }
  .wxpaiban-wrap .wxside {
    width: 100%;
    order: 9;
    margin-top: 14px;
    min-height: 0;
  }
  .wxpaiban-wrap .wxside-body { max-height: 520px; }
}

@media (max-width: 900px) {
  .wxpaiban-wrap .wxside-body { max-height: 460px; }
  .wxpaiban-wrap .wxpal-grid { grid-template-columns: repeat(8, 1fr); }
}
