/* ============================================================
   异闻录 · 公共样式
   ============================================================ */
:root{
  --ink:#07060a;
  --ink-2:#0b0910;
  --panel:rgba(20,17,25,.94);
  --paper:#ece6d8;
  --dim:#8d8578;
  --line:rgba(236,230,216,.10);
  --line-2:rgba(236,230,216,.18);
  --accent:#e8434a;
  --ok:#6fa86b;
  --warn:#d99a3c;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ink);color:var(--paper);
  font-family:"Songti SC","STSong","Noto Serif SC",serif;
  -webkit-font-smoothing:antialiased}
a{color:#b8766f}

/* ---------- 顶部条 ---------- */
.topbar{position:relative;z-index:9;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:18px 30px;border-bottom:1px solid var(--line)}
.topbar .brand{font-size:22px;letter-spacing:.3em;text-indent:.3em;color:#f2ecdd;text-decoration:none;line-height:1}
.topbar .brand i{font-style:normal;color:var(--accent)}
.topbar .nav{display:flex;align-items:center;gap:20px;font-size:11.5px;letter-spacing:.16em}
.topbar .nav a{color:#8d8578;text-decoration:none;transition:color .2s}
.topbar .nav a:hover{color:#ece6d8}

/* ---------- 用户菜单 ---------- */
.uwrap{position:relative}
.ubtn{display:flex;align-items:center;gap:9px;background:none;border:1px solid var(--line-2);
  padding:6px 12px 6px 7px;cursor:pointer;color:#cfc6b6;font-family:inherit;font-size:11.5px;
  letter-spacing:.1em;transition:.2s;max-width:230px}
.ubtn:hover{border-color:rgba(232,67,74,.55);color:#f2ecdd}
.ubtn .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu{position:absolute;right:0;top:calc(100% + 9px);min-width:216px;z-index:40;
  background:linear-gradient(160deg,rgba(24,20,30,.98),rgba(10,9,14,.99));
  border:1px solid var(--line-2);box-shadow:0 24px 60px rgba(0,0,0,.7);
  padding:8px 0;opacity:0;transform:translateY(-6px);pointer-events:none;transition:.2s}
.umenu.open{opacity:1;transform:none;pointer-events:auto}
.umenu .head{padding:10px 16px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.umenu .head b{display:block;font-weight:400;font-size:13px;color:#f2ecdd;letter-spacing:.06em}
.umenu .head span{display:block;margin-top:5px;font-size:10.5px;color:#7b7364;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu a,.umenu button{display:block;width:100%;text-align:left;padding:9px 16px;background:none;
  border:0;color:#b7ae9d;text-decoration:none;font-family:inherit;font-size:11.5px;
  letter-spacing:.12em;cursor:pointer;transition:.18s}
.umenu a:hover,.umenu button:hover{background:rgba(232,67,74,.13);color:#fff}
.umenu .split{height:1px;background:var(--line);margin:6px 0}
.umenu .danger{color:#c08b86}
.umenu .danger:hover{background:rgba(232,67,74,.18);color:#ff9a94}

/* ---------- 头像 ---------- */
.ava{width:26px;height:26px;border-radius:50%;flex:none;object-fit:cover;display:block;
  background:linear-gradient(140deg,#2a2233,#41303c);border:1px solid rgba(236,230,216,.16)}
.ava.lg{width:84px;height:84px;border-width:2px}
.ava.sm{width:20px;height:20px}
.ava.txt{display:flex;align-items:center;justify-content:center;font-size:12px;color:#e9c9c4;
  letter-spacing:0}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;background:transparent;border:1px solid rgba(232,67,74,.42);
  color:#e9c9c4;font-family:inherit;font-size:11.5px;letter-spacing:.22em;cursor:pointer;
  transition:.2s;text-decoration:none;white-space:nowrap}
.btn:hover:not(:disabled){background:rgba(232,67,74,.14);border-color:rgba(232,67,74,.8);color:#fff}
.btn:disabled{opacity:.45;cursor:default}
.btn.ghost{border-color:var(--line-2);color:#a89f90;letter-spacing:.16em}
.btn.ghost:hover:not(:disabled){background:rgba(236,230,216,.06);border-color:var(--line-2);color:#ece6d8}
.btn.sm{padding:6px 12px;font-size:10.5px;letter-spacing:.14em}
.btn.danger{border-color:rgba(232,67,74,.3);color:#b4736d}
.btn.danger:hover:not(:disabled){background:rgba(232,67,74,.16);color:#ff9a94;border-color:rgba(232,67,74,.7)}

/* ---------- 表单 ---------- */
.field{margin-bottom:20px}
.field > label{display:block;font-size:10px;letter-spacing:.26em;color:#8b8375;margin-bottom:8px}
.inp{width:100%;background:rgba(255,255,255,.02);border:1px solid var(--line-2);
  color:#f2ecdd;font-family:inherit;font-size:14px;letter-spacing:.04em;
  padding:11px 13px;outline:none;transition:border-color .2s,box-shadow .2s;border-radius:0}
.inp:focus{border-color:rgba(232,67,74,.7);box-shadow:0 0 0 1px rgba(232,67,74,.22)}
.inp::placeholder{color:#5b554b}
textarea.inp{resize:vertical;min-height:110px;line-height:1.9;font-size:13.5px}
select.inp{background:rgba(255,255,255,.02);cursor:pointer}
select.inp option{background:#12101a;color:#ece6d8}
.inp:-webkit-autofill{-webkit-text-fill-color:#f2ecdd;
  -webkit-box-shadow:0 0 0 1000px #0c0b11 inset;transition:background-color 9999s}
.hint{font-size:10px;letter-spacing:.06em;color:#6f6859;margin-top:7px;line-height:1.7}

.status{min-height:16px;margin:2px 0 12px;font-size:11px;letter-spacing:.08em;line-height:1.6;color:var(--dim)}
.status.ok{color:#c9c1b1}
.status.bad{color:var(--accent)}

/* ---------- 标记 ---------- */
.tags{display:flex;flex-wrap:wrap;gap:7px}
.tag{font-size:9.5px;letter-spacing:.14em;padding:3px 9px;border:1px solid var(--line-2);
  color:#9a9184;white-space:nowrap}
.tag.ok{color:#9dc09a;border-color:rgba(111,168,107,.45)}
.tag.pending{color:#dcb469;border-color:rgba(217,154,60,.45)}
.tag.rejected{color:#c07a74;border-color:rgba(232,67,74,.4)}
.tag.admin{color:#e9c9c4;border-color:rgba(232,67,74,.5)}

/* ---------- 提示 ---------- */
#toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,20px);z-index:99;
  background:rgba(18,15,22,.97);border:1px solid var(--line-2);color:#ece6d8;
  padding:11px 22px;font-size:12px;letter-spacing:.12em;opacity:0;pointer-events:none;
  transition:.28s;box-shadow:0 18px 44px rgba(0,0,0,.6);max-width:80vw;text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}
#toast.bad{border-color:rgba(232,67,74,.6);color:#ffb3ae}

/* ---------- 弹窗 ---------- */
.mask{position:fixed;inset:0;z-index:60;background:rgba(4,3,7,.78);backdrop-filter:blur(6px);
  display:none;align-items:center;justify-content:center;padding:24px;overflow-y:auto}
.mask.on{display:flex}
.modal{width:100%;max-width:560px;background:linear-gradient(160deg,rgba(24,20,30,.99),rgba(10,9,14,.99));
  border:1px solid var(--line-2);padding:30px 30px 24px;position:relative;
  box-shadow:0 40px 100px rgba(0,0,0,.7);animation:rise .34s cubic-bezier(.2,.7,.2,1) both}
.modal::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(232,67,74,.75),transparent)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.modal h3{margin:0 0 6px;font-size:21px;font-weight:400;letter-spacing:.18em;color:#f4eee0}
.modal .lead{margin:0 0 22px;font-size:11px;letter-spacing:.1em;color:#8b8375}
.modal .x{position:absolute;top:14px;right:16px;background:none;border:0;color:#6a6357;
  font-size:19px;cursor:pointer;font-family:inherit;line-height:1}
.modal .x:hover{color:var(--accent)}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){
  .row2{grid-template-columns:1fr}
  .modal{padding:26px 20px 20px}
  .topbar{padding:14px 16px}
  .topbar .brand{font-size:19px}
  .topbar .nav{gap:12px}
}

/* ============================================================
   媒体（投稿图片 / 视频）
   ============================================================ */
.media{margin-top:14px}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}
.mthumb{position:relative;display:block;padding-top:100%;overflow:hidden;
  border:1px solid rgba(236,230,216,.12);background:#0d0b12;cursor:zoom-in}
.mthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .35s,filter .35s;filter:saturate(.92)}
.mthumb:hover img{transform:scale(1.05);filter:saturate(1.05)}
.mvid{display:block;width:100%;margin-top:8px;background:#0d0b12;
  border:1px solid rgba(236,230,216,.12);max-height:320px}

/* 灯箱 */
#lb{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  background:rgba(3,2,6,.94);padding:24px;cursor:zoom-out}
#lb.on{display:flex}
#lb img{max-width:100%;max-height:100%;border:1px solid rgba(236,230,216,.16);
  box-shadow:0 40px 100px rgba(0,0,0,.8)}

/* ---------- 上传区 ---------- */
.drop{border:1px dashed rgba(236,230,216,.2);padding:14px;display:flex;flex-wrap:wrap;
  align-items:center;gap:10px;background:rgba(255,255,255,.015);transition:border-color .2s,background .2s}
.drop.over{border-color:rgba(232,67,74,.7);background:rgba(232,67,74,.06)}
.upbtn{display:inline-flex;align-items:center;gap:7px;background:none;cursor:pointer;
  border:1px solid var(--line-2);color:#b7ae9d;font-family:inherit;font-size:11px;
  letter-spacing:.14em;padding:7px 12px;transition:.2s}
.upbtn:hover{border-color:rgba(232,67,74,.6);color:#fff;background:rgba(232,67,74,.1)}
.uphint{font-size:9.5px;letter-spacing:.05em;color:#6a6357;line-height:1.7;flex:1;min-width:150px}

.tray{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:10px}
.tray:empty{display:none}
.titem{position:relative;padding-top:100%;overflow:hidden;border:1px solid rgba(236,230,216,.14);
  background:#0d0b12}
.titem img,.titem video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.titem .bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(236,230,216,.14)}
.titem .bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .18s}
.titem .masking{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(6,5,9,.62);font-size:10px;letter-spacing:.1em;color:#e2dac9}
.titem .del{position:absolute;top:4px;right:4px;width:19px;height:19px;border-radius:50%;
  border:1px solid rgba(236,230,216,.25);background:rgba(6,5,9,.72);color:#d8d0c0;
  font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-family:inherit;padding:0}
.titem .del:hover{border-color:rgba(232,67,74,.8);color:#fff;background:rgba(232,67,74,.5)}
.titem .vtip{position:absolute;left:5px;bottom:5px;font-size:8.5px;letter-spacing:.08em;
  color:#e2dac9;background:rgba(6,5,9,.7);padding:2px 5px}

/* 收录者 */
.byline{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:10px;
  letter-spacing:.1em;color:#6f6859}

/* 弹窗内容超屏时可滚动 */
.mask .modal{margin:auto}

/* 列表/审核里的媒体缩略略小一些 */
.item .mgrid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));max-width:660px}
.posts .mgrid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr));max-width:400px}
.item .mvid{max-height:280px;max-width:520px}

/* 详情卡里按图片数量自适应：1 张铺满、2 张两列、3+ 三列 */
.card .mgrid.n1{grid-template-columns:1fr}
.card .mgrid.n1 .mthumb{padding-top:60%}
.card .mgrid.n2{grid-template-columns:repeat(2,1fr)}
.card .mgrid.n2 .mthumb{padding-top:76%}

/* ============================================================
   反馈浮窗
   ============================================================ */
.fbbtn{position:fixed;right:24px;bottom:24px;z-index:55;padding:9px 15px;
  background:rgba(14,12,18,.84);border:1px solid rgba(236,230,216,.16);
  color:#a89f90;font-family:inherit;font-size:10.5px;letter-spacing:.18em;
  cursor:pointer;backdrop-filter:blur(8px);transition:.2s}
.fbbtn:hover{border-color:rgba(232,67,74,.65);color:#f2ecdd;background:rgba(232,67,74,.14)}
.fbmodal{max-width:480px}
.fbmodal textarea.inp{min-height:96px}
@media (max-width:560px){ .fbbtn{right:14px;bottom:14px;padding:8px 12px} }

/* ============================================================
   投稿地图选点
   ============================================================ */
.pickmap{width:100%;height:212px;border:1px solid rgba(236,230,216,.16);
  background:#0b0910;position:relative;overflow:hidden}
.pickmap .picktip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:10.5px;letter-spacing:.1em;color:#6a6357;text-align:center;padding:18px;line-height:1.9}
.pickrow{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:8px;align-items:center}
.pickrow .inp{font-size:12.5px;padding:8px 10px}
@media (max-width:560px){ .pickrow{grid-template-columns:1fr 1fr} .pickrow .upbtn{grid-column:1 / -1} }

/* 可信度标签 */
.tag.sourced{color:#9dc09a;border-color:rgba(111,168,107,.5)}
.tag.doubt{color:#d8b06a;border-color:rgba(217,154,60,.45)}
.tag.debunked{color:#9a9184;border-color:rgba(236,230,216,.22)}

/* 出处块 */
.src{margin-top:16px;padding:11px 13px;border-left:1px solid rgba(232,67,74,.28);
  background:rgba(255,255,255,.012)}
.src b{display:block;font-weight:400;font-size:9px;letter-spacing:.26em;color:#7b7364;margin-bottom:7px}
.src span{display:block;font-size:11.5px;line-height:1.95;letter-spacing:.02em;color:#8d8578;text-align:justify}
