/* 冯马村张氏族谱 · 样式（宣纸暖棕） */
:root{
  --paper:#FBF7EE; --paper2:#F6F0E3; --card:#FFFDF8;
  --ink:#40332A; --ink2:#6B5545; --ink3:#8C6B52; --ink4:#A08868;
  --brown:#5E3A2E; --brown2:#8C5A48; --line:#E5D8C4; --gold:#C09A6B; --seal:#A33A30;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);
  font-family:"LXGW WenKai","Songti SC","Source Han Serif SC",serif;font-size:16px;line-height:1.75}
a{color:var(--brown2);text-decoration:none}
.topbar{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,#FDF9F0,#F6EFE1);
  border-bottom:.5px solid var(--line);padding:10px 14px 8px;display:flex;align-items:center;gap:10px}
.topbar .brand{font-family:"Source Han Serif SC",serif;font-weight:700;color:var(--brown);
  font-size:17px;letter-spacing:.12em}
.topbar .brand small{display:block;font-size:10px;color:var(--ink4);letter-spacing:.22em;font-weight:400}
.topbar .sp{flex:1}
.btn{border:.5px solid var(--gold);background:var(--card);color:var(--brown2);border-radius:8px;
  padding:6px 12px;font-size:14px;font-family:inherit;cursor:pointer}
.btn.primary{background:linear-gradient(180deg,#8C5A48,#6E4536);color:#FDF9F0;border-color:#6E4536}
.btn:active{transform:translateY(1px)}
.wrap{max-width:920px;margin:0 auto;padding:14px 14px 118px}

/* 搜索 */
.searchbar{display:flex;gap:8px;margin:12px 0 4px}
.searchbar input{flex:1;border:.5px solid var(--line);background:var(--card);border-radius:10px;
  padding:11px 14px;font-size:16px;font-family:inherit;color:var(--ink);outline:none}
.searchbar input:focus{border-color:var(--gold)}
.hint{font-size:13px;color:var(--ink3);padding:2px 4px 10px;letter-spacing:.03em;line-height:1.8}

/* 统计 */
.stats{display:flex;gap:8px;margin:6px 0 14px;flex-wrap:wrap}
.stat{flex:1;min-width:96px;background:var(--card);border:.5px solid var(--line);border-radius:10px;
  padding:8px 12px;text-align:center}
.stat b{display:block;font-size:20px;color:var(--brown);font-family:"Source Han Serif SC",serif}
.stat span{font-size:11.5px;color:var(--ink4);letter-spacing:.1em}

/* 支派 */
.branch{margin:0 0 14px;border:.5px solid var(--line);border-radius:12px;background:var(--card);
  overflow:hidden;box-shadow:0 1px 3px rgba(120,90,60,.05)}
.branch-head{display:flex;align-items:center;gap:10px;padding:13px 14px;cursor:pointer;
  background:linear-gradient(180deg,#FFFDF8,#F9F3E7)}
.branch-head .tag{font-family:"Source Han Serif SC",serif;font-weight:700;color:var(--brown);
  font-size:17px;letter-spacing:.14em}
.branch-head .anc{font-size:12.5px;color:var(--ink3);flex:1}
.branch-head .cnt{font-size:12px;color:var(--ink4);border:.5px solid var(--line);border-radius:20px;
  padding:1px 9px}
.branch-head .arrow{color:var(--gold);transition:transform .2s;font-size:12px}
.branch.open .arrow{transform:rotate(90deg)}
.branch-body{display:none;padding:4px 12px 14px}
.branch.open .branch-body{display:block}

/* 世代 */
.gen{margin:12px 0 0}
.gen-title{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.gen-title .no{font-family:"Source Han Serif SC",serif;color:var(--brown2);font-size:13.5px;
  letter-spacing:.18em;white-space:nowrap}
.gen-title .ln{flex:1;height:0;border-top:.5px dashed #E0D2BB}
.gen-title .c{font-size:11px;color:var(--ink4)}

/* 人物卡（带小头像，整卡可点进个人页） */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;align-items:start}
.p{display:flex;gap:9px;align-items:center;text-decoration:none;color:inherit;
  background:var(--paper);border:.5px solid var(--line);border-radius:9px;padding:8px 10px;
  cursor:pointer;position:relative;transition:.15s}
.p .av{flex:0 0 40px;width:40px;height:50px;border:.5px solid var(--gold);background:#F3EAD9;
  overflow:hidden;border-radius:2px;display:flex;align-items:center;justify-content:center;
  font-family:"Source Han Serif SC",serif;font-size:19px;color:#B39A76}
.p .av img{width:100%;height:100%;object-fit:cover;display:block}
.p .tx{min-width:0;flex:1}
.p:active{background:#F3EAD9}
.p .n{font-family:"Source Han Serif SC",serif;font-weight:700;font-size:16px;color:var(--brown);
  letter-spacing:.06em}
.p .m{font-size:12px;color:var(--ink3);line-height:1.6;margin-top:2px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.p .dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.5}
.p.alive{border-style:dashed;background:#FDFAF3}
.p.alive .n{color:#8C6B52}

/* 搜索结果 */
.res{background:var(--card);border:.5px solid var(--line);border-radius:12px;overflow:hidden}
.res .item{padding:11px 14px;border-bottom:.5px solid #F0E8D8;display:flex;gap:10px;align-items:baseline}
.res .item:last-child{border-bottom:none}
.res .item b{font-family:"Source Han Serif SC",serif;color:var(--brown);font-size:16px}
.res .item .g{font-size:11.5px;color:var(--gold);border:.5px solid #EADFC8;border-radius:20px;padding:0 7px}
.res .item .x{font-size:12.5px;color:var(--ink3);flex:1}

/* 抽屉 */
.mask{position:fixed;inset:0;background:rgba(60,42,30,.38);opacity:0;pointer-events:none;
  transition:.2s;z-index:80}
.mask.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;left:0;right:0;bottom:-100%;max-height:88vh;overflow-y:auto;z-index:90;
  background:linear-gradient(180deg,#FFFDF8,#FAF4E8);border-top-left-radius:18px;
  border-top-right-radius:18px;border-top:1mm solid var(--gold);transition:bottom .26s ease;
  padding:0 0 22px;box-shadow:0 -8px 30px rgba(90,60,40,.18)}
.drawer.on{bottom:0}
.dw-head{padding:16px 18px 10px;position:relative;border-bottom:.5px solid #F0E8D8}
.dw-head .k{font-family:"Source Han Serif SC",serif;font-weight:700;font-size:25px;color:var(--brown);
  letter-spacing:.1em}
.dw-head .k .gz{font-size:12px;color:var(--gold);border:.5px solid #EADFC8;border-radius:20px;
  padding:1px 8px;margin-left:8px;vertical-align:middle;letter-spacing:.06em}
.dw-head .close{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:50%;
  border:.5px solid var(--line);background:var(--card);color:var(--ink3);font-size:16px;line-height:28px;
  text-align:center;cursor:pointer}
.dw-body{padding:12px 18px 0}
.kv{display:flex;gap:10px;font-size:14.5px;padding:5px 0;border-bottom:.5px dotted #EADFC8}
.kv:last-child{border-bottom:none}
.kv .lbl{flex:0 0 78px;color:var(--ink4);font-size:13px;white-space:nowrap}
.kv .val{flex:1;color:var(--ink)}
.sec-t{font-family:"Source Han Serif SC",serif;color:var(--brown2);font-size:13.5px;letter-spacing:.16em;
  margin:16px 0 6px}
.path{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px}
.path a{color:var(--brown2);border-bottom:.5px solid #E0D2BB}
.path .sep{color:var(--gold);font-size:11px}
.sons{display:flex;flex-wrap:wrap;gap:7px}
.son{border:.5px solid var(--gold);background:#FBF4E9;color:var(--brown2);border-radius:20px;
  padding:4px 12px;font-size:13.5px}
.son small{color:var(--ink4);font-size:10.5px;margin-left:3px}

/* 表单 */
.form{background:var(--card);border:.5px solid var(--line);border-radius:12px;padding:16px 14px;margin-bottom:14px}
.form h3{font-family:"Source Han Serif SC",serif;color:var(--brown);font-size:16px;letter-spacing:.14em;
  margin:0 0 12px;padding-bottom:8px;border-bottom:.5px solid #F0E8D8}
.field{margin-bottom:12px}
.field label{display:block;font-size:13px;color:var(--ink3);margin-bottom:5px;letter-spacing:.04em}
.field input,.field select,.field textarea{width:100%;border:.5px solid #DCCEB6;background:var(--paper);
  border-radius:9px;padding:10px 12px;font-size:15.5px;font-family:inherit;color:var(--ink);outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);background:#FFFDF8}
.field textarea{min-height:78px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.member-card{border:.5px dashed var(--gold);border-radius:10px;padding:12px 12px 4px;margin-bottom:10px;
  background:#FDFAF3;position:relative}
.member-card .del{position:absolute;right:4px;top:2px;font-size:12px;color:var(--ink4);cursor:pointer;padding:8px 10px}
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%) translateY(20px);opacity:0;
  background:rgba(94,58,46,.95);color:#FDF9F0;padding:11px 20px;border-radius:24px;font-size:14px;
  z-index:200;transition:.25s;pointer-events:none;max-width:86vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.footer{text-align:center;font-size:11.5px;color:var(--ink4);letter-spacing:.16em;padding:22px 0 4px}
.nav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;background:rgba(253,249,240,.96);
  border-top:.5px solid var(--line);backdrop-filter:blur(6px)}
.nav a{flex:1;text-align:center;padding:9px 0 8px;font-size:12px;color:var(--ink4);letter-spacing:.1em}
.nav a.on{color:var(--brown)}
.nav a i{display:block;font-size:17px;font-style:normal;line-height:1.2}
@supports not (display:grid){.people{display:flex;flex-wrap:wrap}.p{flex:0 0 46%}}
@media(min-width:640px){
  .people{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
  .nav{position:static;border-top:none;background:none;justify-content:center;gap:8px;margin:6px 0 0}
  .nav a{flex:0 0 auto;padding:7px 16px;border:.5px solid var(--line);border-radius:20px;background:var(--card)}
  .nav a.on{border-color:var(--gold);background:#FBF4E9}
}

/* ---- 理事会后台 ---- */
.topbar{display:flex;justify-content:space-between;align-items:baseline;padding:6px 2px 14px;border-bottom:.5px solid var(--line);margin-bottom:14px}
.topbar .brand{font-size:17px;color:var(--brown);letter-spacing:.12em;text-decoration:none;font-weight:600}
.topbar .stats{font-size:12px;color:var(--ink4);display:flex;gap:12px}
.sub-card{background:var(--card);border:.5px solid var(--line);border-radius:6px;padding:12px 13px;margin-bottom:12px}
.sub-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.sub-head b{font-size:15px;color:var(--ink)}
.muted{font-size:12px;color:var(--ink4)}
table.kv{width:100%;border-collapse:collapse;font-size:13.5px}
table.kv th{width:78px;text-align:left;color:var(--ink3);font-weight:400;vertical-align:top;padding:4px 6px 4px 0;white-space:nowrap}
table.kv td{padding:4px 0;color:var(--ink);line-height:1.7}
.sub-actions{display:flex;gap:10px;margin-top:10px;border-top:.5px dashed var(--line);padding-top:10px}
.sub-actions form{margin:0}
.btn-s{border:0;background:var(--brown);color:#FBF3E4;font-size:13.5px;letter-spacing:.1em;padding:9px 18px;border-radius:4px;cursor:pointer;font-family:inherit}
.btn-s.ghost{background:transparent;color:var(--ink3);border:.5px solid var(--line)}
.empty{text-align:center;color:var(--ink4);font-size:13.5px;padding:40px 10px;line-height:2}
.err{background:#F6E3DC;color:#8A3A24;font-size:13px;padding:8px 12px;border-radius:4px;margin-bottom:12px;text-align:center}

/* 传统直角：弱化现代圆角感 */
input[type=text],input[type=password],input[type=tel],input[type=number],select,textarea,
button,.btn-s,.card,.sub-card,.member-card,.field input,.field select,.field textarea{
  border-radius:2px!important;
}

/* 世系页「有老照片？点这里上传」征集条 */
.photo-call{display:flex;align-items:center;gap:11px;margin:12px 0 4px;padding:11px 13px;
  background:linear-gradient(180deg,#FDF6E7,#F7EEDA);border:.5px solid var(--gold);
  border-radius:2px;text-decoration:none;transition:background .15s}
.photo-call:active{background:#F3E7D0}
.photo-call .pc-ico{font-size:20px;line-height:1;flex:0 0 auto;filter:saturate(.75)}
.photo-call .pc-tx{flex:1;min-width:0;display:block}
.photo-call .pc-tx b{display:block;font-size:14.5px;color:var(--brown);letter-spacing:.04em;font-weight:700}
.photo-call .pc-tx i{display:block;font-style:normal;font-size:11.5px;color:var(--ink3);
  line-height:1.6;margin-top:2px}
.photo-call .pc-ar{flex:0 0 auto;font-size:20px;color:var(--gold);line-height:1}
