*{box-sizing:border-box}
:root{--green:#1f7a3a;--green-2:#2f9b52;--soft:#eef8f0;--text:#1f2b24;--muted:#748078;--line:#e4e9e5;--orange:#f26b21;--red:#d93025;--shadow:0 12px 32px rgba(27,65,38,.10)}
body{margin:0;background:#f6f8f6;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;font-size:15px}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:50;height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 max(20px,calc((100vw - 1220px)/2));box-shadow:0 2px 14px rgba(0,0,0,.04)}
.brand{display:flex;align-items:center;gap:9px;border:0;background:transparent;font-weight:800;color:var(--green);font-size:19px;white-space:nowrap}
.brand-mark{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--green),var(--green-2));color:#fff;display:grid;place-items:center}
.main-nav{display:flex;gap:3px;flex:1}
.main-nav button,.mobile-tabs button{border:0;background:transparent;color:#526057}
.main-nav button{padding:10px 12px;border-radius:6px}
.main-nav button.active,.main-nav button:hover{background:var(--soft);color:var(--green);font-weight:700}
.top-actions{display:flex;align-items:center;gap:9px}
.primary,.outline,.ghost{border-radius:7px;padding:10px 16px;border:1px solid transparent;font-weight:700}
.primary{background:var(--green);color:#fff}
.primary:hover{background:#17612e}
.outline{background:#fff;color:var(--green);border-color:var(--green)}
.ghost{background:#f4f7f4;color:#415047;border-color:#e3e8e4}
.full{width:100%;margin-top:12px}
.container{max-width:1220px;margin:0 auto;padding:22px 20px 96px}
.hero{min-height:310px;border-radius:10px;padding:42px;background:linear-gradient(130deg,rgba(18,92,39,.94),rgba(47,155,82,.76)),url("./images/banner1.png");background-size:cover;background-position:center;color:#fff;display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:center;overflow:hidden}
.hero h1{font-size:38px;margin:0 0 12px;line-height:1.22}
.hero p{font-size:17px;line-height:1.8;opacity:.92;margin:0 0 26px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero .primary{background:var(--orange);font-size:16px}
.hero .outline{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.55);color:#fff}
.hero-card{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:10px;padding:20px;backdrop-filter:blur(10px)}
.hero-card b{font-size:32px;color:#ffeb80;display:block;margin-bottom:5px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.stat,.card,.filters,.publish-panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 4px 18px rgba(39,72,49,.05)}
.stat{padding:18px;text-align:center}
.stat b{display:block;color:var(--green);font-size:25px;margin-bottom:5px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px}
.section-head h2{font-size:22px;margin:0}
.section-head h2::before{content:"";display:inline-block;width:4px;height:20px;background:var(--green);border-radius:2px;margin-right:9px;vertical-align:-3px}
.link-btn{border:0;background:transparent;color:var(--green);font-weight:700}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.grid.three{grid-template-columns:repeat(3,1fr)}
.card{overflow:hidden}
.card-img{height:146px;background:linear-gradient(135deg,#d7f0dc,#9bd5a8);display:grid;place-items:center;color:var(--green);font-size:48px;position:relative}
.card-img img{width:100%;height:100%;object-fit:cover;display:block}
.badge{position:absolute;top:9px;left:9px;background:var(--orange);color:#fff;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:700}
.card-body{padding:14px}
.card-title{font-size:16px;font-weight:800;line-height:1.45;margin-bottom:8px}
.meta{font-size:13px;color:var(--muted);line-height:1.7}
.price{font-size:20px;color:var(--red);font-weight:900;margin:8px 0}
.tag-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tag{background:var(--soft);color:var(--green);border-radius:20px;padding:3px 9px;font-size:12px}
.card-actions{display:flex;gap:8px;margin-top:12px}
.card-actions button{flex:1}
.filters{padding:14px;margin:16px 0;display:grid;grid-template-columns:1.2fr repeat(4,1fr) auto;gap:10px}
.filters input,.filters select,.field input,.field select,.field textarea,.auth-panel input{width:100%;border:1px solid var(--line);border-radius:7px;padding:11px 12px;background:#fff;color:var(--text);outline:none}
.field textarea{min-height:96px;resize:vertical}
.filters input:focus,.filters select:focus,.field input:focus,.field textarea:focus,.auth-panel input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,122,58,.09)}
.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:10px 0 12px}
.page-title h1{margin:0;font-size:28px}
.page-title p{margin:5px 0 0;color:var(--muted)}
.empty{background:#fff;border:1px dashed #cfd8d1;border-radius:9px;padding:42px;text-align:center;color:var(--muted)}
.publish-panel{padding:20px}
.publish-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.publish-tabs button{border:1px solid var(--line);background:#fff;color:#445147;border-radius:7px;padding:10px 14px;font-weight:700}
.publish-tabs button.active{background:var(--soft);border-color:var(--green);color:var(--green)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.field.full-line{grid-column:1/-1}
.field label{display:block;font-weight:700;margin-bottom:7px}
.hint{font-size:13px;color:var(--muted);line-height:1.7}
.mine-grid{display:grid;grid-template-columns:280px 1fr;gap:18px}
.mine-side{padding:18px}
.avatar{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green-2));color:#fff;display:grid;place-items:center;font-size:26px;font-weight:900;margin-bottom:12px}
.side-actions{display:grid;gap:9px;margin-top:14px}
.article{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:16px;border-bottom:1px solid var(--line)}
.article:last-child{border-bottom:0}
.article-thumb{height:88px;border-radius:8px;background:var(--soft);display:grid;place-items:center;color:var(--green);font-weight:800}
.article h3{margin:0 0 8px;font-size:17px}
.store-head{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:center;padding:18px}
.store-avatar{width:80px;height:80px;border-radius:12px;background:linear-gradient(135deg,var(--green),#8bd39c);display:grid;place-items:center;color:#fff;font-size:28px;font-weight:900}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:100;display:none;align-items:center;justify-content:center;padding:18px}
.modal-mask.show{display:flex}
.modal{background:#fff;border-radius:10px;box-shadow:var(--shadow);position:relative;width:min(460px,100%);max-height:88vh;overflow:auto}
.detail-modal{width:min(860px,100%)}
.auth-modal{padding:24px}
.modal-close{position:absolute;right:12px;top:10px;border:0;background:#f0f3f1;border-radius:50%;width:32px;height:32px;font-size:20px;color:#66736a}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.auth-tabs button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:10px;font-weight:800;color:#526057}
.auth-tabs button.active{background:var(--soft);border-color:var(--green);color:var(--green)}
.auth-panel{display:none}
.auth-panel.active{display:block}
.auth-panel label{font-weight:800;display:block;margin:12px 0 7px}
.qr-box{height:230px;border:1px dashed #bfd4c5;border-radius:9px;background:#f8fcf9;display:grid;place-items:center;margin:12px 0;overflow:hidden;color:var(--muted);text-align:center}
.qr-box img{max-width:210px;max-height:210px;display:none}
#toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);background:rgba(24,35,28,.92);color:#fff;padding:11px 20px;border-radius:8px;z-index:200;display:none;max-width:88vw;text-align:center}
.mobile-tabs{display:none}
@media (max-width:860px){
  body{font-size:14px}
  .topbar{height:58px;padding:0 12px}
  .brand span:last-child{display:none}
  .main-nav{display:none}
  .top-actions{margin-left:auto}
  .top-actions .ghost{display:none}
  .top-actions .primary{padding:8px 11px}
  .container{padding:14px 12px 84px}
  .hero{grid-template-columns:1fr;min-height:auto;padding:28px 20px}
  .hero h1{font-size:28px}
  .hero p{font-size:14px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .grid,.grid.three{grid-template-columns:1fr}
  .filters{grid-template-columns:1fr}
  .form-grid,.mine-grid{grid-template-columns:1fr}
  .page-title{display:block}
  .article{grid-template-columns:1fr}
  .article-thumb{height:110px}
  .store-head{grid-template-columns:58px 1fr}
  .store-avatar{width:58px;height:58px;border-radius:10px}
  .store-head .outline{grid-column:1/-1}
  .mobile-tabs{position:fixed;left:0;right:0;bottom:0;height:64px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:60;padding-bottom:env(safe-area-inset-bottom)}
  .mobile-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px}
  .mobile-tabs b{font-size:18px}
  .mobile-tabs button.active{color:var(--green);font-weight:800}
}


/* ========== 手机版修复 ========== */
@media (max-width: 768px) {
  /* 导航栏 */
  .nav-container { padding: 0 12px; }
  .nav-links { display: none !important; }
  .nav-right .btn-locate { display: none; }
  .nav-right .btn-publish { padding: 6px 12px; font-size: 13px; }
  .nav-right .btn-login { padding: 6px 12px; font-size: 13px; }

  /* 首页Banner */
  .hero { padding: 24px 16px; min-height: 200px; }
  .hero h1 { font-size: 20px; line-height: 1.4; }
  .hero p { font-size: 13px; }
  .hero-btns { flex-wrap: wrap; gap: 8px; }
  .hero-location-tip { position: static; margin-top: 12px; max-width: 100%; }

  /* 统计数字 */
  .stats-bar { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .stat-item { padding: 12px 8px; border-right: 1px solid #eee; border-bottom: 1px solid #eee; }
  .stat-num { font-size: 22px; }

  /* 土地卡片列表 */
  .land-grid { grid-template-columns: 1fr !important; gap: 12px; padding: 0 16px; }
  .land-card { margin: 0; }
  .land-card img { height: 180px; object-fit: cover; }

  /* 产品列表 */
  .product-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; padding: 0 12px; }
  .product-card img { height: 120px; }
  .product-card .name { font-size: 13px; }
  .product-card .price { font-size: 14px; }

  /* 资讯列表 */
  .news-list { padding: 0 16px; }
  .news-item { flex-direction: column; }
  .news-item img { width: 100%; height: 160px; margin-bottom: 10px; }

  /* 搜索栏 */
  .search-bar { flex-wrap: wrap; gap: 8px; padding: 12px; }
  .search-bar input, .search-bar select { width: 100%; box-sizing: border-box; }
  .search-bar .btn-search { width: 100%; }

  /* 详情弹窗 */
  .modal-content { width: 95vw; max-height: 90vh; overflow-y: auto; padding: 16px; }

  /* 通用间距 */
  .section { padding: 16px; }
  .section-header { padding: 0 16px; }
  .container { padding: 0 12px; }

  /* 店铺列表 */
  .store-grid { grid-template-columns: 1fr !important; gap: 10px; padding: 0 16px; }

  /* 筛选面板 */
  .filter-row { flex-wrap: wrap; gap: 8px; }
  .filter-row select, .filter-row input { flex: 1 1 calc(50% - 4px); min-width: 120px; }
}

@media (max-width: 480px) {
  .nav-logo span { font-size: 14px; }
  .hero h1 { font-size: 18px; }
  .product-grid { grid-template-columns: 1fr !important; }
  .stat-num { font-size: 18px; }
  .stat-label { font-size: 11px; }
}

