/* ── MONEYZEYAH shared brand kit ── icons, cursor, haptics, logo motion ── */

.mz-icon{width:1em;height:1em;display:inline-block;vertical-align:-0.14em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.mz-icon-fill{fill:currentColor;stroke:none;}
.mz-icon-accent{color:var(--accent);}
.mz-icon-red{color:var(--red);}
.mz-icon-dim{color:var(--text-dim);}
.mz-icon-white{color:#fff;}
.mz-icon-lg{width:1.6em;height:1.6em;}
.mz-icon-xl{width:2.4em;height:2.4em;}

/* colored status dot (replaces 🟢🔴🔵🟡⚫) */
.mz-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor;}
.mz-dot-green{background:var(--accent);color:var(--accent);}
.mz-dot-red{background:var(--red);color:var(--red);}
.mz-dot-blue{background:#2196f3;color:#2196f3;}
.mz-dot-yellow{background:#f0b90b;color:#f0b90b;}
.mz-dot-dark{background:#8b8f9a;color:#8b8f9a;}

/* ── LOGO MOTION ── the bar-chart mark: bars grow in, the trend line draws itself ── */
.mz-logo-svg .mz-logo-bar{transform-box:fill-box;transform-origin:bottom;animation:mzBarGrow .55s cubic-bezier(.2,.8,.2,1) backwards;}
.mz-logo-svg .mz-logo-bar:nth-of-type(1){animation-delay:.02s;}
.mz-logo-svg .mz-logo-bar:nth-of-type(2){animation-delay:.09s;}
.mz-logo-svg .mz-logo-bar:nth-of-type(3){animation-delay:.16s;}
.mz-logo-svg .mz-logo-bar:nth-of-type(4){animation-delay:.23s;}
.mz-logo-svg .mz-logo-bar:nth-of-type(5){animation-delay:.30s;}
.mz-logo-svg .mz-logo-bar:nth-of-type(6){animation-delay:.37s;}
@keyframes mzBarGrow{from{transform:scaleY(0);opacity:0;}to{transform:scaleY(1);opacity:1;}}
.mz-logo-svg .mz-logo-line{stroke-dasharray:220;stroke-dashoffset:220;animation:mzLineDraw 1.1s .38s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes mzLineDraw{to{stroke-dashoffset:0;}}
.mz-logo-svg .mz-logo-arrow{opacity:0;animation:mzFadeIn .3s 1.35s forwards;}
@keyframes mzFadeIn{to{opacity:1;}}
@media(prefers-reduced-motion:reduce){
  .mz-logo-svg .mz-logo-bar,.mz-logo-svg .mz-logo-line,.mz-logo-svg .mz-logo-arrow{animation:none;transform:none;opacity:1;stroke-dashoffset:0;}
}

/* ── DESKTOP CURSOR: MONEY GUN ── fine-pointer only, JS adds .mz-cursor-active to <html> once armed.
   #mz-cursor-gun: JS-owned transform (translate3d + rotate), every frame, compositor-only, aimed
   at pointer travel direction. Muzzle fires $ particles on move/click via .mz-cash spawns. */
html.mz-cursor-active,html.mz-cursor-active *{cursor:none !important;}
#mz-cursor-gun{position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;z-index:99999;display:none;}
html.mz-cursor-active #mz-cursor-gun{display:block;}
#mz-cursor-gun svg{position:absolute;top:-13px;left:-6px;width:46px;height:26px;opacity:0;transition:opacity .2s ease,filter .18s ease;filter:drop-shadow(0 0 4px rgba(139,172,44,.35));}
html.mz-cursor-ready #mz-cursor-gun svg{opacity:1;}
html.mz-cursor-hover #mz-cursor-gun svg{filter:drop-shadow(0 0 10px rgba(139,172,44,.8));}
html.mz-cursor-down #mz-cursor-gun svg{filter:drop-shadow(0 0 15px rgba(139,172,44,1));}
.mz-cash{position:fixed;top:0;left:0;font-family:"Oxanium",sans-serif;font-weight:800;font-size:13px;color:var(--accent);pointer-events:none;z-index:99998;will-change:transform,opacity;text-shadow:0 0 4px rgba(139,172,44,.65);animation:mzCashFire .55s cubic-bezier(.15,.7,.3,1) forwards;}
@keyframes mzCashFire{from{transform:translate3d(-50%,-50%,0) rotate(0deg) scale(1);opacity:1;}to{transform:translate3d(calc(-50% + var(--dx)),calc(-50% + var(--dy)),0) rotate(var(--dr)) scale(.35);opacity:0;}}

/* ── MOBILE HAPTIC-FEEL TOUCH ── ripple + press-scale on any tappable element ── */
.mz-tap-target{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;}
.mz-tap-target.mz-pressed{transform:scale(.97);transition:transform .08s ease;}
.mz-ripple{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(139,172,44,.45) 0%,rgba(139,172,44,0) 70%);transform:translate(-50%,-50%) scale(0);pointer-events:none;width:120px;height:120px;animation:mzRipple .5s ease-out forwards;}
@keyframes mzRipple{to{transform:translate(-50%,-50%) scale(1);opacity:0;}}

/* ── NFP/CPI NO-TRADE BANNER (shared, brand-aligned) ── */
.mz-news-banner{display:flex;align-items:center;gap:12px;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-family:var(--font,"Oxanium",sans-serif);border:1px solid var(--border-accent);background:var(--accent-glow);transition:all .25s ease;}
.mz-news-banner.mz-news-active{border-color:rgba(224,82,82,.4);background:rgba(224,82,82,.08);}
.mz-news-banner .mz-icon{width:22px;height:22px;color:var(--accent);flex-shrink:0;}
.mz-news-banner.mz-news-active .mz-icon{color:var(--red);}
.mz-news-banner-text{display:flex;flex-direction:column;gap:2px;flex:1;}
.mz-news-banner-title{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;}
.mz-news-banner.mz-news-active .mz-news-banner-title{color:var(--red);}
.mz-news-banner-sub{font-size:11.5px;color:var(--text-dim);line-height:1.4;}
.mz-news-clock{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto;padding-left:14px;}
.mz-news-clock-label{font-size:8px;font-weight:700;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;text-align:right;line-height:1.5;}
.mz-news-clock-digits{font-family:"Oxanium",monospace;font-size:15px;font-weight:800;letter-spacing:.04em;color:var(--accent);background:var(--bg3,rgba(0,0,0,.25));border:1px solid var(--border-accent);border-radius:6px;padding:5px 10px;cursor:default;white-space:nowrap;transition:color .2s,border-color .2s;}
.mz-news-banner.mz-news-active .mz-news-clock-digits{color:var(--red);border-color:rgba(224,82,82,.4);}
@media(max-width:520px){.mz-news-banner{flex-wrap:wrap;}.mz-news-clock{margin-left:0;padding-left:0;width:100%;justify-content:space-between;}}
