/* 小孟鱼行 · UGC 互动子服务样式 —— 移动端优先 */
:root { --brand:#ff6b00; --brand2:#e85d00; --bg:#f7f4ef; --card:#fff; --txt:#333; --sub:#999; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { margin:0; font-family: system-ui,-apple-system,"Microsoft YaHei",sans-serif; background:var(--bg); color:var(--txt); }

/* ── 扫码评价页（移动端为主）── */
.scan-body { background: linear-gradient(160deg,#ff6b00 0%,#ff8c3a 45%,#fff7f0 45.5%,#f7f4ef 100%); min-height:100vh; }
.scan-head { text-align:center; color:#fff; padding:28px 16px 46px; }
.scan-logo { font-size:26px; font-weight:800; letter-spacing:2px; text-shadow:0 2px 8px rgba(0,0,0,.15); }
.scan-sub { font-size:13px; opacity:.92; margin-top:6px; }
.scan-card { background:var(--card); border-radius:16px 16px 0 0; max-width:560px; margin:0 auto; padding:20px 18px 30px; box-shadow:0 -4px 24px rgba(0,0,0,.06); }
.scan-title { font-size:19px; font-weight:700; text-align:center; }
.scan-tip { text-align:center; color:var(--sub); font-size:12.5px; margin:6px 0 18px; }
.scan-field { margin-bottom:16px; }
.scan-label { font-size:13.5px; font-weight:600; color:#666; margin-bottom:8px; }

/* 星级 */
.stars { font-size:34px; line-height:1; display:flex; gap:6px; justify-content:center; }
.star { color:#ddd; cursor:pointer; transition:transform .12s; user-select:none; }
.star.on { color:#ffb400; }
.star:active { transform:scale(1.2); }

/* 类型标签 */
.rtype-tabs { display:flex; gap:8px; }
.rtab { flex:1; text-align:center; padding:9px 0; border-radius:8px; background:#f2eee8; color:#666; font-size:14px; cursor:pointer; border:1.5px solid transparent; }
.rtab.active { background:#fff0e6; color:var(--brand); border-color:var(--brand); font-weight:600; }

/* 文本输入 */
textarea, input[type=text], input[type=password] { width:100%; border:1.5px solid #e4ddd4; border-radius:8px; padding:10px 12px; font-size:15px; font-family:inherit; background:#fffdf9; outline:none; }
textarea:focus, input:focus { border-color:var(--brand); }
.scan-count { text-align:right; font-size:12px; color:var(--sub); margin-top:4px; }

/* 图片 */
.imgs { display:flex; gap:8px; flex-wrap:wrap; }
.imgs .img-item { position:relative; width:78px; height:78px; border-radius:8px; overflow:hidden; }
.imgs .img-item img { width:100%; height:100%; object-fit:cover; }
.imgs .img-item .del { position:absolute; top:2px; right:2px; background:rgba(0,0,0,.55); color:#fff; width:18px; height:18px; border-radius:50%; line-height:18px; text-align:center; font-size:12px; cursor:pointer; }
.img-add { width:78px; height:78px; border:1.5px dashed #d9cfc2; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--sub); font-size:13px; cursor:pointer; background:#fffdf9; }

/* 提交 */
.scan-submit { display:block; width:100%; background:var(--brand); color:#fff; border:none; border-radius:10px; padding:13px 0; font-size:16px; font-weight:700; cursor:pointer; letter-spacing:2px; margin-top:8px; }
.scan-submit:active { background:var(--brand2); }
.scan-submit:disabled { opacity:.6; }
.scan-msg { text-align:center; font-size:13.5px; margin-top:12px; color:var(--brand); }
.scan-msg.err { color:#d33; }
.scan-foot { text-align:center; padding:16px; }
.scan-foot a { color:var(--brand); font-size:14px; text-decoration:none; }
.scan-foot-admin { margin-top:12px; font-size:12px; }
.scan-foot-admin a { color:#c9c2b8; text-decoration:none; }

/* ── 网站页（PC+移动自适应）── */
.web-nav { background:#fff; display:flex; align-items:center; justify-content:space-between; padding:10px 16px; box-shadow:0 1px 4px rgba(0,0,0,.06); position:sticky; top:0; z-index:50; flex-wrap:wrap; gap:6px; }
.web-brand { font-weight:800; color:var(--brand); font-size:16px; }
.web-links { display:flex; align-items:center; gap:12px; font-size:14px; }
.web-links a { color:#555; text-decoration:none; }
.web-links a.on { color:var(--brand); font-weight:700; }
.web-links .btn-review { background:var(--brand); color:#fff; padding:6px 14px; border-radius:20px; }
.web-wrap { max-width:860px; margin:0 auto; padding:18px 14px 40px; }
.web-title { font-size:22px; font-weight:800; margin:6px 0 10px; }
.web-badge { font-size:12px; background:#ffe3d2; color:var(--brand); padding:3px 10px; border-radius:12px; vertical-align:middle; }
.web-avg { color:#666; font-size:14px; margin-bottom:14px; }
.web-avg b { color:var(--brand); font-size:22px; }

/* 评价卡片 */
.review-list .empty { text-align:center; color:var(--sub); padding:40px 0; font-size:14px; }
.r-card { background:var(--card); border-radius:12px; padding:14px 16px; margin-bottom:12px; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.r-card .r-top { display:flex; align-items:center; justify-content:space-between; }
.r-stars { color:#ffb400; font-size:16px; letter-spacing:1px; }
.r-type { font-size:11.5px; padding:2px 8px; border-radius:10px; background:#fff0e6; color:var(--brand); }
.r-type.crit { background:#ffefef; color:#d33; }
.r-type.suggest { background:#eef4ff; color:#2a6bd4; }
.r-content { font-size:14.5px; line-height:1.65; margin:8px 0; word-break:break-word; }
.r-imgs { display:flex; gap:6px; flex-wrap:wrap; }
.r-imgs img { width:72px; height:72px; object-fit:cover; border-radius:8px; }
.r-meta { font-size:12px; color:var(--sub); }
.r-reply { margin-top:8px; background:#f7f3ec; border-left:3px solid var(--brand); padding:6px 10px; font-size:13px; color:#666; border-radius:0 6px 6px 0; }

/* 留言表单 */
.msg-form { background:var(--card); border-radius:12px; padding:14px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); display:flex; flex-direction:column; gap:10px; }
.msg-form h2 { margin:0; font-size:17px; }

/* 审核后台 */
.admin-stat { background:var(--card); border-radius:12px; padding:14px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,.05); display:flex; flex-wrap:wrap; gap:10px; font-size:13px; }
.admin-stat b { color:var(--brand); font-size:16px; }
.q-btns { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
.q-btn { font-size:12.5px; padding:5px 12px; border-radius:6px; border:1px solid #ddd; background:#fff; cursor:pointer; }
.q-btn.pass { color:#0a7; border-color:#0a7; }
.q-btn.hide { color:#b08; border-color:#b08; }
.q-btn.del { color:#d33; border-color:#d33; }
.q-btn.reply { color:var(--brand); border-color:var(--brand); }
.q-btn-raw { border:none; background:none; color:var(--brand); cursor:pointer; font-size:14px; }

/* 文章 */
.cat-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.ctab { font-size:13px; padding:6px 14px; border-radius:16px; background:#fff; border:1px solid #e4ddd4; color:#666; cursor:pointer; }
.ctab.on { background:var(--brand); color:#fff; border-color:var(--brand); font-weight:600; }
.art-card .art-title { display:block; font-size:16px; font-weight:700; color:#333; text-decoration:none; margin:6px 0; line-height:1.45; }
.art-card .art-title:hover { color:var(--brand); }
.art-h1 { font-size:22px; line-height:1.4; margin:6px 0 8px; }
.art-meta { margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.art-body { font-size:15px; line-height:1.9; color:#3a3a3a; background:#fff; border-radius:12px; padding:18px 16px; box-shadow:0 1px 4px rgba(0,0,0,.05); word-break:break-word; }
.art-nav { display:flex; justify-content:space-between; gap:10px; margin:16px 0; font-size:14px; }
.art-nav a { color:var(--brand); text-decoration:none; max-width:46%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.art-cta { margin-top:18px; background:#fff0e6; border:1px dashed var(--brand); border-radius:10px; padding:12px 14px; font-size:14px; color:#8a5a30; text-align:center; }
.art-cta a { color:var(--brand); text-decoration:none; }

/* 后台页签 */
.admin-tabs { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.atab { font-size:14px; padding:8px 16px; border-radius:8px; background:#fff; border:1.5px solid #e4ddd4; color:#666; cursor:pointer; }
.atab.on { background:var(--brand); color:#fff; border-color:var(--brand); font-weight:700; }
.atab b { font-size:12px; opacity:.9; }
.apanel select { padding:10px; border:1.5px solid #e4ddd4; border-radius:8px; font-size:14px; background:#fffdf9; }

/* 页脚 */
.web-foot { text-align:center; color:var(--sub); font-size:12px; padding:20px 12px 26px; }

/* PC 端加宽 */
@media (min-width:900px) {
  .scan-card { border-radius:16px; margin:0 auto 30px; box-shadow:0 4px 24px rgba(0,0,0,.08); }
  .scan-body { background:linear-gradient(160deg,#ff6b00 0%,#ff8c3a 50%,#f7f4ef 50.5%); }
  .web-wrap { padding-top:26px; }
  .r-card { padding:16px 20px; }
}
