/* ==========================================================================
   translate.css — "Translate this page" modal + Google widget clean-up.
   Colours follow the active theme: user area uses the --u-* tokens (dark/light),
   public pages fall back to the navy/blue palette.
   ========================================================================== */

/* ---- 1. Google's UI: never visible -------------------------------------------------
   The top banner, its iframe, the hover tooltip and the word-highlight are all hidden, and
   Google's inline `body { top: 40px }` is cancelled, so nothing can push or cover the nav. */
iframe.goog-te-banner-frame,
.goog-te-banner-frame,
body > .skiptranslate,
body > iframe.skiptranslate,
.VIpgJd-ZVi9od-ORHb-OEVmcd,            /* banner (current Google class names) */
.VIpgJd-ZVi9od-aZ2wEe-wOHMyf,          /* "translating…" bubble */
.VIpgJd-yAWNEb-L7lbkb,                 /* hover tooltip */
.goog-te-balloon-frame,
#goog-gt-tt,
.goog-tooltip,
.goog-tooltip:hover {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
}
/* Google sets an inline `top` on <body> to make room for its banner; cancel it. */
body { top: 0 !important; }
.goog-text-highlight {
    background: none !important;
    box-shadow: none !important;
}
/* Google's own dropdown lives off-screen; our list drives it. */
.gt-engine {
    position: fixed; left: -9999px; top: 0;
    width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none;
}

/* ---- 2. Header buttons ---------------------------------------------------------- */
.gt-navbtn {                      /* public marketing nav */
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; padding: 0; border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .04); color: #fff; cursor: pointer;
    transition: background .2s ease, border-color .2s ease, transform .15s ease;
}
.gt-navbtn:hover { background: var(--blue-600, #1652f0); border-color: transparent; transform: translateY(-1px); }
.homenavbtn.gt-homebtn { cursor: pointer; background: transparent; }
button.usernavicon { font-family: inherit; }

/* ---- 3. Modal --------------------------------------------------------------------- */
.gt-modal {
    --gt-surface: var(--u-surface, #0f1f38);
    --gt-surface2: var(--u-surface2, #132844);
    --gt-text: var(--u-text, #f2f3fb);
    --gt-muted: var(--u-textmuted, #9fb0c8);
    --gt-border: var(--u-border, #23416e);
    --gt-accent: var(--u-accent, #2f6bff);
    --gt-activetext: var(--u-activetext, #ffffff);

    display: none; position: fixed; inset: 0; z-index: 100000;
    align-items: center; justify-content: center; padding: 16px;
    background: rgba(5, 8, 16, .72);
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.gt-modal.show { display: flex; animation: gt-fade .18s ease; }
@keyframes gt-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gt-rise { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
html.gt-open { overflow: hidden; }

.gt-box {
    width: 100%; max-width: 560px; max-height: min(86vh, 680px);
    display: flex; flex-direction: column;
    background: var(--gt-surface); color: var(--gt-text);
    border: 1px solid var(--gt-border); border-radius: 18px; overflow: hidden;
    box-shadow: 0 28px 60px rgba(0, 0, 0, .45);
    animation: gt-rise .22s ease;
}
.gt-head {
    display: flex; align-items: center; gap: 14px; padding: 18px 20px;
    border-bottom: 1px solid var(--gt-border);
    background:
        radial-gradient(420px 120px at 0% 0%, color-mix(in srgb, var(--gt-accent) 28%, transparent), transparent 70%),
        var(--gt-surface);
}
.gt-icon {
    width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--gt-accent); color: #fff; font-size: 1.05rem;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--gt-accent) 45%, transparent);
}
.gt-head h5 { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--gt-text); }
.gt-head p  { margin: 2px 0 0; font-size: .78rem; color: var(--gt-muted); }
.gt-close {
    margin-left: auto; width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--gt-surface2); border: 1px solid var(--gt-border);
    color: var(--gt-text); cursor: pointer; transition: background .2s ease, color .2s ease;
}
.gt-close:hover { background: var(--gt-accent); color: #fff; border-color: var(--gt-accent); }

.gt-searchwrap { position: relative; padding: 14px 20px 6px; }
.gt-searchwrap i {
    position: absolute; left: 34px; top: 50%; transform: translateY(-30%);
    color: var(--gt-muted); font-size: .85rem; pointer-events: none;
}
.gt-search {
    width: 100%; padding: 11px 14px 11px 38px; font-size: .92rem; font-family: inherit;
    color: var(--gt-text); background: var(--gt-surface2);
    border: 1px solid var(--gt-border); border-radius: 12px; outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.gt-search::placeholder { color: var(--gt-muted); }
.gt-search:focus { border-color: var(--gt-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gt-accent) 25%, transparent); }

.gt-status { display: none; margin: 8px 20px 0; padding: 9px 12px; font-size: .82rem; border-radius: 10px;
    background: color-mix(in srgb, var(--gt-accent) 14%, transparent); color: var(--gt-text); }
.gt-status.show { display: block; }
.gt-status.error { background: rgba(224, 97, 106, .16); color: #ff9aa2; }

.gt-list {
    flex: 1; overflow-y: auto; padding: 12px 20px 8px;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start;
    scrollbar-width: thin; scrollbar-color: var(--gt-border) transparent;
}
.gt-lang {
    display: flex; align-items: center; gap: 10px; min-width: 0; padding: 9px 10px; text-align: left;
    background: var(--gt-surface2); color: var(--gt-text); font-family: inherit;
    border: 1px solid var(--gt-border); border-radius: 12px; cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .12s ease;
}
.gt-lang:hover { border-color: var(--gt-accent); transform: translateY(-1px); }
.gt-lang.active { border-color: var(--gt-accent); background: color-mix(in srgb, var(--gt-accent) 16%, var(--gt-surface2)); }
.gt-lang-original { grid-column: 1 / -1; }
.gt-code {
    flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    font-size: .72rem; font-weight: 700; letter-spacing: .02em;
    background: var(--gt-surface); border: 1px solid var(--gt-border); color: var(--gt-muted);
}
.gt-lang.active .gt-code { background: var(--gt-accent); border-color: var(--gt-accent); color: #fff; }
.gt-names { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.gt-names b { font-size: .86rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-names small { font-size: .74rem; color: var(--gt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-tick { display: none; color: var(--gt-accent); font-size: .8rem; }
.gt-lang.active .gt-tick { display: block; }
.gt-empty { display: none; padding: 26px 20px; text-align: center; color: var(--gt-muted); font-size: .88rem; }

.gt-foot {
    padding: 11px 20px; border-top: 1px solid var(--gt-border);
    font-size: .74rem; color: var(--gt-muted); text-align: center;
}

@media (max-width: 600px) {
    .gt-modal { align-items: flex-end; padding: 0; }
    .gt-box { max-width: 100%; max-height: 88vh; border-radius: 20px 20px 0 0; border-bottom: 0; }
    .gt-list { grid-template-columns: 1fr; }
}

/* ---- Public-site theme (dark green / lime / gold) ---- */
.gt-modal.gt-public {
    --gt-surface: #0C2017; --gt-surface2: #123125; --gt-text: #ffffff; --gt-muted: #A9BDB0;
    --gt-border: #24503C; --gt-accent: #93DF13; --gt-activetext: #0C2117;
    background: rgba(2, 10, 6, .78);
    font-family: "Poppins", "Segoe UI", sans-serif;
}
.gt-public .gt-box { border-color: rgba(198, 160, 82, .35); border-top: 3px solid #C6A052; box-shadow: 0 28px 70px rgba(0, 0, 0, .6); }
.gt-public .gt-head { background: radial-gradient(420px 120px at 0% 0%, rgba(147, 223, 19, .16), transparent 70%), linear-gradient(165deg, #0E2C20, #0A1B13); }
.gt-public .gt-icon { background: linear-gradient(180deg, #A9EE34, #93DF13); color: #0C2117; box-shadow: 0 8px 20px -8px rgba(147, 223, 19, .7); }
.gt-public .gt-close:hover { color: #0C2117; }
.gt-public .gt-lang.active { background: rgba(147, 223, 19, .12); }
.gt-public .gt-lang.active .gt-code { color: #0C2117; }
.gt-public .gt-lang:hover { background: rgba(147, 223, 19, .06); }
.gt-public .gt-search:focus { box-shadow: 0 0 0 3px rgba(147, 223, 19, .22); }
.gt-public .gt-foot { color: #8FA598; }
