1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <meta name="format-detection" content="telephone=no"> 8 <meta http-equiv="x-dns-prefetch-control" content="on"> 9 10
10<script> 11 (function(){ 12 window.dataLayer = window.dataLayer || []; 13 function gtag(){dataLayer.push(arguments);} 14 window.gtag = gtag; 15 16 gtag('consent', 'default', { 17 ad_storage: 'denied', 18 analytics_storage: 'denied', 19 ad_user_data: 'denied', 20 ad_personalization: 'denied' 21 }); 22 23 var NP = window.NP = window.NP || {}; 24 var COOKIE_NAME = 'np_cookie_consent'; 25 26 function readCookie() { 27 var m = document.cookie.match('(?:^|;\\s*)' + COOKIE_NAME + '=([^;]+)'); 28 return m ? m[1] : null; 29 } 30 31 function writeCookie(val) { 32 var secure = location.protocol === 'https:' ? ';Secure' : ''; 33 document.cookie = COOKIE_NAME + '=' + val + ';Max-Age=31536000;SameSite=Lax;Path=/' + secure; 34 } 35 36 var consent = readCookie(); 37 38 if (!consent && navigator.globalPrivacyControl === true) { 39 consent = 'rejected'; 40 writeCookie('rejected'); 41 } 42 43 NP.analyticsConsent = consent; 44 NP._writeCookie = writeCookie; 45 NP._readCookie = readCookie; 46 47 if (consent === 'accepted') { 48 gtag('consent', 'update', { 49 ad_storage: 'granted', 50 analytics_storage: 'granted', 51 ad_user_data: 'granted', 52 ad_personalization: 'granted' 53 }); 54 } 55 })(); 56 </script>
56 57 58 59
59<script> 60 window.hsConversationsSettings = window.hsConversationsSettings || {}; 61 window.hsConversationsSettings.loadImmediately = false; 62 </script>
62 63 64 65 66 67 68 <title>TikTok Shop to QuickBooks Integration | NeonPanel</title> 69 <meta name="description" content="Automate the TikTok Shop to QuickBooks integration with NeonPanel â map payouts, fees, COGS, and sales tax into QuickBooks Online on every settlement cycle."> 70 71 72 <link rel="canonical" href="https://www.neonpanel.com/tiktok-shop-to-quickbooks"> 73 74 75 76 <meta property="og:url" content="https://www.neonpanel.com/tiktok-shop-to-quickbooks"> 77 <meta property="og:title" content="TikTok Shop to QuickBooks Integration"> 78 <meta property="og:description" content="Automate the TikTok Shop to QuickBooks integration with NeonPanel â map payouts, fees, COGS, and sales tax into QuickBooks Online on every settlement cycle."> 79 <meta property="og:type" content="website"> 80 <meta property="og:image" content="https://www.neonpanel.com/images/homepage-hero.webp"> 81 <meta name="twitter:card" content="summary_large_image"> 82 <meta name="twitter:title" content="TikTok Shop to QuickBooks Integration"> 83 <meta name="twitter:description" content="Automate the TikTok Shop to QuickBooks integration with NeonPanel â map payouts, fees, COGS, and sales tax into QuickBooks Online on every settlement cycle."> 84 <meta name="twitter:image" content="https://www.neonpanel.com/images/homepage-hero.webp"> 85 <meta name="generator" content="Eleventy"> 86 <!-- Preconnect to critical domains for better performance --> 87 <link rel="preconnect" href="https://fonts.googleapis.com"> 88 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 89 <!-- Preload critical resources --> 90 <link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap&subset=latin,cyrillic" as="style" crossorigin> 91 <!-- Preload hero image for LCP optimization (use page-specific heroImage or default) --> 92 93 <link rel="preload" href="/images/homepage-hero.webp" as="image" fetchpriority="high"> 94 95 <link rel="icon" href="/images/NeonPanel_favicon.png?v=np-png-1" type="image/png"> 96 <style> 97 /* Critical NeonPanel layout and hero primitives for LCP text rendering. */ 98 :root{--np-violet:#5f59f0;--np-hero-bg:#F1E9F4;--np-text:#363636;--np-heading:#212121} 99 body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--np-text);text-rendering:optimizeLegibility} 100 /* Site content width: 1200px max + 16px horizontal padding (matches homepage min(1200px, calc(100% - 48px)) intent). */ 101 .np-container{max-width:1200px;margin:0 auto;padding-left:16px;padding-right:16px} 102 .np-section{padding:80px 0} 103 .np-section.bg-gray{background:#f9fafb} 104 .np-section.bg-hero{background:var(--np-hero-bg)} 105 .np-h1{margin:0 0 20px;font-family:'Inter',Arial,sans-serif;font-size:clamp(40px,5vw,52px);font-weight:700;line-height:1.08;letter-spacing:-.03em;color:var(--np-heading)} 106 .np-h2{margin:0 0 20px;font-family:'Inter',Arial,sans-serif;font-size:clamp(30px,3.5vw,36px);font-weight:600;line-height:1.18;color:#3d2e7c} 107 .np-h3{margin:0 0 12px;font-family:'Inter',Arial,sans-serif;font-size:22px;font-weight:600;line-height:1.25;color:#111} 108 .np-lead,.np-hero-description{margin:0;color:#555;font-family:'Inter',Arial,sans-serif;font-size:19px;line-height:1.65} 109 .np-text{font-size:17px;line-height:1.7;color:#444} 110 .np-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px;align-items:center} 111 img{max-width:100%;height:auto} 112 @media (max-width:768px){.np-section{padding:56px 0}.np-grid-2{grid-template-columns:1fr;gap:32px}.np-lead,.np-hero-description{font-size:17px}} 113 </style> 114 115 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap&subset=latin,cyrillic" rel="stylesheet" media="print" onload="this.media='all'"> 116 <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap&subset=latin,cyrillic" rel="stylesheet"></noscript> 117 <link rel="stylesheet" href="/assets/css/site.css" media="print" onload="this.media='all'"> 118 <noscript><link rel="stylesheet" href="/assets/css/site.css"></noscript> 119 <link rel="stylesheet" href="/assets/css/header-override.css"> 120 <link rel="stylesheet" href="/assets/css/components.css"> 121 <style> 122 /* Font fallback to prevent FOIT */ 123 body { 124 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 125 } 126 127 /* Fixed header compensation - accounts for the fixed np-header height */ 128 :root { 129 --header-height: 68px; 130 --header-padding: 0px; 131 } 132 133 @media (max-width: 1199px) { 134 :root { 135 --header-height: 58px; 136 --header-padding: 0px; 137 } 138 } 139 140 html { 141 scroll-padding-top: var(--header-height); 142 } 143
144 /* Ensure main content respects fixed header on pages with np-content */ 145 main.np-content { 146 padding-top: 85px !important; 147 margin-top: 0 !important; 148 } 149 150 @media (max-width: 1199px) { 151 main.np-content { 152 padding-top: 58px !important; 153 } 154 } 155 </style> 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
174<script type="application/ld+json"> 175{ 176 "@context": "https://schema.org", 177 "@graph": [ 178 { 179 "@type": "Organization", 180 "@id": "https://www.neonpanel.com#organization", 181 "name": "NeonPanel", 182 "url": "https://www.neonpanel.com", 183 "logo": { 184 "@type": "ImageObject", 185 "url": "https://www.neonpanel.com/images/neonpanel-logo.svg" 186 }, 187 "sameAs": [ 188 "https://www.youtube.com/@true_neonpanel", 189 "https://www.linkedin.com/company/neonpanel/", 190 "https://www.facebook.com/people/NeonPanel/61582609174767/" 191 ] 192 }, 193 { 194 "@type": "Person", 195 "@id": "https://www.neonpanel.com/blog/author/michael-sorochev#person", 196 "name": "Michael Sorochev", 197 "url": "https://www.neonpanel.com/blog/author/michael-sorochev", 198 "jobTitle": "Founder and operator", 199 "worksFor": { 200 "@id": "https://www.neonpanel.com#organization" 201 }, 202 "knowsAbout": [ 203 "Ecommerce accounting", 204 "Amazon marketplace operations", 205 "Inventory management", 206 "FIFO COGS", 207 "Landed cost" 208 ], 209 "email": "[email protected]" 210 }, 211 { 212 "@type": "WebSite", 213 "@id": "https://www.neonpanel.com#website", 214 "url": "https://www.neonpanel.com", 215 "name": "NeonPanel", 216 "publisher": { 217 "@id": "https://www.neonpanel.com#organization" 218 } 219 }, 220 { 221 "@type": "WebPage", 222 "@id": "https://www.neonpanel.com/tiktok-shop-to-quickbooks#webpage", 223 "url": "https://www.neonpanel.com/tiktok-shop-to-quickbooks", 224 "name": "TikTok Shop to QuickBooks Integration | NeonPanel", 225 "isPartOf": { 226 "@id": "https://www.neonpanel.com#website" 227 } 228 }, 229 { 230 "@type": "SoftwareApplication", 231 "@id": "https://www.neonpanel.com#softwareapplication", 232 "name": "NeonPanel", 233 "applicationCategory": "BusinessApplication", 234 "operatingSystem": "Web", 235 "url": "https://www.neonpanel.com", 236 "publisher": { 237 "@id": "https://www.neonpanel.com#organization" 238 }, 239 "areaServed": [ 240 { 241 "@type": "Country", 242 "name": "United States" 243 }, 244 { 245 "@type": "AdministrativeArea", 246 "name": "United Kingdom" 247 }, 248 { 249 "@type": "AdministrativeArea", 250 "name": "European Union" 251 }, 252 { 253 "@type": "Country", 254 "name": "Canada" 255 } 256 ] 257 } 258 ] 259} 260</script>
260 261 262 263 264 265 266 267 268 269 270 271
272<script type="application/ld+json"> 273{ 274 "@context": "https://schema.org", 275 "@type": "BreadcrumbList", 276 "itemListElement": [ 277 { 278 "@type": "ListItem", 279 "position": 1, 280 "name": "Home", 281 "item": "https://www.neonpanel.com" 282 }, 283 { 284 "@type": "ListItem", 285 "position": 2, 286 "name": "TikTok Shop to QuickBooks Integration", 287 "item": "https://www.neonpanel.com/tiktok-shop-to-quickbooks" 288 } 289 ] 290} 291</script>
291 292 293 294</head> 295<body class="np-site-body" style="margin:0;padding:0;width:100%;"> 296 297 298 299 300 301<header class="np-header" id="np-header"> 302 <div class="np-header__container"> 303 304 <div class="np-header__logo"> 305 <a href="/"> 306 <img src="/images/neonpanel-logo.svg" alt="NeonPanel" width="200" height="48"> 307 </a> 308 </div> 309 310 311 <nav class="np-header__nav"> 312 <ul class="np-header__menu"> 313 314 315 316 <li class="np-header__menu-item np-header__menu-item--dropdown"> 317 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 318 AI 319 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 320 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 321 </svg> 322 </a> 323 <div class="np-header__dropdown"> 324 325 <a href="/ai" class="np-header__dropdown-item"> 326 <div class="np-header__dropdown-item-title">Overview</div> 327 <div class="np-header__dropdown-item-desc">
327How NeonPanel connects to any AI tool via MCP</div> 328 </a> 329 330 331 <a href="/mcp-access" class="np-header__dropdown-item"> 332 <div class="np-header__dropdown-item-title">MCP Access</div> 333 <div class="np-header__dropdown-item-desc">Connect your Amazon data to any MCP-compatible AI</div> 334 </a> 335 336 337 <a href="/claude-plugin" class="np-header__dropdown-item"> 338 <div class="np-header__dropdown-item-title">NeonPanel for Claude</div> 339 <div class="np-header__dropdown-item-desc">8 specialist agents inside Claude Code & Cowork</div> 340 </a> 341 342 343 <a href="/slack" class="np-header__dropdown-item"> 344 <div class="np-header__dropdown-item-title">Agents in Slack</div> 345 <div class="np-header__dropdown-item-desc">Call NeonPanel specialists directly in Slack â same agents as Claude</div> 346 </a> 347 348 349 <a href="/viktor-plugin" class="np-header__dropdown-item"> 350 <div class="np-header__dropdown-item-title">NeonPanel for Viktor</div> 351 <div class="np-header__dropdown-item-desc">Optional general coworker that routes when you prefer not to pick an agent</div> 352 </a> 353 354 </div> 355 </li> 356 357 358 359 360 <li class="np-header__menu-item np-header__menu-item--dropdown"> 361 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 362 Modules 363 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 364 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 365 </svg> 366 </a> 367 <div class="np-header__dropdown np-header__dropdown--wide np-header__dropdown--cols np-header__dropdown--modules"> 368 369 370 <div class="np-header__dropdown-section"> 371 <a href="/inventory-management" class="np-header__dropdown-item np-header__dropdown-item--module-hub"> 372 <div class="np-header__dropdown-item-title">Inventory Management</div> 373 </a> 374 <a href="/inventory-management-amazon" class="np-header__dropdown-subitem">Amazon</a> 375 <a href="/inventory-management-shopify" class="np-header__dropdown-subitem">Shopify</a> 376 <a href="/multi-channel-inventory-management" class="np-header__dropdown-subitem">Multi-channel inventory</a> 377 <a href="/landed-cost-fifo" class="np-header__dropdown-subitem">Landed Cost Management</a> 378 </div> 379 380 381 382 383 <div class="np-header__dropdown-section"> 384 <a href="/accounting-ecommerce" class="np-header__dropdown-item np-header__dropdown-item--module-hub"> 385 <div class="np-header__dropdown-item-title">Ecommerce Accounting</div> 386 </a> 387 <a href="/accounting-amazon" class="np-header__dropdown-subitem">Amazon</a> 388 <a href="/accounting-shopify" class="np-header__dropdown-subitem">Shopify</a> 389 <a href="/automatic-cogs" class="np-header__dropdown-subitem">Automatic COGS</a> 390 <a href="/amazon-p-and-l-statement" class="np-header__dropdown-subitem">Amazon P&L Statement</a> 391 </div> 392 393 394 395 396 <div class="np-header__dropdown-section"> 397 <a href="/inventory-forecasting" class="np-header__dropdown-item np-header__dropdown-item--module-hub"> 398 <div class="np-header__dropdown-item-title">Inventory Forecasting & Planning</div> 399 </a> 400 <a href="/inventory-forecasting/amazon" class="np-header__dropdown-subitem">Amazon</a> 401 <a href="/inventory-forecasting/shopify" class="np-header__dropdown-subitem">Shopify</a> 402 </div> 403 404 405 406 407 <div class="np-header__dropdown-section"> 408 409 <a href="/inventory-management-analytics" class="np-header__dropdown-item np-header__dropdown-item--module-hub"> 410 <div class="np-header__dropdown-item-title">Inventory Analytics</div> 411 </a> 412 413 <a href="/analytics-amazon" class="np-header__dropdown-subitem">Amazon</a> 414 <a href="/analytics-shopify" class="np-header__dropdown-subitem">Shopify</a> 415 </div> 416 417 418 419 420 421 422 423 <div class="np-header__dropdown-section"> 424 <a href="/amazon-logistics" class="np-header__dropdown-item np-header__dropdown-item--module-hub"> 425 <div class="np-header__dropdown-item-title">Amazon Logistics</div> 426 </a> 427 <a href="/logistics-realtime-tracking" class="np-header__dropdown-subitem">Real-Time Tracking</a> 428 <a href="/logistics-automated-fba" class="np-header__dropdown-subitem">Automated FBA</a> 429 <a href="/logistics-supply-chain" class="np-header__dropdown-subitem">Supply Chain</a>
430 <a href="/logistics-multichannel-fulfillment" class="np-header__dropdown-subitem">Multi-Channel Fulfillment</a> 431 </div> 432 433 </div> 434 </li> 435 436 437 438 439 <li class="np-header__menu-item np-header__menu-item--dropdown"> 440 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 441 Integrations 442 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 443 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 444 </svg> 445 </a> 446 <div class="np-header__dropdown np-header__dropdown--wide np-header__dropdown--integrations"> 447 <div class="np-header__dropdown-section"> 448 449 <a href="/quickbooks-integration" class="np-header__dropdown-item np-header__dropdown-item--integrations-hub"> 450 <div class="np-header__dropdown-item-title">QuickBooks Integrations</div> 451 </a> 452 <a href="/tiktok-shop-to-quickbooks" class="np-header__dropdown-subitem">TikTok to QuickBooks</a> 453 <a href="/amazon-to-quickbooks" class="np-header__dropdown-subitem">Amazon to QuickBooks</a> 454 <a href="/shopify-to-quickbooks" class="np-header__dropdown-subitem">Shopify to QuickBooks</a> 455 </div> 456 <div class="np-header__dropdown-section"> 457 <a href="/xero-integration" class="np-header__dropdown-item np-header__dropdown-item--integrations-hub"> 458 <div class="np-header__dropdown-item-title">Xero Integrations</div> 459 </a> 460 <a href="/tiktok-shop-to-xero" class="np-header__dropdown-subitem">TikTok to Xero</a> 461 <a href="/amazon-to-xero" class="np-header__dropdown-subitem">Amazon to Xero</a> 462 <a href="/shopify-to-xero" class="np-header__dropdown-subitem">Shopify to Xero</a> 463 </div> 464 </div> 465 </li> 466 467 468 469 470 <li class="np-header__menu-item np-header__menu-item--dropdown"> 471 <a href="/solutions" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 472 Solutions 473 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 474 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 475 </svg> 476 </a> 477 <div class="np-header__dropdown np-header__dropdown--cols"> 478 <a href="/solutions" class="np-header__dropdown-item"> 479 <div class="np-header__dropdown-item-title">All combinations</div> 480 <div class="np-header__dropdown-item-desc">Four module combinations, each resting on the last</div> 481 </a> 482 483 <a href="/solutions/automatic-pnl" class="np-header__dropdown-item"> 484 <div class="np-header__dropdown-item-title">Automatic P&L</div> 485 <div class="np-header__dropdown-item-desc">Accounting & Finance alone, and books that already read true</div> 486 </a> 487 488 489 <a href="/solutions/calculated-cogs" class="np-header__dropdown-item"> 490 <div class="np-header__dropdown-item-title">Calculated COGS</div> 491 <div class="np-header__dropdown-item-desc">Landed costs NeonPanel works out from your orders and bills</div> 492 </a> 493 494 495 <a href="/solutions/shipment-level-visibility" class="np-header__dropdown-item"> 496 <div class="np-header__dropdown-item-title">Shipment-level visibility</div> 497 <div class="np-header__dropdown-item-desc">Batch costs, in-transit states, and supply chain you can read</div> 498 </a> 499 500 501 <a href="/solutions/forecast-and-replenish" class="np-header__dropdown-item"> 502 <div class="np-header__dropdown-item-title">Forecast and replenish</div> 503 <div class="np-header__dropdown-item-desc">Planning priced on the costs that closed your books</div> 504 </a> 505 506 </div> 507 </li> 508 509 510 511 512 <li class="np-header__menu-item np-header__menu-item--dropdown"> 513 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 514 Pricing 515 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 516 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 517 </svg> 518 </a> 519 <div class="np-header__dropdown"> 520 <a href="/pricing" class="np-header__dropdown-item"> 521 <div class="np-header__dropdown-item-title">Pricing Plans</div> 522 <div class="np-header__dropdown-item-desc">Essentials and Professional plans, add-ons, and onboarding</div> 523 </a> 524 <a href="/essentials-vs-professional" class="np-header__dropdown-item"> 525 <div class="np-header__dropdown-item-title">Plan Comparison</div> 526 <div class="np-header__dropdown-item-desc">Compare Essentials vs Professional for your business</div> 527 </a> 528 </div> 529 </li> 530 531 532 533 534 <li class="np-header__menu-item"> 535 <a href="/blog" class="np-header__menu-link np-header__menu-link--plain">Blog</a> 536 </li> 537 538 539 540 541 <li class="np-header__menu-item np-header__menu-item--dropdown"> 542 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 543 Resources 544 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 545 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 546 </svg> 547 </a> 548 <div class="np-header__dropdown np-header__dropdown--cols"> 549 550 <a href="/how-it-works" class="np-header__dropdown-item" data-np-source="header_resources_how-it-works"> 551 <div class="np-header__dropdown-item-title">How It Works</div> 552 <div class="np-header__dropdown-item-desc">See how the NeonPanel operating system layers together</div> 553 </a> 554 555 <a href="https://neonpanel.elevio.help/en" class="np-header__dropdown-item"> 556 <div class="np-header__dropdown-item-title">Knowledge Base</div> 557 <div class="np-header__dropdown-item-desc">Explore guides and FAQs</div> 558 </a> 559 <a href="/glossary" class="np-header__dropdown-item" data-np-source="header_resources_glossary"> 560 <div class="np-header__dropdown-item-title">Glossary</div> 561 <div class="np-header__dropdown-item-desc">Key terms for inventory, COGS, and ecommerce operations</div> 562 </a> 563 <a href="https://www.youtube.com/@true_neonpanel" class="np-header__dropdown-item"> 564 <div class="np-header__dropdown-item-title">YouTube Channel</div> 565 <div class="np-header__dropdown-item-desc">Watch step-by-step NeonPanel tutorials</div> 566 </a> 567 <a href="/onboarding" class="np-header__dropdown-item"> 568 <div class="np-header__dropdown-item-title">Onboarding Guide</div> 569 <div class="np-header__dropdown-item-desc">See how we get you to audit-ready numbers</div> 570 </a> 571 <a href="/case-studies" class="np-header__dropdown-item"> 572 <div class="np-header__dropdown-item-title">Case Studies</div> 573 <div class="np-header__dropdown-item-desc">Learn how we helped other businesses</div> 574 </a> 575 <a href="/chrome-extension" class="np-header__dropdown-item"> 576 <div class="np-header__dropdown-item-title">Chrome Extension</div> 577 <div class="np-header__dropdown-item-desc">Free Sales Forecast Studio & Profitability Calculator</div> 578 </a> 579 <a href="/essentials-vs-professional" class="np-header__dropdown-item"> 580 <div class="np-header__dropdown-item-title">Plan Comparison</div> 581 <div class="np-header__dropdown-item-desc">Essentials vs Professional â which plan fits your business</div> 582 </a> 583 </div> 584 </li> 585 586 587 588 589 <li class="np-header__menu-item np-header__menu-item--dropdown"> 590 <a href="#" class="np-header__menu-link np-header__menu-link--plain" aria-expanded="false" aria-haspopup="true"> 591 Connect 592 <svg class="np-header__dropdown-icon" width="10" height="6" viewBox="0 0 10 6" fill="none"> 593 <path d="M1 1L5 5L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 594 </svg> 595 </a> 596 <div class="np-header__dropdown"> 597 <a href="/contact-us" class="np-header__dropdown-item"> 598 <div class="np-header__dropdown-item-title">Contact Us</div> 599 <div class="np-header__dropdown-item-desc">Reach out for support, partnerships, or general inquiries</div> 600 </a> 601 <a href="/affiliate-program" class="np-header__dropdown-item"> 602 <div class="np-header__dropdown-item-title">Affiliate Program</div> 603 <div class="np-header__dropdown-item-desc">Start earning money with our affiliate program</div> 604 </a> 605 </div> 606 </li> 607 608 </ul> 609 </nav> 610 611 612 <div class="np-header__actions"> 613 <a href="https://my.neonpanel.com/login" class="np-header__login-link">Login</a> 614 <a href="https://www.neonpanel.com/meetings/michael-sorochev/neonpanel-discovery-and-demo" class="np-header__btn np-header__btn--primary" data-np-source="header_nav_book-demo">Book a Demo</a> 615 <a href="https://my.neonpanel.com/register" class="np-header__btn np-header__btn--secondary" data-np-source="header_secondary_free-trial">Start Free</a> 616 </div> 617 618 619 <button class="np-header__mobile-toggle" aria-label="Toggle mobile menu" aria-expanded="false">
620 <span></span> 621 <span></span> 622 <span></span> 623 </button> 624 </div> 625 626 627 <div class="np-header__mobile-menu"> 628 <nav class="np-header__mobile-nav"> 629 630 631 632 <div class="np-mobile-section"> 633 <button class="np-mobile-section__toggle" aria-expanded="false"> 634 AI 635 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 636 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 637 </svg> 638 </button> 639 <div class="np-mobile-section__content"> 640 <a href="/ai" class="np-mobile-link">Overview</a> 641 <a href="/mcp-access" class="np-mobile-link">MCP Access</a> 642 <a href="/claude-plugin" class="np-mobile-link">NeonPanel for Claude</a> 643 <a href="/slack" class="np-mobile-link">Agents in Slack</a> 644 <a href="/viktor-plugin" class="np-mobile-link">NeonPanel for Viktor</a> 645 </div> 646 </div> 647 648 649 650 651 <div class="np-mobile-section"> 652 <button class="np-mobile-section__toggle" aria-expanded="false"> 653 Modules 654 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 655 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 656 </svg> 657 </button> 658 <div class="np-mobile-section__content"> 659 660 <a href="/inventory-management" class="np-mobile-link">Inventory Management</a> 661 <a href="/inventory-management-amazon" class="np-mobile-link np-mobile-link--sub">Amazon</a> 662 <a href="/inventory-management-shopify" class="np-mobile-link np-mobile-link--sub">Shopify</a> 663 <a href="/multi-channel-inventory-management" class="np-mobile-link np-mobile-link--sub">Multi-channel inventory</a> 664 <a href="/landed-cost-fifo" class="np-mobile-link np-mobile-link--sub">Landed Cost Management</a> 665 666 667 <a href="/inventory-forecasting" class="np-mobile-link">Inventory Forecasting & Planning</a> 668 669 670 671 <a href="/inventory-management-analytics" class="np-mobile-link">Inventory Analytics</a> 672 673 674 675 <a href="/accounting-ecommerce" class="np-mobile-link">Ecommerce Accounting</a> 676 <a href="/accounting-amazon" class="np-mobile-link np-mobile-link--sub">Amazon</a> 677 <a href="/accounting-shopify" class="np-mobile-link np-mobile-link--sub">Shopify</a> 678 <a href="/automatic-cogs" class="np-mobile-link np-mobile-link--sub">Automatic COGS</a> 679 <a href="/amazon-p-and-l-statement" class="np-mobile-link np-mobile-link--sub">Amazon P&L Statement</a> 680 681 682 683 <span class="np-mobile-section__subtitle">Amazon Logistics</span> 684 <a href="/amazon-logistics" class="np-mobile-link np-mobile-link--sub">Overview</a> 685 <a href="/logistics-realtime-tracking" class="np-mobile-link np-mobile-link--sub">Real-Time Tracking</a> 686 <a href="/logistics-automated-fba" class="np-mobile-link np-mobile-link--sub">Automated FBA</a> 687 <a href="/logistics-supply-chain" class="np-mobile-link np-mobile-link--sub">Supply Chain</a> 688 <a href="/logistics-multichannel-fulfillment" class="np-mobile-link np-mobile-link--sub">Multi-Channel Fulfillment</a> 689 690 </div> 691 </div> 692 693 694 695 696 <div class="np-mobile-section"> 697 <button class="np-mobile-section__toggle" aria-expanded="false"> 698 Integrations 699 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 700 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 701 </svg> 702 </button> 703 <div class="np-mobile-section__content"> 704 <span class="np-mobile-section__subtitle">QuickBooks</span> 705 <a href="/quickbooks-integration" class="np-mobile-link">QuickBooks Integration</a> 706 <a href="/amazon-to-quickbooks" class="np-mobile-link np-mobile-link--sub">Amazon to QuickBooks</a> 707 <a href="/shopify-to-quickbooks" class="np-mobile-link np-mobile-link--sub">Shopify to QuickBooks</a> 708 <a href="/tiktok-shop-to-quickbooks" class="np-mobile-link np-mobile-link--sub">TikTok to QuickBooks</a>
709 <span class="np-mobile-section__subtitle">Xero</span> 710 <a href="/xero-integration" class="np-mobile-link">Xero Integration</a> 711 <a href="/amazon-to-xero" class="np-mobile-link np-mobile-link--sub">Amazon to Xero</a> 712 <a href="/shopify-to-xero" class="np-mobile-link np-mobile-link--sub">Shopify to Xero</a> 713 <a href="/tiktok-shop-to-xero" class="np-mobile-link np-mobile-link--sub">TikTok to Xero</a> 714 </div> 715 </div> 716 717 718 719 720 <div class="np-mobile-section"> 721 <button class="np-mobile-section__toggle" aria-expanded="false"> 722 Solutions 723 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 724 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 725 </svg> 726 </button> 727 <div class="np-mobile-section__content np-mobile-section__content--cols"> 728 <a href="/solutions" class="np-mobile-link">All combinations</a> 729 <a href="/solutions/automatic-pnl" class="np-mobile-link np-mobile-link--sub">Automatic P&L</a> 730 <a href="/solutions/calculated-cogs" class="np-mobile-link np-mobile-link--sub">Calculated COGS</a> 731 <a href="/solutions/shipment-level-visibility" class="np-mobile-link np-mobile-link--sub">Shipment-level visibility</a> 732 <a href="/solutions/forecast-and-replenish" class="np-mobile-link np-mobile-link--sub">Forecast and replenish</a> 733 </div> 734 </div> 735 736 737 738 739 <div class="np-mobile-section"> 740 <button class="np-mobile-section__toggle" aria-expanded="false"> 741 Resources 742 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 743 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 744 </svg> 745 </button> 746 <div class="np-mobile-section__content np-mobile-section__content--cols"> 747 748 <a href="/how-it-works" class="np-mobile-link" data-np-source="header_resources-mobile_how-it-works">How It Works</a> 749 750 <a href="https://neonpanel.elevio.help/en" class="np-mobile-link" target="_blank">Knowledge Base</a> 751 <a href="/glossary" class="np-mobile-link" data-np-source="header_resources-mobile_glossary">Glossary</a> 752 <a href="https://www.youtube.com/@true_neonpanel" class="np-mobile-link" target="_blank">YouTube Channel</a> 753 <a href="/onboarding" class="np-mobile-link">Onboarding Guide</a> 754 <a href="/case-studies" class="np-mobile-link">Case Studies</a> 755 <a href="/chrome-extension" class="np-mobile-link">Chrome Extension</a> 756 <a href="/essentials-vs-professional" class="np-mobile-link">Plan Comparison</a> 757 </div> 758 </div> 759 760 761 762 763 <div class="np-mobile-section"> 764 <button class="np-mobile-section__toggle" aria-expanded="false"> 765 Pricing 766 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 767 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 768 </svg> 769 </button> 770 <div class="np-mobile-section__content"> 771 <a href="/pricing" class="np-mobile-link">Pricing Plans</a> 772 <a href="/essentials-vs-professional" class="np-mobile-link">Plan Comparison</a> 773 </div> 774 </div> 775 776 777 778 779 <a href="/blog" class="np-mobile-link np-mobile-link--top">Blog</a> 780 781 782 783 784 <div class="np-mobile-section"> 785 <button class="np-mobile-section__toggle" aria-expanded="false"> 786 Connect 787 <svg class="np-mobile-section__icon" width="12" height="7" viewBox="0 0 12 7" fill="none"> 788 <path d="M1 1L6 6L11 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 789 </svg> 790 </button> 791 <div class="np-mobile-section__content"> 792 <a href="/contact-us" class="np-mobile-link">Contact Us</a> 793 <a href="/affiliate-program" class="np-mobile-link">Affiliate Program</a> 794 </div> 795 </div> 796 797 798 799 <div class="np-mobile-cta"> 800 <a href="https://www.neonpanel.com/meetings/michael-sorochev/neonpanel-discovery-and-demo" class="np-mobile-cta__btn np-mobile-cta__btn--primary" data-np-source="header_nav-mobile_book-demo">Book a Demo</a> 801 <a href="https://my.neonpanel.com/register" class="np-mobile-cta__btn np-mobile-cta__btn--secondary" data-np-source="header_secondary-mobile_free-trial">Start Free</a> 802 <a href="https://my.neonpanel.com/login" class="np-mobile-cta__login-link">Already have an account? Login</a> 803 </div> 804 805 </nav> 806 </div> 807</header> 808 809<style> 810/* Reset body and container margin to eliminate top whitespace */ 811body { 812 margin: 0 !important; 813 padding: 0 !important; 814} 815 816/* Header Container */ 817/* Root stack for the chrome header â anchors inherit unless a theme sets header a { font-family } */ 818#np-header.np-header { 819 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 820} 821 822.np-header { 823 background-color: #ffffff; 824 border-bottom: 1px solid #e5e7eb; 825 position: fixed; 826 top: 0; 827 left: 0; 828 right: 0; 829 width: 100%; 830 /* Must sit above HubSpot blog / breadcrumb chrome and page modules (often z-index 5kâ1e4) */ 831 z-index: 20000; 832 transition: box-shadow 0.3s ease; 833 margin: 0 !important; 834 padding: 0 !important; 835 height: 68px; 836 overflow: visible; 837} 838 839.np-header.np-header--scrolled { 840 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); 841} 842 843.np-header__container { 844 position: relative; 845 z-index: 2; 846 width: min(1440px, 100%) !important; 847 max-width: 1440px !important; 848 margin: 0 auto !important; 849 padding: 10px 24px !important; 850 display: grid !important; 851 grid-template-columns: auto 1fr auto; 852 align-items: center; 853 column-gap: 14px; 854 height: 100%; 855 overflow: visible; 856} 857 858/* Logo */ 859.np-header__logo { 860 margin-right: 0 !important; 861 justify-self: start; 862} 863 864.np-header__logo a { 865 display: block; 866 line-height: 0; 867} 868 869.np-header__logo img { 870 display: block; 871 height: 48px; 872 width: auto; 873} 874 875/* Desktop Navigation â stack above .np-header__actions so right-side dropdowns 876 are not covered by Start Free / Book a Demo (same grid row, later sibling wins by paint order). */ 877.np-header__nav { 878 flex: 0 1 auto; 879 display: none; 880 justify-self: center; 881 align-self: center; 882 position: relative; 883 z-index: 3; 884} 885 886.np-header__menu { 887 list-style: none; 888 margin: 0; 889 padding: 0; 890 padding-top: 1px; /* optical nudge; avoid transform here â transform creates a stacking context and breaks dropdown layering */ 891 display: flex; 892 align-items: center; 893 justify-content: center; 894 gap: 20px; 895} 896 897/* Menu links: keep baseline/padding consistent for vertical centering */ 898.np-header__menu-link { 899 display: inline-flex; 900 align-items: center; 901 line-height: 1; 902 padding: 10px 0; 903} 904 905.np-header__menu-item { 906 position: relative; 907} 908
909/* Open dropdown must stack above later siblings in the flex row (otherwise menus paint under page hero). 910 :hover + JS .np-header__menu-item--hovered keep mega menus above neighboring items and page content. */ 911.np-header__menu-item--dropdown:hover, 912.np-header__menu-item--dropdown:focus-within, 913.np-header__menu-item--dropdown.np-header__menu-item--hovered, 914.np-header__menu-item--dropdown.np-header__menu-item--open { 915 z-index: 10050; 916} 917 918.np-header__menu-link { 919 display: flex; 920 align-items: center; 921 gap: 6px; 922 padding: 8px 0; 923 font-family: 'Inter', Arial, sans-serif; 924 font-size: 16px; 925 font-weight: 500; 926 color: #000000; 927 text-decoration: none; 928 background: none; 929 border: none; 930 cursor: pointer; 931 transition: color 0.3s ease-in-out; 932} 933 934/* Dropdown top-level triggers use <a href="#"> like Pricing (not <button>) so HubSpot blog CSS does not apply default button chrome */ 935 936.np-header__menu-link:hover { 937 color: #5f59f0; 938} 939 940.np-header__menu-link--plain { 941 color: #000000 !important; 942} 943 944.np-header__menu-link--plain:hover { 945 color: #5f59f0 !important; 946} 947 948#np-header a:focus-visible, 949#np-header button:focus-visible { 950 outline: 2px solid #5f59f0; 951 outline-offset: 3px; 952 border-radius: 8px; 953} 954 955.np-header__dropdown-icon { 956 transition: transform 0.3s ease; 957} 958 959.np-header__menu-item--dropdown:hover .np-header__dropdown-icon, 960.np-header__menu-item--dropdown:focus-within .np-header__dropdown-icon, 961.np-header__menu-item--dropdown.np-header__menu-item--open .np-header__dropdown-icon { 962 transform: rotate(180deg); 963} 964 965/* ===================================================================== 966 DROPDOWN DESIGN SYSTEM (unified across AI, Modules, Integrations, 967 Solutions, Pricing, Resources, Connect) 968 969 Typography scale 970 - Group eyebrow: 11px / 600 / uppercase / letter-spacing 0.6px / #8b8fa3 971 - Item label / title: 14px / 500â600 / line-height 1.3 / #212121 972 - Item description: 12px / 400 / line-height 1.45 / #6b7280 973 - Sub item (group child): 13px / 400 / line-height 1.3 / #5a5e7a 974 975 Spacing scale 976 - Panel padding: 12px (single col) / 14px (multi col) 977 - Item padding: 10px 14px 978 - Item radius: 8px 979 - Row gap: 2px 980 - Column gap: 18px 981 - Top offset under trigger: 10px 982 983 Hover/focus state (uniform) 984 - Background: #f5f4ff 985 - Color: #5f59f0 986 - Transition: background 150ms ease, color 150ms ease 987 - No padding shift on hover (avoids jitter) 988 ===================================================================== */ 989 990.np-header__dropdown { 991 position: absolute; 992 top: 100%; 993 left: 50%; 994 transform: translateX(-50%); 995 min-width: 300px; 996 background: #ffffff; 997 border-radius: 12px; 998 border-bottom: 2px solid #5f59f0; 999 box-shadow: 0 8px 28px rgba(31, 35, 67, 0.08), 0 2px 6px rgba(31, 35, 67, 0.04); 1000 padding: 12px; 1001 margin-top: 10px; 1002 opacity: 0; 1003 visibility: hidden; 1004 pointer-events: none; 1005 transition: opacity 0.2s ease, visibility 0.2s ease; 1006 z-index: 10060; 1007 box-sizing: border-box; 1008 /* Default stack for panel text; Integrations also gets boosted rules below for nested links. */ 1009 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 1010} 1011 1012/* Hover bridge: closes the gap between trigger and panel so the cursor 1013 can travel down without losing hover state. */ 1014.np-header__dropdown::before { 1015 content: ""; 1016 position: absolute; 1017 left: 0; 1018 right: 0; 1019 top: -12px; 1020 height: 12px; 1021} 1022 1023.np-header__menu-item--dropdown:hover .np-header__dropdown, 1024.np-header__menu-item--dropdown:focus-within .np-header__dropdown, 1025.np-header__menu-item--dropdown.np-header__menu-item--hovered .np-header__dropdown, 1026.np-header__menu-item--dropdown.np-header__menu-item--open .np-header__dropdown { 1027 opacity: 1 !important; 1028 visibility: visible !important; 1029 pointer-events: auto !important; 1030} 1031 1032/* ----- Multi-column panels (Integrations, Solutions, Resources, Modules) ----- */ 1033.np-header__dropdown--wide, 1034.np-header__dropdown--cols { 1035 display: grid; 1036 grid-template-columns: 1fr 1fr; 1037 column-gap: 18px; 1038 row-gap: 2px; 1039 min-width: min(560px, calc(100vw - 48px)); 1040 max-width: 640px; 1041 padding: 14px; 1042} 1043 1044/* ----- Sectioned panel (Integrations: group eyebrow + sub items) ----- */ 1045.np-header__dropdown-section { 1046 display: flex; 1047 flex-direction: column; 1048 gap: 2px; 1049 min-width: 0; 1050} 1051 1052/* ----- Item: base style shared by all dropdown links ----- */ 1053.np-header__dropdown-item, 1054.np-header__dropdown-subitem { 1055 display: block; 1056 padding: 10px 14px; 1057 font-family: 'Inter', Arial, sans-serif; 1058 font-size: 14px; 1059 font-weight: 500; 1060 line-height: 1.3; 1061 color: #212121 !important; 1062 text-decoration: none; 1063 border-radius: 8px; 1064 transition: background-color 150ms ease, color 150ms ease; 1065} 1066 1067.np-header__dropdown-item:hover, 1068.np-header__dropdown-subitem:hover { 1069 background: #f5f4ff; 1070 color: #5f59f0 !important; 1071} 1072 1073/* Sub-items under a group eyebrow (Integrations, Modules mega-menu). 1074 Slightly smaller and muted. */ 1075.np-header__dropdown-subitem { 1076 font-size: 13px; 1077 font-weight: 400; 1078 color: #5a5e7a !important; 1079} 1080 1081.np-header__dropdown-subitem:hover {
1082 color: #5f59f0 !important; 1083} 1084 1085/* Integrations panel: blog themes often set header/nav anchors to a marketing serif â 1086 keep the same sans stack as the rest of #np-header (scoped; does not touch other dropdowns). */ 1087#np-header.np-header .np-header__dropdown--integrations, 1088#np-header.np-header .np-header__dropdown--integrations .np-header__dropdown-section { 1089 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 1090} 1091 1092#np-header.np-header .np-header__dropdown--integrations a.np-header__dropdown-subitem, 1093#np-header.np-header .np-header__dropdown--integrations a.np-header__dropdown-item--integrations-hub { 1094 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important; 1095 font-style: normal; 1096} 1097 1098/* ----- Item title + description (most dropdowns: AI, Solutions, Pricing, Resources, Connect) ----- */ 1099.np-header__dropdown-item-title { 1100 font-size: 14px; 1101 font-weight: 600; 1102 line-height: 1.3; 1103 color: #212121; 1104 margin-bottom: 2px; 1105} 1106 1107.np-header__dropdown-item-desc { 1108 font-size: 12px; 1109 font-weight: 400; 1110 line-height: 1.45; 1111 color: #6b7280; 1112} 1113 1114/* When an item has both a title and a description, the title color is driven by 1115 the wrapper hover state so both stay in sync. */ 1116.np-header__dropdown-item:hover .np-header__dropdown-item-title { 1117 color: #5f59f0; 1118} 1119 1120.np-header__dropdown-item:hover .np-header__dropdown-item-desc { 1121 color: #5a5e7a; 1122} 1123 1124/* ----- Integrations hub rows (QuickBooks / Xero): same 14px/600 title as AI/Solutions; row uses unified hover, title stays #212121 ----- */ 1125.np-header__dropdown-item--integrations-hub .np-header__dropdown-item-title { 1126 margin-bottom: 0; 1127} 1128 1129#np-header.np-header .np-header__dropdown-item--integrations-hub:hover, 1130#np-header.np-header .np-header__dropdown-item--integrations-hub:focus-visible { 1131 background: #f5f4ff; 1132 color: #212121 !important; 1133} 1134 1135#np-header.np-header .np-header__dropdown-item--integrations-hub:hover .np-header__dropdown-item-title, 1136#np-header.np-header .np-header__dropdown-item--integrations-hub:focus-visible .np-header__dropdown-item-title { 1137 color: #212121 !important; 1138} 1139 1140#np-header.np-header .np-header__dropdown-item--integrations-hub:visited, 1141#np-header.np-header .np-header__dropdown-item--integrations-hub:visited .np-header__dropdown-item-title { 1142 color: #212121 !important; 1143} 1144 1145/* ----- Modules mega-menu (flat columns â hub + children, no hover flyout) ----- */ 1146.np-header__dropdown--modules { 1147 min-width: min(680px, calc(100vw - 48px)); 1148 max-width: 760px; 1149 row-gap: 14px; 1150} 1151 1152#np-header.np-header .np-header__dropdown--modules, 1153#np-header.np-header .np-header__dropdown--modules .np-header__dropdown-section { 1154 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 1155} 1156 1157#np-header.np-header .np-header__dropdown--modules a.np-header__dropdown-subitem, 1158#np-header.np-header .np-header__dropdown--modules a.np-header__dropdown-item--module-hub { 1159 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important; 1160 font-style: normal; 1161} 1162 1163.np-header__dropdown-item--module-hub .np-header__dropdown-item-title { 1164 margin-bottom: 0; 1165} 1166 1167#np-header.np-header .np-header__dropdown-item--module-hub:hover, 1168#np-header.np-header .np-header__dropdown-item--module-hub:focus-visible { 1169 background: #f5f4ff; 1170 color: #212121 !important; 1171} 1172 1173#np-header.np-header .np-header__dropdown-item--module-hub:hover .np-header__dropdown-item-title, 1174#np-header.np-header .np-header__dropdown-item--module-hub:focus-visible .np-header__dropdown-item-title { 1175 color: #212121 !important; 1176} 1177 1178#np-header.np-header .np-header__dropdown-item--module-hub:visited, 1179#np-header.np-header .np-header__dropdown-item--module-hub:visited .np-header__dropdown-item-title { 1180 color: #212121 !important; 1181} 1182 1183/* ----- Non-clickable items ----- */ 1184.np-header__dropdown-item--no-link { 1185 cursor: default; 1186} 1187 1188.np-header__dropdown-item--no-link:hover { 1189 background: transparent; 1190 color: #212121 !important; 1191} 1192 1193.np-header__dropdown-item--no-link:hover .np-header__dropdown-item-title { 1194 color: #212121; 1195} 1196 1197.np-mobile-link--no-link { 1198 cursor: default; 1199 color: #5a5e7a !important; 1200} 1201 1202/* Action Buttons â stay below nav in z-order so dropdowns can overlap CTAs */ 1203.np-header__actions { 1204 position: relative; 1205 z-index: 1; 1206 display: flex; 1207 align-items: center; 1208 gap: 12px; 1209 margin-left: 0 !important; 1210 justify-self: end; 1211 justify-content: flex-end; 1212 min-width: max-content; 1213} 1214 1215.np-header__btn { 1216 display: inline-block; 1217 padding: 10px 24px; 1218 font-family: 'Inter', Arial, sans-serif; 1219 font-size: 14px; 1220 font-weight: 500; 1221 text-decoration: none; 1222 border-radius: 20px; 1223 transition: all 0.2s ease; 1224 white-space: nowrap; 1225} 1226 1227.np-header__btn--secondary { 1228 color: #5f59f0 !important; 1229 background-color: transparent !important; 1230 border: 1.5px solid #5f59f0 !important; 1231 padding: 8.5px 22px; 1232} 1233 1234.np-header__btn--secondary:hover {
1235 color: #ffffff !important; 1236 background-color: #5f59f0 !important; 1237 box-shadow: 0 4px 12px rgba(95, 89, 240, 0.2) !important; 1238} 1239 1240.np-header__btn--primary { 1241 color: #ffffff !important; 1242 background-color: #5f59f0 !important; 1243 border: none !important; 1244} 1245 1246.np-header__btn--primary:hover { 1247 background-color: #4f49e6 !important; 1248 box-shadow: 0 4px 12px rgba(95, 89, 240, 0.3) !important; 1249 transform: translateY(-1px); 1250} 1251 1252/* Small Login text link â sits before the action buttons, not a button itself */ 1253.np-header__login-link { 1254 font-family: 'Inter', Arial, sans-serif; 1255 font-size: 13px; 1256 font-weight: 400; 1257 color: #888888 !important; 1258 text-decoration: none; 1259 white-space: nowrap; 1260 transition: color 0.2s ease; 1261} 1262 1263.np-header__login-link:hover { 1264 color: #5f59f0 !important; 1265} 1266 1267/* Mobile Toggle */ 1268.np-header__mobile-toggle { 1269 display: flex !important; 1270 flex-direction: column; 1271 justify-content: space-between; 1272 width: 28px; 1273 height: 20px; 1274 background: none; 1275 border: none; 1276 cursor: pointer; 1277 padding: 0; 1278 box-sizing: border-box !important; 1279} 1280 1281.np-header__mobile-toggle span { 1282 display: block !important; 1283 width: 100%; 1284 height: 3px; 1285 background-color: #3d2e7c; 1286 border-radius: 2px; 1287 transition: all 0.3s ease; 1288 box-sizing: border-box !important; 1289} 1290 1291.np-header__mobile-toggle[aria-expanded="true"] span:nth-child(1) { 1292 transform: rotate(45deg) translate(6px, 6px); 1293} 1294 1295.np-header__mobile-toggle[aria-expanded="true"] span:nth-child(2) { 1296 opacity: 0; 1297} 1298 1299.np-header__mobile-toggle[aria-expanded="true"] span:nth-child(3) { 1300 transform: rotate(-45deg) translate(6px, -6px); 1301} 1302 1303/* Mobile Menu â scrolls internally under the fixed 58px bar; dvh keeps the 1304 full list reachable when mobile browser chrome shrinks the viewport. */ 1305.np-header__mobile-menu { 1306 display: none; 1307 background-color: #ffffff; 1308 border-top: 1px solid #e5e7eb; 1309 max-height: calc(100vh - 58px); 1310 max-height: calc(100dvh - 58px); 1311 overflow-y: auto; 1312 -webkit-overflow-scrolling: touch; 1313 overscroll-behavior: contain; 1314} 1315 1316.np-header__mobile-menu.active { 1317 display: block; 1318} 1319 1320.np-header__mobile-nav { 1321 padding: 16px 20px; 1322 display: block !important; 1323} 1324 1325/* Mobile Menu Sections */ 1326.np-mobile-section { 1327 border-bottom: 1px solid #e5e7eb; 1328 display: block !important; 1329} 1330 1331.np-mobile-section__toggle { 1332 width: 100% !important; 1333 display: flex !important; 1334 justify-content: space-between; 1335 align-items: center; 1336 padding: 16px 0; 1337 font-family: 'Inter', Arial, sans-serif; 1338 font-size: 16px !important; 1339 font-weight: 500; 1340 color: #1f2343 !important; 1341 background: none; 1342 border: none; 1343 cursor: pointer; 1344 text-align: left; 1345} 1346 1347.np-mobile-section__icon { 1348 transition: transform 0.3s ease; 1349} 1350 1351.np-mobile-section__toggle[aria-expanded="true"] .np-mobile-section__icon { 1352 transform: rotate(180deg); 1353} 1354 1355.np-mobile-section__content { 1356 display: none; 1357 padding-bottom: 16px; 1358} 1359 1360.np-mobile-section__content.active { 1361 display: block; 1362} 1363 1364.np-mobile-section__subtitle { 1365 display: block; 1366 font-family: 'Inter', Arial, sans-serif; 1367 font-size: 12px; 1368 font-weight: 600; 1369 color: #8b8fa3; 1370 text-transform: uppercase; 1371 letter-spacing: 0.5px; 1372 padding: 12px 0 8px; 1373 margin-top: 8px; 1374} 1375 1376.np-mobile-section__subtitle:first-child { 1377 margin-top: 0; 1378 padding-top: 0; 1379} 1380 1381.np-mobile-link { 1382 display: block !important; 1383 padding: 12px 0; 1384 font-family: 'Inter', Arial, sans-serif; 1385 font-size: 15px !important; 1386 color: #5a5e7a !important; 1387 text-decoration: none !important; 1388 transition: color 0.2s ease; 1389} 1390 1391.np-mobile-link:hover, 1392.np-mobile-link:active { 1393 color: #5f59f0 !important; 1394} 1395 1396.np-mobile-link--sub { 1397 padding-left: 16px; 1398 font-size: 14px; 1399} 1400 1401.np-mobile-link--top { 1402 display: block; 1403 padding: 16px 0; 1404 font-family: 'Inter', Arial, sans-serif; 1405 font-size: 16px; 1406 font-weight: 500; 1407 color: #1f2343 !important; 1408 text-decoration: none !important; 1409 border-bottom: 1px solid #e5e7eb; 1410} 1411 1412@media (min-width: 380px) { 1413 .np-mobile-section__content--cols { 1414 display: none; 1415 } 1416 1417 .np-mobile-section__content--cols.active { 1418 display: grid; 1419 grid-template-columns: 1fr 1fr; 1420 column-gap: 12px; 1421 align-items: stretch; 1422 } 1423 1424 .np-mobile-section__content--cols > .np-mobile-link:first-child { 1425 grid-column: 1 / -1; 1426 } 1427 1428 .np-mobile-section__content--cols > .np-mobile-link { 1429 min-height: 44px; 1430 display: flex !important;
1431 align-items: center; 1432 padding-top: 10px; 1433 padding-bottom: 10px; 1434 box-sizing: border-box; 1435 } 1436 1437 .np-mobile-section__content--cols > .np-mobile-link.np-mobile-link--sub { 1438 padding-left: 10px; 1439 } 1440} 1441 1442/* Mobile CTA Buttons */ 1443.np-mobile-cta { 1444 display: flex; 1445 flex-direction: column; 1446 gap: 12px; 1447 padding-top: 20px; 1448 margin-top: 8px; 1449} 1450 1451.np-mobile-cta__btn { 1452 display: block; 1453 padding: 14px 24px; 1454 font-family: 'Inter', Arial, sans-serif; 1455 font-size: 15px; 1456 font-weight: 600; 1457 text-align: center; 1458 text-decoration: none !important; 1459 border-radius: 30px; 1460 transition: all 0.2s ease; 1461} 1462 1463.np-mobile-cta__btn--secondary { 1464 color: #5f59f0 !important; 1465 background: transparent; 1466 border: 1.5px solid #5f59f0; 1467} 1468 1469.np-mobile-cta__btn--secondary:hover { 1470 color: #ffffff !important; 1471 background: #5f59f0; 1472} 1473 1474.np-mobile-cta__btn--primary { 1475 color: #ffffff !important; 1476 background: #5f59f0; 1477} 1478 1479.np-mobile-cta__btn--primary:hover { 1480 background: #4f49e6; 1481} 1482 1483/* Small login text link at the bottom of mobile CTA stack */ 1484.np-mobile-cta__login-link { 1485 display: block; 1486 text-align: center; 1487 font-family: 'Inter', Arial, sans-serif; 1488 font-size: 13px; 1489 font-weight: 400; 1490 color: #888888 !important; 1491 text-decoration: none; 1492 padding: 4px 0; 1493 transition: color 0.2s ease; 1494} 1495 1496.np-mobile-cta__login-link:hover { 1497 color: #5f59f0 !important; 1498} 1499 1500/* Desktop Breakpoint â top-level nav + Start Free + Book a Demo need ~1200px to breathe */ 1501@media (min-width: 1200px) { 1502 .np-header__nav { 1503 display: block !important; 1504 } 1505 1506 .np-header__actions { 1507 display: flex !important; 1508 } 1509 1510 .np-header__mobile-toggle { 1511 display: none !important; 1512 } 1513} 1514 1515/* Narrow-desktop band (1200â1359px): slightly tighter spacing so the menu fits without cramping */ 1516@media (min-width: 1200px) and (max-width: 1359px) { 1517 .np-header__menu { gap: 14px; } 1518 .np-header__menu-link { font-size: 15px; } 1519 .np-header__container { padding: 10px 16px !important; } 1520 .np-header__logo img { height: 42px; } 1521} 1522 1523/* Tablet and Mobile (anything narrower than 1200px gets the hamburger). */ 1524/* The sticky bar keeps an always-visible conversion CTA so it never hides behind 1525 the hamburger: Book a Demo (primary) shows on every width, Start Free (secondary) 1526 joins it once there is room (>=600px). The mobile menu still carries the full 1527 CTA stack (.np-mobile-cta). */ 1528@media (max-width: 1199px) { 1529 .np-header { 1530 height: 58px; 1531 } 1532 1533 /* Switch to flex so logo pins left and CTAs + hamburger group at the right. */ 1534 .np-header__container { 1535 display: flex !important; 1536 align-items: center; 1537 padding: 6px 14px !important; 1538 column-gap: 10px; 1539 } 1540 1541 .np-header__logo { 1542 margin-right: auto; 1543 min-width: 0; 1544 } 1545 1546 .np-header__logo img { 1547 height: 34px; 1548 } 1549 1550 /* Reveal the CTAs in the compact bar. */ 1551 .np-header__actions { 1552 display: flex !important; 1553 gap: 8px; 1554 min-width: 0; 1555 flex-shrink: 0; 1556 } 1557 1558 /* Login stays in the mobile menu, not the compact bar. */ 1559 .np-header__login-link { 1560 display: none; 1561 } 1562 1563 .np-header__actions .np-header__btn { 1564 padding: 8px 16px; 1565 font-size: 13px; 1566 border-radius: 18px; 1567 min-height: 44px; 1568 display: inline-flex; 1569 align-items: center; 1570 justify-content: center; 1571 } 1572 1573 .np-header__actions .np-header__btn--secondary { 1574 padding: 6.5px 14px; 1575 } 1576 1577 .np-header__menu { 1578 gap: 20px; 1579 } 1580 1581 .np-header__mobile-toggle { 1582 flex-shrink: 0; 1583 min-width: 44px; 1584 min-height: 44px; 1585 padding: 12px 8px; 1586 justify-content: center; 1587 gap: 5px; 1588 } 1589} 1590 1591/* Small phones: keep just the Book a Demo CTA beside the hamburger. */ 1592@media (max-width: 599px) { 1593 .np-header__actions .np-header__btn--secondary { 1594 display: none; 1595 } 1596} 1597 1598/* Very narrow phones: trim padding so the logo + CTA + hamburger never crowd. */ 1599@media (max-width: 360px) { 1600 .np-header__container { 1601 padding: 6px 10px !important; 1602 column-gap: 8px; 1603 } 1604 1605 .np-header__logo img { 1606 height: 30px; 1607 } 1608 1609 .np-header__actions .np-header__btn--primary { 1610 padding: 6.5px 12px; 1611 } 1612} 1613 1614@media (prefers-reduced-motion: reduce) { 1615 .np-header, 1616 .np-header__menu-link, 1617 .np-header__dropdown, 1618 .np-header__dropdown-icon, 1619 .np-header__btn, 1620 .np-header__login-link, 1621 .np-header__mobile-toggle span, 1622 .np-mobile-section__icon, 1623 .np-mobile-link, 1624 .np-mobile-cta__btn, 1625 .np-mobile-cta__login-link { 1626 transition: none !important; 1627 } 1628} 1629</style> 1630
1631<script> 1632// Header Sticky Scroll Effect & Dropdown Handling 1633document.addEventListener('DOMContentLoaded', function() { 1634 const header = document.getElementById('np-header'); 1635 const mobileToggle = document.querySelector('.np-header__mobile-toggle'); 1636 const mobileMenu = document.querySelector('.np-header__mobile-menu'); 1637 const desktopDropdowns = document.querySelectorAll('#np-header .np-header__menu-item--dropdown'); 1638 const mobileSections = document.querySelectorAll('.np-mobile-section__toggle'); 1639 1640 function isDesktopNav() { 1641 return window.matchMedia('(min-width: 1200px)').matches; 1642 } 1643 1644 function isFineHover() { 1645 return window.matchMedia('(hover: hover) and (pointer: fine)').matches; 1646 } 1647 1648 function setDropdownExpanded(item, expanded) { 1649 const trigger = item.querySelector('.np-header__menu-link'); 1650 item.classList.toggle('np-header__menu-item--open', expanded); 1651 item.classList.toggle('np-header__menu-item--hovered', expanded); 1652 if (trigger) trigger.setAttribute('aria-expanded', String(expanded)); 1653 } 1654 1655 function closeDesktopDropdowns(exceptItem) { 1656 desktopDropdowns.forEach(item => { 1657 if (item !== exceptItem) setDropdownExpanded(item, false); 1658 }); 1659 } 1660 1661 function closeMobileSections() { 1662 mobileSections.forEach(toggle => { 1663 toggle.setAttribute('aria-expanded', 'false'); 1664 if (toggle.nextElementSibling) { 1665 toggle.nextElementSibling.classList.remove('active'); 1666 } 1667 }); 1668 } 1669 1670 let mobileMenuScrollY = 0; 1671 1672 function lockBodyScroll() { 1673 mobileMenuScrollY = window.scrollY || window.pageYOffset || 0; 1674 document.body.style.overflow = 'hidden'; 1675 document.body.style.position = 'fixed'; 1676 document.body.style.top = `-${mobileMenuScrollY}px`; 1677 document.body.style.left = '0'; 1678 document.body.style.right = '0'; 1679 document.body.style.width = '100%'; 1680 } 1681 1682 function unlockBodyScroll() { 1683 const wasLocked = document.body.style.position === 'fixed'; 1684 const scrollY = mobileMenuScrollY; 1685 document.body.style.overflow = ''; 1686 document.body.style.position = ''; 1687 document.body.style.top = ''; 1688 document.body.style.left = ''; 1689 document.body.style.right = ''; 1690 document.body.style.width = ''; 1691 if (wasLocked) { 1692 window.scrollTo(0, scrollY); 1693 } 1694 } 1695 1696 function closeMobileMenu() { 1697 if (!mobileToggle || !mobileMenu) return; 1698 const wasOpen = 1699 mobileToggle.getAttribute('aria-expanded') === 'true' || 1700 mobileMenu.classList.contains('active'); 1701 mobileToggle.setAttribute('aria-expanded', 'false'); 1702 mobileMenu.classList.remove('active'); 1703 closeMobileSections(); 1704 if (wasOpen) { 1705 unlockBodyScroll(); 1706 } 1707 } 1708 1709 // Sticky header scroll effect 1710 window.addEventListener('scroll', function() { 1711 if (window.scrollY > 50) { 1712 header.classList.add('np-header--scrolled'); 1713 } else { 1714 header.classList.remove('np-header--scrolled'); 1715 } 1716 }); 1717 1718 // Mobile menu toggle 1719 if (mobileToggle && mobileMenu) { 1720 mobileToggle.addEventListener('click', function() { 1721 const isExpanded = mobileToggle.getAttribute('aria-expanded') === 'true'; 1722 closeDesktopDropdowns(); 1723 mobileToggle.setAttribute('aria-expanded', String(!isExpanded)); 1724 mobileMenu.classList.toggle('active', !isExpanded); 1725 1726 // Prevent body scroll when menu is open (position:fixed keeps iOS from scrolling through) 1727 if (isExpanded) { 1728 unlockBodyScroll(); 1729 } else { 1730 lockBodyScroll(); 1731 } 1732 }); 1733 1734 mobileMenu.querySelectorAll('a').forEach(link => { 1735 link.addEventListener('click', closeMobileMenu); 1736 }); 1737 } 1738 1739 // Mobile accordion sections (single-open: collapse siblings) 1740 mobileSections.forEach(toggle => { 1741 toggle.addEventListener('click', function() { 1742 const isExpanded = this.getAttribute('aria-expanded') === 'true'; 1743 const content = this.nextElementSibling; 1744 1745 if (!isExpanded) { 1746 mobileSections.forEach(other => { 1747 if (other !== this && other.getAttribute('aria-expanded') === 'true') { 1748 other.setAttribute('aria-expanded', 'false'); 1749 other.nextElementSibling.classList.remove('active'); 1750 } 1751 }); 1752 } 1753 1754 this.setAttribute('aria-expanded', String(!isExpanded)); 1755 content.classList.toggle('active', !isExpanded); 1756 }); 1757 }); 1758 1759 desktopDropdowns.forEach(item => { 1760 const trigger = item.querySelector('.np-header__menu-link'); 1761 1762 item.addEventListener('mouseenter', function() { 1763 if (!isFineHover()) return; 1764 closeDesktopDropdowns(this); 1765 setDropdownExpanded(this, true); 1766 }); 1767 1768 item.addEventListener('mouseleave', function() { 1769 if (!isFineHover()) return; 1770 setDropdownExpanded(this, false); 1771 }); 1772 1773 item.addEventListener('focusin', function() { 1774 closeDesktopDropdowns(this); 1775 setDropdownExpanded(this, true); 1776 }); 1777 1778 item.addEventListener('focusout', function() { 1779 window.setTimeout(() => { 1780 if (!this.contains(document.activeElement)) { 1781 setDropdownExpanded(this, false); 1782 } 1783 }, 0); 1784 }); 1785 1786 if (trigger) { 1787 trigger.addEventListener('click', function(e) { 1788 const isPlaceholder = this.getAttribute('href') === '#'; 1789 const shouldToggle = !isFineHover(); 1790 1791 if (isPlaceholder) { 1792 e.preventDefault(); 1793 } 1794 1795 if (!shouldToggle) { 1796 if (isPlaceholder) setDropdownExpanded(item, true); 1797 return; 1798 } 1799 1800 const isExpanded = this.getAttribute('aria-expanded') === 'true'; 1801 closeDesktopDropdowns(item); 1802 setDropdownExpanded(item, !isExpanded); 1803 }); 1804 } 1805 }); 1806 1807 document.addEventListener('click', function(e) { 1808 if (header && !header.contains(e.target)) { 1809 closeDesktopDropdowns(); 1810 closeMobileMenu(); 1811 } 1812 }); 1813 1814 document.addEventListener('keydown', function(e) { 1815 if (e.key !== 'Escape') return; 1816 1817 closeDesktopDropdowns(); 1818 closeMobileMenu(); 1819 if (document.activeElement && header && header.contains(document.activeElement)) { 1820 document.activeElement.blur(); 1821 } 1822 }); 1823 1824 window.addEventListener('resize', function() { 1825 if (isDesktopNav()) { 1826 closeMobileMenu(); 1827 } else { 1828 closeDesktopDropdowns(); 1829 } 1830 }); 1831 1832}); 1833</script>
1833 1834 1835 <div class="np-site-wrapper"> 1836 <main class="tiktok-shop-to-quickbooks-page"> 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875<div class="np-hero"> 1876 <div class="np-hero-container"> 1877 <div class="np-hero-content"> 1878 <span class="np-integration-hero__eyebrow">Integration · TikTok to QuickBooks</span> 1879 <h1 class="np-hero-headline">TikTok Shop to QuickBooks Integration: Automated Settlement Accounting</h1> 1880 <p class="np-hero-description np-hero-description--ledger-deck">The TikTok Shop to QuickBooks integration built for real P&L â NeonPanel maps every payout into QuickBooks Online journals with FIFO COGS, fee mapping, and deposit-level reconciliation.</p> 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893<p class="np-hero-ledger-sub">Unified system</p> 1894 1895<ul class="np-hero-ledger-pills" role="list" aria-label="Unified system on the same ledger"> 1896 <li data-ledger-pill="accounting"><span class="np-hero-ledger-pills__text">Accounting</span></li><li data-ledger-pill="inventory"><span class="np-hero-ledger-pills__text">Inventory</span></li><li data-ledger-pill="forecasting"><span class="np-hero-ledger-pills__text">Forecasting</span></li><li data-ledger-pill="ai"><span class="np-hero-ledger-pills__text">AI access</span></li></ul> 1897 1898 1899 1900 1901 1902 <div class="np-hero-actions"> 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920<div class="np-hero-cta-buttons"> 1921 <div class="np-hero-cta-buttons__row"> 1922 <a href="https://www.neonpanel.com/meetings/michael-sorochev/neonpanel-discovery-and-demo" class="np-hero-cta-buttons__btn np-hero-cta-buttons__btn--primary" data-np-source="integrations_tiktok-shop-to-quickbooks_hero_book-demo">Book a Demo</a> 1923 1924 <a href="https://my.neonpanel.com/register" class="np-hero-cta-buttons__btn np-hero-cta-buttons__btn--outline" data-np-source="integrations_tiktok-shop-to-quickbooks_hero_start-free">Start Free</a> 1925 1926 </div> 1927 1928 <p class="np-hero-cta-buttons__note"><strong>14-Day Free Trial.</strong> No Card Required. Cancel Anytime</p> 1929 1930</div> 1931 1932 </div> 1933 </div> 1934 1935 <div class="np-hero-visual"> 1936 1937 <div class="np-hero-integration-badge"> 1938 1939 <div class="np-hero-icon-wrapper"> 1940 <img src="/images/website_integrations_tiktok.webp" alt="TikTok Shop logo" width="120" height="68" class="np-hero-platform-icon" decoding="async"> 1941 </div> 1942 1943 1944 1945 <div class="np-hero-sync-arrow"> 1946 <svg width="40" height="24" viewBox="0 0 40 24" fill="none"> 1947 <path d="M2 12h36M28 4l8 8-8 8" stroke="#5F59F0" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/> 1948 </svg> 1949 </div> 1950 1951 1952 1953 <div class="np-hero-icon-wrapper"> 1954 <img src="/images/website_integrations_quickbooks_logo.webp" alt="QuickBooks logo" width="120" height="68" class="np-hero-accounting-icon" decoding="async"> 1955 </div> 1956 1957 </div> 1958 1959 1960 1961 <div class="np-hero-features-preview"> 1962 <div class="np-hero-feature-item"> 1963 <div class="np-hero-feature-icon"> 1964 <svg width="32" height="32" viewBox="0 0 32 32" fill="none"> 1965 <rect x="4" y="8" width="4" height="16" rx="1" fill="#5F59F0"/> 1966 <rect x="10" y="12" width="4" height="12" rx="1" fill="#5F59F0"/> 1967 <rect x="16" y="6" width="4" height="18" rx="1" fill="#5F59F0"/> 1968 <rect x="22" y="10" width="4" height="14" rx="1" fill="#5F59F0"/> 1969 </svg> 1970 </div> 1971 <div class="np-hero-feature-text"> 1972 <div class="np-hero-feature-title">Accurate COGS</div> 1973 <div class="np-hero-feature-desc">Automated calculation</div> 1974 </div> 1975 </div> 1976 <div class="np-hero-feature-item"> 1977 <div class="np-hero-feature-icon"> 1978 <svg width="32" height="32" viewBox="0 0 32 32" fill="none"> 1979 <circle cx="16" cy="16" r="11" stroke="#5F59F0" stroke-width="2" fill="none"/> 1980 <path d="M16 8v8l5 3" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 1981 </svg> 1982 </div> 1983 <div class="np-hero-feature-text"> 1984 <div class="np-hero-feature-title">Real-Time Sync</div> 1985 <div class="np-hero-feature-desc">Continuous updates</div> 1986 </div> 1987 </div> 1988 <div class="np-hero-feature-item"> 1989 <div class="np-hero-feature-icon"> 1990 <svg width="32" height="32" viewBox="0 0 32 32" fill="none"> 1991 <path d="M6 16l6 6L26 8" stroke="#48BB78" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/> 1992 <circle cx="16" cy="16" r="14" stroke="#48BB78" stroke-width="1.5" fill="none"/> 1993 </svg> 1994 </div> 1995 <div class="np-hero-feature-text"> 1996 <div class="np-hero-feature-title">Tax Compliant</div> 1997 <div class="np-hero-feature-desc">Audit-ready books</div> 1998 </div> 1999 </div> 2000 </div> 2001 2002 </div> 2003 </div> 2004</div> 2005 2006<style> 2007 .np-hero { 2008 padding: 100px 20px 60px; 2009 background: linear-gradient(135deg, #F7F7FE 0%, #FFFFFF 100%); 2010 border-bottom: 1px solid #E5E7EB; 2011 } 2012 2013 .np-hero-container { 2014 max-width: 1200px; 2015 margin: 0 auto; 2016 display: grid; 2017 grid-template-columns: 1fr 1fr; 2018 gap: 60px; 2019 align-items: start; 2020 } 2021 2022 /* Product screenshot column: vertically center with the taller copy column */
2023 .np-hero--product-shot .np-hero-container { 2024 align-items: center; 2025 } 2026 2027 .np-hero--product-shot .np-hero-visual { 2028 margin-top: 0; 2029 align-self: center; 2030 justify-content: center; 2031 } 2032 2033 .np-hero-content { 2034 padding-bottom: 60px; 2035 max-width: 560px; 2036 text-align: left; 2037 } 2038 2039 .np-integration-hero__eyebrow { 2040 display: inline-block; 2041 font-size: 13px; 2042 font-weight: 600; 2043 letter-spacing: 0.06em; 2044 text-transform: uppercase; 2045 color: #5f59f0; 2046 margin: 0 0 14px; 2047 font-family: 'Inter', Arial, sans-serif; 2048 } 2049 2050 .np-hero-headline { 2051 /* ~560px copy rail: keep integration heroes to ~2 lines on desktop */ 2052 font-size: 44px; 2053 font-weight: 700; 2054 color: #1a202c; 2055 margin: 0 0 20px 0; 2056 line-height: 1.15; 2057 font-family: 'Inter', Arial, sans-serif; 2058 text-align: left; 2059 } 2060 2061 .np-hero-description { 2062 font-size: 20px; 2063 color: #4a5568; 2064 margin: 0 0 32px 0; 2065 line-height: 1.6; 2066 font-family: 'Inter', Arial, sans-serif; 2067 text-align: left; 2068 } 2069 2070 .np-hero-actions { 2071 display: flex; 2072 flex-direction: column; 2073 align-items: flex-start; 2074 } 2075 2076 .np-hero-description.np-hero-description--ledger-deck { 2077 margin-bottom: 0 !important; 2078 } 2079 2080 .np-hero-benefits { 2081 display: inline-flex; 2082 flex-direction: column; 2083 gap: 16px; 2084 margin-bottom: 32px; 2085 align-items: flex-start; 2086 text-align: left; 2087 } 2088 2089 .np-hero-benefit { 2090 display: flex; 2091 align-items: center; 2092 gap: 12px; 2093 font-size: 16px; 2094 color: #2d3748; 2095 font-family: 'Inter', Arial, sans-serif; 2096 text-align: left; 2097 } 2098 2099 .np-hero-check { 2100 flex-shrink: 0; 2101 } 2102 2103 .np-hero-visual { 2104 margin-top: -40px; 2105 display: flex; 2106 flex-direction: column; 2107 gap: 20px; 2108 } 2109
2110 .np-hero-product-shot { 2111 border-radius: 20px; 2112 overflow: hidden; 2113 box-shadow: 0 22px 70px rgba(22, 19, 95, 0.18); 2114 background: #f8f9fb; 2115 width: 100%; 2116 max-width: 560px; 2117 margin-left: auto; 2118 margin-right: auto; 2119 } 2120 .np-hero-product-shot__img { 2121 width: 100%; 2122 height: auto; 2123 display: block; 2124 vertical-align: middle; 2125 } 2126 2127 .np-hero-integration-badge { 2128 background: transparent; 2129 border-radius: 16px; 2130 padding: 20px; 2131 box-shadow: none; 2132 display: flex; 2133 align-items: center; 2134 justify-content: center; 2135 gap: 24px; 2136 } 2137 2138 .np-hero-icon-wrapper { 2139 width: 160px !important; 2140 height: 160px !important; 2141 display: flex; 2142 align-items: center; 2143 justify-content: center; 2144 background: #F7F7FE; 2145 border-radius: 16px; 2146 padding: 10px !important; 2147 flex-shrink: 0; 2148 } 2149 2150 .np-hero-platform-icon, 2151 .np-hero-accounting-icon { 2152 width: 100% !important; 2153 height: 100% !important; 2154 max-width: 100% !important; 2155 max-height: 100% !important; 2156 object-fit: contain !important; 2157 } 2158 2159 .np-hero-icon-placeholder { 2160 width: 60px; 2161 height: 60px; 2162 background: linear-gradient(135deg, #5f59f0 0%, #7c77ff 100%); 2163 border-radius: 8px; 2164 display: flex; 2165 align-items: center; 2166 justify-content: center; 2167 font-size: 32px; 2168 font-weight: 700; 2169 color: #ffffff; 2170 font-family: 'Inter', Arial, sans-serif; 2171 } 2172 2173 .np-hero-sync-arrow { 2174 flex-shrink: 0; 2175 display: flex; 2176 align-items: center; 2177 align-self: center; 2178 } 2179 2180 .np-hero-features-preview { 2181 display: flex; 2182 flex-direction: column; 2183 gap: 16px; 2184 } 2185 2186 .np-hero-feature-item { 2187 background: #ffffff; 2188 border-radius: 12px; 2189 padding: 20px; 2190 display: flex; 2191 align-items: start; 2192 gap: 16px; 2193 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); 2194 transition: transform 0.2s, box-shadow 0.2s; 2195 } 2196 2197 .np-hero-feature-item:hover { 2198 transform: translateX(4px); 2199 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 2200 } 2201 2202 .np-hero-feature-icon { 2203 font-size: 32px; 2204 flex-shrink: 0; 2205 } 2206 2207 .np-hero-feature-text { 2208 flex: 1; 2209 } 2210 2211 .np-hero-feature-title { 2212 font-size: 16px; 2213 font-weight: 600; 2214 color: #2d3748; 2215 margin-bottom: 4px; 2216 font-family: 'Inter', Arial, sans-serif; 2217 } 2218 2219 .np-hero-feature-desc { 2220 font-size: 14px; 2221 color: #718096; 2222 font-family: 'Inter', Arial, sans-serif; 2223 } 2224 2225 /* Accounting hero: infographic flow (Amazon & Shopify) */ 2226 .np-hero-acc-flow { 2227 background: linear-gradient(165deg, #f4f2fb 0%, #ffffff 45%, #eef0ff 100%); 2228 border: 1px solid rgba(95, 89, 240, 0.12); 2229 border-radius: 20px; 2230 padding: 24px 20px 20px; 2231 box-shadow: 0 12px 40px rgba(61, 46, 124, 0.08); 2232 max-width: 100%; 2233 display: flex; 2234 flex-direction: column; 2235 align-items: center; 2236 } 2237 .np-hero-flow-pills { 2238 display: flex; 2239 flex-wrap: wrap; 2240 gap: 8px; 2241 justify-content: center; 2242 margin-bottom: 20px; 2243 } 2244 .np-hero-flow-pill { 2245 font-size: 11px; 2246 font-weight: 600; 2247 letter-spacing: 0.04em; 2248 text-transform: uppercase; 2249 color: #5f59f0; 2250 background: rgba(95, 89, 240, 0.1); 2251 border: 1px solid rgba(95, 89, 240, 0.2); 2252 border-radius: 999px; 2253 padding: 6px 12px; 2254 font-family: 'Inter', Arial, sans-serif; 2255 } 2256 .np-hero-flow-col { 2257 display: flex; 2258 flex-direction: column; 2259 align-items: center; 2260 width: 100%; 2261 max-width: 320px; 2262 } 2263 .np-hero-flow-card { 2264 display: flex; 2265 flex-direction: column; 2266 align-items: center; 2267 justify-content: center; 2268 gap: 8px; 2269 width: 100%; 2270 padding: 14px 16px; 2271 border-radius: 14px; 2272 background: #fff; 2273 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); 2274 border: 1px solid rgba(0, 0, 0, 0.04); 2275 box-sizing: border-box; 2276 } 2277 .np-hero-flow-card--hub { 2278 padding: 16px; 2279 border-color: rgba(95, 89, 240, 0.25); 2280 box-shadow: 0 6px 20px rgba(95, 89, 240, 0.12); 2281 } 2282 .np-hero-flow-logo { 2283 width: 100px; 2284 height: auto; 2285 object-fit: contain; 2286 } 2287 .np-hero-flow-np-logo { 2288 width: 130px; 2289 height: auto; 2290 } 2291 .np-hero-flow-logo-sm { 2292 width: 72px; 2293 height: auto; 2294 object-fit: contain; 2295 } 2296 .np-hero-flow-label { 2297 font-size: 11px; 2298 font-weight: 600; 2299 color: #4a5568; 2300 font-family: 'Inter', Arial, sans-serif; 2301 text-align: center; 2302 line-height: 1.2; 2303 } 2304 .np-hero-flow-arrow { 2305 display: flex; 2306 justify-content: center; 2307 padding: 6px 0; 2308 } 2309 .np-hero-flow-accts { 2310 display: flex; 2311 gap: 12px; 2312 width: 100%; 2313 } 2314 .np-hero-flow-card--acct { 2315 flex: 1; 2316 padding: 12px 8px; 2317 } 2318 .np-hero-flow-caption { 2319 margin: 16px 0 0; 2320 text-align: center; 2321 font-size: 13px; 2322 line-height: 1.45; 2323 color: #64748b; 2324 font-family: 'Inter', Arial, sans-serif; 2325 max-width: 320px; 2326 } 2327 2328 @media screen and (max-width: 968px) { 2329 .np-hero-container { 2330 grid-template-columns: 1fr; 2331 gap: 48px; 2332 } 2333 2334 .np-hero-content { 2335 padding-bottom: 60px; 2336 max-width: 100%; 2337 } 2338 2339 .np-hero-headline { 2340 font-size: 36px; 2341 } 2342 2343 .np-hero-description { 2344 font-size: 18px; 2345 } 2346 } 2347 2348 @media screen and (max-width: 640px) { 2349 .np-hero { 2350 padding: 88px 16px 48px; 2351 } 2352 2353 .np-hero-headline { 2354 font-size: 32px; 2355 } 2356 2357 .np-hero-description { 2358 font-size: 16px; 2359 } 2360 2361 .np-hero-integration-badge { 2362 padding: 24px; 2363 gap: 16px; 2364 } 2365 2366 .np-hero-icon-wrapper { 2367 width: 120px !important; 2368 height: 120px !important; 2369 } 2370 2371 .np-hero-platform-icon, 2372 .np-hero-accounting-icon { 2373 width: 100% !important; 2374 height: 100% !important; 2375 max-width: none !important; 2376 max-height: none !important; 2377 min-width: 80px !important; 2378 min-height: 80px !important; 2379 } 2380 2381 .np-hero-icon-placeholder { 2382 width: 80px !important; 2383 height: 80px !important; 2384 font-size: 32px; 2385 } 2386 2387 .np-hero-sync-arrow svg { 2388 width: 32px; 2389 height: 20px; 2390 } 2391 2392 .np-hero-flow-diagram { 2393 flex-direction: column; 2394 } 2395 .np-hero-flow-connector svg { 2396 transform: rotate(90deg); 2397 } 2398 .np-hero-flow-pills { 2399 justify-content: flex-start; 2400 } 2401 } 2402</style> 2403 2404 2405 2406 2407 2408 2409 2410<section class="np-brands" aria-label="Trusted by brands"> 2411 <div class="np-brands__inner"> 2412 <h2 class="np-brands__title">Trusted by 200+ Ecommerce Teams</h2> 2413 2414 <div class="np-brands__carousel-wrapper"> 2415 <ul class="np-brands__carousel" aria-label="Customer logos carousel" data-carousel> 2416 <li class="np-brands__item"> 2417 <a href="/titan-case-study" aria-label="Read the Titan Network case study" data-np-source="brands_strip_titan_case-study"> 2418 <img class="np-brands__logo" src="/images/website_brands_titan.webp" alt="Titan" width="280" height="104" loading="lazy" decoding="async"> 2419 </a> 2420 </li> 2421 <li class="np-brands__item"> 2422 <img class="np-brands__logo" src="/images/website_brands_peppermint.webp" alt="Peppermint" width="280" height="104" loading="lazy" decoding="async"> 2423 </li> 2424 <li class="np-brands__item"> 2425 <a href="/case-study-5star" aria-label="Read the 5 Stars United case study" data-np-source="brands_strip_5-stars_case-study"> 2426 <img class="np-brands__logo" src="/images/website_brands_5SU.webp" alt="5 Stars United" width="280" height="104" loading="lazy" decoding="async"> 2427 </a> 2428 </li> 2429 <li class="np-brands__item"> 2430 <img class="np-brands__logo" src="/images/website_brands_malinad.webp" alt="Malinad" width="280" height="104" loading="lazy" decoding="async"> 2431 </li> 2432 <li class="np-brands__item"> 2433 <img class="np-brands__logo" src="/images/website_brands_green_orange.webp" alt="Green Orange" width="280" height="104" loading="lazy" decoding="async"> 2434 </li> 2435 <li class="np-brands__item"> 2436 <img class="np-brands__logo" src="/images/website_brands_vellax.webp" alt="Vellax" width="280" height="104" loading="lazy" decoding="async"> 2437 </li> 2438 <li class="np-brands__item"> 2439 <a href="/case-study-zenart" aria-label="Read the ZenART Supplies case study" data-np-source="brands_strip_zenart_case-study"> 2440 <img class="np-brands__logo" src="/images/website_brands_zenart.webp" alt="ZenArt" width="280" height="104" loading="lazy" decoding="async"> 2441 </a> 2442 </li> 2443 <li class="np-brands__item"> 2444 <a href="/international-plastics-case-study" aria-label="Read the International Plastics case study" data-np-source="brands_strip_international-plastics_case-study"> 2445 <img class="np-brands__logo" src="/images/international_plastics_logo_for_case_study.webp" alt="International Plastics" width="280" height="104" loading="lazy" decoding="async"> 2446 </a> 2447 </li> 2448 <li class="np-brands__item"> 2449 <img class="np-brands__logo" src="/images/website_brands_m_rosenfeld.svg" alt="M. Rosenfeld" width="280" height="56" loading="lazy" decoding="async"> 2450 </li> 2451 <li class="np-brands__item"> 2452 <img class="np-brands__logo" src="/images/etna_mount_logo_brand_strip.webp" alt="Etna Mount" width="280" height="104" loading="lazy" decoding="async"> 2453 </li> 2454 <li class="np-brands__item"> 2455 <a href="/case-study-florida-deals" aria-label="Read the Cookie Box forecasting case study" data-np-source="brands_strip_cookie-box_case-study"> 2456 <img class="np-brands__logo" src="/images/florida_deals_brand_stip_logo.webp" alt="Florida Deals" width="280" height="104" loading="lazy" decoding="async"> 2457 </a> 2458 </li> 2459 <li class="np-brands__item"> 2460 <a href="/case-study-florida-deals" aria-label="Read the Cookie Box forecasting case study" data-np-source="brands_strip_cookie-box-logo_case-study"> 2461 <img class="np-brands__logo" src="/images/cookie_box_brand_strip_logo.webp" alt="Cookie Box" width="280" height="104" loading="lazy" decoding="async"> 2462 </a> 2463 </li> 2464 </ul> 2465 </div> 2466 </div> 2467</section> 2468 2469<style> 2470 .np-brands { 2471 padding: 48px 0; 2472 background: #fff; 2473 } 2474 2475 .np-brands__inner { 2476 max-width: 1200px; 2477 margin: 0 auto; 2478 padding: 0 20px; 2479 } 2480 2481 .np-brands__title { 2482 margin: 0 0 32px; 2483 text-align: center; 2484 font-family: 'Inter', Arial, sans-serif; 2485 font-size: 14px; 2486 line-height: 1.4; 2487 font-weight: 600; 2488 letter-spacing: 0.06em; 2489 text-transform: uppercase; 2490 color: #000; 2491 } 2492 2493 /* Carousel wrapper with overflow hidden */ 2494 .np-brands__carousel-wrapper { 2495 overflow: hidden; 2496 mask-image: linear-gradient( 2497 to right, 2498 transparent 0%, 2499 black 8%, 2500 black 92%, 2501 transparent 100% 2502 ); 2503 -webkit-mask-image: linear-gradient( 2504 to right, 2505 transparent 0%, 2506 black 8%, 2507 black 92%, 2508 transparent 100% 2509 ); 2510 } 2511 2512 /* Carousel list with animation */ 2513 .np-brands__carousel { 2514 list-style: none; 2515 padding: 0; 2516 margin: 0; 2517 2518 display: flex; 2519 gap: 40px; 2520 align-items: center; 2521 2522 /* Animation: scroll infinitely with smooth looping */ 2523 animation: np-carousel-scroll linear infinite; 2524 animation-duration: var(--carousel-duration, 40s); 2525 width: fit-content; 2526 } 2527 2528 /* Pause animation on hover */ 2529 .np-brands__carousel-wrapper:hover .np-brands__carousel { 2530 animation-play-state: paused; 2531 } 2532 2533 /* Keyframe animation for smooth scrolling */ 2534 @keyframes np-carousel-scroll { 2535 0% { 2536 transform: translateX(0); 2537 } 2538 100% { 2539 transform: translateX(calc(-50%)); 2540 } 2541 } 2542 2543 .np-brands__item { 2544 display: flex; 2545 align-items: center; 2546 justify-content: center; 2547 flex-shrink: 0; 2548 min-width: 0; 2549 } 2550 2551 .np-brands__item a { 2552 display: inline-flex; 2553 align-items: center; 2554 justify-content: center; 2555 border-radius: 10px; 2556 line-height: 0; 2557 } 2558 2559 .np-brands__item a:focus-visible { 2560 outline: 3px solid rgba(95, 89, 240, 0.32); 2561 outline-offset: 4px; 2562 } 2563 2564 .np-brands__logo { 2565 /* Keep every mark in the same visual "box" */ 2566 height: 104px; 2567 width: auto; 2568 max-width: 280px; 2569 object-fit: contain; 2570 object-position: center; 2571 2572 filter: grayscale(100%); 2573 opacity: 0.72; 2574 transition: opacity 150ms ease, filter 150ms ease; 2575 } 2576 2577 @media (max-width: 960px) { 2578 .np-brands__logo { 2579 height: 86px; 2580 max-width: 260px; 2581 } 2582 } 2583 2584 @media (max-width: 560px) { 2585 .np-brands__logo { 2586 height: 70px; 2587 max-width: 230px; 2588 } 2589 2590 .np-brands__carousel { 2591 gap: 30px; 2592 } 2593 } 2594 2595 .np-brands__logo:hover { 2596 filter: none; 2597 opacity: 1; 2598 } 2599 2600 /* Reduce motion preference */ 2601 @media (prefers-reduced-motion: reduce) { 2602 .np-brands__carousel { 2603 animation: none; 2604 } 2605 } 2606 2607</style> 2608
2609<script> 2610 /** 2611 * Infinite carousel with no duplicates visible 2612 * Dynamically clones items to create seamless loop 2613 */ 2614 function initCarousel() { 2615 const carousel = document.querySelector('[data-carousel]'); 2616 if (!carousel) return; 2617 2618 const wrapper = carousel.parentElement; 2619 const items = carousel.querySelectorAll('.np-brands__item'); 2620 2621 if (items.length === 0) return; 2622 2623 // Clear any existing clones first 2624 const existingClones = carousel.querySelectorAll('.np-brands__item[data-clone]'); 2625 existingClones.forEach(clone => clone.remove()); 2626 2627 // Clone all items and append them for seamless loop 2628 items.forEach(item => { 2629 const clone = item.cloneNode(true); 2630 clone.setAttribute('data-clone', 'true'); 2631 clone.setAttribute('aria-hidden', 'true'); 2632 clone.querySelectorAll('a, button').forEach(control => control.setAttribute('tabindex', '-1')); 2633 clone.querySelectorAll('[data-np-source]').forEach(tracked => tracked.removeAttribute('data-np-source')); 2634 carousel.appendChild(clone); 2635 }); 2636 2637 // Get the total width of all original items (including gaps) 2638 const allItems = carousel.querySelectorAll('.np-brands__item'); 2639 let totalWidth = 0; 2640 allItems.forEach((item, index) => { 2641 totalWidth += item.offsetWidth; 2642 if (index < items.length - 1) { 2643 totalWidth += 40; // gap between items 2644 } 2645 }); 2646 2647 // Speed: 200px per second for faster scrolling 2648 const speed = 200; 2649 const duration = totalWidth / speed; 2650 2651 carousel.style.setProperty('--carousel-duration', `${duration}s`); 2652 carousel.style.setProperty('--carousel-width', `${totalWidth}px`); 2653 } 2654 2655 // Initialize carousel when DOM is ready 2656 if (document.readyState === 'loading') { 2657 document.addEventListener('DOMContentLoaded', initCarousel); 2658 } else {
2659 initCarousel(); 2660 } 2661 2662 // Reinitialize on window resize for responsiveness 2663 let resizeTimeout; 2664 window.addEventListener('resize', () => { 2665 clearTimeout(resizeTimeout); 2666 resizeTimeout = setTimeout(initCarousel, 250); 2667 }); 2668</script>
2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689<section class="np-integration-split np-integration-split--compare"> 2690 <div class="np-container"> 2691 2692 <div class="np-integration-split__header"> 2693 <span class="np-integration-split__eyebrow">Integration Gap</span> 2694 <h2 class="np-integration-split__title">What a basic TikTok Shop → QuickBooks sync leaves unfinished</h2> 2695 <p class="np-integration-split__lead">A TikTok Shop to QuickBooks export without NeonPanel usually stops at totals. NeonPanel closes each TikTok Shop to QuickBooks gap before the journal posts:</p> 2696 2697 </div> 2698 <div class="np-integration-split__compare"> 2699 <div class="np-integration-split__compare-col np-integration-split__compare-col--gap"> 2700 <h3 class="np-integration-split__compare-label">Native sync</h3> 2701 <ul class="np-integration-split__list np-integration-split__list--gap"> 2702 2703 <li> 2704 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#FFF1E8"/><path d="M7 7l6 6M13 7l-6 6" stroke="#F6841A" stroke-width="1.8" stroke-linecap="round"/></svg> 2705 <span>Payouts land as lump sums without fee, ads, shipping, or refund splits.</span> 2706 </li> 2707 2708 <li> 2709 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#FFF1E8"/><path d="M7 7l6 6M13 7l-6 6" stroke="#F6841A" stroke-width="1.8" stroke-linecap="round"/></svg> 2710 <span>Sales tax mixes marketplace-collected and seller-collected liabilities.</span> 2711 </li> 2712 2713 <li> 2714 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#FFF1E8"/><path d="M7 7l6 6M13 7l-6 6" stroke="#F6841A" stroke-width="1.8" stroke-linecap="round"/></svg> 2715 <span>COGS are missing or estimated with averages that drift from reality.</span> 2716 </li> 2717 2718 <li> 2719 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#FFF1E8"/><path d="M7 7l6 6M13 7l-6 6" stroke="#F6841A" stroke-width="1.8" stroke-linecap="round"/></svg> 2720 <span>Bank deposits do not match the journal, so reconciliation stays manual.</span> 2721 </li> 2722 2723 </ul> 2724 </div> 2725 <div class="np-integration-split__compare-col np-integration-split__compare-col--fix"> 2726 <h3 class="np-integration-split__compare-label">With NeonPanel</h3> 2727 <ul class="np-integration-split__list"> 2728 2729 <li> 2730 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 2731 <span>Every payout decomposes into sales, fees, ads, shipping, refunds, and tax.</span> 2732 </li> 2733 2734 <li> 2735 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 2736 <span>Jurisdiction rules keep marketplace vs seller tax in the right liability buckets.</span> 2737 </li> 2738 2739 <li> 2740 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 2741 <span>True FIFO COGS from purchase plus landed cost rides with each payout.</span> 2742 </li> 2743 2744 <li> 2745 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
2746 <span>Summary journals are sized to the TikTok deposit so bank rules clear in one step.</span> 2747 </li> 2748 2749 </ul> 2750 </div> 2751 </div> 2752 2753 2754 </div> 2755</section> 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806<section class="np-integration-features np-integration-features--with-hero" style="background: #ffffff; padding: 80px 40px;"> 2807 <div style="max-width: 1200px; margin: 0 auto;"> 2808 2809 2810 <div class="np-integration-features__hero"> 2811 <div class="np-integration-features__header np-integration-features__hero-copy"> 2812 <span class="np-integration-features__eyebrow">Deeper capability</span> 2813 <h2 class="np-integration-features__title">Settlement accounting built for TikTok Shop</h2> 2814 2815 <p class="np-integration-features__intro">Automate the TikTok Shop to QuickBooks integration beyond payout totals â fee splits, sales tax, FIFO COGS, and deposit-sized journals into QuickBooks Online.</p> 2816 2817 </div> 2818 <figure class="np-integration-features__hero-figure"> 2819 <picture> 2820 <source srcset="/images/tiktok-quickbooks-payout-gaps.webp" type="image/webp"> 2821 <img src="/images/tiktok-quickbooks-payout-gaps.png" alt="Diagram: TikTok Shop payout components mapped into QuickBooks Online journals" width="1200" height="800" loading="lazy" decoding="async"> 2822 </picture> 2823 </figure> 2824 </div> 2825 2826 2827 <div class="np-integration-icon-cards__grid np-integration-features__grid" style="--grid-min: 260px;"> 2828 2829 <div class="np-integration-icon-cards__item"> 2830 <div class="np-integration-icon-cards__icon"> 2831 2832 2833 2834<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2835 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2836 2837 <path d="M16 14h16v20l-3-2-3 2-3-2-3 2-3-2-3 2V14z" stroke="#5F59F0" stroke-width="2" stroke-linejoin="round" fill="none"/> 2838 <path d="M20 20h8M20 24h8M20 28h5" stroke="#5F59F0" stroke-width="1.5" stroke-linecap="round"/> 2839 2840</svg> 2841 2842 </div> 2843 <h3 class="np-integration-icon-cards__item-title">Settlement summaries</h3> 2844 <p class="np-integration-icon-cards__item-desc">Sales, ads, platform fees, shipping, refunds, and adjustments mapped to your Chart of Accounts.</p> 2845 </div> 2846 2847 <div class="np-integration-icon-cards__item"> 2848 <div class="np-integration-icon-cards__icon"> 2849 2850 2851 2852<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2853 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2854 2855 2856 <path d="M14 16h12v18H14z" stroke="#5F59F0" stroke-width="2" fill="none"/> 2857 <path d="M18 21h4M18 25h6M18 29h5" stroke="#5F59F0" stroke-width="1.5" stroke-linecap="round"/> 2858 <circle cx="32" cy="28" r="7" stroke="#5F59F0" stroke-width="2" fill="#F0F1FF"/> 2859 <path d="M29 28l2 2 4-4.5" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 2860 2861</svg> 2862 2863 </div> 2864 <h3 class="np-integration-icon-cards__item-title">Posting + reconciliation</h3> 2865 <p class="np-integration-icon-cards__item-desc">Summary entries sized to bank deposits; rules stay consistent payout to payout.</p> 2866 </div> 2867 2868 <div class="np-integration-icon-cards__item"> 2869 <div class="np-integration-icon-cards__icon"> 2870 2871 2872 2873<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2874 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2875 2876 <path d="M24 14l8 4v8c0 5-3.5 9.5-8 10-4.5-.5-8-5-8-10v-8l8-4z" stroke="#5F59F0" stroke-width="2" stroke-linejoin="round" fill="none"/> 2877 <path d="M20 24l3 3 6-7" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 2878 2879</svg> 2880 2881 </div> 2882 <h3 class="np-integration-icon-cards__item-title">Sales tax</h3> 2883 <p class="np-integration-icon-cards__item-desc">Jurisdiction rules keep marketplace-collected vs seller-collected tax in the right liability buckets.</p> 2884 </div> 2885 2886 <div class="np-integration-icon-cards__item"> 2887 <div class="np-integration-icon-cards__icon"> 2888 2889 2890 2891<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2892 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2893 2894 2895 <path d="M14 16h20v6H14z" stroke="#5F59F0" stroke-width="2" fill="none"/> 2896 <path d="M16 25h16v6H16z" stroke="#5F59F0" stroke-width="2" fill="none"/> 2897 <path d="M18 34h12" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 2898 <path d="M24 18.5v1.5M22.5 19.2c0-.7.7-1.2 1.5-1.2s1.5.4 1.5 1.1c0 .7-.5 1-1.5 1.3-.9.3-1.5.7-1.5 1.4 0 .7.7 1.2 1.5 1.2s1.5-.5 1.5-1.2" stroke="#5F59F0" stroke-width="1.4" stroke-linecap="round" fill="none"/> 2899 2900</svg> 2901 2902 </div> 2903 <h3 class="np-integration-icon-cards__item-title">FIFO COGS</h3> 2904 <p class="np-integration-icon-cards__item-desc">True batch cost (purchase + landed cost) rides with each payout so margin is not average-cost drift.</p> 2905 </div> 2906 2907 <div class="np-integration-icon-cards__item"> 2908 <div class="np-integration-icon-cards__icon"> 2909 2910 2911 2912<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2913 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2914 2915 <circle cx="24" cy="24" r="4" stroke="#5F59F0" stroke-width="2" fill="none"/> 2916 <path d="M24 14v3M24 31v3M14 24h3M31 24h3M17.5 17.5l2 2M28.5 28.5l2 2M30.5 17.5l-2 2M19.5 28.5l-2 2" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 2917 2918</svg> 2919 2920 </div> 2921 <h3 class="np-integration-icon-cards__item-title">Allocations</h3> 2922 <p class="np-integration-icon-cards__item-desc">Split by country, fulfillment model, or product line without rebuilding spreadsheets each month.</p> 2923 </div> 2924 2925 <div class="np-integration-icon-cards__item"> 2926 <div class="np-integration-icon-cards__icon"> 2927 2928 2929 2930<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 2931 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 2932 2933 <circle cx="18" cy="24" r="5" stroke="#5F59F0" stroke-width="2" fill="none"/> 2934 <circle cx="30" cy="24" r="5" stroke="#5F59F0" stroke-width="2" fill="none"/> 2935 <path d="M23 24h2" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 2936 2937</svg> 2938 2939 </div> 2940 <h3 class="np-integration-icon-cards__item-title">Multi-channel context</h3> 2941 <p class="np-integration-icon-cards__item-desc">Same ledger ties TikTok to Amazon, Shopify, and inventory when you connect those channels.</p> 2942 </div> 2943 2944 </div> 2945 2946 2947 2948 </div> 2949</section> 2950 2951 2952 2953<style> 2954 .np-integration-features__header { 2955 text-align: center; 2956 max-width: 720px; 2957 margin: 0 auto 48px; 2958 } 2959 .np-integration-features__eyebrow { 2960 display: inline-block; 2961 font-size: 12px; 2962 font-weight: 700; 2963 letter-spacing: 0.14em; 2964 text-transform: uppercase; 2965 color: #5F59F0; 2966 margin-bottom: 12px; 2967 font-family: 'Inter', Arial, sans-serif; 2968 } 2969 .np-integration-features__title { 2970 font-size: 36px; 2971 line-height: 1.2; 2972 margin: 0 0 18px; 2973 color: #0A0F1A; 2974 font-weight: 700; 2975 font-family: 'Inter', Arial, sans-serif; 2976 } 2977 .np-integration-features__intro { 2978 font-size: 17px; 2979 line-height: 1.65; 2980 margin: 0; 2981 color: #363636; 2982 font-family: 'Inter', Arial, sans-serif; 2983 } 2984 .np-integration-features__visual { 2985 display: flex; 2986 justify-content: center; 2987 margin-bottom: 56px; 2988 } 2989 .np-integration-features__collage { 2990 position: relative; 2991 width: 100%; 2992 max-width: 520px; 2993 height: 420px; 2994 } 2995 .np-integration-features__img-main { 2996 position: relative; 2997 z-index: 2; 2998 width: 304px; 2999 border-radius: 20px; 3000 display: block; 3001 } 3002 .np-integration-features__img-left { 3003 position: absolute; 3004 top: 50px; 3005 left: 0; 3006 z-index: 1; 3007 width: 280px; 3008 border-radius: 10px; 3009 box-shadow: 40px -40px 100px 0px rgba(22, 19, 95, 0.3); 3010 } 3011 .np-integration-features__img-right { 3012 position: absolute; 3013 top: 120px; 3014 right: 20px; 3015 z-index: 3; 3016 width: 200px; 3017 border-radius: 20px; 3018 box-shadow: -40px 40px 80px 0px rgba(22, 19, 95, 0.3); 3019 } 3020 .np-integration-features__grid { 3021 margin-bottom: 0; 3022 } 3023 .np-integration-features__callout { 3024 margin: 40px 0 0; 3025 padding: 12px 16px; 3026 background: #F1E9F4; 3027 border-left: 4px solid #8E8CFF; 3028 font-size: 17px; 3029 line-height: 1.65; 3030 color: #363636; 3031 font-family: 'Inter', Arial, sans-serif; 3032 } 3033 @media screen and (max-width: 768px) { 3034 .np-integration-features { 3035 padding: 50px 16px !important; 3036 } 3037 .np-integration-features__title { 3038 font-size: 28px; 3039 } 3040 .np-integration-features__collage { 3041 height: 360px; 3042 max-width: 100%; 3043 } 3044 .np-integration-features__img-main { 3045 width: 240px; 3046 } 3047 .np-integration-features__img-left { 3048 width: 220px; 3049 } 3050 .np-integration-features__img-right { 3051 width: 160px; 3052 right: 0; 3053 } 3054 } 3055</style> 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067<style> 3068 .np-integration-icon-cards__eyebrow { 3069 font-size: 12px; 3070 font-weight: 700; 3071 letter-spacing: 0.14em; 3072 text-transform: uppercase; 3073 color: #5F59F0; 3074 margin-bottom: 12px; 3075 font-family: 'Inter', Arial, sans-serif; 3076 } 3077 .np-integration-icon-cards__title { 3078 font-size: 36px; 3079 line-height: 1.2; 3080 margin: 0 0 18px; 3081 color: #0A0F1A; 3082 font-weight: 700; 3083 font-family: 'Inter', Arial, sans-serif; 3084 } 3085 .np-integration-icon-cards__intro { 3086 font-size: 17px; 3087 line-height: 1.65; 3088 margin: 0 auto 48px; 3089 max-width: 720px; 3090 color: #363636; 3091 font-family: 'Inter', Arial, sans-serif; 3092 } 3093 .np-integration-icon-cards__grid { 3094 display: grid; 3095 grid-template-columns: repeat(auto-fit, minmax(var(--grid-min, 260px), 1fr)); 3096 gap: 28px; 3097 } 3098 .np-integration-icon-cards__item { 3099 background: #fff; 3100 border: 1px solid #ebe8f8; 3101 border-radius: 18px; 3102 padding: 28px 24px; 3103 box-shadow: 0 10px 30px rgba(31, 35, 67, 0.05); 3104 text-align: center; 3105 } 3106 .np-integration-icon-cards__icon { 3107 margin: 0 auto 18px; 3108 width: 48px; 3109 height: 48px; 3110 } 3111 .np-integration-icon-cards__item-title { 3112 font-size: 18px; 3113 font-weight: 600; 3114 color: #0A0F1A; 3115 margin: 0 0 10px; 3116 font-family: 'Inter', Arial, sans-serif; 3117 } 3118 .np-integration-icon-cards__item-desc { 3119 font-size: 15px; 3120 line-height: 1.6; 3121 color: #6c6684; 3122 margin: 0; 3123 font-family: 'Inter', Arial, sans-serif; 3124 } 3125 @media screen and (max-width: 768px) { 3126 .np-integration-icon-cards { 3127 padding: 50px 16px !important; 3128 } 3129 .np-integration-icon-cards__title { 3130 font-size: 28px; 3131 } 3132 .np-integration-icon-cards__grid { 3133 gap: 20px; 3134 } 3135 .np-integration-icon-cards__item { 3136 padding: 22px 18px; 3137 } 3138 } 3139</style> 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159<section class="np-integration-icon-cards" style="background: #ffffff; padding: 80px 40px;"> 3160 <div class="np-container"> 3161 3162 <span class="np-integration-icon-cards__eyebrow" style="display:block; text-align: center;">Why automate</span> 3163 3164 3165 <h2 class="np-integration-icon-cards__title" style="text-align: center;">Why automate TikTok Shop into QuickBooks</h2> 3166 3167 3168 <p class="np-integration-icon-cards__intro" style="text-align: center;">Manual payout splits waste time and reintroduce categorisation drift. NeonPanel reads TikTok settlements via API, maps them once, and posts on every close.</p> 3169 3170 <div class="np-integration-icon-cards__grid" style="--grid-min: 210px;"> 3171 3172 <div class="np-integration-icon-cards__item"> 3173 <div class="np-integration-icon-cards__icon"> 3174 3175 3176 3177<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3178 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3179 3180 <circle cx="24" cy="24" r="10" stroke="#5F59F0" stroke-width="2" fill="none"/> 3181 <path d="M24 18v6l4 3" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3182 3183</svg> 3184 3185 </div> 3186 <h3 class="np-integration-icon-cards__item-title">Less spreadsheet work</h3> 3187 <p class="np-integration-icon-cards__item-desc">Payouts decompose to accounts automatically.</p> 3188 </div> 3189 3190 <div class="np-integration-icon-cards__item"> 3191 <div class="np-integration-icon-cards__icon"> 3192 3193 3194 3195<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3196 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3197 3198 <path d="M30 18a8 8 0 10-2.3 5.7" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" fill="none"/> 3199 <path d="M28 14h4v4" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3200 <path d="M18 30a8 8 0 102.3-5.7" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" fill="none"/> 3201 <path d="M20 34h-4v-4" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3202 3203</svg> 3204 3205 </div> 3206 <h3 class="np-integration-icon-cards__item-title">Settlement-fresh books</h3> 3207 <p class="np-integration-icon-cards__item-desc">Fees, tax, and refunds follow each payout cycle.</p> 3208 </div> 3209 3210 <div class="np-integration-icon-cards__item"> 3211 <div class="np-integration-icon-cards__icon"> 3212 3213 3214 3215<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3216 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3217 3218 <path d="M24 14l8 4v8c0 5-3.5 9.5-8 10-4.5-.5-8-5-8-10v-8l8-4z" stroke="#5F59F0" stroke-width="2" stroke-linejoin="round" fill="none"/> 3219 <path d="M20 24l3 3 6-7" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3220 3221</svg> 3222 3223 </div> 3224 <h3 class="np-integration-icon-cards__item-title">Audit-friendly tax</h3> 3225 <p class="np-integration-icon-cards__item-desc">Marketplace vs seller tax stays separated.</p> 3226 </div> 3227 3228 <div class="np-integration-icon-cards__item"> 3229 <div class="np-integration-icon-cards__icon"> 3230 3231 3232 3233<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3234 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3235 3236 3237 <path d="M14 16h12v18H14z" stroke="#5F59F0" stroke-width="2" fill="none"/> 3238 <path d="M18 21h4M18 25h6M18 29h5" stroke="#5F59F0" stroke-width="1.5" stroke-linecap="round"/> 3239 <circle cx="32" cy="28" r="7" stroke="#5F59F0" stroke-width="2" fill="#F0F1FF"/> 3240 <path d="M29 28l2 2 4-4.5" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3241 3242</svg> 3243 3244 </div> 3245 <h3 class="np-integration-icon-cards__item-title">Deposit alignment</h3> 3246 <p class="np-integration-icon-cards__item-desc">Summary journals match what hits the bank.</p> 3247 </div> 3248 3249 <div class="np-integration-icon-cards__item"> 3250 <div class="np-integration-icon-cards__icon"> 3251 3252 3253 3254<svg class="np-icon-svg" width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3255 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3256 3257 <path d="M16 30l6-10 6 6 8-12" stroke="#5F59F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3258 <path d="M14 34h20" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 3259 3260</svg> 3261 3262 </div> 3263 <h3 class="np-integration-icon-cards__item-title">Scales with volume</h3> 3264 <p class="np-integration-icon-cards__item-desc">Rules stay the same as order count grows.</p> 3265 </div> 3266 3267 </div> 3268 </div> 3269</section> 3270 3271 3272 3273<style> 3274 .np-integration-icon-cards__eyebrow { 3275 font-size: 12px; 3276 font-weight: 700; 3277 letter-spacing: 0.14em; 3278 text-transform: uppercase; 3279 color: #5F59F0; 3280 margin-bottom: 12px; 3281 font-family: 'Inter', Arial, sans-serif; 3282 } 3283 .np-integration-icon
3283-cards__title { 3284 font-size: 36px; 3285 line-height: 1.2; 3286 margin: 0 0 18px; 3287 color: #0A0F1A; 3288 font-weight: 700; 3289 font-family: 'Inter', Arial, sans-serif; 3290 } 3291 .np-integration-icon-cards__intro { 3292 font-size: 17px; 3293 line-height: 1.65; 3294 margin: 0 auto 48px; 3295 max-width: 720px; 3296 color: #363636; 3297 font-family: 'Inter', Arial, sans-serif; 3298 } 3299 .np-integration-icon-cards__grid { 3300 display: grid; 3301 grid-template-columns: repeat(auto-fit, minmax(var(--grid-min, 260px), 1fr)); 3302 gap: 28px; 3303 } 3304 .np-integration-icon-cards__item { 3305 background: #fff; 3306 border: 1px solid #ebe8f8; 3307 border-radius: 18px; 3308 padding: 28px 24px; 3309 box-shadow: 0 10px 30px rgba(31, 35, 67, 0.05); 3310 text-align: center; 3311 } 3312 .np-integration-icon-cards__icon { 3313 margin: 0 auto 18px; 3314 width: 48px; 3315 height: 48px; 3316 } 3317 .np-integration-icon-cards__item-title { 3318 font-size: 18px; 3319 font-weight: 600; 3320 color: #0A0F1A; 3321 margin: 0 0 10px; 3322 font-family: 'Inter', Arial, sans-serif; 3323 } 3324 .np-integration-icon-cards__item-desc { 3325 font-size: 15px; 3326 line-height: 1.6; 3327 color: #6c6684; 3328 margin: 0; 3329 font-family: 'Inter', Arial, sans-serif; 3330 } 3331 @media screen and (max-width: 768px) { 3332 .np-integration-icon-cards { 3333 padding: 50px 16px !important; 3334 } 3335 .np-integration-icon-cards__title { 3336 font-size: 28px; 3337 } 3338 .np-integration-icon-cards__grid { 3339 gap: 20px; 3340 } 3341 .np-integration-icon-cards__item { 3342 padding: 22px 18px; 3343 } 3344 } 3345</style> 3346 3347 3348 3349 3350<section class="np-section bg-gray"> 3351 <div class="np-container"> 3352 <div class="np-integration-steps-header"> 3353 <span class="np-eyebrow">How it works</span> 3354 <h2 class="np-h2" style="margin-bottom: 0;">How the TikTok Shop to QuickBooks integration works</h2> 3355 </div> 3356 <div class="np-integration-steps"> 3357 <div class="np-integration-step"> 3358 <div class="np-integration-step__num">1</div> 3359 <h3 class="np-integration-step__title">Connect Your Accounts</h3> 3360 <p class="np-integration-step__desc">OAuth TikTok Shop Seller Center and QuickBooks Online.</p> 3361 </div> 3362 <div class="np-integration-step"> 3363 <div class="np-integration-step__num">2</div> 3364 <h3 class="np-integration-step__title">Configure Your Mapping</h3> 3365 <p class="np-integration-step__desc">Point sales, fees, tax, and adjustments at accounts by country, category, or fulfillment path.</p> 3366 </div> 3367 <div class="np-integration-step"> 3368 <div class="np-integration-step__num">3</div> 3369 <h3 class="np-integration-step__title">Automate & Sync</h3> 3370 <p class="np-integration-step__desc">Each closed settlement posts a summary journal plus COGS; totals align with the TikTok deposit for bank rules.</p> 3371 </div> 3372 </div> 3373 </div> 3374</section> 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396<section class="np-integration-split np-integration-split--muted np-integration-split--reverse"> 3397 <div class="np-container"> 3398 3399 <div class="np-integration-split__inner"> 3400 <div class="np-integration-split__copy"> 3401 <span class="np-integration-split__eyebrow">Deposit reconciliation</span> 3402 <h2 class="np-integration-split__title">Automate TikTok Shop accounting with NeonPanel</h2> 3403 <p class="np-integration-split__lead">NeonPanel turns TikTok payouts into mapped QuickBooks Online journals with true FIFO COGS and deposit-level reconciliation. Start free and validate the first settlement in minutes.</p> 3404 3405 3406 3407 </div> 3408 3409 <figure class="np-integration-split__media np-integration-split__figure"> 3410 <picture> 3411 <source srcset="/images/tiktok-quickbooks-deposit-reconcile.webp" type="image/webp"> 3412 <img src="/images/tiktok-quickbooks-deposit-reconcile.png" alt="Diagram: TikTok Shop payout summary journal in QuickBooks Online aligned to the bank deposit for one-step reconciliation" width="1200" height="800" loading="lazy" decoding="async"> 3413 </picture> 3414 </figure> 3415 3416 </div> 3417 3418 </div> 3419</section> 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449<section class="np-section bg-gray"> 3450 <div class="np-container"> 3451 3452 <div class="np-integration-link-grid__header">
3453 <span class="np-eyebrow">See also</span> 3454 <h2 class="np-h2">Related guides</h2> 3455 3456 </div> 3457 3458 3459 <div class="np-integration-link-grid"> 3460 3461 <div class="np-integration-link-tile"> 3462 3463 <a href="/inventory-management" class="np-integration-link-tile__link" data-np-source="tiktok_to_quickbooks_related_inventory"> 3464 <h3 class="np-integration-link-tile__title">True inventory tracking <span class="np-integration-link-tile__arrow" aria-hidden="true">→</span></h3> 3465 </a> 3466 <p class="np-integration-link-tile__body">Shipment-level stock and valuation on the same ledger.</p> 3467 </div> 3468 3469 <div class="np-integration-link-tile"> 3470 3471 <a href="/accounting-ecommerce" class="np-integration-link-tile__link" data-np-source="tiktok_to_quickbooks_related_accounting"> 3472 <h3 class="np-integration-link-tile__title">Ecommerce accounting on NeonPanel <span class="np-integration-link-tile__arrow" aria-hidden="true">→</span></h3> 3473 </a> 3474 <p class="np-integration-link-tile__body">Module overview for finance-led operators.</p> 3475 </div> 3476 3477 <div class="np-integration-link-tile"> 3478 3479 <a href="/inventory-forecasting" class="np-integration-link-tile__link" data-np-source="tiktok_to_quickbooks_related_forecasting"> 3480 <h3 class="np-integration-link-tile__title">Forecasting & replenishment <span class="np-integration-link-tile__arrow" aria-hidden="true">→</span></h3> 3481 </a> 3482 <p class="np-integration-link-tile__body">Replenishment on the costs that close the books.</p> 3483 </div> 3484 3485 <div class="np-integration-link-tile"> 3486 3487 <a href="/quickbooks-integration" class="np-integration-link-tile__link" data-np-source="tiktok_to_quickbooks_related_hub"> 3488 <h3 class="np-integration-link-tile__title">QuickBooks integration hub <span class="np-integration-link-tile__arrow" aria-hidden="true">→</span></h3> 3489 </a> 3490 <p class="np-integration-link-tile__body">All marketplace guides for QuickBooks Online.</p> 3491 </div> 3492 3493 </div> 3494 3495 </div> 3496</section> 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507<section id="quickbooks-to-tiktok" class="np-section" style="scroll-margin-top: 90px;"> 3508 <div class="np-container"> 3509 <span class="np-eyebrow">QuickBooks Online to TikTok Shop</span> 3510 <h2 class="np-h2">The QuickBooks side of the TikTok Shop ledger</h2> 3511 <p class="np-text">Whether you search “TikTok Shop to QuickBooks” or “QuickBooks to TikTok Shop”, you are wiring the same NeonPanel ledger. QuickBooks Online receives one summary journal per TikTok payout covering sales, marketplace fees, ads, shipping, refunds, sales tax, and COGS, mapped to your Chart of Accounts and sized to the deposit.</p> 3512 <p class="np-text">What that gives the QuickBooks user:</p> 3513 <ul class="np-integration-split__list"> 3514 <li> 3515 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 3516 <span><strong>One summary entry per payout</strong> in QuickBooks Online, with the underlying TikTok line items kept in NeonPanel for audit.</span> 3517 </li> 3518 <li> 3519 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 3520 <span><strong>Automatic bank match</strong> — the summary entry matches the TikTok deposit in QBO without manual reclassification.</span> 3521 </li> 3522 <li> 3523 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
3524 <span><strong>Class & location tracking</strong> — allocate by storefront, country, or product line so QuickBooks reports stay decision-ready.</span> 3525 </li> 3526 <li> 3527 <svg class="np-integration-split__list-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"><circle cx="10" cy="10" r="9" fill="#F0F1FF"/><path d="M6 10.5l2.5 2.5L14 7.5" stroke="#5F59F0" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 3528 <span><strong>Multi-storefront aware</strong> — multiple TikTok Shop accounts roll up into a single QuickBooks company without losing channel-level reporting.</span> 3529 </li> 3530 </ul> 3531 </div> 3532</section> 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542<div class="np-sync-everything"> 3543 <div class="np-sync-container"> 3544 3545 <h2 class="np-sync-title">Sync Everything</h2> 3546 3547 3548 <div class="np-sync-grid"> 3549 3550 <div class="np-sync-item"> 3551 <div class="np-sync-icon"> 3552 3553 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3554 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3555 <path d="M16 18h16M16 24h16M16 30h12" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 3556 </svg> 3557 3558 </div> 3559 <h3 class="np-sync-item-title">Catalogs</h3> 3560 <p class="np-sync-item-desc">Including Products, Services, Customers, Vendors, and Currencies</p> 3561 </div> 3562 3563 <div class="np-sync-item"> 3564 <div class="np-sync-icon"> 3565 3566 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3567 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3568 <path d="M14 16h20v16H14z" stroke="#5F59F0" stroke-width="2" fill="none"/> 3569 <path d="M18 20h12M18 24h8M18 28h10" stroke="#5F59F0" stroke-width="1.5" stroke-linecap="round"/> 3570 </svg> 3571 3572 </div> 3573 <h3 class="np-sync-item-title">Charts of Accounts</h3> 3574 <p class="np-sync-item-desc">Use the default Chart of Accounts tailored for TikTok Shop and multi-channel sellers or customize your own</p> 3575 </div> 3576 3577 <div class="np-sync-item"> 3578 <div class="np-sync-icon"> 3579 3580 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3581 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3582 <circle cx="24" cy="24" r="10" stroke="#5F59F0" stroke-width="2" fill="none"/> 3583 <path d="M24 20v4l3 3" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 3584 </svg> 3585 3586 </div> 3587 <h3 class="np-sync-item-title">Bills</h3> 3588 <p class="np-sync-item-desc">Bills, purchase orders, and expenses synced in real-time</p> 3589 </div> 3590 3591 <div class="np-sync-item"> 3592 <div class="np-sync-icon"> 3593 3594 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 3595 <rect width="48" height="48" rx="8" fill="#F0F1FF"/> 3596 <path d="M14 16h20l-2 16H16l-2-16z" stroke="#5F59F0" stroke-width="2" fill="none"/> 3597 <path d="M20 22h8" stroke="#5F59F0" stroke-width="2" stroke-linecap="round"/> 3598 </svg> 3599 3600 </div> 3601 <h3 class="np-sync-item-title">Invoices & FIFO COGS</h3> 3602 <p class="np-sync-item-desc">Sales invoices sync alongside true Cost of Goods Sold calculated with the FIFO method</p> 3603 </div> 3604 3605 </div> 3606 </div> 3607</div> 3608 3609<style> 3610 .np-sync-everything { 3611 padding: 80px 20px; 3612 background-color: #ffffff; 3613 } 3614 3615 .np-sync-container { 3616 max-width: 1200px; 3617 margin: 0 auto; 3618 } 3619 3620 .np-sync-eyebrow { 3621 display: block; 3622 text-align: center; 3623 font-size: 13px; 3624 font-weight: 600; 3625 letter-spacing: 0.06em; 3626 text-transform: uppercase; 3627 color: #5f59f0; 3628 margin: 0 0 12px; 3629 font-family: 'Inter', Arial, sans-serif; 3630 } 3631 3632 .np-sync-title { 3633 font-size: 36px; 3634 font-weight: 700; 3635 color: #1a202c; 3636 text-align: center; 3637 margin-bottom: 60px; 3638 font-family: 'Inter', Arial, sans-serif; 3639 } 3640 3641 .np-sync-title--with-intro { 3642 margin-bottom: 20px; 3643 } 3644 3645 .np-sync-intro { 3646 font-size: 17px; 3647 line-height: 1.7; 3648 color: #4a5568; 3649 text-align: center; 3650 max-width: 760px; 3651 margin: 0 auto 48px; 3652 font-family: 'Inter', Arial, sans-serif; 3653 } 3654 3655 .np-sync-grid { 3656 display: grid; 3657 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); 3658 gap: 32px; 3659 } 3660 3661 .np-sync-item { 3662 text-align: center; 3663 padding: 24px; 3664 } 3665 3666 .np-sync-icon { 3667 margin: 0 auto 20px; 3668 width: 48px; 3669 height: 48px; 3670 } 3671 3672 .np-sync-item-title { 3673 font-size: 20px; 3674 font-weight: 600; 3675 color: #2d3748; 3676 margin-bottom: 12px; 3677 font-family: 'Inter', Arial, sans-serif; 3678 } 3679 3680 .np-sync-item-desc { 3681 font-size: 15px; 3682 color: #6c6684; 3683 line-height: 1.6; 3684 margin: 0; 3685 font-family: 'Inter', Arial, sans-serif; 3686 } 3687 3688 @media screen and (max-width: 768px) { 3689 .np-sync-everything { 3690 padding: 50px 16px; 3691 } 3692 3693 .np-sync-title { 3694 font-size: 28px; 3695 margin-bottom: 40px; 3696 } 3697 3698 .np-sync-grid { 3699 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 3700 gap: 24px; 3701 } 3702 3703 .np-sync-item { 3704 padding: 16px; 3705 } 3706 3707 .np-sync-item-title { 3708 font-size: 18px; 3709 } 3710 3711 .np-sync-item-desc { 3712 font-size: 14px; 3713 } 3714 } 3715</style> 3716 3717 3718 3719 3720 3721 3722 3723<!-- AI Tail: specialist agents + ledger trust (rendered above final CTA on positioning pages) --> 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736<section class="np-aitail" aria-label="NeonPanel AI agents on your ledger"> 3737 <div class="np-aitail__container"> 3738 <span class="np-aitail__overline">AI on your data</span> 3739 <h2 class="np-aitail__headline">Eight specialists for your business</h2> 3740 <p class="np-aitail__lede">NeonPanel ships domain agents for replenishment, supply chain, accounting, forecasting, market intel, and more — on the same FIFO ledger and shipment-level inventory your ops and finance already use. Ask in Claude, Slack, or your own MCP client; the numbers stay one conversation.</p> 3741 3742 3743 3744 3745 <ul class="np-aitail__roster" role="list"> 3746 <li class="np-aitail__agent">
3747 <span class="np-aitail__agent-name">Dorian</span> 3748 <span class="np-aitail__agent-role">Replenishment</span> 3749 <span class="np-aitail__agent-desc">PO timing, reorder points, and stockout risk from live velocity</span> 3750 </li> 3751 <li class="np-aitail__agent"> 3752 <span class="np-aitail__agent-name">Nina</span> 3753 <span class="np-aitail__agent-role">Supply chain</span> 3754 <span class="np-aitail__agent-desc">Shipment ETAs, warehouse balances, and inbound reconciliation</span> 3755 </li> 3756 <li class="np-aitail__agent"> 3757 <span class="np-aitail__agent-name">Mark</span> 3758 <span class="np-aitail__agent-role">Marketing research</span> 3759 <span class="np-aitail__agent-desc">Listing audits, keyword research, and PPC waste checks</span> 3760 </li> 3761 <li class="np-aitail__agent"> 3762 <span class="np-aitail__agent-name">Marta</span> 3763 <span class="np-aitail__agent-role">Accounting</span> 3764 <span class="np-aitail__agent-desc">P&L, COGS accuracy, and settlement reconciliation</span> 3765 </li> 3766 <li class="np-aitail__agent"> 3767 <span class="np-aitail__agent-name">Kio</span> 3768 <span class="np-aitail__agent-role">Forecasting</span> 3769 <span class="np-aitail__agent-desc">Demand scenarios, coverage gaps, and sell-through outlook</span> 3770 </li> 3771 <li class="np-aitail__agent"> 3772 <span class="np-aitail__agent-name">April</span> 3773 <span class="np-aitail__agent-role">Market intel</span> 3774 <span class="np-aitail__agent-desc">Share shifts, keyword gaps, and competitive moves</span> 3775 </li> 3776 <li class="np-aitail__agent"> 3777 <span class="np-aitail__agent-name">Sanjay</span> 3778 <span class="np-aitail__agent-role">Financial analysis</span> 3779 <span class="np-aitail__agent-desc">Cash planning, margin drivers, and portfolio roll-ups</span> 3780 </li> 3781 <li class="np-aitail__agent np-aitail__agent--neon"> 3782 <span class="np-aitail__agent-name">Neon</span> 3783 <span class="np-aitail__agent-role">Onboarding & CS</span> 3784 <span class="np-aitail__agent-desc">Setup, Chart of Accounts mapping, and day-to-day help</span> 3785 <span class="np-aitail__agent-note">Also in site chat ↓</span> 3786 </li> 3787 </ul> 3788 3789 3790 <div class="np-aitail__actions"> 3791 <a href="/ai" class="np-aitail__cta" data-np-source="ai_tail_explore_ai">Explore AI & agents →</a> 3792 </div> 3793 3794 3795 3796 <p class="np-aitail__footnote">Recommendations land on real FIFO batch costs, not industry averages.</p> 3797 3798 </div> 3799</section> 3800 3801<style> 3802 .np-aitail { 3803 background: linear-gradient(165deg, #f4f2fb 0%, #ffffff 55%, #eef0ff 100%); 3804 padding: 96px 20px; 3805 border-top: 1px solid rgba(95, 89, 240, 0.08); 3806 border-bottom: 1px solid rgba(95, 89, 240, 0.08); 3807 } 3808 .np-aitail__container { 3809 max-width: 1100px; 3810 margin: 0 auto; 3811 text-align: center; 3812 } 3813 .np-aitail__overline { 3814 display: inline-block; 3815 font-family: 'Inter', Arial, sans-serif; 3816 font-size: 12px; 3817 font-weight: 700; 3818 letter-spacing: 0.14em; 3819 text-transform: uppercase; 3820 color: #5F59F0; 3821 margin-bottom: 18px; 3822 } 3823 .np-aitail__headline { 3824 font-family: 'Inter', Arial, sans-serif; 3825 font-size: clamp(28px, 3.2vw, 40px); 3826 font-weight: 700; 3827 line-height: 1.2; 3828 letter-spacing: -0.01em; 3829 color: #0A0F1A; 3830 margin: 0 auto 18px; 3831 max-width: 820px; 3832 } 3833 .np-aitail__lede { 3834 font-family: 'Inter', Arial, sans-serif; 3835 font-size: 18px; 3836 line-height: 1.6; 3837 color: #4a5568; 3838 margin: 0 auto 48px; 3839 max-width: 720px; 3840 } 3841 3842 .np-aitail__lede--with-extra { 3843 margin-bottom: 20px; 3844 } 3845 3846 .np-aitail__extra { 3847 font-family: 'Inter', Arial, sans-serif; 3848 font-size: 16px; 3849 line-height: 1.65; 3850 color: #5a6275; 3851 margin: 0 auto 48px; 3852 max-width: 760px; 3853 } 3854 3855 .np-aitail__capabilities { 3856 list-style: none; 3857 display: grid; 3858 grid-template-columns: repeat(4, 1fr); 3859 gap: 12px; 3860 margin: 0 0 28px; 3861 padding: 0; 3862 text-align: left; 3863 } 3864 .np-aitail__capability { 3865 display: flex; 3866 flex-direction: column; 3867 gap: 6px; 3868 padding: 18px; 3869 background: #f8f7ff; 3870 border: 1px solid rgba(95, 89, 240, 0.18); 3871 border-radius: 14px; 3872 } 3873 .np-aitail__capability-title { 3874 font-family: 'Inter', Arial, sans-serif; 3875 font-size: 15px; 3876 font-weight: 700; 3877 line-height: 1.3; 3878 color: #0A0F1A; 3879 } 3880 .np-aitail__capability-text { 3881 font-family: 'Inter', Arial, sans-serif; 3882 font-size: 13px; 3883 line-height: 1.5; 3884 color: #4a5568; 3885 } 3886 3887 .np-aitail__roster { 3888 list-style: none; 3889 display: grid; 3890 grid-template-columns: repeat(4, 1fr); 3891 gap: 12px; 3892 margin: 0 0 28px; 3893 padding: 0; 3894 text-align: left; 3895 } 3896 .np-aitail__agent { 3897 display: flex; 3898 flex-direction: column; 3899 gap: 2px; 3900 padding: 14px 16px; 3901 background: #ffffff; 3902 border: 1px solid rgba(95, 89, 240, 0.16); 3903 border-radius: 12px; 3904 } 3905 .np-aitail__agent-name { 3906 font-family: 'Inter', Arial, sans-serif; 3907 font-size: 15px; 3908 font-weight: 700; 3909 color: #0A0F1A; 3910 line-height: 1.25; 3911 } 3912 .np-aitail__agent-role { 3913 font-family: 'Inter', Arial, sans-serif; 3914 font-size: 11px; 3915 font-weight: 600; 3916 letter-spacing: 0.04em; 3917 text-transform: uppercase; 3918 line-height: 1.25; 3919 color: #6f6cb1; 3920 } 3921 .np-aitail__agent-desc { 3922 font-family: 'Inter', Arial, sans-serif; 3923 font-size: 13px; 3924 line-height: 1.4; 3925 color: #4a5568; 3926 margin-top: 2px; 3927 } 3928 .np-aitail__agent--neon { 3929 border-color: rgba(95, 89, 240, 0.32); 3930 background: linear-gradient(180deg, #faf9ff 0%, #ffffff 100%); 3931 } 3932 .np-aitail__agent-note { 3933 font-family: 'Inter', Arial, sans-serif; 3934 font-size: 10px; 3935 line-height: 1.3; 3936 color: #888888; 3937 margin-top: 4px; 3938 } 3939 3940 .np-aitail__actions { 3941 margin-bottom: 20px; 3942 } 3943 .np-aitail__cta { 3944 display: inline-flex; 3945 align-items: center; 3946 font-family: 'Inter', Arial, sans-serif; 3947 font-size: 16px; 3948 font-weight: 600; 3949 color: #5F59F0; 3950 text-decoration: none; 3951 transition: color 0.15s ease; 3952 } 3953 .np-aitail__cta:hover { 3954 color: #4a44d4; 3955 } 3956 3957 .np-aitail__footnote { 3958 font-family: 'Inter', Arial, sans-serif; 3959 font-size: 14px; 3960 color: #6b7280; 3961 margin: 0; 3962 } 3963 3964 .np-aitail--overview { 3965 padding-top: 80px; 3966 padding-bottom: 80px; 3967 } 3968 3969 @media (max-width: 900px) { 3970 .np-aitail__capabilities, 3971 .np-aitail__roster { grid-template-columns: repeat(2, 1fr); } 3972 } 3973 @media (max-width: 880px) { 3974 .np-aitail { padding: 72px 20px; } 3975 } 3976 @media (max-width: 480px) { 3977 .np-aitail__capabilities, 3978 .np-aitail__roster { grid-template-columns: 1fr; } 3979 } 3980</style> 3981 3982 3983 3984<div class="np-pricing-simple"> 3985 <div class="np-pricing-container"> 3986 <div class="np-pricing-header">
3987 <span class="np-eyebrow" style="display:block; margin-bottom:12px;">Plans</span> 3988 <h2 class="np-pricing-title">Essentials vs Professional</h2> 3989 <p class="np-pricing-subtitle">Both plans run Accounting & Finance on the same ledger into QuickBooks or Xero. The difference is inventory resolution â single-location on Essentials, shipment-level on Professional.</p> 3990 </div> 3991 3992 <div class="np-pricing-cards"> 3993 <div class="np-pricing-card"> 3994 <h3 class="np-pricing-plan-name">Essentials</h3> 3995 <p class="np-pricing-description">Multi-channel journals into QuickBooks or Xero, with inventory modeled as one location and costs at the PO average.</p> 3996 </div> 3997 3998 <div class="np-pricing-card np-pricing-card-featured"> 3999 <h3 class="np-pricing-plan-name">Professional</h3> 4000 <p class="np-pricing-description">Shipment-level inventory across FBA, AWD, and 3PL, true FIFO at the batch, and multi-entity consolidated P&L.</p> 4001 </div> 4002 </div> 4003 4004 <div class="np-pricing-footer"> 4005 <p><a href="/pricing#fit" class="np-pricing-link" data-np-source="pricing_simple_find-fit">See which plan fits â</a></p> 4006 </div> 4007 </div> 4008</div> 4009 4010<style> 4011 .np-pricing-simple { 4012 padding: 60px 20px; 4013 background-color: #f9fafb; 4014 } 4015 .np-pricing-container { 4016 max-width: 800px; 4017 margin: 0 auto; 4018 } 4019 .np-pricing-header { 4020 text-align: center; 4021 margin-bottom: 28px; 4022 } 4023 .np-pricing-title { 4024 font-size: 32px; 4025 font-weight: 700; 4026 color: #1a202c; 4027 margin: 0 0 12px; 4028 font-family: 'Inter', Arial, sans-serif; 4029 } 4030 .np-pricing-subtitle { 4031 font-size: 17px; 4032 color: #6c6684; 4033 margin: 0; 4034 font-family: 'Inter', Arial, sans-serif; 4035 } 4036 .np-pricing-cards { 4037 display: grid; 4038 grid-template-columns: 1fr 1fr; 4039 gap: 20px; 4040 margin-bottom: 24px; 4041 } 4042 .np-pricing-card { 4043 background: #ffffff; 4044 border: 1px solid #e2e8f0; 4045 border-radius: 12px; 4046 padding: 24px 20px; 4047 } 4048 .np-pricing-card-featured { 4049 border: 2px solid #5f59f0; 4050 } 4051 .np-pricing-plan-name { 4052 font-size: 20px; 4053 font-weight: 600; 4054 color: #5a56b5; 4055 margin: 0 0 10px; 4056 font-family: 'Inter', Arial, sans-serif; 4057 } 4058 .np-pricing-description { 4059 font-size: 15px; 4060 color: #4a5568; 4061 margin: 0; 4062 line-height: 1.5; 4063 font-family: 'Inter', Arial, sans-serif; 4064 } 4065 .np-pricing-footer { 4066 text-align: center; 4067 } 4068 .np-pricing-footer p { 4069 margin: 0; 4070 font-family: 'Inter', Arial, sans-serif; 4071 } 4072 .np-pricing-link { 4073 color: #5f59f0 !important; 4074 font-weight: 600; 4075 font-size: 16px; 4076 text-decoration: none; 4077 } 4078 .np-pricing-link:hover { 4079 text-decoration: underline; 4080 } 4081 @media screen and (max-width: 768px) { 4082 .np-pricing-simple { padding: 40px 16px; } 4083 .np-pricing-title { font-size: 26px; } 4084 .np-pricing-cards { grid-template-columns: 1fr; } 4085 } 4086</style> 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100
4101<script type="application/ld+json"> 4102{ 4103 "@context": "https://schema.org", 4104 "@type": "FAQPage", 4105 "mainEntity": [ 4106 { 4107 "@type": "Question", 4108 "name": "How do merchants reconcile finances on TikTok Shop?", 4109 "acceptedAnswer": { 4110 "@type": "Answer", 4111 "text": "Most TikTok Shop sellers reconcile by matching each TikTok payout to a corresponding bank deposit, then breaking the payout down into sales, refunds, marketplace fees, advertising spend, shipping, and sales tax. Done by hand in spreadsheets it takes hours per settlement. NeonPanel automates the breakdown and posts a clean summary journal into QuickBooks Online so reconciliation becomes a single bank-rule match per payout." 4112 } 4113 }, 4114 { 4115 "@type": "Question", 4116 "name": "TikTok Shop financial reconciliation methods comparison", 4117 "acceptedAnswer": { 4118 "@type": "Answer", 4119 "text": "Three patterns: (1) Manual CSV + spreadsheet journals — accurate, slow. (2) Generic importers dumping raw lines — weak fee and COGS discipline. (3) NeonPanel summaries with FIFO COGS sized to deposits — scales without margin distortion." 4120 } 4121 }, 4122 { 4123 "@type": "Question", 4124 "name": "How to connect TikTok Shop to QuickBooks Online", 4125 "acceptedAnswer": { 4126 "@type": "Answer", 4127 "text": "Connect your TikTok Seller Center account and your QuickBooks Online company to NeonPanel using OAuth, choose the Chart of Accounts mapping you want for sales, fees, advertising, refunds, shipping, and sales tax, then enable the sync. NeonPanel handles authentication, settlement parsing, COGS calculation, and journal posting on an ongoing basis. Historical TikTok Shop data can be imported from a chosen start date." 4128 } 4129 }, 4130 { 4131 "@type": "Question", 4132 "name": "Export and import TikTok Shop financial data into accounting software", 4133 "acceptedAnswer": { 4134 "@type": "Answer", 4135 "text": "TikTok Seller Center supports manual export of financial reports, but the format is not directly importable into QuickBooks Online without transformation. NeonPanel removes the export/import step entirely â TikTok Shop financial data is read via the official API, normalised into accounting structures (settlement lines, fee categories, COGS, sales tax), and pushed to QuickBooks Online on an ongoing basis. The underlying detail remains exportable as CSV from NeonPanel for audit." 4136 } 4137 }, 4138 { 4139 "@type": "Question", 4140 "name": "Does NeonPanel handle TikTok Shop sales tax in QuickBooks Online?", 4141 "acceptedAnswer": { 4142 "@type": "Answer", 4143 "text": "Yes. Sales tax collected by TikTok Shop is recorded against the correct tax accounts in QuickBooks Online based on jurisdiction-specific rules you configure during setup. Marketplace-collected tax is treated separately from seller-collected tax so the liability accounts stay accurate." 4144 } 4145 }, 4146 { 4147 "@type": "Question", 4148 "name": "How are TikTok Shop COGS calculated?", 4149 "acceptedAnswer": { 4150 "@type": "Answer", 4151 "text": "NeonPanel calculates COGS on a true FIFO basis using actual purchase prices and landed costs (freight, duties, insurance) for each batch. The COGS posted to QuickBooks Online alongside each TikTok payout reflects what the inventory really cost, not an average â which is what makes margin reporting trustworthy." 4152 } 4153 }, 4154 { 4155 "@type": "Question", 4156 "name": "Can I sync historical data from TikTok Shop?", 4157 "acceptedAnswer": { 4158 "@type": "Answer", 4159 "text": "Yes. NeonPanel can import historical TikTok Shop transactions from a chosen start date so your QuickBooks books are complete from day one of the integration." 4160 } 4161 }, 4162 { 4163 "@type": "Question", 4164 "name": "Do you offer onboarding support?", 4165 "acceptedAnswer": { 4166 "@type": "Answer", 4167 "text": "Yes. Professional plans include onboarding calls. The team works alongside your accountant to configure NeonPanel, the TikTok Shop connection, and the QuickBooks Chart of Accounts mapping so the integration matches your business structure." 4168 } 4169 } 4170 ] 4171} 4172</script>
4172 4173 4174 4175 4176<section class="np-faq" style="background-color: #f9fafb;"> 4177 <div class="np-faq-container"> 4178 <h2 class="np-faq-title">TikTok Shop to QuickBooks â Frequently Asked Questions</h2> 4179 4180 <div class="np-faq-items"> 4181 4182 <div class="np-faq-item"> 4183 <button type="button" class="np-faq-question" aria-expanded="false"> 4184 <span>How do merchants reconcile finances on TikTok Shop?</span> 4185 4186<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4187 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4188</svg> 4189 4190 </button> 4191 <div class="np-faq-answer" hidden> 4192 <p>Most TikTok Shop sellers reconcile by matching each TikTok payout to a corresponding bank deposit, then breaking the payout down into sales, refunds, marketplace fees, advertising spend, shipping, and sales tax. Done by hand in spreadsheets it takes hours per settlement. NeonPanel automates the breakdown and posts a clean summary journal into QuickBooks Online so reconciliation becomes a single bank-rule match per payout.</p> 4193 </div> 4194 </div> 4195 4196 <div class="np-faq-item"> 4197 <button type="button" class="np-faq-question" aria-expanded="false"> 4198 <span>TikTok Shop financial reconciliation methods comparison</span> 4199 4200<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4201 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4202</svg> 4203 4204 </button> 4205 <div class="np-faq-answer" hidden> 4206 <p>Three patterns: (1) Manual CSV + spreadsheet journals — accurate, slow. (2) Generic importers dumping raw lines — weak fee and COGS discipline. (3) NeonPanel summaries with FIFO COGS sized to deposits — scales without margin distortion.</p> 4207 </div> 4208 </div> 4209 4210 <div class="np-faq-item"> 4211 <button type="button" class="np-faq-question" aria-expanded="false"> 4212 <span>How to connect TikTok Shop to QuickBooks Online</span> 4213 4214<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4215 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4216</svg> 4217 4218 </button> 4219 <div class="np-faq-answer" hidden> 4220 <p>Connect your TikTok Seller Center account and your QuickBooks Online company to NeonPanel using OAuth, choose the Chart of Accounts mapping you want for sales, fees, advertising, refunds, shipping, and sales tax, then enable the sync. NeonPanel handles authentication, settlement parsing, COGS calculation, and journal posting on an ongoing basis. Historical TikTok Shop data can be imported from a chosen start date.</p> 4221 </div> 4222 </div> 4223 4224 <div class="np-faq-item"> 4225 <button type="button" class="np-faq-question" aria-expanded="false"> 4226 <span>Export and import TikTok Shop financial data into accounting software</span> 4227 4228<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4229 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4230</svg> 4231 4232 </button> 4233 <div class="np-faq-answer" hidden> 4234 <p>TikTok Seller Center supports manual export of financial reports, but the format is not directly importable into QuickBooks Online without transformation. NeonPanel removes the export/import step entirely â TikTok Shop financial data is read via the official API, normalised into accounting structures (settlement lines, fee categories, COGS, sales tax), and pushed to QuickBooks Online on an ongoing basis. The underlying detail remains exportable as CSV from NeonPanel for audit.</p> 4235 </div> 4236 </div> 4237 4238 <div class="np-faq-item"> 4239 <button type="button" class="np-faq-question" aria-expanded="false">
4240 <span>Does NeonPanel handle TikTok Shop sales tax in QuickBooks Online?</span> 4241 4242<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4243 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4244</svg> 4245 4246 </button> 4247 <div class="np-faq-answer" hidden> 4248 <p>Yes. Sales tax collected by TikTok Shop is recorded against the correct tax accounts in QuickBooks Online based on jurisdiction-specific rules you configure during setup. Marketplace-collected tax is treated separately from seller-collected tax so the liability accounts stay accurate.</p> 4249 </div> 4250 </div> 4251 4252 <div class="np-faq-item"> 4253 <button type="button" class="np-faq-question" aria-expanded="false"> 4254 <span>How are TikTok Shop COGS calculated?</span> 4255 4256<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4257 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4258</svg> 4259 4260 </button> 4261 <div class="np-faq-answer" hidden> 4262 <p>NeonPanel calculates COGS on a true FIFO basis using actual purchase prices and landed costs (freight, duties, insurance) for each batch. The COGS posted to QuickBooks Online alongside each TikTok payout reflects what the inventory really cost, not an average â which is what makes margin reporting trustworthy.</p> 4263 </div> 4264 </div> 4265 4266 <div class="np-faq-item"> 4267 <button type="button" class="np-faq-question" aria-expanded="false"> 4268 <span>Can I sync historical data from TikTok Shop?</span> 4269 4270<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4271 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4272</svg> 4273 4274 </button> 4275 <div class="np-faq-answer" hidden> 4276 <p>Yes. NeonPanel can import historical TikTok Shop transactions from a chosen start date so your QuickBooks books are complete from day one of the integration.</p> 4277 </div> 4278 </div> 4279 4280 <div class="np-faq-item"> 4281 <button type="button" class="np-faq-question" aria-expanded="false"> 4282 <span>Do you offer onboarding support?</span> 4283 4284<svg class="np-faq-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" aria-hidden="true"> 4285 <path d="M5 12.5L10 7.5L15 12.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4286</svg> 4287 4288 </button> 4289 <div class="np-faq-answer" hidden> 4290 <p>Yes. Professional plans include onboarding calls. The team works alongside your accountant to configure NeonPanel, the TikTok Shop connection, and the QuickBooks Chart of Accounts mapping so the integration matches your business structure.</p> 4291 </div> 4292 </div> 4293 4294 </div> 4295 </div> 4296</section> 4297 4298 4299</main> 4300 4301 </div> 4302 4303 4304 4305 4306<footer class="np-footer"> 4307 <div class="np-footer__brand-row"> 4308 <div class="np-footer__container"> 4309 <div class="np-footer__brand"> 4310 <a href="/" class="np-footer__brand-link"> 4311 <img src="/images/neonpanel-logo.svg" alt="NeonPanel" width="160" height="38" loading="lazy"> 4312 </a> 4313 <p class="np-footer__brand-tagline">The ecommerce finance platform that gets your numbers right.</p> 4314 </div> 4315 </div> 4316 </div> 4317 <div class="np-footer__main"> 4318 <div class="np-footer__container"> 4319 4320 4321 <div class="np-footer__column np-footer__column--features"> 4322 <p class="np-footer__title">Modules</p> 4323 <div class="np-footer__feature-groups"> 4324 4325 <div class="np-footer__feature-group"> 4326 <p class="np-footer__group-title"><a href="/inventory-management">Inventory Management</a></p> 4327 4328 4329 <ul class="np-footer__links np-footer__links--nested"> 4330 <li><a href="/inventory-management-amazon">Amazon</a></li> 4331 <li><a href="/inventory-management-shopify">Shopify</a></li> 4332 <li><a href="/multi-channel-inventory-management">Multi-channel inventory</a></li> 4333 <li><a href="/landed-cost-fifo">Landed Cost Management</a></li> 4334 </ul> 4335 4336 </div> 4337 4338 4339 <div class="np-footer__feature-group"> 4340 <p class="np-footer__group-title"><a href="/accounting-ecommerce">Ecommerce Accounting</a></p> 4341 4342 4343 <ul class="np-footer__links np-footer__links--nested"> 4344 <li><a href="/accounting-amazon">Amazon</a></li> 4345 <li><a href="/accounting-shopify">Shopify</a></li> 4346 <li><a href="/automatic-cogs">Automatic COGS</a></li> 4347 <li><a href="/amazon-p-and-l-statement">Amazon P&L Statement</a></li> 4348 </ul> 4349 4350 </div> 4351 4352 4353 <div class="np-footer__feature-group"> 4354 <p class="np-footer__group-title"><a href="/inventory-forecasting">Inventory Forecasting & Planning</a></p> 4355 4356 4357 <ul class="np-footer__links np-footer__links--nested"> 4358 <li><a href="/inventory-forecasting/amazon">Amazon</a></li> 4359 <li><a href="/inventory-forecasting/shopify">Shopify</a></li> 4360 </ul> 4361 4362 </div> 4363 4364 4365 <div class="np-footer__feature-group"> 4366 4367 <p class="np-footer__group-title"><a href="/inventory-management-analytics">Inventory Analytics</a></p> 4368 4369 4370 4371 <ul class="np-footer__links np-footer__links--nested"> 4372 <li><a href="/analytics-amazon">Amazon</a></li> 4373 <li><a href="/analytics-shopify">Shopify</a></li> 4374 </ul> 4375 4376 </div> 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 <div class="np-footer__feature-group np-footer__feature-group--full"> 4387 4388 4389 <details class="np-footer__accordion"> 4390 <summary class="np-footer__accordion-summary">
4391 <span class="np-footer__accordion-summary-row"> 4392 <svg class="np-footer__accordion-chevron" width="10" height="10" viewBox="0 0 10 10" fill="none" aria-hidden="true"> 4393 <path d="M3.25 1.5L6.75 5l-3.5 3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4394 </svg> 4395 <span class="np-footer__accordion-title">Amazon Logistics</span> 4396 </span> 4397 </summary> 4398 <div class="np-footer__accordion-panel"> 4399 <a href="/amazon-logistics" class="np-footer__accordion-hub">Overview</a> 4400 <ul class="np-footer__links np-footer__links--nested np-footer__links--accordion"> 4401 <li><a href="/logistics-realtime-tracking">Real-Time Tracking</a></li> 4402 <li><a href="/logistics-automated-fba">Automated FBA</a></li> 4403 <li><a href="/logistics-supply-chain">Supply Chain</a></li> 4404 <li><a href="/logistics-multichannel-fulfillment">Multi-Channel Fulfillment</a></li> 4405 </ul> 4406 </div> 4407 </details> 4408 4409 </div> 4410 4411 4412 4413 4414 <div class="np-footer__feature-group"> 4415 <p class="np-footer__group-title np-footer__group-title--static">AI & Agents</p> 4416 4417 <ul class="np-footer__links np-footer__links--nested"> 4418 <li><a href="/ai">AI</a></li> 4419 <li><a href="/mcp-access">MCP Access</a></li> 4420 <li><a href="/claude-plugin">Claude Plugin</a></li> 4421 <li><a href="/slack">Agents in Slack</a></li> 4422 <li><a href="/viktor-plugin">Viktor</a></li> 4423 </ul> 4424 4425 </div> 4426 4427 </div> 4428 </div> 4429 4430 4431 4432 4433 <div class="np-footer__column np-footer__column--integrations"> 4434 <p class="np-footer__title">Integrations</p> 4435 4436 <div class="np-footer__integration-stack"> 4437 <div class="np-footer__integration-block"> 4438 <p class="np-footer__integration-heading"><a href="/quickbooks-integration">QuickBooks</a></p> 4439 <ul class="np-footer__links np-footer__links--integration"> 4440 <li><a href="/tiktok-shop-to-quickbooks">TikTok Shop to QuickBooks</a></li> 4441 <li><a href="/amazon-to-quickbooks">Amazon to QuickBooks</a></li> 4442 <li><a href="/shopify-to-quickbooks">Shopify to QuickBooks</a></li> 4443 </ul> 4444 </div> 4445 <div class="np-footer__integration-block np-footer__integration-block--divider"> 4446 <p class="np-footer__integration-heading"><a href="/xero-integration">Xero</a></p> 4447 <ul class="np-footer__links np-footer__links--integration"> 4448 <li><a href="/tiktok-shop-to-xero">TikTok Shop to Xero</a></li> 4449 <li><a href="/amazon-to-xero">Amazon to Xero</a></li> 4450 <li><a href="/shopify-to-xero">Shopify to Xero</a></li> 4451 </ul> 4452 </div> 4453 </div> 4454 </div> 4455 4456 4457 4458 <div class="np-footer__column"> 4459 <p class="np-footer__title">Resources</p> 4460 <ul class="np-footer__links"> 4461 <li><a href="/how-it-works" data-np-source="footer_resources_how-it-works">How It Works</a></li> 4462 <li><a href="/onboarding">Onboarding</a></li> 4463 <li><a href="/amazon-reconciliation">Amazon Reconciliation</a></li> 4464 <li><a href="/blog">Blog</a></li> 4465 <li><a href="/glossary">Glossary</a></li> 4466 <li><a href="https://neonpanel.elevio.help/en">Knowledge Base</a></li> 4467 <li><a href="/case-studies">Case Studies</a></li> 4468 <li><a href="/chrome-extension">Chrome Extension</a></li> 4469 <li><a href="https://www.youtube.com/@true_neonpanel">YouTube Channel</a></li> 4470 </ul> 4471 </div> 4472 4473 4474 <div class="np-footer__column"> 4475 <p class="np-footer__title">Company</p> 4476 <ul class="np-footer__links"> 4477 <li><a href="/pricing">Pricing</a></li> 4478 <li><a href="/solutions">Solutions</a></li> 4479 <li><a href="/essentials-vs-professional">Plan Comparison</a></li> 4480 <li><a href="/for-agencies">For Agencies</a></li> 4481 <li><a href="/contact-us">Contact Us</a></li> 4482 <li><a href="/affiliate-program">Affiliate Program</a></li> 4483 <li><a href="/editorial-policy">Editorial Policy</a></li> 4484 <li><a href="/privacy">Privacy Policy</a></li> 4485 <li><a href="/terms">Terms & Conditions</a></li> 4486 <li><a href="#" data-np-action="cookie-preferences">Cookie Preferences</a></li> 4487 <li><a href="#" data-np-action="do-not-sell">Do Not Sell or Share My Personal Information</a></li> 4488 </ul> 4489 </div> 4490 </div> 4491 </div> 4492 4493 4494 <div class="np-footer__bottom">
4495 <div class="np-footer__container"> 4496 <div class="np-footer__copyright"> 4497 <span>© 2026 NeonPanel</span> 4498 <a href="#np-header" class="np-footer__back-to-top"> 4499 Back to top 4500 <svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor"> 4501 <path d="M6 2L2 6l1.41 1.41L6 4.83l2.59 2.58L10 6l-4-4z"/> 4502 </svg> 4503 </a> 4504 </div> 4505 </div> 4506 </div> 4507</footer> 4508 4509<style> 4510/* Footer Main Section */ 4511.np-footer { 4512 background-color: #fafafa; 4513 color: #333333; 4514} 4515 4516.np-footer__brand-row { 4517 padding: 48px 0 0; 4518} 4519 4520.np-footer__brand { 4521 display: flex; 4522 flex-direction: column; 4523 gap: 10px; 4524} 4525 4526.np-footer__brand-link { 4527 display: inline-block; 4528 line-height: 0; 4529} 4530 4531.np-footer__brand-tagline { 4532 font-family: 'Inter', Arial, sans-serif; 4533 font-size: 15px; 4534 color: #666; 4535 margin: 0; 4536 max-width: 400px; 4537 line-height: 1.5; 4538} 4539 4540.np-footer__main { 4541 padding: 32px 0 40px; 4542 border-bottom: 1px solid #e5e7eb; 4543} 4544 4545.np-footer__container { 4546 max-width: 1200px; 4547 margin: 0 auto; 4548 padding: 0 40px; 4549} 4550 4551.np-footer__main .np-footer__container { 4552 display: grid; 4553 grid-template-columns: repeat(4, minmax(0, 1fr)); 4554 gap: 24px 28px; 4555 align-items: stretch; 4556} 4557 4558/* Each top-level column is a separate âcardâ so Features / Integrations / More donât blur together */ 4559.np-footer__main .np-footer__container > .np-footer__column { 4560 display: flex; 4561 flex-direction: column; 4562 gap: 16px; 4563 min-width: 0; 4564 background: #ffffff; 4565 border: 1px solid #e2e8f0; 4566 border-radius: 12px; 4567 padding: 22px 24px 26px; 4568 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06); 4569} 4570 4571/* Features: single column; optional <details> accordion for busy sections */ 4572.np-footer__column--features { 4573 min-width: 0; 4574} 4575 4576.np-footer__feature-groups { 4577 display: flex; 4578 flex-direction: column; 4579 gap: 18px; 4580 align-content: start; 4581} 4582 4583.np-footer__feature-group { 4584 margin: 0; 4585 min-width: 0; 4586} 4587 4588.np-footer__feature-group--full { 4589 padding-top: 14px; 4590 margin-top: 4px; 4591 border-top: 1px solid #cbd5e1; 4592} 4593 4594.np-footer__accordion { 4595 margin: 0; 4596 border: 0; 4597 padding: 0; 4598} 4599 4600.np-footer__accordion-summary { 4601 list-style: none; 4602 cursor: pointer; 4603 font-family: 'Inter', Arial, sans-serif; 4604 font-size: 13px; 4605 font-weight: 600; 4606 color: #000000; 4607 padding: 2px 0; 4608 user-select: none; 4609} 4610 4611.np-footer__accordion-summary::-webkit-details-marker { 4612 display: none; 4613} 4614 4615.np-footer__accordion-summary::marker { 4616 display: none; 4617} 4618 4619.np-footer__accordion-summary-row { 4620 display: inline-flex; 4621 align-items: center; 4622 gap: 8px; 4623} 4624 4625.np-footer__accordion-chevron { 4626 flex-shrink: 0; 4627 color: #5f59f0; 4628 transition: transform 0.2s ease; 4629} 4630 4631.np-footer__accordion[open] .np-footer__accordion-chevron { 4632 transform: rotate(90deg); 4633} 4634 4635.np-footer__accordion-title { 4636 color: #000000; 4637} 4638 4639.np-footer__accordion-summary:hover .np-footer__accordion-title { 4640 color: #5f59f0; 4641} 4642 4643.np-footer__accordion-panel { 4644 padding: 10px 0 0 18px; 4645 margin: 0; 4646 border-left: 2px solid #e8e9f4; 4647} 4648 4649.np-footer__accordion-hub { 4650 display: inline-block; 4651 font-family: 'Inter', Arial, sans-serif; 4652 font-size: 13px; 4653 font-weight: 600; 4654 color: #5f59f0 !important; 4655 text-decoration: none; 4656 margin-bottom: 8px; 4657} 4658 4659.np-footer__accordion-hub:hover { 4660 text-decoration: underline; 4661} 4662 4663.np-footer__links--accordion { 4664 margin-top: 4px; 4665} 4666 4667/* Integrations: vertical stack, full destination in each link */ 4668.np-footer__integration-stack { 4669 display: flex; 4670 flex-direction: column; 4671 gap: 0; 4672} 4673 4674.np-footer__integration-block { 4675 margin: 0; 4676} 4677 4678.np-footer__integration-block--divider { 4679 margin-top: 18px; 4680 padding-top: 18px; 4681 border-top: 1px solid #cbd5e1; 4682} 4683 4684.np-footer__integration-heading { 4685 font-family: 'Inter', Arial, sans-serif; 4686 font-size: 13px; 4687 font-weight: 600; 4688 color: #000000 !important; 4689 margin: 0 0 8px 0; 4690 line-height: 1.35; 4691} 4692 4693.np-footer__integration-heading a { 4694 color: inherit !important; 4695 text-decoration: none; 4696 transition: color 0.2s ease; 4697} 4698 4699.np-footer__integration-heading a:hover { 4700 color: #5f59f0 !important; 4701} 4702 4703.np-footer__links--integration { 4704 gap: 8px; 4705} 4706 4707.np-footer__links--integration a { 4708 font-size: 13px; 4709 color: #333333 !important; 4710} 4711 4712.np-footer__links--integration a:hover {
4713 color: #5f59f0 !important; 4714} 4715 4716.np-footer__group-title { 4717 font-family: 'Inter', Arial, sans-serif; 4718 font-size: 13px; 4719 font-weight: 600; 4720 color: #000000 !important; 4721 margin: 0 0 6px 0; 4722 line-height: 1.35; 4723} 4724 4725.np-footer__group-title a { 4726 color: inherit !important; 4727 text-decoration: none; 4728 transition: color 0.2s ease; 4729} 4730 4731.np-footer__group-title a:hover { 4732 color: #5f59f0 !important; 4733} 4734 4735.np-footer__group-title--static { 4736 margin-bottom: 6px; 4737} 4738 4739.np-footer__links--nested { 4740 gap: 6px; 4741} 4742 4743.np-footer__links--nested a { 4744 font-size: 13px; 4745 color: #333333 !important; 4746} 4747 4748.np-footer__links--nested a:hover { 4749 color: #5f59f0 !important; 4750} 4751 4752/* Primary column label â reads clearly as its own category vs. body links */ 4753.np-footer__title { 4754 font-family: 'Inter', Arial, sans-serif; 4755 font-size: 12px; 4756 font-weight: 700; 4757 letter-spacing: 0.11em; 4758 text-transform: uppercase; 4759 color: #3d2e7c !important; 4760 margin: 0 0 4px 0; 4761 padding-bottom: 12px; 4762 border-bottom: 2px solid #5f59f0; 4763} 4764 4765.np-footer__links { 4766 list-style: none; 4767 margin: 0; 4768 padding: 0; 4769 display: flex; 4770 flex-direction: column; 4771 gap: 12px; 4772} 4773 4774.np-footer__links a { 4775 font-family: 'Inter', Arial, sans-serif; 4776 font-size: 14px; 4777 font-weight: 400; 4778 color: #000000 !important; 4779 text-decoration: none; 4780 transition: color 0.2s ease; 4781} 4782 4783.np-footer__links a:hover { 4784 color: #5f59f0 !important; 4785} 4786 4787/* Footer Bottom Section */ 4788.np-footer__bottom { 4789 padding: 32px 0; 4790} 4791 4792.np-footer__bottom .np-footer__container { 4793 display: flex; 4794 align-items: center; 4795 justify-content: flex-end; 4796 flex-wrap: wrap; 4797 gap: 24px; 4798} 4799 4800.np-footer__copyright { 4801 display: flex; 4802 align-items: center; 4803 gap: 24px; 4804 font-family: 'Inter', Arial, sans-serif; 4805 font-size: 14px; 4806 color: #000000 !important; 4807} 4808 4809.np-footer__back-to-top { 4810 display: flex; 4811 align-items: center; 4812 gap: 6px; 4813 font-family: 'Inter', Arial, sans-serif; 4814 font-size: 14px; 4815 font-weight: 500; 4816 color: #000000 !important; 4817 text-decoration: none; 4818 transition: color 0.2s ease; 4819} 4820 4821.np-footer__back-to-top:hover { 4822 color: #5f59f0 !important; 4823} 4824 4825.np-footer__back-to-top svg { 4826 transition: transform 0.2s ease; 4827} 4828 4829.np-footer__back-to-top:hover svg { 4830 transform: translateY(-2px); 4831} 4832 4833/* Tablet Breakpoint */ 4834@media (max-width: 980px) { 4835 .np-footer__main .np-footer__container { 4836 grid-template-columns: repeat(2, minmax(0, 1fr)); 4837 gap: 24px; 4838 } 4839 4840 .np-footer__column--features { 4841 grid-column: 1 / -1; 4842 } 4843 4844 .np-footer__container { 4845 padding: 0 20px; 4846 } 4847} 4848 4849/* Narrow tablet: keep 2 cols but let Resources/Company wrap naturally */ 4850@media (max-width: 680px) { 4851 .np-footer__main .np-footer__container { 4852 grid-template-columns: 1fr 1fr; 4853 } 4854} 4855 4856/* Mobile Breakpoint */ 4857@media (max-width: 640px) { 4858 .np-footer__main { 4859 padding: 40px 0 30px; 4860 } 4861 4862 .np-footer__main .np-footer__container { 4863 grid-template-columns: 1fr; 4864 gap: 32px; 4865 } 4866 4867 .np-footer__bottom .np-footer__container { 4868 flex-direction: column; 4869 text-align: center; 4870 } 4871 4872 .np-footer__copyright { 4873 flex-direction: column; 4874 gap: 12px; 4875 } 4876} 4877</style> 4878
4879<script> 4880// Smooth scroll to top 4881document.addEventListener('DOMContentLoaded', function() { 4882 const backToTop = document.querySelector('.np-footer__back-to-top'); 4883 4884 if (backToTop) { 4885 backToTop.addEventListener('click', function(e) { 4886 e.preventDefault(); 4887 window.scrollTo({ 4888 top: 0, 4889 behavior: 'smooth' 4890 }); 4891 }); 4892 } 4893}); 4894</script>
4894 4895 4896 <!-- Optional Google Ads click conversions: set `window.NP_GADS = { signup: 'AW-â¦/LABEL', demo: 'AW-â¦/LABEL' }` in extra_head (see docs/google-ads-conversion-setup.md) --> 4897
4897<script>window.NP_GADS = window.NP_GADS || {};</script>
4897 4898
4898<script src="/assets/js/site.js" defer></script>
4898 4899 4900 4901 4902 <!-- Third-Party Scripts â consent-gated via NP.loadThirdPartyTrackers() --> 4903
4903<script> 4904 (function() { 4905 var NP = window.NP = window.NP || {}; 4906 var delay = 3000; 4907 var loaded = false; 4908 4909 function addPreconnects() { 4910 var domains = [ 4911 'https://connect.facebook.net', 4912 'https://www.googletagmanager.com', 4913 'https://www.google-analytics.com', 4914 'https://snap.licdn.com' 4915 ]; 4916 domains.forEach(function(href) { 4917 var link = document.createElement('link'); 4918 link.rel = 'preconnect'; 4919 link.href = href; 4920 document.head.appendChild(link); 4921 }); 4922 } 4923 4924 function loadThirdParty() { 4925 if (loaded) return; 4926 loaded = true; 4927 4928 addPreconnects(); 4929 4930 // Meta Pixel
vendor: 453 bytes, lines 4930-4939
4930 4931 !function(f,b,e,v,n,t,s) 4932 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 4933 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 4934 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 4935 n.queue=[];t=b.createElement(e);t.async=!0; 4936 t.src=v;s=b.getElementsByTagName(e)[0]; 4937 s.parentNode.insertBefore(t,s)}(window, document,'script', 4938 'https://connect.facebook.net/en_US/fbevents.js'); 4939 fbq('init', '
49394525350761073159
vendor: 43 bytes, lines 4939-4942
4939'); 4940 fbq('track', 'PageView'); 4941 4942
4942// HubSpot tracking (45816121.js). Chat widget is suppressed via hsConversationsSettings.loadImmediately in <head>. 4943 var hsScript = document.createElement('script'); 4944 hsScript.type = 'text/javascript'; 4945 hsScript.id = 'hs-script-loader'; 4946 hsScript.async = true; 4947 hsScript.defer = true; 4948 hsScript.src = '//js.hs-scripts.com/45816121.js'; 4949 document.head.appendChild(hsScript); 4950 4951 // Google Tag Manager 4952 window.dataLayer = window.dataLayer || [];
vendor: 413 bytes, lines 4952-4962
4952 4953 (function(w,d,s,l,i){ 4954 w[l]=w[l]||[]; 4955 w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 4956 var f=d.getElementsByTagName(s)[0], 4957 j=d.createElement(s), 4958 dl=l!='dataLayer'?'&l='+l:''; 4959 j.async=true; 4960 j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 4961 f.parentNode.insertBefore(j,f); 4962 })(window,document,'script','dataLayer','
4962GTM-57CMGLWK
vendor: 11 bytes, lines 4962-4964
4962'); 4963 4964
4964// Google Ads & Analytics 4965 var script = document.createElement('script'); 4966 script.src = 'https://www.googletagmanager.com/gtag/js?id=AW-17641276459'; 4967 script.async = true; 4968 document.head.appendChild(script); 4969 script.onload = function() { 4970
vendor: 151 bytes, lines 4970-4973
4970window.dataLayer = window.dataLayer || []; 4971 function gtag(){dataLayer.push(arguments);} 4972 gtag('js', new Date()); 4973 gtag('config', '
4973AW-17641276459
vendor: 12 bytes, lines 4973-4974
4973'); 4974
4974gtag('config', 'G-SYDXP0Q7RE'); 4975 }; 4976 4977 // LinkedIn Insight Tag (partner 9048026) 4978 _linkedin_partner_id = "9048026"; 4979 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 4980 window._linkedin_data_partner_ids.push(_linkedin_partner_id); 4981 (function(l) { 4982 if (!l) { 4983 window.lintrk = function(a, b) { window.lintrk.q.push([a, b]); }; 4984 window.lintrk.q = []; 4985 } 4986 var s = document.getElementsByTagName("script")[0]; 4987 var b = document.createElement("script"); 4988 b.type = "text/javascript"; 4989 b.async = true; 4990 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 4991 s.parentNode.insertBefore(b, s); 4992 })(window.lintrk); 4993 } 4994 4995 NP.loadThirdPartyTrackers = loadThirdParty; 4996 4997 if (NP.analyticsConsent === 'accepted') { 4998 if ('requestIdleCallback' in window) { 4999 requestIdleCallback(function() { 5000 setTimeout(loadThirdParty, delay); 5001 }); 5002 } else { 5003 setTimeout(loadThirdParty, delay); 5004 } 5005 } 5006 })(); 5007 </script>
5007 5008 5009 <!-- Neon Chat Widget --> 5010 <link rel="stylesheet" href="/css/neon.css?v=1" media="print" onload="this.media='all'"> 5011 <noscript><link rel="stylesheet" href="/css/neon.css?v=1"></noscript> 5012
5012<script src="/js/neon.js?v=2" defer></script>
5012 5013 5014 5015<div id="np-cookie-consent" class="np-cookie-banner" role="dialog" aria-labelledby="np-cookie-title" aria-hidden="true" hidden> 5016 <div class="np-cookie-banner__inner"> 5017 <p class="np-cookie-banner__text" id="np-cookie-title">We use cookies and similar technologies to measure site performance and improve your experience. You can accept or reject non-essential cookies. <a href="/privacy#cookies">Learn more</a></p> 5018 <div class="np-cookie-banner__actions"> 5019 <button type="button" id="np-cookie-reject" class="np-cookie-banner__btn np-cookie-banner__btn--reject">Reject</button> 5020 <button type="button" id="np-cookie-accept" class="np-cookie-banner__btn np-cookie-banner__btn--accept">Accept</button> 5021 </div> 5022 </div> 5023</div> 5024<link rel="stylesheet" href="/assets/css/cookie-consent.css" media="print" onload="this.media='all'"> 5025<noscript><link rel="stylesheet" href="/assets/css/cookie-consent.css"></noscript>
5026<script src="/assets/js/cookie-consent.js" defer></script>
5026 5027 5028</body> 5029</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.