diff --git a/index.html b/index.html
index ed5aa80..1317070 100644
--- a/index.html
+++ b/index.html
@@ -34,23 +34,23 @@ const nKw={US:["fed","fomc","treasury","dollar","powell","nonfarm"],Eurozone:["e
// ═══ FULL MACRO DATABASE ═════════════════════════════════════════
const MD={
-US:{cpi:"3.2%",cpiP:"3.1%",cpiT:"re-accelerating",core:"3.8%",gdp:"2.5%",gdpT:"resilient",unemp:"3.7%",unempT:"near cycle lows",wages:"4.1% YoY",pmi:"52.6",tb:"-$68.5B",stance:"Hawkish hold",next:"2026-05-01",last:"Hold 5.50%",pricing:"2 cuts in 12m",narr:"Good morning everyone. We're seeing the DXY firmly bid this morning, holding above the 104.50 level after yesterday's slightly hotter-than-expected CPI print at 3.2% YoY, up from 3.1%. That number has effectively killed any lingering hopes of an early Fed pivot, pushing back rate cut expectations and reaffirming the Fed's cautious stance; the market is now unwinding some of the aggressive cut pricing we saw earlier, with only two cuts now fully priced in for the next 12 months. This shifts the narrative firmly back to 'higher for longer,' supporting the dollar as Treasury yields edge up across the curve. We're watching for any further commentary from FOMC members today, but my bias remains firmly long DXY, especially heading into next week's retail sales data, which could reinforce the resilient consumer story."},
-Eurozone:{cpi:"2.6%",cpiP:"2.8%",cpiT:"falling toward target",core:"3.1%",gdp:"0.3%",gdpT:"anaemic",unemp:"6.4%",unempT:"stable",wages:"3.5% YoY",pmi:"49.2",tb:"+€28B",stance:"Easing bias",next:"2026-04-10",last:"Hold 4.50%",pricing:"3 cuts in 12m",narr:"The euro is trading heavy around 1.0840 ahead of Thursday's ECB decision, where a 25bp cut to 4.25% is now 90% priced. Headline CPI has fallen to 2.6% from 2.8% — the disinflationary trend is intact — but core at 3.1% and services inflation above 4% give the hawks enough ammunition to push for gradualism. German manufacturing remains in deep contraction (PMI 49.2) and GDP at 0.3% is barely positive. The fundamental picture supports EUR weakness vs USD given the widening rate differential. However, the current account surplus (+€28B) provides structural support. My bias is to sell EURUSD rallies toward 1.0900, targeting a move back to 1.0750 post-ECB. Lagarde's press conference tone will be decisive."},
-UK:{cpi:"3.4%",cpiP:"4.0%",cpiT:"falling but sticky services",core:"4.5%",gdp:"0.2%",gdpT:"tepid",unemp:"4.2%",unempT:"rising",wages:"5.6% YoY",pmi:"53.8",tb:"-£4.8B",stance:"Cautious hold",next:"2026-05-09",last:"Hold 5.25%",pricing:"2 cuts in 12m",narr:"Sterling is the most interesting G10 story this week with UK GDP data due Thursday. Cable is holding 1.2715 — resilient given the broader USD bid — supported by the BoE's relatively hawkish stance at 5.25%. The problem is the UK is stuck: CPI has fallen to 3.4% but services inflation is still running above 5%, wages are growing 5.6% YoY, and the BoE simply cannot cut until that services component breaks lower. Growth at 0.2% is barely positive and unemployment is creeping higher to 4.2%. The gilt curve is inverted at -20bp (2s10s), signalling recession risk. I'm constructive on GBP vs EUR (short EURGBP) given the carry advantage, but cautious on GBPUSD given the dollar strength. Thursday's GDP print is binary — a positive surprise could push cable toward 1.28."},
-Japan:{cpi:"2.8%",cpiP:"2.5%",cpiT:"rising and broadening",core:"2.5%",gdp:"1.2%",gdpT:"recovering",unemp:"2.5%",unempT:"tight",wages:"2.1% (Shunto: 5.3%)",pmi:"51.4",tb:"-¥580B",stance:"Cautious normalisation",next:"2026-04-26",last:"Hold 0.10%",pricing:"1 hike in 12m",narr:"All eyes on the yen. USDJPY is at 156.82 — dangerously close to the level where the MoF intervened last time around 160. The BoJ has exited negative rates but is moving at a glacial pace, with CPI at 2.8% and Shunto wage negotiations delivering a historic 5.3% increase. Wednesday's BoJ Summary of Opinions will be critical — any hints of accelerated normalisation could trigger a sharp JPY rally. Implied vol at 9.4% is elevated, reflecting the two-way intervention risk. The carry trade (borrowing JPY to fund higher-yielding positions) remains massive and crowded. My key concern is that a disorderly unwind of JPY shorts could cascade across global risk assets. For now, I'm flat USDJPY — the risk-reward of being long above 155 is poor given intervention risk, but fighting the carry is expensive."},
-Switzerland:{cpi:"1.4%",cpiP:"1.2%",cpiT:"low",core:"1.2%",gdp:"0.6%",gdpT:"modest",unemp:"2.3%",unempT:"stable",wages:"1.8% YoY",pmi:"48.5",tb:"+CHF5.2B",stance:"Easing",next:"2026-06-19",last:"Cut to 1.75%",pricing:"1-2 more cuts",narr:"The SNB remains the most dovish G10 central bank, having already cut to 1.75% with CPI at just 1.4%. The core issue for CHF is persistent safe-haven inflows — whenever risk deteriorates globally, money flows into Switzerland, effectively tightening financial conditions. The SNB has been actively intervening in FX markets to weaken the franc. For traders, EURCHF is the key cross — the implicit SNB floor means dips toward 0.93 have been bought. USDCHF is tracking the broader USD narrative. With Swiss PMI at 48.5 and growth at just 0.6%, further easing is coming. Short CHF against higher-yielders (like GBP or NOK) is the cleanest expression of the policy divergence."},
-Australia:{cpi:"3.6%",cpiP:"3.4%",cpiT:"sticky",core:"3.9%",gdp:"1.5%",gdpT:"slowing",unemp:"3.9%",unempT:"stable",wages:"4.2% YoY",pmi:"50.1",tb:"+A$8.5B",stance:"On hold",next:"2026-05-20",last:"Hold 4.35%",pricing:"2 cuts in 12m",narr:"AUDUSD is trading at 0.6540, under pressure from the broad USD bid and China demand concerns. The RBA is the most cautious G10 central bank — CPI at 3.6% with core at 3.9% doesn't allow for cuts, but growth at 1.5% and slowing momentum argues against hikes. Australia is a China proxy play: iron ore prices, Chinese PMIs, and any stimulus signals from Beijing directly impact AUD. The trade surplus (+A$8.5B) provides fundamental support. For carry, AUD offers decent pickup vs JPY/CHF but the China tail risk keeps me cautious. I'd look to buy AUDUSD dips toward 0.6450 for a tactical bounce, with a stop below 0.6400."},
-"New Zealand":{cpi:"4.7%",cpiP:"4.7%",cpiT:"sticky",core:"4.3%",gdp:"-0.3%",gdpT:"recession",unemp:"4.3%",unempT:"rising",wages:"3.8% YoY",pmi:"47.1",tb:"-NZ$1.2B",stance:"Easing",next:"2026-05-28",last:"Cut to 5.50%",pricing:"3-4 cuts",narr:"New Zealand is in the worst shape of all G10 economies. GDP is negative at -0.3%, inflation is stubbornly high at 4.7%, and unemployment is climbing. It's a textbook stagflation setup. The RBNZ has begun cutting to 5.50% but started late. NZD is the weakest G10 currency YTD. The housing correction has been brutal. The dairy sector (Fonterra) is the key export driver. I'm bearish NZD vs USD and AUD — NZDUSD has further downside toward 0.5850. The only positive: NZD still carries well vs JPY/CHF, so the timing of shorts matters."},
-Canada:{cpi:"2.9%",cpiP:"2.8%",cpiT:"near target",core:"3.2%",gdp:"1.0%",gdpT:"slowing",unemp:"5.8%",unempT:"rising",wages:"3.9% YoY",pmi:"49.8",tb:"-C$1.5B",stance:"Easing",next:"2026-04-16",last:"Cut to 5.00%",pricing:"2-3 more cuts",narr:"Canada is the canary in the coal mine for the US — the BoC has already cut to 5.00% while the Fed holds at 5.50%, and this divergence is pushing USDCAD higher. CPI at 2.9% is close enough to target to justify continued easing. The housing market is the key vulnerability: massively leveraged households face mortgage renewal shocks. GDP at 1.0% is below trend and unemployment is rising toward 6%. Oil is the swing factor for CAD — WTI strength helps, but the rate differential is dominating. I'm biased toward USDCAD upside, targeting 1.3800+, with the BoC likely to cut again in April while the Fed holds."},
-Sweden:{cpi:"2.2%",cpiP:"2.5%",cpiT:"at target",core:"2.5%",gdp:"0.1%",gdpT:"stagnant",unemp:"8.2%",unempT:"high",wages:"3.5% YoY",pmi:"48.2",tb:"+SEK12B",stance:"Easing",next:"2026-05-07",last:"Cut to 4.00%",pricing:"2-3 more cuts",narr:"Sweden is in a domestic recession. GDP at 0.1% with 8.2% unemployment — the worst in G10. The Riksbank is cutting aggressively as CPI has normalised to 2.2%. The housing correction has been among the worst in Europe. SEK weakness actually helps the export sector, creating a tension between the Riksbank's desire to ease and its concern about further currency depreciation. EURSEK is the key cross. I'd be cautious with long SEK positions given the economic backdrop — the carry is diminishing rapidly as the Riksbank cuts."},
-Norway:{cpi:"3.6%",cpiP:"3.9%",cpiT:"sticky",core:"4.1%",gdp:"0.8%",gdpT:"stable",unemp:"3.7%",unempT:"low",wages:"5.2% YoY",pmi:"51.8",tb:"+NOK80B",stance:"Hawkish hold",next:"2026-05-08",last:"Hold 4.50%",pricing:"1-2 cuts",narr:"Norway is the hawkish outlier in Scandinavia. Norges Bank holds at 4.50% with CPI sticky at 3.6% and wages running at 5.2%. The massive oil-driven trade surplus (+NOK80B) keeps the current account strong. NOK has been surprisingly weak despite the hawkish stance — it trades like a risk proxy with high beta to oil and global sentiment. EURNOK is the key cross. The sovereign wealth fund ($1.6T) provides a structural buffer. For carry traders, NOK offers reasonable pickup vs EUR/CHF but requires a strong stomach for the volatility."},
-Brazil:{cpi:"4.5%",cpiP:"4.2%",cpiT:"rising",core:"4.0%",gdp:"2.1%",gdpT:"strong",unemp:"7.8%",unempT:"falling",wages:"N/A",pmi:"52.1",tb:"+$7.2B",stance:"Tightening",next:"2026-05-07",last:"Hike to 10.75%",pricing:"Terminal ~12%",narr:"Brazil is the highest real yield story in EM. The BCB is hiking (to 10.75%) as CPI re-accelerates to 4.5%, driven by fiscal spending under Lula. BRL carry is extremely attractive (10%+ vs USD) but FX vol is high. The fiscal deficit is the core risk — Lula's spending clashes with BCB tightening. The agricultural trade surplus (+$7.2B) helps. Long BRL vs JPY/CHF for carry, but size conservatively given political tail risk."},
-Mexico:{cpi:"4.2%",cpiP:"4.4%",cpiT:"slowly falling",core:"4.6%",gdp:"2.5%",gdpT:"resilient",unemp:"2.8%",unempT:"tight",wages:"N/A",pmi:"51.5",tb:"-$5.8B",stance:"Cautious hold",next:"2026-05-15",last:"Hold 11.00%",pricing:"2-3 cuts",narr:"Mexico is the EM carry darling with Banxico at 11.00% and CPI gradually falling. Nearshoring FDI flows have surged as companies diversify from China. MXN has been a top performer. The risk is a shift in US trade policy and Banxico eventually cutting, which would compress carry. USDMXN dips are well-bought by carry funds. I like being structurally long MXN vs low-yielders, but the entry point matters."},
-"South Africa":{cpi:"5.3%",cpiP:"5.1%",cpiT:"elevated",core:"4.6%",gdp:"0.7%",gdpT:"weak",unemp:"32.1%",unempT:"structural",wages:"N/A",pmi:"49.5",tb:"-ZAR15B",stance:"Hold",next:"2026-05-29",last:"Hold 8.25%",pricing:"1-2 cuts",narr:"South Africa: sophisticated financial markets, challenged real economy. 32% unemployment is structural. The GNU coalition has brought some stability, load shedding has improved. ZAR carry (8.25%) is high but the rand is extremely volatile. Mining exports drive the balance of payments. I'd only hold ZAR carry in a risk-on environment with a tight stop."},
-India:{cpi:"5.1%",cpiP:"5.3%",cpiT:"moderating",core:"4.2%",gdp:"6.5%",gdpT:"strong",unemp:"7.1%",unempT:"stable",wages:"N/A",pmi:"58.3",tb:"-$20B",stance:"Easing bias",next:"2026-04-09",last:"Cut to 6.50%",pricing:"2 more cuts",narr:"India is the global growth standout — 6.5% GDP with PMI at 58.3 (highest in the world). The RBI has begun cutting as CPI falls within its 2-6% band. INR is one of the most stable EM currencies thanks to RBI intervention. The key risk is oil: every $10/bbl move impacts the current account by ~0.4% of GDP. Modi's reform agenda continues to attract FDI. INR is the 'boring carry' trade — moderate yield with low vol."},
-"South Korea":{cpi:"2.1%",cpiP:"2.3%",cpiT:"at target",core:"2.0%",gdp:"2.0%",gdpT:"recovering",unemp:"2.7%",unempT:"stable",wages:"N/A",pmi:"50.8",tb:"+$4.5B",stance:"Easing",next:"2026-05-29",last:"Cut to 3.50%",pricing:"1-2 cuts",narr:"South Korea is a semiconductor cycle play. Samsung and SK Hynix are at the heart of the AI chip supply chain. CPI at target gives the BoK room to ease. KRW tracks global risk sentiment and tech — essentially a beta play on the AI trade. Modest carry vs JPY/CHF. USDKRW is influenced by DXY and broader EM flows."},
-Turkey:{cpi:"65%",cpiP:"67%",cpiT:"falling from peak",core:"70%",gdp:"3.2%",gdpT:"slowing",unemp:"9.4%",unempT:"stable",wages:"N/A",pmi:"49.1",tb:"-$7.5B",stance:"Hawkish hold",next:"2026-04-17",last:"Hold 50.00%",pricing:"Cuts H2 2026",narr:"Turkey is the ultimate carry trade paradox. 50% policy rate with 65% CPI inflation — real rates are deeply negative, but disinflation is underway from the 85% peak. The orthodox pivot under Governor Erkan has been dramatic. TRY carry is astronomical on paper but lira depreciation has historically consumed it all. If orthodoxy holds, real rates will become positive as inflation falls toward 40-45% by year-end. For sophisticated carry traders, the risk-reward is improving, but political interference risk never fully goes away."},
-Poland:{cpi:"3.9%",cpiP:"3.7%",cpiT:"rising",core:"4.1%",gdp:"2.8%",gdpT:"solid",unemp:"5.1%",unempT:"stable",wages:"12% YoY",pmi:"50.2",tb:"-PLN5B",stance:"On hold",next:"2026-05-07",last:"Hold 5.75%",pricing:"Cuts unlikely H1",narr:"Poland is the CEE standout. GDP at 2.8% driven by EU fund absorption and strong domestic demand. The NBP holds at 5.75% as CPI re-accelerates to 3.9% — Glapinski has signalled no rush to cut. Wage growth at 12% is extraordinary. PLN has been well-supported by hawkish NBP and EU fund inflows. EURPLN trending lower. For carry, PLN offers 1.25%+ vs EUR with supportive flow dynamics. The Tusk government's reform agenda is being watched by investors."},
+US:{cpi:"3.2%",cpiP:"3.1%",cpiT:"re-accelerating",core:"3.8%",gdp:"2.5%",gdpT:"resilient",unemp:"3.7%",unempT:"near cycle lows",wages:"4.1% YoY",pmi:"52.6",tb:"-$68.5B",stance:"Hawkish hold",next:"2026-05-01",last:"Hold 5.50%",pricing:"2 cuts in 12m"},
+Eurozone:{cpi:"2.6%",cpiP:"2.8%",cpiT:"falling toward target",core:"3.1%",gdp:"0.3%",gdpT:"anaemic",unemp:"6.4%",unempT:"stable",wages:"3.5% YoY",pmi:"49.2",tb:"+€28B",stance:"Easing bias",next:"2026-04-10",last:"Hold 4.50%",pricing:"3 cuts in 12m"},
+UK:{cpi:"3.4%",cpiP:"4.0%",cpiT:"falling but sticky services",core:"4.5%",gdp:"0.2%",gdpT:"tepid",unemp:"4.2%",unempT:"rising",wages:"5.6% YoY",pmi:"53.8",tb:"-£4.8B",stance:"Cautious hold",next:"2026-05-09",last:"Hold 5.25%",pricing:"2 cuts in 12m"},
+Japan:{cpi:"2.8%",cpiP:"2.5%",cpiT:"rising and broadening",core:"2.5%",gdp:"1.2%",gdpT:"recovering",unemp:"2.5%",unempT:"tight",wages:"2.1% (Shunto: 5.3%)",pmi:"51.4",tb:"-¥580B",stance:"Cautious normalisation",next:"2026-04-26",last:"Hold 0.10%",pricing:"1 hike in 12m"},
+Switzerland:{cpi:"1.4%",cpiP:"1.2%",cpiT:"low",core:"1.2%",gdp:"0.6%",gdpT:"modest",unemp:"2.3%",unempT:"stable",wages:"1.8% YoY",pmi:"48.5",tb:"+CHF5.2B",stance:"Easing",next:"2026-06-19",last:"Cut to 1.75%",pricing:"1-2 more cuts"},
+Australia:{cpi:"3.6%",cpiP:"3.4%",cpiT:"sticky",core:"3.9%",gdp:"1.5%",gdpT:"slowing",unemp:"3.9%",unempT:"stable",wages:"4.2% YoY",pmi:"50.1",tb:"+A$8.5B",stance:"On hold",next:"2026-05-20",last:"Hold 4.35%",pricing:"2 cuts in 12m"},
+"New Zealand":{cpi:"4.7%",cpiP:"4.7%",cpiT:"sticky",core:"4.3%",gdp:"-0.3%",gdpT:"recession",unemp:"4.3%",unempT:"rising",wages:"3.8% YoY",pmi:"47.1",tb:"-NZ$1.2B",stance:"Easing",next:"2026-05-28",last:"Cut to 5.50%",pricing:"3-4 cuts"},
+Canada:{cpi:"2.9%",cpiP:"2.8%",cpiT:"near target",core:"3.2%",gdp:"1.0%",gdpT:"slowing",unemp:"5.8%",unempT:"rising",wages:"3.9% YoY",pmi:"49.8",tb:"-C$1.5B",stance:"Easing",next:"2026-04-16",last:"Cut to 5.00%",pricing:"2-3 more cuts"},
+Sweden:{cpi:"2.2%",cpiP:"2.5%",cpiT:"at target",core:"2.5%",gdp:"0.1%",gdpT:"stagnant",unemp:"8.2%",unempT:"high",wages:"3.5% YoY",pmi:"48.2",tb:"+SEK12B",stance:"Easing",next:"2026-05-07",last:"Cut to 4.00%",pricing:"2-3 more cuts"},
+Norway:{cpi:"3.6%",cpiP:"3.9%",cpiT:"sticky",core:"4.1%",gdp:"0.8%",gdpT:"stable",unemp:"3.7%",unempT:"low",wages:"5.2% YoY",pmi:"51.8",tb:"+NOK80B",stance:"Hawkish hold",next:"2026-05-08",last:"Hold 4.50%",pricing:"1-2 cuts"},
+Brazil:{cpi:"4.5%",cpiP:"4.2%",cpiT:"rising",core:"4.0%",gdp:"2.1%",gdpT:"strong",unemp:"7.8%",unempT:"falling",wages:"N/A",pmi:"52.1",tb:"+$7.2B",stance:"Tightening",next:"2026-05-07",last:"Hike to 10.75%",pricing:"Terminal ~12%"},
+Mexico:{cpi:"4.2%",cpiP:"4.4%",cpiT:"slowly falling",core:"4.6%",gdp:"2.5%",gdpT:"resilient",unemp:"2.8%",unempT:"tight",wages:"N/A",pmi:"51.5",tb:"-$5.8B",stance:"Cautious hold",next:"2026-05-15",last:"Hold 11.00%",pricing:"2-3 cuts"},
+"South Africa":{cpi:"5.3%",cpiP:"5.1%",cpiT:"elevated",core:"4.6%",gdp:"0.7%",gdpT:"weak",unemp:"32.1%",unempT:"structural",wages:"N/A",pmi:"49.5",tb:"-ZAR15B",stance:"Hold",next:"2026-05-29",last:"Hold 8.25%",pricing:"1-2 cuts"},
+India:{cpi:"5.1%",cpiP:"5.3%",cpiT:"moderating",core:"4.2%",gdp:"6.5%",gdpT:"strong",unemp:"7.1%",unempT:"stable",wages:"N/A",pmi:"58.3",tb:"-$20B",stance:"Easing bias",next:"2026-04-09",last:"Cut to 6.50%",pricing:"2 more cuts"},
+"South Korea":{cpi:"2.1%",cpiP:"2.3%",cpiT:"at target",core:"2.0%",gdp:"2.0%",gdpT:"recovering",unemp:"2.7%",unempT:"stable",wages:"N/A",pmi:"50.8",tb:"+$4.5B",stance:"Easing",next:"2026-05-29",last:"Cut to 3.50%",pricing:"1-2 cuts"},
+Turkey:{cpi:"65%",cpiP:"67%",cpiT:"falling from peak",core:"70%",gdp:"3.2%",gdpT:"slowing",unemp:"9.4%",unempT:"stable",wages:"N/A",pmi:"49.1",tb:"-$7.5B",stance:"Hawkish hold",next:"2026-04-17",last:"Hold 50.00%",pricing:"Cuts H2 2026"},
+Poland:{cpi:"3.9%",cpiP:"3.7%",cpiT:"rising",core:"4.1%",gdp:"2.8%",gdpT:"solid",unemp:"5.1%",unempT:"stable",wages:"12% YoY",pmi:"50.2",tb:"-PLN5B",stance:"On hold",next:"2026-05-07",last:"Hold 5.75%",pricing:"Cuts unlikely H1"},
};
const DCAL=[{date:"2026-04-08",time:"12:30",ctry:"🇺🇸",ev:"FOMC Minutes",prev:"—",fcast:"—",act:"—",imp:"red"},{date:"2026-04-09",time:"12:30",ctry:"🇺🇸",ev:"US CPI YoY",prev:"3.2%",fcast:"3.1%",act:"—",imp:"red"},{date:"2026-04-10",time:"11:00",ctry:"🇪🇺",ev:"ECB Rate Decision",prev:"4.50%",fcast:"4.25%",act:"—",imp:"red"},{date:"2026-04-10",time:"07:00",ctry:"🇬🇧",ev:"UK GDP MoM",prev:"-0.1%",fcast:"0.2%",act:"—",imp:"red"}];
@@ -60,7 +60,7 @@ const CP=["EURUSD","GBPUSD","USDJPY","AUDUSD","USDCAD","NZDUSD","Gold","US10Y"];
const Dot=({on})=>;
function Tabs({tabs,act,set}){return