/* ============================================================
   M3 鈥斺€?6SQ 鍏ㄧ珯鎵嬫満鐗堬紙瀹為獙棰勮锛夎璁＄郴缁?
   椋庢牸瀹氫綅: 澶ф柟 / 涓ヨ們 / 姝ｈ / 澶ф皵
   涓昏壊: #5B8C7A   绂佺敤: 娓愬彉銆佽兌鍥婄豢銆佹繁鑹叉爣绛?
   ============================================================ */

:root {
  --m3-primary: #5B8C7A;        /* 娣辫棌闈掕摑 - 涓昏壊 */
  --m3-primary-press: #4A7A6A;  /* 鎸変笅/婵€娲?*/
  --m3-primary-soft: #E8F0EC;   /* 涓昏壊娴呭簳 */
  --m3-text: #1F2329;           /* 涓绘枃瀛?*/
  --m3-text-2: #5B6470;         /* 娆＄骇鏂囧瓧 */
  --m3-text-3: #9AA3AF;         /* 寮卞寲鏂囧瓧 */
  --m3-bg: #FAFBF9;             /* 椤甸潰鑳屾櫙 */
  --m3-card: #FFFFFF;           /* 鍗＄墖/鏍忓簳鑹?*/
  --m3-border: #E5E8EC;         /* 鎻忚竟/鍒嗛殧绾?*/
  --m3-line: #E5E8EC;           /* 鍏煎鏃фā鏉垮垎闅旂嚎鍒悕 */
  --m3-danger: #C0392B;         /* 璀︾ず */
  --m3-radius: 8px;             /* 鍏嬪埗鍦嗚 */
  --m3-gap: 14px;               /* 基础间距：与顶部导航条左右边距一致 */
  --m3-safe-top: env(safe-area-inset-top);
  --m3-safe-bottom: env(safe-area-inset-bottom);
}

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  background: var(--m3-bg);
  color: var(--m3-text);
  font-size: 15px;
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul, ol { list-style: none; }

.m3-wrap {
  max-width: 720px;
  margin: 0 auto;
  min-height: 100vh;
  padding-bottom: calc(64px + var(--m3-safe-bottom));
}

/* ---------------- 宽屏(PC)适配: 容器 720→960, 字号/输入框同步放大 ---------------- */
@media (min-width: 980px) {
  .m3-wrap {
    max-width: 1180px;
  }
  :root {
    --m3-gap: 22px;
  }
  body {
    font-size: 16px;
  }
  .ck-input,
  .ck-textarea {
    font-size: 16px;
    padding: 13px 14px;
  }
  .m3-topbar {
    height: 56px;
    padding-left: 22px;
    padding-right: 22px;
    /* 与 m3-wrap 等宽居中: 防止顶栏背景溢出到全屏、与下方1180内容左右不对齐 */
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
  }
  .m3-topsearch input {
    width: 180px;
  }
}

/* ---------------- 工具页面统一对齐：内容区全宽 + 文字边距与顶部导航条一致 ---------------- */
/* 绿色抬头：左右 padding 14px（手机） */
.m3-wrap > div[style*="linear-gradient"],
.m3-wrap > div[style*="padding:20px 16px"],
.m3-wrap > div[style*="padding: 20px 16px"] {
  padding-left: 14px !important;
  padding-right: 14px !important;
}
/* padding:16px 内容区：左右 padding 清零，让内部卡片全宽 */
.m3-wrap > div[style*="padding:16px"],
.m3-wrap > div[style*="padding: 16px"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* .m3-cards 内容区：全宽，不再左右留 margin */
.m3-cards {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* 内部卡片：左右 padding 14px（手机），与绿色抬头文字对齐 */
.m3-cards > section,
.m3-cards > div[class*="card"],
.m3-cards > div[class*="info"],
.m3-cards > div[class*="result"],
.m3-cards > div[class*="action"],
.m3-cards > div[class*="tf-"],
.m3-wrap > div[style*="padding:16px"] > div[style*="background"],
.m3-wrap > div[style*="padding: 16px"] > div[style*="background"] {
  padding-left: 14px !important;
  padding-right: 14px !important;
}
/* 嵌套在内容区里的绿色抬头（如 ranktest） */
.m3-cards div[style*="linear-gradient"] {
  padding-left: 14px !important;
  padding-right: 14px !important;
}
@media (min-width: 980px) {
  /* 绿色抬头：PC端 22px */
  .m3-wrap > div[style*="linear-gradient"],
  .m3-wrap > div[style*="padding:20px 16px"],
  .m3-wrap > div[style*="padding: 20px 16px"] {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  /* 内部卡片：PC端 22px */
  .m3-cards > section,
  .m3-cards > div[class*="card"],
  .m3-cards > div[class*="info"],
  .m3-cards > div[class*="result"],
  .m3-cards > div[class*="action"],
  .m3-cards > div[class*="tf-"],
  .m3-wrap > div[style*="padding:16px"] > div[style*="background"],
  .m3-wrap > div[style*="padding: 16px"] > div[style*="background"] {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  /* 嵌套在内容区里的绿色抬头（如 ranktest） */
  .m3-cards div[style*="linear-gradient"] {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}

/* ---------------- PC 端: 工具页内容随1180框架铺满 + 操作按钮条不拉伸 + 工作台4列 ---------------- */
@media (min-width: 980px) {
  /* 内容区不再二次限宽: 与 .m3-wrap(1180)/顶栏/页脚同一视觉宽度. margin 22px 下实际内容约1136px */
  .m3-cards {
    max-width: none;
  }
  /* 操作按钮行 / 导出条: 不被全宽拉成超长按钮, 保持手机同款适中宽度(640px内), 不随内容区拉爆 */
  .m3-cards .ck-btn-row,
  .m3-cards [class$="-export"] {
    max-width: 640px;
  }
  /* 工作台工具卡 2 列 -> 4 列(密排)
     注意: .tools-grid 的 gap 是 12px, 4 张卡共 3 个间隙=36px, 每张需扣 36/4=9px;
           扣 6px 会导致 4*(25%-6)+3*12 = 100%+12px 溢出, 实际只排下 3 列 */
  .m3-tools .tool-card {
    flex: 1 1 calc(25% - 9px);
  }
}

/* ---------------- 椤堕儴鍥哄畾鏍?---------------- */
.m3-topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  height: calc(50px + var(--m3-safe-top));
  padding: var(--m3-safe-top) 14px 0;
  background: var(--m3-card);
  border-bottom: 1px solid var(--m3-border);
}
.m3-logo { display: flex; align-items: center; flex-shrink: 0; margin-right: 10px; }
.m3-logo img { height: 36px; width: auto; display: block; }
.m3-topacts { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.m3-topacts a { font-size: 14px; color: var(--m3-text-2); }
.m3-topsearch { display: flex; align-items: center; gap: 4px; background: var(--m3-bg); border: 1px solid var(--m3-border); border-radius: 16px; padding: 2px 3px 2px 8px; flex-shrink: 0; }
.m3-topsearch .ic { font-size: 13px; color: var(--m3-text-3); flex-shrink: 0; }
.m3-topsearch input { width: 104px; padding: 5px 2px; border: none; font-size: 13px; color: var(--m3-text); background: transparent; outline: none; }
.m3-topsearch button { flex-shrink: 0; padding: 4px 12px; border: none; border-radius: 13px; background: var(--m3-primary); color: #fff; font-size: 12px; cursor: pointer; }
.m3-topbtn { display: inline-block; padding: 5px 16px; border-radius: 8px; font-size: 13px; font-weight: 500; color: #fff !important; text-decoration: none; line-height: 1.4; }
.m3-topbtn:active { opacity: .8; }
.m3-topbtn-primary { background: var(--m3-primary); }
.m3-topbtn-success { background: #58b957; }

/* ---------------- 鎼滅储鏉?---------------- */
.m3-search {
  display: flex; align-items: center; gap: 8px;
  margin: 6px var(--m3-gap); padding: 7px 12px;
  background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius);
  color: var(--m3-text-3); font-size: 14px;
}
.m3-search .ic { font-size: 15px; }
.m3-search form { display: flex; align-items: center; gap: 8px; width: 100%; }
.m3-search input { flex: 1; border: none; outline: none; font-size: 14px; color: var(--m3-text); background: transparent; }

/* 棣栭〉鎼滅储鍖轰釜鎬у寲閰嶄欢 */
.m3-search-tools { margin: 0 var(--m3-gap) 4px; }
.m3-search-hot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.m3-search-hot .lb { font-size: 12px; color: var(--m3-text-3); }
.m3-search-hot a { padding: 3px 10px; border-radius: 999px; background: var(--m3-primary-soft); color: var(--m3-primary); font-size: 12px; text-decoration: none; }
.m3-search-quick { display: flex; gap: 8px; margin-top: 8px; }
.m3-search-quick a { flex: 1; text-align: center; padding: 7px 0; background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); font-size: 12px; color: var(--m3-text-2); text-decoration: none; }

/* ---------------- 鍒嗙被瀵艰埅(涓嶮鐩綍content_nav_menu涓€鑷? ---------------- */
.m3-catnav { display: flex; gap: 2px; overflow-x: auto; padding: 4px 10px; background: #fafafa; border-bottom: 1px solid var(--m3-border); -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.m3-catnav::-webkit-scrollbar { display: none; }
.m3-catnav a { flex-shrink: 0; padding: 6px 10px; font-size: 13px; color: #666; text-decoration: none; white-space: nowrap; line-height: 1.4; }
.m3-catnav a.on { color: var(--m3-primary); font-weight: 600; border-bottom: 2px solid var(--m3-primary); }

/* ---------------- 蹇嵎鍏ュ彛 ---------------- */
.m3-quick { display: flex; gap: 10px; margin: 0 var(--m3-gap); }
.m3-quick a {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; background: var(--m3-card);
  border: 1px solid var(--m3-border); border-radius: var(--m3-radius);
}
.m3-quick .ico {
  flex: none; width: 30px; height: 30px; line-height: 30px; text-align: center;
  border-radius: 6px; background: var(--m3-primary-soft); color: var(--m3-primary);
  font-weight: 700; font-size: 14px;
}
.m3-quick b { display: block; font-size: 13px; color: var(--m3-text); font-weight: 600; }
.m3-quick i { display: block; font-style: normal; font-size: 10px; color: var(--m3-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------------- 重点推荐（运营可配置） ---------------- */
.m3-rec { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px var(--m3-gap) 0; }
.m3-rec a { flex: 1 1 calc(50% - 4px); min-width: 0; box-sizing: border-box; display: flex; align-items: center; gap: 9px; padding: 10px 11px; background: var(--m3-card); border: 1px solid var(--m3-primary); border-radius: var(--m3-radius); text-decoration: none; }
.m3-rec a.hot { border-color: #D97B3C; }
.m3-rec a.new { border-color: #C0392B; }
.m3-rec a:active { background: var(--m3-primary-soft); }
.m3-rec .ic { flex: none; width: 34px; height: 34px; border-radius: 8px; background: var(--m3-primary-soft); color: var(--m3-primary); display: flex; align-items: center; justify-content: center; }
.m3-rec .ic svg { width: 20px; height: 20px; }
.m3-rec .tt { flex: 1; min-width: 0; }
.m3-rec .tt b { display: block; font-size: 14px; font-weight: 600; color: var(--m3-text); }
.m3-rec .tt i { display: block; font-style: normal; font-size: 11px; color: var(--m3-text-2); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-rec .badge { flex: none; font-size: 10px; font-weight: 600; color: #fff; background: var(--m3-primary); border-radius: 6px; padding: 1px 6px; }
.m3-rec a.m3-rec-img { flex: 1 1 100%; padding: 0; border: none; }
.m3-rec-img img { width: 100%; height: auto; border-radius: var(--m3-radius); display: block; }

/* ---------------- 鍒嗘鍒囨崲 ---------------- */
.m3-tabs { display: flex; gap: 4px; margin: 6px var(--m3-gap) 0; }
.m3-tabs a {
  flex: 1; text-align: center; padding: 6px 0; border-radius: var(--m3-radius);
  background: var(--m3-card); border: 1px solid var(--m3-border);
  font-size: 13px; color: var(--m3-text-2);
}
.m3-tabs a.on { background: var(--m3-primary); border-color: var(--m3-primary); color: #fff; font-weight: 600; }
.m3-tabs a.m3-more { flex: 0 0 auto; padding: 6px 14px; }

/* ---------------- 鏍囩(璇濋) ---------------- */
.m3-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 10px 0 0; }
.m3-tag { display: inline-flex; align-items: center; padding: 3px 11px; border-radius: 20px; background: var(--m3-primary-soft); color: var(--m3-primary); font-size: 12px; text-decoration: none; border: 1px solid #D8E4DE; }
.m3-tag-add { padding: 3px 13px; border-radius: 20px; border: 1px dashed #A9C4B8; background: #fff; color: #7A9186; font-size: 12px; cursor: pointer; text-decoration: none; }
.m3-tag-form { display: none; align-items: center; gap: 8px; margin-top: 8px; }
.m3-tag-form input { flex: 1; min-width: 0; padding: 7px 12px; border: 1px solid #D0E0D8; border-radius: 8px; font-size: 13px; box-sizing: border-box; }
.m3-tag-form button { flex: 0 0 auto; padding: 7px 16px; border: none; border-radius: 8px; background: var(--m3-primary); color: #fff; font-size: 13px; cursor: pointer; }

/* ---------------- 鍗＄墖鍒楄〃 ---------------- */
.m3-cards {
  margin: 6px var(--m3-gap) var(--m3-gap); background: var(--m3-card);
  border: 1px solid var(--m3-border); border-radius: var(--m3-radius); overflow: hidden;
}
.m3-card { padding: 14px; border-bottom: 1px solid var(--m3-border); }
.m3-card:last-child { border-bottom: none; }
.m3-card h3 { font-size: 16px; line-height: 1.5; font-weight: 600; color: var(--m3-text); }
.m3-card h3 a { color: inherit; }
.m3-card h3 a:active { color: var(--m3-primary); }
.m3-meta { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 12px; color: var(--m3-text-2); }
.m3-badge {
  flex: none; padding: 2px 8px; border-radius: 5px;
  background: var(--m3-primary-soft); color: var(--m3-primary); font-size: 11px; font-weight: 600;
}
.m3-badge.alt { background: #EEF1F6; color: var(--m3-text-2); }
.m3-meta .spacer { margin-left: auto; }

/* ---------------- 璇︽儏椤?---------------- */
.m3-detail-title { font-size: 22px; line-height: 1.5; font-weight: 700; color: var(--m3-text); }
.m3-detail-sub { margin-top: 10px; font-size: 13px; color: var(--m3-text-3); }
.m3-detail-body { margin-top: 12px; font-size: 17px; line-height: 1.85; color: #2A2F37; word-break: break-word; }
.m3-detail-body img { border-radius: 6px; margin: 10px 0; max-width: 100%; height: auto; }
.m3-detail-body table { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: 13px; }
.m3-detail-body th, .m3-detail-body td { border: 1px solid var(--m3-border); padding: 6px 8px; }
.m3-detail-body pre { background: #F4F5F7; padding: 10px; border-radius: 6px; overflow-x: auto; font-size: 13px; }
.m3-detail-body a, .m3-bubble a { color: var(--m3-primary); text-decoration: underline; word-break: break-all; }
.m3-detail-body blockquote { margin: 10px 0; padding: 8px 12px; border-left: 3px solid var(--m3-primary); background: var(--m3-bg); color: var(--m3-text-2); }
.m3-detail-body ul, .m3-detail-body ol { padding-left: 20px; margin: 8px 0; list-style: disc; }
.m3-detail-body ol { list-style: decimal; }
/* 闄勪欢鍥剧墖鍒楄〃(鏈唴宓屾鏂囩殑鍥剧墖闄勪欢): 姝ｅ父灏哄瀹屾暣灞曠ず */
.m3-upload-img { margin-top: 12px; }
.m3-upload-img a { display: block; margin-bottom: 8px; background: var(--m3-bg); }
.m3-upload-img img { width: auto; max-width: 100%; height: auto; display: block; border-radius: 6px; }
.m3-section-h { margin: 18px var(--m3-gap) 6px; font-size: 14px; font-weight: 700; color: var(--m3-text-2); }
.m3-section-h .m3-more-link { float: right; font-size: 12px; font-weight: 400; color: var(--m3-primary); text-decoration: none; }

/* 闄勪欢 */
.m3-attach { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--m3-border); }
.m3-attach .h { font-size: 12px; color: var(--m3-text-3); margin-bottom: 6px; }
.m3-attach .m3-attach-tip { font-size: 11px; color: var(--m3-text-3); margin-bottom: 6px; line-height: 1.6; }
.m3-attach a { display: block; font-size: 13px; color: var(--m3-primary); padding: 3px 0; }

/* 鍒楄〃甯﹀浘: 宸﹀唴瀹?+ 鍙崇缉鐣ュ浘 */
.m3-feed-row { display: flex; align-items: stretch; gap: 12px; }
.m3-feed-main { flex: 1; min-width: 0; }
.m3-feed-thumb { flex: 0 0 104px; width: 104px; height: 78px; border-radius: 8px; overflow: hidden; background: var(--m3-bg); }
.m3-feed-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 鐢ㄦ埛琛?*/
.m3-user { display: flex; align-items: flex-start; gap: 10px; }
.m3-user img { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; }
.m3-user .m3-user-name-row img { width: auto; height: 18px; border-radius: 0; vertical-align: middle; }
.m3-user b { font-size: 13px; font-weight: 600; }
.m3-user .time { font-size: 12px; color: var(--m3-text-3); }
.m3-user-info { flex: 1; min-width: 0; }
.m3-user-name-row { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.m3-best-icon { margin-left: auto; flex-shrink: 0; width: 20px; height: 20px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f5a623'%3E%3Cpath d='M19 5h-1V3h-2v2H8V3H6v2H5c-1.1 0-2 .9-2 2v3c0 2.55 1.92 4.63 4.39 4.94.64 1.5 1.98 2.63 3.61 2.96V19H8v2h8v-2h-3v-1.1c1.63-.33 2.97-1.46 3.61-2.96C19.08 14.63 21 12.55 21 10V7c0-1.1-.9-2-2-2zM5 10V7h1v3c0 1.66 1.34 3 3 3s3-1.34 3-3V7h1v3c0 1.66 1.34 3 3 3s3-1.34 3-3V7h1v3c0 2.76-2.24 5-5 5s-5-2.24-5-5z'/%3E%3C/svg%3E") no-repeat center; background-size: contain; }

/* 灏忓ご鍍忔í鎺?鍏虫敞/绮変笣鍒楄〃) */
.m3-avatar-row { display: flex; flex-wrap: wrap; gap: 8px; }
.m3-avatar-row a { flex: 0 0 auto; display: block; }
.m3-avatar-row img { width: 36px; height: 36px; border-radius: 50%; display: block; object-fit: cover; }
.m3-user-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 3px; font-size: 12px; color: var(--m3-text-3); }
.m3-user-meta .m3-rep b { color: #f5a623; font-weight: 600; font-size: 12px; }
.m3-user-sign { margin-top: 3px; font-size: 12px; color: var(--m3-text-2); line-height: 1.4; }
.m3-icon-v { display: inline-block; width: 14px; height: 14px; vertical-align: -1px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a3d700'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") no-repeat center; background-size: contain; }
.m3-icon-v.m3-i-ve { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffca3f'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E"); }

/* 鎻愰棶浜轰俊鎭潡(闂璇︽儏) 绋嶅ぇ澶村儚 */
.m3-user.m3-author { gap: 10px; }
.m3-user.m3-author img { width: 34px; height: 34px; }

/* 鍥炵瓟鎺掑簭鏍囩 */
.m3-sort { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; color: var(--m3-text-2); background: var(--m3-card); border: 1px solid var(--m3-border); text-decoration: none; }
.m3-sort.on { background: var(--m3-primary); color: #fff; border-color: var(--m3-primary); font-weight: 600; }

/* 閭€璇峰洖绛旀悳绱㈡ */
.m3-invite-results button { flex: 0 0 auto; }

/* ---------------- 鎸夐挳 ---------------- */
.m3-btn {
  display: block; width: 100%; padding: 12px 0; border: none; border-radius: var(--m3-radius);
  background: var(--m3-primary); color: #fff; font-size: 15px; font-weight: 600;
  text-align: center; cursor: pointer; -webkit-appearance: none;
}
.m3-btn:active { background: var(--m3-primary-press); }
.m3-btn-ghost { background: var(--m3-card); border: 1px solid var(--m3-border); color: var(--m3-text); }
.m3-btn-row { display: flex; gap: 8px; flex-wrap: wrap; }
.m3-btn-row .m3-btn { flex: 1; }
.m3-answer-time { font-size: 12px; color: var(--m3-text-3); white-space: nowrap; align-self: center; }
.m3-btn-sm { display: inline-block; padding: 6px 14px; border-radius: var(--m3-radius); font-size: 13px; font-weight: 600; cursor: pointer; border: none; -webkit-appearance: none; }
.m3-btn-sm:active { opacity: .82; }
.m3-btn-sm.primary { background: var(--m3-primary); color: #fff; }
.m3-btn-sm.ghost { background: var(--m3-card); border: 1px solid var(--m3-border); color: var(--m3-text); }
.m3-icon-btn { padding: 5px 9px !important; font-size: 15px !important; line-height: 1; min-width: 30px; text-align: center; }
.m3-icon-btn.on { color: var(--m3-primary); border-color: var(--m3-primary); background: var(--m3-primary-soft); }
.m3-vote { min-width: 30px; text-align: center; padding: 5px 9px !important; }

/* 闂椤靛叧娉?鏀惰棌/閭€绛斿皬鎸夐挳 */
.m3-qact-row { justify-content: flex-start; }
.m3-qact-row form { flex: none; }
.m3-qact { padding: 4px 10px !important; font-size: 12px !important; }
.m3-qact .ic { font-size: 11px; margin-right: 2px; }

/* 宸查噰绾冲浘鏍?鍙傝€僊鐩綍icon-best濂栨澂) */
/* 最佳回答图标: 采用上方 .m3-best-icon 内联 SVG 实现, 不再加载 icomoon 字体 */

/* 鍥炵瓟/鏂囩珷鎿嶄綔鏍忕伆鑹插浘鏍?鍘熸ā鏉垮唴鑱擲VG浼厓绱? 绉诲埌鍏ㄥ眬) */
.m3-btn-row .m3-thanks::before,
.m3-btn-row .m3-uninter::before,
.m3-btn-row .m3-fav::before,
.m3-btn-row .m3-share::before,
.m3-btn-row .m3-edit-open::before,
.m3-btn-row .m3-del-open::before,
.m3-btn-row .m3-cmt-open::before{content:'';display:inline-block;width:14px;height:14px;margin-right:0;vertical-align:-2px;background-repeat:no-repeat;background-size:contain;}
.m3-btn-row .m3-thanks::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M1 21h4V9H1v12zM23 10c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-uninter::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zM16.59 5.41 15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-fav::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-fav.on::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B8C7A' d='M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-share::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-edit-open::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-del-open::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E");}
.m3-btn-row .m3-cmt-open::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%235B6470' d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");}

/* ---------------- 杈撳叆 ---------------- */
.m3-input, .m3-area {
  width: 100%; padding: 11px 12px; border: 1px solid var(--m3-border);
  border-radius: var(--m3-radius); font-size: 15px; background: #fff; color: var(--m3-text);
  outline: none; font-family: inherit;
}
.m3-input:focus, .m3-area:focus { border-color: var(--m3-primary); }
.m3-area { resize: vertical; min-height: 120px; line-height: 1.6; }
.m3-field { margin: var(--m3-gap); }
.m3-field label { display: block; font-size: 13px; color: var(--m3-text-2); margin-bottom: 6px; }
.m3-field .hint { font-size: 12px; color: var(--m3-text-3); margin-top: 6px; }
.m3-settings-group { padding: 14px var(--m3-gap) 4px; border-top: 1px solid var(--m3-border); }
.m3-settings-group:first-of-type { border-top: none; padding-top: 6px; }
.m3-settings-group .title { font-size: 15px; font-weight: 700; color: var(--m3-text); }
.m3-field input[type="checkbox"],
.m3-field input[type="radio"] { width: 18px; height: 18px; accent-color: var(--m3-primary); margin-right: 6px; vertical-align: -4px; }
.m3-field label { line-height: 2; }
.m3-error { margin: var(--m3-gap); padding: 10px 12px; background: #FDECEA; border: 1px solid #F5C6C0; border-radius: var(--m3-radius); color: var(--m3-danger); font-size: 13px; }

/* ---------------- 搴曢儴 Tab ---------------- */
.m3-tabbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: flex; max-width: 720px; margin: 0 auto;
  height: calc(54px + var(--m3-safe-bottom)); padding-bottom: var(--m3-safe-bottom);
  background: var(--m3-card); border-top: 1px solid var(--m3-border);
}
.m3-tab {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; color: var(--m3-text-3); font-size: 11px; min-height: 44px;
}
.m3-tab.on { color: var(--m3-primary); font-weight: 600; }
.m3-tab:active { opacity: .7; }
.m3-tab .ic { font-size: 20px; line-height: 1; }
/* 搴曢儴"鎴戠殑"Tab: 鐧诲綍鍚庣敤鐪熷疄澶村儚鏇挎崲榛樿鍥炬爣 */
.m3-tab-mini-avatar {
  width: 22px; height: 22px; border-radius: 50%; overflow: hidden; line-height: 1;
  border: 1.5px solid var(--m3-primary); box-sizing: border-box; background: #fff;
}
.m3-tab-mini-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m3-tab.on .m3-tab-mini-avatar { border-color: var(--m3-primary); }
.m3-tab-pub { position: relative; }
.m3-tab-pub .ic {
  width: 44px; height: 44px; line-height: 44px; text-align: center; border-radius: 50%;
  background: var(--m3-primary); color: #fff; font-size: 22px; font-weight: 700;
  margin-top: -14px; box-shadow: 0 2px 8px rgba(31, 58, 95, .35);
}
.m3-tab-pub { color: var(--m3-primary); font-weight: 600; }

/* ---------------- 鍒嗛〉 ---------------- */
.m3-pager { display: flex; gap: 10px; margin: 16px var(--m3-gap) 8px; }
.m3-pager a {
  flex: 1; text-align: center; padding: 11px 0; border-radius: var(--m3-radius);
  background: var(--m3-card); border: 1px solid var(--m3-border); font-size: 14px; color: var(--m3-text);
}
.m3-pager a.dis { opacity: .4; pointer-events: none; }

/* ---------------- 绌烘€?---------------- */
.m3-empty { text-align: center; color: var(--m3-text-3); padding: 40px 14px; font-size: 14px; }

/* ---------------- 更多链接 ---------------- */
.m3-more-wrap { text-align: center; margin: 4px var(--m3-gap) 0; }
.m3-more { display: inline-block; padding: 8px 20px; font-size: 13px; color: var(--m3-text-2); text-decoration: none; border: 1px solid var(--m3-border); border-radius: 20px; background: var(--m3-card); }
.m3-more:active { color: var(--m3-primary); border-color: var(--m3-primary); }

/* ---------------- 6SQ统计软件宣传条 ---------------- */
.m3-stat-banner { display: flex; align-items: center; gap: 10px; margin: 10px var(--m3-gap) 0; padding: 10px 12px; background: linear-gradient(135deg, #EEF2F7, #E8F0EC); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); text-decoration: none; }
.m3-stat-banner .ic { flex: none; width: 36px; height: 36px; line-height: 36px; text-align: center; font-size: 20px; color: var(--m3-primary); background: #fff; border-radius: 8px; }
.m3-stat-banner .ic svg { display: block; width: 20px; height: 20px; margin: 8px auto; }
.m3-stat-banner .txt { flex: 1; min-width: 0; }
.m3-stat-banner .txt b { display: block; font-size: 14px; color: var(--m3-text); font-weight: 600; }
.m3-stat-banner .txt i { display: block; font-style: normal; font-size: 11px; color: var(--m3-text-2); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-stat-banner .go { flex: none; padding: 5px 12px; background: var(--m3-primary); color: #fff; font-size: 12px; border-radius: 14px; font-weight: 600; }

/* ---------------- 首页顶部轮播广告位(home_top) ---------------- */
.m3-banner { position: relative; margin: 10px var(--m3-gap) 0; border-radius: var(--m3-radius); overflow: hidden; aspect-ratio: 3.1/1; background: var(--m3-bg); }
.m3-banner-track, .m3-banner-slide { position: absolute; inset: 0; }
.m3-banner-slide { opacity: 0; transition: opacity .6s; }
.m3-banner-slide.on { opacity: 1; z-index: 1; }
.m3-banner-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m3-banner-dots { position: absolute; left: 0; right: 0; bottom: 6px; display: flex; gap: 5px; justify-content: center; z-index: 2; }
.m3-banner-dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.55); }
.m3-banner-dots i.on { background: #fff; }
.m3-banner-one { display: block; margin: 10px var(--m3-gap) 0; border-radius: var(--m3-radius); overflow: hidden; }
.m3-banner-one img { width: 100%; display: block; }

/* ---------------- 问答详情广告位(qad_first / qad_guest) ---------------- */
.m3-ad-item { display: flex; align-items: center; gap: 8px; margin: 10px var(--m3-gap); padding: 10px 12px; background: linear-gradient(135deg, var(--m3-primary-soft), #E6EFE9); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); text-decoration: none; }
.m3-ad-item .t { flex: none; font-size: 13px; color: var(--m3-text); font-weight: 700; }
.m3-ad-item .d { flex: 1; min-width: 0; font-size: 12px; color: var(--m3-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-ad-item .g { flex: none; padding: 3px 10px; background: var(--m3-primary); color: #fff; font-size: 12px; border-radius: 12px; font-weight: 600; }
.m3-ad-item.img { padding: 0; overflow: hidden; }
.m3-ad-item.img img { width: 100%; display: block; }

/* ---------------- 底部信息 ---------------- */
.m3-ft { padding: 14px var(--m3-gap) 68px; text-align: center; font-size: 12px; color: var(--m3-text-3); line-height: 1.9; }
.m3-ft a { color: var(--m3-text-2); text-decoration: none; }
.m3-ft a:hover { color: var(--m3-primary); }

/* ---------------- 我的页 ---------------- */
.m3-profile {
  margin: var(--m3-gap); padding: 18px 14px; background: var(--m3-primary);
  border-radius: var(--m3-radius); color: #fff; display: flex; align-items: center; gap: 14px;
}
.m3-profile img { width: 52px; height: 52px; border-radius: 50%; border: 2px solid rgba(255,255,255,.5); }
.m3-profile .name { font-size: 17px; font-weight: 700; }
.m3-profile .sub { font-size: 12px; opacity: .8; margin-top: 3px; }
.m3-menu { margin: var(--m3-gap); background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); overflow: hidden; }
.m3-menu a { display: flex; align-items: center; justify-content: space-between; padding: 14px; border-bottom: 1px solid var(--m3-border); font-size: 14px; color: var(--m3-text); }
.m3-menu a:last-child { border-bottom: none; }
.m3-menu a .arrow { color: var(--m3-text-3); font-size: 14px; }

/* ===== 浠诲姟璇︽儏椤?M3 ===== */
.m3-topic-hero { background: #fff; padding: 18px 16px; border-bottom: 1px solid var(--m3-line); position: sticky; top: 0; z-index: 5; }
.m3-topic-focus { margin-top: 14px; }
.m3-topic-focus button { width: 100%; }
.m3-topic-head { display: flex; align-items: flex-start; gap: 14px; }
.m3-topic-pic { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: #f0f2f5; }
.m3-topic-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m3-topic-title-wrap { flex: 1; min-width: 0; }
.m3-topic-title-row { display: flex; align-items: center; gap: 8px; }
.m3-topic-title { font-size: 19px; font-weight: 600; color: var(--m3-text); line-height: 1.4; flex: 1; min-width: 0; }
.m3-topic-desc { font-size: 13px; color: var(--m3-text-2); margin-top: 6px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m3-topic-stats { display: flex; gap: 14px; margin-top: 8px; font-size: 12px; color: var(--m3-text-3); }
.m3-topic-pic-sm { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 8px; overflow: hidden; background: #f0f2f5; }
.m3-topic-pic-sm img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m3-topic-item { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.m3-topic-item h3 { margin: 0; }

/* ===== 涓汉涓婚〉 ===== */
.m3-people-hero { background: #fff; padding: 20px 16px 16px; border-bottom: 1px solid var(--m3-line); display: flex; align-items: flex-start; gap: 14px; }
.m3-people-avatar { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 50%; background: var(--m3-primary); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 600; overflow: hidden; }
.m3-people-avatar img { width: 100%; height: 100%; object-fit: cover; }
.m3-people-meta { flex: 1; min-width: 0; }
.m3-people-name { font-size: 17px; font-weight: 600; color: var(--m3-text); display: flex; align-items: center; gap: 6px; }
.m3-people-name .m3-v { color: var(--m3-primary); font-size: 14px; font-weight: 400; font-style: normal; }
.m3-people-bio { font-size: 13px; color: var(--m3-text-2); margin-top: 4px; line-height: 1.5; word-break: break-all; }
.m3-people-stats { display: flex; gap: 14px; margin-top: 10px; font-size: 12px; color: var(--m3-text-3); }
.m3-people-stats b { color: var(--m3-text); font-weight: 600; font-size: 15px; margin-right: 2px; }
.m3-people-action { background: #fff; padding: 0 16px 16px; display: flex; gap: 10px; border-bottom: 1px solid var(--m3-line); }
.m3-people-action .m3-btn { flex: 1; }

/* ===== 绛惧埌椤?===== */
.m3-qiandao-hero { background: linear-gradient(135deg, var(--m3-primary) 0%, #3E6B5B 100%); color: #fff; padding: 20px 16px; text-align: center; }
.m3-qiandao-day { font-size: 14px; }
.m3-qiandao-day b { font-size: 28px; font-weight: 600; margin: 0 4px; color: #FFD571; }
.m3-qiandao-stats { display: flex; justify-content: center; gap: 26px; margin-top: 12px; }
.m3-qiandao-stats .st { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.m3-qiandao-stats .st i { font-style: normal; font-size: 11px; opacity: 0.75; }
.m3-qiandao-stats .st b { font-size: 16px; font-weight: 600; color: #FFD571; }
.m3-qiandao-tip { font-size: 12px; margin-top: 8px; opacity: 0.8; }
.m3-qiandao-dates { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0; }

/* 鍗＄墖鏍囬 (閫氱敤) */
.m3-card-title { font-size: 15px; font-weight: 600; color: var(--m3-text); margin-bottom: 10px; }

/* 绛惧埌鎺掕姒?*/
.m3-rank-list { list-style: none; margin: 0; padding: 0; }
.m3-rank-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--m3-border); }
.m3-rank-row:last-child { border-bottom: none; }
.m3-rank-no { flex: none; width: 22px; text-align: center; font-weight: 700; font-size: 14px; color: var(--m3-text-3); }
.m3-rank-row:nth-child(1) .m3-rank-no { color: #E6B422; }
.m3-rank-row:nth-child(2) .m3-rank-no { color: #9BA1A6; }
.m3-rank-row:nth-child(3) .m3-rank-no { color: #CD7F32; }
.m3-rank-av { flex: none; width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--m3-primary-soft); }
.m3-rank-name { flex: 1; min-width: 0; font-size: 14px; color: var(--m3-text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m3-rank-name:active { color: var(--m3-primary); }
.m3-rank-days { flex: none; font-size: 13px; font-weight: 600; color: var(--m3-primary); }
.m3-rank-coin { flex: none; font-size: 12px; color: var(--m3-text-3); margin-left: 8px; }
.m3-rank-me { background: var(--m3-primary-soft); border-radius: 8px; }
.m3-rank-my { float: right; font-size: 12px; font-weight: 600; color: var(--m3-primary); }

/* ===== 閫氱敤: chips / rules / crumbs / tags ===== */
.m3-rules { padding-left: 18px; color: var(--m3-text-2); font-size: 14px; line-height: 1.8; }
.m3-crumbs { padding: 10px 16px 6px; font-size: 12px; color: var(--m3-text-3); }
.m3-crumbs a { color: var(--m3-text-3); text-decoration: none; }
.m3-crumbs .sep { margin: 0 4px; opacity: 0.6; }
.m3-page-crumbs { padding: 10px 16px 0; font-size: 12px; color: var(--m3-text-3); }
.m3-page-crumbs a { color: var(--m3-text-3); text-decoration: none; }
.m3-page-crumbs span { margin: 0 6px; opacity: 0.6; }

/* ---------------- 鏍囩浜?/ 骞垮満 ---------------- */
.m3-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px var(--m3-gap) 0; }
.m3-chip { padding: 5px 12px; border-radius: 999px; background: var(--m3-card); border: 1px solid var(--m3-border); font-size: 12px; color: var(--m3-text-2); }
.m3-chip:active { background: var(--m3-primary-soft); color: var(--m3-primary); }
.m3-chip-on { background: var(--m3-primary) !important; border-color: var(--m3-primary) !important; color: #fff !important; }

/* ---------------- 閫氱敤琛?閫氱煡/鍏虫敞/浼氬憳) ---------------- */
.m3-row { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--m3-border); }
.m3-row:last-child { border-bottom: none; }
.m3-row .avatar { flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--m3-primary-soft); object-fit: cover; }
.m3-row .body { flex: 1; min-width: 0; }
.m3-row .body b { font-size: 14px; font-weight: 600; color: var(--m3-text); }
.m3-row .body .desc { font-size: 12px; color: var(--m3-text-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-row .time { font-size: 11px; color: var(--m3-text-3); flex: none; }
.m3-row .unread { width: 8px; height: 8px; border-radius: 50%; background: var(--m3-danger); flex: none; }

/* ---------------- 浼氳瘽姘旀场 ---------------- */
.m3-chat { padding: 12px var(--m3-gap); }
.m3-bubble { max-width: 78%; margin: 8px 0; padding: 10px 12px; border-radius: 10px; font-size: 14px; line-height: 1.6; word-break: break-word; }
.m3-bubble.them { background: var(--m3-card); border: 1px solid var(--m3-border); }
.m3-bubble.me { background: var(--m3-primary); color: #fff; margin-left: auto; }
.m3-bubble.me a { color: #CFE8D8; }
.m3-chat .time { text-align: center; font-size: 11px; color: var(--m3-text-3); margin: 6px 0; }

/* ---------------- 閾炬帴琛?杩涘叆浼氳瘽) ---------------- */
.m3-linkrow { display: block; padding: 14px; border-bottom: 1px solid var(--m3-border); }
.m3-linkrow:last-child { border-bottom: none; }
.m3-linkrow .t { font-size: 14px; font-weight: 600; color: var(--m3-text); display: flex; align-items: center; gap: 8px; }
.m3-linkrow .msg { font-size: 12px; color: var(--m3-text-3); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 涓汉涓婚〉鍥炵瓟鎽樿 */
.m3-answer-preview { margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--m3-text-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------------- 閫氱敤 hero ---------------- */
.m3-hero { background: var(--m3-primary); color: #fff; padding: 11px 14px; }
.m3-hero h1 { font-size: 16px; font-weight: 700; }
.m3-hero p { font-size: 12px; opacity: .82; margin-top: 3px; line-height: 1.5; }
.m3-stat-row { display: flex; gap: 10px; margin: var(--m3-gap); }
.m3-stat { flex: 1; background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); padding: 14px; text-align: center; }
.m3-stat b { display: block; font-size: 22px; font-weight: 700; color: var(--m3-primary); }
.m3-stat span { font-size: 12px; color: var(--m3-text-3); }

/* ---------------- 鏂囦欢涓嬭浇鍒楄〃(鍙傝€僊鐩綍娣辩豢鑹查鏍? ---------------- */
.m3-file-list { margin: 12px 0; padding: 0; list-style: none; }
.m3-file-list li { margin-bottom: 8px; }
.m3-file-list a { display: flex; align-items: center; padding: 10px 12px; background: #f7f8fa; border: 1px solid #e5e8eb; border-radius: 8px; text-decoration: none; }
.m3-file-ext { flex: none; width: 44px; height: 44px; line-height: 44px; margin-right: 10px; border-radius: 8px; background: #14532d; color: #fff; font-size: 11px; font-weight: 700; text-align: center; box-sizing: border-box; }
.m3-file-info { flex: 1; min-width: 0; }
.m3-file-name { display: block; font-size: 14px; color: #333; line-height: 1.35; word-break: break-all; }
.m3-file-meta { display: block; margin-top: 3px; font-size: 11px; color: #999; }
.m3-file-dl { flex: none; margin-left: 10px; padding: 6px 16px; border-radius: 999px; background: #14532d; color: #fff; font-size: 13px; font-weight: 600; }

/* ---------------- 鍩硅璇剧▼鍗＄墖(棣栭〉) ---------------- */
.m3-train-card { padding: 2px 0; }
.m3-train-card .tc-title { font-size: 15px; font-weight: 700; line-height: 1.4; margin-bottom: 6px; }
.m3-train-card .tc-title a { color: var(--m3-text); text-decoration: none; }
.m3-train-card .tc-line { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--m3-text-3); flex-wrap: wrap; }
.m3-train-card .tc-line span { white-space: nowrap; }
.m3-train-card .tc-line .d { min-width: 6em; }
.m3-train-card .tc-pay { color: #E74C3C; font-weight: 700; }
.m3-train-card .tc-btn { margin-left: auto; padding: 2px 8px; border-radius: 14px; background: var(--m3-primary); color: #fff; font-size: 11px; font-weight: 600; text-decoration: none; white-space: nowrap; flex: none; }
.m3-train-card .tc-btn.off { background: #d7dde4; color: #8a97a7; }

/* ---------------- AI 瀵硅瘽 ---------------- */
.m3-chatbox {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  max-width: 720px; margin: 0 auto; display: flex; gap: 8px;
  padding: 10px 12px calc(10px + var(--m3-safe-bottom));
  background: var(--m3-card); border-top: 1px solid var(--m3-border);
}
.m3-chatbox input { flex: 1; border: 1px solid var(--m3-border); border-radius: var(--m3-radius); padding: 11px 12px; font-size: 15px; outline: none; background: #fff; }
.m3-chatbox input:focus { border-color: var(--m3-primary); }
.m3-chatbox .m3-send { flex: none; padding: 0 18px; border: none; border-radius: var(--m3-radius); background: var(--m3-primary); color: #fff; font-size: 14px; font-weight: 600; -webkit-appearance: none; }
.m3-chatwrap { padding-bottom: calc(70px + var(--m3-safe-bottom)); }
.m3-chat-hint { text-align: center; font-size: 12px; color: var(--m3-text-3); padding: 10px 14px; }
.m3-chat-hint.refs { text-align: left; line-height: 1.8; color: var(--m3-text-3); }
.m3-chat-hint .m3-ref-label { display: block; margin-bottom: 3px; }
.m3-chat-hint .m3-ref { display: block; padding: 3px 0; word-break: break-all; line-height: 1.6; }
.m3-chat-hint a { color: var(--m3-primary); text-decoration: underline; }

/* ---------------- 棰戦亾缃戞牸(闂ㄦ埛/鍙戠幇) ---------------- */
.m3-channels { display: flex; flex-wrap: wrap; margin: 14px var(--m3-gap) 0; }
.m3-channel {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  padding: 16px 8px; background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius);
  text-align: center;
  width: 33.333%; box-sizing: border-box;
}
.m3-channel:active { background: var(--m3-primary-soft); }
.m3-channel .ic { font-size: 22px; line-height: 1; color: var(--m3-primary); }
.m3-channel b { font-size: 13px; font-weight: 600; color: var(--m3-text); }
.m3-channel i { font-style: normal; font-size: 10px; color: var(--m3-text-3); }
.m3-channel .ic svg { display: block; width: 22px; height: 22px; margin: 0 auto; }

/* PC 端(宽屏 >=980px): 工具网格 3 列 -> 4 列, 卡片与文字同步放大 */
@media (min-width: 980px) {
  .m3-channel {
    width: 25%;
    padding: 20px 10px;
  }
  .m3-channel .ic { font-size: 26px; }
  .m3-channel .ic svg { width: 26px; height: 26px; }
  .m3-channel b { font-size: 14px; }
  .m3-channel i { font-size: 11px; }
}
/* 超宽屏(>=1400px): 保持 4 列不继续拉宽单卡 */
@media (min-width: 1400px) {
  .m3-channel { width: 25%; }
}

/* ---------------- 閿€艰〃(璇︽儏) ---------------- */
.m3-kv { margin: var(--m3-gap); background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); overflow: hidden; }
.m3-kv .row { display: flex; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--m3-border); font-size: 14px; }
.m3-kv .row:last-child { border-bottom: none; }
.m3-kv .k { flex: none; width: 84px; color: var(--m3-text-3); }
.m3-kv .v { flex: 1; min-width: 0; color: var(--m3-text); word-break: break-all; }

/* ---------------- 璁插笀鍗＄墖 / 澶村儚 ---------------- */
.m3-lecturer { display: flex; align-items: center; gap: 12px; padding: 14px; border-bottom: 1px solid var(--m3-border); }
.m3-lecturer:last-child { border-bottom: none; }
.m3-avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--m3-primary-soft); color: var(--m3-primary); display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; overflow: hidden; }
.m3-avatar img { width: 100%; height: 100%; object-fit: cover; }
.m3-lecturer .body { flex: 1; min-width: 0; }
.m3-lecturer .body b { font-size: 15px; font-weight: 600; color: var(--m3-text); }
.m3-lecturer .body .desc { font-size: 12px; color: var(--m3-text-3); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-lecturer .body .tag { font-size: 11px; color: var(--m3-primary); margin-top: 3px; }

/* ---------------- 讲师榜新样式 ---------------- */
.m3-lecturer-search { margin: 0 var(--m3-gap) 10px; }
.m3-lecturer-search form { display: flex; align-items: center; background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: 20px; padding: 0 6px 0 12px; }
.m3-lecturer-search .ic { flex: none; color: var(--m3-text-3); font-size: 14px; margin-right: 6px; }
.m3-lecturer-search input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-size: 13px; padding: 8px 0; color: var(--m3-text); }
.m3-lecturer-search button { flex: none; padding: 5px 14px; border: none; border-radius: 14px; background: var(--m3-primary); color: #fff; font-size: 13px; cursor: pointer; }

.m3-lecturer-filter { margin: 0 var(--m3-gap) 10px; }
.m3-lecturer-filter .filter-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.m3-lecturer-filter .filter-label { flex: none; font-size: 12px; color: var(--m3-text-3); }
.m3-lecturer-filter .filter-tag { flex: none; padding: 3px 10px; font-size: 12px; color: var(--m3-text-2); background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: 12px; text-decoration: none; }
.m3-lecturer-filter .filter-tag.on { background: var(--m3-primary); border-color: var(--m3-primary); color: #fff; }

.m3-lecturer-card { padding: 14px; border-bottom: 1px solid var(--m3-border); background: var(--m3-card); }
.m3-lecturer-card:last-child { border-bottom: none; }
.m3-lecturer-card .lecturer-main { display: flex; gap: 12px; text-decoration: none; color: inherit; }
.m3-lecturer-card .m3-avatar { flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--m3-primary-soft); color: var(--m3-primary); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; overflow: hidden; }
.m3-lecturer-card .m3-avatar img { width: 100%; height: 100%; object-fit: cover; }
.m3-lecturer-card .body { flex: 1; min-width: 0; }
.m3-lecturer-card .name-row { display: flex; align-items: center; gap: 6px; }
.m3-lecturer-card .name-row b { font-size: 16px; font-weight: 700; color: var(--m3-text); }
.m3-lecturer-card .level-badge { flex: none; font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 4px; }
.m3-lecturer-card .level-badge.cert { background: #E8F5E9; color: #2E7D32; }
.m3-lecturer-card .level-badge.gold { background: linear-gradient(135deg, #FFD700, #FFA500); color: #fff; }
.m3-lecturer-card .title { font-size: 12px; color: var(--m3-text-2); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-lecturer-card .meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; font-size: 11px; color: var(--m3-text-3); }
.m3-lecturer-card .tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.m3-lecturer-card .tags span { font-size: 10px; color: var(--m3-primary); background: var(--m3-primary-soft); padding: 2px 6px; border-radius: 4px; }
.m3-lecturer-card .lecturer-actions { display: flex; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--m3-border); }
.m3-lecturer-card .book-btn { flex: 1; text-align: center; padding: 7px 0; background: var(--m3-primary); color: #fff; font-size: 13px; border-radius: 6px; text-decoration: none; font-weight: 600; }
.m3-lecturer-card .detail-btn { flex: 1; text-align: center; padding: 7px 0; background: var(--m3-bg); color: var(--m3-text-2); font-size: 13px; border-radius: 6px; text-decoration: none; }
.m3-lecturer-card .detail-btn.full { flex: 1; }

.m3-lecturer-join { display: flex; align-items: center; justify-content: space-between; margin: 16px var(--m3-gap); padding: 14px; background: linear-gradient(135deg, var(--m3-primary-soft), #e8f0ec); border-radius: 10px; }
.m3-lecturer-join .join-text { display: flex; flex-direction: column; gap: 2px; }
.m3-lecturer-join .join-text b { font-size: 14px; color: var(--m3-text); }
.m3-lecturer-join .join-text span { font-size: 12px; color: var(--m3-text-2); }
.m3-lecturer-join .join-btn { flex: none; padding: 8px 18px; background: var(--m3-primary); color: #fff; font-size: 13px; border-radius: 16px; text-decoration: none; font-weight: 600; }

/* 顶部立即入驻按钮 */
.m3-hero { position: relative; }
.m3-hero .hero-actions { position: absolute; right: var(--m3-gap); top: 50%; transform: translateY(-50%); display: flex; gap: 8px; }
.m3-hero .hero-btn { flex: none; padding: 7px 14px; font-size: 12px; border-radius: 15px; text-decoration: none; font-weight: 600; }
.m3-hero .hero-btn.join { background: #fff; color: var(--m3-primary); }
.m3-hero .hero-btn.audit { background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.5); }

/* ---------------- 鎺掕姒?---------------- */
.m3-rank { margin: var(--m3-gap); background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); overflow: hidden; }
.m3-rank .row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--m3-border); }
.m3-rank .row:last-child { border-bottom: none; }
.m3-rank .no { flex: none; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; background: var(--m3-primary-soft); color: var(--m3-primary); font-weight: 700; font-size: 13px; }
.m3-rank .no.top { background: var(--m3-primary); color: #fff; }
.m3-rank .body { flex: 1; min-width: 0; }
.m3-rank .body b { font-size: 14px; font-weight: 600; color: var(--m3-text); }
.m3-rank .body .sub { font-size: 12px; color: var(--m3-text-3); margin-top: 2px; }
.m3-rank .val { flex: none; font-size: 13px; color: var(--m3-text-2); font-weight: 600; }

/* ---------------- 鍙屾爮鏍囬(闂ㄦ埛) ---------------- */
.m3-subhero { background: var(--m3-card); border-bottom: 1px solid var(--m3-border); padding: 16px 16px 12px; }
.m3-subhero h2 { font-size: 17px; font-weight: 700; color: var(--m3-text); }
.m3-subhero p { font-size: 12px; color: var(--m3-text-3); margin-top: 4px; }

/* ---------------- 甯姪鏂囨。 ---------------- */
.m3-doc { margin: var(--m3-gap); background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); overflow: hidden; }
.m3-doc .item { display: flex; align-items: center; gap: 8px; padding: 13px 14px; border-bottom: 1px solid var(--m3-border); font-size: 14px; color: var(--m3-text); }
.m3-doc .item:last-child { border-bottom: none; }
.m3-doc .item .dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--m3-primary); }
.m3-doc .item .sub { margin-left: auto; font-size: 11px; color: var(--m3-text-3); }
.m3-chapter-grid { display: flex; flex-wrap: wrap; margin: var(--m3-gap); }
.m3-chapter { padding: 14px; background: var(--m3-card); border: 1px solid var(--m3-border); border-radius: var(--m3-radius); width: 50%; box-sizing: border-box; }
.m3-chapter b { font-size: 15px; font-weight: 600; color: var(--m3-text); display: block; }
.m3-chapter p { font-size: 12px; color: var(--m3-text-3); margin-top: 4px; line-height: 1.5; }

/* ---------------- 招聘 / 求职卡片 ---------------- */
.m3-jobcard { display: flex; gap: 12px; padding: 14px; border-bottom: 1px solid var(--m3-border); background: var(--m3-card); text-decoration: none; color: inherit; transition: background .15s; }
.m3-jobcard:last-child { border-bottom: none; }
.m3-jobcard:active { background: var(--m3-primary-soft); }
.m3-jobcard .zhao { flex: none; width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, #E74C3C 0%, #C0392B 100%); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700; box-shadow: 0 2px 6px rgba(231,76,60,.25); }
.m3-jobcard .body { flex: 1; min-width: 0; }
.m3-jobcard .top { display: flex; align-items: center; gap: 8px; }
.m3-jobcard .pos { font-size: 16px; font-weight: 700; color: var(--m3-text); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-jobcard .status { flex: none; font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 10px; }
.m3-jobcard .status.open { background: #E8F5E9; color: #2E7D32; }
.m3-jobcard .status.closed { background: #F5F5F5; color: #999; }
.m3-jobcard .company { font-size: 13px; color: var(--m3-text-2); margin-top: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-jobcard .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.m3-jobcard .tags span { font-size: 11px; color: var(--m3-text-3); background: var(--m3-bg); padding: 3px 8px; border-radius: 6px; }
.m3-jobcard .bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.m3-jobcard .wage { font-size: 16px; font-weight: 700; color: #E74C3C; }
.m3-jobcard .date { font-size: 11px; color: var(--m3-text-3); }
.m3-seek { padding: 12px 14px; border-bottom: 1px solid var(--m3-border); }

/* ---------------- 活动 · 签名墙 ---------------- */
.m3-wall { padding: 0 var(--m3-gap) 20px; }
.m3-wall-hero { background: linear-gradient(135deg, var(--m3-primary) 0%, #6FA88F 100%); color: #fff; border-radius: 14px; padding: 20px 16px; margin-top: 12px; }
.m3-wall-hero-badge { display: inline-block; font-size: 11px; font-weight: 600; background: rgba(255,255,255,.22); border: 1px solid rgba(255,255,255,.35); padding: 2px 10px; border-radius: 12px; margin-bottom: 8px; }
.m3-wall-hero h1 { font-size: 20px; font-weight: 700; margin: 0 0 8px; line-height: 1.3; }
.m3-wall-hero-desc { font-size: 13px; line-height: 1.7; color: rgba(255,255,255,.92); margin: 0 0 14px; }
.m3-wall-hero-desc b { color: #ffe08a; }
.m3-wall-stats { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,.95); }
.m3-wall-stats b { font-size: 16px; color: #ffe08a; }
.m3-wall-stats .dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,.6); }
.m3-wall-progress { margin-top: 12px; }
.m3-wall-progress-bar { height: 8px; border-radius: 5px; background: rgba(255,255,255,.28); overflow: hidden; }
.m3-wall-progress-fill { height: 100%; border-radius: 5px; background: linear-gradient(90deg, #ffe08a, #ffb84d); transition: width .6s ease; min-width: 2px; }
.m3-wall-progress-txt { font-size: 12px; color: rgba(255,255,255,.85); margin-top: 6px; }
.m3-wall-progress-txt span { color: #ffe08a; font-weight: 600; }
.m3-wall-board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 14px 12px; background: #fff; border-radius: 10px; border: 1px solid var(--m3-border); justify-items: center; }
.m3-wall-card { width: 100%; max-width: 76px; display: flex; flex-direction: column; align-items: center; gap: 4px; rotate: var(--rot, 0deg); animation: m3WallFloat 3.5s ease-in-out infinite; }
.m3-wall-card.in { animation: m3WallIn .45s ease-out, m3WallFloat 3.5s ease-in-out infinite; }
.m3-wall-av { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(31,35,41,.15); background: var(--m3-bg); }
.m3-wall-name { font-size: 12px; color: var(--m3-text-2); max-width: 76px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-wall-note { font-size: 11px; color: #6b7a90; background: #fdf6e3; border: 1px solid #f0e3b6; border-radius: 6px; padding: 3px 6px; max-width: 74px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-all; }
.m3-wall-card.me .m3-wall-av { border-color: #ffe08a; box-shadow: 0 0 0 3px #ffe08a; }
.m3-wall-empty { width: 100%; }
@keyframes m3WallFloat { 0%,100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@keyframes m3WallIn { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }
.m3-wall-join { background: #fff; border: 1px solid var(--m3-border); border-radius: 10px; padding: 14px; margin-top: 14px; }
.m3-wall-join-title { font-size: 15px; font-weight: 700; color: var(--m3-text); margin-bottom: 10px; }
.m3-wall-join .m3-input { margin-bottom: 10px; }
.m3-wall-join-btn { width: 100%; padding: 12px 0; font-size: 16px; font-weight: 700; border: none; border-radius: 8px; background: linear-gradient(90deg, var(--m3-primary), #6FA88F); color: #fff; cursor: pointer; text-align: center; text-decoration: none; display: block; }
.m3-wall-join-btn:active { opacity: .85; }
.m3-wall-join-btn:disabled { opacity: .6; cursor: not-allowed; }
.m3-wall-join-tip { font-size: 13px; color: var(--m3-text-3); margin-bottom: 10px; }
.m3-wall-join-done { font-size: 14px; color: #1e7e34; background: #e6f6ec; border: 1px solid #bfe6cc; border-radius: 8px; padding: 10px 12px; line-height: 1.6; }
.m3-wall-footnote { font-size: 11px; color: var(--m3-text-3); text-align: center; margin-top: 16px; }
.m3-wall-toast { position: fixed; left: 50%; top: 18%; transform: translateX(-50%) translateY(-8px); background: rgba(31,35,41,.88); color: #fff; font-size: 14px; padding: 10px 18px; border-radius: 22px; z-index: 99999; opacity: 0; transition: opacity .3s, transform .3s; pointer-events: none; max-width: 80%; text-align: center; }
.m3-wall-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---- 第二期：锦鲤 + 邀请裂变 + 海报 ---- */
.m3-act-list { padding: 12px var(--m3-gap) 0; display: flex; flex-direction: column; gap: 8px; }
.m3-act-card { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--m3-primary); border-radius: 10px; padding: 11px 12px; text-decoration: none; }
.m3-act-card.hot { border-color: #D97B3C; }
.m3-act-card.new { border-color: #C0392B; }
.m3-act-card:active { background: var(--m3-bg); }
.m3-act-ic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; background: var(--m3-primary-soft); display: flex; align-items: center; justify-content: center; font-size: 20px; }
.m3-act-body { flex: 1; min-width: 0; }
.m3-act-body b { display: block; font-size: 14px; color: var(--m3-text); }
.m3-act-body i { display: block; font-size: 12px; color: var(--m3-text-3); margin-top: 2px; font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-act-go { flex: 0 0 auto; font-size: 12px; color: var(--m3-primary); font-weight: 600; }
.m3-wall-card { position: relative; }
.m3-wall-crown { position: absolute; top: -12px; right: 2px; font-size: 20px; line-height: 1; z-index: 2; display: none; transform: rotate(12deg); filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.m3-wall-card.lucky .m3-wall-crown { display: block; animation: m3WallCrown 1.6s ease-in-out infinite; }
.m3-wall-card.lucky .m3-wall-av { border-color: #ffd34d; box-shadow: 0 0 0 3px #ffe08a; }
@keyframes m3WallCrown { 0%,100% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
.m3-wall-invite { background: #fff; border: 1px solid var(--m3-border); border-radius: 10px; padding: 14px; margin-top: 14px; }
.m3-wall-invite-title { font-size: 15px; font-weight: 700; color: var(--m3-text); }
.m3-wall-invite-tip { font-size: 12.5px; color: var(--m3-text-3); line-height: 1.6; margin: 6px 0 12px; }
.m3-wall-invite-tip2 { font-size: 13px; color: var(--m3-text-3); }
.m3-wall-invite-actions { display: flex; gap: 8px; }
.m3-wall-invite-actions button { flex: 1; padding: 10px 0; border: none; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.m3-wall-copy-btn { background: var(--m3-primary-soft); color: var(--m3-primary); }
.m3-wall-poster-btn { background: linear-gradient(90deg, #ff9a3d, #ffb84d); color: #fff; }
.m3-wall-invite-actions button:active { opacity: .85; }
.m3-wall-invite-actions button:disabled { opacity: .6; }
.m3-wall-invite-my { font-size: 13px; color: var(--m3-text-2); margin-top: 12px; }
.m3-wall-invite-my b { color: #e67e22; font-size: 16px; }
.m3-wall-rank-title { font-size: 13.5px; font-weight: 700; color: var(--m3-text); margin: 14px 0 8px; }
.m3-wall-rank-row { display: flex; align-items: center; gap: 10px; padding: 7px 2px; border-bottom: 1px solid #f0f3f7; }
.m3-wall-rank-row:last-child { border-bottom: none; }
.m3-wall-rank-row .no { flex: 0 0 22px; font-size: 13px; font-weight: 700; color: var(--m3-text-3); text-align: center; }
.m3-wall-rank-row:nth-child(1) .no, .m3-wall-rank-row:nth-child(2) .no, .m3-wall-rank-row:nth-child(3) .no { color: #e6a23c; }
.m3-wall-rank-row .av { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; background: var(--m3-bg); }
.m3-wall-rank-row .name { flex: 1; min-width: 0; font-size: 13px; color: var(--m3-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-wall-rank-row .cnt { flex: none; font-size: 12px; color: var(--m3-text-2); }
.m3-wall-poster-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(0,0,0,.6); z-index: 99998; display: flex; align-items: center; justify-content: center; padding: 20px; }
.m3-wall-poster-box { background: #fff; border-radius: 14px; padding: 16px; width: 100%; max-width: 360px; max-height: 92%; overflow-y: auto; box-sizing: border-box; }
.m3-wall-poster-tip { font-size: 13px; color: var(--m3-text-2); text-align: center; margin-bottom: 12px; line-height: 1.6; }
.m3-wall-poster-img { text-align: center; }
.m3-wall-poster-close { margin-top: 14px; text-align: center; padding: 10px 0; border-radius: 8px; background: #f0f3f7; color: var(--m3-text-2); font-size: 14px; font-weight: 600; cursor: pointer; }
.m3-wall-lucky-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(0,0,0,.65); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 24px; }
.m3-wall-lucky-box { background: linear-gradient(160deg, #fff8e6, #fff); border: 2px solid #ffd34d; border-radius: 16px; padding: 28px 24px 20px; text-align: center; width: 100%; max-width: 300px; box-shadow: 0 12px 40px rgba(0,0,0,.25); box-sizing: border-box; }
.m3-wall-lucky-crown { font-size: 56px; line-height: 1; animation: m3WallCrown 1.4s ease-in-out infinite; }
.m3-wall-lucky-title { font-size: 20px; font-weight: 800; color: #c97a1a; margin: 12px 0 8px; }
.m3-wall-lucky-sub { font-size: 13px; color: var(--m3-text-2); line-height: 1.7; margin-bottom: 18px; }
.m3-wall-lucky-ok { width: 100%; padding: 11px 0; border: none; border-radius: 8px; background: linear-gradient(90deg, #ff9a3d, #ffb84d); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }

/* ---- 我的徽章墙 ---- */
.m3-badge-grid { display: flex; flex-wrap: wrap; gap: 12px; padding: 14px var(--m3-gap); }
.m3-badge-card { flex: 1 1 30%; max-width: 33%; min-width: 92px; background: #fff; border: 1px solid var(--m3-border); border-radius: 12px; padding: 16px 8px; text-align: center; box-sizing: border-box; }
.m3-badge-ic { font-size: 40px; line-height: 1; filter: grayscale(1); opacity: .45; }
.m3-badge-card.got .m3-badge-ic { filter: none; opacity: 1; animation: m3WallCrown 2s ease-in-out infinite; }
.m3-badge-name { font-size: 13px; font-weight: 700; color: var(--m3-text); margin-top: 8px; }
.m3-badge-desc { font-size: 11px; color: var(--m3-text-3); margin-top: 4px; line-height: 1.5; min-height: 30px; }
.m3-badge-status { display: inline-block; font-size: 11px; padding: 2px 10px; border-radius: 10px; margin-top: 8px; background: #f0f3f7; color: var(--m3-text-3); }
.m3-badge-card.got .m3-badge-status { background: #e6f6ec; color: #1e7e34; }
.m3-badge-hint { padding: 0 var(--m3-gap) 20px; text-align: center; }
.m3-badge-go { display: inline-block; margin-top: 8px; font-size: 11px; padding: 3px 12px; border-radius: 10px; background: var(--m3-primary); color: #fff; }
.m3-badge-go:hover { background: var(--m3-primary-press); }

/* ---- 人气王点赞 ---- */
.m3-wall-like { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; color: var(--m3-text-3); background: none; border: none; padding: 2px 6px; border-radius: 10px; cursor: pointer; line-height: 1; }
.m3-wall-like .ic { font-size: 13px; color: #b9c1cc; }
.m3-wall-like.on { color: #e74c3c; }
.m3-wall-like.on .ic { color: #e74c3c; }
.m3-wall-like.static { cursor: default; }
.m3-wall-like-tip { font-size: 11px; color: var(--m3-text-3); font-weight: 400; }
.m3-wall-king-title { font-size: 14px; font-weight: 700; color: var(--m3-text); margin: 16px var(--m3-gap) 8px; }
.m3-wall-king { background: #fff; border: 1px solid var(--m3-border); border-radius: 10px; padding: 6px 14px; margin: 0 var(--m3-gap); }
.m3-wall-king-row { display: flex; align-items: center; gap: 10px; padding: 8px 2px; border-bottom: 1px solid #f0f3f7; }
.m3-wall-king-row:last-child { border-bottom: none; }
.m3-wall-king-row .no { flex: 0 0 20px; font-size: 14px; font-weight: 800; color: var(--m3-text-3); text-align: center; }
.m3-wall-king-row:nth-child(1) .no { color: #e6a23c; }
.m3-wall-king-row:nth-child(2) .no { color: #a0a6ad; }
.m3-wall-king-row:nth-child(3) .no { color: #c98a4b; }
.m3-wall-king-row .av { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--m3-bg); border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.m3-wall-king-row .name { flex: 1; min-width: 0; font-size: 13.5px; color: var(--m3-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-wall-king-row .cnt { flex: none; font-size: 12px; color: #e74c3c; font-weight: 600; }

/* ---- 活动：把 6SQ 装进桌面 ---- */
.m3-pwa-stats { text-align: center; font-size: 13px; color: var(--m3-text-2); margin: 12px 0 0; }
.m3-pwa-stats b { font-size: 18px; color: var(--m3-primary); }
.m3-pwa-block { background: #fff; border: 1px solid var(--m3-border); border-radius: 10px; padding: 14px; margin: 12px var(--m3-gap) 0; }
.m3-pwa-block-title { font-size: 15px; font-weight: 700; color: var(--m3-text); margin-bottom: 10px; }
.m3-pwa-point { font-size: 13.5px; color: var(--m3-text-2); line-height: 1.9; }
.m3-pwa-step { border: 1px solid #e6ecf2; border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; }
.m3-pwa-step:last-child { margin-bottom: 0; }
.m3-pwa-step-t { font-size: 14px; font-weight: 700; color: var(--m3-primary); margin-bottom: 6px; }
.m3-pwa-step-row { font-size: 13.5px; color: var(--m3-text-2); line-height: 2; }
.m3-pwa-step-row b { color: var(--m3-text); }
.m3-pwa-join { background: #fff; border: 1px solid var(--m3-border); border-radius: 10px; padding: 14px; margin: 12px var(--m3-gap) 0; text-align: center; }
.m3-pwa-btn { width: 100%; padding: 12px 0; font-size: 16px; font-weight: 700; border: none; border-radius: 8px; background: linear-gradient(90deg, var(--m3-primary), #6FA88F); color: #fff; cursor: pointer; text-align: center; text-decoration: none; display: block; box-sizing: border-box; }
.m3-pwa-btn:active { opacity: .85; }
.m3-pwa-btn:disabled { opacity: .6; }
.m3-pwa-tip { font-size: 12px; color: var(--m3-text-3); margin-top: 10px; line-height: 1.6; }
.m3-pwa-done { font-size: 14px; color: #1e7e34; background: #e6f6ec; border: 1px solid #bfe6cc; border-radius: 8px; padding: 10px 12px; line-height: 1.6; }
.m3-pwa-foot { text-align: center; font-size: 13px; color: var(--m3-primary); padding: 16px 0 20px; }
.m3-pwa-foot a { color: var(--m3-primary); text-decoration: none; }
.m3-pwa-copy { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--m3-border); border-radius: 18px; padding: 6px 6px 6px 14px; margin: 12px var(--m3-gap) 0; }
.m3-pwa-copy .url { flex: 1; min-width: 0; font-size: 13px; color: var(--m3-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m3-pwa-copy button { flex: 0 0 auto; padding: 8px 16px; border: none; border-radius: 14px; background: linear-gradient(90deg, var(--m3-primary), #6FA88F); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }
.m3-pwa-copy button:active { opacity: .85; }
.m3-seek:last-child { border-bottom: none; }
.m3-seek .t { font-size: 14px; font-weight: 600; color: var(--m3-text); }
.m3-seek .m { font-size: 13px; color: var(--m3-text-2); margin-top: 4px; line-height: 1.6; }
.m3-seek .meta { font-size: 12px; color: var(--m3-text-3); margin-top: 4px; }

/* ---------------- 闂璇︽儏椤垫嫑鑱樹俊鎭崱鐗?---------------- */
.m3-jobcard { margin-top: 12px; padding: 14px; background: #fff9f5; border: 1px solid #f5e0d0; border-radius: 10px; }
.m3-jobcard-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.m3-jobcard-pos { font-size: 17px; font-weight: 700; color: #c0392b; flex: 1; min-width: 0; }
.m3-jobcard-status { flex-shrink: 0; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 4px; }
.m3-jobcard-status.open { background: #e8f5e9; color: #2e7d32; }
.m3-jobcard-status.closed { background: #f5f5f5; color: #999; }
.m3-jobcard-wage { font-size: 16px; font-weight: 700; color: #e74c3c; margin-bottom: 10px; }
.m3-jobcard-kv { display: flex; flex-direction: column; gap: 6px; }
.m3-jobcard-kv > div { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.5; }
.m3-jobcard-kv .k { flex: none; width: 50px; color: #999; }
.m3-jobcard-kv .v { flex: 1; color: #333; word-break: break-all; }
.m3-jobcard-contact { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #f0d8c5; }
.m3-jobcard-contact-h { font-size: 13px; font-weight: 600; color: #666; margin-bottom: 6px; }
.m3-jobcard-contact > div { font-size: 13px; color: #333; margin-bottom: 4px; }
.m3-jobcard-apply { width: 100%; margin-top: 12px; padding: 10px 0; border: none; border-radius: 8px; background: #e74c3c; color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }

/* ---------------- 閫氱敤鍒楄〃椤?鍩硅/娲诲姩绛? ---------------- */
.m3-item { padding: 13px 14px; border-bottom: 1px solid var(--m3-border); }
.m3-item:last-child { border-bottom: none; }
.m3-item h3 { font-size: 14px; font-weight: 600; color: var(--m3-text); line-height: 1.4; }
.m3-item h3 a { color: inherit; text-decoration: none; }
.m3-item .line { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.m3-item .line span { font-size: 12px; color: var(--m3-text-3); }

/* ---------------- 求职卡片 ---------------- */
.m3-seekcard { padding: 14px; border-bottom: 1px solid var(--m3-border); background: var(--m3-card); }
.m3-seekcard:last-child { border-bottom: none; }
.m3-seekcard .head { display: flex; align-items: center; gap: 10px; }
.m3-seekcard .avatar { flex: none; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--m3-primary-soft), #e8f0ec); color: var(--m3-primary); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; }
.m3-seekcard .user { flex: 1; min-width: 0; }
.m3-seekcard .user b { font-size: 14px; font-weight: 600; color: var(--m3-text); }
.m3-seekcard .user .from { font-size: 11px; color: var(--m3-text-3); margin-top: 2px; }
.m3-seekcard .date { flex: none; font-size: 11px; color: var(--m3-text-3); }
.m3-seekcard .msg { font-size: 14px; color: var(--m3-text-2); line-height: 1.7; margin-top: 10px; word-break: break-all; }
.m3-seekcard .actions { display: flex; gap: 20px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--m3-border); }
.m3-seekcard .actions button { background: none; border: none; padding: 0; font-size: 12px; color: var(--m3-text-3); cursor: pointer; display: flex; align-items: center; gap: 4px; }
.m3-seekcard .actions button:active { color: var(--m3-primary); }
.m3-seekcard .actions .count { color: var(--m3-primary); font-weight: 600; }
.m3-seekcard .replies { margin-top: 12px; padding: 12px; background: var(--m3-bg); border-radius: 10px; display: none; }
.m3-seekcard .replies.open { display: block; }
.m3-seekcard .reply-item { padding: 10px 0; border-bottom: 1px solid var(--m3-border); }
.m3-seekcard .reply-item:last-child { border-bottom: none; }
.m3-seekcard .reply-item .ru { font-size: 12px; font-weight: 600; color: var(--m3-primary); }
.m3-seekcard .reply-item .rm { font-size: 13px; color: var(--m3-text-2); margin-top: 4px; line-height: 1.6; }
.m3-seekcard .reply-item .rd { font-size: 11px; color: var(--m3-text-3); margin-top: 4px; }
.m3-seekcard .reply-form { display: flex; gap: 8px; margin-top: 12px; }
.m3-seekcard .reply-form input { flex: 1; border: 1px solid var(--m3-border); border-radius: 8px; padding: 9px 12px; font-size: 13px; outline: none; background: #fff; }
.m3-seekcard .reply-form input:focus { border-color: var(--m3-primary); }
.m3-seekcard .reply-form button { flex: none; padding: 9px 18px; border: none; border-radius: 8px; background: var(--m3-primary); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }

/* ---------------- 璇濋瀵艰埅鍒嗙粍 ---------------- */
.m3-taggroup { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; }
.m3-tagitem { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px; background: var(--m3-bg); border: 1px solid var(--m3-border); text-decoration: none; font-size: 13px; color: var(--m3-text-2); }
.m3-tagitem:active { background: var(--m3-primary-soft); border-color: var(--m3-primary); color: var(--m3-primary); }
.m3-tagitem .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--m3-primary); flex: none; }

/* ===== full-page dialogs: wx attachment download guide + PWA install banner ===== */
#wxdl-mask{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:99999;display:flex;align-items:center;justify-content:center;}
#wxdl-box{background:#fff;border-radius:12px;width:82%;max-width:340px;padding:20px;text-align:center;font-size:14px;box-sizing:border-box;}
#m3-pwa-banner{position:fixed;left:0;right:0;bottom:0;z-index:99998;background:#fff;border-top:1px solid #e6ebf2;padding:12px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 -2px 10px rgba(0,0,0,.08);transform:translateY(100%);transition:transform .3s ease;}
#m3-pwa-banner.show{transform:translateY(0);}
#m3-pwa-banner .pwa-ic{flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--m3-primary),#6FA88F);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700;}
#m3-pwa-banner .pwa-body{flex:1;min-width:0;}
#m3-pwa-banner .pwa-title{font-size:14px;font-weight:600;color:#243b53;}
#m3-pwa-banner .pwa-desc{font-size:12px;color:#6b7a90;margin-top:2px;}
#m3-pwa-banner .pwa-install{flex:0 0 auto;padding:8px 16px;border:none;border-radius:8px;background:var(--m3-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}
#m3-pwa-banner .pwa-close{flex:0 0 auto;width:28px;height:28px;line-height:26px;text-align:center;color:#999;font-size:18px;cursor:pointer;background:none;border:none;}

/* ===== infinite-scroll state bar ===== */
.m3-pager.m3-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 0;font-size:13px;color:var(--m3-text-3);}
.m3-pager.m3-state-loading::before{content:'';width:15px;height:15px;border:2px solid var(--m3-border);border-top-color:var(--m3-primary);border-radius:50%;animation:m3spin .75s linear infinite;flex:none;}
@keyframes m3spin{to{transform:rotate(360deg);}}
.m3-pager.m3-state-error{color:var(--m3-primary);font-weight:600;text-decoration:underline;}
.m3-pager.m3-state-end{color:var(--m3-text-3);}

/* ===== empty state (main card) ===== */
.m3-card.m3-empty{padding:46px 16px 48px;line-height:1.8;}
.m3-card.m3-empty::before{content:'';display:block;width:36px;height:36px;margin:0 auto 12px;opacity:.5;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239aa3af'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H5V5h14v10z'/%3E%3C/svg%3E") no-repeat center;background-size:contain;}




/* ===== 手机版求职招聘新版式 (job.tpl.htm) ===== */
.m3-jobhero { background: linear-gradient(135deg, #5B8C7A 0%, #4E7E6A 100%); color: #fff; padding: 20px 16px 56px; }
.m3-jobhero-t { font-size: 20px; font-weight: 800; display: flex; align-items: center; gap: 8px; }
.m3-jobhero-t > span { font-size: 22px; }
.m3-jobhero-badge { margin-left: auto; font-style: normal; font-size: 11px; background: rgba(255,255,255,.2); padding: 3px 10px; border-radius: 12px; font-weight: 600; }
.m3-jobhero-s { font-size: 13px; opacity: .85; margin-top: 5px; line-height: 1.5; }
.m3-pubbar { display: flex; gap: 12px; margin: -30px 16px 0; position: relative; z-index: 2; }
.m3-pubbtn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; height: 46px; border-radius: 12px; font-size: 15px; font-weight: 700; text-decoration: none; box-shadow: 0 3px 10px rgba(0,0,0,.08); box-sizing: border-box; }
.m3-pubbtn.recruit { background: #fff; color: #E74C3C; border: 1px solid #F5D9D3; }
.m3-pubbtn.seek { background: #fff; color: #5B8C7A; border: 1px solid #CFE3DA; }
.m3-pubbtn .d { width: 22px; height: 22px; border-radius: 7px; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; }
.m3-pubbtn.recruit .d { background: #E74C3C; }
.m3-pubbtn.seek .d { background: #5B8C7A; }
.m3-qiuzhi-box { display: none; margin: 14px 16px 0; padding: 14px; background: #fff; border: 1px solid var(--m3-border); border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.m3-qiuzhi-box.open { display: block; }
.m3-qiuzhi-box textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--m3-border); border-radius: 10px; padding: 10px 12px; font-size: 14px; line-height: 1.6; color: var(--m3-text); resize: vertical; outline: none; font-family: inherit; }
.m3-qiuzhi-box textarea:focus { border-color: var(--m3-primary); }
.m3-jobsec { margin: 22px 16px 0; display: flex; align-items: center; gap: 8px; }
.m3-jobsec .dot { flex: none; width: 4px; height: 16px; border-radius: 2px; background: #5B8C7A; }
.m3-jobsec .tt { font-size: 16px; font-weight: 800; color: #1F2329; }
.m3-jobsec .more { margin-left: auto; font-size: 12px; color: var(--m3-text-3); text-decoration: none; }
.m3-jobsec .more b { color: var(--m3-primary); }
.m3-jcards { margin: 12px 16px 0; }
.m3-jcard { display: block; margin-bottom: 12px; background: #fff; border: 1px solid var(--m3-border); border-radius: 14px; padding: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.03); text-decoration: none; color: inherit; }
.m3-jcard:active { background: var(--m3-primary-soft); }
.m3-jcard .hd { display: flex; align-items: flex-start; gap: 10px; }
.m3-jcard .zhao { flex: none; width: 40px; height: 40px; border-radius: 11px; background: linear-gradient(135deg, #E74C3C, #C0392B); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; }
.m3-jcard .mid { flex: 1; min-width: 0; }
.m3-jcard .pos { font-size: 16px; font-weight: 800; color: var(--m3-text); display: flex; align-items: center; gap: 8px; }
.m3-jcard .pos .nm { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m3-jcard .st { flex: none; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 11px; }
.m3-jcard .st.on { background: #E6F5EC; color: #2E7D32; }
.m3-jcard .st.off { background: #F1F2F4; color: #9AA1A9; }
.m3-jcard .company { font-size: 13px; color: var(--m3-text-2); margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m3-jcard .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.m3-jcard .tags span { font-size: 11px; color: var(--m3-text-2); background: var(--m3-bg); padding: 3px 9px; border-radius: 7px; }
.m3-jcard .ft { display: flex; align-items: center; justify-content: space-between; margin-top: 11px; padding-top: 10px; border-top: 1px dashed #EEF0F2; }
.m3-jcard .ft .sal { font-size: 16px; font-weight: 800; color: #E74C3C; }
.m3-jcard .ft .sal i { font-style: normal; font-size: 12px; font-weight: 600; }
.m3-jcard .ft .dt { font-size: 11px; color: var(--m3-text-3); }
.m3-scards { margin: 12px 16px 0; }
.m3-scard { margin-bottom: 12px; background: #fff; border: 1px solid var(--m3-border); border-radius: 14px; padding: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.03); }
.m3-scard .hd { display: flex; align-items: center; gap: 10px; }
.m3-scard .av { flex: none; width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #5B8C7A, #8FB5A3); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; }
.m3-scard .un { flex: 1; min-width: 0; }
.m3-scard .un b { font-size: 14px; font-weight: 700; color: var(--m3-text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m3-scard .un .fr { font-size: 11px; color: var(--m3-text-3); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m3-scard .dt { flex: none; font-size: 11px; color: var(--m3-text-3); }
.m3-scard .msg { font-size: 13px; color: #3A4148; line-height: 1.7; margin-top: 10px; word-break: break-all; }
.m3-scard .acts { display: flex; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed #EEF0F2; }
.m3-scard .acts span { flex: 1; height: 34px; display: flex; align-items: center; justify-content: center; gap: 5px; font-size: 12px; border-radius: 9px; cursor: pointer; }
.m3-scard .acts .reply { background: #F0F5F2; color: #5B8C7A; font-weight: 600; }
.m3-scard .acts .mail { background: #F5F6F7; color: #6B7280; }
.m3-scard .replies { margin-top: 12px; padding: 12px; background: var(--m3-bg); border-radius: 10px; display: none; }
.m3-scard .replies.open { display: block; }
.m3-scard .reply-item { padding: 10px 0; border-bottom: 1px solid var(--m3-border); }
.m3-scard .reply-item:last-child { border-bottom: none; }
.m3-scard .reply-item .ru { font-size: 12px; font-weight: 600; color: var(--m3-primary); }
.m3-scard .reply-item .rm { font-size: 13px; color: var(--m3-text-2); margin-top: 4px; line-height: 1.6; }
.m3-scard .reply-item .rd { font-size: 11px; color: var(--m3-text-3); margin-top: 4px; }
.m3-scard .reply-form { display: flex; gap: 8px; margin-top: 12px; }
.m3-scard .reply-form input { flex: 1; border: 1px solid var(--m3-border); border-radius: 8px; padding: 9px 12px; font-size: 13px; outline: none; background: #fff; }
.m3-scard .reply-form input:focus { border-color: var(--m3-primary); }
.m3-scard .reply-form button { flex: none; padding: 9px 18px; border: none; border-radius: 8px; background: var(--m3-primary); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }
