/* === GM Report - Game Marketing Site === */
:root {
  --bg: #0f0f17;
  --surface: #1a1a2e;
  --surface2: #232340;
  --border: #2a2a3e;
  --text: #e1e1e6;
  --text2: #888;
  --text3: #555;
  --accent: #e94560;
  --accent2: #ff6b6b;
  --success: #22c55e;
  --warn: #fbbf24;
  --blue: #3b82f6;
  --purple: #8b5cf6;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}

/* Nav */
.navbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}
.navbar .logo{font-size:16px;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px;text-decoration:none}
.navbar .nav-links{display:flex;gap:24px}
.navbar .nav-links a{font-size:13px;color:#666;text-decoration:none;transition:color .2s;padding:4px 0;position:relative}
.navbar .nav-links a:hover{color:var(--accent)}
.navbar .nav-links a.active{color:var(--accent)}
.navbar .nav-links a.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px}

.container{max-width:1200px;margin:0 auto;padding:24px}

/* Stats */
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.stat-card{background:var(--surface);border-radius:10px;padding:18px 20px;border:1px solid var(--border)}
.stat-card .lbl{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.stat-card .val{font-size:28px;font-weight:700;color:var(--accent)}
.stat-card .sub{font-size:12px;color:var(--text3);margin-top:2px}
.stat-card .chg{color:var(--success);font-size:12px}
.stat-card.highlight{border-color:var(--accent);background:#1e1a3e}
.stat-card.highlight .val{color:var(--accent2)}
/* 手机竖屏：2列，更紧凑 */
@media(max-width:640px){
  .stats-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px}
  .stat-card{padding:12px 14px;border-radius:8px}
  .stat-card .lbl{font-size:9px;margin-bottom:2px}
  .stat-card .val{font-size:20px}
  .stat-card .sub{font-size:10px;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* 超小屏：1列 */
@media(max-width:380px){
  .stats-row{grid-template-columns:1fr 1fr;gap:8px}
  .stat-card{padding:10px 12px}
  .stat-card .val{font-size:18px}
}

/* Section label */
.section-label{display:flex;align-items:center;gap:10px;margin-bottom:16px;margin-top:8px}
.section-label .line{flex:1;height:1px;background:var(--border)}
.section-label .text{font-size:13px;font-weight:600;color:#888;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}

/* Hot topics */
.hot-section{background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:20px;margin-bottom:24px}
.hot-section h2{font-size:14px;font-weight:600;margin-bottom:14px;color:#fff;display:flex;align-items:center;gap:6px}
.hot-tags{display:flex;flex-wrap:wrap;gap:8px}
.hot-tag{font-size:12px;padding:4px 12px;border-radius:16px;background:#2a2a3e;color:#ccc;display:inline-block}
.hot-tag.high{background:var(--accent);color:#fff;font-weight:600}
.hot-tag.med{background:#3b3b5c;color:#e1e1e6}
.hot-tag.low{background:#1e1e32;color:#888}

/* Articles */
.article-section{background:var(--surface);border-radius:10px;border:1px solid var(--border);overflow:hidden}
.article-section .hdr{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.article-section .hdr h2{font-size:14px;font-weight:600}
.article-section .hdr .ctrl{display:flex;gap:8px}
.article-section .hdr .ctrl a{font-size:11px;color:#888;text-decoration:none;padding:2px 10px;border-radius:4px;border:1px solid var(--border)}
.article-section .hdr .ctrl a.active{color:var(--accent);border-color:var(--accent)}
.article-item{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:start;transition:background .2s}
.article-item:hover{background:#1f1f35}
.article-item:last-child{border-bottom:none}
.article-item .rank{font-size:12px;color:var(--text3);font-weight:700;min-width:20px;padding-top:2px}
.article-item .rank.hot{color:var(--accent)}
.article-item .body{flex:1}
.article-item .body .title{font-size:13px;font-weight:500;color:var(--text);text-decoration:none;display:block;line-height:1.4;margin-bottom:2px}
.article-item .body .title:hover{color:var(--accent)}
.article-item .body .meta{font-size:11px;color:var(--text3);display:flex;gap:10px;flex-wrap:wrap}
.article-item .body .meta .source{color:#888}
.article-item .body .meta .case-tag{font-size:9px;background:#1a3a2a;color:#6ee7b7;padding:1px 6px;border-radius:4px}

/* Products */
.new-products-section{background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:20px;margin-bottom:24px}
.new-products-section .shdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.new-products-section .shdr h2{font-size:14px;font-weight:600;color:#fff;display:flex;align-items:center;gap:6px}
.new-products-section .shdr .badge{font-size:10px;background:var(--accent);color:#fff;padding:2px 8px;border-radius:10px;font-weight:600}
.new-products-section .shdr .view-all{font-size:12px;color:var(--accent);text-decoration:none}
.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.products-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.products-grid{grid-template-columns:1fr}}
.product-card{background:var(--surface2);border-radius:10px;overflow:hidden;border:1px solid var(--border);transition:border-color .2s,transform .2s}
.product-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.product-card .ptop{padding:16px 16px 12px;display:flex;gap:12px;align-items:center}
.product-card .picon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.product-card .pinfo{flex:1;min-width:0}
.product-card .pinfo .name{font-size:14px;font-weight:600;color:#fff;margin-bottom:2px}
.product-card .pinfo .pub{font-size:11px;color:#888;margin-bottom:4px}
.product-card .pinfo .pdate{font-size:10px;color:var(--text3);display:flex;align-items:center;gap:4px}
.product-card .pinfo .sb{font-size:10px;padding:2px 8px;border-radius:8px;font-weight:600;display:inline-block;margin-top:6px}
.sb-done{background:#1a3a2a;color:#6ee7b7;border:1px solid #065f46}
.sb-doing{background:#1a365d;color:#63b3ed;border:1px solid #2b6cb0}
.sb-plan{background:#2d3748;color:#e2e8f0;border:1px solid #4a5568}
.product-card .pdiv{height:1px;background:var(--border);margin:0 16px}
.product-card .ptags{padding:10px 16px}
.product-card .ptags .trow{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.product-card .ptags .trow:last-child{margin-bottom:0}
.product-card .ptags .tlab{font-size:10px;color:var(--text3);margin-right:2px;display:flex;align-items:center}
.product-card .ptags .mktag{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--surface);color:#999;border:1px solid #333}
.product-card .ptags .mktag.hot{border-color:var(--accent);color:var(--accent2)}
.product-card .psum{padding:0 16px 14px}
.product-card .psum .si{font-size:11px;color:#888;margin-bottom:4px;display:flex;gap:6px;align-items:start}
.product-card .psum .si .dot{color:var(--accent);flex-shrink:0}
.product-card .pfoot{padding:8px 16px;background:#1e1e32;display:flex;justify-content:space-between;align-items:center}
.product-card .pfoot .dl{font-size:11px;color:#888;text-decoration:none}
.product-card .pfoot .dl:hover{color:var(--accent)}
.product-card .pfoot .arw{font-size:10px;color:var(--text3)}
.product-card.empty{border-style:dashed;border-color:#333;background:var(--surface)}
.product-card.empty .ebd{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;text-align:center}
.product-card.empty .eicon{font-size:28px;margin-bottom:8px;opacity:.3}
.product-card.empty .etxt{font-size:12px;color:var(--text3);line-height:1.6}

/* Sidebar */
.sidebar-section{background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:20px;margin-bottom:16px}
.sidebar-section h3{font-size:13px;font-weight:600;margin-bottom:12px;color:#fff}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.calendar-grid .day{font-size:11px;color:var(--text3);padding:4px 0}
.calendar-grid .dn{font-size:12px;color:#888;padding:4px 0;border-radius:4px;cursor:default}
.calendar-grid .dn.today{background:var(--accent);color:#fff;font-weight:600}
.calendar-grid .dn.has{color:#ccc}
.calendar-grid .dn:hover{background:#2a2a3e}

.source-list .si2{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:12px}
.source-list .si2:last-child{border-bottom:none}
.source-list .si2 .nm{color:#ccc}
.source-list .si2 .ct{color:var(--text3)}

.main-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}
@media(max-width:768px){.main-grid{grid-template-columns:1fr}}

/* Footer */
.footer{text-align:center;padding:32px;font-size:12px;color:#333}

/* ===== ARCHIVE PAGE ===== */
.archive-header{text-align:center;padding:40px 20px 24px}
.archive-header h1{font-size:22px;font-weight:700;color:#fff;margin-bottom:8px}
.archive-header p{font-size:13px;color:#888}
.archive-controls{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}
.archive-controls input,.archive-controls select{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;outline:none}
.archive-controls input{flex:1;min-width:200px}
.archive-controls input:focus,.archive-controls select:focus{border-color:var(--accent)}
.archive-controls select{min-width:120px}

.issue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.issue-card{background:var(--surface);border-radius:10px;border:1px solid var(--border);padding:16px;transition:border-color .2s}
.issue-card:hover{border-color:var(--accent)}
.issue-card .inum{font-size:10px;color:var(--accent);font-weight:600;margin-bottom:4px}
.issue-card .idate{font-size:13px;font-weight:600;color:#fff;margin-bottom:6px}
.issue-card .itop{font-size:12px;color:#999;line-height:1.5;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.issue-card .istats{display:flex;gap:12px;font-size:10px;color:var(--text3)}
.issue-card .istats span{display:flex;align-items:center;gap:4px}

/* ===== CASES PAGE ===== */
.case-header{text-align:center;padding:40px 20px 24px}
.case-header h1{font-size:22px;font-weight:700;color:#fff;margin-bottom:8px}
.case-header p{font-size:13px;color:#888;max-width:500px;margin:0 auto}
