/* ============================================================
   EID-CARD-001 · Deep-green Old-Money · Mobile-first
   ============================================================ */
:root{
  --bg-deep:#0a1612;        /* 深森綠 */
  --bg-card:#10221b;        /* 卡片綠 */
  --bg-paper:#f7f3eb;       /* 米黃紙 */
  --ink:#0f1f15;            /* 深墨 */
  --ink-soft:#5a6b5f;
  --gold:#b8956a;           /* 古銅金 */
  --gold-bright:#d4af37;
  --gold-dim:#8a6e4d;
  --rule:#d4cfc2;           /* 紙面分隔線 */
  --serif: "Cormorant Garamond","Songti TC","Noto Serif TC","PingFang TC",Georgia,serif;
  --sans:  "Inter","PingFang TC","Noto Sans TC",-apple-system,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{
  background:var(--bg-deep);
  color:#e6dfd0;
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ---------- Paper card (mobile shell) ---------- */
.shell{
  min-height:100vh;
  display:flex;flex-direction:column;
  background:
    radial-gradient(ellipse 90% 50% at 50% -10%, rgba(184,149,106,.12), transparent 60%),
    radial-gradient(ellipse 60% 40% at 100% 100%, rgba(184,149,106,.06), transparent 60%),
    var(--bg-deep);
}
.paper{
  margin:14px auto;
  width:min(440px,calc(100vw - 18px));
  background:var(--bg-paper);
  color:var(--ink);
  border-radius:4px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.05),
    0 30px 60px -20px rgba(0,0,0,.6),
    inset 0 0 0 1px rgba(184,149,106,.18);
  overflow:hidden;
  position:relative;
}
.paper::before{          /* 紙紋 subtle */
  content:"";position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(15,31,21,.018) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(90deg, rgba(15,31,21,.014) 0 1px, transparent 1px 4px);
  pointer-events:none;
}
.crest{                  /* 頂部金箔徽 */
  display:flex;align-items:center;justify-content:center;
  gap:10px;
  padding:16px 16px 10px;
  border-bottom:1px solid var(--rule);
}
.crest .c{
  width:10px;height:10px;border:1px solid var(--gold);
  transform:rotate(45deg);
}
.crest .bar{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.7}
.crest .label{font-family:var(--serif);font-size:11px;letter-spacing:.32em;color:var(--gold-dim);text-transform:uppercase}

/* ---------- Hero ---------- */
.hero{
  padding:18px 22px 14px;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:12px;
}
.avatar{
  width:108px;height:108px;border-radius:50%;
  background:
    radial-gradient(circle at 30% 30%, #f5ebd6, #cdb78f 70%, #8a6e4d);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:38px;color:var(--ink);
  letter-spacing:.04em;
  border:2px solid var(--gold);
  box-shadow:0 0 0 4px rgba(184,149,106,.18), 0 8px 20px -8px rgba(0,0,0,.35);
  overflow:hidden;
}
.avatar img{width:100%;height:100%;object-fit:cover}
.name{
  font-family:var(--serif);
  font-size:30px;font-weight:500;
  color:var(--ink);letter-spacing:.02em;
  line-height:1.1;
}
.name .cn{display:block;font-size:22px;color:var(--ink-soft);margin-top:2px;letter-spacing:.18em}
.title{
  font-family:var(--serif);font-style:italic;
  color:var(--gold-dim);font-size:13px;
  letter-spacing:.12em;
}
.company{
  font-size:13px;color:var(--ink-soft);
  letter-spacing:.04em;
}

/* ---------- Info rows ---------- */
.info{
  margin:6px 22px 18px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.row{
  display:flex;align-items:center;gap:12px;
  padding:11px 4px;
  border-bottom:1px dashed rgba(15,31,21,.12);
  font-size:14px;
}
.row:last-child{border-bottom:none}
.row .ic{
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  color:var(--gold);
}
.row .ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.4}
.row .lbl{
  width:54px;font-family:var(--serif);font-size:12px;
  color:var(--gold-dim);letter-spacing:.1em;text-transform:none;
}
.row .val{flex:1;color:var(--ink);font-size:14px;word-break:break-all}
.row a.val{color:var(--ink)}
.row .wa{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 8px;border-radius:20px;
  background:#25d366;color:white;font-size:11px;font-weight:600;
  margin-left:6px;
}
.row .wa svg{width:11px;height:11px;fill:white;stroke:none}

/* ---------- Sections ---------- */
.section{
  padding:14px 22px;
  border-bottom:1px solid var(--rule);
}
.section:last-of-type{border-bottom:none}
.section h3{
  font-family:var(--serif);font-weight:500;
  font-size:15px;color:var(--ink);
  letter-spacing:.08em;
  display:flex;align-items:center;gap:8px;
  margin-bottom:10px;
}
.section h3::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--gold) 0,transparent 70%);
  opacity:.5;
}
.section .body{font-size:14px;color:var(--ink);line-height:1.7;white-space:pre-wrap}
.section ul{list-style:none;padding:0}
.section ul li{
  font-size:14px;color:var(--ink);
  padding:6px 0 6px 16px;position:relative;
  border-bottom:1px dotted rgba(15,31,21,.12);
}
.section ul li:last-child{border-bottom:none}
.section ul li::before{
  content:"◆";position:absolute;left:0;top:7px;
  color:var(--gold);font-size:9px;
}
.section ul li .yr{
  display:inline-block;width:54px;
  font-family:var(--serif);font-style:italic;
  color:var(--gold-dim);font-size:12px;
}

/* ---------- QR + share footer ---------- */
.bottom{padding:18px 22px 22px;text-align:center}
.qrbox{
  display:inline-flex;flex-direction:column;align-items:center;
  gap:8px;padding:12px 14px;
  background:white;
  border:1px solid var(--gold);
  border-radius:4px;
  box-shadow:inset 0 0 0 4px rgba(184,149,106,.1);
}
.qrbox #qr{width:140px;height:140px;display:flex;align-items:center;justify-content:center}
.qrbox #qr canvas,.qrbox #qr img{width:140px !important;height:140px !important}
.qrbox .qcap{
  font-family:var(--serif);font-size:10px;
  letter-spacing:.28em;color:var(--gold-dim);
}
.actions{display:flex;gap:8px;margin-top:14px;justify-content:center;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 14px;border-radius:22px;
  font-size:13px;font-weight:500;
  cursor:pointer;border:none;outline:none;
  transition:transform .12s,box-shadow .12s;
}
.btn:active{transform:scale(.97)}
.btn.wa{background:#25d366;color:white}
.btn.wa:hover{background:#1ebe5b}
.btn.print{background:var(--bg-card);color:var(--gold);border:1px solid var(--gold)}
.btn svg{width:14px;height:14px;fill:currentColor}

/* ---------- Footer (dark) ---------- */
.foot{
  margin-top:auto;
  padding:18px 22px;
  text-align:center;
  color:#7a8a7e;
  font-size:11px;letter-spacing:.12em;
}
.foot .crest-foot{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:6px;
}
.foot .crest-foot .bar{width:30px;height:1px;background:var(--gold-dim);opacity:.5}
.foot .crest-foot .c{width:6px;height:6px;border:1px solid var(--gold-dim);transform:rotate(45deg)}
.foot a{color:var(--gold)}

/* ---------- Admin ---------- */
.admin-shell{
  min-height:100vh;padding:20px 16px;
  display:flex;flex-direction:column;align-items:center;
}
.admin-card{
  width:min(560px,100%);background:var(--bg-card);
  border:1px solid rgba(184,149,106,.25);
  border-radius:8px;padding:22px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
}
.admin-card h1{
  font-family:var(--serif);font-weight:500;
  font-size:24px;color:var(--gold);
  margin-bottom:6px;letter-spacing:.06em;
}
.admin-card .sub{color:#9aa9a0;font-size:13px;margin-bottom:18px}
.adm-form{display:grid;gap:14px}
.adm-form .field{display:flex;flex-direction:column;gap:5px}
.adm-form label{
  font-family:var(--serif);font-size:12px;color:var(--gold);
  letter-spacing:.18em;text-transform:uppercase;
}
.adm-form input,.adm-form textarea,.adm-form select{
  background:rgba(247,243,235,.06);
  border:1px solid rgba(184,149,106,.3);
  color:#e6dfd0;font-family:var(--sans);font-size:14px;
  padding:9px 11px;border-radius:4px;outline:none;
}
.adm-form input:focus,.adm-form textarea:focus{
  border-color:var(--gold);
  background:rgba(247,243,235,.1);
}
.adm-form textarea{min-height:64px;resize:vertical}
.adm-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.adm-form .chk{display:flex;align-items:center;gap:6px;color:#9aa9a0;font-size:12px}
.adm-form .chk input{width:auto;accent-color:var(--gold)}
.adm-actions{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.adm-actions button{
  padding:10px 18px;border-radius:4px;border:none;cursor:pointer;
  font-size:13px;font-family:var(--serif);letter-spacing:.12em;
}
.btn-save{background:var(--gold);color:var(--bg-deep)}
.btn-save:hover{background:var(--gold-bright)}
.btn-del{background:transparent;color:#c47878;border:1px solid #5a3838}
.btn-del:hover{background:#3a1f1f}
.btn-new{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.list{margin-top:22px;border-top:1px solid rgba(184,149,106,.2);padding-top:16px}
.list h2{font-family:var(--serif);font-size:14px;color:var(--gold);letter-spacing:.18em;margin-bottom:10px}
.list .item{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border:1px solid rgba(184,149,106,.15);
  border-radius:4px;margin-bottom:6px;font-size:13px;
}
.list .item .n{flex:1;color:#e6dfd0}
.list .item .slug{color:var(--gold-dim);font-size:11px}
.list .item .links a{color:var(--gold);font-size:11px;margin-left:8px;text-decoration:underline}
.toast{
  position:fixed;left:50%;top:20px;transform:translateX(-50%);
  background:var(--gold);color:var(--bg-deep);
  padding:10px 16px;border-radius:22px;
  font-size:13px;font-weight:600;
  box-shadow:0 6px 20px rgba(0,0,0,.4);
  z-index:100;opacity:0;transition:opacity .2s,transform .2s;
  pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(6px)}

/* ---------- Responsive (tablet+) ---------- */
@media (min-width:600px){
  .paper{margin:24px auto;width:min(520px,92vw)}
  .avatar{width:120px;height:120px}
  .name{font-size:34px}
}
@media print{
  html,body{background:white}
  .shell{background:white}
  .paper{margin:0;box-shadow:none;border-radius:0;width:100%;max-width:none}
  .foot,.actions,.btn.print{display:none !important}
  .actions{display:none}
}