/* ══════════════════════════════════════════════════════
   EO 大厅共用硬边皮肤 · 拒 AI 模板
   黑线 / 0 圆角 / 书脊告示 / 无软阴影药丸紫渐变
   ══════════════════════════════════════════════════════ */
:root{
  --eh-red:#c41212;
  --eh-gold:#b8860b;
  --eh-ink:#1f5f7a;
  --eh-ok:#16803c;
  --eh-paper:#f3f1ec;
  --eh-panel:#fffcf6;
  --eh-serif:"Noto Serif SC","Songti SC",serif;
  --eh-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}

body.eo-hall{
  background:
    linear-gradient(180deg,#ebe7df 0%,var(--eh-paper) 140px,#f0eeea 100%) !important;
  color:#111;
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}

/* ── 告示板 ── */
.eo-hall .panel-slot--lobby,
.eo-hall .eh-slot{
  background:transparent !important;
  border-bottom:0 !important;
  padding:0 var(--gx,20px) 14px !important;
}
.eo-hall .eh-board,
.eo-hall .hub-panel.eh-board{
  display:grid !important;
  grid-template-columns:minmax(150px,.9fr) minmax(0,2.5fr) !important;
  gap:0 !important;
  margin:0 0 4px !important;
  padding:0 !important;
  border:1px solid #111 !important;
  border-radius:0 !important;
  box-shadow:3px 3px 0 #111 !important;
  background:#fff !important;
  overflow:hidden;
  align-items:stretch;
}
.eo-hall .eh-rail{
  display:flex;flex-direction:column;justify-content:center;gap:8px;
  padding:16px 16px 16px 18px;
  border-right:1px solid #111;
  background:#111;color:#fff;
  position:relative;
}
.eo-hall .eh-rail::after{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--eh-accent,var(--eh-red));
}
.eo-hall .eh-eyebrow{
  font-family:var(--eh-mono);
  font-size:10px;font-weight:700;
  letter-spacing:.16em;
  color:var(--eh-accent,var(--eh-red));
}
.eo-hall .eh-title{
  margin:0;
  font-family:var(--eh-serif);
  font-size:22px;font-weight:700;line-height:1.15;color:#fff;
}
.eo-hall .eh-rail-text{
  margin:0;font-size:12px;line-height:1.55;
  color:rgba(255,255,255,.68);max-width:22ch;
}
.eo-hall .eh-main{display:flex;flex-direction:column;min-width:0;min-height:100%;background:#fff}
.eo-hall .eh-cells{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  flex:1;border-bottom:1px solid #111;
  background:var(--eh-panel);
}
.eo-hall .eh-cell{
  padding:14px 14px 12px;
  border-right:1px solid #111;
  display:flex;flex-direction:column;gap:4px;min-width:0;
}
.eo-hall .eh-cell:last-child{border-right:0}
.eo-hall .eh-n{
  font-family:var(--eh-mono);font-size:11px;font-weight:700;
  letter-spacing:.1em;color:var(--eh-red);
}
.eo-hall .eh-cell strong{
  font-family:var(--eh-serif);font-size:16px;font-weight:700;color:#111;
}
.eo-hall .eh-cell p{
  margin:0 0 8px;font-size:12px;line-height:1.45;color:rgba(0,0,0,.55);flex:1;
}
.eo-hall .eh-act{
  align-self:flex-start;margin-top:auto;
  border:1px solid #111;border-radius:0;background:#fff;color:#111;
  font-family:var(--eh-mono);font-size:11px;font-weight:700;
  padding:6px 10px;cursor:pointer;
}
.eo-hall .eh-act:hover{background:#111;color:#fff}
.eo-hall .eh-cell.is-stat{background:#fff;justify-content:center;gap:2px}
.eo-hall .eh-stat-k{
  font-family:var(--eh-mono);font-size:10px;letter-spacing:.1em;
  color:rgba(0,0,0,.42);text-transform:uppercase;
}
.eo-hall .eh-stat-v{
  font-family:var(--eh-serif);font-size:28px;font-weight:700;
  color:var(--eh-ink);line-height:1.1;
}
.eo-hall .eh-stat-s{font-family:var(--eh-mono);font-size:11px;color:rgba(0,0,0,.5)}
.eo-hall .eh-footline{
  margin:0;padding:8px 14px;
  font-family:var(--eh-mono);font-size:11px;
  color:rgba(0,0,0,.48);background:var(--eh-panel);
}

/* ── 列表头 / 按钮 ── */
.eo-hall .section-eyebrow,
.eo-hall .block-kicker,
.eo-hall .memorial-mast-kicker{
  font-family:var(--eh-mono) !important;
  font-size:10px !important;letter-spacing:.14em !important;
  color:var(--eh-accent,var(--eh-red)) !important;
  text-transform:uppercase;
}
.eo-hall .block-title,
.eo-hall .block-title .zh,
.eo-hall .block-title .accent,
.eo-hall .memorial-mast-title{
  font-family:var(--eh-serif) !important;
  font-weight:700 !important;color:#111 !important;
}
.eo-hall .block-title .accent{color:var(--eh-ink) !important}
.eo-hall .dutyp-desc,
.eo-hall .memorial-mast-lead{
  font-size:13px !important;color:rgba(0,0,0,.55) !important;
}
.eo-hall .create-btn,
.eo-hall .btn.primary,
.eo-hall .btn.ghost,
.eo-hall .btn.sm{
  border:1px solid #111 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  font-family:var(--eh-mono) !important;
  font-weight:700 !important;
}
.eo-hall .create-btn,
.eo-hall .btn.primary{
  background:var(--eh-red) !important;color:#fff !important;
  box-shadow:3px 3px 0 #111 !important;
}
.eo-hall .btn.ghost{background:#fff !important;color:#111 !important}

/* ── 通用硬边卡 ── */
.eo-hall .chufa-card,
.eo-hall .member-card,
.eo-hall .dangan-card,
.eo-hall .character-card,
.eo-hall .quest-card,
.eo-hall .msg-card,
.eo-hall .msg-form-card,
.eo-hall .ios-card,
.eo-hall .ios-skeleton-card,
.eo-hall .ios-highlight-card,
.eo-hall .ios-rank-card{
  border:1px solid #111 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#fff !important;
  transition:none !important;
  transform:none !important;
}
.eo-hall .chufa-card:hover,
.eo-hall .member-card:hover,
.eo-hall .dangan-card:hover,
.eo-hall .quest-card:hover,
.eo-hall .msg-card:hover,
.eo-hall .ios-card:hover{
  transform:none !important;
  box-shadow:3px 3px 0 #111 !important;
  border-color:#111 !important;
}

/* 拒药丸 */
.eo-hall .cc-type,
.eo-hall .pc-meta span,
.eo-hall .snap-age-badge,
.eo-hall .pc-title,
.eo-hall .ios-source-badge,
.eo-hall .vip-badge,
.eo-hall .dp-status{
  border-radius:0 !important;
  border:1px solid #111 !important;
  background:var(--eh-panel) !important;
  font-family:var(--eh-mono) !important;
  font-size:10px !important;
  letter-spacing:.04em;
  padding:2px 6px !important;
  box-shadow:none !important;
}

/* 头像圆形 */
.eo-hall .cc-avatar,
.eo-hall .pc-avatar,
.eo-hall .snap-avatar,
.eo-hall .pc-avatar img,
.eo-hall .snap-avatar img,
.eo-hall .cc-avatar img{
  border-radius:50% !important;
  border:1px solid #111 !important;
  object-fit:cover;
}

/* 隐藏旧 kit 软横幅若仍残留 */
.eo-hall .kit-banner,
.eo-hall .kit-board,
.eo-hall .kit-card{display:none !important}

/* ══════════════════════════════════════════════════════
   详情档案 dossier · 硬边票证（覆盖各模块软圆角）
   ══════════════════════════════════════════════════════ */
.eo-hall .dp-section{
  padding:16px var(--gx,20px) 40px !important;
  background:transparent !important;
}
.eo-hall .dp-crumbs{
  font-family:var(--eh-mono) !important;
  font-size:11px !important;
  margin:0 0 10px !important;
}
.eo-hall .dp-crumbs a{color:rgba(0,0,0,.5) !important;text-decoration:none !important}
.eo-hall .dp-crumbs a:hover{color:#111 !important}
.eo-hall .dp-back{
  display:inline-flex !important;align-items:center;gap:6px;
  font-family:var(--eh-mono) !important;font-size:12px !important;font-weight:700;
  color:#111 !important;text-decoration:none !important;
  border:1px solid #111 !important;border-radius:0 !important;
  background:#fff !important;padding:6px 10px !important;
  margin:0 0 14px !important;box-shadow:none !important;
}
.eo-hall .dp-back:hover{background:#111 !important;color:#fff !important}
.eo-hall .dp-wrapper{
  display:grid !important;
  grid-template-columns:minmax(0,1.4fr) minmax(240px,.85fr) !important;
  gap:14px !important;
  align-items:start !important;
}
.eo-hall .dp-dossier,
.eo-hall .dp-comments,
.eo-hall .dp-sidebar,
.eo-hall .gallery-card{
  border:1px solid #111 !important;
  border-radius:0 !important;
  box-shadow:3px 3px 0 #111 !important;
  background:#fff !important;
  overflow:hidden !important;
  position:relative;
}
.eo-hall .dp-dossier::before,
.eo-hall article.dp-dossier::before{
  content:"" !important;
  position:absolute !important;left:0 !important;top:0 !important;bottom:0 !important;
  width:5px !important;
  background:var(--eh-accent,var(--eh-red)) !important;
  border:0 !important;border-radius:0 !important;
  box-shadow:none !important;opacity:1 !important;
}
.eo-hall .dp-hero{
  display:flex !important;gap:18px !important;align-items:center !important;
  padding:18px 18px 16px 22px !important;
  border-bottom:1px solid #111 !important;
  background:var(--eh-panel) !important;
  border-radius:0 !important;
}
.eo-hall .dp-avatar{
  width:88px !important;height:88px !important;
  border:1px solid #111 !important;
  border-radius:50% !important;
  overflow:hidden !important;
  flex-shrink:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  cursor:pointer;
}
.eo-hall .dp-avatar img,
.eo-hall .dp-avatar-placeholder{
  width:100% !important;height:100% !important;
  object-fit:cover !important;display:flex !important;
  align-items:center;justify-content:center;
  border-radius:50% !important;
  font-family:var(--eh-serif);font-size:28px;font-weight:700;background:var(--eh-panel);
}
.eo-hall .dp-kicker{
  font-family:var(--eh-mono) !important;
  font-size:10px !important;font-weight:700 !important;
  letter-spacing:.14em !important;
  color:var(--eh-accent,var(--eh-red)) !important;
  text-transform:uppercase !important;
  margin:0 0 6px !important;
}
.eo-hall .dp-name{
  margin:0 !important;
  font-family:var(--eh-serif) !important;
  font-size:clamp(22px,2.4vw,28px) !important;
  font-weight:700 !important;line-height:1.2 !important;color:#111 !important;
}
.eo-hall .dp-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.eo-hall .dp-status,
.eo-hall .dp-type,
.eo-hall .dp-title,
.eo-hall .dp-chips li{
  border:1px solid #111 !important;
  border-radius:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  font-family:var(--eh-mono) !important;
  font-size:11px !important;
  padding:3px 8px !important;
  color:#111 !important;
}
.eo-hall .dp-status.is-active{
  background:var(--eh-red) !important;color:#fff !important;border-color:#111 !important;
}
.eo-hall .dp-status.is-cleared{
  background:var(--eh-ok) !important;color:#fff !important;border-color:#111 !important;
}
.eo-hall .dp-chips{
  list-style:none !important;margin:10px 0 0 !important;padding:0 !important;
  display:flex;flex-wrap:wrap;gap:6px !important;
}
.eo-hall .dp-chips i{color:rgba(0,0,0,.4) !important}
.eo-hall .dp-dates{
  font-family:var(--eh-mono) !important;font-size:12px !important;
  color:rgba(0,0,0,.55) !important;margin:6px 0 0 !important;
}
.eo-hall .dp-body{padding:16px 18px 18px 22px !important}
.eo-hall .dp-block-title{
  font-family:var(--eh-mono) !important;
  font-size:10px !important;font-weight:700 !important;
  letter-spacing:.14em !important;text-transform:uppercase !important;
  color:var(--eh-accent,var(--eh-red)) !important;
  border-bottom:1px solid #111 !important;
  padding:0 0 8px !important;margin:0 0 12px !important;
}
.eo-hall .dp-reason,
.eo-hall .dp-intro,
.eo-hall .dp-desc{
  font-size:14px !important;line-height:1.7 !important;color:rgba(0,0,0,.78) !important;
  border:0 !important;background:transparent !important;border-radius:0 !important;
  box-shadow:none !important;padding:0 !important;
}
.eo-hall .dp-intro.is-empty,
.eo-hall .dp-desc.is-empty{
  font-family:var(--eh-mono) !important;font-size:12px !important;
  color:rgba(0,0,0,.4) !important;font-style:normal !important;
}
.eo-hall .dp-comments-header,
.eo-hall .dp-sidebar-header,
.eo-hall .gallery-header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:12px 14px !important;
  border-bottom:1px solid #111 !important;
  background:#111 !important;color:#fff !important;
  border-radius:0 !important;
}
.eo-hall .dp-comments-header h3,
.eo-hall .dp-sidebar-header h3,
.eo-hall .gallery-header h3{
  margin:0 !important;
  font-family:var(--eh-serif) !important;font-size:15px !important;font-weight:700 !important;
  color:#fff !important;
}
.eo-hall .dp-comments-header .count,
.eo-hall .dp-sidebar-header .count{
  font-family:var(--eh-mono) !important;font-size:11px !important;color:rgba(255,255,255,.65) !important;
}
.eo-hall .dp-comments-body,
.eo-hall .dp-sidebar-body{padding:14px !important}
.eo-hall .dp-comment-form textarea,
.eo-hall .dp-msg-form textarea,
.eo-hall .comments-full-panel textarea{
  border:1px solid #111 !important;border-radius:0 !important;
  box-shadow:none !important;background:#fff !important;
  font-size:14px !important;
}
.eo-hall .dp-comment-form textarea:focus,
.eo-hall .dp-msg-form textarea:focus{
  outline:none !important;box-shadow:2px 2px 0 #111 !important;
}
.eo-hall .dp-comment-login{
  font-family:var(--eh-mono) !important;font-size:12px !important;
  color:rgba(0,0,0,.45) !important;padding:8px 0 !important;
}
.eo-hall .gallery-upload-btn{
  border:1px solid #fff !important;border-radius:0 !important;
  background:transparent !important;color:#fff !important;
  font-family:var(--eh-mono) !important;font-size:11px !important;
  padding:4px 8px !important;
}
.eo-hall .comments-full-overlay .comments-full-panel,
.eo-hall .full-overlay .full-panel,
.eo-hall .img-zoom-overlay{
  border-radius:0 !important;
}
.eo-hall .comments-full-panel,
.eo-hall .full-panel{
  border:1px solid #111 !important;
  box-shadow:8px 8px 0 #111 !important;
  border-radius:0 !important;background:#fff !important;
}
.eo-hall .comments-full-header,
.eo-hall .full-header{
  border-bottom:1px solid #111 !important;
  background:var(--eh-panel) !important;
}
@media (max-width:900px){
  .eo-hall .dp-wrapper{grid-template-columns:1fr !important}
}
/* 档案详情 · 手机端（不影响 PC） */
@media (max-width:720px){
  .eo-hall .dp-section{
    padding:12px var(--gx,16px) 28px !important;
  }
  .eo-hall .dp-back{
    width:100%;
    box-sizing:border-box;
    justify-content:center;
    padding:9px 10px !important;
    margin:0 0 12px !important;
  }
  .eo-hall .dp-dossier,
  .eo-hall .dp-comments,
  .eo-hall .dp-sidebar,
  .eo-hall .gallery-card{
    box-shadow:2px 2px 0 #111 !important;
  }
  .eo-hall .dp-dossier::before,
  .eo-hall article.dp-dossier::before{
    width:5px !important;
  }
  .eo-hall .dp-hero{
    flex-direction:row !important;
    align-items:flex-start !important;
    text-align:left !important;
    gap:12px !important;
    padding:14px 12px 12px 16px !important;
  }
  .eo-hall .dp-avatar{
    width:72px !important;
    height:72px !important;
  }
  .eo-hall .dp-name{
    font-size:20px !important;
  }
  .eo-hall .dp-chips,
  .eo-hall .dp-name-row{
    justify-content:flex-start !important;
  }
  .eo-hall .dp-body{
    padding:12px 12px 14px 16px !important;
  }
  .eo-hall .dp-reason,
  .eo-hall .dp-intro,
  .eo-hall .dp-desc{
    font-size:13px !important;
    line-height:1.65 !important;
  }
  .eo-hall .dp-comments-header,
  .eo-hall .dp-sidebar-header,
  .eo-hall .gallery-header{
    padding:10px 12px !important;
  }
  .eo-hall .dp-comments,
  .eo-hall .dp-sidebar,
  .eo-hall .gallery-card{
    margin-top:0 !important;
  }
}

@media (max-width:860px){
  .eo-hall .eh-board,
  .eo-hall .hub-panel.eh-board{
    grid-template-columns:1fr !important;
    box-shadow:2px 2px 0 #111 !important;
  }
  /* 对齐组队大厅手机端：黑脊压扁 + 两列操作 + OPEN 通栏 */
  .eo-hall .eh-rail{
    border-right:0;
    border-bottom:1px solid #111;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:baseline;
    gap:4px 10px;
    padding:12px 12px 12px 16px;
  }
  .eo-hall .eh-eyebrow{width:100%;margin:0}
  .eo-hall .eh-title{font-size:18px;margin:0}
  .eo-hall .eh-rail-text{
    flex:1 1 auto;
    margin:0;
    max-width:none;
    font-size:11px;
    line-height:1.4;
    color:rgba(255,255,255,.58);
  }
  .eo-hall .eh-cells{grid-template-columns:1fr 1fr}
  .eo-hall .eh-cell{
    border-right:1px solid #111;
    border-bottom:1px solid #111;
    padding:12px 12px 10px;
    gap:3px;
  }
  .eo-hall .eh-cell:nth-child(2){border-right:0}
  .eo-hall .eh-cell:last-child{border-bottom:0}
  .eo-hall .eh-cell strong{font-size:15px}
  .eo-hall .eh-cell p{
    margin:0 0 6px;
    font-size:11px;
    line-height:1.4;
  }
  .eo-hall .eh-act{
    width:100%;
    box-sizing:border-box;
    text-align:center;
    padding:9px 8px;
    font-size:11px;
  }
  .eo-hall .eh-cell.is-stat{
    grid-column:1 / -1;
    border-right:0;
    border-bottom:0;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:flex-start;
    gap:6px 10px;
    padding:10px 12px;
    min-height:0;
  }
  .eo-hall .eh-stat-v{font-size:22px;line-height:1}
  .eo-hall .eh-stat-s{flex:1 1 auto;font-size:10px}
  .eo-hall .eh-footline{
    padding:8px 12px;
    font-size:10px;
    line-height:1.4;
  }
}
