:root{
  --bg:#f4f2ed;
  --card:#fffdf8;
  --ink:#2b2a27;
  --muted:#7a766d;
  --line:#e5e0d5;
  --accent:#7a6647;
  --accent-soft:#efe8dc;
  --ok:#4f6b4a;
  --warn:#8a6a3a;
  --bad:#8f5148;
  --radius:14px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",sans-serif;
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column;
}
a{color:inherit;}

/* 顶部 */
.topbar{
  background:var(--card);border-bottom:1px solid var(--line);
  padding:14px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.brand{font-size:20px;font-weight:700;letter-spacing:2px;text-decoration:none;}
.brand small{display:block;font-size:11px;letter-spacing:1px;color:var(--muted);font-weight:400;}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap;}
.nav a{
  text-decoration:none;font-size:13px;color:var(--muted);
  padding:6px 12px;border-radius:999px;transition:.15s;
}
.nav a:hover{background:var(--accent-soft);color:var(--ink);}
.nav a.on{background:var(--accent);color:#fff;}

/* 主体 */
.wrap{width:100%;max-width:880px;margin:0 auto;padding:28px 18px 40px;flex:1;}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;margin-bottom:18px;
}
.card.pad-lg{padding:32px;}
h1.page-title{font-size:26px;margin:0 0 6px;letter-spacing:1px;}
h2.sec-title{font-size:16px;margin:0 0 14px;letter-spacing:.5px;}
.sub{color:var(--muted);font-size:13px;margin:0 0 20px;}
.muted{color:var(--muted);}
.center{text-align:center;}

/* 入口卡片 */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:680px){.grid{grid-template-columns:1fr;}}
.entry{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 18px;text-decoration:none;display:block;transition:.18s;
}
.entry:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.06);}
.entry .ico{font-size:26px;line-height:1;}
.entry .tt{font-size:16px;font-weight:600;margin-top:10px;letter-spacing:.5px;}
.entry .dd{font-size:12px;color:var(--muted);margin-top:4px;}
.entry.main{background:var(--accent);border-color:var(--accent);color:#fff;}
.entry.main .dd{color:rgba(255,255,255,.8);}

/* 流程说明 */
.steps{display:flex;gap:10px;flex-wrap:wrap;}
.step{
  flex:1;min-width:180px;background:var(--bg);border:1px solid var(--line);
  border-radius:12px;padding:14px 16px;position:relative;
}
.step .no{
  display:inline-flex;width:22px;height:22px;border-radius:50%;
  background:var(--accent);color:#fff;font-size:12px;align-items:center;justify-content:center;
  margin-bottom:8px;
}
.step .st{font-size:14px;font-weight:600;}
.step .sd{font-size:12px;color:var(--muted);}

/* 表单 */
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;margin-bottom:6px;color:var(--ink);}
.field label .req{color:var(--bad);}
input[type=text],input[type=tel],input[type=password],input[type=date],select,textarea{
  width:100%;padding:11px 12px;font-size:15px;font-family:inherit;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:10px;outline:none;transition:.15s;
}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
textarea{resize:vertical;min-height:88px;}
select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%237a766d' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;}

/* 按钮 */
.btn{
  display:inline-block;padding:11px 20px;font-size:14px;font-family:inherit;
  border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);
  cursor:pointer;transition:.15s;text-decoration:none;
}
.btn:hover{border-color:var(--accent);}
.btn-main{background:var(--accent);border-color:var(--accent);color:#fff;width:100%;font-size:15px;padding:13px;}
.btn-main:hover{opacity:.9;}
.btn-main:disabled{opacity:.5;cursor:not-allowed;}
.btn-sm{padding:6px 14px;font-size:13px;border-radius:8px;}
.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff;}
.btn-ok:hover{opacity:.9;}
.btn-no{background:var(--bad);border-color:var(--bad);color:#fff;}
.btn-no:hover{opacity:.9;}

/* 提示 */
.msg{
  padding:11px 14px;border-radius:10px;font-size:13px;margin-bottom:14px;display:none;
}
.msg.show{display:block;}
.msg.err{background:#f7ecea;color:var(--bad);border:1px solid #e8cfcb;}
.msg.ok{background:#edf3ec;color:var(--ok);border:1px solid #cfe0cc;}

/* 提交成功 */
.done{text-align:center;padding:12px 0;}
.done .tick{font-size:42px;line-height:1;}
.done h3{margin:10px 0 6px;font-size:19px;}
.codebox{
  display:inline-block;margin:14px 0;padding:12px 22px;background:var(--accent-soft);
  border:1px dashed var(--accent);border-radius:10px;
  font-size:22px;letter-spacing:5px;font-weight:700;color:var(--accent);
}

/* 状态徽章 */
.badge{
  display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;
  border:1px solid var(--line);background:var(--bg);color:var(--muted);
}
.badge.pending{background:#fdf4e6;color:var(--warn);border-color:#f0e0c4;}
.badge.approved{background:#edf3ec;color:var(--ok);border-color:#cfe0cc;}
.badge.rejected{background:#f7ecea;color:var(--bad);border-color:#e8cfcb;}

/* 时间线 */
.tl{list-style:none;margin:0;padding:0;}
.tl li{
  position:relative;padding:0 0 18px 22px;border-left:2px solid var(--line);margin-left:6px;
}
.tl li:last-child{border-left-color:transparent;padding-bottom:0;}
.tl li::before{
  content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;
  background:var(--card);border:2px solid var(--accent);
}
.tl li.dim::before{border-color:var(--line);}
.tl .t{font-size:13px;font-weight:600;}
.tl .d{font-size:12px;color:var(--muted);}

/* 后台 */
.stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.stat{
  flex:1;min-width:110px;background:var(--bg);border:1px solid var(--line);
  border-radius:12px;padding:14px;text-align:center;
}
.stat .n{font-size:24px;font-weight:700;color:var(--accent);}
.stat .l{font-size:12px;color:var(--muted);}

.row{
  border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;
  background:var(--bg);
}
.row .rt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.row .nm{font-size:15px;font-weight:600;}
.row .meta{font-size:12px;color:var(--muted);margin-bottom:10px;line-height:1.6;}
.row .acts{display:flex;gap:8px;flex-wrap:wrap;}
.tag{font-size:11px;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);}
.tag.quit{background:#f7ecea;color:var(--bad);}

table.list{width:100%;border-collapse:collapse;font-size:13px;}
table.list th,table.list td{
  text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);
}
table.list th{font-size:12px;color:var(--muted);font-weight:500;}
table.list tr:last-child td{border-bottom:none;}

.empty{text-align:center;color:var(--muted);font-size:13px;padding:24px 0;}

/* 页脚 */
footer.foot{
  border-top:1px solid var(--line);background:var(--card);
  padding:16px 20px;text-align:center;font-size:12px;color:var(--muted);
}
footer.foot a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);}
footer.foot a:hover{color:var(--ink);}
footer.foot .beian{margin-top:6px;}
footer.foot > :first-child{margin-top:0;}

@media(max-width:520px){
  .wrap{padding:20px 14px 32px;}
  .card{padding:18px;}
  h1.page-title{font-size:22px;}
}
