/* ============ 设计变量 & Reset ============ */
:root{
  --pri:#6d4aff; --pri-deep:#5a36f0;
  --seal-red:#e0382d; --seal-green:#1fa561;
  --red:#e5484d;
  --tag-blue:#0b6bcb; --tag-bg:#eaf3fd;
  --text:#1d1c21; --text2:#575460; --text3:#9d9aa7;
  --bg:#f6f6f8; --card:#fff; --border:#eaeaea; --bg2:#f1f1f4;
  --r:12px;
  --serif:Georgia,"Noto Serif SC","Songti SC","SimSun",serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;background:var(--bg);color:var(--text);font-size:15px;padding-bottom:90px}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit;outline:none}
ul,ol{list-style:none}

/* ============ 通用组件 ============ */
.icon{width:18px;height:18px;fill:currentColor;flex:none;vertical-align:-3px}
.icon.sm{width:14px;height:14px;vertical-align:-2px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 20px;border-radius:9px;font-size:14px;font-weight:600;transition:.15s}
.btn-pri{background:var(--pri);color:#fff}
.btn-pri:hover{background:var(--pri-deep)}
.btn-dark{background:var(--text);color:#fff}
.btn-dark:hover{opacity:.88}
.btn-ghost{background:var(--card);color:var(--text2);border:1px solid var(--border)}
.btn-ghost:hover{color:var(--text);border-color:#d5d3da}
.btn-danger{background:var(--red);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* 头像（随机色，可替换上传图） */
.avatar{border-radius:50%;background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;flex:none;user-select:none;overflow:hidden;border:2px solid var(--border)}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.s32{width:32px;height:32px;font-size:13px}
.avatar.s22{width:22px;height:22px;font-size:10.5px}
.avatar.s48{width:48px;height:48px;font-size:19px}
.avatar.s72{width:72px;height:72px;font-size:28px}

/* 标签（蓝色系） */
.tag{display:inline-block;font-size:12px;padding:3px 10px;border-radius:6px;background:var(--tag-bg);color:var(--tag-blue);transition:.15s;cursor:pointer}
.tag:hover{background:#ddebfa;color:#095bb0}

/* 印章圆章分数 */
.seal-score{position:relative;width:96px;height:96px;border-radius:50%;border:2px solid;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;opacity:.9;flex:none}
.seal-score::before{content:"";position:absolute;inset:5px;border:1px dashed;border-radius:50%;opacity:.6}
.seal-score b{font-size:26px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.seal-score em{font-style:normal;font-size:9.5px;letter-spacing:1px;margin-top:3px}
.seal-score small{font-size:8px;letter-spacing:.5px;color:var(--text3)}
.seal-score.ai{color:var(--seal-red);border-color:var(--seal-red)}
.seal-score.human{color:var(--seal-green);border-color:var(--seal-green)}

/* 星星（展示） */
.starbar{display:inline-flex;gap:2px}
.starbar .st{width:14px;height:14px;fill:#d9d7de}
.starbar .st.on{fill:var(--text)}

/* 星星（交互） */
.stars{display:inline-flex;gap:2px}
.stars .star{width:24px;height:24px;fill:#d9d7de;cursor:pointer;transition:fill .1s,transform .1s}
.stars .star:hover{transform:scale(1.2)}
.stars .star.on{fill:var(--text)}

/* 表单 */
.field{margin-bottom:16px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:7px}
.field label .req{color:var(--red);margin-left:2px}
.field input[type=text],.field input[type=password],.field textarea,.field select{
  width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:var(--card);
  font-size:14px;transition:.15s;color:var(--text)
}
.field textarea{resize:vertical;min-height:110px;line-height:1.7}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--text3)}
.field .hint{font-size:12px;color:var(--text3);margin-top:5px}
.field .cnt{font-size:12px;color:var(--text3);text-align:right;margin-top:4px}
.field .cnt.over{color:var(--red)}

/* 空 / 加载 */
.empty{text-align:center;padding:60px 20px;color:var(--text3)}
.empty b{display:block;font-size:16px;color:var(--text2);margin-bottom:6px}
.empty p{font-size:13px}
.load-more{display:block;text-align:center;padding:13px;font-size:13.5px;color:var(--text2);background:var(--card);border:1px solid var(--border);border-radius:var(--r);transition:.15s;cursor:pointer;width:100%}
.load-more:hover{color:var(--text);background:#fafafb}

/* Toast */
#toast-box{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:var(--text);color:#fff;padding:11px 22px;border-radius:9px;font-size:13.5px;box-shadow:0 8px 24px rgba(0,0,0,.18);animation:fadein .25s ease-out}
.toast.err{background:var(--red)}
/* 类别高亮：页面浅底用语义色，toast 深底用提亮色 */
.c-ai{color:var(--seal-red);font-weight:700}
.c-human{color:var(--seal-green);font-weight:700}
.toast .c-ai{color:#ff8a78}
.toast .c-human{color:#6fe0a0}
@keyframes fadein{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* 弹窗 */
.mask{position:fixed;inset:0;background:rgba(20,19,24,.45);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}
.mask .modal{background:var(--card);border-radius:14px;max-width:480px;width:100%;padding:24px;animation:fadein .2s ease-out}

/* 分数分解小表 */
.score-cells{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;font-size:11px;background:#fff}
.score-cells .cell{padding:6px 13px;text-align:center;border-left:1px solid var(--border)}
.score-cells .cell:first-child{border-left:none}
.score-cells .cell b{display:block;font-size:16px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.score-cells .cell span{color:var(--text3)}
