/* 器材收藏馆 · 暗色档案风 */
:root{
  --bg:#0d0f12; --panel:#14171b; --panel2:#1a1e24; --line:#262b33; --line2:#333a45;
  --ink:#e9e6df; --muted:#96928a; --faint:#6d6a63;
  --gold:#d6a447; --gold-dim:#8a6a2c; --red:#c8353f; --blue:#7fa3c4; --green:#7fb069;
  --serif:"Songti SC","Noto Serif SC",Georgia,serif;
  --mono:"SF Mono",Menlo,Consolas,"Courier New",monospace;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:15px; line-height:1.65;
  -webkit-font-smoothing:antialiased; min-height:100vh;
}
img{display:block; max-width:100%}
a{color:inherit}
.wrap{max-width:1120px; margin:0 auto; padding:0 18px}
.hidden{display:none !important}

/* ===== 顶栏 ===== */
.topbar{background:linear-gradient(180deg,#15181d,#101318); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; padding-top:6px; padding-bottom:6px}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; min-height:44px}
.brand-mark{color:var(--gold); display:inline-flex}
.brand-title{font-family:var(--serif); font-size:19px; font-weight:700; letter-spacing:.06em; color:var(--ink)}
.brand-sub{display:block; font-size:10px; letter-spacing:.24em; color:var(--faint); margin-top:1px; font-family:var(--mono)}
.topnav{display:flex; gap:4px}
.topnav-link{display:inline-flex; align-items:center; min-height:44px; padding:0 13px; font-size:14px; color:var(--muted); text-decoration:none; border-radius:8px; transition:color .15s, background .15s}
.topnav-link:hover{color:var(--ink); background:var(--panel2)}

/* ===== 首页 · 搜索 ===== */
.home-head{padding:26px 0 6px}
.home-title{font-family:var(--serif); font-size:clamp(24px,4.5vw,34px); font-weight:700; letter-spacing:.03em}
.home-sub{color:var(--muted); font-size:14px; margin-top:6px}
.searchbox{display:flex; align-items:center; gap:10px; background:var(--panel); border:1px solid var(--line2); border-radius:12px; padding:6px 8px 6px 16px; margin-top:18px; transition:border-color .15s}
.searchbox:focus-within{border-color:var(--gold-dim)}
.searchbox svg{color:var(--muted); flex:0 0 auto}
.searchbox input{
  flex:1; min-width:0; background:transparent; border:0; outline:0;
  color:var(--ink); font-size:16px; font-family:var(--sans); padding:10px 0;
}
.searchbox input::placeholder{color:var(--faint)}
.searchbox .clear{
  border:0; background:var(--panel2); color:var(--muted); width:36px; height:36px;
  border-radius:8px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
}
.searchbox .clear:hover{color:var(--ink)}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.chip{
  font-size:13px; padding:7px 13px; border:1px solid var(--line2); border-radius:999px;
  background:transparent; color:var(--muted); cursor:pointer; min-height:36px;
  transition:all .15s; font-family:var(--sans);
}
.chip:hover{color:var(--ink); border-color:var(--gold-dim)}
.chip.on{background:var(--gold); border-color:var(--gold); color:#171310; font-weight:600}
.stat-line{font-size:12.5px; color:var(--faint); margin-top:14px; font-family:var(--mono)}

/* ===== 卡片网格 ===== */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(238px,1fr)); gap:16px; padding:20px 0 40px}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:14px; overflow:hidden;
  cursor:pointer; text-decoration:none; display:flex; flex-direction:column;
  transition:transform .16s, border-color .16s, box-shadow .16s;
}
.card:hover{transform:translateY(-3px); border-color:var(--gold-dim); box-shadow:0 10px 26px rgba(0,0,0,.45)}
.card-imgwrap{position:relative; aspect-ratio:4/3; background:#0a0c0e; overflow:hidden}
.card-img{width:100%; height:100%; object-fit:cover}
.card-imgwrap .img-null{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--faint); font-size:13px; font-family:var(--mono)}
.card-body{padding:13px 15px 14px; display:flex; flex-direction:column; gap:7px; flex:1}
.card-name{font-size:15.5px; font-weight:700; line-height:1.4}
.card-short{font-size:12.5px; color:var(--muted)}
/* 签名元素：铭牌 */
.card-plate{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:2px;
  background:var(--panel2); border:1px solid var(--line); border-left:3px solid var(--gold);
  padding:6px 10px; border-radius:6px; font-family:var(--mono); font-size:12px; color:var(--gold);
}
.card-plate .yr{color:var(--muted)}
.card-tags{display:flex; flex-wrap:wrap; gap:6px}
.tag{
  font-size:11.5px; padding:2px 9px; border-radius:999px; background:#22262d; color:var(--muted);
  border:1px solid var(--line2); white-space:nowrap;
}
.tag.on{background:rgba(214,164,71,.16); color:var(--gold); border-color:var(--gold-dim)}
.tag.e46{color:#a9c4dd; border-color:#3d5872; background:#1b2836}
.tag.e43{color:#d8b99a; border-color:#6b543a; background:#2a211a}
.card-summary{font-size:12.5px; color:var(--faint); line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.card .nt-note{font-size:11px; color:var(--gold); font-family:var(--mono)}

.empty{
  grid-column:1/-1; text-align:center; padding:70px 20px; color:var(--muted);
  border:1px dashed var(--line2); border-radius:14px; background:var(--panel);
}
.empty b{display:block; font-size:16px; color:var(--ink); margin-bottom:6px}

/* ===== 详情页 ===== */
.detail-head{display:flex; align-items:flex-start; gap:14px; padding:24px 0 4px; flex-wrap:wrap}
.back-btn{
  display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:0 14px;
  background:var(--panel); border:1px solid var(--line2); border-radius:10px;
  color:var(--muted); font-size:14px; cursor:pointer; text-decoration:none; font-family:var(--sans);
}
.back-btn:hover{color:var(--ink); border-color:var(--gold-dim)}
.detail-titleblock{flex:1; min-width:260px}
.detail-kicker{font-size:12px; letter-spacing:.2em; color:var(--gold); font-family:var(--mono); text-transform:uppercase}
.detail-title{font-family:var(--serif); font-size:clamp(22px,3.6vw,32px); font-weight:700; line-height:1.3; margin-top:5px}
.detail-sub{color:var(--muted); font-size:14px; margin-top:6px}
.detail-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.badge{font-size:12.5px; padding:4px 12px; border-radius:999px; border:1px solid var(--line2); color:var(--muted); font-family:var(--mono)}
.badge.gold{color:var(--gold); border-color:var(--gold-dim); background:rgba(214,164,71,.08)}

.sec{background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:20px 20px 22px; margin-top:18px}
.sec-h{display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:16px}
.sec-no{font-family:var(--mono); font-size:12px; color:var(--gold); letter-spacing:.1em}
.sec-h h2{font-size:18px; font-weight:700; font-family:var(--serif)}
.sec-h .hint{margin-left:auto; font-size:12px; color:var(--faint); font-family:var(--mono)}

.hero{display:grid; grid-template-columns:1fr; gap:16px; margin-top:16px}
@media(min-width:820px){ .hero{grid-template-columns:minmax(280px,400px) 1fr} }
.hero-img{aspect-ratio:4/3; background:#0a0c0e; border-radius:12px; overflow:hidden; cursor:zoom-in; border:1px solid var(--line)}
.hero-img img{width:100%; height:100%; object-fit:cover}
.hero-side{display:flex; flex-direction:column; gap:12px; min-width:0}
.hero-summary{font-size:15px; line-height:1.8; color:#d8d4ca; background:var(--panel2); border-left:3px solid var(--gold); padding:13px 16px; border-radius:8px}

/* 规格表 */
.spec{display:grid; grid-template-columns:1fr; gap:0}
@media(min-width:760px){ .spec{grid-template-columns:1fr 1fr} }
.spec .row{display:flex; gap:12px; border-bottom:1px dashed var(--line); padding:9px 4px; align-items:baseline}
.spec .k{flex:0 0 108px; color:var(--muted); font-size:13px}
.spec .v{flex:1; min-width:0; font-size:14px; color:var(--ink); word-break:break-word}

/* 结构 */
.struct{display:flex; flex-direction:column; gap:14px}
@media(min-width:820px){ .struct{flex-direction:row; align-items:center} }
.struct-text{flex:1; font-size:14.5px; color:#cfcbc1; line-height:1.8}
.struct-fig{flex:0 0 100%; background:var(--panel2); border:1px solid var(--line); border-radius:12px; padding:14px}
@media(min-width:820px){ .struct-fig{flex:0 0 46%} }
.struct-fig svg{width:100%; height:auto}
.struct-fig .fig-note{font-size:11.5px; color:var(--faint); text-align:center; margin-top:8px; font-family:var(--mono)}

/* 样片网格 */
.media-grid{display:grid; grid-template-columns:1fr; gap:14px}
@media(min-width:600px){ .media-grid{grid-template-columns:1fr 1fr} }
@media(min-width:960px){ .media-grid{grid-template-columns:repeat(3,1fr)} }
.shot{background:var(--panel2); border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:zoom-in; display:flex; flex-direction:column}
.shot-img{aspect-ratio:3/2; background:#0a0c0e; overflow:hidden}
.shot-img img{width:100%; height:100%; object-fit:cover}
.shot-cap{padding:10px 12px 12px; font-size:13px; line-height:1.6; color:#cfcbc1}
.shot-cap .sc{display:block; font-size:11.5px; color:var(--faint); margin-top:5px; font-family:var(--mono); word-break:break-all}
.shot-cap .sc b{color:var(--gold); font-weight:600}

/* 评价 */
.rev{border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:10px; padding:13px 16px; margin-bottom:12px; background:var(--panel2)}
.rev.dom{border-left-color:var(--red)}
.rev-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; margin-bottom:6px}
.rev-plat{font-weight:700; font-size:14px}
.rev-tag{font-size:11px; padding:1px 8px; border-radius:999px; border:1px solid var(--line2); color:var(--muted); font-family:var(--mono)}
.rev-tag.foreign{color:#a9c4dd; border-color:#3d5872}
.rev-tag.domestic{color:#e0a0a5; border-color:#6e3a40}
.rev-quote{font-size:13.5px; color:#d3cfc5; line-height:1.75}
.rev-meta{font-size:12px; color:var(--faint); margin-top:7px; font-family:var(--mono); word-break:break-all}
.rev-meta a{color:var(--blue); text-decoration:none; border-bottom:1px dotted #40586e}
.rev-meta a:hover{color:var(--gold)}
.revgroup-h{font-size:14px; font-weight:700; margin:14px 0 10px; color:var(--muted); font-family:var(--mono); letter-spacing:.06em}

/* 链接 */
.links{display:grid; grid-template-columns:1fr; gap:8px}
@media(min-width:760px){ .links{grid-template-columns:1fr 1fr} }
.link{
  display:flex; align-items:flex-start; gap:10px; padding:11px 14px;
  background:var(--panel2); border:1px solid var(--line); border-radius:10px;
  text-decoration:none; font-size:13.5px; color:#d8d4ca; line-height:1.5; transition:border-color .15s;
}
.link:hover{border-color:var(--gold-dim)}
.link svg{flex:0 0 auto; color:var(--gold); margin-top:2px}
.link .l-flag{font-size:11px; color:var(--gold); font-family:var(--mono); display:block}
.guide-expand{margin-top:12px}
.guide-btn{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px;
  background:rgba(214,164,71,.12); border:1px solid var(--gold-dim); color:var(--gold);
  border-radius:10px; font-size:14px; cursor:pointer; font-family:var(--sans); font-weight:600;
}
.guide-btn:hover{background:rgba(214,164,71,.2)}
.guide-frame{width:100%; height:72vh; border:1px solid var(--line); border-radius:12px; margin-top:12px; background:#fff}
.guide-note{font-size:12px; color:var(--faint); margin-top:8px}

/* 标签与备注 */
.editor{display:flex; flex-direction:column; gap:16px}
.tagrow{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.tagrow .tag{font-size:12.5px; padding:5px 12px}
.tagrow .tag .x{
  border:0; background:transparent; color:inherit; cursor:pointer; margin-left:6px;
  font-size:13px; line-height:1; padding:2px; border-radius:4px;
}
.tagrow .tag .x:hover{color:var(--red)}
.tag-add{display:flex; gap:8px; align-items:center}
.tag-add input{
  width:170px; max-width:60vw; background:var(--panel2); border:1px solid var(--line2);
  color:var(--ink); border-radius:8px; padding:9px 12px; font-size:14px; outline:0; font-family:var(--sans);
}
.tag-add input:focus{border-color:var(--gold-dim)}
.btn{
  min-height:44px; padding:0 16px; border-radius:10px; border:1px solid var(--gold-dim);
  background:var(--gold); color:#171310; font-weight:700; font-size:14px; cursor:pointer; font-family:var(--sans);
}
.btn.ghost{background:transparent; color:var(--gold); border-color:var(--gold-dim)}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5; cursor:default}
textarea.note{
  width:100%; min-height:110px; background:var(--panel2); border:1px solid var(--line2);
  color:var(--ink); border-radius:10px; padding:12px 14px; font-size:14px; line-height:1.7;
  font-family:var(--sans); outline:0; resize:vertical;
}
textarea.note:focus{border-color:var(--gold-dim)}
.editrow{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.editrow .status{font-size:12.5px; color:var(--green); font-family:var(--mono)}

/* 关于页 */
.about{padding:30px 0 50px; max-width:760px}
.about h1{font-family:var(--serif); font-size:26px; margin-bottom:14px}
.about p{color:#cfcbc1; font-size:14.5px; margin-bottom:12px; line-height:1.8}
.about code{background:var(--panel2); border:1px solid var(--line); border-radius:6px; padding:1px 7px; font-size:13px; color:var(--gold)}

/* ===== 灯箱 ===== */
.lightbox{position:fixed; inset:0; background:rgba(5,6,8,.93); z-index:100; display:flex; align-items:center; justify-content:center; padding:18px}
.lightbox-close{
  position:absolute; top:16px; right:16px; width:48px; height:48px; border-radius:50%;
  background:var(--panel2); border:1px solid var(--line2); color:var(--ink); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-body{max-width:1080px; width:100%; max-height:92vh; display:flex; flex-direction:column; gap:12px}
.lightbox-body img{max-width:100%; max-height:76vh; margin:0 auto; object-fit:contain; border-radius:10px}
.lightbox-meta{color:#cfcbc1; font-size:13px; line-height:1.7; text-align:center; padding:0 8px}
.lightbox-meta .src{color:var(--blue); text-decoration:none; border-bottom:1px dotted #40586e; word-break:break-all}
.lightbox-meta .quote{display:block; margin-top:6px; color:var(--muted); font-size:12.5px; font-style:italic}

/* ===== 页脚/提示 ===== */
.foot{border-top:1px solid var(--line); margin-top:40px; padding:22px 0 34px}
.foot p{font-size:12px; color:var(--faint); line-height:1.8}
.foot code{color:var(--gold); font-family:var(--mono)}
.toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%);
  background:var(--panel2); border:1px solid var(--gold-dim); color:var(--ink);
  padding:11px 20px; border-radius:10px; font-size:13.5px; z-index:200;
  box-shadow:0 8px 24px rgba(0,0,0,.5);
}

/* 加载态 */
.loading{padding:60px 0; text-align:center; color:var(--faint); font-family:var(--mono); font-size:13px}

@media(prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
  html{scroll-behavior:auto}
}
