/* mesh marketing — v6 INVERTED hero + feature (light hero -> blue feature), scoped
   port of mesh-hero-v6/css/site-components.css. Same structure as meshv5.css;
   only colours + the scene lerp differ. hero/feature -> .meshv5, nav -> body.meshv6home,
   scene scrub -> body.scene-on. Tokens come from colors_and_type.css. */
.meshv5{box-sizing:border-box;font-family:var(--font-sans);color:var(--fg-1)}
/* --brand resolves to #345def via --blue-500 in colors_and_type.css */
/* Everything below the hero+feature sits on an opaque surface so the fixed .scene
   backdrop (which lerps to BLUE in v6) only shows behind the hero/feature — without
   this, the blue scene bleeds through the lower sections (FAQ, the AskAI card). */
.below-fold{position:relative;background:var(--bg-0)}

/* -------- Logo Marquee strip -------- */
.lm-section{padding:52px 0 60px;border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1);overflow:hidden;background:var(--bg-1)}
.lm-eyebrow{text-align:center;font-family:var(--font-mono);font-size:15px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:400;color:#64748b;margin-bottom:40px}
.lm-outer{overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%)}
.lm-track{display:flex;align-items:center;gap:0;width:max-content;
  animation:lm-scroll 42s linear infinite}
.lm-track:hover{animation-play-state:paused}
@keyframes lm-scroll{from{transform:translateX(0)}to{transform:translateX(-33.3333%)}}
.lm-item{flex:none;display:inline-flex;align-items:center;gap:12px;padding:0 60px;
  color:var(--fg-1);opacity:.28;transition:opacity .2s ease;cursor:default;
  font-family:var(--font-sans);line-height:1;user-select:none}
.lm-item:hover{opacity:1}
.lm-img{transition:filter .2s ease}
.lm-img-gray{filter:grayscale(1)}
.lm-item:hover .lm-img-gray{filter:grayscale(0)}
.lm-icon-wrap{display:inline-flex;align-items:center;flex:none}
.lm-icon{width:28px;height:28px}
.lm-text{white-space:nowrap}
.meshv6home .tx-headings{padding: 130.5px 0 44px 0;px}
.meshv5 * { box-sizing:border-box;margin:0;padding:0 }
.meshv5 { font-family:var(--font-sans);
  color:var(--fg-1);
  -webkit-font-smoothing:antialiased; }
.meshv5 a { color:inherit;text-decoration:none }
.meshv5 .wrap { max-width:1400px;margin:0 auto;padding:0 48px }
.meshv5 .btn { display:inline-flex;align-items:center;gap:9px;font-family:var(--font-sans);font-weight:600;
  font-size:15px;border-radius:11px;padding:13px 20px;border:1px solid transparent;cursor:pointer;
  line-height:1;transition:transform .14s ease, box-shadow .2s ease, background .15s ease, color .15s ease;white-space:nowrap }
.meshv5 .btn:active { transform:translateY(1px) scale(.99) }
.meshv5 .btn-primary { background:var(--brand);color:#fff;box-shadow:var(--shadow-blue) }
.meshv5 .btn-primary:hover { background:var(--brand-hover) }
.meshv5 .btn .ic { width:17px;height:17px }
.meshv5 .btn-hero-ghost { background:var(--brand);color:#fff;border:none }
.meshv5 .btn-hero-ghost:hover { background:#284fe3 }
.meshv5 .btn-hero-solid { background:#fff;color:var(--brand);border:1px solid #d6deec;box-shadow:0 6px 18px rgba(8,16,40,.08) }
.meshv5 .btn-hero-solid:hover { background:#f3f6ff }
.meshv5 .btn-hero-solid .ic { color:var(--brand) }
body.meshv6home .btn-demo { background:#fff;color:var(--brand);box-shadow:0 6px 18px rgba(8,16,40,.16);border-radius:999px }
body.meshv6home .btn-demo:hover { background:#f3f6ff }
body.meshv6home .nav-scrolled .btn-demo { background:var(--brand);color:#fff;box-shadow:var(--shadow-blue) }
body.meshv6home .nav-scrolled .btn-demo:hover { background:var(--brand-hover) }
body.meshv6home .nav { position:sticky;top:0;z-index:50 }
body.meshv6home .nav .wrap { width:min(100% - 96px, 1400px);max-width:none;transition:width .35s cubic-bezier(0.25,0.46,0.45,0.94) }
body.meshv6home .nav-inner { display:flex;align-items:center;justify-content:space-between;height:72px;
  padding:0;border:1px solid transparent;border-radius:0;
  background:transparent;backdrop-filter:none;box-shadow:none;
  transition:height .3s cubic-bezier(0.25,0.46,0.45,0.94),
    padding .3s cubic-bezier(0.25,0.46,0.45,0.94),
    border-radius .35s cubic-bezier(0.25,0.46,0.45,0.94),
    background .12s ease-out, border-color .12s ease-out,
    box-shadow .35s cubic-bezier(0.25,0.46,0.45,0.94),
    backdrop-filter .4s ease-out }
body.meshv6home .nav-scrolled { padding-top:12px }
body.meshv6home .nav-scrolled .wrap { width:min(100% - 96px, 1100px) }
body.meshv6home .nav-scrolled .nav-inner { height:60px;padding:0 12px 0 20px;border-radius:999px;
  background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-color:var(--line-1);box-shadow:var(--shadow-md) }
body.meshv6home .nav-links { position:absolute;left:50%;transform:translateX(-50%) }
body.meshv6home .nav-brand { display:inline-flex;align-items:center }
body.meshv6home .nav-logo { height:32px;display:block }
body.meshv6home .nav-logo-white { display:none }
body.meshv6home .nav-scrolled .nav-logo-white { display:none }
body.meshv6home .nav-scrolled .nav-logo-blue { display:block }
body.meshv6home .nav-links { display:flex;align-items:center;gap:30px }
body.meshv6home .nav-link { font-size:15px;font-weight:500;color:var(--fg-2);display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:color .25s ease }
body.meshv6home .nav-link:hover { color:var(--fg-1) }
body.meshv6home .nav-link .chev { width:14px;height:14px;opacity:.7 }
body.meshv6home .nav-scrolled .nav-link { color:var(--fg-2) }
body.meshv6home .nav-scrolled .nav-link:hover { color:var(--fg-1) }
body.meshv6home .nav-actions { display:flex;align-items:center;gap:14px }
body.meshv6home .nav-cta { font-size:15px;font-weight:500;color:var(--fg-2);cursor:pointer;transition:color .25s ease }
body.meshv6home .nav-cta:hover { color:var(--fg-1) }
body.meshv6home .nav-scrolled .nav-cta { color:var(--fg-2) }
body.meshv6home .nav-scrolled .nav-cta:hover { color:var(--fg-1) }
@media(max-width:880px){
  body.meshv6home .nav-links { display:none }
  /* The unscrolled nav wrap reserves a fixed 96px (48px/side) of inset via
     width:min(100% - 96px, ...) — on a phone that shoves the logo and the
     hamburger noticeably in from the screen edges. Not touching the
     scrolled "floating pill" state, whose inset is intentional. */
  body.meshv6home .nav:not(.nav-scrolled) .wrap{width:100%}
  body.scene-on.meshv6home .nav:not(.nav-scrolled) .wrap{width:100%}
}
.meshv5 .hero { position:relative;overflow:hidden }
.meshv5 .hero-blue { margin-top:-72px;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:96px 0 96px;background:#f9fafb }
.meshv5 .hero-bg { position:absolute;inset:0;pointer-events:none }
.meshv5 .hero-blue .wrap { width:min(100% - 96px, 1400px);max-width:none;margin:0 auto;padding:0 }
.meshv5 .hero-grid { position:relative;z-index:1;display:grid;grid-template-columns:minmax(360px,.5fr) 1.5fr;gap:44px;align-items:stretch }
.meshv5 .hero-left { display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;min-height:0;gap:clamp(24px,3.5vh,48px) }
.meshv5 .hero-foot { display:flex;flex-direction:column;align-items:flex-start;gap:0;width:auto;margin-top:auto;flex-wrap:nowrap }
.meshv5 .hero h1 { font-family:var(--font-display);font-weight:700;font-size:clamp(46px,5.4vw,78px);line-height:1.06;letter-spacing:-.02em;color:var(--ink-900);position:relative;z-index:1 }
.meshv5 .hero h1 .h1-line { display:block;white-space:nowrap }
.meshv5 .hero h1 .hl { color:var(--brand) }
.meshv5 .blank { position:relative;display:inline-block;vertical-align:baseline;white-space:nowrap;border-bottom:.07em solid rgba(53,93,239,.35);text-align:left;transition:width .22s cubic-bezier(.33,1,.68,1) }
.meshv5 .blank-measure { visibility:hidden;white-space:nowrap;padding:0 .04em }
.meshv5 .blank-reveal { position:absolute;left:0;top:0;white-space:pre;color:var(--brand);display:inline-flex;opacity:1;transform:none;transition:opacity .28s ease, transform .28s cubic-bezier(.2,.7,.2,1) }
.meshv5 .blank-reveal.is-out { opacity:0;transform:translateY(-.16em) }
.meshv5 .rl { display:inline-block;opacity:0;transform:translateY(.22em);filter:blur(5px);animation:rlIn .55s cubic-bezier(.2,.7,.2,1) forwards }
@keyframes rlIn{to{opacity:1;transform:none;filter:blur(0)}}
.meshv5 .hero .sub { font-size:24px;line-height:1.5;color:#475569;margin:0;max-width:420px }
.meshv5 .hero-backed { display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-top:26px }
.meshv5 .backed-label { font-family:var(--font-mono);font-size:16px;letter-spacing:.1em;text-transform:uppercase;color:#64748b;white-space:nowrap;line-height:1 }
.meshv5 .backed-logo { height:72px;width:auto }
.meshv5 .yc-lockup { display:inline-flex;align-items:center;gap:8px;color:var(--ink-900);font-weight:600;font-size:17px;line-height:1 }
.meshv5 .yc-mark { width:22px;height:22px;background:#FB651E;color:#fff;border-radius:4px;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px }
.meshv5 .hero-capture { display:flex;gap:12px;justify-content:flex-start;align-items:center;flex-wrap:wrap;margin-top:44px;max-width:480px }
.meshv5 .btn-capture { flex:1 1 0;min-width:0;border-radius:999px;padding:18px 34px;font-size:16px;justify-content:center;box-sizing:border-box }
.meshv5 .hbg-grid, .meshv5 .hbg-glow { position:absolute;inset:0;z-index:0;pointer-events:none }
.meshv5 .hbg-grid { background-image:linear-gradient(rgba(52,93,239,.07) .7px,transparent .7px),linear-gradient(90deg,rgba(52,93,239,.07) .7px,transparent .7px);
  background-size:40px 40px;
  -webkit-mask-image:radial-gradient(135% 125% at 62% -8%,#000 36%,transparent 82%);
          mask-image:radial-gradient(135% 125% at 62% -8%,#000 36%,transparent 82%) }
.meshv5 .hbg-glow { background-image:linear-gradient(rgba(52,93,239,.20) .9px,transparent .9px),linear-gradient(90deg,rgba(52,93,239,.20) .9px,transparent .9px);
  background-size:40px 40px;opacity:0;transition:opacity .5s ease;
  -webkit-mask-image:radial-gradient(circle 210px at var(--mx,50%) var(--my,50%),#000 0%,rgba(0,0,0,.45) 42%,transparent 70%);
          mask-image:radial-gradient(circle 210px at var(--mx,50%) var(--my,50%),#000 0%,rgba(0,0,0,.45) 42%,transparent 70%) }
.meshv5 .hero.glow-on .hbg-glow { opacity:1 }
@media(prefers-reduced-motion:reduce){
  .meshv5 .hbg-glow { display:none }
}
@media(max-width:1180px){
  .meshv5 .hero .sub { font-size:22px }
}
@media(max-width:480px){
  .meshv5 .hero-blue .wrap { width:min(100% - 32px, 1400px) }
}
@media(max-width:980px){
  .meshv5 .hero-blue { padding:120px 0 72px }
  .meshv5 .hero-grid { grid-template-columns:1fr;gap:44px;margin-right:0 }
  .meshv5 .hero-left { min-height:0;justify-content:flex-start;gap:32px }
  .meshv5 .hero-right { max-width:100%;width:100%;display:flex;flex-direction:row;justify-content:center }
  .meshv5 .hero-right .wb { margin:0;flex:none }
}
@media(max-width:920px){
  .meshv5 .hero-capture { max-width:none }
}
@media(prefers-reduced-motion:reduce){
  .meshv5 .rl { animation:none;opacity:1;transform:none;filter:none }
  .meshv5 .blank-reveal { transition:none }
}
.meshv5 .hero-right { min-width:0;position:relative;overflow:hidden;display:flex;flex-direction:column }
.meshv5 .wb { position:relative;width:max-content;max-width:none;margin-left:auto;transform:translateY(38px);
  font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#211f1c }
.meshv5 .wb-sheet { background:#fff;border-radius:0;overflow:hidden;box-shadow:0 24px 50px -24px rgba(8,16,40,.22);font-size:12px;
  --wbg:40px 160px 160px 120px 160px 160px }
.meshv5 .sh-lrow { display:grid;grid-template-columns:var(--wbg) }
.meshv5 .sh-lrow span { height:16px;background:#f9fafb;color:#9ca3af;font-weight:400;font-size:12px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb }
.meshv5 .sh-nrow { display:grid;grid-template-columns:var(--wbg) }
.meshv5 .sh-nrow span { height:24px;background:#f9fafb;color:#374151;font-weight:500;font-size:12px;display:flex;align-items:center;gap:4px;padding:4px 8px;white-space:nowrap;overflow:hidden;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb }
.meshv5 .sh-nrow .c { justify-content:center }
.meshv5 .sh-rn { min-width:0 }
.meshv5 .ct { display:inline-flex;flex:none;line-height:0;width:auto;height:auto;padding:0;background:none;border-radius:0 }
.meshv5 .ct.src { color:#9ca3af }
.meshv5 .ct.edit { color:#16a34a }
.meshv5 .ct.mesh { color:#345def }
.meshv5 .wb-rows { height:460px;overflow:hidden;position:relative;background:#fff }
.meshv5 .wb-track { display:flex;flex-direction:column;will-change:transform }
.meshv5 .wb-row { display:block;flex:none }
.meshv5 .wb-cells { display:grid;grid-template-columns:var(--wbg);height:40px;overflow:hidden;
  transition:height .5s cubic-bezier(.2,.7,.2,1),opacity .35s ease }
.meshv5 .wb-c { display:flex;align-items:center;padding:0 9px;font-size:12px;color:#211f1c;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb }
.meshv5 .wb-rn { background:#f9fafb;color:#c4c9d4;font-size:12px;justify-content:center;padding:0 }
.meshv5 .wb-row:hover .wb-c { background:#f7f8fc }
.meshv5 .wb-row:hover .wb-rn { background:#eceef5 }
.meshv5 .po-cell { display:flex;align-items:center;gap:5px;white-space:nowrap }
.meshv5 .po-dot { width:6px;height:6px;border-radius:50%;background:#345DEF;flex:none }
.meshv5 .wb-health { justify-content:center;padding:0 4px }
.meshv5 .health-ring { display:inline-flex;align-items:center;gap:4px }
.meshv5 .health-ring svg { transform:rotate(-90deg);flex:none }
.meshv5 .health-ring-text { font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:#374151;line-height:1 }
.meshv5 .health-ring.green  .health-ring-track { stroke:#dcfce7 }
.meshv5 .health-ring.green  .health-ring-fill { stroke:#16a34a }
.meshv5 .health-ring.yellow .health-ring-track { stroke:#fef3c7 }
.meshv5 .health-ring.yellow .health-ring-fill { stroke:#d97706 }
.meshv5 .health-ring.orange .health-ring-track { stroke:#ffedd5 }
.meshv5 .health-ring.orange .health-ring-fill { stroke:#ea580c }
.meshv5 .health-ring.red    .health-ring-track { stroke:#fee2e2 }
.meshv5 .health-ring.red    .health-ring-fill { stroke:#dc2626 }
.meshv5 .health-ring-fill { transition:stroke-dasharray .7s ease,stroke .4s ease }
.meshv5 .health-ring.loading .health-ring-fill { stroke:#345def;stroke-dasharray:11 44;transition:none;transform-origin:9px 9px;animation:hrSpin .8s linear infinite }
.meshv5 .health-ring.loading .health-ring-text { color:#345def;font-weight:700 }
@keyframes hrSpin{to{transform:rotate(360deg)}}
.meshv5 .wb .pill { display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:10px;font-size:12px;font-weight:500 }
.meshv5 .wb .pill-p { background:#eff6ff;color:#345def }
.meshv5 .wb-num { justify-content:flex-start;font-variant-numeric:tabular-nums;color:#6b7280 }
.meshv5 .wb-c .tw { display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.meshv5 .wb-num .tw { width:100%;text-align:left }
.meshv5 .wb-vendor, .meshv5 .wb-date, .meshv5 .wb-acct, .meshv5 .wb-dept { color:#6b7280 }
.meshv5 .wb-acct, .meshv5 .wb-dept { justify-content:center }
.meshv5 .wb-status { padding:0 }
.meshv5 .wb-status.ls-needs_review { background:#eef2ff }
.meshv5 .wb-status.ls-pending_preparer { background:#fffbeb }
.meshv5 .wb-status.ls-reviewed_comments { background:#fdf2f8 }
.meshv5 .wb-status.ls-approved { background:#f0fdf4 }
.meshv5 .wb-row:hover .wb-status.ls-needs_review { background:#e2e9ff }
.meshv5 .wb-row:hover .wb-status.ls-pending_preparer { background:#fef4d8 }
.meshv5 .wb-row:hover .wb-status.ls-reviewed_comments { background:#fce7f3 }
.meshv5 .wb-row:hover .wb-status.ls-approved { background:#e7fbec }
.meshv5 .status-ctrl-sel { width:calc(100% - 18px);margin:0 9px;padding:3px 6px;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;background:#fff;color:#374151;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;transition:color .3s ease,border-color .3s ease,background .3s ease }
.meshv5 .status-ctrl-sel .sc-chev { margin-left:auto;flex:none;opacity:.6 }
.meshv5 .status-ctrl-sel.s-pending-prep { border-color:#d97706;color:#d97706;background:#fffbeb }
.meshv5 .status-ctrl-sel.s-needs-review { border-color:#345def;color:#345def;background:#f0f4ff }
.meshv5 .status-ctrl-sel.s-reviewed-comments { border-color:#db2777;color:#db2777;background:#fdf2f8 }
.meshv5 .status-ctrl-sel.s-approved { border-color:#16a34a;color:#16a34a;background:#f0fdf4 }
.meshv5 .status-ctrl-sel.s-estimating { border-color:#345def;color:#345def;background:#f0f4ff;animation:wbPulse 1.1s ease-in-out infinite }
@keyframes wbPulse{0%,100%{opacity:1}50%{opacity:.55}}
.meshv5 .wb-amount { flex-direction:column;align-items:flex-end;justify-content:center;gap:1px;background:#fafbff }
.meshv5 .wb-row:hover .wb-amount { background:#f3f5ff }
.meshv5 .amt-main { display:flex;align-items:baseline;justify-content:flex-end;gap:5px }
.meshv5 .old-v { text-decoration:line-through;color:#b0b7c3;font-size:12px;white-space:nowrap }
.meshv5 .amt-num { font-variant-numeric:tabular-nums;font-weight:600;color:#211f1c;white-space:nowrap;transition:font-size .25s ease,color .25s ease }
.meshv5 .amt-num.pend { color:#c4c9d4;font-weight:400 }
.meshv5 .amt-num.roll { color:#345def;font-weight:700 }
.meshv5 .amt-num.locked { color:#16a34a;font-weight:700 }
.meshv5 .amt-form { max-height:0;opacity:0;overflow:hidden;font-family:var(--font-mono);font-size:12px;color:#9ca3af;white-space:nowrap;transition:max-height .3s ease,opacity .25s ease }
.meshv5 .amt-form .op { color:#c4c9d4 }
.meshv5 .wb-row.calc .amt-num { font-size:13px }
.meshv5 .wb-row.calc .amt-form { max-height:16px;opacity:1 }
.meshv5 .wb-expl { flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;background:#fafbff;padding:4px 9px }
.meshv5 .wb-row:hover .wb-expl { background:#f3f5ff }
.meshv5 .expl-line { font-size:12px;color:#4b5563;line-height:1.34;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }
.meshv5 .expl-line .ex-rn { font-family:var(--font-mono);color:#9ca3af;margin-right:4px }
.meshv5 .expl-mesh { color:#345def;font-weight:700;margin-right:3px }
.meshv5 .expl-line.scan { color:#345def;font-family:var(--font-mono);font-size:12px;-webkit-line-clamp:2 }
.meshv5 .expl-line.matched { color:#16a34a;font-weight:600 }
.meshv5 .cell-pull { display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;color:#9ca3af;
  background:#f3f5fb;border:1px solid #e5e7eb;border-radius:5px;padding:1px 6px;max-width:100%;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis;animation:cellPulse 1s ease-in-out infinite }
.meshv5 .cell-pull .cp-dot { width:7px;height:7px;border-radius:50%;border:1.5px solid #c3d7f9;border-top-color:#345def;flex:none;animation:wbSpin .7s linear infinite }
.meshv5 .cell-pull.src-net { color:#2c4fcb }
.meshv5 .cell-pull.src-coupa { color:#2563a8 }
.meshv5 .cell-pull.src-mesh { color:#345def }
@keyframes cellPulse{0%,100%{opacity:1}50%{opacity:.62}}
@keyframes wbSpin{to{transform:rotate(360deg)}}
.meshv5 .cell-in { animation:cellIn .32s cubic-bezier(.2,.7,.2,1) }
@keyframes cellIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.meshv5 .wb-row.born .wb-cells { height:0;opacity:0 }
.meshv5 .wb-row.leave .wb-cells { height:0;opacity:0 }
@media(max-width:1279px){
  .meshv5 .wb-sheet { --wbg:40px 140px 160px 120px 140px 160px }
}
@media(max-width:1023px){
  .meshv5 .wb-sheet { --wbg:40px 120px 140px 120px 120px 140px }
}
@media(prefers-reduced-motion:reduce){
  .meshv5 .cell-pull { animation:none }
  .meshv5 .cell-pull .cp-dot { animation:none }
  .meshv5 .status-ctrl-sel.s-estimating { animation:none }
}
.meshv5 .panel-bar { display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line-1);background:var(--bg-1) }
.meshv5 .panel-title { font-family:var(--font-mono);font-size:12px;color:var(--fg-3) }
.meshv5 .panel-body { padding:18px }
.meshv5 .step3-num { flex:none;width:38px;height:38px;border-radius:50%;background:var(--bg-2);color:var(--fg-3);
  font-family:var(--font-display);font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;
  transition:background .4s ease,color .4s ease,box-shadow .4s ease,transform .4s ease }
.meshv5 .step3-text { font-size:21px;line-height:1.3;color:var(--fg-2) }
.meshv5 .step3-text strong { color:var(--ink-900);font-weight:700 }
@keyframes tgDotFill{to{transform:none}}
.meshv5 .sp-body { display:flex;flex-direction:column;gap:10px }
.meshv5 .sp-num { font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;color:var(--fg-1) }
.meshv5 .sp-int-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px }
.meshv5 .sp-int { display:flex;align-items:center;gap:11px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:12px;padding:12px 14px;min-width:0 }
.meshv5 .sp-int-logo { flex:none;width:34px;height:34px;border-radius:9px;background:#fff;border:1px solid var(--line-1);box-shadow:var(--shadow-xs);display:flex;align-items:center;justify-content:center }
.meshv5 .sp-int-logo img { width:20px;height:20px;object-fit:contain }
.meshv5 .sp-int-tx { min-width:0;display:flex;flex-direction:column }
.meshv5 .sp-int-name { display:block;font-size:13.5px;font-weight:600;color:var(--fg-1) }
.meshv5 .sp-int-st { display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;color:var(--success);margin-top:3px;white-space:nowrap }
.meshv5 .sp-int-st i { flex:none;width:6px;height:6px;border-radius:50%;background:var(--success) }
.meshv5 .sp-int-st.wait { color:var(--fg-3) }
.meshv5 .sp-int-st.wait i { background:var(--fg-4);animation:spPulse 1s ease-in-out infinite }
@keyframes spPulse{0%,100%{opacity:1}50%{opacity:.3}}
.meshv5 .sp-foot { display:flex;align-items:center;gap:9px;margin-top:8px;padding-top:13px;border-top:1px solid var(--line-1);font-size:13px;font-weight:600;color:var(--fg-2) }
.meshv5 .sp-check { flex:none;width:20px;height:20px;border-radius:50%;background:var(--success-bg);color:var(--success);display:flex;align-items:center;justify-content:center }
.meshv5 .sp-check .ic { width:13px;height:13px }
.meshv5 .sp-msg { display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line-1);border-radius:10px }
.meshv5 .sp-msg-ic { flex:none;width:30px;height:30px;border-radius:8px;border:1px solid var(--line-1);display:flex;align-items:center;justify-content:center;overflow:hidden }
.meshv5 .sp-msg-ic img { width:18px;height:18px;object-fit:contain }
.meshv5 .sp-msg-tx { flex:1;min-width:0 }
.meshv5 .sp-msg-who { font-size:13px;font-weight:700;color:var(--fg-1) }
.meshv5 .sp-msg-body { font-size:12.5px;color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .sp-stat { flex:none;font-size:11px;font-weight:600;color:var(--fg-3);background:var(--bg-2);border-radius:999px;padding:4px 10px }
.meshv5 .sp-stat.ok { color:var(--success);background:var(--success-bg) }
.meshv5 .sp-msg-time { flex:none;font-family:var(--font-mono);font-size:10.5px;color:var(--fg-4) }
.meshv5 .sp-swap { display:inline-grid;justify-items:start }
.meshv5 .sp-swap>* { grid-area:1/1 }
.meshv5 .sp-swap .a { opacity:0 }
@keyframes swapOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-3px)}}
@keyframes swapIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.meshv5 .sp-wb { display:flex;flex-direction:column }
.meshv5 .sp-wb-cols { display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-4);padding:0 2px 7px;border-bottom:1px solid var(--line-1) }
.meshv5 .sp-wb-pill { display:inline-block;font-size:9.5px;font-weight:600;color:var(--brand);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:999px;padding:2px 7px;margin-left:5px;vertical-align:1px;white-space:nowrap }
.meshv5 .sp-wb-row { display:grid;grid-template-columns:1fr auto;gap:3px 14px;padding:9px 2px;border-bottom:1px solid var(--line-1) }
.meshv5 .sp-wb-v { font-size:13px;font-weight:600;color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .sp-wb-x { display:flex;gap:6px;min-width:0;font-size:11px;color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .sp-wb-x .wb-mesh { font-size:11px }
.meshv5 .wb-mesh { color:var(--brand);font-weight:700 }
.meshv5 .sp-wb-amt { grid-row:1 / span 2;align-self:center;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;color:var(--fg-1) }
.meshv5 .sp-total { display:flex;justify-content:space-between;align-items:center;padding-top:12px;margin-top:4px;border-top:2px solid var(--ink-900);font-weight:700;font-size:14px;color:var(--ink-900) }
.meshv5 .sp-total .sp-num { color:var(--brand);font-weight:700;font-size:16px }
@keyframes spIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes spPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .meshv5 .sp-int-st.wait i { animation:none }
}
.meshv5 .dm[hidden] { display:none }
.meshv5 .dm-card { width:440px;max-width:100%;background:#fff;border-radius:22px;padding:32px;box-shadow:var(--shadow-lg) }
.meshv5 .dm-top { display:flex;justify-content:space-between;align-items:flex-start }
.meshv5 .dm-top img { height:34px }
.meshv5 .dm-x { cursor:pointer;display:inline-flex;width:22px;height:22px;color:var(--fg-3);background:none;border:none;padding:0 }
.meshv5 .dm-x .ic { width:100%;height:100% }
.meshv5 .dm-form { display:flex;flex-direction:column;gap:12px;margin-top:22px }
.meshv5 .dm-form input { width:100%;font-family:var(--font-sans);font-size:15px;padding:13px 14px;border:1px solid var(--line-2);border-radius:11px;color:var(--fg-1);outline:none }
.meshv5 .dm-form .btn { justify-content:center;margin-top:4px }
.meshv5 .dm-sent { text-align:center;padding:24px 0 8px }
.meshv5 .dm-sent .dm-check { display:inline-flex;width:48px;height:48px;color:var(--success) }
.meshv5 .dm-sent h3 { font-size:24px;margin-top:14px }
.meshv5 .dm-sent p { font-size:14.5px;margin-top:8px }
.meshv5 .ic, .meshv5 .chev { display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:0 }
.meshv5 .ic svg, .meshv5 .chev svg { width:100%;height:100%;display:block }
.meshv5 .tg5 { position:relative;background:#345def;color:#fff }
.meshv5 .tg5::after { display:none }
.meshv5 .tg5::before { display:none }
.meshv5 .tg5-sticky { position:relative;z-index:1 }
.meshv5 .tg5-sticky { padding:84px 0 96px }
.meshv5 .tg5-sticky { background:none }
.meshv5 .tg5 .wrap { width:min(100% - 96px, 1400px);max-width:none;padding:0 }
.meshv5 .tg5-head { max-width:none }
.meshv5 .tg5-eyebrow { font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand) }
.meshv5 .tg5-h2 { font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3vw,44px);line-height:1.06;letter-spacing:-.01em;color:#fff;margin-top:14px;white-space:nowrap }
@media(max-width:760px){
  .meshv5 .tg5-h2 { white-space:normal }
}
.meshv5 .tg5-h2 .hl-1 { color:#cdddff }
.meshv5 .tg5-h2 .hl-2 { color:#aec8ff }
.meshv5 .tg5-tabs { display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-bottom:1px solid rgba(255,255,255,.22) }
.meshv5 .tg5-tabs.t4 { grid-template-columns:repeat(4,1fr) }
@media(max-width:880px){
  .meshv5 .tg5-tabs.t4 { grid-template-columns:1fr 1fr }
}
.meshv5 .tg5-tab { display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;background:none;border:0;cursor:pointer;
  padding:14px 8px 16px;margin-bottom:-1px;border-bottom:2px solid transparent;font-family:inherit;transition:border-color .3s ease }
.meshv5 .tg5-tab-t { font-size:21px;font-weight:700;color:rgba(255,255,255,.6);transition:color .3s ease }
.meshv5 .tg5-tab-s { font-size:13.5px;color:rgba(255,255,255,.45);transition:color .3s ease }
.meshv5 .tg5-tab:hover .tg5-tab-t { color:#fff }
.meshv5 .tg5-tab.active { border-bottom-color:#fff }
.meshv5 .tg5-tab.active .tg5-tab-t { color:#fff }
.meshv5 .tg5-tab.active .tg5-tab-s { color:rgba(255,255,255,.8) }
.meshv5 .tg5-stage { margin-top:28px;display:flex;flex-direction:column;gap:24px }
.meshv5 .tg5-panel { width:100% }
.meshv5 .dp-panel { background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 18px 50px rgba(8,16,40,.18);overflow:hidden;max-width:none;width:100%;
  font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#211f1c }
.meshv5 .dp-bar { display:flex;align-items:center;gap:9px;padding:12px 18px;border-bottom:1px solid #e5e7eb;background:#f9fafb }
.meshv5 .dp-ic { width:15px;height:15px;color:#6b7280 }
.meshv5 .dp-ic.mesh { color:#345def }
.meshv5 .dp-title { font-size:13px;font-weight:600;color:#211f1c;flex:1 }
.meshv5 .dp-badge { display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:3px 10px }
.meshv5 .dp-badge.ok { color:#16a34a;background:#f0fdf4;border-color:#bbf7d0 }
.meshv5 .dp-badge-dot { width:6px;height:6px;border-radius:50%;background:#16a34a }
.meshv5 .dp-total { font-size:12px;color:#9ca3af }
.meshv5 .dp-total b { color:#211f1c;font-variant-numeric:tabular-nums;margin-left:4px }
.meshv5 .dp-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px }
.meshv5 .dp-int { display:flex;align-items:center;gap:11px;border:1px solid #e5e7eb;border-radius:11px;padding:12px 13px;min-width:0 }
.meshv5 .dp-int-logo { flex:none;width:34px;height:34px;border-radius:9px;background:#fff;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center }
.meshv5 .dp-int-logo img { width:20px;height:20px;object-fit:contain }
.meshv5 .dp-int-tx { flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3 }
.meshv5 .dp-int-tx b { font-size:13px;font-weight:600;color:#211f1c }
.meshv5 .dp-int-tx i { font-size:12px;font-style:normal;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .dp-conn { flex:none;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#16a34a }
.meshv5 .dp-conn .ic { width:11px;height:11px;color:#16a34a }
.meshv5 .dp-foot { display:flex;align-items:center;gap:9px;padding:12px 18px;border-top:1px solid #f3f4f6;font-size:13px;font-weight:600;color:#374151 }
.meshv5 .dp-foot-check { flex:none;width:20px;height:20px;border-radius:50%;background:#f0fdf4;color:#16a34a;display:flex;align-items:center;justify-content:center }
.meshv5 .dp-foot-check .ic { width:12px;height:12px }
.meshv5 .dp-flow-body { position:relative;padding:18px 18px 22px;display:flex;flex-direction:column;gap:14px }
.meshv5 .dp-flow-line { position:absolute;left:34px;top:30px;bottom:34px;width:2px;background:repeating-linear-gradient(#d1d5db 0 4px,transparent 4px 8px) }
.meshv5 .dp-node { position:relative;margin-left:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:3px;transition:border-color .3s ease,box-shadow .3s ease }
.meshv5 .dp-node::before { content:"";position:absolute;left:-18px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#d1d5db;border:2px solid #fff;transition:background .3s ease }
.meshv5 .dp-flow-body { padding-left:42px }
.meshv5 .dp-node-head { display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#211f1c }
.meshv5 .dp-node-tag { font-size:12px;font-weight:700;color:#345def;background:#eff6ff;border-radius:4px;padding:1px 6px;text-transform:uppercase;letter-spacing:.03em }
.meshv5 .dp-node-body { font-size:12px;color:#6b7280 }
.meshv5 .dp-node-body b { color:#374151;font-weight:600 }
.meshv5 .dp-node.on { border-color:#c3d7f9;box-shadow:0 4px 14px rgba(52,93,239,.12) }
.meshv5 .dp-node.on::before { background:#345def }
.meshv5 .dp-est { padding:6px 0 8px }
.meshv5 .dp-est-cols, .meshv5 .dp-est-row { display:grid;grid-template-columns:1.4fr .9fr .9fr 1.7fr;gap:12px;align-items:center;padding:9px 20px }
.meshv5 .dp-est-cols { font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;padding-bottom:8px;border-bottom:1px solid #e5e7eb }
.meshv5 .dp-est-cols .r { text-align:right }
.meshv5 .dp-est-row { border-bottom:1px solid #f3f4f6 }
.meshv5 .dp-est-row:last-child { border-bottom:none }
.meshv5 .dp-est-v { font-size:13px;font-weight:600;color:#211f1c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .dp-est-a { text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;color:#211f1c }
.meshv5 .dp-est-x { font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .dp-est-x .wb-mesh { color:#345def;font-weight:700 }
.meshv5 .tg5.tg5-js { height:300vh }
.meshv5 .tg5-js .tg5-sticky { position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:0;
  background:
    linear-gradient(180deg,#345def 0%,#345def 28%,rgba(52,93,239,0) 50%),
    radial-gradient(ellipse 52% 60% at 50% 60%,rgba(52,93,239,.78) 0%,rgba(52,93,239,.28) 42%,rgba(52,93,239,0) 65%) }
.meshv5 .tg5-js .tg5-stage { position:relative;height:528px;margin-top:30px;display:block }
.meshv5 .tg5-js .tg5-panel { position:absolute;left:0;right:0;top:0;opacity:0;transform:translateX(48px) scale(.99);transition:opacity .3s ease,transform .42s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:1 }
.meshv5 .tg5-js .tg5-panel.show { opacity:1;transform:none;pointer-events:auto;z-index:2 }
.meshv5 .tg5-js .tg5-panel.out { opacity:0;transform:translateX(-56px) scale(.99);z-index:1 }
.meshv5 .tg5-js .tg5-stage.back .tg5-panel { transform:translateX(-56px) scale(.99) }
.meshv5 .tg5-js .tg5-stage.back .tg5-panel.show { transform:none }
.meshv5 .tg5-js .tg5-stage.back .tg5-panel.out { transform:translateX(56px) scale(.99) }
.meshv5 .tg5-js .dp-panel { margin:0 auto }
.meshv5 .tg5-js .tg5-panel .dp-int, .meshv5 .tg5-js .tg5-panel .dp-node, .meshv5 .tg5-js .tg5-panel .dp-est-row, .meshv5 .tg5-js .tg5-panel .dp-foot { opacity:0 }
.meshv5 .tg5-js .tg5-panel.show.in .dp-int { animation:dpIn .5s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i,0)*.08s) }
.meshv5 .tg5-js .tg5-panel.show.in .dp-node { animation:dpIn .5s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i,0)*.14s) }
.meshv5 .tg5-js .tg5-panel.show.in .dp-est-row { animation:dpIn .45s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i,0)*.1s) }
.meshv5 .tg5-js .tg5-panel.show.in .dp-foot { animation:dpIn .5s ease forwards;animation-delay:.5s }
@keyframes dpIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:880px){
  .meshv5 .tg5-tab-t { font-size:17px }
  .meshv5 .tg5-tab-s { font-size:12px }
  .meshv5 .dp-grid { grid-template-columns:1fr 1fr }
  .meshv5 .tg5-js .tg5-stage { height:600px }
}
@media(prefers-reduced-motion:reduce){
  .meshv5 .tg5-js .tg5-panel .dp-int, .meshv5 .tg5-js .tg5-panel .dp-node, .meshv5 .tg5-js .tg5-panel .dp-est-row, .meshv5 .tg5-js .tg5-panel .dp-foot { opacity:1;animation:none }
}
.meshv5 .dp-panel.ia { position:relative;overflow:hidden;height:528px;max-width:none;width:100%;margin:0;padding:0;color:#211f1c;font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif }
.meshv5 .ia-stage { position:absolute;inset:0 }
.meshv5 .ia-view { position:absolute;inset:0;display:flex;flex-direction:column;background:#fff;transition:opacity .35s ease,transform .35s ease }
.meshv5 .ia-list { opacity:1;transform:none;z-index:1 }
.meshv5 .ia-detail { opacity:0;transform:translateX(14px);pointer-events:none;z-index:2 }
.meshv5 .ia.detail .ia-list { opacity:0;transform:translateX(-14px);pointer-events:none }
.meshv5 .ia.detail .ia-detail { opacity:1;transform:none;pointer-events:auto }
.meshv5 .ia-bar { display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid #e4e4e7;flex-shrink:0 }
.meshv5 .ia-bar-title { font-size:14px;font-weight:700;color:#09090b }
.meshv5 .ia-bar-sub { font-size:12px;color:#71717a }
.meshv5 .ia-back { font-size:12px;color:#374151;border:1px solid #e4e4e7;border-radius:6px;padding:3px 9px }
.meshv5 .ia-badge.ok { margin-left:auto;font-size:12px;color:#16a34a;display:inline-flex;align-items:center;gap:5px }
.meshv5 .ia-badge.ok::before { content:"";width:6px;height:6px;border-radius:50%;background:#16a34a }
.meshv5 .ia-scroll { flex:1;overflow:hidden;padding:14px 18px }
.meshv5 .ia-cat { font-size:12px;font-weight:600;color:#18181b;margin:10px 0 8px }
.meshv5 .ia-cat:first-child { margin-top:0 }
.meshv5 .ia-card { display:flex;align-items:center;gap:13px;padding:10px 14px;background:#fff;border:1px solid #e4e4e7;border-radius:10px;margin-bottom:8px;transition:border-color .12s,box-shadow .12s,transform .12s }
.meshv5 .ia-card.hot { border-color:#c3d7f9;box-shadow:0 1px 3px rgba(0,0,0,.05) }
.meshv5 .ia-card.press { transform:scale(.99) }
.meshv5 .ia-logo { width:32px;height:32px;border-radius:8px;background:#fff;border:1px solid #e4e4e7;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden }
.meshv5 .ia-logo img { width:19px;height:19px;object-fit:contain }
.meshv5 .ia-logo.ns { background:#1A8CD8;color:#fff;border:none;font-weight:700;font-size:14px }
.meshv5 .ia-logo.ns.sm { width:26px;height:26px;font-size:13px }
.meshv5 .ia-logo.ns.xs { width:18px;height:18px;font-size:12px;border-radius:5px }
.meshv5 .ia-cbody { flex:1;min-width:0 }
.meshv5 .ia-cbody b { display:block;font-size:13px;font-weight:600;color:#09090b }
.meshv5 .ia-cbody i { font-size:12px;color:#71717a;font-style:normal }
.meshv5 .ia-btn { flex-shrink:0;font-size:12px;font-weight:600;border-radius:7px;padding:6px 12px }
.meshv5 .ia-btn.reauth { background:#fff;border:1px solid #e4e4e7;color:#18181b }
.meshv5 .ia-btn.connect { background:#345def;color:#fff }
.meshv5 .ia-dp-head { display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:#211f1c;margin-bottom:5px }
.meshv5 .ia-dp-desc { font-size:12px;color:#6b7280;margin-bottom:12px;line-height:1.5 }
.meshv5 .ia-dp-list { border:1px solid #e4e4e7;border-radius:9px;overflow:hidden }
.meshv5 .ia-dp-row { display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid #f3f4f6 }
.meshv5 .ia-dp-row:last-child { border-bottom:none }
.meshv5 .ia-dp-row.hot { background:#fafbff }
.meshv5 .ia-dp-info { flex:1;min-width:0 }
.meshv5 .ia-dp-nameline { display:flex;align-items:center;gap:8px }
.meshv5 .ia-dp-info b { font-size:13px;font-weight:600;color:#211f1c }
.meshv5 .ia-qbtn { font-size:12px;font-weight:600;color:#345def;background:#fff;border:1px solid #c3d7f9;border-radius:999px;padding:2px 9px;opacity:0;transition:opacity .15s }
.meshv5 .ia-dp-row.hot .ia-qbtn, .meshv5 .ia-qbtn.on { opacity:1 }
.meshv5 .ia-qbtn.on { background:#eef2ff;border-color:#345def }
.meshv5 .ia-dp-info i { display:block;font-size:12px;color:#71717a;font-style:normal;margin-top:2px }
.meshv5 .ia-seg { display:inline-flex;gap:2px;padding:2px;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:8px;flex-shrink:0 }
.meshv5 .ia-seg .opt { font-size:12px;font-weight:500;color:#52525b;padding:4px 9px;border-radius:6px;white-space:nowrap }
.meshv5 .ia-seg .opt.on { background:#fff;color:#18181b;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08) }
.meshv5 .ia-seg .opt.on:last-child { color:#4338ca }
.meshv5 .ia-drawer { position:absolute;top:0;right:0;bottom:0;width:58%;background:#f8fafc;border-left:1px solid #e5e7eb;transform:translateX(100%);transition:transform .42s cubic-bezier(.32,.72,0,1);z-index:6;display:flex;flex-direction:column }
.meshv5 .ia.code-open .ia-drawer { transform:none }
.meshv5 .ia-drawer-head { display:flex;align-items:flex-start;gap:10px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e5e7eb;flex-shrink:0 }
.meshv5 .ia-drawer-titles b { font-size:13px;font-weight:700;color:#211f1c;display:block }
.meshv5 .ia-drawer-titles i { font-size:12px;color:#6b7280;font-style:normal }
.meshv5 .ia-x { margin-left:auto;color:#6b7280;border:1px solid #e4e4e7;background:#fff;border-radius:6px;width:23px;height:23px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0 }
.meshv5 .ia-drawer-scroll { flex:1;overflow:hidden }
.meshv5 .ia-q-head { display:flex;align-items:center;gap:8px;padding:9px 14px;background:#fafafa;border-bottom:1px solid #eef0f2;font-size:12px }
.meshv5 .ia-q-head b { font-weight:600;color:#18181b }
.meshv5 .ia-lang { font-size:12px;font-weight:600;color:#6b7280;background:#ececef;border-radius:4px;padding:2px 6px }
.meshv5 .ia-ver { margin-left:auto;font-size:12px;font-weight:600;color:#374151;border:1px solid #e4e4e7;background:#fff;border-radius:6px;padding:3px 8px }
.meshv5 .ia-q-ai { display:flex;align-items:flex-start;gap:8px;padding:9px 14px;background:#eef2ff;border-bottom:1px solid #e0e7ff }
.meshv5 .ia-ai-badge { flex-shrink:0;font-size:12px;font-weight:700;color:#3730a3;background:#e0e7ff;border-radius:999px;padding:2px 8px }
.meshv5 .ia-ai-tx { font-size:12px;color:#3730a3;line-height:1.5 }
.meshv5 .ia-q-prov { display:flex;align-items:flex-start;gap:7px;padding:8px 14px;background:#fff;border-bottom:1px solid #eef0f2;font-size:12px;color:#6b7280;line-height:1.45 }
.meshv5 .ia-q-prov b { color:#18181b;font-weight:600 }
.meshv5 .ia-live-dot { flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 3px #dcfce7;margin-top:3px }
.meshv5 .ia-live { font-size:12px;font-weight:700;color:#166534;background:#dcfce7;border-radius:4px;padding:1px 5px }
.meshv5 .ia-q-code { margin:0;padding:11px 14px;background:#f8fafc;color:#334155;font-family:var(--font-mono),'SF Mono',Menlo,Consolas,monospace;font-size:12px;line-height:1.65;white-space:pre;overflow:hidden;counter-reset:line }
.meshv5 .ia-q-code .ia-l { display:block;padding-left:28px;text-indent:-28px }
.meshv5 .ia-q-code .ia-l::before { content:counter(line);counter-increment:line;display:inline-block;width:16px;margin-right:12px;color:#cbd5e1;text-align:right }
.meshv5 .ia-q-code .kw { color:#7c3aed;font-weight:600 }
.meshv5 .ia-q-code .st { color:#16a34a }
.meshv5 .ia-q-code .fn { color:#2c4fcb;font-weight:600 }
.meshv5 .ia-q-code .cm { color:#94a3b8;font-style:italic }
.meshv5 .ia-q-code .var { color:#2c4fcb;font-weight:600 }
.meshv5 .ia-q-filters { padding:10px 14px;border-top:1px solid #eef0f2;background:#fff }
.meshv5 .ia-q-filters-h { font-size:12px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px }
.meshv5 .ia-q-filters ul { margin:0;padding-left:16px }
.meshv5 .ia-q-filters li { font-size:12px;color:#374151;line-height:1.6 }
.meshv5 .ia-cursor { position:absolute;left:0;top:0;z-index:40;width:20px;height:20px;pointer-events:none;transform:translate(48px,320px);transition:transform .55s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 2px 3px rgba(8,16,40,.35)) }
.meshv5 .ia-cursor.click::after { content:"";position:absolute;left:-5px;top:-5px;width:28px;height:28px;border-radius:50%;border:2px solid rgba(52,93,239,.6);animation:iaClick .45s ease-out }
@keyframes iaClick{from{transform:scale(.3);opacity:.85}to{transform:scale(1);opacity:0}}
@media(prefers-reduced-motion:reduce){
  .meshv5 .ia-cursor { display:none }
  .meshv5 .ia-view, .meshv5 .ia-drawer { transition:none }
}
.meshv5 .dp-panel.ow { position:relative;overflow:hidden;height:528px;max-width:none;width:100%;margin:0;padding:0;color:#211f1c;font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif }
.meshv5 .ow-main { position:absolute;inset:0;display:flex;flex-direction:column;background:#fff }
.meshv5 .ow-bar { display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid #e5e7eb;flex-shrink:0 }
.meshv5 .ow-bar-title { font-size:14px;font-weight:700;color:#211f1c }
.meshv5 .ow-bar-tag { margin-left:auto;font-size:12px;color:#345def;background:#eef2ff;border:1px solid #dde4ff;border-radius:6px;padding:3px 9px }
.meshv5 .ow-sheet { flex:1;overflow:hidden }
.meshv5 .ow-cols, .meshv5 .ow-row { display:grid;grid-template-columns:84px 1fr 116px 150px 40px;align-items:center;gap:10px;padding:0 16px }
.meshv5 .ow-cols { height:30px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#9ca3af }
.meshv5 .ow-cols .r, .meshv5 .ow-row .r { text-align:right;font-variant-numeric:tabular-nums }
.meshv5 .ow-cols .cmt { text-align:center }
.meshv5 .ow-row { height:44px;font-size:12px;color:#211f1c;border-bottom:1px solid #f3f4f6 }
.meshv5 .ow-row span:first-child { font-family:var(--font-mono);font-size:12px;color:#6b7280 }
.meshv5 .ow-row .r { color:#211f1c;font-weight:600 }
.meshv5 .ow-row.comments { background:#fdf2f8 }
.meshv5 .ow-row.hot { background:#fce7f3 }
.meshv5 .ow-st { font-size:12px;font-weight:600;border-radius:999px;border:1px solid;padding:3px 8px;justify-self:start;white-space:nowrap }
.meshv5 .ow-st.rev { color:#345def;background:#f0f4ff;border-color:#345def }
.meshv5 .ow-st.cmt { color:#db2777;background:#fdf2f8;border-color:#db2777 }
.meshv5 .ow-cmt { display:flex;align-items:center;justify-content:center;position:relative;color:#c4c9d4;cursor:pointer }
.meshv5 .ow-row.comments .ow-cmt, .meshv5 .ow-row:nth-child(5) .ow-cmt { color:#db2777 }
.meshv5 .ow-badge { position:absolute;top:-5px;right:-1px;background:#dc2626;color:#fff;font-size:12px;font-weight:700;font-style:normal;min-width:12px;height:12px;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:0 2px }
.meshv5 .ow-drawer { position:absolute;top:0;right:0;bottom:0;width:56%;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-8px 0 24px rgba(17,24,39,.08);transform:translateX(100%);transition:transform .4s cubic-bezier(.32,.72,0,1);z-index:5;display:flex;flex-direction:column }
.meshv5 .ow.open .ow-drawer { transform:none }
.meshv5 .ow-d-head { display:flex;align-items:flex-start;gap:10px;padding:14px 18px 12px;flex-shrink:0 }
.meshv5 .ow-d-titles b { font-size:16px;font-weight:700;color:#211f1c;display:block;line-height:1.1 }
.meshv5 .ow-d-titles i { font-size:12px;color:#9ca3af;font-style:normal }
.meshv5 .ow-x { margin-left:auto;color:#9ca3af;font-size:12px }
.meshv5 .ow-tabs { display:flex;gap:16px;padding:0 18px;border-bottom:1px solid #e5e7eb;flex-shrink:0 }
.meshv5 .ow-tab { padding:8px 0 9px;font-size:12px;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;cursor:pointer }
.meshv5 .ow-tab i { font-style:normal;font-size:12px;color:#9ca3af }
.meshv5 .ow-tab.on { color:#345def;border-bottom-color:#345def;font-weight:600 }
.meshv5 .ow-tab.on i { color:#345def }
.meshv5 .ow-panes { flex:1;position:relative;overflow:hidden }
.meshv5 .ow-pane { position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .3s ease }
.meshv5 .ow-pane.show { opacity:1;pointer-events:auto }
.meshv5 .ow-comments { padding:14px 16px }
.meshv5 .ow-msg-h { display:flex;align-items:center;gap:7px;margin-bottom:6px }
.meshv5 .ow-av { width:24px;height:24px;border-radius:50%;background:#0ea5e9;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0 }
.meshv5 .ow-av.me { background:#0ea5e9 }
.meshv5 .ow-av.vm { background:#10b981 }
.meshv5 .ow-msg-h b { font-size:12px;font-weight:700;color:#211f1c }
.meshv5 .ow-role { font-size:12px;color:#9ca3af;background:#f3f4f6;border-radius:3px;padding:1px 5px }
.meshv5 .ow-time { margin-left:auto;font-size:12px;color:#c4c9d4 }
.meshv5 .ow-msg-body { margin-left:31px;padding:9px 11px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:7px;font-size:12px;line-height:1.5;color:#374151;transition:opacity .25s }
.meshv5 .ow-msg-act { margin-left:31px;margin-top:5px }
.meshv5 .ow-resolve { font-size:12px;color:#9ca3af;cursor:pointer }
.meshv5 .ow-resolve:hover { color:#16a34a }
.meshv5 .ow-msg.resolved .ow-msg-body { opacity:.55 }
.meshv5 .ow-msg.resolved .ow-msg-act { color:#16a34a }
.meshv5 .ow-resolved { font-size:12px;color:#16a34a;font-weight:600;display:inline-flex;align-items:center;gap:4px }
.meshv5 .ow-reply { margin-top:auto;padding-top:12px }
.meshv5 .ow-reply-as { font-size:12px;color:#9ca3af }
.meshv5 .ow-reply-box { margin-top:5px;border:1px solid #e5e7eb;border-radius:7px;padding:9px 11px;font-size:12px;color:#c4c9d4;background:#fff }
.meshv5 .ow-emails { padding:14px 16px;gap:10px }
.meshv5 .ow-email { border:1px solid #e5e7eb;border-radius:9px;padding:10px 12px;opacity:0;transform:translateY(8px) }
.meshv5 .ow-emails.show .ow-email { animation:owIn .45s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i,0)*.28s + .1s) }
@keyframes owIn{to{opacity:1;transform:none}}
.meshv5 .ow-em-h { display:flex;align-items:center;gap:7px;margin-bottom:5px }
.meshv5 .ow-em-h b { font-size:12px;font-weight:700;color:#211f1c }
.meshv5 .ow-em-badge { font-size:12px;font-weight:700;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:1px 6px }
.meshv5 .ow-em-sub { font-size:12px;font-weight:600;color:#374151;margin-bottom:3px }
.meshv5 .ow-em-body { font-size:12px;color:#6b7280;line-height:1.5 }
.meshv5 .ow-em-foot { display:flex;align-items:center;gap:8px;margin-top:2px;font-size:12px;font-weight:600;color:#374151;opacity:0 }
.meshv5 .ow-emails.show .ow-em-foot { animation:owIn .4s ease forwards;animation-delay:.85s }
.meshv5 .ow-check { width:18px;height:18px;border-radius:50%;background:#f0fdf4;color:#16a34a;display:flex;align-items:center;justify-content:center }
.meshv5 .ow-check .ic { width:11px;height:11px }
.meshv5 .ow-cursor { position:absolute;left:0;top:0;z-index:40;width:20px;height:20px;pointer-events:none;transform:translate(70px,300px);transition:transform .55s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 2px 3px rgba(8,16,40,.35)) }
.meshv5 .ow-cursor.click::after { content:"";position:absolute;left:-5px;top:-5px;width:28px;height:28px;border-radius:50%;border:2px solid rgba(219,39,119,.55);animation:iaClick .45s ease-out }
@media(prefers-reduced-motion:reduce){
  .meshv5 .ow-cursor { display:none }
  .meshv5 .ow-drawer, .meshv5 .ow-pane { transition:none }
}
.meshv5 .dp-panel.es { position:relative;overflow:hidden;height:528px;max-width:none;width:100%;margin:0;padding:0;color:#211f1c;font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;display:flex;flex-direction:column }
.meshv5 .es-bar { display:flex;align-items:center;gap:9px;padding:13px 18px;border-bottom:1px solid #e5e7eb;flex-shrink:0 }
.meshv5 .es-ic { color:#345def }
.meshv5 .es-title { font-size:14px;font-weight:700;color:#211f1c }
.meshv5 .es-agent { margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#fff;background:#345def;border-radius:7px;padding:6px 13px }
.meshv5 .es-agent.running { background:#2c4fcb }
.meshv5 .es-spark { font-size:12px }
.meshv5 .es-agent.running .es-spark { animation:esSpin 1.1s linear infinite;display:inline-block }
@keyframes esSpin{to{transform:rotate(360deg)}}
.meshv5 .es-sheet { flex:1;overflow:hidden }
.meshv5 .es-cols, .meshv5 .es-row { display:grid;grid-template-columns:74px 52px 128px 1fr 92px 84px 128px 96px;align-items:center;gap:12px;padding:0 18px }
.meshv5 .es-cols { height:32px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#9ca3af }
.meshv5 .es-cols .r, .meshv5 .es-amt.r { text-align:right;font-variant-numeric:tabular-nums }
.meshv5 .es-row { height:64px;border-bottom:1px solid #f3f4f6;font-size:12px }
.meshv5 .es-po { font-family:var(--font-mono);font-size:12px;color:#6b7280 }
.meshv5 .es-health { display:flex;justify-content:center }
.meshv5 .es-health .health-ring { display:inline-flex;align-items:center;gap:4px }
.meshv5 .es-health .health-ring svg { transform:rotate(-90deg) }
.meshv5 .es-health .health-ring-track { stroke:#fef3c7 }
.meshv5 .es-health .health-ring.green .health-ring-track { stroke:#dcfce7 }
.meshv5 .es-health .health-ring-fill { stroke:#d97706;transition:stroke-dasharray .7s ease }
.meshv5 .es-health .health-ring.green .health-ring-fill { stroke:#16a34a }
.meshv5 .es-health .health-ring.loading .health-ring-fill { stroke:#345def;stroke-dasharray:11 44;transition:none;transform-origin:9px 9px;animation:hrSpin .8s linear infinite }
.meshv5 .es-health .health-ring-text { font-size:12px;font-weight:600;color:#374151 }
.meshv5 .es-health .health-ring.loading .health-ring-text { color:#345def }
.meshv5 .es-amt { font-weight:600;color:#211f1c }
.meshv5 .es-num.pend { color:#c4c9d4;font-weight:400 }
.meshv5 .es-num.roll { color:#345def;font-weight:700 }
.meshv5 .es-num.locked { color:#16a34a;font-weight:700 }
.meshv5 .es-expl { font-size:12px;color:#6b7280;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }
.meshv5 .es-scan { color:#345def;font-family:var(--font-mono);font-size:12px }
.meshv5 .es-scan .ex-rn { color:#9ca3af;margin-right:4px }
.meshv5 .es-scan.matched { color:#16a34a;font-weight:600 }
.meshv5 .es-scan.done { color:#6b7280;font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;font-weight:400 }
.meshv5 .es-mesh { color:#345def;font-weight:700;margin-right:3px }
.meshv5 .es-status .status-ctrl-sel { display:inline-flex;align-items:center;font-size:12px;border:1px solid #e5e7eb;border-radius:5px;padding:3px 9px }
.meshv5 .es-status .s-needs-review { border-color:#345def;color:#345def;background:#f0f4ff }
.meshv5 .es-status .s-estimating { border-color:#345def;color:#345def;background:#f0f4ff;animation:wbPulse 1.1s ease-in-out infinite }
.meshv5 .es-row.active { background:#fafbff }
@media(prefers-reduced-motion:reduce){
  .meshv5 .es-health .health-ring.loading .health-ring-fill { animation:none }
  .meshv5 .es-status .s-estimating { animation:none }
}
.meshv5 .scene { position:fixed;inset:0;z-index:-1;pointer-events:none;background:#f9fafb }
/* Full grid — always visible while in the blue section, never fades out */
.meshv5 .scene::before { content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);
  background-size:44px 44px;
  opacity:var(--t,0) }
/* Blue oval that covers the centre grid once the animation is on screen — no cross-fade flicker */
.meshv5 .scene::after { content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 78% 65% at 50% 54%, #345def 0%, #345def 30%, rgba(52,93,239,.5) 56%, transparent 78%);
  opacity:calc(var(--t,0) * var(--vig,0)) }
/* tg5 grid hover — subtle opacity lift around cursor, no spotlight */
.meshv5 .tg5-glow {
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px) 0 0 / 44px 44px,
    linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px) 0 0 / 44px 44px;
  opacity:0;
  transition:opacity .5s ease;
  -webkit-mask-image:radial-gradient(circle 320px at var(--gx,-400px) var(--gy,-400px), black 0%, rgba(0,0,0,.7) 35%, rgba(0,0,0,.2) 65%, transparent 100%);
  mask-image:radial-gradient(circle 320px at var(--gx,-400px) var(--gy,-400px), black 0%, rgba(0,0,0,.7) 35%, rgba(0,0,0,.2) 65%, transparent 100%) }
body.tg5-glow-on .meshv5 .tg5-glow { opacity:1 }
@media(prefers-reduced-motion:reduce){
  .meshv5 .scene { display:none }
}
body.scene-on .meshv5 .hero-blue { background:transparent }
body.scene-on .meshv5 .hero-bg { opacity:calc(1 - var(--t,0)) }
body.scene-on .meshv5 .hbg-grid { opacity:calc(1 - var(--t,0));transform:translateY(calc(var(--t,0) * -64px)) }
body.scene-on .meshv5 .tg5 { background:transparent }
body.scene-on .meshv5 .tg5::before { display:none }
body.scene-on .meshv5 .tg5::after { display:none }
body.scene-on .meshv5 .tg5-sticky { background:none }
body.scene-on .meshv5 .hero-grid { transform:translateY(calc(var(--t,0) * -64px));opacity:calc(1 - var(--t,0) * .92);will-change:transform,opacity }
body.scene-on .meshv5 .tg5 .wrap { transform:translateY(calc((1 - var(--t,0)) * 46px));opacity:calc(.12 + var(--t,0) * .88);will-change:transform,opacity }
body.scene-on.meshv6home .nav { padding-top:calc(var(--t,0) * 12px) }
body.scene-on.meshv6home .nav .wrap { transition:none;width:min(100% - 96px, 1400px);max-width:none }
body.scene-on.meshv6home .nav-inner { transition:none;
  height:calc(72px - var(--t,0) * 12px);
  padding:0 calc(8px + var(--t,0) * 4px) 0 calc(8px + var(--t,0) * 12px);
  border-radius:calc(var(--t,0) * 999px);
  background:rgba(255,255,255,calc(var(--t,0) * .9));
  border-color:rgba(229,233,242,var(--t,0));
  backdrop-filter:saturate(calc(100% + var(--t,0) * 80%)) blur(calc(var(--t,0) * 16px));
  -webkit-backdrop-filter:saturate(calc(100% + var(--t,0) * 80%)) blur(calc(var(--t,0) * 16px));
  box-shadow:0 10px 30px rgba(8,16,40,calc(var(--t,0) * .10)) }
body.scene-on.meshv6home .nav-brand { display:inline-grid;align-items:center }
body.scene-on.meshv6home .nav-logo { grid-area:1/1;display:block }
body.scene-on.meshv6home .nav-logo-white { opacity:0 }
body.scene-on.meshv6home .nav-logo-blue { opacity:1 }
body.scene-on.meshv6home .nav-link, body.scene-on.meshv6home .nav-cta { transition:none;color:var(--fg-2) }
body.scene-on.meshv6home .btn-demo { transition:none;background:var(--brand);color:#fff;box-shadow:0 6px 18px rgba(8,16,40,.16) }
.meshv5 .dp-panel.mp { position:relative;height:528px;display:flex;flex-direction:column;overflow:hidden;color:#211f1c;font-family:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif }
.meshv5 .mp-hd { display:flex;align-items:flex-start;gap:12px;padding:15px 20px 12px;border-bottom:1px solid #f3f4f6;flex-shrink:0 }
.meshv5 .mp-htext { flex:1;min-width:0 }
.meshv5 .mp-title { font-size:14px;font-weight:600;color:#211f1c }
.meshv5 .mp-sub { font-size:12px;color:#6b7280;margin-top:3px }
.meshv5 .mp-sub b { color:#211f1c;font-weight:600 }
.meshv5 .mp-x { color:#9ca3af;font-size:13px;flex-shrink:0 }
.meshv5 .mp-stats { display:flex;gap:16px;font-size:12px;color:#6b7280;padding:14px 20px 9px;flex-shrink:0 }
.meshv5 .mp-stats b { color:#211f1c;font-weight:600 }
.meshv5 .mp-tblwrap { flex:1;overflow:hidden;margin:0 20px;border:1px solid #e5e7eb;border-radius:8px;scroll-behavior:smooth }
.meshv5 .mp-thead, .meshv5 .mp-row { display:grid;grid-template-columns:158px 1.5fr 66px 2.3fr;gap:14px;align-items:center;padding:9px 13px }
.meshv5 .mp-thead { font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;background:#fafafa;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1 }
.meshv5 .mp-row { border-bottom:1px solid #f3f4f6;font-size:12px;transition:background .25s ease }
.meshv5 .mp-row:last-child { border-bottom:none }
.meshv5 .mp-row.active { background:#fafbff }
.meshv5 .mp-actual { font-family:var(--font-mono),'Menlo','Consolas',monospace;font-size:12px;color:#211f1c;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .mp-sel { display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 9px;border:1px solid #d1d5db;border-radius:5px;background:#fff;font-size:12px;color:#211f1c;min-width:0;transition:border-color .2s ease,box-shadow .2s ease }
.meshv5 .mp-sel .mp-selv { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:6px }
.meshv5 .mp-sel .mp-chev { color:#9ca3af;flex-shrink:0 }
.meshv5 .mp-sel.unmapped { border-style:dashed }
.meshv5 .mp-sel.unmapped .mp-selv { color:#9ca3af }
.meshv5 .mp-sel.pulling { border-color:#345def;box-shadow:0 0 0 2px #e8edff }
.meshv5 .mp-sel.pulling .mp-selv { color:#345def }
.meshv5 .mp-pull-dot { width:9px;height:9px;border-radius:50%;border:1.5px solid #c3d7f9;border-top-color:#345def;display:inline-block;flex-shrink:0;animation:mpSpin .7s linear infinite }
@keyframes mpSpin{to{transform:rotate(360deg)}}
.meshv5 .mp-type { justify-self:start;display:inline-flex;align-items:center;height:19px;padding:0 8px;border-radius:9px;font-size:12px;font-weight:500 }
.meshv5 .mp-type.t-string { background:#eff6ff;color:#1d4ed8 }
.meshv5 .mp-type.t-money { background:#fef3c7;color:#b45309 }
.meshv5 .mp-type.t-empty { background:#f3f4f6;color:#9ca3af }
.meshv5 .mp-ctx { font-size:12px;color:#374151;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .mp-ctx.scram { color:#345def;font-family:var(--font-mono),'Menlo',monospace }
.meshv5 .mp-ctx .mp-ai { color:#345def;font-weight:700;margin-right:4px }
.meshv5 .mp-ft { display:flex;align-items:center;gap:10px;padding:11px 20px;border-top:1px solid #f3f4f6;background:#fafafa;flex-shrink:0 }
.meshv5 .mp-foot-note { font-size:12px;color:#345def;font-weight:500;margin-right:auto }
.meshv5 .mp-btn { font-size:12px;font-weight:500;padding:7px 14px;border-radius:6px;border:1px solid #e5e7eb;background:#fff;color:#374151 }
.meshv5 .mp-btn.primary { background:#345def;border-color:#345def;color:#fff }
.meshv5 .ow-pane.ow-activity { display:block;overflow:hidden;padding:16px 18px }
.meshv5 .ow-act-title { font-size:16px;font-weight:600;color:#211f1c;line-height:1.2 }
.meshv5 .ow-act-sub { font-size:12px;color:#6b7280;margin-top:2px;margin-bottom:16px }
.meshv5 .hist-list { display:flex;flex-direction:column }
.meshv5 .hist-row { display:flex;gap:12px;padding-bottom:16px;position:relative }
.meshv5 .hist-row:last-child { padding-bottom:0 }
.meshv5 .hist-ic-col { width:22px;flex-shrink:0;position:relative;display:flex;flex-direction:column;align-items:center }
.meshv5 .hist-ic { width:22px;height:22px;border-radius:50%;background:#eef2ff;color:#345def;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1 }
.meshv5 .hist-ic .ic { width:11px;height:11px }
.meshv5 .hist-ic.current { background:#dbeafe;color:#2c4fcb }
.meshv5 .hist-line { flex:1;width:1px;background:#e5e7eb;margin-top:1px }
.meshv5 .hist-row:last-child .hist-line { display:none }
.meshv5 .hist-body { flex:1;min-width:0;padding-bottom:2px }
.meshv5 .hist-title { font-size:13px;font-weight:500;color:#211f1c;line-height:1.4 }
.meshv5 .hist-meta { font-size:12px;color:#6b7280;margin-top:2px }
.meshv5 .hist-detail { font-size:12px;color:#374151;margin-top:8px;line-height:1.4 }
.meshv5 .hist-source { font-size:12px;color:#9ca3af;margin-top:3px;line-height:1.4 }
.meshv5 .hist-changes { margin-top:8px;padding:8px 10px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;font-size:12px;color:#374151;line-height:1.5 }
.meshv5 .hist-changes .hc-row { display:flex;gap:6px;padding:2px 0 }
.meshv5 .hist-changes .hc-row + .hc-row { border-top:1px dashed #eef0f2;padding-top:4px;margin-top:4px }
.meshv5 .hist-changes .hc-field { color:#6b7280;min-width:78px;flex-shrink:0 }
.meshv5 .hist-changes .hc-from { color:#9ca3af;text-decoration:line-through }
.meshv5 .hist-changes .hc-arr { color:#c4c9d4 }
.meshv5 .hist-changes .hc-to { color:#211f1c;font-weight:500 }
.meshv5 .hist-empty { font-size:12px;color:#9ca3af;margin-top:6px }
.meshv5 .es-prep, .meshv5 .es-rev { font-size:12px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.meshv5 .es-ml { color:#345def;font-weight:600 }
.meshv5 .es-lt { font-family:var(--font-mono),'Menlo',monospace;font-variant-numeric:tabular-nums;font-size:12px;color:#6b7280 }

/* ============================================================
   LARGE MONITOR — fix nav overlap and zoom out the feature panel
   for viewports wider than 1440 CSS px (where the base rule's
   padding:0 + justify-content:center would put the title behind
   the sticky nav). Also zooms the animation to 85% so more panel
   content is visible at a comfortable reading scale.
   ============================================================ */
@media(min-width:1441px){
  .meshv5 .tg5-js .tg5-sticky {
    padding-top: 80px;
    padding-bottom: 80px;
    justify-content: center;
  }
  .meshv5 .tg5-js .tg5-stage { height: 580px; margin-top: 22px; zoom: 0.85 }
  .meshv5 .tg5-js .dp-panel { height: 580px }
}

/* ============================================================
   LAPTOP — reduce scale for 13-15" retina screens (≤ 1440 CSS px).
   Key: .tg5-js .tg5-sticky has padding:0 + justify-content:center
   in the base rule. We override both here (same specificity, later
   in cascade) so the eyebrow clears the 72px sticky nav.
   ============================================================ */
@media(max-width:1440px){
  /* Hero */
  .meshv5 .hero-blue{padding:80px 0 80px}
  .meshv5 .hero h1{font-size:clamp(42px,4.8vw,70px)}
  .meshv5 .hero .sub{font-size:22px;max-width:400px}
  /* Feature section heading + wrap */

  .meshv5 .tg5-eyebrow{font-size:11px}
  .meshv5 .tg5-h2{font-size:clamp(20px,2.4vw,34px)}
  .meshv5 .tg5-tab-t{font-size:17px}
  .meshv5 .tg5-tab-s{font-size:11.5px}
  .meshv5 .tg5-tabs{margin-top:24px}
  /* Fix: override padding:0 + justify-content:center so eyebrow
     clears the 72px sticky nav. Same specificity, later → wins. */
  .meshv5 .tg5-js .tg5-sticky{
    padding-top:116px;
    padding-bottom:36px;
    justify-content:flex-start
  }
  .meshv5 .tg5-js .tg5-stage{height:340px;margin-top:18px;zoom:0.85}
  .meshv5 .tg5-js .dp-panel{height:400px}
  /* Spreadsheet hero panel */
  .meshv5 .wb-rows{height:460px}
}
@media(max-width:1280px){
  /* Hero */
  .meshv5 .hero-blue{padding:68px 0 68px}
  .meshv5 .hero h1{font-size:clamp(36px,4.4vw,62px)}
  .meshv5 .hero .sub{font-size:20px;max-width:380px}
  /* Spreadsheet hero: tighten column widths */
  .meshv5 .wb-sheet{--wbg:40px 110px 130px 100px 110px 130px}
  .meshv5 .wb-rows{height:460px}
  /* Feature section */

  .meshv5 .tg5-h2{font-size:clamp(18px,2.1vw,30px);white-space:normal}
  .meshv5 .tg5-tab-t{font-size:15px}
  .meshv5 .tg5-tab-s{font-size:11px}
  .meshv5 .tg5-tabs{margin-top:18px}
  /* Fix nav overlap (same override technique as above) */
  .meshv5 .tg5-js .tg5-sticky{
    padding-top:82px;
    padding-bottom:32px;
    justify-content:flex-start
  }
  .meshv5 .tg5-js .tg5-stage{height:390px;margin-top:16px}
  .meshv5 .tg5-js .dp-panel{height:390px}
  /* Nav wrap */
  body.meshv6home .nav .wrap{width:min(100% - 96px,1060px)}
}

/* Large monitor: nav stays within the 1400px content column cap */
@media(min-width:1920px){
  body.meshv6home .nav .wrap{width:min(100% - 96px, 1400px)}
  body.meshv6home .nav-scrolled .wrap{max-width:1100px}
}

/* ============================================================
   MOBILE — trust & governance story panels (ia / mp / es / ow):
   these grids use fixed-pixel columns with no breakpoint below
   1280px. mp-row's flexible columns use nowrap+ellipsis, so on a
   phone the whole row shrinks to fit and crushes the text — give
   it an explicit min-width and let it scroll horizontally instead.
   es-row/ow-row's fixed columns already exceed phone width on
   their own, so their overflow just needs to become visible/
   scrollable rather than clipped.
   ============================================================ */
@media(max-width:640px){
  /* fixed, not auto: .ia-stage/.ow-main are position:absolute;inset:0, so an
     auto-height parent collapses to 0 with nothing in normal flow to size against */
  .meshv5 .tg5-js .dp-panel{height:440px}
  .meshv5 .mp-tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .meshv5 .mp-thead,.meshv5 .mp-row{min-width:520px}
  .meshv5 .es-sheet{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .meshv5 .ow-sheet{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .meshv5 .ia-drawer,.meshv5 .ow-drawer{width:92%}
}
@media(max-width:480px){
  .meshv5 .dp-grid{grid-template-columns:1fr}
  .meshv5 .dp-est-cols,.meshv5 .dp-est-row{gap:8px;padding:9px 14px}
}

/* ============================================================
   MOBILE — hero workbook grid: --wbg stops shrinking at 1023px
   (~680px wide), still wider than any phone. Once the hero
   stacks to one column, let the sheet scroll horizontally
   instead of silently clipping its right-hand columns.
   ============================================================ */
@media(max-width:980px){
  .meshv5 .hero-right{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ============================================================
   MOBILE — logo marquee: fixed 60px side padding eats ~40% of
   a 320px screen per logo.
   ============================================================ */
@media(max-width:640px){
  .lm-item{padding:0 28px}
}
@media(max-width:400px){
  .lm-item{padding:0 20px}
}
