/* ═══════════════════════════════════════════════════════════════════════════
   HOMEPAGE — CHROME EXTENSION SHOWCASE
   A compact version of the extension landing page: real visitor location on the
   left, the live network map on the right. Every number is server-rendered, so
   there is no layout shift and no empty state.
═══════════════════════════════════════════════════════════════════════════ */

.ext-showcase {
    position: relative;
    padding: 7rem 0 7.5rem;
    overflow: hidden;
}

.ext-showcase-glow {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(760px 380px at 18% 12%, rgba(0, 242, 255, .12), transparent 70%),
        radial-gradient(680px 420px at 84% 78%, rgba(59, 130, 246, .14), transparent 70%);
}

.ext-showcase-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3.5rem;
    align-items: start;
}

@media (min-width: 1024px) {
    .ext-showcase-grid {
        grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
        gap: 4rem;
    }
}

/* ── "where you are" card ────────────────────────────────────────────────── */

.ext-where {
    padding: 26px 28px;
    border-radius: 26px;
    border: 1px solid rgba(99, 140, 255, .26);
    background: linear-gradient(150deg, rgba(20, 35, 80, .5), rgba(6, 14, 34, .72));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 26px 60px rgba(0, 0, 0, .4);
}

.ext-where-top {
    display: flex; align-items: center; gap: 16px;
    padding-bottom: 18px; margin-bottom: 18px;
    border-bottom: 1px solid rgba(148, 163, 184, .12);
}

.ext-where-flag {
    width: 56px; height: 56px; flex: none;
    display: grid; place-items: center;
    font-size: 27px; line-height: 1;
    border-radius: 16px;
    background: rgba(0, 242, 255, .09);
    border: 1px solid rgba(0, 242, 255, .28);
    box-shadow: 0 0 22px rgba(0, 242, 255, .16) inset;
}

.ext-where-top b {
    display: block; font-size: 17px; font-weight: 800; color: #fff;
}
.ext-where-top span {
    display: block; margin-top: 3px; font-size: 13px; color: #93a4c8;
}

.ext-where-rows { display: grid; gap: 11px; margin: 0; }
.ext-where-rows > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.ext-where-rows dt {
    font-size: 11px; font-weight: 800; letter-spacing: .14em;
    text-transform: uppercase; color: #64748b;
}
.ext-where-rows dd {
    margin: 0; font-size: 13.5px; font-weight: 600; color: #e2e8f0;
    font-variant-numeric: tabular-nums; text-align: right;
}

.ext-where-note {
    display: flex; align-items: flex-start; gap: 8px;
    margin: 18px 0 0; font-size: 11.5px; line-height: 1.6; color: #64748b;
}
.ext-where-note i { margin-top: 2px; color: #22d3ee; }

/* ── fleet stats ─────────────────────────────────────────────────────────── */

.ext-showcase-stats {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px; margin: 22px 0;
}

.ext-showcase-stat {
    padding: 16px 10px; text-align: center; border-radius: 18px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .12);
    transition: border-color .3s ease, transform .3s ease;
}
.ext-showcase-stat:hover { border-color: rgba(0, 242, 255, .45); transform: translateY(-3px); }
.ext-showcase-stat i { display: block; font-size: 14px; color: #00f2ff; margin-bottom: 8px; }
.ext-showcase-stat b {
    display: block; font-size: 19px; font-weight: 900; color: #fff; line-height: 1.1;
}
.ext-showcase-stat span {
    display: block; margin-top: 5px;
    font-size: 9.5px; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; color: #64748b;
}

/* ── tool list ───────────────────────────────────────────────────────────── */

.ext-tool-list {
    list-style: none; margin: 0 0 26px; padding: 0;
    display: grid; gap: 10px;
}

.ext-tool {
    display: flex; align-items: flex-start; gap: 14px;
    padding: 14px 16px; border-radius: 16px;
    background: rgba(255, 255, 255, .025);
    border: 1px solid rgba(148, 163, 184, .1);
    transition: all .3s ease;
}
.ext-tool:hover {
    border-color: rgba(0, 242, 255, .38);
    background: rgba(0, 242, 255, .05);
    transform: translateX(4px);
}
.ext-tool > i {
    width: 34px; height: 34px; flex: none;
    display: grid; place-items: center; border-radius: 11px; font-size: 14px;
    color: #00f2ff;
    background: rgba(0, 242, 255, .09);
    border: 1px solid rgba(0, 242, 255, .2);
}
.ext-tool b { display: block; font-size: 13.5px; font-weight: 700; color: #f1f5f9; }
.ext-tool span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.55; color: #7c8db0; }

/* ── CTAs ────────────────────────────────────────────────────────────────── */

.ext-showcase-cta { display: flex; flex-wrap: wrap; gap: 14px; }

.ext-showcase-btn {
    flex: 1 1 240px;
    display: flex; align-items: center; gap: 14px;
    padding: 16px 22px; border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, .18);
    background: rgba(255, 255, 255, .04);
    color: #e2e8f0; text-decoration: none;
    transition: all .3s cubic-bezier(.2, 1, .3, 1);
}
.ext-showcase-btn:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 242, 255, .5);
    background: rgba(0, 242, 255, .07);
}
.ext-showcase-btn > i { font-size: 20px; color: #00f2ff; }
.ext-showcase-btn b { display: block; font-size: 14.5px; font-weight: 800; color: #fff; }
.ext-showcase-btn em {
    display: block; margin-top: 3px; font-style: normal;
    font-size: 11.5px; color: #7c8db0;
}
.ext-showcase-btn.is-primary {
    background: linear-gradient(135deg, #00f2ff, #2563eb);
    border-color: transparent; color: #04121c;
    box-shadow: 0 18px 40px rgba(0, 242, 255, .18);
}
.ext-showcase-btn.is-primary > i,
.ext-showcase-btn.is-primary b { color: #04121c; }
.ext-showcase-btn.is-primary em { color: rgba(4, 18, 28, .7); }
.ext-showcase-btn.is-primary:hover { box-shadow: 0 22px 48px rgba(0, 242, 255, .3); }

/* ── map frame ───────────────────────────────────────────────────────────── */

.ext-map-frame {
    position: relative; overflow: hidden;
    border-radius: 26px;
    border: 1px solid rgba(99, 140, 255, .24);
    background: radial-gradient(760px 420px at 50% 0%, #0a1730, #04070f 72%);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .5);
}

.ext-map-bar {
    display: flex; align-items: center; gap: 8px;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(148, 163, 184, .1);
}
.ext-map-bar b {
    margin-left: 8px; font-size: 12.5px; font-weight: 700; color: #cbd5e1;
}
.ext-map-dot {
    width: 9px; height: 9px; border-radius: 50%; background: rgba(148, 163, 184, .3);
}
.ext-map-dot:first-child { background: rgba(248, 113, 113, .55); }
.ext-map-dot:nth-child(2) { background: rgba(251, 191, 36, .55); }
.ext-map-dot:nth-child(3) { background: rgba(52, 211, 153, .55); }

.ext-map-stage { position: relative; padding: 10px 8px 14px; }

.ext-map-foot {
    display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
    padding: 14px 20px 16px;
    font-size: 11px; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: #64748b;
    border-top: 1px solid rgba(148, 163, 184, .1);
}
.ext-map-foot span { display: flex; align-items: center; gap: 7px; }
.ext-map-foot i { width: 10px; height: 10px; border-radius: 50%; }
.ext-map-foot .lg-home { background: #0d7490; box-shadow: 0 0 0 1px #22d3ee; }
.ext-map-foot .lg-server { background: #22d3ee; }
.ext-map-live { color: #34d399; }
.ext-map-live i { color: #34d399; font-size: 7px; animation: ext-blink 1.8s ease-in-out infinite; }

@keyframes ext-blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

.ext-map-caption {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin: 18px 0 0; font-size: 12px; color: #64748b; text-align: center;
}
.ext-map-caption i { color: #22d3ee; }

@media (max-width: 640px) {
    .ext-showcase { padding: 4.5rem 0 5rem; }
    .ext-where { padding: 20px; border-radius: 22px; }
    .ext-showcase-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── node tooltip (click a node on the homepage map) ─────────────────────── */

.ext-map-stage { position: relative; }

.ext-home-tip {
    position: absolute; z-index: 5; left: 14px; right: 14px; top: 14px;
    padding: 12px 15px; border-radius: 14px;
    background: rgba(9, 13, 26, .92);
    border: 1px solid rgba(120, 160, 255, .28);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    opacity: 0; transform: translateY(-6px); pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}
.ext-home-tip.is-on { opacity: 1; transform: none; }
.ext-home-tip b { display: block; font-size: 13px; font-weight: 800; color: #fff; }
.ext-home-tip span {
    display: block; margin-top: 3px; font-size: 11.5px; color: #93a4c8;
}
.ext-home-tip .ext-home-tip-meta {
    margin-top: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 10.5px; color: #22d3ee; word-break: break-all;
}

/* The globe is a 2:1 sphere, so give the map column the wider share. */
@media (min-width: 1024px) {
    .ext-showcase-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.14fr); }
}

/* ── region pills ────────────────────────────────────────────────────────── */

.ext-region-groups {
    display: grid; gap: 14px; margin-top: 26px;
}
.ext-region-name {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 9px;
    font-size: 10.5px; font-weight: 800; letter-spacing: .16em;
    text-transform: uppercase; color: #7c8db0;
}
.ext-region-name i { font-style: normal; font-size: 13px; }
.ext-region-name em {
    margin-left: auto; font-style: normal; font-weight: 700;
    letter-spacing: .08em; color: #475569; text-transform: none;
}
.ext-region-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.ext-region-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 11px; border-radius: 999px;
    font-size: 11px; font-weight: 600; color: #cbd5e1;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .12);
    transition: all .22s ease;
}
.ext-region-pill i { font-style: normal; font-size: 12px; }
.ext-region-pill:hover {
    color: #fff; border-color: rgba(0, 242, 255, .45);
    background: rgba(0, 242, 255, .07); transform: translateY(-2px);
}


/* The popup preview on the page: the tool row is a list of what the extension
   runs, not switches that flip and change nothing. */
.ext-popup-tools.is-list { gap: 6px; }
.ext-popup-tools.is-list > span {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 9px;
    font-size: 12px; color: #22d3ee;
    background: rgba(34, 211, 238, .08);
    border: 1px solid rgba(34, 211, 238, .2);
}
.ext-popup-tools.is-list > span.is-pro {
    color: #c4b5fd;
    background: rgba(167, 139, 250, .12);
    border-color: rgba(167, 139, 250, .32);
}
.ext-popup-tools.is-list > span em {
    position: absolute; right: -5px; bottom: -6px;
    padding: 1px 4px; border-radius: 4px;
    font-size: 7px; font-style: normal; font-weight: 900; letter-spacing: .06em;
    color: #04121f; background: #a78bfa;
}
#popupNote.is-shown { border-color: rgba(0, 229, 255, .35); }

/* ═══════════════════════════════════════════════════════════════════════════
   THE HOMEPAGE'S EXTENSION SECTION
   One section: the extension's own live-location screen, the connection
   details, and the network it reaches. The old left column — visitor card,
   node counters, tool list — is gone.
═══════════════════════════════════════════════════════════════════════════ */

.ext-home-live {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 22px; align-items: start; margin-bottom: 26px;
}
@media (max-width: 980px) { .ext-home-live { grid-template-columns: 1fr; } }

.ext-home-info .ext-map-info { margin: 0; height: 100%; }
.ext-home-info .ext-map-info-title i { color: #22d3ee; font-size: 13px; }

/* map titlebar in the network-frame style: dots left, title centred, status right */
.ext-home-live .ext-map-head.is-network { align-items: center; gap: 12px; }
.ext-map-dots { display: inline-flex; gap: 7px; flex: none; }
.ext-map-dots i { width: 10px; height: 10px; border-radius: 50%; }
.ext-map-dots i:nth-child(1) { background: #f87171; }
.ext-map-dots i:nth-child(2) { background: #fbbf24; }
.ext-map-dots i:nth-child(3) { background: #34d399; }
.ext-map-title {
    flex: 1; text-align: center;
    font-size: 14px; font-weight: 800; letter-spacing: .02em; color: #fff;
}

/* home map: compact so the info card holds its own next to it */
.ext-home-map .ext-map-canvas { height: 250px; }

/* info rows: one fact per line, label left, value pill right, equal heights */
.ext-home-info .ext-map-rows.is-single { grid-template-columns: minmax(0, 1fr); gap: 2px; }
.ext-home-info .ext-map-rows.is-single > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 52px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(148, 163, 184, .1);
}
.ext-home-info .ext-map-rows.is-single > div:last-child { border-bottom: 0; }
.ext-home-info .ext-map-rows.is-single dt { font-size: 14px; color: #8b9bbd; }
.ext-home-info .ext-map-rows.is-single .is-pill {
    margin: 0;
    font-size: 13px; font-weight: 600; white-space: nowrap;
    color: #fda4af;
    background: rgba(239, 68, 68, .14);
    border: 1px solid rgba(239, 68, 68, .3);
    border-radius: 999px;
    padding: 5px 14px;
    max-width: 70%;
    overflow: hidden; text-overflow: ellipsis;
}
/* thin card borders, rounded map like the reference */
.ext-home-info .ext-map-info { border-width: 1px; }
.ext-home-map .ext-map-card { border-width: 1px; }
.ext-home-map .ext-map-canvas { border-radius: 18px; }
.ext-home-info .ext-map-rows .is-tag {
    margin: 0;
    font-size: 13.5px; font-weight: 800; white-space: nowrap;
    color: #fff;
    background: rgba(239, 68, 68, .85);
    border: 1px solid rgba(239, 68, 68, .6);
    border-radius: 7px;
    padding: 2px 9px;
}

.ext-home-network .ext-region-groups { margin: 0; }
.ext-home-network .ext-region-name em { display: none; }   /* no city counts */

/* ═══════════════════════════════════════════════════════════════════════════
   APP SCREENS — "experience the app before you install": breach scanner,
   live mini map and security toolkit cards (home page only)
═══════════════════════════════════════════════════════════════════════════ */

.app-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; margin-bottom: 10px;
}
.app-head .app-kicker { margin: 0; }
.app-os {
    flex: none; display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 15px; border-radius: 999px;
    font-size: 12px; font-weight: 800; letter-spacing: .06em; color: #fff;
    background: rgba(61, 220, 132, .1);
    border: 1px solid rgba(61, 220, 132, .4);
}
.app-os i { color: #3ddc84; font-size: 15px; }
.app-kicker {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px; letter-spacing: .18em; color: #22d3ee;
    margin-bottom: 10px;
}
.app-title {
    font-size: clamp(1.6rem, 3.4vw, 2.4rem); font-weight: 800; color: #fff;
    letter-spacing: -.02em; margin-bottom: 34px; text-align: right;
}
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-style: normal; }

.vpn-app-grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px; align-items: stretch;
}
@media (max-width: 1024px) { .vpn-app-grid { grid-template-columns: minmax(0, 1fr); } }

.vpn-app-card {
    padding: 20px; border-radius: 20px;
    background: linear-gradient(165deg, rgba(19, 26, 48, .96), rgba(7, 11, 22, .97));
    border: 1px solid rgba(148, 163, 184, .15);
    display: flex; flex-direction: column; gap: 14px;
    min-width: 0;
}
.app-top { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: #fff; }
.app-top b { font-weight: 700; }
.app-top .mono { margin-left: auto; font-size: 11px; color: #7c8db0; }
.app-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }

/* breach */
.app-breach-hero {
    text-align: center; padding: 22px 14px; border-radius: 14px;
    background: linear-gradient(180deg, rgba(239, 68, 68, .14), rgba(239, 68, 68, .04));
    border: 1px solid rgba(239, 68, 68, .3);
}
.app-shield {
    display: inline-grid; place-items: center;
    width: 44px; height: 44px; border-radius: 13px;
    font-style: normal; font-size: 20px; color: #fff;
    background: linear-gradient(135deg, #ef4444, #dc2626);
    box-shadow: 0 10px 26px rgba(239, 68, 68, .35);
}
.app-breach-hero .mono { display: block; margin-top: 12px; font-size: 12px; font-weight: 800; letter-spacing: .14em; color: #fca5a5; }
.app-breach-hero small { display: block; margin-top: 4px; font-size: 12px; color: #7c8db0; }
.app-breach-hero em { display: block; margin: 12px auto 0; font-style: normal; font-size: 11.5px; color: #fca5a5; background: rgba(239, 68, 68, .12); border: 1px solid rgba(239, 68, 68, .25); border-radius: 999px; padding: 7px 12px; max-width: max-content; }
.app-breach-list { display: grid; gap: 10px; }
.bl-row {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 14px; border-radius: 13px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .12);
}
.bl-ic {
    width: 28px; height: 28px; border-radius: 8px; flex: none;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: .9rem;
}
.bl-row > div { min-width: 0; flex: 1; }
.bl-row b { display: block; font-size: 13.5px; color: #fff; }
.bl-row .mono { display: block; font-size: 10.5px; color: #7c8db0; margin-top: 2px; }
.bl-row .tag { color: #f87171; }
.bl-row > i { color: #475569; font-style: normal; }

/* map */
.app-map { height: 150px; border-radius: 12px; overflow: hidden; }
.app-server > div b { display: block; font-size: 14px; color: #fff; }
.app-server .mono { display: block; font-size: 11px; color: #7c8db0; margin-top: 3px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; font-weight: 800; text-decoration: none; cursor: pointer; border: 1px solid transparent; font-family: inherit; }
.btn-sm { font-size: 13px; padding: 10px 16px; }
.btn-primary { background: linear-gradient(135deg, #0ea5e9, #2563eb); border-color: rgba(14, 165, 233, .5); color: #fff; }
.app-disconnect { width: 100%; margin-top: .7rem; background: #ff3b3b; border-color: #ff3b3b; color: #fff; }
.app-promo {
    margin-top: auto;
    padding: 16px; border-radius: 14px;
    background: linear-gradient(135deg, rgba(37, 99, 235, .22), rgba(124, 58, 237, .14));
    border: 1px solid rgba(96, 165, 250, .25);
}
.app-promo b { display: block; font-size: 14px; color: #fff; }
.app-promo b em { font-style: normal; color: #67e8f9; }
.app-promo span { display: block; margin-top: 6px; font-size: 12px; line-height: 1.6; color: #8b9bbd; }
.app-feature {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 15px; border-radius: 13px; text-decoration: none;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .14);
    transition: border-color .18s ease;
}
.app-feature:hover { border-color: rgba(34, 211, 238, .4); }
.app-feature > span { font-size: 17px; }
.app-feature b { font-size: 13.5px; color: #fff; }
.app-feature small { font-size: 11.5px; color: #7c8db0; }
.app-feature > i { margin-left: auto; color: #475569; font-style: normal; font-size: 18px; }

/* toolkit */
.app-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.app-stats > div {
    padding: 10px 8px; border-radius: 11px; text-align: center;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .12);
    min-width: 0;
}
.app-stats span { display: block; font-size: 9px; letter-spacing: .1em; color: #5b6b8c; }
.app-stats b { display: block; margin-top: 4px; font-size: 12px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.app-toolkit {
    padding: 16px; border-radius: 14px;
    background: rgba(3, 6, 14, .55);
    border: 1px solid rgba(148, 163, 184, .13);
    display: flex; flex-direction: column; gap: 12px;
}
.tool-head { display: flex; align-items: center; gap: 10px; }
.tool-head > span { font-size: 17px; }
.tool-head b { display: block; font-size: 13.5px; color: #fff; }
.tool-head small { display: block; font-size: 10.5px; color: #5b6b8c; }
.tool-live { margin-left: auto; color: #34d399; border: 1px solid rgba(52, 211, 153, .4); border-radius: 100px; padding: .15rem .5rem; font-size: .62rem; }
.tool-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tool-tabs span {
    text-align: center; font-size: 11.5px; color: #7c8db0;
    padding: 9px 6px; border-radius: 10px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(148, 163, 184, .12);
}
.tool-tabs span.active { color: #67e8f9; border-color: rgba(34, 211, 238, .4); background: rgba(34, 211, 238, .07); }
.tool-ring {
    width: 110px; height: 110px; margin: 2px auto; border-radius: 50%;
    display: grid; place-content: center; text-align: center;
    background: conic-gradient(#ef4444 0 40%, rgba(148, 163, 184, .15) 40% 100%);
    position: relative;
}
.tool-ring::before {
    content: ''; position: absolute; inset: 10px; border-radius: 50%;
    background: #0a1120;
}
.tool-ring b, .tool-ring span { position: relative; }
.tool-ring b { font-size: 24px; color: #f87171; }
.tool-ring b small { font-size: 12px; color: #5b6b8c; }
.tool-ring span { font-size: 11px; color: #7c8db0; }
.tool-toggles > div {
    display: flex; align-items: center; justify-content: space-between;
    padding: 9px 0; font-size: 12.5px; color: #94a3b8;
    border-bottom: 1px dashed rgba(148, 163, 184, .12);
}
.tool-toggles > div:last-child { border-bottom: 0; }
.tool-toggles i {
    font-style: normal; font-size: 10px; font-weight: 800; letter-spacing: .06em;
    padding: 3px 10px; border-radius: 999px;
    background: rgba(148, 163, 184, .12); color: #7c8db0;
    border: 1px solid rgba(148, 163, 184, .2);
}
.tool-toggles i.on { background: rgba(52, 211, 153, .14); color: #34d399; border-color: rgba(52, 211, 153, .4); }

/* ═══════════════════════════════════════════════════════════════════════════
   FULLWIDTH COUNTRY FLAG MARQUEE — one flex track per row holding the set
   twice (width:max-content), looping 0 → -50% so cards can never overlap
   and the seam never jumps. Pure CSS, pauses on hover.
═══════════════════════════════════════════════════════════════════════════ */

.divpn-flags {
    width: 100%;
    overflow: hidden;
    margin-top: 64px;
    background: transparent;
}
.divpn-flags-inner { position: relative; width: 100%; }
.divpn-rows {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    width: 100%;
}
.divpn_row { position: relative; overflow: hidden; height: 5.6rem; }
.divpn_track {
    display: flex;
    gap: 40px;
    width: max-content;
    padding-right: 40px;
    animation: divpn_loop_right 230s linear infinite;
    will-change: transform;
}
.divpn_track.is-left { animation-name: divpn_loop_left; }
.divpn-flags:hover .divpn_track { animation-play-state: paused; }

.divpn_card {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: .8rem 1.2rem;
    background-color: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: .8rem;
    color: #fff;
    min-width: fit-content;
}
.divpn_flag_img {
    width: 40px;
    height: 30px;
    object-fit: cover;
    object-position: center center;
    display: block;
    flex: 0 0 auto;
    border-radius: 2px;
}
.divpn_flag_name {
    font-size: 1.4rem;
    line-height: 1.4;
    font-weight: 400;
    color: rgba(255, 255, 255, .8);
    white-space: nowrap;
}
.divpn_grad_start,
.divpn_grad_end {
    display: none;
    position: absolute;
    top: 0; bottom: 0;
    width: 10rem;
    z-index: 1;
    pointer-events: none;
}
.divpn_grad_start { inset-inline-start: 0; background: linear-gradient(90deg, #00040d 0, rgba(0, 4, 13, 0)); }
.divpn_grad_end { inset-inline-end: 0; background: linear-gradient(270deg, #00040d 0, rgba(0, 4, 13, 0)); }
@media (min-width: 48em) {
    .divpn_grad_start, .divpn_grad_end { display: block; }
}

@keyframes divpn_loop_right {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes divpn_loop_left {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}

/* connected Denmark preview on the app map card */
.app-feature.is-alert {
    border-color: rgba(239, 68, 68, .55);
    background: rgba(239, 68, 68, .06);
}
.app-feature.is-alert:hover { border-color: rgba(239, 68, 68, .8); }
.app-mapwrap { position: relative; border-radius: 12px; overflow: hidden; }
.app-mapwrap.is-full {
    position: fixed; inset: 14px; z-index: 99990;
    border: 1px solid rgba(34, 211, 238, .35);
    box-shadow: 0 40px 120px rgba(0, 0, 0, .7);
    background: #070d1a;
}
.app-mapwrap.is-full .app-map { height: 100%; }
.app-full {
    position: absolute; top: 8px; right: 8px; z-index: 6;
    width: 30px; height: 30px; display: grid; place-items: center;
    border-radius: 9px; cursor: pointer;
    font-size: 12px; color: #cbd5e1;
    background: rgba(8, 13, 24, .86);
    border: 1px solid rgba(148, 163, 184, .25);
}
.app-full:hover { color: #fff; border-color: rgba(56, 189, 248, .6); }
.app-mappill {
    position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%);
    z-index: 6; display: flex; align-items: center; gap: 7px;
    white-space: nowrap; padding: 5px 12px; border-radius: 100px;
    background: rgba(0, 229, 255, .92); color: #001016;
    font-size: 11px; font-weight: 700;
    box-shadow: 0 0 12px rgba(0, 229, 255, .6);
}
.app-mappill img { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; }
.app-mappill span { font-weight: 600; opacity: .75; }
.app-maptime {
    position: absolute; right: 10px; bottom: 10px; z-index: 6;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11.5px; font-weight: 700; color: #a5f3fc;
    background: rgba(2, 6, 14, .78);
    border: 1px solid rgba(148, 163, 184, .25);
    border-radius: 8px; padding: 3px 9px;
}

/* (hero globe v1 rules superseded by the v2 block below) */

/* Why DI VPN title over the feature cards */
.feat-title {
    font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 800; color: #fff;
    letter-spacing: -.02em; margin-bottom: 26px;
}

/* hero globe v2: interactive sphere, draggable, labels ride the points.
   Positioning lives in the HERO V3 grid block below; only the pieces are
   defined here so the two never fight. */
.hg-label {
    position: absolute; left: 0; top: 0; z-index: 6;
    padding: 7px 13px; border-radius: 12px; white-space: nowrap;
    background: rgba(8, 13, 26, .92);
    border: 1px solid rgba(148, 163, 184, .25);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .5);
    opacity: 0; transition: opacity .25s ease; pointer-events: none;
}
.hg-label b { display: block; font-size: 12.5px; font-weight: 800; color: #fff; }
.hg-label span { display: block; font-size: 11px; color: #7c8db0; margin-top: 1px; }
.hg-label.is-you { border-color: rgba(255, 60, 80, .5); }
.hg-label.is-you span { color: #ff5c72; }
.hg-static {
    position: absolute; left: 6%; bottom: 9%; z-index: 6;
    padding: 8px 14px; border-radius: 12px;
    background: rgba(8, 13, 26, .9);
    border: 1px solid rgba(52, 211, 153, .35);
    font-size: 11.5px; color: #fff; white-space: nowrap;
}
.hg-static b { color: #34d399; margin-right: 6px; }
.hg-static span { color: #8b9bbd; }

/* in-flow globe: no overlap possible, text left / globe right */
.hero-globe {
    position: relative; top: auto; right: auto;
    width: min(840px, 100%); height: min(840px, 100%);
    aspect-ratio: 1; margin: 0; z-index: 5; pointer-events: none;
}
.hero-globe canvas { display: block; width: 100%; height: 100%; touch-action: none; pointer-events: auto; cursor: grab; }

/* ═══════════════════════════════════════════════════════════════════════════
   HERO V2 — left copy + right in-flow globe + stats bar (image-1).
   The global earth photo stays off on this page; the hero glows instead.
═══════════════════════════════════════════════════════════════════════════ */


.hero-section { overflow: hidden; }
.hero-section::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(900px 520px at 6% 4%, rgba(124, 58, 237, .22), transparent 60%),
        radial-gradient(900px 560px at 96% 20%, rgba(34, 211, 238, .12), transparent 62%);
}
.hero-grid {
    position: relative; z-index: 10;
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
    gap: 44px; align-items: center;
    width: 100%; max-width: 1220px; margin: 0 auto; padding: 0 24px;
}
.hero-copy { text-align: left; }
.hero-live {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 6px 16px 6px 7px; border-radius: 999px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(148, 163, 184, .2);
    font-size: 12.5px; color: #8b9bbd; margin-bottom: 26px;
}
.hero-live em {
    font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .06em;
    color: #04121c; background: #34d399; border-radius: 999px; padding: 3px 11px;
}
.hero-h1 {
    font-size: clamp(3rem, 6vw, 4.9rem); font-weight: 800; color: #fff;
    letter-spacing: -.03em; line-height: 1.02; margin-bottom: 22px;
}
.hero-lead { font-size: 17px; line-height: 1.7; color: #93a4c8; max-width: 46ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 24px; }
.hero-btn-primary {
    display: inline-flex; align-items: center; padding: 15px 30px; border-radius: 14px;
    font-size: 15px; font-weight: 800; color: #04121c; text-decoration: none;
    background: linear-gradient(135deg, #22d3ee, #818cf8);
    transition: filter .18s ease;
}
.hero-btn-primary:hover { filter: brightness(1.1); }
.hero-btn-ghost {
    display: inline-flex; align-items: center; padding: 15px 28px; border-radius: 14px;
    font-size: 15px; font-weight: 700; color: #e2e8f0; text-decoration: none;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(148, 163, 184, .22);
}
.hero-btn-ghost:hover { border-color: rgba(34, 211, 238, .5); }
.hero-checks {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; gap: 8px 22px;
}
.hero-checks li { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #7c8db0; }
.hero-checks i { color: #34d399; font-size: 11px; }

/* in-flow globe: no overlap possible, text left / globe right */
.hero-globe {
    position: relative; top: auto; right: auto;
    width: min(560px, 100%); height: min(560px, 100%);
    aspect-ratio: 1; margin: 0; z-index: 5; pointer-events: none;
}
.hero-stats {
    position: relative; z-index: 10;
    display: flex; align-items: center; gap: 34px; flex-wrap: wrap;
    width: 100%; max-width: 1220px; margin: 56px auto 0; padding: 22px 24px 0;
    border-top: 1px solid rgba(148, 163, 184, .14);
}
.hero-stats > div { display: flex; align-items: baseline; gap: 9px; }
.hero-stats b { font-size: 21px; font-weight: 800; color: #fff; }
.hero-stats span { font-size: 13px; color: #7c8db0; }
.hero-stats .is-platforms { margin-left: auto; }

@media (max-width: 1023px) {
    .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .hero-globe { width: min(510px, 86vw); height: min(510px, 86vw); margin: 30px auto 0; }
    .hero-stats .is-platforms { margin-left: 0; }
}

/* news: no badge, +2px everywhere, regular titles */
#news .po-body time { font-size: 13.5px; }
#news .po-body h2 { font-size: 19px; font-weight: 400; }
#news .po-body p { font-size: 15.5px; }

/* hero sits closer to the top; Why cards are white at 10% over the bg */
.hero-section { padding-top: 104px; }
.feat-card, .feat-card.feat-highlight {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .12);
}

/* Hero / Oct 24 — keep the real globe, add one live-data route at a time. */
.hero-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    min-width: 0;
    width: 100%;
}
.hero-visual .hero-globe {
    width: min(520px, 100%);
    height: auto;
    aspect-ratio: 1;
    margin: 0 auto;
}
.hero-visual .hg-label:not(.is-you) {
    border-color: rgba(34, 211, 238, .52);
    background: rgba(9, 20, 39, .96);
}
.hero-visual .hg-label:not(.is-you) span { color: #94a3b8; }
.hero-visual .hg-label.is-you { border-color: rgba(251, 113, 133, .6); }
.hero-visual .hg-label { z-index: 6; }
.hg-route {
    width: 100%;
    min-height: 66px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(11, 20, 39, .88);
    padding: 13px 15px;
    font-size: 13px;
    color: #eaf0fa;
}
.hg-route-origin { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.hg-route-origin b, .hg-route-destination { font-weight: 750; }
.hg-route-origin small { color: #fca5a5; font-size: 11px; }
.hg-dot {
    display: inline-block; width: 9px; height: 9px; flex: none;
    border-radius: 50%; background: #fb7185; box-shadow: 0 0 11px rgba(251,113,133,.6);
}
.hg-route-arrow { color: #22d3ee; font-size: 12px; }
.hg-route-destination { color: #c9eef9; overflow-wrap: anywhere; }
.hg-preview-badge {
    margin-left: auto;
    border: 1px solid rgba(52,211,153,.32);
    background: rgba(52,211,153,.1);
    color: #a7f3d0;
    padding: 5px 9px;
    border-radius: 100px;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
}
.hg-choices {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}
.hg-choices[hidden] { display: none; }
.hg-choice {
    font: inherit;
    border: 1px solid rgba(148,163,184,.24);
    background: rgba(255,255,255,.045);
    color: #c9d5ea;
    padding: 10px 14px;
    min-height: 42px;
    border-radius: 100px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 650;
    opacity: .52;
    transform: scale(.97);
    transition: opacity .22s ease, transform .22s ease, border-color .2s ease, background .2s ease;
}
.hg-choice:hover, .hg-choice:focus-visible {
    border-color: rgba(34,211,238,.6);
    outline-offset: 3px;
}
.hg-choice.is-active {
    opacity: 1;
    transform: scale(1.06);
    border-color: rgba(34,211,238,.75);
    background: rgba(34,211,238,.14);
    color: #f0fdff;
    box-shadow: 0 5px 22px rgba(34,211,238,.12);
}
.hg-route-note {
    color: #8293ae;
    font-size: 11px;
    line-height: 1.5;
    text-align: center;
    margin: -4px 0 0;
}
.hero-globe.hg-unavailable { display: none; }
@media (max-width: 1023px) {
    .hero-visual { width: 100%; max-width: 620px; margin-inline: auto; }
    .hero-visual .hero-globe { width: min(490px, 82vw); }
}
@media (max-width: 520px) {
    .hg-route { gap: 8px; }
    .hg-preview-badge { margin-left: 0; }
    .hg-choices { gap: 6px; }
    .hg-choice { padding: 8px 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .hg-choice { transition: none; transform: none; }
}


/* Recognition of a DI VPN exit does not prove the device is protected. */
.hero-visual .hg-label.is-you.is-vpn { border-color: rgba(52,211,153,.55); }
.hero-visual .hg-label.is-you.is-vpn span { color: #6ee7b7; }
.hero-visual .hg-label.is-you.is-neutral { border-color: rgba(148,163,184,.38); }
.hero-visual .hg-label.is-you.is-neutral span { color: #a1b0c5; }
.hg-route.is-known .hg-dot { background: #34d399; box-shadow: 0 0 11px rgba(52,211,153,.5); }
.hg-route.is-known .hg-route-origin small { color: #6ee7b7; }
.hg-route.is-neutral .hg-dot { background: #94a3b8; box-shadow: none; }
.hg-route.is-neutral .hg-route-origin small { color: #a1b0c5; }

/* ══ 2026-10-28 — MOBILE: "Why DI VPN" kartları endişdə 2 sırada (col-6)
   Tələb: mobil versiyada 1 sırada 1 kart əvəzinə 2 kart — səhifə
   uzantısı qısalır, desktop (md:grid-cols-12) dəyişmir. ══ */
@media (max-width: 767px) {
    #features .feat-card {
        padding: 16px;
        min-height: 180px;
        border-radius: 18px;
    }
    #features .feat-card h3 {
        font-size: 15px !important;
        line-height: 1.3;
        margin-bottom: 6px !important;
    }
    #features .feat-card p {
        font-size: 12px;
        line-height: 1.5;
    }
    #features .feat-icon-bg {
        font-size: 72px;
        top: -6px;
        right: -6px;
    }
}

/* Homepage news carousel — clearer blue controls with extra breathing room. */
#news .po-slider-arrows {
    width: 42px;
    height: 42px;
    border: 1.5px solid rgba(59, 130, 246, .95);
    background: rgba(5, 15, 32, .96);
    color: #7dd3fc;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .10), 0 7px 20px rgba(0, 0, 0, .38);
    transition: color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
#news .po-slider-arrows:hover,
#news .po-slider-arrows:focus-visible {
    color: #fff;
    background: rgba(29, 78, 216, .92);
    border-color: #60a5fa;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .16), 0 8px 24px rgba(0, 0, 0, .42);
    outline: none;
}
#news .po-slider-arrows.is-prev { left: -47px; }
#news .po-slider-arrows.is-next { right: -47px; }
@media (min-width: 641px) and (max-width: 900px) {
    #news .po-slider-arrows.is-prev { left: -10px; }
    #news .po-slider-arrows.is-next { right: -10px; }
}
@media (max-width: 640px) {
    #news .po-slider-arrows {
        width: 34px;
        height: 34px;
        border-width: 1.5px;
    }
    #news .po-slider-arrows.is-prev { left: 4px; }
    #news .po-slider-arrows.is-next { right: 4px; }
}
@media (prefers-reduced-motion: reduce) {
    #news .po-slider-arrows { transition: none; }
}

/* Retained mobile refinements for the unchanged extension, pricing and news sections. */
@media (max-width: 767px) {
    #extension.ext-showcase { padding: 48px 0 44px; }
    #extension .text-center.mb-16 { margin-bottom: 26px; }
    #extension .text-center h2 { font-size: 29px; line-height: 1.12; }
    #extension .text-center p { font-size: 13px; line-height: 1.55; }
    #extension > .max-w-7xl { padding-inline: 14px; }
    .ext-home-map .ext-map-canvas { height: 205px; }
    #pricing { padding: 54px 14px !important; }
    #news { padding: 50px 14px !important; }
    #news .max-w-6xl > .flex { gap: 12px; margin-bottom: 22px; }
    #news .max-w-6xl > .flex h2 { margin-top: 0; font-size: 25px; line-height: 1.2; }
}

/* Free-account CTA banner directly below homepage pricing. */
.home-free-cta {
    position: relative;
    z-index: 1;
    margin: -42px auto 0;
    padding: 0 24px 54px;
}
.home-free-cta-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    width: min(1120px, 100%);
    margin: 0 auto;
    padding: 30px clamp(22px, 4vw, 46px);
    overflow: hidden;
    border: 1px solid rgba(34, 211, 238, .24);
    border-radius: 22px;
    background:
        radial-gradient(90% 180% at 0% 0%, rgba(34, 211, 238, .14), transparent 58%),
        linear-gradient(115deg, rgba(10, 27, 48, .98), rgba(5, 13, 28, .98));
    box-shadow: 0 22px 60px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .035);
}
.home-free-cta-copy { min-width: 0; }
.home-free-cta-kicker {
    display: block;
    margin: 0 0 8px;
    color: #67e8f9;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .2em;
}
.home-free-cta-copy h2 {
    margin: 0 0 7px;
    color: #f8fbff;
    font-size: clamp(22px, 3vw, 31px);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.18;
}
.home-free-cta-copy p {
    max-width: 58ch;
    margin: 0;
    color: #9aabc4;
    font-size: 13px;
    line-height: 1.55;
}
.home-free-cta-button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 11px;
    min-height: 50px;
    padding: 0 22px;
    border: 1px solid rgba(103, 232, 249, .72);
    border-radius: 12px;
    background: linear-gradient(110deg, #67e8f9, #38bdf8 58%, #60a5fa);
    box-shadow: 0 9px 26px rgba(34, 211, 238, .2);
    color: #061321;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.home-free-cta-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 13px 32px rgba(34, 211, 238, .3);
    filter: brightness(1.06);
}
.home-free-cta-button:focus-visible {
    outline: 3px solid rgba(125, 211, 252, .65);
    outline-offset: 4px;
}
.home-free-cta-button i { font-size: 12px; }
@media (max-width: 767px) {
    .home-free-cta { margin-top: -18px; padding: 0 14px 38px; }
    .home-free-cta-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding: 23px 19px;
        border-radius: 18px;
    }
    .home-free-cta-copy h2 { font-size: 23px; }
    .home-free-cta-copy p { font-size: 12px; }
    .home-free-cta-button { width: 100%; min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
    .home-free-cta-button { transition: none; }
}


/* Connection Information: readable values and explicit amber visibility states. */
.ext-home-info .ext-map-rows.is-single > div {
    display:grid !important;
    grid-template-columns:minmax(82px,.72fr) minmax(0,1.5fr) auto;
    align-items:center; gap:10px;
}
.ext-home-info .ext-map-rows.is-single .is-pill {
    min-width:0; max-width:100%; justify-self:stretch;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    color:#e5eef8; background:rgba(148,163,184,.08);
    border:1px solid rgba(148,163,184,.15); border-radius:8px;
    padding:6px 10px; font-size:12px;
}
.ext-home-info .ext-map-rows.is-single .is-pill.is-di-network {
    color:#9be8ff; background:rgba(8,145,178,.13);
    border-color:rgba(34,211,238,.28);
}
.ext-info-state {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:62px; padding:4px 7px; border-radius:7px;
    font-size:9px; font-weight:850; letter-spacing:.04em; white-space:nowrap;
}
.ext-info-state.is-visible {
    color:#fcd34d; background:rgba(245,158,11,.15);
    border:1px solid rgba(245,158,11,.34);
}
.ext-info-state.is-di {
    color:#6ee7b7; background:rgba(16,185,129,.12);
    border:1px solid rgba(52,211,153,.3);
}
.ext-home-anonymity-cta {
    display:flex; align-items:center; justify-content:center; gap:10px;
    min-height:44px; margin-top:15px; padding:10px 14px;
    border:1px solid rgba(34,211,238,.28); border-radius:11px;
    color:#a5f3fc !important; background:linear-gradient(100deg,rgba(8,145,178,.18),rgba(37,99,235,.14));
    font-size:12px; font-weight:800; text-decoration:none !important;
}
.ext-home-anonymity-cta i:last-child { margin-left:auto; }
.ext-home-anonymity-cta:hover { border-color:rgba(34,211,238,.55); background:rgba(8,145,178,.22); }
@media (max-width: 600px) {
    .ext-home-live { gap:14px; }
    .ext-home-map .ext-map-canvas { height:210px; }
    .ext-home-map .ext-map-card { border-radius:15px; }
    .ext-home-info .ext-map-info { padding:15px; }
    .ext-home-info .ext-map-rows.is-single > div {
        grid-template-columns:72px minmax(0,1fr) auto;
        gap:6px; min-height:43px; padding:7px 0;
    }
    .ext-home-info .ext-map-rows.is-single dt { font-size:10.5px; }
    .ext-home-info .ext-map-rows.is-single .is-pill { padding:5px 7px; font-size:10px; }
    .ext-info-state { min-width:0; padding:4px 5px; font-size:8px; }
    .ext-home-anonymity-cta { min-height:40px; font-size:11px; }
}
@media (max-width: 380px) {
    .ext-home-info .ext-map-rows.is-single > div { grid-template-columns:63px minmax(0,1fr) auto; gap:5px; }
    .ext-home-info .ext-map-rows.is-single dt { font-size:9.5px; }
    .ext-info-state { font-size:7.5px; }
}


/* Status card for a request whose public IP matches a live DI VPN exit. */
.ext-home-protection-status { margin-top:16px; padding:13px; border:1px solid rgba(148,163,184,.14); border-radius:13px; background:rgba(2,8,20,.48); }
.ext-home-protection-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.ext-home-protection-head b { display:inline-flex; align-items:center; gap:8px; color:#e7f6ff; font-size:12px; }
.ext-home-protection-head b i { color:#67e8f9; }
.ext-home-protection-head small { color:#778ba9; font-size:9px; text-align:right; }
.ext-home-protection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ext-home-protection-grid > div { display:flex; align-items:center; justify-content:space-between; gap:7px; min-width:0; padding:8px 9px; border-radius:8px; background:rgba(255,255,255,.025); }
.ext-home-protection-grid span { min-width:0; color:#b7c7da; font-size:10.5px; line-height:1.3; }
.ext-home-protection-grid b { flex:none; display:inline-flex; align-items:center; gap:4px; font-size:8px; font-weight:900; letter-spacing:.03em; white-space:nowrap; }
.ext-home-protection-grid .is-good b { color:#6ee7b7; }
.ext-home-protection-grid .is-visible b { color:#fbbf24; }
.ext-home-protection-grid .is-pending b { color:#f59e0b; }
.ext-home-protection-grid .is-off b { color:#fb7185; }
.ext-home-protection-note { margin:10px 0 0; color:#778ba9; font-size:9px; line-height:1.5; }
@media (max-width:600px) {
    .ext-home-info { display:block !important; visibility:visible !important; opacity:1 !important; order:2; }
    .ext-home-map { order:1; }
    .ext-home-live { grid-template-columns:minmax(0,1fr) !important; }
    .ext-home-info .ext-map-info { padding:14px; }
    .ext-map-bar-clock { flex:0 0 100%; width:100%; justify-content:center !important; align-items:center; margin:5px auto 0; text-align:center; }
    .ext-map-bar-date, .ext-map-bar-time { text-align:center; }
    .ext-home-protection-head { align-items:flex-start; }
    .ext-home-protection-grid > div { padding:7px; }
    .ext-home-protection-grid span { font-size:9px; }
    .ext-home-protection-grid b { font-size:7px; }
}


/* Hidden by default; only display arrow controls in the mobile carousel layout. */
.app-carousel-controls { display:none; }

/* 2026-11-01 homepage mobile privacy + carousel refinements. */
.ext-connection-warning { color:#f59e0b !important; }
.ext-info-state.is-needs {
  color:#fbbf24; background:rgba(245,158,11,.14);
  border:1px solid rgba(245,158,11,.34);
}
.ext-home-privacy-hint {
  margin:12px 0 0; color:#9aaec7; font-size:11px; line-height:1.5;
}
.ext-home-anonymity-cta { margin-top:12px; }
.ext-home-map .ext-map-bar { border-top:0 !important; }
@media (max-width:767px) {
  #features {
    padding-bottom:56px !important;
    margin-bottom:0 !important;
  }
  .ext-home-map .ext-map-bar { border-top:0 !important; }
  .ext-home-info .ext-map-info-title { font-size:13px; }
  .ext-home-info .ext-map-rows.is-single > div {
    grid-template-columns:72px minmax(0,1fr) auto !important;
    gap:6px !important; min-height:42px; padding:6px 0;
  }
  .ext-home-info .ext-map-rows.is-single dt { font-size:10.5px !important; }
  .ext-home-info .ext-map-rows.is-single .is-pill {
    padding:5px 7px !important; font-size:10px !important;
  }
  .ext-info-state { min-width:0; padding:4px 5px; font-size:8px; }
  .ext-home-privacy-hint { font-size:10px; }
  #app-screens { overflow:hidden; }
  .vpn-app-carousel { position:relative; }
  .app-carousel-controls {
    display:flex; justify-content:flex-end; gap:8px;
    margin:-16px 0 12px;
  }
  .app-carousel-controls button {
    display:grid; place-items:center; width:34px; height:34px;
    border-radius:50%; border:1px solid rgba(34,211,238,.35);
    color:#a5f3fc; background:rgba(8,18,35,.92);
    box-shadow:0 5px 16px rgba(0,0,0,.28);
  }
  .app-carousel-controls button:active { background:rgba(8,145,178,.28); }
  .vpn-app-grid[data-app-screens-track] {
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    grid-template-columns:none !important; align-items:stretch;
    gap:14px !important; width:100%; overflow-x:auto; overflow-y:hidden;
    padding:2px 2px 12px; margin:0;
    scroll-snap-type:x mandatory; scroll-padding-inline:2px;
    -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    touch-action:pan-x pan-y; scrollbar-width:none;
  }
  .vpn-app-grid[data-app-screens-track]::-webkit-scrollbar { display:none; }
  .vpn-app-grid[data-app-screens-track] > .vpn-app-card {
    flex:0 0 67% !important; width:67% !important; max-width:67% !important;
    min-width:225px; scroll-snap-align:start; scroll-snap-stop:always;
  }
}
@media (max-width:380px) {
  .vpn-app-grid[data-app-screens-track] > .vpn-app-card {
    flex-basis:65% !important; width:65% !important; max-width:65% !important;
    min-width:190px;
  }
}

/* The old map action has been removed; do not leave its card outline/separator. */
.ext-home-map .ext-map-card { border:0 !important; box-shadow:none !important; }


/* Connection information and detailed tool links below the live location map. */
.ext-home-tool-recommendations { margin-top:14px; }
.ext-home-recommend-title {
  display:block; margin-bottom:8px; color:#9db6cf; font-size:10px;
  font-weight:800; letter-spacing:.08em; text-transform:uppercase;
}
.ext-home-recommend-list.is-detailed {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px;
}
.ext-home-recommend-list.is-detailed a {
  display:flex; flex-direction:column; align-items:flex-start; gap:3px;
  min-width:0; min-height:58px; padding:9px 10px; border-radius:10px;
  border:1px solid rgba(34,211,238,.18); color:#a5e9f5;
  background:rgba(5,35,56,.24); text-decoration:none;
}
.ext-home-recommend-list.is-detailed a strong { color:#9cecf8; font-size:10px; line-height:1.25; }
.ext-home-recommend-list.is-detailed a small { color:#829ab2; font-size:9px; font-weight:500; line-height:1.4; }
.ext-home-recommend-list.is-detailed a:hover { border-color:rgba(34,211,238,.55); background:rgba(5,55,78,.36); color:#fff; }
.ext-home-anonymity-cta { margin-top:14px; }
.app-map canvas, .ext-home-map .ext-map-canvas canvas, #locationMap canvas { touch-action:pan-y !important; }
.app-map canvas { pointer-events:none !important; }
.app-full, .ext-map-tools { display:none !important; }
.app-carousel-controls { display:none; }
.app-carousel-dots { display:none; }
@media (max-width:767px) {
  .ext-home-tool-recommendations { margin-top:12px; }
  .ext-home-recommend-list.is-detailed { grid-template-columns:1fr; gap:6px; }
  .ext-home-recommend-list.is-detailed a { min-height:48px; padding:8px 9px; }
  .ext-home-recommend-list.is-detailed a strong { font-size:10px; }
  .ext-home-recommend-list.is-detailed a small { font-size:9px; }
  #app-screens { overflow:hidden; }
  .vpn-app-carousel { position:relative; }
  .vpn-app-grid[data-app-screens-track] {
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    grid-template-columns:none !important; align-items:stretch; gap:12px !important;
    width:100%; overflow-x:auto; overflow-y:hidden; padding:2px 1px 7px; margin:0;
    scroll-snap-type:x mandatory; scroll-padding-inline:1px;
    -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    touch-action:pan-x pan-y; scrollbar-width:none;
  }
  .vpn-app-grid[data-app-screens-track]::-webkit-scrollbar { display:none; }
  .vpn-app-grid[data-app-screens-track] > .vpn-app-card {
    flex:0 0 100% !important; width:100% !important; max-width:100% !important;
    min-width:100% !important; scroll-snap-align:start; scroll-snap-stop:always;
    padding:14px; gap:11px;
  }
  .app-carousel-controls { display:flex; align-items:center; justify-content:center; gap:15px; margin:11px auto 0; width:100%; }
  .app-carousel-controls button {
    display:grid; place-items:center; width:34px; height:34px; flex:none;
    border-radius:50%; border:1px solid rgba(34,211,238,.35); color:#a5f3fc;
    background:rgba(8,18,35,.92); box-shadow:0 5px 16px rgba(0,0,0,.28);
  }
  .app-carousel-dots { display:flex; align-items:center; justify-content:center; gap:7px; min-width:40px; }
  .app-carousel-dot { display:block; width:7px; height:7px; padding:0; border:0; border-radius:99px; background:rgba(148,163,184,.38); transition:width .2s,background .2s; }
  .app-carousel-dot.is-active { width:22px; background:#22d3ee; }
  .app-mapwrap { border-radius:12px; }
  .app-map { height:190px !important; }
  .app-mappill { max-width:calc(100% - 20px); overflow:hidden; text-overflow:ellipsis; }
  #features { margin-bottom:0 !important; padding-bottom:56px !important; }
  .ext-home-map .ext-map-card { border:0 !important; box-shadow:none !important; }
}


@media (max-width:767px) {
  .ext-home-map .ext-map-status { display:none !important; }
}
