/* ============================================================
   种界农田数字化管理平台 · 前台门户主题
   仅覆盖视觉：配色 / 圆角 / 阴影 / 字体，不改动任何页面结构
   ============================================================ */

:root{
  --fj-green:#16a34a;
  --fj-green-2:#22c55e;
  --fj-green-deep:#14532d;
  --fj-green-dark:#166534;
  --fj-green-light:#dcfce7;
  --fj-green-soft:#f0fdf4;
  --fj-amber:#f59e0b;
  --fj-amber-light:#fef3c7;
  --fj-ink:#1f2937;
  --fj-muted:#6b7280;
  --fj-muted-2:#9ca3af;
  --fj-border:#eef2ee;
  --fj-bg:#f6f8f5;
  --fj-radius:16px;
  --fj-radius-sm:12px;
  --fj-shadow:0 4px 18px rgba(17,24,39,.06);
  --fj-shadow-md:0 10px 28px rgba(17,24,39,.08);
  --fj-grad:linear-gradient(135deg,#16a34a 0%,#22c55e 100%);
  --fj-grad-deep:linear-gradient(135deg,#14532d 0%,#166534 55%,#15803d 100%);
}

*{ -webkit-font-smoothing:antialiased; }
html{ scroll-behavior:smooth; }
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--fj-ink);
  background:var(--fj-bg);
}
a{ text-decoration:none; }
a:hover{ text-decoration:none; }

/* ---------- 顶部导航 ---------- */
.fj-nav{
  background:#fff;
  border-bottom:1px solid var(--fj-border);
  box-shadow:0 1px 10px rgba(17,24,39,.05);
  z-index:1030;
}
.fj-nav .navbar-brand{ display:flex; align-items:center; gap:.55rem; font-weight:800; }
.fj-logo-badge{
  width:38px;height:38px;border-radius:11px;background:var(--fj-grad);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:19px;
}
.fj-brand-text{ color:var(--fj-green-dark); font-size:1.2rem; font-weight:800; }
.fj-nav .nav-link{ color:#475569; font-weight:500; font-size:.95rem; padding:.5rem .85rem; border-radius:999px; transition:all .18s; }
.fj-nav .nav-link:hover{ color:var(--fj-green); background:var(--fj-green-soft); }
.fj-nav .nav-link.active{ color:var(--fj-green-dark); background:var(--fj-green-light); font-weight:600; }

/* ---------- 按钮 ---------- */
.btn-fj{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--fj-grad);color:#fff;border:none;
  padding:.55rem 1.35rem;border-radius:999px;font-weight:600;font-size:.9rem;
  box-shadow:0 6px 16px rgba(22,163,74,.25);
  transition:transform .18s,box-shadow .18s;
}
.btn-fj:hover{ color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px rgba(22,163,74,.32); }
.btn-fj-outline{
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;color:var(--fj-green);border:1.5px solid var(--fj-green);
  padding:.5rem 1.2rem;border-radius:999px;font-weight:600;font-size:.9rem;transition:all .18s;
}
.btn-fj-outline:hover{ background:var(--fj-green-soft);color:var(--fj-green-dark); }
.btn-fj-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  background:#fff;color:var(--fj-muted);border:1.5px solid var(--fj-border);
  padding:.45rem 1.1rem;border-radius:999px;font-weight:500;font-size:.85rem;transition:all .18s;
}
.btn-fj-ghost:hover{ color:var(--fj-ink);border-color:#d1d5db; }

/* ---------- 卡片 ---------- */
.fj-card{
  background:#fff;border:1px solid var(--fj-border);
  border-radius:var(--fj-radius);box-shadow:var(--fj-shadow);
  transition:transform .2s,box-shadow .2s;
}
.fj-card:hover{ transform:translateY(-3px); box-shadow:var(--fj-shadow-md); }
.fj-card-pad{ padding:1.3rem; }

/* ---------- 统计卡 ---------- */
.fj-stat{
  background:#fff;border:1px solid var(--fj-border);border-radius:var(--fj-radius);
  box-shadow:var(--fj-shadow);padding:1.3rem 1.2rem;height:100%;
  transition:transform .2s,box-shadow .2s;
}
.fj-stat:hover{ transform:translateY(-3px); box-shadow:var(--fj-shadow-md); }
.fj-stat .ico{ font-size:26px; display:block; margin-bottom:.5rem; }
.fj-stat .ico i{ color:var(--fj-green); }
.fj-stat .num{ font-size:2.1rem; font-weight:800; line-height:1.1; color:var(--fj-ink); }
.fj-stat .lbl{ color:var(--fj-muted); font-size:.83rem; margin-top:.3rem; }

/* ---------- 区块标题 ---------- */
.fj-section-title{
  display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.25rem;color:var(--fj-ink);
}
.fj-section-title::before{
  content:"";width:6px;height:22px;border-radius:4px;background:var(--fj-grad);flex-shrink:0;
}
.fj-section-title .sub{ font-weight:400;font-size:.82rem;color:var(--fj-muted-2); }

/* ---------- 徽章 / 标签 ---------- */
.fj-chip{
  display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;
  background:var(--fj-green-soft);color:var(--fj-green-dark);
  border-radius:999px;font-size:.78rem;font-weight:600;
}
.fj-tag{
  display:inline-block;padding:.4rem .95rem;border-radius:999px;font-size:.8rem;font-weight:500;cursor:pointer;
  background:#fff;color:#475569;border:1px solid var(--fj-border);transition:all .18s;
}
.fj-tag:hover{ border-color:var(--fj-green);color:var(--fj-green);background:var(--fj-green-soft); }
.fj-tag.on{ background:var(--fj-grad);color:#fff;border-color:transparent; }

/* ---------- 英雄区 ---------- */
.fj-hero{
  color:#fff;
  background:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,.14), transparent 34%),
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.12), transparent 32%),
    var(--fj-grad-deep);
  padding:3.2rem 0;
}
.fj-hero h1{ font-weight:800; }
.fj-hero .lead{ opacity:.85; }
.fj-kicker{
  display:inline-flex;align-items:center;gap:.45rem;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);
  padding:.35rem .95rem;border-radius:999px;font-size:.8rem;font-weight:600;
}
.fj-live-dot{ width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:fjPulse 2s infinite; }
@keyframes fjPulse{ 0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)} 70%{box-shadow:0 0 0 10px rgba(74,222,128,0)} 100%{box-shadow:0 0 0 0 rgba(74,222,128,0)} }

/* ---------- 骨架屏 ---------- */
.fj-skeleton{
  background:linear-gradient(90deg,#eef1ee 25%,#e3e7e3 50%,#eef1ee 75%);
  background-size:200% 100%;animation:fjShimmer 1.5s infinite;border-radius:12px;
}
@keyframes fjShimmer{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }

.fj-chart-box{ padding:1.3rem; }

/* ---------- 徽章 ---------- */
.fj-badge{ display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .7rem;border-radius:999px;font-size:.76rem;font-weight:600; }
.fj-badge-green{ background:var(--fj-green-soft);color:var(--fj-green-dark); }
.fj-badge-amber{ background:var(--fj-amber-light);color:#92400e; }
.fj-badge-gray{ background:#f1f5f9;color:#64748b; }

/* ---------- 图片 / 空态 ---------- */
.fj-img-top{ width:100%;height:150px;object-fit:cover;border-radius:var(--fj-radius) var(--fj-radius) 0 0; }
.fj-empty{ text-align:center;color:var(--fj-muted-2);padding:3rem 1rem; }
.fj-empty .ico{ font-size:42px;display:block;margin-bottom:.7rem; }

/* ---------- 认证页 ---------- */
.fj-auth-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(circle at 15% 20%, rgba(22,163,74,.12), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(245,158,11,.12), transparent 45%),
    linear-gradient(150deg,#f2f8f2,#f7faf5 60%,#eef5ee);
  padding:2rem 1rem;
}
.fj-auth-card{
  width:440px;max-width:100%;background:#fff;
  border-radius:20px;box-shadow:0 18px 50px rgba(20,83,45,.16);padding:2.2rem 2.1rem;
}
.fj-auth-logo{ width:60px;height:60px;border-radius:17px;background:var(--fj-grad);color:#fff;font-size:30px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;box-shadow:0 10px 24px rgba(22,163,74,.32); }
.fj-auth-card h4{ font-weight:800; }

/* ---------- 页脚 ---------- */
.fj-footer{ background:var(--fj-grad-deep);color:#d9efe0;margin-top:3.5rem;padding:3rem 0 1.4rem; }
.fj-footer h6{ color:#fff;font-weight:700;margin-bottom:1rem; }
.fj-footer a{ color:#bfe8cc;font-size:.88rem;transition:color .18s; }
.fj-footer a:hover{ color:#fff; }
.fj-footer .foot-link{ display:block;margin-bottom:.55rem; }
.fj-footer .divider{ border-top:1px solid rgba(255,255,255,.14);margin-top:2rem;padding-top:1.2rem; }
.fj-footer .brand-mark{ font-weight:800;color:#fff;font-size:1.15rem; }
