/* 网页版补充样式（app.css 由 WXSS 自动生成，手写补丁放这里） */

/* ---------- 登录 / 注册表单 ---------- */
.pg-login .lg-tabs {
  display: flex;
  margin: 0 28px 0;
  background: #eef3fb;
  border-radius: 12px;
  padding: 4px;
}
.pg-login .lg-tab {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 10px 0;
  font-size: 15px;
  color: #6b7a93;
  border-radius: 9px;
  cursor: pointer;
  font-weight: 500;
}
.pg-login .lg-tab.on {
  background: #fff;
  color: #2f6fed;
  box-shadow: 0 2px 8px rgba(47, 111, 237, .16);
}
.pg-login .lg-field {
  margin-bottom: 16px;
}
.pg-login .lg-field:last-child { margin-bottom: 0; }
.pg-login .lg-field label {
  display: block;
  font-size: 13px;
  color: #8794ab;
  margin-bottom: 7px;
}
.pg-login .lg-field input {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  font-size: 15px;
  color: #161c28;
  background: #f6f8fc;
  border: 1px solid #e3e9f3;
  border-radius: 11px;
  outline: none;
}
.pg-login .lg-field input:focus {
  border-color: #9dbdf7;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(47, 111, 237, .10);
}
/* 密码框右侧「小眼睛」：切换明文/密文，不重渲染 */
.pg-login .lg-pwd-wrap { position: relative; }
.pg-login .lg-pwd-wrap input { padding-right: 48px; }
.pg-login .lg-eye {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #9aa5b6;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
}
.pg-login .lg-eye:hover,
.pg-login .lg-eye.on { color: #2f6fed; }
.pg-login .lg-eye:active { background: #eef3fb; }

/* 注册：邮箱验证码「获取验证码」按钮（复用眼睛那套「绝对定位在框内」的思路） */
.pg-login .lg-code-wrap { position: relative; }
.pg-login .lg-code-wrap input { padding-right: 112px; letter-spacing: 1px; }
.pg-login .lg-code-btn {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  height: 34px;
  padding: 0 11px;
  border: 0;
  border-radius: 8px;
  background: #eef3fb;
  color: #2f6fed;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.pg-login .lg-code-btn:disabled { background: #f1f4f9; color: #9aa5b6; cursor: default; }
.pg-login .lg-code-btn:not(:disabled):active { background: #e2ebfb; }
.pg-login .lg-err {
  margin-top: 12px;
  font-size: 13px;
  color: #e5484d;
  background: #fdeded;
  border-radius: 9px;
  padding: 9px 12px;
  line-height: 1.55;
}
.pg-login .lg-submit {
  margin: 22px 28px 0;
  width: calc(100% - 56px);
  border: 0;
  cursor: pointer;
}
.pg-login .brand-min { padding-bottom: 12px; }

/* ---------- 练习页：手写答题框（简答/辨析/名词解释/选句填空/完形填空等无选项题） ---------- */
.pg-practice .manual-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 104px;
  padding: 12px 13px;
  font-size: 15px;
  line-height: 1.62;
  font-family: inherit;
  color: #1f2733;
  background: #f4f7fc;
  border: 1px solid #dde5f2;
  border-radius: 8px;
  resize: vertical;
  outline: none;
  -webkit-appearance: none;
}
.pg-practice .manual-input:focus {
  border-color: #9dbdf7;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(47, 111, 237, .10);
}
.pg-practice .ans-mine {
  margin: 3px 0 8px;
  padding: 8px 10px;
  font-size: 13.5px;
  line-height: 1.6;
  color: #47536b;
  background: #f2f5fa;
  border-radius: 7px;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ---------- 密押页：多套卷合并的「题集」角标 ---------- */
.pg-miya .set-tag {
  margin-left: 7px;
  padding: 1px 6px;
  font-size: 11px;
  color: #7a6a32;
  background: #fdf3d5;
  border: 1px solid #f2e0a8;
  border-radius: 5px;
}
.pg-papers .set-tag {
  margin-left: 6px;
  padding: 1px 6px;
  font-size: 11px;
  color: #7a6a32;
  background: #fdf3d5;
  border: 1px solid #f2e0a8;
  border-radius: 5px;
}

/* ---------- 首页公告横幅（内容由后台「网页设置」下发）----------
   注意：它是 #view 的直接子节点（不是 .pg 内），因为页面 render 是异步的，
   挂在 .pg 里会被后续的 innerHTML 覆盖。 */
#view > .notice {
  display: flex; gap: 9px; align-items: flex-start;
  margin: 10px 12px 0; padding: 11px 13px;
  background: #fff8e6; border: 1px solid #f3e2b0; border-radius: 11px;
}
#view > .notice .notice-ico {
  flex: 0 0 18px; width: 18px; height: 18px; border-radius: 50%;
  background: #e0a92b; color: #fff; font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; margin-top: 1px;
}
#view > .notice .notice-txt { flex: 1; font-size: 13px; line-height: 1.65; color: #7a6320; word-break: break-word; }

/* ---------- 「我的」页：账号绑定的邮箱 ---------- */
.pg-me .pf-mail {
  margin-top: 3px; font-size: 11.5px; color: #9aa5b6; word-break: break-all;
}

/* ---------- 「我的」页脚文字（备案号 / 版权） ---------- */.pg-me .foot-txt {
  margin-top: 20px; text-align: center;
  font-size: 11.5px; line-height: 1.7; color: #9aa5b6; word-break: break-word;
}

/* ---------- 底部 tab 预留高度 ---------- */
.has-tab { padding-bottom: 54px; }

/* ---------- 承载容器 ---------- */
#view { min-height: 60vh; }
.pg { position: relative; }

/* ==========================================================================
   留言咨询（用户端）
   ========================================================================== */

/* ---------- 首页入口卡 ---------- */
.pg-home .fb-entry {
  display: flex; align-items: center; gap: 11px;
  margin: 14px 12px 0; padding: 13px 14px;
  background: linear-gradient(135deg, #eef4ff, #f8fbff);
  border: 1px solid #dbe7fb; border-radius: var(--r-l);
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.pg-home .fb-entry:active { background: #e7efff; }
.pg-home .fb-entry-ico {
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px;
  background: #fff; box-shadow: var(--sd-1);
  display: flex; align-items: center; justify-content: center; font-size: 17px;
}
.pg-home .fb-entry-txt { flex: 1; min-width: 0; }
.pg-home .fb-entry-t { font-size: 14px; font-weight: 600; color: var(--ink); }
.pg-home .fb-entry-s { margin-top: 3px; font-size: 12px; line-height: 1.6; color: var(--ink2); }
.pg-home .fb-entry-go {
  flex: 0 0 auto; font-size: 12.5px; font-weight: 600; color: var(--brand); white-space: nowrap;
}
.pg-me .lib-card[data-act="feedback"] .lib-sub b { color: var(--bad); }

/* ---------- 留言页：说明 + 表单 ---------- */
.pg-feedback .fb-hero {
  margin: 12px 12px 0; padding: 16px 15px; text-align: center;
  background: linear-gradient(135deg, #eef4ff, #f8fbff);
  border: 1px solid #dbe7fb; border-radius: var(--r-l);
}
.pg-feedback .fb-hero-ico { font-size: 24px; line-height: 1; }
.pg-feedback .fb-hero-t { margin-top: 8px; font-size: 15.5px; font-weight: 600; color: var(--ink); }
.pg-feedback .fb-hero-s { margin-top: 6px; font-size: 12.5px; line-height: 1.7; color: var(--ink2); }

.pg-feedback .fb-form {
  margin: 12px; padding: 14px;
  background: var(--card); border-radius: var(--r-l); box-shadow: var(--sd-1);
}
.pg-feedback .fb-lab { margin: 0 0 7px; font-size: 13px; font-weight: 600; color: var(--ink); }
.pg-feedback .fb-lab:not(:first-child) { margin-top: 15px; }
.pg-feedback .fb-lab i {
  font-style: normal; font-weight: 400; font-size: 11.5px; color: var(--ink3); margin-left: 4px;
}
.pg-feedback .fb-input,
.pg-feedback .fb-area {
  width: 100%; box-sizing: border-box;
  font-family: inherit; font-size: 14px; color: var(--ink);
  background: #f6f8fc; border: 1px solid #e3e9f3; border-radius: var(--r-m);
  outline: none; -webkit-appearance: none;
}
.pg-feedback .fb-input { height: 42px; padding: 0 12px; }
.pg-feedback .fb-area { min-height: 96px; padding: 10px 12px; line-height: 1.6; resize: vertical; }
.pg-feedback .fb-input:focus,
.pg-feedback .fb-area:focus {
  border-color: #9dbdf7; background: #fff; box-shadow: 0 0 0 3px rgba(47, 111, 237, .10);
}
.pg-feedback .fb-submit {
  margin-top: 16px; width: 100%; height: 44px; border: 0; cursor: pointer;
  background: var(--brand); color: #fff; font-size: 15px; font-weight: 600;
  border-radius: var(--r-m); -webkit-tap-highlight-color: transparent;
}
.pg-feedback .fb-submit:active { background: var(--brand-d); }
.pg-feedback .fb-submit:disabled { background: #a9c3f6; cursor: default; }
.pg-feedback .fb-err {
  margin-top: 12px; padding: 9px 12px; font-size: 13px; line-height: 1.55;
  color: var(--bad); background: var(--bad-bg); border-radius: 9px;
}

/* ---------- 留言页：我的留言列表 ---------- */
.pg-feedback .fb-num { font-style: normal; font-weight: 400; font-size: 12px; color: var(--bad); }
.pg-feedback .fb-item {
  margin: 0 12px 10px; padding: 12px 13px;
  background: var(--card); border-radius: var(--r-m); box-shadow: var(--sd-1);
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.pg-feedback .fb-item:active { background: #fafcff; }
.pg-feedback .fb-item.unread { border-left: 3px solid var(--brand); }
.pg-feedback .fb-item-top { display: flex; align-items: center; gap: 7px; }
.pg-feedback .fb-item-sub {
  flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; color: var(--ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pg-feedback .fb-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--bad); }
.pg-feedback .fb-tag { flex: 0 0 auto; padding: 1.5px 6px; font-size: 11px; border-radius: 5px; }
.pg-feedback .fb-tag.wait { color: #7a6a32; background: #fdf3d5; border: 1px solid #f2e0a8; }
.pg-feedback .fb-tag.ok { color: var(--ok); background: var(--ok-bg); border: 1px solid #c8ecd8; }
.pg-feedback .fb-tag.off { color: var(--ink3); background: #f2f4f8; border: 1px solid #e4e8ef; }
.pg-feedback .fb-item-body {
  margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--ink2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pg-feedback .fb-item-body b { color: var(--brand); font-weight: 600; }
.pg-feedback .fb-item-meta { margin-top: 7px; font-size: 11.5px; color: var(--ink3); }
.pg-feedback .fb-none { margin: 16px 12px; text-align: center; font-size: 13px; color: var(--ink3); }

/* ---------- 留言页：会话详情 ---------- */
.pg-feedback .fb-head {
  margin: 12px 12px 0; padding: 13px 14px;
  background: var(--card); border-radius: var(--r-l); box-shadow: var(--sd-1);
}
.pg-feedback .fb-head-sub { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.pg-feedback .fb-head-meta { margin-top: 5px; font-size: 11.5px; color: var(--ink3); }
.pg-feedback .fb-msgs { padding: 14px 12px 0; }
.pg-feedback .fb-msg { display: flex; flex-direction: column; margin-bottom: 14px; }
.pg-feedback .fb-msg.me { align-items: flex-end; }
.pg-feedback .fb-msg.op { align-items: flex-start; }
.pg-feedback .fb-who { margin-bottom: 5px; font-size: 11.5px; color: var(--ink3); }
/* 注意：正文里的换行已由 nl2br 转成 <br>，这里**不能**再用 white-space:pre-wrap，
   否则同一个 \n 会换两次行。 */
.pg-feedback .fb-bubble {
  max-width: 82%; padding: 10px 13px; font-size: 14px; line-height: 1.65;
  border-radius: 12px; word-break: break-word;
}
.pg-feedback .fb-msg.me .fb-bubble {
  background: var(--brand); color: #fff; border-bottom-right-radius: 4px;
}
.pg-feedback .fb-msg.op .fb-bubble {
  background: var(--card); color: var(--ink); box-shadow: var(--sd-1); border-bottom-left-radius: 4px;
}
.pg-feedback .fb-time { margin-top: 5px; font-size: 11px; color: var(--ink4); }
.pg-feedback .fb-reply { margin: 4px 12px 0; }
.pg-feedback .fb-reply .fb-submit { margin-top: 10px; }
.pg-feedback .fb-closed {
  margin: 12px; padding: 11px 13px; font-size: 12.5px; color: var(--ink2);
  background: #f2f4f8; border-radius: var(--r-m); text-align: center;
}
.pg-feedback .fb-back {
  margin: 16px auto 0; width: 150px; height: 40px; line-height: 40px; text-align: center;
  border-radius: var(--r-m); background: var(--brand); color: #fff;
  font-size: 14px; font-weight: 600; cursor: pointer;
}
