/* ================================================================
   数字游民数据中枢 — 共享样式（移动端优先）
   基准: 375px (iPhone SE) → 768px (平板) → 1024px+ (桌面)
   ================================================================ */

/* --- Reset & Variables --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f5f4f1;--surface:#fff;--border:#e4e3e0;
  --text:#1a1a1e;--text2:#6b6a66;--text3:#9a9995;
  --accent:#d97706;--accent-light:#fef3c7;
  --green:#16a34a;--green-bg:#dcfce7;
  --red:#dc2626;--red-bg:#fef2f2;
  --blue:#1d4ed8;--blue-bg:#eff6ff;
  --radius:8px;
  --nav-height:48px;
}
html{font-size:15px;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);line-height:1.6;font-size:.9rem;-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100vw}
@media(max-width:899px){body{padding-bottom:70px}}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

/* --- Header (mobile-first) --- */
.site-header{background:#1c1917;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.header-inner{max-width:1200px;margin:0 auto;padding:0 14px;display:flex;align-items:center;justify-content:space-between;height:52px}

.header-logo{font-weight:700;font-size:.82rem;color:#fafaf9;display:flex;align-items:center;gap:7px;letter-spacing:-0.2px;flex-shrink:0}
.header-logo .logo-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}

/* Desktop nav — compact + scrollable */
.header-nav{display:none;align-items:center;gap:4px;flex-shrink:1;overflow:visible;scrollbar-width:none;-ms-overflow-style:none;padding:0 8px}
.header-nav::-webkit-scrollbar{display:none}
.header-nav a{padding:5px 7px;border-radius:5px;font-size:.65rem;color:#a8a29e;white-space:nowrap;transition:all .15s;font-weight:500;flex-shrink:0}
.header-nav a:hover{color:#fafaf9;background:rgba(255,255,255,.06)}
.header-nav a.nav-cta{background:var(--accent);color:#fff;font-weight:600;margin-left:2px;animation:ctaPulse 2s ease-in-out infinite}
.header-nav a.nav-cta:hover{background:#b45309;animation:none}
@keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,.4)}50%{box-shadow:0 0 0 6px rgba(217,119,6,0)}}
.header-nav a.nav-search{font-size:.8rem;padding:5px 6px;margin:0 1px}
.header-nav a.nav-login{color:#a8a29e;font-size:.65rem;margin-left:2px}
.header-nav a.nav-user{color:#c4b5fd;font-size:.65rem;font-weight:600;margin-left:2px;background:rgba(139,92,246,.1)}
.header-nav a.nav-user:hover{background:rgba(139,92,246,.2);color:#e9d5ff}
.nav-group{display:inline-flex;align-items:center;gap:0}
.nav-sep{display:inline-block;width:1px;height:14px;background:rgba(255,255,255,.12);margin:0 4px;align-self:center;flex-shrink:0}

/* Dropdown nav */
.nav-drop{position:relative;flex-shrink:0}
.nav-drop::after{content:'';position:absolute;top:100%;left:0;right:0;height:10px;z-index:199}
.nav-label{display:inline-block;font-size:.68rem;color:#e4e3e0;font-weight:700;letter-spacing:.3px;padding:6px 8px;white-space:nowrap;cursor:pointer;border-radius:4px;transition:all .15s;user-select:none}
.nav-label:hover{color:#fff;background:rgba(255,255,255,.12)}
.nav-drop-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;background:#2a2725;border:1px solid rgba(255,255,255,.08);border-radius:8px;min-width:140px;padding:4px;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.nav-drop:hover .nav-drop-menu{display:block}
.nav-drop-menu a{display:block!important;padding:7px 14px!important;border-radius:6px!important;font-size:.7rem!important;color:#a8a29e!important;white-space:nowrap!important;transition:all .12s!important}
.nav-drop-menu a:hover{color:#fafaf9!important;background:rgba(255,255,255,.06)!important}

/* Subnav — 1人公司项目分栏 */
.subnav{background:#141210;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:52px;z-index:99}
.subnav-inner{max-width:1200px;margin:0 auto;padding:0 14px;display:flex;align-items:center;gap:2px;height:42px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.subnav-inner::-webkit-scrollbar{display:none}
.subnav-item{-webkit-tap-highlight-color:transparent;user-select:none}
.subnav-brand{font-size:.65rem;font-weight:700;color:var(--accent);letter-spacing:1px;padding:4px 10px;margin-right:6px;border-right:1px solid rgba(255,255,255,.1);white-space:nowrap;flex-shrink:0}
.subnav-item{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:7px;font-size:.68rem;color:#a8a29e;text-decoration:none;white-space:nowrap;transition:all .12s;flex-shrink:0;font-weight:500}
.subnav-item:hover{color:#fafaf9;background:rgba(255,255,255,.04)}
.subnav-item.active{color:#fafaf9;background:rgba(217,119,6,.15);font-weight:600}
.subnav-item .sn-icon{font-size:.75rem}
.subnav-item .sn-label{font-size:.65rem}
@media(min-width:640px){.subnav-item{padding:5px 14px}.subnav-item .sn-label{font-size:.68rem}}

/* Mobile bottom bar */
.mob-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#1c1917;border-top:1px solid rgba(255,255,255,.08);z-index:98;padding:4px 0;padding-bottom:max(4px,env(safe-area-inset-bottom))}
.mob-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;text-decoration:none;color:#6b6a66;font-size:.55rem;transition:color .12s;-webkit-tap-highlight-color:transparent}
.mob-item:hover,.mob-item:active{color:var(--accent)}
.mob-item .mi-icon{font-size:.9rem}
.mob-item .mi-label{font-size:.52rem}
@media(min-width:900px){.mob-bar{display:none}}

/* User dropdown */
.user-dropdown.show{display:block!important}
.user-dropdown a:hover{background:#f5f4f1}

/* Hamburger */
.hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:40px;height:40px;padding:0;cursor:pointer;background:none;border:none;border-radius:6px;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.hamburger:active{background:rgba(255,255,255,.06)}
.hamburger span{display:block;width:18px;height:2px;background:#a8a29e;border-radius:1px;transition:all .2s}
.hamburger.open span:nth-child(1){transform:translateY(6px)rotate(45deg);background:#fafaf9}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg);background:#fafaf9}

/* Mobile nav overlay */
.mobile-nav{display:none;position:fixed;top:52px;left:0;right:0;bottom:0;background:#1c1917;z-index:99;padding:8px 16px;overflow-y:auto;flex-direction:column;gap:0}
.mobile-nav.open{display:flex}
.mobile-nav a{display:block;padding:13px 14px;border-radius:6px;font-size:.82rem;color:#a8a29e;border-bottom:1px solid rgba(255,255,255,.05)}
.mobile-nav a:hover{background:rgba(255,255,255,.04);color:#fafaf9}
.mobile-nav .mn-divider{font-size:.6rem;color:#57534e;text-transform:uppercase;letter-spacing:1.5px;padding:20px 14px 8px}
.mobile-nav .mn-user{font-size:.72rem;color:#78716c;padding:8px 14px}
.mobile-nav .nav-cta{color:var(--accent)!important;font-weight:600}
.mobile-nav .nav-cta2{color:#c4b5fd!important;font-weight:600}

/* --- Layout (mobile-first: single column) --- */
.container{padding:20px 14px;max-width:1200px;margin:0 auto}
.page{max-width:1200px;margin:0 auto;padding:20px 14px;display:grid;grid-template-columns:1fr;gap:20px}

/* --- Hero --- */
.hero{margin-bottom:20px}
.hero h1{font-size:1.2rem;font-weight:700;line-height:1.3;margin-bottom:4px}
.hero .hero-sub{font-size:.8rem;color:var(--text2);line-height:1.5}

/* --- Cards --- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}

/* --- Stats --- */
.stats-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:20px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;text-align:center}
.stat-card .stat-num{font-size:1.4rem;font-weight:700;color:var(--text);line-height:1.1}
.stat-card .stat-label{font-size:.65rem;color:var(--text3);margin-top:2px}

/* --- Tool grid --- */
.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:20px}
.tool-card{display:flex;align-items:flex-start;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:visible}
.tool-card:hover{border-color:#d4d2cf;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.tool-card .tc-icon{font-size:18px;flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#f5f4f1;border-radius:6px}
.tool-card .tc-info{flex:1;min-width:0}
.tool-card .tc-title{font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:1px}
.tool-card .tc-desc{font-size:.68rem;color:var(--text3);line-height:1.35}
.tc-badge{position:absolute;top:-5px;right:-5px;background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:3px;line-height:1;box-shadow:0 1px 3px rgba(220,38,38,.35)}

/* --- Data banner --- */
.data-banner{margin-bottom:20px}
.data-banner .db-label{font-size:.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;font-weight:600}
.data-banner .db-row{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.db-fact{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:var(--radius);padding:10px 12px;text-align:center}
.db-fact .db-num{font-size:1.3rem;font-weight:700;color:#0369a1;line-height:1.1}
.db-fact .db-unit{font-size:.75rem;font-weight:500;color:#0284c7}
.db-fact .db-desc{font-size:.65rem;color:#0284c7;margin-top:2px}
.db-fact .db-source{font-size:.6rem;color:#7dd3fc;margin-top:1px}

/* --- Data Table (mobile: card fallback) --- */
.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:.75rem;min-width:600px}
.data-table th{background:#fafaf9;padding:8px 10px;text-align:left;font-size:.65rem;color:var(--text3);font-weight:500;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap}
.data-table td{padding:8px 10px;border-bottom:1px solid #f5f4f1}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:#fafaf9}

/* --- Sidebar --- */
.sidebar{display:flex;flex-direction:column;gap:12px}
.sidebar-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}
.sidebar-card h3{font-size:.7rem;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f5f4f1}

/* Lab sidebar items */
.lab-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;margin-bottom:2px;transition:background .1s}
.lab-item:hover{background:#f5f4f1}
.lab-item .lab-icon{font-size:14px;flex-shrink:0}
.lab-item .lab-info{flex:1;min-width:0}
.lab-item .lab-title{font-size:.78rem;color:var(--text);font-weight:500}
.lab-item .lab-desc{font-size:.68rem;color:var(--text3);margin-top:1px}
.beta-badge{display:inline-block;font-size:.6rem;font-weight:600;background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;padding:1px 5px;border-radius:3px;margin-left:3px;vertical-align:middle}

/* --- Footer (mobile-first, dark, 完整工具地图) --- */
.site-footer{background:#1c1917;color:#78716c;font-size:.68rem;line-height:1.8;margin-top:40px;padding:0}
.footer-inner{max-width:1100px;margin:0 auto;padding:36px 14px 20px}

/* 数据中枢横条 */
.footer-stats-bar{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.06)}
.fs-item{text-align:center;min-width:50px;text-decoration:none;display:block;transition:transform .15s,opacity .15s}.fs-item:hover{transform:translateY(-2px);opacity:.85}
.fs-item .fs-num{display:block;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:900;color:#f59e0b;line-height:1;letter-spacing:-1px;text-shadow:0 0 50px rgba(245,158,11,.2)}
.fs-item .fs-label{display:block;font-size:.8rem;color:#a8a29e;margin-top:4px;letter-spacing:2px;font-weight:600}

.footer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 12px;margin-bottom:20px}
.footer-col h4{font-size:.63rem;font-weight:600;color:#a8a29e;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}
.footer-col a{display:block;color:#78716c;font-size:.66rem;padding:3.5px 0;transition:color .12s}
.footer-col a:hover{color:#fafaf9}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding:16px 14px;text-align:center;font-size:.62rem;color:#57534e}
.footer-bottom a{color:#57534e}.footer-bottom a:hover{color:#a8a29e}
@media(min-width:640px){.footer-grid{grid-template-columns:repeat(3,1fr)}.footer-inner{padding:40px 20px 24px}.footer-stats-bar{gap:32px}.fs-item .fs-num{font-size:clamp(1.7rem,4.5vw,2.6rem)}}
@media(min-width:900px){.footer-grid{grid-template-columns:repeat(6,1fr);gap:20px 14px}.footer-inner{padding:48px 24px 28px}.footer-stats-bar{gap:40px}.fs-item .fs-num{font-size:clamp(1.9rem,5vw,2.8rem)}}

/* --- Form elements --- */
input,select,textarea,button{font-family:inherit;font-size:inherit}
.form-group{margin-bottom:12px}
.form-group label{display:block;font-size:.75rem;color:var(--text2);margin-bottom:3px;font-weight:500}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:.9rem}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}

.btn{display:inline-block;padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}
.btn:hover{background:#b45309}
.btn-outline{background:var(--surface);color:var(--accent);border:1px solid var(--accent)}
.btn-outline:hover{background:var(--accent-light)}
.btn-primary{background:var(--accent);color:#fff;font-weight:500}.btn-primary:hover{background:#b45309;color:#fff}

/* --- Flash messages --- */
.flash{text-align:center;padding:8px;font-size:.8rem}.flash.success{background:var(--green-bg);color:var(--green)}.flash.error{background:var(--red-bg);color:var(--red)}

/* --- Section header --- */
.block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.block-header h2{font-size:.75rem;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.5px}
.block-header a{font-size:.7rem;color:var(--accent);font-weight:500}.block-header a:hover{color:#b45309}

/* --- Guide list --- */
.guide-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.guide-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #f5f4f1;transition:background .1s}
.guide-item:last-child{border-bottom:none}
.guide-item:hover{background:#fafaf9}
.guide-item .gi-title{font-size:.78rem;font-weight:500;color:var(--text);flex:1;min-width:0}
.guide-item .gi-meta{font-size:.65rem;color:var(--text3);white-space:nowrap;margin-left:10px}

/* --- Question mini cards --- */
.question-row{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:20px}
.q-mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;transition:border-color .15s;position:relative;display:block}
.q-mini:hover{border-color:#d4d2cf}
.q-mini .qm-tag{position:absolute;top:-7px;right:10px;background:var(--accent-light);color:#92400e;font-size:.6rem;padding:1px 8px;border-radius:4px;font-weight:600}
.q-mini .qm-q{font-size:.78rem;font-weight:600;color:var(--text);margin-bottom:2px}
.q-mini .qm-desc{font-size:.68rem;color:var(--text3);line-height:1.4}

/* --- Destination chips --- */
.dest-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:20px}
.dest-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;text-align:center;transition:border-color .15s;display:block}
.dest-chip:hover{border-color:#d4d2cf}
.dest-chip .dc-city{font-size:.78rem;font-weight:600;color:var(--text)}
.dest-chip .dc-cost{font-size:.65rem;color:var(--text3);margin-top:2px}

/* --- Narrative compact --- */
.narrative-compact{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px}
.narrative-compact .nc-text{margin-bottom:10px}
.narrative-compact .nc-big{font-size:.85rem;color:var(--text);font-weight:500;line-height:1.6;margin-bottom:4px}
.narrative-compact .nc-sub{font-size:.7rem;color:var(--text3);line-height:1.5}
.persona-inline{display:flex;flex-wrap:wrap;gap:5px}
.persona-inline span{font-size:.68rem;background:#f5f4f1;color:var(--text2);padding:3px 8px;border-radius:4px;white-space:nowrap}

/* --- Policy sidebar items --- */
.policy-item{padding:8px 0;border-bottom:1px solid #f5f4f1}
.policy-item:last-child{border-bottom:none}
.policy-item .policy-title{font-size:.78rem;color:var(--text);font-weight:500;line-height:1.4}
.policy-item .policy-meta{font-size:.65rem;color:var(--text3);margin-top:2px}
.impact-badge{display:inline-block;font-size:.6rem;padding:1px 6px;border-radius:3px;font-weight:600}
.impact-high{background:#fef2f2;color:#dc2626}
.impact-medium{background:#fef3c7;color:#92400e}

/* ================================================================
   TABLET+ (≥640px)
   ================================================================ */
@media(min-width:640px){
  .container{padding:24px 20px}
  .page{padding:24px 20px}
  .hero h1{font-size:1.4rem}
  .hero .hero-sub{font-size:.85rem}
  .stats-bar{grid-template-columns:repeat(4,1fr)}
  .tool-grid{grid-template-columns:repeat(2,1fr)}
  .question-row{grid-template-columns:repeat(2,1fr)}
  .dest-row{grid-template-columns:repeat(4,1fr)}
  .narrative-compact{display:flex;align-items:center;gap:16px}
  .narrative-compact .nc-text{flex:1;margin-bottom:0}
  .data-banner .db-row{grid-template-columns:repeat(4,1fr)}
  .db-fact .db-num{font-size:1.5rem}
}

/* ================================================================
   DESKTOP (≥900px)
   ================================================================ */
@media(min-width:900px){
  html{font-size:16px}
  body{font-size:.875rem}
  .header-inner{padding:0 24px}
  .header-logo{font-size:.95rem}
  .header-logo .logo-dot{width:8px;height:8px}

  /* Show desktop nav, hide hamburger */
  .header-nav{display:flex}
  .header-nav a{font-size:.68rem;padding:5px 9px}
  .header-nav a.nav-search{font-size:.85rem}
  .hamburger{display:none}
  .mobile-nav{display:none!important}
  .user-tag{display:inline}

  .page{grid-template-columns:1fr 300px}
  .hero h1{font-size:1.4rem}
  .stats-bar{grid-template-columns:repeat(4,1fr)}
  .stat-card .stat-num{font-size:1.6rem}
  .tool-grid{grid-template-columns:repeat(3,1fr)}
  .tool-card{padding:14px 16px}
  .tool-card .tc-icon{width:36px;height:36px;font-size:20px}
  .question-row{grid-template-columns:repeat(3,1fr)}
  .dest-row{grid-template-columns:repeat(6,1fr)}
  .container{padding:24px}
}

/* ================================================================
   WIDE (≥1200px)
   ================================================================ */
@media(min-width:1200px){
  .hero h1{font-size:1.5rem}
  .tool-grid{grid-template-columns:repeat(3,1fr)}
}
