.nav-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 40px;
  height: 72px;
  background: #f4efe8;
  border-bottom: 1px solid rgba(17,17,17,0.06);
  z-index: 100;
}
.brand, .nav-links a {
  color: #111;
  text-decoration: none;
  white-space: nowrap;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 800;
  font-size: 18px;
}
.brand img {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px;
  min-height: 38px;
  border-radius: 10px;
  object-fit: contain;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 15px;
}
.nav-links a {
  padding: 8px 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.85;
  transition: all 0.3s ease;
}
.nav-links a:hover, .nav-links a.active {
  opacity: 1;
  color: #efc66e !important;
}
.nav-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.nav-btn {
  min-width: 96px;
  padding: 10px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.nav-btn.secondary {
  border: 1px solid rgba(17,17,17,0.16);
  color: #2d2d2d;
  background: rgba(255,255,255,0.9);
}
.nav-btn.primary {
  background: #161616;
  color: #fff;
  box-shadow: 0 12px 24px rgba(0,0,0,0.12);
}
.member-entry {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.member-badge {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(17,17,17,0.14);
  border-radius: 12px;
  padding: 8px 12px;
  background: rgba(255,255,255,0.92);
  color: #161616;
  font-size: 13px;
  font-weight: 800;
}
.member-role {
  border-radius: 999px;
  padding: 2px 8px;
  background: #eef7f3;
  color: #2f7d68;
  font-size: 12px;
}
.member-logout {
  min-height: 40px;
  border: 1px solid rgba(17,17,17,0.14);
  border-radius: 12px;
  padding: 8px 12px;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.footer-v2 {
  background: #f4efe8;
  padding: 60px 0;
  color: #111;
  text-align: center;
}

@media (max-width: 960px) {
  .nav-bar { padding: 14px 18px; }
  .nav-links { display: none; }
}

:root{
  --bg:#ffffff;
  --panel:#f9fafb;
  --panel2:#f3f4f6;
  --text:#0f172a;
  --muted:#6b7280;
  --primary:#2563eb;
  --primary2:#1d4ed8;
  --accent:#f97316;
  --border:rgba(15,23,42,0.06);
  --shadow:0 18px 45px rgba(15,23,42,0.06);
  --glow:0 0 40px rgba(37,99,235,0.16);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:#ffffff;
}
a{color:inherit;text-decoration:none}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
.container-full{max-width:none;width:100%;margin:0 auto;padding:0 20px}

.header{
  position:sticky;
  top:0;
  backdrop-filter:saturate(180%) blur(14px);
  background:rgba(255,255,255,0.9);
  border-bottom:1px solid rgba(148,163,184,0.18);
  z-index:10;
}
/* 顶部导航栏全宽铺开，不再居中 */
.header .container{
  max-width:none;
  width:100%;
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:64px;
  width:100%;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
  letter-spacing:0.1px;
  margin-right:24px;
  flex-shrink:0;
}
.brand-mark{
  width:36px;
  height:36px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--primary2),var(--primary));
  box-shadow:var(--shadow);
  background-size:cover;
  background-position:center;
}
.brand-mark--logo{
  /* 使用公司无字商标作为页眉小图标 */
  background-image:url("./无字商标.png");
}
.brand-text{font-size:18px;font-weight:700;letter-spacing:-0.2px}
.nav{
  display:flex;
  align-items:center;
  gap:18px;
  color:var(--muted);
  font-size:14px;
  margin-left:auto;
}
.nav a{padding:8px 10px;border-radius:999px}
.nav a:hover{
  background:rgba(37,99,235,0.06);
  color:var(--text);
}
.nav-auth{
  margin-left:auto;
  border:1px solid rgba(148,163,184,0.5);
  padding-inline:14px;
}
.nav-auth:hover{
  border-color:var(--primary);
}

.hero{padding:96px 0 64px}
.hero-grid{display:grid;grid-template-columns:1.2fr 0.8fr;gap:22px;align-items:stretch}
.hero h1{margin:0 0 20px}
.hero-title-main{
  display:block;
  font-size:56px;
  line-height:1.05;
  letter-spacing:-0.8px;
  font-weight:800;
}
.hero-title-sub{
  display:block;
  margin-top:8px;
  font-size:18px;
  line-height:1.4;
  color:var(--muted);
  font-weight:500;
}
.hero-benefits{
  margin:20px 0 24px;
  padding-left:20px;
  color:var(--muted);
  font-size:16px;
  line-height:1.8;
}
.hero-benefits li{margin-bottom:6px}
.hero-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin:20px 0 24px;
}
.hero-feature{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.hero-feature-title{
  font-size:18px;
  font-weight:700;
  color:var(--text);
  line-height:1.3;
}
.hero-feature-desc{
  font-size:15px;
  color:var(--muted);
  line-height:1.6;
}
.lead{color:var(--muted);font-size:18px;line-height:1.65;margin:0 0 24px;max-width:540px}
.note{color:var(--muted);font-size:13px;margin:20px 0 0}

.hero-visual{position:relative;height:420px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:20px}
.hero-visual-bg{
  position:absolute;
  inset:0;
  border-radius:24px;
  background:radial-gradient(circle at top, rgba(37,99,235,0.10), transparent 60%);
  border:1px solid rgba(148,163,184,0.25);
  box-shadow:var(--glow);
}
.hero-visual-robot{
  position:relative;
  z-index:1;
  width:200px;
  height:200px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--primary2),var(--primary));
  box-shadow:0 0 60px rgba(124,58,237,0.25);
  animation:float 6s ease-in-out infinite;
  background-size:60% auto;
  background-repeat:no-repeat;
  background-position:center;
}
.hero-visual-robot--logo{
  /* 使用公司无字商标作为主视觉图 */
  background-image:url("./无字商标.png");
}

/* 用户统计圆圈 */
.user-stats-circle{
  position:relative;
  z-index:1;
  width:240px;
  height:240px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--primary2),var(--primary));
  box-shadow:0 0 60px rgba(37,99,235,0.35);
  animation:float 6s ease-in-out infinite;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:auto;
  margin-bottom:auto;
}
.user-stats-title{
  font-size:16px;
  font-weight:600;
  color:rgba(255,255,255,0.9);
  letter-spacing:1px;
}
.user-stats-number{
  font-size:56px;
  font-weight:800;
  color:#ffffff;
  line-height:1;
  text-shadow:0 2px 8px rgba(0,0,0,0.2);
}
.user-stats-label{
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,0.85);
}
.user-stats-note{
  position:relative;
  z-index:1;
  margin-bottom:20px;
  font-size:18px;
  font-weight:700;
  color:var(--primary);
  background:rgba(37,99,235,0.08);
  padding:10px 20px;
  border-radius:999px;
  border:1px solid rgba(37,99,235,0.2);
}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}
.hero-visual-particles{
  display:none;
}
.particle{
  position:absolute;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--primary);
  opacity:0.4;
  animation:orbit 12s linear infinite;
}
.particle:nth-child(1){top:20%;left:10%;animation-delay:0s}
.particle:nth-child(2){top:70%;left:80%;animation-delay:2s}
.particle:nth-child(3){top:40%;left:70%;animation-delay:4s}
.particle:nth-child(4){top:80%;left:20%;animation-delay:6s}
.particle:nth-child(5){top:10%;left:60%;animation-delay:8s}
@keyframes orbit{
  0%{transform:rotate(0deg) translateX(100px) rotate(0deg)}
  100%{transform:rotate(360deg) translateX(100px) rotate(-360deg)}
}

.hero-card{border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.95));box-shadow:var(--shadow);padding:18px}
.hero-card-top{display:flex;gap:10px;margin-bottom:12px}
.pill{font-size:12px;padding:6px 10px;border-radius:999px;background:rgba(37,99,235,0.08);border:1px solid rgba(37,99,235,0.12)}
.pill.muted{background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.08);color:var(--muted)}
.feature-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.feature-title{font-weight:650;margin-bottom:4px}
.feature-desc{color:var(--muted);font-size:13px;line-height:1.5}

.section{padding:64px 0}
.section.alt{
  background:linear-gradient(180deg,#ffffff 0%,#f9fafb 100%);
  border-top:1px solid rgba(148,163,184,0.16);
  border-bottom:1px solid rgba(148,163,184,0.10);
}
.home-download-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.home-download-title{margin:0;font-size:24px;letter-spacing:-0.2px;font-weight:700}
.home-download-sub{color:var(--muted);font-size:14px;line-height:1.6}
.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.download-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}
.download-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.download-card-title{font-weight:750;letter-spacing:-0.2px}
.download-card-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.download-card-meta{color:var(--muted);font-size:13px;line-height:1.4;word-break:break-all}
.download-card-btn{margin-top:6px}
.download-card.is-disabled{opacity:0.72}
.download-card.is-disabled .download-card-btn{pointer-events:none;filter:saturate(0.6)}
.badge.ok{border-color:var(--primary);background:rgba(37,99,235,0.10);color:var(--primary2)}
.home-download-foot{margin-top:12px}
.link{color:var(--primary2);font-weight:600}
.link:hover{text-decoration:underline}
.section h2{
  margin:0 0 24px;
  font-size:24px;
  letter-spacing:-0.2px;
  font-weight:700;
}
.section-intro{
  margin:0 0 20px;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  max-width:640px;
}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{
  border:1px solid rgba(148,163,184,0.25);
  border-radius:16px;
  background:#ffffff;
  padding:24px;
  box-shadow:0 16px 40px rgba(15,23,42,0.04);
  transition:transform 0.18s ease,box-shadow 0.18s ease,border-color 0.18s ease;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 50px rgba(15,23,42,0.10);
  border-color:rgba(37,99,235,0.45);
}
.card h3{margin:0 0 12px;font-size:18px;font-weight:700}
.card p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}

.steps{margin:0;padding-left:18px;color:var(--muted);line-height:1.8}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;border-radius:14px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-weight:600;font-size:15px}
.btn:hover{background:rgba(15,23,42,0.04)}
.btn.primary{
  border:1px solid var(--primary2);
  background:linear-gradient(135deg, var(--primary2), var(--primary));
  color:var(--bg);
  box-shadow:0 10px 30px rgba(37,99,235,0.55);
}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px}

.page{padding:36px 0 54px}
.page h1{margin:0 0 10px;font-size:30px}
.page p{margin:0 0 14px;color:var(--muted);line-height:1.7}

.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:16px;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow)}
.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
.table th{color:var(--text);font-weight:650;background:rgba(0,0,0,0.02)}
.table td{color:var(--muted)}
.table tr:last-child td{border-bottom:none}

.badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:rgba(0,0,0,0.04);color:var(--text)}
.badge.warn{border-color:var(--accent);background:rgba(245,158,11,0.08);color:var(--accent)}

.footer{padding:22px 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--border);padding-top:18px;color:var(--muted)}
.footer-brand{font-weight:700;color:var(--text)}
.footer-links{display:flex;gap:14px;font-size:13px}
.footer-links a:hover{color:var(--text)}

.auth-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,0.35);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:40;
}
.auth-modal-backdrop[hidden]{
  display:none;
}
.auth-modal{
  width:100%;
  max-width:380px;
  background:#ffffff;
  border-radius:20px;
  box-shadow:0 20px 60px rgba(15,23,42,0.25);
  border:1px solid rgba(148,163,184,0.25);
  padding:20px 22px 22px;
}
.auth-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.auth-title{
  font-size:16px;
  font-weight:600;
}
.auth-close{
  border:none;
  background:transparent;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  color:var(--muted);
}
.auth-close:hover{
  color:var(--text);
}
.auth-tabs{
  display:flex;
  gap:6px;
  background:var(--panel2);
  border-radius:999px;
  padding:4px;
  margin-bottom:16px;
}
.auth-tab{
  flex:1;
  border:none;
  background:transparent;
  padding:6px 0;
  font-size:13px;
  border-radius:999px;
  cursor:pointer;
  color:var(--muted);
}
.auth-tab--active{
  background:#ffffff;
  color:var(--text);
  box-shadow:0 6px 16px rgba(15,23,42,0.06);
}
.auth-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.auth-field{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.auth-label{
  font-size:12px;
  color:var(--muted);
}
.auth-input{
  border-radius:10px;
  border:1px solid rgba(148,163,184,0.7);
  padding:8px 10px;
  font-size:14px;
  outline:none;
}
.auth-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 1px rgba(37,99,235,0.45);
}
.auth-error{
  min-height:18px;
  font-size:12px;
  color:#dc2626;
}
.auth-submit{
  width:100%;
  justify-content:center;
}
.auth-tip{
  margin:0;
  margin-top:2px;
  font-size:12px;
  color:var(--muted);
}

@media (max-width: 900px){
  .hero-grid{grid-template-columns:1fr}
  .hero h1{font-size:34px}
  .grid-3{grid-template-columns:1fr}
  .hero-visual{height:280px}
  .hero-visual-robot{width:140px;height:140px;font-size:64px}
  .user-stats-circle{width:180px;height:180px}
  .user-stats-title{font-size:14px}
  .user-stats-number{font-size:42px}
  .user-stats-label{font-size:12px}
  .user-stats-note{font-size:15px;padding:8px 14px;margin-bottom:14px}
  .hero-features{grid-template-columns:1fr}
}
@media (max-width: 600px){
  .hero{padding:48px 0 20px}
  .hero h1{font-size:28px}
  .section{padding:32px 0}
  .page{padding:28px 0 42px}
}

/* Toast 提示消息 */
.toast{
  position:fixed;
  top:80px;
  right:20px;
  background:#ffffff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px 18px;
  box-shadow:0 10px 30px rgba(15,23,42,0.15);
  font-size:14px;
  z-index:50;
  opacity:0;
  transform:translateX(400px);
  transition:all 0.3s ease;
  max-width:320px;
}
.toast-show{
  opacity:1;
  transform:translateX(0);
}
.toast-success{
  border-left:4px solid #10b981;
  color:#065f46;
}
.toast-error{
  border-left:4px solid #ef4444;
  color:#991b1b;
}
.toast-info{
  border-left:4px solid var(--primary);
  color:var(--primary2);
}

/* 页面头部 */
.page-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:24px;
}

/* 论坛控制区 */
.forum-controls{
  margin-bottom:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.forum-search{
  width:100%;
}
.search-input{
  width:100%;
  max-width:400px;
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:14px;
  outline:none;
}
.search-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 1px rgba(37,99,235,0.45);
}
.forum-filters{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.filter-btn{
  padding:8px 14px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#ffffff;
  font-size:13px;
  cursor:pointer;
  color:var(--muted);
  transition:all 0.2s ease;
}
.filter-btn:hover{
  border-color:var(--primary);
  color:var(--text);
}
.filter-btn--active{
  border-color:var(--primary);
  background:var(--primary);
  color:#ffffff;
}

/* 帖子列表 */
.posts-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.post-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
  background:#ffffff;
  cursor:pointer;
  transition:all 0.2s ease;
}
.post-item:hover{
  border-color:var(--primary);
  box-shadow:0 4px 12px rgba(37,99,235,0.1);
  transform:translateY(-2px);
}
.post-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.post-title{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
}
.post-meta{
  display:flex;
  gap:16px;
  font-size:12px;
  color:var(--muted);
}
.empty-message{
  text-align:center;
  padding:40px 20px;
  color:var(--muted);
  font-size:14px;
}

/* 模态框 */
.modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,0.35);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:40;
}
.modal-backdrop[hidden]{
  display:none;
}
.modal{
  width:100%;
  max-width:600px;
  background:#ffffff;
  border-radius:20px;
  box-shadow:0 20px 60px rgba(15,23,42,0.25);
  border:1px solid rgba(148,163,184,0.25);
  padding:24px;
  max-height:90vh;
  overflow-y:auto;
}
.modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px;
}
.modal-title{
  font-size:18px;
  font-weight:600;
}
.modal-close{
  border:none;
  background:transparent;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  color:var(--muted);
}
.modal-close:hover{
  color:var(--text);
}
.modal-body{
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* 表单 */
.form-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.form-label{
  font-size:13px;
  font-weight:600;
  color:var(--text);
}
.form-input{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:14px;
  outline:none;
}
.form-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 1px rgba(37,99,235,0.45);
}
.form-textarea{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:14px;
  outline:none;
  font-family:inherit;
  resize:vertical;
}
.form-textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 1px rgba(37,99,235,0.45);
}
.form-error{
  min-height:18px;
  font-size:12px;
  color:#dc2626;
}

@media (max-width: 768px){
  .page-header{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .forum-controls{
    gap:12px;
  }
  .search-input{
    max-width:100%;
  }
  .modal{
    max-width:95%;
    padding:20px;
  }
}

/* 返回链接 */
.back-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--primary);
  font-size:14px;
  margin-bottom:20px;
  padding:6px 0;
}
.back-link:hover{
  text-decoration:underline;
}

/* 帖子详情 */
.post-detail-card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:24px;
  background:#ffffff;
  margin-bottom:32px;
}
.post-detail-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.post-detail-header h1{
  margin:0;
  font-size:24px;
  font-weight:700;
}
.post-content{
  margin-top:16px;
  line-height:1.8;
  color:var(--text);
  white-space:pre-wrap;
}

/* 回复区域 */
.replies-section{
  margin-top:32px;
}
.replies-section h2{
  font-size:18px;
  margin-bottom:16px;
}
.replies-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:24px;
}
.reply-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  background:#ffffff;
}
.reply-meta{
  display:flex;
  gap:12px;
  margin-bottom:10px;
  font-size:12px;
}
.reply-author{
  font-weight:600;
  color:var(--text);
}
.reply-time{
  color:var(--muted);
}
.reply-content{
  line-height:1.7;
  color:var(--text);
  white-space:pre-wrap;
}
.reply-form{
  border:1px solid var(--border);
  border-radius:12px;
  padding:20px;
  background:var(--panel);
}
.reply-form h3{
  margin:0 0 16px;
  font-size:16px;
}

/* 需求列表 */
.needs-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.need-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
  background:#ffffff;
  cursor:pointer;
  transition:all 0.2s ease;
}
.need-item:hover{
  border-color:var(--primary);
  box-shadow:0 4px 12px rgba(37,99,235,0.1);
  transform:translateY(-2px);
}
.need-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.need-title{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
  flex:1;
}
.need-badges{
  display:flex;
  gap:8px;
  flex-shrink:0;
}
.need-meta{
  display:flex;
  gap:16px;
  font-size:12px;
  color:var(--muted);
  flex-wrap:wrap;
}

/* 状态徽章 */
.status-pending{
  background:rgba(245,158,11,0.1);
  border-color:rgba(245,158,11,0.3);
  color:#d97706;
}
.status-progress{
  background:rgba(59,130,246,0.1);
  border-color:rgba(59,130,246,0.3);
  color:#2563eb;
}
.status-resolved{
  background:rgba(16,185,129,0.1);
  border-color:rgba(16,185,129,0.3);
  color:#059669;
}
.status-closed{
  background:rgba(107,114,128,0.1);
  border-color:rgba(107,114,128,0.3);
  color:#6b7280;
}

/* 需求详情 */
.need-detail-card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:24px;
  background:#ffffff;
  margin-bottom:32px;
}
.need-detail-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.need-detail-header h1{
  margin:0;
  font-size:24px;
  font-weight:700;
  flex:1;
}
.need-info-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin:16px 0;
}
.need-info-item{
  padding:12px;
  background:var(--panel);
  border-radius:10px;
}
.need-info-label{
  font-size:12px;
  color:var(--muted);
  margin-bottom:4px;
}
.need-info-value{
  font-size:14px;
  font-weight:600;
  color:var(--text);
}
.need-section{
  margin-top:20px;
}
.need-section h3{
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
}
.need-content{
  line-height:1.8;
  color:var(--text);
  white-space:pre-wrap;
}
.status-select{
  padding:6px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  outline:none;
}
.status-select:hover{
  border-color:var(--primary);
}

/* 已关联的支持服务 */
.linked-supports-section{
  margin-top:32px;
}
.linked-supports-section h2{
  font-size:18px;
  margin-bottom:16px;
}
.linked-supports-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.support-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  background:#ffffff;
}
.support-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.support-header h4{
  margin:0;
  font-size:16px;
  font-weight:600;
  flex:1;
}
.support-info{
  font-size:14px;
  line-height:1.7;
  color:var(--text);
}
.support-info p{
  margin:6px 0;
}

/* 寻找支持 */
.find-support-section{
  margin-top:24px;
}
.matched-supports-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.support-match-item{
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  background:#ffffff;
}
.support-match-item .btn{
  margin-top:12px;
}

/* 支持服务列表 */
.supports-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.support-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
  background:#ffffff;
  transition:all 0.2s ease;
}
.support-card:hover{
  border-color:var(--primary);
  box-shadow:0 4px 12px rgba(37,99,235,0.1);
}
.support-title{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
  flex:1;
}
.support-info-item{
  margin:8px 0;
}
.support-meta{
  display:flex;
  gap:16px;
  font-size:12px;
  color:var(--muted);
  margin-top:12px;
  flex-wrap:wrap;
}

/* 资源中心 */
.resources-controls{
  margin-bottom:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.category-filter{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.filter-btn.active{
  border-color:var(--primary);
  background:var(--primary);
  color:#ffffff;
}
.search-box{
  width:100%;
}
.resources-list{
  display:flex;
  flex-direction:column;
  gap:32px;
}
.resource-category-section{
  margin-bottom:16px;
}
.resource-category-title{
  font-size:20px;
  font-weight:700;
  margin:0 0 16px;
  color:var(--text);
}
.resource-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px;
}
.resource-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
  background:#ffffff;
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:all 0.2s ease;
}
.resource-card:hover{
  border-color:var(--primary);
  box-shadow:0 4px 12px rgba(37,99,235,0.1);
  transform:translateY(-2px);
}
.resource-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.resource-actions{
  display:flex;
  gap:6px;
}
.btn-icon{
  border:none;
  background:transparent;
  cursor:pointer;
  font-size:16px;
  padding:4px;
  opacity:0.6;
  transition:opacity 0.2s ease;
}
.btn-icon:hover{
  opacity:1;
}
.resource-card-title{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
}
.resource-card-description{
  margin:0;
  font-size:13px;
  color:var(--muted);
  line-height:1.6;
  flex:1;
}
.resource-link{
  align-self:flex-start;
  font-size:13px;
  padding:8px 14px;
}

/* 删除确认模态框 */
.modal-small{
  max-width:400px;
}
.modal-actions{
  display:flex;
  gap:12px;
  margin-top:16px;
}
.modal-actions .btn{
  flex:1;
}
.btn.danger{
  border-color:#dc2626;
  background:#dc2626;
  color:#ffffff;
}
.btn.danger:hover{
  background:#b91c1c;
}

/* 汉堡菜单（移动端） */
.hamburger{
  display:none;
  flex-direction:column;
  gap:4px;
  background:transparent;
  border:none;
  cursor:pointer;
  padding:8px;
}
.hamburger span{
  display:block;
  width:24px;
  height:2px;
  background:var(--text);
  transition:all 0.3s ease;
}
.hamburger.active span:nth-child(1){
  transform:rotate(45deg) translate(5px,5px);
}
.hamburger.active span:nth-child(2){
  opacity:0;
}
.hamburger.active span:nth-child(3){
  transform:rotate(-45deg) translate(7px,-6px);
}

/* 移动端响应式设计 */
@media (max-width: 768px){
  /* 导航栏 */
  .header-inner{
    height:56px;
  }
  .brand-text{
    font-size:16px;
  }
  .brand-mark{
    width:32px;
    height:32px;
  }
  
  /* 显示汉堡菜单 */
  .hamburger{
    display:flex;
  }
  
  /* 隐藏导航链接，改为下拉菜单 */
  .nav{
    position:fixed;
    top:56px;
    left:0;
    right:0;
    flex-direction:column;
    background:#ffffff;
    border-bottom:1px solid var(--border);
    box-shadow:0 4px 12px rgba(15,23,42,0.1);
    padding:16px 20px;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height 0.3s ease;
  }
  .nav.active{
    max-height:500px;
  }
  .nav a{
    padding:12px 0;
    border-radius:0;
    border-bottom:1px solid var(--border);
    width:100%;
  }
  .nav a:last-child{
    border-bottom:none;
  }
  .nav-auth{
    margin-left:0;
    margin-top:8px;
    text-align:center;
  }
  
  /* 页面布局 */
  .container{
    padding:0 16px;
  }
  .page{
    padding:24px 0 36px;
  }
  .page h1{
    font-size:24px;
  }
  
  /* 表单和模态框 */
  .modal{
    max-width:95%;
    padding:20px 16px;
    max-height:85vh;
  }
  .modal-title{
    font-size:16px;
  }
  .form-input,.form-textarea{
    font-size:16px;
  }
  
  /* 卡片网格 */
  .grid-3{
    grid-template-columns:1fr;
  }
  .resource-grid{
    grid-template-columns:1fr;
  }
  
  /* 需求详情 */
  .need-info-grid{
    grid-template-columns:1fr;
  }
  .need-detail-header{
    flex-direction:column;
    align-items:flex-start;
  }
  
  /* 帖子和需求列表 */
  .post-header,.need-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .post-meta,.need-meta,.support-meta{
    flex-direction:column;
    gap:6px;
  }
  
  /* 按钮 */
  .btn{
    font-size:14px;
    padding:10px 16px;
  }
  .cta-row{
    flex-direction:column;
  }
  .cta-row .btn{
    width:100%;
  }
  
  /* Toast */
  .toast{
    right:16px;
    left:16px;
    max-width:none;
  }
  
  /* 论坛控制 */
  .forum-filters{
    gap:6px;
  }
  .filter-btn{
    font-size:12px;
    padding:6px 12px;
  }
  
  /* 资源控制 */
  .category-filter{
    gap:6px;
  }
}

/* 小屏幕优化 */
@media (max-width: 480px){
  .header-inner{
    height:52px;
  }
  .brand-text{
    font-size:14px;
  }
  .brand-mark{
    width:28px;
    height:28px;
  }
  .page h1{
    font-size:20px;
  }
  .modal{
    padding:16px 12px;
  }
  .card,.post-item,.need-item,.support-card,.resource-card{
    padding:14px;
  }
  .badge{
    font-size:11px;
    padding:4px 8px;
  }
}

/* 触摸屏优化 */
@media (hover: none) and (pointer: coarse){
  .btn,.filter-btn,.nav a{
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .post-item,.need-item,.support-card,.resource-card{
    padding:16px;
  }
}

/* 可访问性：高对比度模式 */
@media (prefers-contrast: high){
  :root{
    --border:rgba(15,23,42,0.3);
  }
  .btn,.form-input,.form-textarea{
    border-width:2px;
  }
}

/* 可访问性：减少动画 */
@media (prefers-reduced-motion: reduce){
  *{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}


/* ========================================
   龙虾市场样式
   ======================================== */

/* 横向网格布局 - 4列排开 */
.market-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
  margin-top: 2rem;
}

.market-section {
  display: flex;
  flex-direction: column;
  padding-left: 1.5rem;
  border-left: 1px dashed var(--border);
}

.market-section:first-child {
  padding-left: 0;
  border-left: none;
}

.market-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border);
}

.market-header h3 {
  margin: 0;
  font-size: 1rem;
  color: var(--text);
  font-weight: 600;
}

.market-more {
  color: var(--primary);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.market-more:hover {
  color: var(--primary2);
  text-decoration: underline;
}

.market-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.market-item {
  padding: 0;
  cursor: pointer;
  transition: all 0.2s ease;
}

.market-item:hover {
  opacity: 0.8;
}

.market-item-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}

.market-item-category {
  display: inline-block;
  padding: 0.15rem 0.4rem;
  background: rgba(37, 99, 235, 0.08);
  color: var(--primary);
  border-radius: 3px;
  font-size: 0.7rem;
  font-weight: 500;
}

.market-item-status {
  display: inline-block;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  font-size: 0.7rem;
  font-weight: 500;
}

.status-pending {
  background: #fff3cd;
  color: #856404;
}

.status-progress {
  background: #d1ecf1;
  color: #0c5460;
}

.status-completed {
  background: #d4edda;
  color: #155724;
}

.status-closed {
  background: #f8d7da;
  color: #721c24;
}

.market-item-time {
  color: var(--muted);
  font-size: 0.75rem;
  margin-left: auto;
}

.market-item-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 0.4rem;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.market-item-desc {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.4;
  margin-bottom: 0.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.market-item-meta {
  display: flex;
  gap: 0.75rem;
  color: var(--muted);
  font-size: 0.75rem;
  flex-wrap: wrap;
}

.market-item-meta span {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.market-empty {
  text-align: center;
  padding: 2rem 0.5rem;
  color: var(--muted);
  font-size: 0.85rem;
}

.market-error {
  text-align: center;
  padding: 1.5rem 0.5rem;
  color: #dc3545;
  font-size: 0.85rem;
}

.loading-placeholder {
  text-align: center;
  padding: 1.5rem 0.5rem;
  color: var(--muted);
  font-size: 0.85rem;
}

/* 响应式设计 */
@media (max-width: 1200px) {
  .market-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .market-grid {
    grid-template-columns: 1fr;
  }

  .market-section {
    padding: 1.25rem;
  }

  .market-header h3 {
    font-size: 1rem;
  }

  .market-list {
    max-height: 300px;
  }

  .market-item {
    padding: 0.75rem;
  }

  .market-item-title {
    font-size: 0.85rem;
  }

  .market-item-meta {
    gap: 0.5rem;
    font-size: 0.7rem;
  }
}

@media (max-width: 480px) {
  .market-section {
    padding: 1rem;
  }

  .market-header {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
  }

  .market-more {
    font-size: 0.8rem;
  }

  .market-item-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
  }

  .market-item-time {
    margin-left: 0;
  }

  .market-item-meta {
    flex-direction: column;
    gap: 0.4rem;
  }
}

/* 商业级门户页脚 */
.footer-v2 {
  background: #000;
  color: rgba(255, 255, 255, 0.6);
  padding: 80px 0 40px;
  font-size: 14px;
  margin-top: 60px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 60px;
}
.footer-col h4 {
  color: #fff;
  font-size: 16px;
  margin-bottom: 24px;
  font-weight: 700;
}
.footer-links-v2 {
  display: grid;
  gap: 12px;
}
.footer-links-v2 a {
  transition: color 0.3s;
}
.footer-links-v2 a:hover {
  color: #fff;
}
.footer-brand-info {
  max-width: 280px;
}
.footer-brand-info .brand {
  color: #fff;
  margin-bottom: 16px;
}
.footer-bottom {
  padding-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 960px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-brand-info {
    grid-column: span 2;
    max-width: none;
    margin-bottom: 20px;
  }
}
