/* 侧栏保留纯文字卡片；不使用功能图标。 */
aside button{display:block;border:1px solid transparent;border-radius:11px;padding:11px 14px;margin:6px 0}aside button i{display:none}aside button.active,aside button:hover{border-color:#c9e0fa}
/* 使用纯图形源文件完整展示，不再以坐标裁剪。 */
aside{width:286px;flex-basis:286px}.brand{height:58px;gap:7px;margin-left:2px}.brand-logo{display:block;width:52px;height:52px;flex:0 0 52px;background:#fff url("assets/platform-logo.png") center/contain no-repeat;border-radius:12px;box-shadow:0 4px 11px #e8763540}.brand-copy{display:block;min-width:0;overflow:visible;white-space:nowrap;font-size:17px;letter-spacing:.2px}.brand-logo img{display:none}
@media(max-width:760px){aside{width:100%;flex-basis:auto}.brand-logo{width:34px;height:34px;flex-basis:34px;background-size:contain;border-radius:8px}.brand-copy{display:none}}

/* 运营大屏：压缩纵向留白，使排行榜下方的审核待办可在常见桌面分辨率内完整显示。 */
@media(min-width:901px){
  article{padding:12px 22px 18px}
  article>header{margin-bottom:10px}
  .dashboard-hero{gap:20px;padding:20px 26px;border-radius:17px}
  .dashboard-hero h2{margin:3px 0 5px;font-size:23px}
  .dashboard-hero-side{min-width:166px;gap:3px;padding-left:15px}
  .dashboard-hero-side button{margin-top:5px;padding:6px 10px}
  .dashboard-metrics{gap:13px;margin:12px 0}
  .dashboard-metrics section{min-height:112px;padding:15px 17px;border-radius:13px}
  .dashboard-metrics section:after{right:-20px;bottom:-32px;width:92px;height:92px;border-width:15px}
  .dashboard-metrics p{margin-top:9px}
  .dashboard-metrics b{font-size:25px}
  .metric-icon{width:27px;height:27px;font-size:17px}
  .dashboard-layout{gap:12px}
  .dashboard-panel{min-height:205px;padding:15px 18px;border-radius:13px}
  .dashboard-panel header{margin-bottom:12px}
  .dashboard-panel h3{font-size:16px}
  .rank-list{gap:8px}
  .rank-row{grid-template-columns:23px minmax(65px,1fr) minmax(65px,1.6fr) 30px;gap:7px}
  .queue-grid button{min-height:82px}
  .queue-grid b{font-size:23px}
  .platform-grid div{padding:10px}
  .dashboard-tip{margin-top:10px;line-height:1.5}
}

/* 审核帖子采用扁平紧凑卡片：封面只作缩略图展示，完整内容统一在详情中查看。 */
#content .approval-post-card{
  min-height:134px;
  height:134px;
  border-radius:11px;
  border-color:#dce8f1;
  box-shadow:none;
}
#content .approval-post-card .review-image{
  flex:0 0 87px;
  min-height:134px;
  background:#f0f7fb;
}
#content .approval-post-card .review-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
#content .approval-post-card .ride-symbol{
  width:38px;
  height:38px;
  border-radius:10px;
  font-size:17px;
}
#content .approval-post-card .review-main{padding:10px 12px;overflow:hidden}
#content .approval-post-card .review-head h2{max-width:none;margin:2px 0 0;font-size:15px;line-height:1.25}
#content .approval-post-card .review-label,#content .approval-post-card .review-state{font-size:11px}
#content .approval-post-card .review-meta{flex-wrap:nowrap;gap:4px;margin:5px 0;overflow:hidden;white-space:nowrap}
#content .approval-post-card .review-meta span{max-width:145px;overflow:hidden;padding:3px 5px;font-size:11px;text-overflow:ellipsis}
#content .approval-post-card .review-copy{display:none}
#content .approval-post-card .approval-list-details{display:none}
#content .approval-post-card .review-actions{justify-content:flex-start;margin-top:0;padding-top:5px}
#content .approval-post-card .review-actions button{padding:4px 8px;font-size:11px;line-height:1.3}
#content .approval-post-card .content-audit-meta{display:none}
@media(max-width:760px){
  #content .approval-post-card{height:129px;min-height:129px;flex-direction:row;align-items:stretch}
  #content .approval-post-card .review-image{flex-basis:78px;min-height:129px}
}

/* 审核页列表模式：移除封面，仅保留帖子基础信息与操作。 */
#content.approval-list-mode .review-grid{grid-template-columns:1fr;gap:6px}
#content.approval-list-mode .approval-list-header{
  position:sticky;
  top:8px;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(180px,1.15fr) minmax(260px,1.35fr) minmax(340px,2fr) minmax(330px,auto);
  gap:10px;
  margin:0 0 6px;
  padding:9px 12px;
  border:1px solid #cfe4f1;
  border-radius:8px;
  background:#eef8ff;
  box-shadow:0 4px 12px #2b6e9612;
  color:#3d7194;
  font-size:11px;
  font-weight:700;
}
#content.approval-list-mode .approval-post-card{height:auto;min-height:118px;border-radius:8px}
#content.approval-list-mode .approval-post-card .review-image{display:none}
#content.approval-list-mode .approval-post-card .review-main{
  display:grid;
  grid-template-columns:minmax(180px,1.15fr) minmax(260px,1.35fr) minmax(340px,2fr) minmax(330px,auto);
  align-items:start;
  gap:10px;
  padding:10px 12px;
}
#content.approval-list-mode .approval-post-card .review-head{min-width:0}
#content.approval-list-mode .approval-post-card .review-head h2{max-width:240px;font-size:13px}
#content.approval-list-mode .approval-post-card .review-meta{display:none}
#content.approval-list-mode .approval-post-card .approval-list-details{display:contents}
#content.approval-list-mode .approval-post-card .approval-list-facts{display:flex;flex-wrap:wrap;gap:4px 6px;align-content:start}
#content.approval-list-mode .approval-post-card .approval-list-facts span{padding:2px 5px;border-radius:4px;background:#f3f8fb;color:#597388;font-size:10px;line-height:1.35}
#content.approval-list-mode .approval-post-card .approval-list-details p{grid-column:3;margin:0;color:#597388;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
#content.approval-list-mode .approval-post-card .review-actions{grid-column:4;grid-row:1;justify-content:flex-end;padding:0}
#content.approval-list-mode .approval-post-card .review-actions button{padding:4px 7px;font-size:10px}
@media(max-width:900px){
  #content.approval-list-mode .approval-list-header{display:none}
  #content.approval-list-mode .approval-post-card{min-height:112px}
  #content.approval-list-mode .approval-post-card .review-main{grid-template-columns:minmax(150px,1fr) minmax(240px,auto);gap:7px}
  #content.approval-list-mode .approval-post-card .approval-list-facts{grid-column:1;grid-row:2}
  #content.approval-list-mode .approval-post-card .approval-list-details p{grid-column:1;grid-row:3}
  #content.approval-list-mode .approval-post-card .review-actions{grid-column:2;grid-row:1 / span 3}
}

/* Excel 风格审核列表：列宽可由表头右侧拖动条调整。 */
#content.approval-list-mode .review-grid,
#content.approval-list-mode .approval-post-card{display:none!important}
#content.approval-list-mode .approval-list-table-wrap{
  display:block;
  width:100%;
  min-width:0;
  max-height:calc(100vh - 240px);
  overflow:auto;
  border:1px solid #d8e8f2;
  border-radius:10px;
  background:#fff;
}
.approval-list-table{width:max-content;min-width:1750px;border-collapse:separate;border-spacing:0;table-layout:fixed;color:#456176;font-size:12px}
.approval-list-table th,.approval-list-table td{box-sizing:border-box;border-right:1px solid #e6f0f6;border-bottom:1px solid #e6f0f6;padding:9px 10px;text-align:left;vertical-align:middle}
.approval-list-table th{position:sticky;top:0;z-index:2;overflow:visible;background:#eff8ff;color:#386d90;font-size:12px;font-weight:700;white-space:nowrap}
.approval-list-table th:last-child,.approval-list-table td:last-child{border-right:0}
.approval-list-table tbody tr:hover td{background:#f7fbfe}
.approval-list-table td{overflow:hidden;max-width:0;text-overflow:ellipsis;white-space:nowrap}
.approval-list-table .approval-title-cell{color:#245779;font-weight:700}
.approval-list-table .approval-status-cell{font-weight:700;color:#3180ae}
.approval-list-table .approval-table-actions{overflow:visible;white-space:nowrap}
.approval-table-actions button{margin:2px 3px 2px 0;padding:4px 7px;border:1px solid #cde1ef;border-radius:5px;background:#fff;color:#35617e;font:11px "Microsoft YaHei";cursor:pointer}
.approval-table-actions .pass{border-color:#1889ce;background:#1889ce;color:#fff}.approval-table-actions .reject{border-color:#f3caca;background:#fff7f7;color:#c35151}.approval-table-actions .blacklist{border-color:#f0c2c2;background:#fff5f5;color:#b84c4c}
.approval-table-empty{padding:38px!important;color:#7891a3;text-align:center!important}
.approval-col-resizer{position:absolute;top:0;right:-3px;z-index:4;width:7px;height:100%;cursor:col-resize}
.approval-col-resizer:hover,.approval-col-resizer:active{background:#78bde5}
@media(max-width:900px){#content.approval-list-mode .approval-list-table-wrap{max-height:calc(100vh - 210px)}.approval-list-table{min-width:1750px}}

/* 桌面端采用左右独立滚动区：菜单始终停留在视口内，悬停菜单时可单独浏览全部入口。 */
@media(min-width:761px){
  html,body,#app{height:100%;overflow:hidden}
  #admin{height:100vh;min-height:0;align-items:stretch;overflow:hidden}
  #admin>aside{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
  #admin>article{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
}

/* 审核待办角标固定在左侧栏目右上方，0 项时由脚本直接移除。 */
aside button[data-view]{position:relative}
aside button .sidebar-pending-badge{position:absolute;top:5px;right:7px;display:grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border:2px solid #f8fbff;border-radius:999px;background:#ef5959;color:#fff;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;box-shadow:0 2px 6px #d54a4a45}

/* 社区贴吧审核卡片从内容区左缘开始排列，不再单卡居中。 */
#content.forum-review-page>.card{width:100%!important;margin:13px 0!important}
#content.forum-review-page>.forum-post-review-grid{display:flex!important;width:100%!important;padding:0!important;gap:12px!important;flex-wrap:wrap!important;align-content:flex-start;justify-content:flex-start!important;margin:14px 0 0!important}
/* tile 使用 article 标签，必须覆盖全局 article 的 22px 28px 内边距，否则卡片会被向右推。 */
#content.forum-review-page>.forum-post-review-grid>.forum-post-review-tile{box-sizing:border-box!important;width:280px!important;height:auto!important;min-width:0!important;flex:0 0 280px!important;margin:0!important;padding:0!important;overflow:visible!important}
@media(max-width:760px){#content.forum-review-page>.forum-post-review-grid>.forum-post-review-tile{width:100%!important;flex-basis:100%!important}}

/* 贴吧审核卡片头部：标题、中文审核状态和发布人均在同一行。 */
#content.forum-review-page .approval-post-card .forum-approval-header{display:flex;align-items:center;gap:6px;min-width:0}
#content.forum-review-page .approval-post-card .forum-approval-header h2{flex:1;min-width:0;margin:0;color:#214966;font-size:14px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#content.forum-review-page .approval-post-card .forum-approval-status{flex:0 0 auto;padding:3px 6px;border-radius:6px;background:#fff4de;color:#b87618;font-size:10px;line-height:1.2;white-space:nowrap}
#content.forum-review-page .approval-post-card .forum-approval-status.published{background:#e8f9ef;color:#16834b}
#content.forum-review-page .approval-post-card .forum-approval-status.rejected{background:#fff0f0;color:#c45151}
#content.forum-review-page .approval-post-card .forum-approval-author{flex:0 1 auto;min-width:0;max-width:90px;overflow:hidden;color:#66839a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}

.dashboard-range-filter{display:flex;align-items:center;gap:8px;margin:16px 0 0;padding:10px 14px;border:1px solid #d9eaf6;border-radius:12px;background:#fff;box-shadow:0 5px 14px #1138580a}.dashboard-range-filter>span{margin-right:4px;color:#66829a;font-size:13px;font-weight:700}.dashboard-range-filter button{border:1px solid #cfe4f3;border-radius:999px;background:#f7fbfe;color:#54758d;padding:5px 12px;font:inherit;font-size:12px;cursor:pointer}.dashboard-range-filter button:hover,.dashboard-range-filter button.active{border-color:#1d91d2;background:#eaf7ff;color:#1376b1;font-weight:700}.queue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.queue-grid button{min-height:82px}.dashboard-review-previews{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid #e6f0f7}.dashboard-review-previews>p{margin:0 0 2px;color:#66829a;font-size:12px;font-weight:700}.dashboard-review-previews button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;border:0;border-radius:8px;background:#f7fbfe;padding:7px 8px;text-align:left;cursor:pointer}.dashboard-review-previews button:hover{background:#eaf7ff}.dashboard-review-previews b{border-radius:5px;background:#e6f4ff;color:#207bb5;padding:2px 5px;font-size:11px;font-weight:700}.dashboard-review-previews span{overflow:hidden;color:#385e78;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dashboard-review-previews small{color:#90a2b1;font-size:10px;white-space:nowrap}@media(max-width:900px){.queue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.dashboard-range-filter{flex-wrap:wrap}.queue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-review-previews button{grid-template-columns:auto minmax(0,1fr)}.dashboard-review-previews small{grid-column:2}}
