/* 农村三资智能咨询系统 —— 主样式（简约 · 绿色主题） */
:root{
  --ink:#1b2a1f;
  --ink2:#3d4f43;
  --muted:#6b7d70;
  --line:#e3e9e4;
  --line2:#eef2ef;
  --bg:#f5f7f5;
  --card:#ffffff;
  --brand:#1f6b45;
  --brand-d:#175536;
  --brand-l:#eaf4ee;
  --brand-l2:#f2f9f5;
  --warn:#b7791f;
  --warn-bg:#fdf7e8;
  --err:#c0392b;
  --err-bg:#fdf0ee;
  --radius:14px;
  --shadow:0 1px 2px rgba(20,50,30,.04), 0 6px 20px rgba(20,50,30,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:15px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
button{font-family:inherit}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 22px; background:rgba(255,255,255,.88);
  backdrop-filter:saturate(1.6) blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex; align-items:center; gap:11px; min-width:0}
.logo{
  width:34px; height:34px; flex:0 0 34px; border-radius:10px;
  background:var(--brand-l); color:var(--brand);
  display:flex; align-items:center; justify-content:center;
}
.brand-txt{min-width:0}
.t1{font-size:16px; font-weight:700; letter-spacing:.2px; white-space:nowrap}
.t2{font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.topright{display:flex; align-items:center; gap:10px; flex:0 0 auto}
.quota{
  font-size:12.5px; color:var(--brand); background:var(--brand-l);
  border-radius:999px; padding:4px 12px; white-space:nowrap; font-weight:600;
}
.quota.low{color:var(--warn); background:var(--warn-bg)}

/* ---------- 布局 ---------- */
.wrap{max-width:820px; margin:0 auto; padding:22px 18px 60px}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow)}

/* ---------- 提问区 ---------- */
.askbox{padding:16px; margin-bottom:18px}
.askbox textarea{
  width:100%; border:1px solid var(--line); border-radius:11px; resize:vertical;
  padding:13px 14px; font-size:15px; line-height:1.7; color:var(--ink);
  background:#fcfdfc; outline:none; transition:border-color .15s, box-shadow .15s;
}
.askbox textarea:focus{border-color:#a9cdb9; box-shadow:0 0 0 3px rgba(31,107,69,.08)}
.askrow{display:flex; align-items:flex-end; gap:12px; margin-top:12px; flex-wrap:wrap}
.hints{display:flex; gap:8px; flex-wrap:wrap; flex:1 1 auto; min-width:0}
.chip{
  border:1px solid var(--line); background:#fff; color:var(--ink2);
  border-radius:999px; padding:5px 12px; font-size:12.5px; cursor:pointer;
  transition:all .15s; white-space:nowrap;
}
.chip:hover{border-color:#bcd8c8; background:var(--brand-l2); color:var(--brand)}
.btn-primary{
  background:var(--brand); color:#fff; border:none; border-radius:10px;
  padding:10px 24px; font-size:14.5px; font-weight:600; cursor:pointer;
  transition:background .15s, transform .05s; white-space:nowrap;
}
.btn-primary:hover{background:var(--brand-d)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:disabled{opacity:.6; cursor:not-allowed}
.btn-block{width:100%; padding:12px}
.btn-ghost{
  background:#fff; border:1px solid var(--line); color:var(--ink2);
  border-radius:9px; padding:6px 13px; font-size:13px; cursor:pointer; transition:all .15s;
}
.btn-ghost:hover{border-color:#bcd8c8; color:var(--brand)}

/* ---------- 加载 ---------- */
.loading{display:flex; align-items:center; gap:7px; padding:26px 4px; color:var(--muted); font-size:14px}
.dot{width:6px; height:6px; border-radius:50%; background:#9dbfad; animation:bounce 1.2s infinite}
.dot:nth-child(2){animation-delay:.15s}
.dot:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-5px);opacity:1}}
.loading-txt{margin-left:6px}

/* ---------- 结果 ---------- */
.answer{padding:18px 20px; margin-bottom:14px}
.cardhead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px}
.meta{font-size:12px; color:var(--muted); margin-left:auto}

.md{font-size:15px; color:var(--ink); word-break:break-word}
.md h2{font-size:16.5px; margin:18px 0 8px; padding-left:10px; border-left:3px solid var(--brand); line-height:1.4}
.md h3{font-size:15px; margin:14px 0 6px; color:var(--ink2)}
.md h2:first-child,.md h3:first-child,.md p:first-child{margin-top:0}
.md p{margin:9px 0}
.md ul,.md ol{margin:8px 0; padding-left:22px}
.md li{margin:5px 0}
.md strong{color:var(--brand-d); font-weight:700}
.md hr{border:none; border-top:1px dashed var(--line); margin:16px 0}
.md code{background:#f2f5f3; border-radius:4px; padding:1px 5px; font-size:13.5px}
.md blockquote{
  margin:10px 0; padding:8px 14px; background:var(--brand-l2);
  border-left:3px solid #bcd8c8; border-radius:0 8px 8px 0; color:var(--ink2);
}

/* ---------- 来源 ---------- */
.sources{padding:16px 20px}
.stitle{font-size:13.5px; font-weight:700; color:var(--ink2)}
.srcgroup{margin-top:2px}
.srcgroup + .srcgroup{margin-top:16px}
.grouphead{
  font-size:12px; font-weight:700; color:var(--muted); letter-spacing:.5px;
  margin-bottom:9px; display:flex; align-items:center; gap:9px;
}
.grouphead::after{content:""; flex:1; height:1px; background:var(--line2)}
.srclist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px}
.srclist li{
  display:flex; gap:10px; align-items:flex-start;
  padding:10px 12px; border:1px solid var(--line2); border-radius:10px; background:#fcfdfc;
}
.src-idx{
  flex:0 0 22px; height:22px; border-radius:6px; background:var(--brand-l); color:var(--brand);
  font-size:11.5px; font-weight:700; display:flex; align-items:center; justify-content:center; margin-top:1px;
}
.src-body{min-width:0; flex:1}
.src-title{font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.5}
.src-path{font-size:12px; color:var(--muted); margin-top:2px}
.src-sim{font-size:11.5px; color:#8fa297; margin-top:3px}
.src-cat{
  display:inline-block; font-size:11px; border-radius:5px; padding:1px 6px; margin-right:7px;
  background:#eef2ef; color:var(--muted);
}

/* ---------- 提示条 ---------- */
.alert{border-radius:11px; padding:12px 15px; font-size:13.5px; margin-bottom:14px; line-height:1.65}
.alert-error{background:var(--err-bg); color:var(--err); border:1px solid #f3d3ce}
.alert-warn{background:var(--warn-bg); color:var(--warn); border:1px solid #f0e2c0}
.alert-warn b{color:#96601a}

/* ---------- 页脚 ---------- */
.foot{margin-top:28px; padding-top:16px; border-top:1px solid var(--line); color:#93a79a; font-size:12px}
.foot p{margin:3px 0}

/* ---------- 弹窗 ---------- */
.modal{position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; padding:20px}
.modal-mask{position:absolute; inset:0; background:rgba(15,30,20,.38); backdrop-filter:blur(2px)}
.modal-box{position:relative; width:100%; max-width:380px; padding:22px 22px 18px; background:#fff}
.tabs{display:flex; align-items:center; position:relative; margin-bottom:18px}
.tab-title{font-size:15px; font-weight:700; color:var(--ink)}
.modal-x{
  position:absolute; right:-6px; top:-6px; width:28px; height:28px; border:none; background:transparent;
  font-size:22px; line-height:1; color:#93a79a; cursor:pointer; border-radius:8px;
}
.modal-x:hover{background:#f2f5f3; color:var(--ink)}
.field{display:block; margin-bottom:14px}
.field span{display:block; font-size:12.5px; color:var(--muted); margin-bottom:6px}
.field input{
  width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 12px;
  font-size:14.5px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.field input:focus{border-color:#a9cdb9; box-shadow:0 0 0 3px rgba(31,107,69,.08)}
.modal-note{font-size:12px; color:var(--muted); margin:14px 0 0; text-align:center}

.hidden,[hidden]{display:none !important}

/* ---------- 移动端 ---------- */
@media (max-width:640px){
  .topbar{padding:11px 14px}
  .t2{display:none}
  .wrap{padding:16px 12px 48px}
  .askrow{flex-direction:column; align-items:stretch}
  .btn-primary{width:100%}
  .chip{font-size:12px; padding:4px 10px}
  .answer,.sources{padding:15px 15px}
}
