// ==UserScript== // @name Steam GameStatus // @name:ru Steam GameStatus // @name:zh-CN Steam GameStatus // @name:es Steam GameStatus // @name:pt-BR Steam GameStatus // @name:de Steam GameStatus // @name:fr Steam GameStatus // @name:ja Steam GameStatus // @name:ko Steam GameStatus // @name:pl Steam GameStatus // @namespace https://github.com/NemoKing1210/steam-gamestatus // @version 1.13.0 // @author NemoKing1210 // @description Adds extra game info from gamestatus.info on Steam store cards and game pages // @description:ru Добавляет доп. информацию с gamestatus.info на карточки Steam и страницы игр // @description:zh-CN 在 Steam 商店卡片和游戏页面显示来自 gamestatus.info 的额外游戏信息 // @description:es Añade información extra de gamestatus.info en tarjetas y páginas de Steam // @description:pt-BR Adiciona informações extras do gamestatus.info nos cards e páginas da Steam // @description:de Zeigt zusätzliche Spieldaten von gamestatus.info auf Steam-Karten und Spielseiten // @description:fr Ajoute des infos supplémentaires de gamestatus.info sur les cartes et pages Steam // @description:ja Steamのカードとゲームページに gamestatus.info の追加ゲーム情報を表示 // @description:ko Steam 카드 및 게임 페이지에 gamestatus.info 추가 게임 정보를 표시 // @description:pl Dodaje dodatkowe informacje z gamestatus.info na kartach i stronach Steam // @license MIT // @icon https://gamestatus.info/favicon.ico // @homepage https://github.com/NemoKing1210/steam-gamestatus // @homepageURL https://github.com/NemoKing1210/steam-gamestatus // @source https://github.com/NemoKing1210/steam-gamestatus.git // @supportURL https://github.com/NemoKing1210/steam-gamestatus/issues // @match https://store.steampowered.com/* // @match https://steamcommunity.com/app/* // @tag steam // @tag games // @connect gamestatus.info // @connect cdn.gamestatus.info // @grant GM_addStyle // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_xmlhttpRequest // @run-at document-idle // @noframes // ==/UserScript== (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const a=document.createElement("style");a.textContent=e,document.head.append(a)})(' html.gs-badge-size-sm,.gs-preview[data-size=small]{--gs-card-badge-font: 11px;--gs-card-badge-lh: 19px;--gs-card-badge-gap: 5px;--gs-card-badge-pad-x: 7px;--gs-card-badge-dot: 4px;--gs-card-badge-loading-dot: 10px;--gs-chart-badge-font: 10px;--gs-chart-badge-lh: 16px;--gs-chart-badge-pad-x: 6px}html.gs-badge-size-md,.gs-preview[data-size=medium]{--gs-card-badge-font: 13px;--gs-card-badge-lh: 23px;--gs-card-badge-gap: 6px;--gs-card-badge-pad-x: 9px;--gs-card-badge-dot: 5px;--gs-card-badge-loading-dot: 12px;--gs-chart-badge-font: 12px;--gs-chart-badge-lh: 19px;--gs-chart-badge-pad-x: 7px}html.gs-badge-size-lg,.gs-preview[data-size=large]{--gs-card-badge-font: 15px;--gs-card-badge-lh: 26px;--gs-card-badge-gap: 7px;--gs-card-badge-pad-x: 10px;--gs-card-badge-dot: 6px;--gs-card-badge-loading-dot: 14px;--gs-chart-badge-font: 14px;--gs-chart-badge-lh: 22px;--gs-chart-badge-pad-x: 8px}html.gs-badge-size-xl,.gs-preview[data-size=xlarge]{--gs-card-badge-font: 17px;--gs-card-badge-lh: 29px;--gs-card-badge-gap: 8px;--gs-card-badge-pad-x: 12px;--gs-card-badge-dot: 7px;--gs-card-badge-loading-dot: 16px;--gs-chart-badge-font: 16px;--gs-chart-badge-lh: 25px;--gs-chart-badge-pad-x: 10px}.gs-steam-badge{--gs-accent: #67c1f5;--gs-bg: #384959;--gs-text: #c7d5e0;--gs-muted: #8f98a0;position:absolute;inset:auto;z-index:100;display:inline-flex;align-items:center;gap:var(--gs-card-badge-gap, 6px);max-width:calc(100% - 16px);padding:0 var(--gs-card-badge-pad-x, 9px);border-radius:3px;border:none;background:var(--gs-bg);color:var(--gs-text);font:500 var(--gs-card-badge-font, 13px)/var(--gs-card-badge-lh, 23px) "Motiva Sans",Arial,sans-serif;text-decoration:none;box-shadow:1px 1px #000;pointer-events:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}html.gs-badge-v-top .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){top:8px}html.gs-badge-v-bottom .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){bottom:8px}html.gs-badge-h-left .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){left:8px}html.gs-badge-h-right .gs-steam-badge:not(.gs-steam-badge--page):not(.gs-steam-badge--chart){right:8px}.gs-steam-badge:hover{background:#4a5d70;color:#e3eaef}.gs-steam-badge__dot{width:var(--gs-card-badge-dot, 5px);height:var(--gs-card-badge-dot, 5px);border-radius:50%;flex:0 0 auto;background:var(--gs-accent)}.gs-steam-badge__label{overflow:hidden;text-overflow:ellipsis}.gs-steam-badge--loading{--gs-accent: #67c1f5;cursor:wait;pointer-events:none}.gs-steam-badge--loading .gs-steam-badge__dot{width:var(--gs-card-badge-loading-dot, 12px);height:var(--gs-card-badge-loading-dot, 12px);border:2px solid rgba(103,193,245,.25);border-top-color:#67c1f5;background:transparent;animation:gs-spin .7s linear infinite}.gs-steam-badge--cracked{--gs-accent: #beee11;--gs-bg: #4c6b22;--gs-text: #beee11}.gs-steam-badge--cracked:hover{background:#5a7f28;color:#d4f54a}.gs-steam-badge--cracked .gs-steam-badge__dot{background:#2d4a14}.gs-steam-badge--bypass,.gs-steam-badge--not-cracked-recent{--gs-accent: #ffb321;--gs-text: #e3eaef}.gs-steam-badge--not-cracked-old{--gs-accent: #f87171;--gs-text: #fecaca}.gs-steam-badge--release-today{--gs-accent: #67c1f5;--gs-text: #c7d5e0}.gs-steam-badge--unknown,.gs-steam-badge--missing{--gs-accent: #8f98a0;--gs-text: #b0aeac}.gs-steam-badge--chart{position:static;top:auto;left:auto;z-index:auto;display:inline-flex;margin-top:6px;max-width:100%;white-space:normal;box-shadow:none;font-size:var(--gs-chart-badge-font, 12px);line-height:var(--gs-chart-badge-lh, 19px);padding:0 var(--gs-chart-badge-pad-x, 7px)}.carousel_wide_mode .store_main_capsule:not(.focus) .gs-steam-badge{display:none!important;pointer-events:none!important}.carousel_wide_mode .store_main_capsule.focus .gs-steam-badge{z-index:110}html.gs-no-card-badges .gs-steam-badge:not(.gs-steam-badge--page){display:none!important;pointer-events:none!important}html.gs-no-card-badges .gs-preview .gs-steam-badge{display:inline-flex!important}[class*=StoreSalePriceWidgetContainer]>.gs-steam-badge--chart{align-self:flex-start}.gs-steam-badge--page,a.gs-steam-badge.gs-steam-badge--page,span.gs-steam-badge.gs-steam-badge--page{position:static;top:auto;left:auto;z-index:auto;display:inline-flex;vertical-align:top;align-items:center;margin:0;max-width:none;gap:8px;padding:0 15px;border-radius:3px;border:none;background:var(--gs-bg);color:var(--gs-text);font:500 15px/30px Motiva Sans,Arial,sans-serif;text-decoration:none;box-shadow:1px 1px #000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.gs-steam-badge--page:hover,a.gs-steam-badge.gs-steam-badge--page:hover,span.gs-steam-badge.gs-steam-badge--page:hover{background:#4a5d70;color:#e3eaef;text-decoration:none}.gs-steam-badge--page.gs-steam-badge--cracked:hover,a.gs-steam-badge.gs-steam-badge--page.gs-steam-badge--cracked:hover{background:#5a7f28;color:#d4f54a}.gs-steam-badge--page .gs-steam-badge__dot{width:8px;height:8px;flex-shrink:0}.gs-steam-badge--page .gs-steam-badge__label{overflow:hidden;text-overflow:ellipsis}.gs-steam-badge--page.gs-steam-badge--loading{pointer-events:none;cursor:wait}.gs-steam-badge--page.gs-steam-badge--loading .gs-steam-badge__dot{width:14px;height:14px}.gs-steam-badge__tooltip{position:fixed;z-index:999999;width:min(380px,calc(100vw - 24px));max-width:380px;padding:0;border-radius:3px;border:1px solid #000;background:linear-gradient(180deg,#1b2838,#16202d);color:#c7d5e0;font: 12px/1.45 Motiva Sans,Arial,Helvetica,sans-serif;box-shadow:0 0 12px #000000b3,inset 0 1px #ffffff0a;pointer-events:none;opacity:0;transition:opacity .15s ease;word-wrap:break-word;white-space:normal;overflow:hidden}.gs-steam-badge__tooltip--visible{opacity:1}.gs-steam-badge__tooltip--interactive{pointer-events:auto}.gs-steam-badge__tooltip .gs-tip-body--loading{min-height:120px}.gs-steam-badge__tooltip .gs-tip-skeleton{height:12px;margin:8px 0;border-radius:3px;background:linear-gradient(90deg,#2a3644 25%,#3a4a5c,#2a3644 75%);background-size:200% 100%;animation:gs-tip-shimmer 1.2s ease-in-out infinite}.gs-steam-badge__tooltip .gs-tip-skeleton:first-child{width:82%}.gs-steam-badge__tooltip .gs-tip-skeleton:last-child{width:64%}@keyframes gs-tip-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.gs-steam-badge__tooltip .gs-tip-skeleton{animation:none}.gs-panel__tab,.gs-panel__tabpane[data-gs-pane]:not([hidden]){animation:none;transition:none}}.gs-panel__section.is-disabled{opacity:.45}.gs-panel__section.is-disabled select{cursor:not-allowed}.gs-steam-badge__tooltip .gs-tip-header{display:flex;gap:12px;padding:12px 12px 10px;background:radial-gradient(120% 90% at 0% 0%,rgba(102,192,244,.16),transparent 55%),linear-gradient(90deg,#1a2332,#1b2838);border-bottom:1px solid #000}.gs-steam-badge__tooltip .gs-tip-cover{flex:0 0 92px;width:92px;height:43px;border-radius:2px;object-fit:cover;background:#0e1620;box-shadow:0 0 0 1px #0000008c}.gs-steam-badge__tooltip .gs-tip-header-body{min-width:0;flex:1 1 auto}.gs-steam-badge__tooltip .gs-tip-title{margin:0 0 8px;color:#fff;font-size:14px;font-weight:700;line-height:1.25}.gs-steam-badge__tooltip .gs-tip-title__link{color:#fff;text-decoration:none}.gs-steam-badge__tooltip .gs-tip-title__link:hover{color:#66c0f4;text-decoration:underline}.gs-steam-badge__tooltip .gs-tip-chips{display:flex;flex-wrap:wrap;gap:5px}.gs-steam-badge__tooltip .gs-tip-chip{display:inline-flex;align-items:center;max-width:100%;padding:0 7px;border-radius:2px;border:none;background:#384959;color:#c7d5e0;font:500 11px/18px Motiva Sans,Arial,sans-serif;box-shadow:1px 1px #000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-steam-badge__tooltip .gs-tip-chip--cracked{background:#4c6b22;color:#beee11}.gs-steam-badge__tooltip .gs-tip-chip--bypass,.gs-steam-badge__tooltip .gs-tip-chip--not-cracked-recent{background:#5a4630;color:#ffb321}.gs-steam-badge__tooltip .gs-tip-chip--not-cracked-old{background:#5a3030;color:#fecaca}.gs-steam-badge__tooltip .gs-tip-chip--release-today{background:#2a4a63;color:#67c1f5}.gs-steam-badge__tooltip .gs-tip-chip--unknown,.gs-steam-badge__tooltip .gs-tip-chip--missing{background:#3a4149;color:#b0aeac}.gs-steam-badge__tooltip .gs-tip-chip--aaa{background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);color:#fff;font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.35)}.gs-steam-badge__tooltip .gs-tip-chip--protection{background:#2a3644;color:#acb2b8}.gs-steam-badge__tooltip .gs-tip-body{padding:10px 12px 12px}.gs-steam-badge__tooltip .gs-tip-muted{margin:0 0 8px;color:#8f98a0;font-size:12px}.gs-steam-badge__tooltip .gs-tip-section{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.gs-steam-badge__tooltip .gs-tip-section:first-child{margin-top:0;padding-top:0;border-top:none}.gs-steam-badge__tooltip .gs-tip-section-title{margin:0 0 6px;color:#8f98a0;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gs-steam-badge__tooltip .gs-tip-row{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:start;margin-bottom:5px}.gs-steam-badge__tooltip .gs-tip-row:last-child{margin-bottom:0}.gs-steam-badge__tooltip .gs-tip-label{color:#8f98a0;font-size:11px;font-weight:400;line-height:18px}.gs-steam-badge__tooltip .gs-tip-value{color:#dcdedf;word-break:break-word;line-height:18px}.gs-steam-badge__tooltip .gs-tip-scores{display:flex;flex-wrap:wrap;gap:8px}.gs-steam-badge__tooltip .gs-tip-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:6px 10px;border-radius:2px;border:1px solid #000;box-shadow:inset 0 0 0 1px #ffffff0a;text-align:center}.gs-steam-badge__tooltip .gs-tip-score__value{font-size:18px;font-weight:700;line-height:1.1;text-shadow:0 1px 1px rgba(0,0,0,.35)}.gs-steam-badge__tooltip .gs-tip-score__label{margin-top:2px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.85}.gs-steam-badge__tooltip .gs-tip-score--high{background:linear-gradient(180deg,#4c6b22,#3a5219);color:#beee11}.gs-steam-badge__tooltip .gs-tip-score--mid{background:linear-gradient(180deg,#8a6d1a,#6a5214);color:#fc3}.gs-steam-badge__tooltip .gs-tip-score--low{background:linear-gradient(180deg,#8a3030,#6a2020);color:#ff8a8a}.gs-steam-badge__tooltip .gs-tip-score--unknown{background:linear-gradient(180deg,#384959,#2c3845);color:#c7d5e0}.gs-steam-badge__tooltip .gs-tip-specs{display:flex;flex-direction:column;gap:4px}.gs-steam-badge__tooltip .gs-tip-spec{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:start}.gs-steam-badge__tooltip .gs-tip-spec__key{color:#66c0f4;font-size:10px;font-weight:700;letter-spacing:.03em;line-height:16px}.gs-steam-badge__tooltip .gs-tip-spec__val{color:#acb2b8;font-size:11px;line-height:16px;word-break:break-word}.gs-steam-badge__tooltip .gs-tip-desc{margin:0;color:#acb2b8;font-size:11px;line-height:1.45}.gs-steam-badge__tooltip .gs-tip-footer-links a{color:#66c0f4;text-decoration:none;word-break:break-all}.gs-steam-badge__tooltip .gs-tip-footer-links a:hover{color:#fff}.gs-steam-badge__tooltip .gs-tip-footer{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding:10px 12px;border-top:1px solid #000;background:#00000038;font-size:11px;color:#8f98a0}.gs-steam-badge__tooltip .gs-tip-footer-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.gs-steam-badge__tooltip .gs-tip-footer-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.gs-steam-badge__tooltip .gs-tip-footer-sep{color:#4b5561}.gs-steam-badge__tooltip .gs-tip-footer-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,#000,transparent)}.gs-steam-badge__tooltip .gs-tip-repo{display:flex;flex-direction:column;gap:2px;min-width:0;color:#8f98a0;text-decoration:none;word-break:normal}.gs-steam-badge__tooltip .gs-tip-repo:hover{color:#c7d5e0}.gs-steam-badge__tooltip .gs-tip-repo:hover .gs-tip-repo-title{color:#66c0f4}.gs-steam-badge__tooltip .gs-tip-repo-title{color:#67c1f5;font-size:12px;font-weight:700;line-height:1.2}.gs-steam-badge__tooltip .gs-tip-repo-desc{font-size:11px;line-height:1.3}.gs-steam-badge__tooltip .gs-tip-donate-btn{display:inline-block;padding:1px;border-radius:2px;border:none;background:linear-gradient(-60deg,#417a9b 5%,#67c1f5 95%);color:#fff!important;text-decoration:none!important;cursor:pointer;box-shadow:0 0 0 1px #00000059}.gs-steam-badge__tooltip .gs-tip-donate-btn>span{display:block;padding:0 12px;font: 12px/26px Motiva Sans,Arial,sans-serif;color:#fff!important;background:transparent;border-radius:2px;text-align:center}.gs-steam-badge__tooltip .gs-tip-donate-btn:hover{background:linear-gradient(-60deg,#4f8eb0 5%,#7ad0ff 95%);color:#fff!important;text-decoration:none!important}@keyframes gs-spin{to{transform:rotate(360deg)}}#gs-settings-btn.gs-menu-item{cursor:pointer;text-decoration:none}#gs-settings-btn.gs-menu-item.is-open{color:#66c0f4}#gs-settings-btn.gs-header-btn{display:inline-flex;align-items:center;gap:6px;margin-right:8px;height:24px;padding:0 10px;border:none;border-radius:2px;background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);color:#fff;font:700 11px/24px Motiva Sans,Arial,Helvetica,sans-serif;text-shadow:0 1px 1px rgba(0,0,0,.3);cursor:pointer;position:relative;white-space:nowrap;box-shadow:0 0 0 1px #00000059}#gs-settings-btn.gs-header-btn:hover{background:linear-gradient(to bottom,#7dcafa 5%,#4d8bb0 95%)}#gs-settings-btn.gs-header-btn.is-open{background:linear-gradient(to bottom,#a4d007 5%,#536904 95%)}.gs-header-btn__dot{width:7px;height:7px;border-radius:50%;background:#ffffff59;box-shadow:inset 0 0 0 1px #00000040}.gs-header-btn__dot.is-on{background:#beee11;box-shadow:0 0 6px #beee11cc}.gs-panel-overlay{position:fixed;inset:0;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box;background:#000000b8}.gs-panel [hidden]{display:none}.gs-panel-overlay[hidden]{display:none!important}html.gs-modal-open,html.gs-modal-open body{overflow:hidden!important;overscroll-behavior:none!important}html.gs-modal-open body{position:fixed!important;left:0;right:0;width:100%}.gs-panel{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(90vh,760px);overflow:hidden;background:linear-gradient(180deg,#1b2838,#16202d);border:1px solid #000;box-shadow:0 16px 48px #000000a6,inset 0 1px #ffffff0a;color:#c7d5e0;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;border-radius:3px}.gs-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 14px 10px;background:radial-gradient(120% 80% at 0% 0%,rgba(102,192,244,.18),transparent 55%),linear-gradient(90deg,#1a2332,#1b2838);border-bottom:1px solid #000;flex-shrink:0;position:sticky;top:0;z-index:2}.gs-panel__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.gs-panel__version{display:inline-flex;align-items:center;padding:1px 7px;border-radius:2px;background:#66c0f424;border:1px solid rgba(102,192,244,.35);color:#66c0f4;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.4}.gs-panel__title{color:#fff;font-size:14px;font-weight:700}.gs-panel__subtitle{margin-top:2px;color:#8f98a0;font-size:11px}.gs-panel__close{border:0;background:transparent;color:#8f98a0;font-size:20px;line-height:1;cursor:pointer;padding:0 2px}.gs-panel__close:hover{color:#fff}.gs-panel__tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid #000;background:#0000002e;flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.gs-panel__tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0;padding:9px 8px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:#8f98a0;font:700 11px/1.2 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;white-space:nowrap;min-width:0;transition:color .15s ease,border-bottom-color .15s ease}.gs-panel__tab:hover{color:#c7d5e0}.gs-panel__tab.is-active{color:#fff;border-bottom-color:#66c0f4}.gs-panel__tabpane{padding-bottom:4px}.gs-panel__tabpane[hidden]{display:none}.gs-panel__tabpane[data-gs-pane]:not([hidden]){animation:gs-pane-in .16s ease-out}@keyframes gs-pane-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.gs-panel__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.1em;padding:1px 5px;border-radius:999px;font:700 9px/1.3 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:none;border:1px solid transparent}.gs-panel__tab-badge--low{color:#66c0f4;background:#66c0f41f;border-color:#66c0f447}.gs-panel__tab-badge--mid{color:#e5b04a;background:#e5b04a24;border-color:#e5b04a59}.gs-panel__tab-badge--high{color:#f1a3a3;background:#f1a3a324;border-color:#f1a3a359}.gs-panel__tab.is-active .gs-panel__tab-badge--low{color:#b6e3fb}.gs-cache-meter{--gs-cache-found: #66c0f4;--gs-cache-missing: #8f98a0;margin:8px 0 0}.gs-cache-meter__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.gs-cache-meter__pct-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}.gs-cache-meter__pct--low .gs-cache-meter__pct-value{color:#66c0f4}.gs-cache-meter__pct--mid .gs-cache-meter__pct-value{color:#e5b04a}.gs-cache-meter__pct--high .gs-cache-meter__pct-value{color:#f1a3a3}.gs-cache-meter__used-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto;padding-bottom:2px;text-align:right}.gs-cache-meter__used{font-size:12px;font-variant-numeric:tabular-nums;color:#8f98a0}.gs-cache-meter__bar{display:flex;height:14px;border-radius:3px;overflow:hidden;background:#ffffff0d;border:1px solid rgba(0,0,0,.55);box-shadow:inset 0 1px #ffffff0a}.gs-cache-meter__seg{display:block;height:100%;min-width:0}.gs-cache-meter__seg--found{background:linear-gradient(180deg,#8ed0f8 0%,var(--gs-cache-found) 100%)}.gs-cache-meter__seg--missing{background:linear-gradient(180deg,#b6bcc2 0%,var(--gs-cache-missing) 100%)}.gs-cache-meter__seg--free{background:transparent}.gs-cache-meter__legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;font-size:12px;color:#8f98a0;font-variant-numeric:tabular-nums}.gs-cache-meter__row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.gs-cache-meter__name{min-width:0;color:#c7d5e0;font-weight:500}.gs-cache-meter__meta{display:flex;align-items:baseline;gap:10px;flex:0 0 auto;white-space:nowrap}.gs-cache-meter__count{color:#8f98a0}.gs-cache-meter__size{color:#c7d5e0;font-weight:600;min-width:4.5em;text-align:right}.gs-cache-meter__swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto;box-shadow:inset 0 0 0 1px #00000040}.gs-cache-meter__swatch--found{background:var(--gs-cache-found)}.gs-cache-meter__swatch--missing{background:var(--gs-cache-missing)}.gs-cache-meter__swatch--free{background:#ffffff1f;border:1px solid rgba(255,255,255,.12);box-shadow:none}.gs-cache-list{margin-top:8px;max-height:220px;overflow:auto;border:1px solid rgba(0,0,0,.55);border-radius:3px;background:#00000038;scrollbar-width:thin;scrollbar-color:#417a9b transparent}.gs-cache-list__empty{padding:14px 12px;color:#8f98a0;font-size:12px;text-align:center}.gs-cache-list__more{padding:8px 10px;color:#8f98a0;font-size:11px;text-align:center;border-top:1px solid rgba(0,0,0,.35)}.gs-cache-list__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.35)}.gs-cache-list__item:last-child{border-bottom:0}.gs-cache-list__item:hover{background:#66c0f414}.gs-cache-list__main{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.gs-cache-list__kind{flex:0 0 auto;padding:1px 6px;border-radius:2px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid rgba(0,0,0,.45)}.gs-cache-list__kind--missing{color:#b0aeac;background:#8f98a024}.gs-cache-list__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7d5e0;font-size:12px;text-decoration:none}.gs-cache-list__label:hover{color:#66c0f4}.gs-cache-list__meta{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:#8f98a0;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.gs-cache-list__remove{min-width:28px;padding:2px 8px!important;line-height:1.2;font-size:14px!important}.gs-cache-collapser__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;border:0;background:transparent;color:#c7d5e0;font:700 11px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}.gs-cache-collapser__toggle:hover{color:#fff}.gs-cache-collapser__chevron{color:#66c0f4;font-size:12px;line-height:1;transition:transform .15s ease}.gs-cache-collapser__toggle[aria-expanded=true] .gs-cache-collapser__chevron{transform:rotate(90deg)}.gs-cache-collapser__count{margin-left:auto;color:#8f98a0;font-weight:400;letter-spacing:0;text-transform:none}.gs-about{display:flex;flex-direction:column;gap:12px;padding:14px}.gs-about__hero{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gs-about__name{color:#fff;font-size:15px;font-weight:700}.gs-about__blurb{margin:0;color:#c7d5e0;font-size:12px;line-height:1.5}.gs-about__author{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #000;border-radius:3px;background:#00000040;box-shadow:inset 0 1px #ffffff0a;text-decoration:none}.gs-about__author:hover{background:#66c0f414}.gs-about__author-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.gs-about__author-name{color:#fff;font-size:13px;font-weight:700;line-height:1.2}.gs-about__author:hover .gs-about__author-name{color:#66c0f4}.gs-about__author-sub{color:#8f98a0;font-size:11px;line-height:1.3}.gs-about__actions{display:flex;gap:8px}.gs-about__actions .gs-btn{text-decoration:none}.gs-about .gs-hint{margin:0}.gs-panel__body{overflow-x:hidden;overflow-y:auto;flex:1 1 auto;min-height:0;scrollbar-width:thin;scrollbar-color:#417a9b transparent}.gs-panel__section{padding:10px 14px}.gs-panel__section-title{margin:0 0 8px;color:#66c0f4;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gs-panel__divider{height:1px;background:linear-gradient(90deg,transparent,#000,transparent);margin:0 10px}.gs-panel__tabpane[data-gs-pane=general]{padding:12px 12px 8px}.gs-panel__tabpane[data-gs-pane=general] .gs-panel__section{margin:0 0 10px;padding:12px 14px;background:#00000038;border:1px solid rgba(0,0,0,.65);box-shadow:inset 0 1px #ffffff0a;border-radius:3px}.gs-panel__tabpane[data-gs-pane=general] .gs-panel__section:last-child{margin-bottom:4px}.gs-panel__section-title{display:flex;align-items:center;gap:7px}.gs-panel__section-icon{display:inline-flex;flex:0 0 auto;width:14px;height:14px;color:#66c0f4}.gs-panel__section-icon svg{width:100%;height:100%}.gs-preview{position:relative;margin:2px 0 12px;overflow:hidden;border:1px solid #000;border-radius:2px;background:#0e141b;box-shadow:inset 0 1px #ffffff0a}.gs-preview__cover{height:74px;background:radial-gradient(120% 130% at 85% 10%,rgba(102,192,244,.35),transparent 55%),linear-gradient(115deg,#1b2838,#2a475e 55%,#1b2838)}.gs-preview__row{padding:8px 10px 10px}.gs-preview__bar{display:block;height:8px;border-radius:2px;background:#2a3644}.gs-preview__bar+.gs-preview__bar{margin-top:6px}.gs-preview__bar--dim{background:#212c38}.gs-preview .gs-steam-badge{position:absolute;z-index:1;pointer-events:none}.gs-pos-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:230px}.gs-pos-picker__btn{position:relative;height:36px;margin:0;padding:0;cursor:pointer;background:#0e141b;border:1px solid #000;box-shadow:inset 0 1px #ffffff0a;border-radius:2px}.gs-pos-picker__btn:hover{border-color:#417a9b}.gs-pos-picker__btn:focus-visible{outline:1px solid #66c0f4;outline-offset:2px}.gs-pos-picker__btn.is-active{border-color:#66c0f4;box-shadow:inset 0 1px #ffffff0a,0 0 8px #66c0f459}.gs-pos-picker__btn:disabled{opacity:.4;cursor:not-allowed}.gs-pos-picker__dot{position:absolute;width:8px;height:8px;border-radius:50%;border:1px solid #66c0f4}.gs-pos-picker__btn[data-v=top] .gs-pos-picker__dot{top:6px}.gs-pos-picker__btn[data-v=bottom] .gs-pos-picker__dot{bottom:6px}.gs-pos-picker__btn[data-h=left] .gs-pos-picker__dot{left:6px}.gs-pos-picker__btn[data-h=right] .gs-pos-picker__dot{right:6px}.gs-pos-picker__btn.is-active .gs-pos-picker__dot{background:#66c0f4;box-shadow:0 0 6px #66c0f4cc}.gs-missing-row{display:flex;align-items:center;justify-content:space-between;gap:10px}#gs-display-key-row:not([hidden]){display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}#gs-display-key{min-width:120px}.gs-panel__footer{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;border-top:1px solid #000;background:#0003;flex-shrink:0;position:sticky;bottom:0;z-index:2}.gs-panel__footer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.gs-field{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.gs-field:last-child{margin-bottom:0}.gs-field__label{color:#8f98a0;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.gs-field input,.gs-field select{height:30px;padding:0 8px;border:1px solid #000;border-radius:2px;background:#316282;color:#fff;box-shadow:inset 0 0 0 1px #ffffff0d;outline:none;font:inherit}.gs-field input::placeholder{color:#ffffff73}.gs-field input:focus,.gs-field select:focus{background:#3d7a9c;box-shadow:0 0 0 1px #66c0f4}.gs-hint{margin:6px 0 0;color:#8f98a0;font-size:11px;line-height:1.35}.gs-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.gs-switch input{position:absolute;opacity:0;pointer-events:none}.gs-switch__track{width:34px;height:18px;border-radius:9px;background:#0e1620;border:1px solid #000;position:relative;box-shadow:inset 0 1px 2px #00000080;flex:0 0 auto}.gs-switch__track:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#8f98a0;transition:transform .15s ease,background .15s ease}.gs-switch input:checked+.gs-switch__track{background:linear-gradient(to bottom,#66c0f4,#417a9b)}.gs-switch input:checked+.gs-switch__track:after{transform:translate(16px);background:#fff}.gs-switch__label{color:#c7d5e0}.gs-pill{font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:2px;background:#0e1620;color:#8f98a0;border:1px solid #000;flex:0 0 auto}.gs-pill.is-on{color:#beee11;background:#1b3708;border-color:#53760d}.gs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 12px;border:none;border-radius:2px;cursor:pointer;color:#fff;font:700 12px/28px Motiva Sans,Arial,Helvetica,sans-serif;background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);text-shadow:0 1px 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px #0006}.gs-btn:hover{filter:brightness(1.08)}.gs-btn--ghost{background:linear-gradient(to bottom,#3d4450 5%,#2c313a 95%)}.gs-btn--green{background:linear-gradient(to bottom,#a4d007 5%,#536904 95%)}.gs-btn--danger{background:linear-gradient(to bottom,#c45c5c 5%,#8a3030 95%)}.gs-cache-status{margin:8px 0 0;min-height:14px;color:#beee11;font-size:11px}.gs-cache-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}@media(max-width:900px){.gs-header-btn__text{display:none}} '); (function () { 'use strict'; var e=(()=>"undefined"!=typeof GM_getValue?GM_getValue:void 0)(),t=(()=>"undefined"!=typeof GM_registerMenuCommand?GM_registerMenuCommand:void 0)(),a=(()=>"undefined"!=typeof GM_setValue?GM_setValue:void 0)(),n=(()=>"undefined"!=typeof GM_xmlhttpRequest?GM_xmlhttpRequest:void 0)();const s="1.13.0",i="https://gamestatus.info",o=`${i}/#donate`,r="https://github.com/NemoKing1210/steam-gamestatus",c="gs_steam_cache_v5",l="gs_steam_settings",d=2097152,u={cacheHours:6,badgeVertical:"top",badgeHorizontal:"left",badgeSize:"medium",cardDisplay:"badge",cardPosition:"left",displayKey:"ShiftLeft",showMissingBadge:true},p="gs-steam-badge",g={childList:true,subtree:true,attributes:true,attributeFilter:["data-ds-appid","data-sub-id","class"]},h=Object.freeze(["en","ru","zh","es","pt","de","fr","ja","ko","pl"]),m=Object.freeze({en:"English",ru:"Русский",zh:"简体中文",es:"Español",pt:"Português (Brasil)",de:"Deutsch",fr:"Français",ja:"日本語",ko:"한국어",pl:"Polski"}),b=Object.freeze({en:"en",ru:"ru",zh:"zh","zh-cn":"zh","zh-hans":"zh",es:"es",pt:"pt","pt-br":"pt",de:"de",fr:"fr",ja:"ja",ko:"ko",pl:"pl"});function f(e){const t=Math.round(Number(e));return !Number.isFinite(t)||t<0?u.cacheHours:Math.min(t,168)}function y(e){return "bottom"===e?"bottom":"top"}function v(e){return "right"===e?"right":"left"}function S(e){return "right"===e||"top"===e||"bottom"===e?e:"left"}function _(e){return "small"===e||"large"===e||"xlarge"===e?e:"medium"}function w(e){return "hover"===e||"context"===e||"hotkey"===e?e:"badge"}function k(e){return "string"==typeof e&&/^[A-Za-z0-9]{2,20}$/.test(e)?e:u.displayKey}function z(e){return "auto"===e||h.includes(e)?e:u.language}let $=function(){const t=e(l,null);return t&&"object"==typeof t?{...u,...t,cacheHours:f(t.cacheHours),badgeVertical:y(t.badgeVertical),badgeHorizontal:v(t.badgeHorizontal),badgeSize:_(t.badgeSize),cardDisplay:w(t.cardDisplay),cardPosition:S(t.cardPosition),displayKey:k(t.displayKey),showMissingBadge:false!==t.showMissingBadge,language:z(t.language)}:{...u}}(),H=null;function M(){return $}function E(e){var t,n,s,i,o,r,c,d;$={...$,...e,cacheHours:f(null!=(t=e.cacheHours)?t:$.cacheHours),badgeVertical:y(null!=(n=e.badgeVertical)?n:$.badgeVertical),badgeHorizontal:v(null!=(s=e.badgeHorizontal)?s:$.badgeHorizontal),cardDisplay:w(null!=(i=e.cardDisplay)?i:$.cardDisplay),cardPosition:S(null!=(o=e.cardPosition)?o:$.cardPosition),badgeSize:_(null!=(r=e.badgeSize)?r:$.badgeSize),displayKey:k(null!=(c=e.displayKey)?c:$.displayKey),showMissingBadge:"boolean"==typeof e.showMissingBadge?e.showMissingBadge:false!==$.showMissingBadge,language:z(null!=(d=e.language)?d:$.language)},a(l,$),A(),null==H||H();}function L(){const e=f($.cacheHours);return e>0?60*e*60*1e3:0}function A(){const e=document.documentElement;e.classList.remove("gs-badge-v-top","gs-badge-v-bottom","gs-badge-h-left","gs-badge-h-right","gs-badge-size-sm","gs-badge-size-md","gs-badge-size-lg","gs-badge-size-xl","gs-no-card-badges"),e.classList.add("bottom"===$.badgeVertical?"gs-badge-v-bottom":"gs-badge-v-top","right"===$.badgeHorizontal?"gs-badge-h-right":"gs-badge-h-left","small"===$.badgeSize?"gs-badge-size-sm":"large"===$.badgeSize?"gs-badge-size-lg":"xlarge"===$.badgeSize?"gs-badge-size-xl":"gs-badge-size-md"),"badge"!==w($.cardDisplay)&&e.classList.add("gs-no-card-badges");}const C=new Map;let P=null,B=false,D=null;function G(){if(P)return P;try{P=JSON.parse(e(c,"{}"))||{};}catch(t){P={};}return P}function q(){return G()}function T(){B&&P&&(a(c,JSON.stringify(P)),B=false);}function I(){B=true,clearTimeout(D),D=setTimeout(T,1e3);}function j(e){const t=L();if(t<=0)return null;const a=q()[String(e)];return a?Date.now()-a.ts>t?null:a:null}function x(e,t){if(L()<=0)return;const a=q();a[String(e)]={...t,ts:Date.now()},function(e){P=e,I();}(a);}const N="undefined"!=typeof TextEncoder?new TextEncoder:null;function F(e,t){const a=JSON.stringify({[e]:t});return N?N.encode(a).length:a.length}function K(){return Object.entries(q()).map(([e,t])=>{var a;return {appId:e,title:(null==(a=null==t?void 0:t.data)?void 0:a.title)||(null==t?void 0:t.slug)||e,missing:!!(null==t?void 0:t.missing),bytes:F(e,t),ts:Number(null==t?void 0:t.ts)||0}}).sort((e,t)=>t.ts-e.ts)}function R(){const e=K(),t={count:0,bytes:0},a={count:0,bytes:0};for(const s of e){const e=s.missing?a:t;e.count+=1,e.bytes+=s.bytes;}const n=t.bytes+a.bytes;return {usedBytes:n,limitBytes:d,freeBytes:Math.max(0,d-n),totalCount:e.length,found:t,missing:a}}const O=[];let W=0;function U(e){W+=1,e.task().then(e.resolve).catch(e.reject).finally(()=>{W-=1,setTimeout(V,75);});}function V(){for(;W<2&&O.length>0;)U(O.shift());}const J=new Map,Z=new Map;async function X(e){const t=String(e);if(J.has(t))return J.get(t);if(Z.has(t))return Z.get(t);const a=(async()=>{var e;try{const a="store.steampowered.com"===location.hostname,n=`https://store.steampowered.com/api/appdetails?appids=${encodeURIComponent(t)}&filters=basic`,s=await fetch(n,{credentials:a?"same-origin":"omit"});if(!s.ok)return J.set(t,null),null;const i=await s.json(),o=null==i?void 0:i[t],r=(null==o?void 0:o.success)?null==(e=o.data)?void 0:e.name:null,c=r?String(r).replace(/\s+/g," ").trim():null;return J.set(t,c||null),c||null}catch(a){return J.set(t,null),null}finally{Z.delete(t);}})();return Z.set(t,a),a}function Y(e){var t;return Boolean(null==(t=null==e?void 0:e.hasAttribute)?void 0:t.call(e,"data-ds-appid"))}function Q(e){return String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[™®©'’":]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-")}function ee(e){const t=String(e||"").match(/\/app\/(\d+)(?:\/|$|\?)/i);return t?t[1]:null}function te(e){const t=String(e||"").match(/\/app\/\d+\/([^/?#]+)/i);return t?Q(t[1].replace(/_/g,"-")):null}function ae(e,t){return !(!e||!t)&&ee(e)===String(t)}function ne(e,t,{includeClosest:a=false}={}){if(!e||!t)return null;const n=String(t);if(e instanceof HTMLAnchorElement&&ae(e.href,n))return e;if(a&&e.closest){const t=e.closest('a[href*="/app/"]');if(t&&ae(t.href,n))return t}if(!e.querySelectorAll)return null;for(const s of e.querySelectorAll('a[href*="/app/"]'))if(ae(s.href,n))return s;return null}const se=/^(https?-)?(store-)?steam(powered|static)?(-[a-z0-9]+)*(-com)?$|steampowered|steamstatic|akamaihd|^(on-)?wishlist$|^gamestatus$|^(soon-)?on-game-pass$/;function ie(e){if(!e||e.length<2)return false;if(!/[a-z]/.test(e))return false;if(se.test(e))return false;if(/^\d+(-\d+)+$/.test(e))return false;const t=e.split("-").filter(Boolean);return !!t.length&&(!t.every(e=>/^\d+$/.test(e))&&t.filter(e=>/^\d+$/.test(e)).length/t.length<=.5)}function oe(){var e;const t=ee(location.pathname);if(t)return t;if("object"==typeof window.g_rgAppData&&(null==(e=window.g_rgAppData)?void 0:e.appid))return String(window.g_rgAppData.appid);const a=document.querySelector("[data-appid]");return (null==a?void 0:a.getAttribute("data-appid"))||null}const re=[".tab_item_title",".search_name .title",".search_result_row .title",".title",".StoreSaleWidgetTitle",'[class*="item_title"]','[class*="ItemTitle"]','a[href*="/app/"] img[src*="/apps/"] + div'],ce=/^(in library|в библиотеке|owned|ignored|on wishlist|в вишлисте|в желаемом|wishlisted|on game pass|soon on game pass|скоро в game pass|gamestatus(?:…|\.{0,3})?|not in database|нет в базе|load error|ошибка загрузки|\+\d+\s*more)$/i;function le(e){const t=String(e||"").replace(/\s+/g," ").trim();if(!t)return true;if(t.length>100)return true;if(/^-\d+%/.test(t))return true;if(/^\d+%?\s*off\b/i.test(t))return true;if(/\b(руб|₽|usd|eur|uah|gbp|cad|aud|try|idr|vnd|kr)\b/i.test(t)&&/\d/.test(t))return true;if(/^(released|выход|дата выхода|release date)/i.test(t))return true;if(/^free to play$/i.test(t))return true;const a=(t.match(/\d/g)||[]).length;return a>0&&a/t.length>.45&&/%|руб|₽|\$|€|£/.test(t)}function de(e){const t=String(e||"").replace(/\s+/g," ").trim();return !t||!!ce.test(t)||!!/^game\s*status/i.test(t)}function ue(e){return String(e||"").replace(/\s+/g," ").trim().replace(/\s+(banner|capsule|header|poster|logo)$/i,"").trim()}function pe(e,t,a){var n,s,i;const o=[],r=e=>{const t=String(e||"").replace(/\s+/g," ").trim();!t||de(t)||le(t)||o.includes(t)||o.push(t);};for(const d of re){const t=e.querySelector(d);t&&r(t.textContent);}if(Y(e)){const s=t||(null==a?void 0:a(e));r(ue(null==(n=e.querySelector("img[alt]"))?void 0:n.alt));const i=te(null==s?void 0:s.href);i&&ie(i)&&r(i.replace(/-/g," "));}r(ue(null==(s=e.querySelector('img.sale_capsule_image[alt], img.tab_row_capsule[alt], img[class*="capsule"][alt], img[alt]'))?void 0:s.alt));const c=null==(i=null==t?void 0:t.getAttribute("aria-label"))?void 0:i.trim();!c||/^\d+%\s*off\b/i.test(c)||le(c)||r(c.replace(/\.\s*\d+%\s*off.*$/i,"").trim());const l=te(null==t?void 0:t.href);if(l&&ie(l)&&r(l.replace(/-/g," ")),!o.length&&t){const e=t.cloneNode(true);e.querySelectorAll(`.${p}, .ds_flag, .ds_options, .alike_cont, [class*="WishlistFlag"], [class*="wishlist_flag"]`).forEach(e=>e.remove()),r(e.textContent.split("\n").map(e=>e.trim()).find(e=>e&&!le(e)&&!de(e)));}return o[0]||""}function ge(e,t,a){var n,s;const i=[],o=e=>{e&&ie(e)&&!i.includes(e)&&i.push(e);},r=e=>o(te(e));return r(null==t?void 0:t.href),he()&&String(e)===String(oe())&&(r(location.pathname),r(null==(n=document.querySelector('link[rel="canonical"]'))?void 0:n.href),r(null==(s=document.querySelector('meta[property="og:url"]'))?void 0:s.content)),(e=>{const t=String(e||"").replace(/\s+/g," ").trim();!t||le(t)||de(t)||(o(Q(t)),o(Q(t.replace(/\s*[-–—:|].*$/,""))));})(a),i}function he(){return /\/app\/\d+/i.test(location.pathname)}const me=Object.freeze({en:{notInDatabase:"Not in database",cracked:"Ready",notCracked:"Pending",protectionBypass:"Protection bypass",releaseToday:"Release today",unknownStatus:"Unknown status",gameNotFound:"Game not found in the gamestatus.info database",status:"Status",protection:"Protection",group:"Group",release:"Release",crack:"Updated",steamId:"Steam ID",score:"Score",metacritic:"Metacritic",type:"Type",subscriptions:"Subscriptions",hardware:"Hardware",supportProject:"Support project",loadError:"Load error",loading:"GameStatus…",menuSettings:"Steam GameStatus — Settings",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · cache · display options",close:"Close",cancel:"Cancel",save:"Save",saveReload:"Save & Reload page",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position on cards",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Top",posBottom:"Bottom",posLeft:"Left",posRight:"Right",badgePositionHint:"Applies to badges on store cards. Game page chips stay in the header.",badgeSize:"Size on cards",sizeSmall:"Small",sizeMedium:"Medium",sizeLarge:"Large",sizeXLarge:"Very large",badgeSizeHint:"Applies to badges on store cards. Game page chips stay the same size.",showMissing:"Show “not in database” badges",showMissingHint:"When off, cards without a GameStatus match stay unmarked.",on:"ON",off:"OFF",cacheHours:"Cache duration (hours)",cacheHoursHint:"How long to reuse API results (including not-found). 0 disables cache. Clear cache or reload to refetch sooner.",clearCache:"Clear cache",cacheCleared:"Cache cleared ({count})",cacheEmpty:"Cache is empty",cacheClearHint:"Removes all stored GameStatus lookups from this browser profile.",repoLink:"GitHub",repoAbout:"Source code, updates, and issue reports",tabAbout:"About the script",aboutBlurb:"Shows GameStatus.info badges on Steam store cards and game pages: crack status, scores, and details in a hover tooltip.",language:"Interface language",languageHint:"Applies to this panel right away; reload the page to retranslate badges and tooltips.",langAuto:"Auto (browser)",tabGeneral:"General",cacheUsage:"Storage usage",cacheMeterPct:"{pct}% full",cacheMeterUsed:"{used} of {limit}",cacheMeterEntries:"{count} entries",cacheMeterFound:"Found games",cacheMeterMissing:"Not found",cacheMeterFree:"Free",cacheContents:"Stored lookups",cacheListEmpty:"No stored lookups yet — open store pages and they will appear here.",cacheRemoveEntry:"Remove this entry",cacheEntryNotFound:"Not found",cacheListMore:"…and {count} more",settingsWord:"Settings",sectionDisplay:"Display",resetSettings:"Reset to defaults",cardDisplay:"Card display mode",cardDisplayBadge:"Badge on cards",cardDisplayHover:"Tooltip on game hover",cardDisplayHint:"How the GameStatus card opens on store cards. Game page chips are unaffected.",cardDisplayContext:"Right-click",cardDisplayHotkey:"Left click + key",displayKey:"Trigger key",displayKeyHint:"Hold this key and left-click a game to open its card. Clicking without the key navigates as usual.",displayKeyPress:"Press a key…",cardPosition:"Card position",cardPositionHint:"Which side of the game the GameStatus card prefers to open on. The chosen side is only a preference — without enough room, the card opens on the next side that fits.",badgeDisabledHint:"Badge position and size apply only in “Badge on cards” display mode."},ru:{notInDatabase:"Нет в базе",cracked:"Готово",notCracked:"Ожидание",protectionBypass:"Обход защиты",releaseToday:"Релиз сегодня",unknownStatus:"Статус неизвестен",gameNotFound:"Игра не найдена в базе gamestatus.info",status:"Статус",protection:"Защита",group:"Группа",release:"Релиз",crack:"Обновлено",steamId:"Steam ID",score:"Оценка",metacritic:"Metacritic",type:"Тип",subscriptions:"Подписки",hardware:"Железо",supportProject:"Поддержать проект",loadError:"Ошибка загрузки",loading:"GameStatus…",menuSettings:"Steam GameStatus — Настройки",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Бейджи · кеш · отображение",close:"Закрыть",cancel:"Отмена",save:"Сохранить",saveReload:"Сохранить и обновить",sectionBadge:"Бейдж",sectionCache:"Кеш",badgePosition:"Положение на карточках",badgeVertical:"По вертикали",badgeHorizontal:"По горизонтали",posTop:"Сверху",posBottom:"Снизу",posLeft:"Слева",posRight:"Справа",badgePositionHint:"Для бейджей на карточках магазина. На странице игры чип остаётся в шапке.",badgeSize:"Размер на карточках",sizeSmall:"Маленький",sizeMedium:"Средний",sizeLarge:"Большой",sizeXLarge:"Очень большой",badgeSizeHint:"Для бейджей на карточках магазина. На странице игры размер чипа не меняется.",showMissing:"Показывать «нет в базе»",showMissingHint:"Если выключено, карточки без записи в GameStatus остаются без бейджа.",on:"ВКЛ",off:"ВЫКЛ",cacheHours:"Время кеширования (часы)",cacheHoursHint:"Как долго хранить ответы API (включая «не найдено»). 0 отключает кеш. Сброс кеша или обновление страницы — для немедленного запроса.",clearCache:"Сбросить кеш",cacheCleared:"Кеш очищен ({count})",cacheEmpty:"Кеш пуст",cacheClearHint:"Удаляет все сохранённые ответы GameStatus в этом профиле браузера.",repoLink:"GitHub",repoAbout:"Исходный код, обновления и сообщения об ошибках",tabAbout:"О скрипте",aboutBlurb:"Показывает бейджи GameStatus.info на карточках и страницах игр Steam: статус взлома, оценки и детали во всплывающей подсказке.",language:"Язык интерфейса",languageHint:"Панель переведётся сразу; перезагрузите страницу, чтобы перевести бейджи и подсказки.",langAuto:"Авто (браузер)",tabGeneral:"Основные",cacheUsage:"Использование хранилища",cacheMeterPct:"{pct}% занято",cacheMeterUsed:"{used} из {limit}",cacheMeterEntries:"Записей: {count}",cacheMeterFound:"Найденные игры",cacheMeterMissing:"Не найдено",cacheMeterFree:"Свободно",cacheContents:"Сохранённые запросы",cacheListEmpty:"Пока пусто — открывайте страницы магазина, и они появятся здесь.",cacheRemoveEntry:"Удалить запись",cacheEntryNotFound:"Не найдено",cacheListMore:"…и ещё {count}",settingsWord:"Настройки",sectionDisplay:"Отображение",resetSettings:"Сбросить настройки",cardDisplay:"Режим отображения карточки",cardDisplayBadge:"Бейдж на карточках",cardDisplayHover:"Подсказка при наведении на игру",cardDisplayHint:"Как открывается карточка GameStatus на витрине. Чип на странице игры не меняется.",cardDisplayContext:"Правая кнопка мыши",cardDisplayHotkey:"Клик + клавиша",displayKey:"Клавиша для клика",displayKeyHint:"Удерживайте клавишу и кликните по игре, чтобы открыть карточку. Клик без клавиши работает как обычно.",displayKeyPress:"Нажмите клавишу…",cardPosition:"Положение карточки",cardPositionHint:"С какой стороны игры карточка GameStatus предпочитает открываться. Выбранная сторона — лишь приоритет: если места не хватает, карточка открывается на следующей стороне, где оно есть.",badgeDisabledHint:"Позиция и размер бейджа действуют только в режиме «Бейдж на карточках»."},zh:{notInDatabase:"未收录",cracked:"就绪",notCracked:"待定",protectionBypass:"保护绕过",releaseToday:"今日发售",unknownStatus:"状态未知",gameNotFound:"在 gamestatus.info 数据库中未找到该游戏",status:"状态",protection:"保护",group:"组织",release:"发售",crack:"更新",steamId:"Steam ID",score:"评分",metacritic:"Metacritic",type:"类型",subscriptions:"订阅数",hardware:"硬件",supportProject:"支持项目",loadError:"加载失败",loading:"GameStatus…",menuSettings:"Steam GameStatus — 设置",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"徽章 · 缓存 · 显示选项",close:"关闭",cancel:"取消",save:"保存",saveReload:"保存并刷新页面",sectionBadge:"徽章",sectionCache:"缓存",badgePosition:"卡片上的位置",badgeVertical:"垂直",badgeHorizontal:"水平",posTop:"顶部",posBottom:"底部",posLeft:"左侧",posRight:"右侧",badgePositionHint:"适用于商店卡片上的徽章。游戏页徽章仍在页头。",badgeSize:"卡片上的大小",sizeSmall:"小",sizeMedium:"中",sizeLarge:"大",sizeXLarge:"特大",badgeSizeHint:"适用于商店卡片上的徽章。游戏页徽章大小不变。",showMissing:"显示“未收录”徽章",showMissingHint:"关闭后,未在 GameStatus 找到的游戏不显示徽章。",on:"开",off:"关",cacheHours:"缓存时长(小时)",cacheHoursHint:"复用 API 结果(含未找到)的时间。0 禁用缓存。清空缓存或刷新可立即重新请求。",clearCache:"清空缓存",cacheCleared:"已清空缓存({count})",cacheEmpty:"缓存为空",cacheClearHint:"删除此浏览器配置中保存的全部 GameStatus 查询结果。",repoLink:"GitHub",repoAbout:"源代码、更新与问题反馈",tabAbout:"关于脚本",aboutBlurb:"在 Steam 商店卡片和游戏页面上显示 GameStatus.info 徽章:破解状态、评分及悬停提示框中的详情。",language:"界面语言",languageHint:"面板立即生效;刷新页面以翻译徽章和提示框。",langAuto:"自动(浏览器)",tabGeneral:"常规",cacheUsage:"存储用量",cacheMeterPct:"已用 {pct}%",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count} 条记录",cacheMeterFound:"已找到的游戏",cacheMeterMissing:"未找到",cacheMeterFree:"可用",cacheContents:"已存查询",cacheListEmpty:"暂无缓存 — 浏览商店页面后会显示在这里。",cacheRemoveEntry:"删除此条",cacheEntryNotFound:"未找到",cacheListMore:"…还有 {count} 条",settingsWord:"设置",sectionDisplay:"显示",resetSettings:"恢复默认设置",cardDisplay:"卡片显示模式",cardDisplayBadge:"在卡片上显示徽章",cardDisplayHover:"悬停游戏时显示浮层",cardDisplayHint:"GameStatus 卡片在商店列表中的打开方式。游戏页面徽章不受影响。",cardDisplayContext:"右键",cardDisplayHotkey:"左键 + 按键",displayKey:"触发按键",displayKeyHint:"按住此键并左键点击游戏以打开卡片。不按键点击则正常跳转。",displayKeyPress:"请按键…",cardPosition:"卡片位置",cardPositionHint:"GameStatus 卡片优先在游戏的哪一侧打开。所选的一侧只是优先项:空间不足时,卡片会自动在下一个有空间的一侧打开。",badgeDisabledHint:"徽章位置和大小仅在“在卡片上显示徽章”模式下生效。"},es:{notInDatabase:"No está en la base de datos",cracked:"Listo",notCracked:"Pendiente",protectionBypass:"Bypass de protección",releaseToday:"Lanzamiento hoy",unknownStatus:"Estado desconocido",gameNotFound:"Juego no encontrado en la base de datos de gamestatus.info",status:"Estado",protection:"Protección",group:"Grupo",release:"Lanzamiento",crack:"Actualizado",steamId:"Steam ID",score:"Puntuación",metacritic:"Metacritic",type:"Tipo",subscriptions:"Suscripciones",hardware:"Hardware",supportProject:"Apoyar el proyecto",loadError:"Error de carga",loading:"GameStatus…",menuSettings:"Steam GameStatus — Ajustes",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Insignias · caché · visualización",close:"Cerrar",cancel:"Cancelar",save:"Guardar",saveReload:"Guardar y recargar",sectionBadge:"Insignia",sectionCache:"Caché",badgePosition:"Posición en las cartas",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Arriba",posBottom:"Abajo",posLeft:"Izquierda",posRight:"Derecha",badgePositionHint:"Aplica a insignias en cartas de la tienda. En la página del juego permanece en la cabecera.",badgeSize:"Tamaño en las tarjetas",sizeSmall:"Pequeño",sizeMedium:"Mediano",sizeLarge:"Grande",sizeXLarge:"Muy grande",badgeSizeHint:"Aplica a las insignias en las tarjetas de la tienda. En la página del juego el tamaño no cambia.",showMissing:"Mostrar “no está en la base”",showMissingHint:"Si está desactivado, las cartas sin coincidencia en GameStatus quedan sin insignia.",on:"ON",off:"OFF",cacheHours:"Duración de caché (horas)",cacheHoursHint:"Cuánto reutilizar resultados de la API (incluido no encontrado). 0 desactiva la caché. Vaciar o recargar para pedir de nuevo.",clearCache:"Vaciar caché",cacheCleared:"Caché vaciada ({count})",cacheEmpty:"La caché está vacía",cacheClearHint:"Elimina todas las consultas de GameStatus guardadas en este perfil del navegador.",repoLink:"GitHub",repoAbout:"Código fuente, actualizaciones e informes de errores",tabAbout:"Acerca del script",aboutBlurb:"Muestra insignias de GameStatus.info en las cartas y páginas de Steam: estado, puntuaciones y detalles en un tooltip.",language:"Idioma de la interfaz",languageHint:"El panel cambia al instante; recarga la página para traducir insignias y tooltips.",langAuto:"Auto (navegador)",tabGeneral:"General",cacheUsage:"Uso de almacenamiento",cacheMeterPct:"{pct}% lleno",cacheMeterUsed:"{used} de {limit}",cacheMeterEntries:"{count} entradas",cacheMeterFound:"Juegos encontrados",cacheMeterMissing:"No encontrados",cacheMeterFree:"Libre",cacheContents:"Consultas guardadas",cacheListEmpty:"Aún no hay consultas — abre páginas de la tienda y aparecerán aquí.",cacheRemoveEntry:"Eliminar esta entrada",cacheEntryNotFound:"No encontrado",cacheListMore:"…y {count} más",settingsWord:"Ajustes",sectionDisplay:"Visualización",resetSettings:"Restablecer valores",cardDisplay:"Modo de visualización",cardDisplayBadge:"Insignia en las tarjetas",cardDisplayHover:"Ventana al pasar el cursor",cardDisplayHint:"Cómo se abre la tarjeta de GameStatus en las listas. La página del juego no cambia.",cardDisplayContext:"Clic derecho",cardDisplayHotkey:"Clic + tecla",displayKey:"Tecla",displayKeyHint:"Mantén esta tecla y haz clic en un juego para abrir su tarjeta. Sin la tecla, el clic navega como siempre.",displayKeyPress:"Pulsa una tecla…",cardPosition:"Posición de la tarjeta",cardPositionHint:"Lado del juego en el que la tarjeta de GameStatus prefiere abrirse. El lado elegido es solo una preferencia: sin espacio suficiente, la tarjeta se abre en el siguiente lado que quepa.",badgeDisabledHint:"La posición y el tamaño solo se aplican en el modo «Insignia en las tarjetas»."},pt:{notInDatabase:"Não está no banco de dados",cracked:"Pronto",notCracked:"Pendente",protectionBypass:"Bypass de proteção",releaseToday:"Lançamento hoje",unknownStatus:"Status desconhecido",gameNotFound:"Jogo não encontrado no banco de dados do gamestatus.info",status:"Status",protection:"Proteção",group:"Grupo",release:"Lançamento",crack:"Atualizado",steamId:"Steam ID",score:"Pontuação",metacritic:"Metacritic",type:"Tipo",subscriptions:"Inscrições",hardware:"Hardware",supportProject:"Apoiar o projeto",loadError:"Erro ao carregar",loading:"GameStatus…",menuSettings:"Steam GameStatus — Configurações",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Emblemas · cache · exibição",close:"Fechar",cancel:"Cancelar",save:"Salvar",saveReload:"Salvar e recarregar",sectionBadge:"Emblema",sectionCache:"Cache",badgePosition:"Posição nos cards",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Topo",posBottom:"Base",posLeft:"Esquerda",posRight:"Direita",badgePositionHint:"Aplica-se a emblemas nos cards da loja. Na página do jogo permanece no cabeçalho.",badgeSize:"Tamanho nos cards",sizeSmall:"Pequeno",sizeMedium:"Médio",sizeLarge:"Grande",sizeXLarge:"Muito grande",badgeSizeHint:"Aplica-se às badges nos cards da loja. Na página do jogo o tamanho não muda.",showMissing:"Mostrar “não está no banco”",showMissingHint:"Se desativado, cards sem correspondência no GameStatus ficam sem emblema.",on:"ON",off:"OFF",cacheHours:"Duração do cache (horas)",cacheHoursHint:"Por quanto tempo reutilizar resultados da API (incluindo não encontrado). 0 desativa o cache. Limpe ou recarregue para buscar de novo.",clearCache:"Limpar cache",cacheCleared:"Cache limpo ({count})",cacheEmpty:"O cache está vazio",cacheClearHint:"Remove todas as consultas do GameStatus salvas neste perfil do navegador.",repoLink:"GitHub",repoAbout:"Código-fonte, atualizações e relatos de problemas",tabAbout:"Sobre o script",aboutBlurb:"Mostra emblemas do GameStatus.info nos cards e páginas da Steam: status, notas e detalhes em tooltip.",language:"Idioma da interface",languageHint:"O painel muda na hora; recarregue a página para traduzir emblemas e tooltips.",langAuto:"Auto (navegador)",tabGeneral:"Geral",cacheUsage:"Uso de armazenamento",cacheMeterPct:"{pct}% cheio",cacheMeterUsed:"{used} de {limit}",cacheMeterEntries:"{count} entradas",cacheMeterFound:"Jogos encontrados",cacheMeterMissing:"Não encontrados",cacheMeterFree:"Livre",cacheContents:"Consultas salvas",cacheListEmpty:"Nada ainda — abra páginas da loja e elas aparecem aqui.",cacheRemoveEntry:"Remover esta entrada",cacheEntryNotFound:"Não encontrado",cacheListMore:"…e mais {count}",settingsWord:"Configurações",sectionDisplay:"Exibição",resetSettings:"Redefinir padrões",cardDisplay:"Modo de exibição",cardDisplayBadge:"Selo nos cartões",cardDisplayHover:"Dica ao passar o cursor",cardDisplayHint:"Como o cartão GameStatus abre nas listas. A página do jogo não muda.",cardDisplayContext:"Botão direito",cardDisplayHotkey:"Clique + tecla",displayKey:"Tecla",displayKeyHint:"Segure esta tecla e clique num jogo para abrir seu cartão. Sem a tecla, o clique navega normalmente.",displayKeyPress:"Pressione uma tecla…",cardPosition:"Posição do cartão",cardPositionHint:"Lado do jogo em que o cartão do GameStatus prefere abrir. O lado escolhido é apenas uma preferência: sem espaço suficiente, o cartão abre no próximo lado em que couber.",badgeDisabledHint:"Posição e tamanho valem apenas no modo «Selo nos cartões»."},de:{notInDatabase:"Nicht in der Datenbank",cracked:"Bereit",notCracked:"Ausstehend",protectionBypass:"Schutz-Umgehung",releaseToday:"Release heute",unknownStatus:"Status unbekannt",gameNotFound:"Spiel nicht in der gamestatus.info-Datenbank gefunden",status:"Status",protection:"Schutz",group:"Gruppe",release:"Release",crack:"Aktualisiert",steamId:"Steam ID",score:"Bewertung",metacritic:"Metacritic",type:"Typ",subscriptions:"Abonnements",hardware:"Hardware",supportProject:"Projekt unterstützen",loadError:"Ladefehler",loading:"GameStatus…",menuSettings:"Steam GameStatus — Einstellungen",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · Cache · Anzeige",close:"Schließen",cancel:"Abbrechen",save:"Speichern",saveReload:"Speichern & neu laden",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position auf Karten",badgeVertical:"Vertikal",badgeHorizontal:"Horizontal",posTop:"Oben",posBottom:"Unten",posLeft:"Links",posRight:"Rechts",badgePositionHint:"Gilt für Badges auf Store-Karten. Auf der Spielseite bleibt der Chip in der Kopfzeile.",badgeSize:"Größe auf Karten",sizeSmall:"Klein",sizeMedium:"Mittel",sizeLarge:"Groß",sizeXLarge:"Sehr groß",badgeSizeHint:"Gilt für Badges auf Store-Karten. Auf der Spieleseite bleibt die Größe unverändert.",showMissing:"„Nicht in der Datenbank“ anzeigen",showMissingHint:"Wenn aus, bleiben Karten ohne GameStatus-Treffer ohne Badge.",on:"AN",off:"AUS",cacheHours:"Cache-Dauer (Stunden)",cacheHoursHint:"Wie lange API-Ergebnisse wiederverwendet werden (inkl. nicht gefunden). 0 deaktiviert den Cache. Leeren oder neu laden zum Sofortabruf.",clearCache:"Cache leeren",cacheCleared:"Cache geleert ({count})",cacheEmpty:"Cache ist leer",cacheClearHint:"Entfernt alle gespeicherten GameStatus-Abfragen in diesem Browserprofil.",repoLink:"GitHub",repoAbout:"Quellcode, Updates und Fehlerberichte",tabAbout:"Über das Skript",aboutBlurb:"Zeigt GameStatus.info-Badges auf Steam-Karten und Spielseiten: Status, Wertungen und Details im Tooltip.",language:"Oberflächensprache",languageHint:"Das Panel gilt sofort; Seite neu laden, um Badges und Tooltips zu übersetzen.",langAuto:"Auto (Browser)",tabGeneral:"Allgemein",cacheUsage:"Speichernutzung",cacheMeterPct:"{pct}% voll",cacheMeterUsed:"{used} von {limit}",cacheMeterEntries:"{count} Einträge",cacheMeterFound:"Gefundene Spiele",cacheMeterMissing:"Nicht gefunden",cacheMeterFree:"Frei",cacheContents:"Gespeicherte Abfragen",cacheListEmpty:"Noch nichts — Shopseiten öffnen, dann erscheinen sie hier.",cacheRemoveEntry:"Diesen Eintrag entfernen",cacheEntryNotFound:"Nicht gefunden",cacheListMore:"…und {count} weitere",settingsWord:"Einstellungen",sectionDisplay:"Anzeige",resetSettings:"Zurücksetzen",cardDisplay:"Anzeigemodus",cardDisplayBadge:"Badge auf den Karten",cardDisplayHover:"Tooltip beim Darüberfahren",cardDisplayHint:"Wie sich die GameStatus-Karte in den Listen öffnet. Die Spielseite bleibt gleich.",cardDisplayContext:"Rechtsklick",cardDisplayHotkey:"Klick + Taste",displayKey:"Taste",displayKeyHint:"Halte diese Taste und klicke auf ein Spiel, um seine Karte zu öffnen. Ohne Taste navigiert der Klick wie gewohnt.",displayKeyPress:"Taste drücken…",cardPosition:"Position der Karte",cardPositionHint:"An welcher Seite des Spiels die GameStatus-Karte bevorzugt erscheint. Die gewählte Seite ist nur eine Präferenz: Ist dort kein Platz, öffnet sich die Karte an der nächsten Seite mit Platz.",badgeDisabledHint:"Position und Größe gelten nur im Modus „Badge auf den Karten“."},fr:{notInDatabase:"Absent de la base",cracked:"Prêt",notCracked:"En attente",protectionBypass:"Contournement",releaseToday:"Sortie aujourd'hui",unknownStatus:"Statut inconnu",gameNotFound:"Jeu introuvable dans la base gamestatus.info",status:"Statut",protection:"Protection",group:"Groupe",release:"Sortie",crack:"Mis à jour",steamId:"Steam ID",score:"Note",metacritic:"Metacritic",type:"Type",subscriptions:"Abonnements",hardware:"Configuration",supportProject:"Soutenir le projet",loadError:"Erreur de chargement",loading:"GameStatus…",menuSettings:"Steam GameStatus — Paramètres",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Badges · cache · affichage",close:"Fermer",cancel:"Annuler",save:"Enregistrer",saveReload:"Enregistrer et recharger",sectionBadge:"Badge",sectionCache:"Cache",badgePosition:"Position sur les cartes",badgeVertical:"Vertical",badgeHorizontal:"Horizontal",posTop:"Haut",posBottom:"Bas",posLeft:"Gauche",posRight:"Droite",badgePositionHint:"S’applique aux badges des cartes boutique. Sur la page jeu, le chip reste dans l’en-tête.",badgeSize:"Taille sur les cartes",sizeSmall:"Petit",sizeMedium:"Moyen",sizeLarge:"Grand",sizeXLarge:"Très grand",badgeSizeHint:"S’applique aux badges des cartes du magasin. Sur la page du jeu, la taille ne change pas.",showMissing:"Afficher « absent de la base »",showMissingHint:"Si désactivé, les cartes sans correspondance GameStatus restent sans badge.",on:"ON",off:"OFF",cacheHours:"Durée du cache (heures)",cacheHoursHint:"Combien de temps réutiliser les résultats API (y compris introuvable). 0 désactive le cache. Vider ou recharger pour refetch.",clearCache:"Vider le cache",cacheCleared:"Cache vidé ({count})",cacheEmpty:"Le cache est vide",cacheClearHint:"Supprime toutes les requêtes GameStatus enregistrées dans ce profil navigateur.",repoLink:"GitHub",repoAbout:"Code source, mises à jour et signalements",tabAbout:"À propos du script",aboutBlurb:"Affiche les badges GameStatus.info sur les cartes et pages Steam : statut, scores et détails en infobulle.",language:"Langue de l’interface",languageHint:"Le panneau change aussitôt ; rechargez la page pour traduire badges et infobulles.",langAuto:"Auto (navigateur)",tabGeneral:"Général",cacheUsage:"Utilisation du stockage",cacheMeterPct:"{pct}% plein",cacheMeterUsed:"{used} sur {limit}",cacheMeterEntries:"{count} entrées",cacheMeterFound:"Jeux trouvés",cacheMeterMissing:"Introuvables",cacheMeterFree:"Libre",cacheContents:"Requêtes enregistrées",cacheListEmpty:"Rien pour l’instant — ouvrez des pages du magasin, elles apparaîtront ici.",cacheRemoveEntry:"Supprimer cette entrée",cacheEntryNotFound:"Introuvable",cacheListMore:"…et {count} autres",settingsWord:"Paramètres",sectionDisplay:"Affichage",resetSettings:"Réinitialiser",cardDisplay:"Mode d’affichage",cardDisplayBadge:"Badge sur les fiches",cardDisplayHover:"Info-bulle au survol",cardDisplayHint:"Comment la fiche GameStatus s’ouvre dans les listes. La page du jeu ne change pas.",cardDisplayContext:"Clic droit",cardDisplayHotkey:"Clic + touche",displayKey:"Touche",displayKeyHint:"Maintenez cette touche et cliquez sur un jeu pour ouvrir sa fiche. Sans la touche, le clic navigue normalement.",displayKeyPress:"Appuyez sur une touche…",cardPosition:"Position de la carte",cardPositionHint:"Côté du jeu où la carte GameStatus préfère s’ouvrir. Le côté choisi n’est qu’une préférence : sans assez de place, la carte s’ouvre du côté suivant qui convient.",badgeDisabledHint:"La position et la taille ne s’appliquent qu’en mode « Badge sur les fiches »."},ja:{notInDatabase:"データベースに未登録",cracked:"準備完了",notCracked:"保留中",protectionBypass:"保護回避",releaseToday:"本日リリース",unknownStatus:"ステータス不明",gameNotFound:"gamestatus.info のデータベースにゲームが見つかりません",status:"ステータス",protection:"保護",group:"グループ",release:"リリース",crack:"更新",steamId:"Steam ID",score:"スコア",metacritic:"Metacritic",type:"タイプ",subscriptions:"購読数",hardware:"スペック",supportProject:"プロジェクトを支援",loadError:"読み込みエラー",loading:"GameStatus…",menuSettings:"Steam GameStatus — 設定",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"バッジ · キャッシュ · 表示",close:"閉じる",cancel:"キャンセル",save:"保存",saveReload:"保存して再読み込み",sectionBadge:"バッジ",sectionCache:"キャッシュ",badgePosition:"カード上の位置",badgeVertical:"上下",badgeHorizontal:"左右",posTop:"上",posBottom:"下",posLeft:"左",posRight:"右",badgePositionHint:"ストアカードのバッジに適用。ゲームページのチップはヘッダーのままです。",badgeSize:"カード上のサイズ",sizeSmall:"小",sizeMedium:"中",sizeLarge:"大",sizeXLarge:"特大",badgeSizeHint:"ストアカードのバッジに適用されます。ゲームページのチップサイズは変わりません。",showMissing:"「未登録」バッジを表示",showMissingHint:"オフにすると、GameStatus にないゲームはバッジなしのままになります。",on:"ON",off:"OFF",cacheHours:"キャッシュ期間(時間)",cacheHoursHint:"API 結果(未検出含む)を再利用する時間。0 でキャッシュ無効。クリアまたは再読み込みで即再取得。",clearCache:"キャッシュをクリア",cacheCleared:"キャッシュをクリアしました({count})",cacheEmpty:"キャッシュは空です",cacheClearHint:"このブラウザプロファイルに保存された GameStatus の結果をすべて削除します。",repoLink:"GitHub",repoAbout:"ソースコード・更新・不具合報告",tabAbout:"スクリプトについて",aboutBlurb:"Steam のカードやゲームページに GameStatus.info のバッジを表示します:ステータス・スコア・詳細ツールチップ。",language:"表示言語",languageHint:"パネルは即時反映。バッジやツールチップの翻訳には再読み込み。",langAuto:"自動(ブラウザ)",tabGeneral:"一般",cacheUsage:"ストレージ使用量",cacheMeterPct:"使用率 {pct}%",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count} 件",cacheMeterFound:"見つかったゲーム",cacheMeterMissing:"未検出",cacheMeterFree:"空き",cacheContents:"保存済みの問い合わせ",cacheListEmpty:"まだありません — ストアページを開くとここに表示されます。",cacheRemoveEntry:"このエントリを削除",cacheEntryNotFound:"未検出",cacheListMore:"…あと {count} 件",settingsWord:"設定",sectionDisplay:"表示",resetSettings:"デフォルトに戻す",cardDisplay:"カード表示モード",cardDisplayBadge:"カードにバッジ表示",cardDisplayHover:"ホバーでツールチップ表示",cardDisplayHint:"ストア一覧での GameStatus カードの開き方。ゲームページは変わりません。",cardDisplayContext:"右クリック",cardDisplayHotkey:"クリック + キー",displayKey:"トリガーキー",displayKeyHint:"このキーを押しながらゲームをクリックするとカードを開きます。キーなしのクリックは通常通り移動します。",displayKeyPress:"キーを押してください…",cardPosition:"カードの表示位置",cardPositionHint:"GameStatus カードをゲームのどちら側に優先して開くか。選んだ側はあくまで優先で、スペースが足りない場合は入る次の側に自動で開きます。",badgeDisabledHint:"位置とサイズは「カードにバッジ表示」モードでのみ有効です。"},ko:{notInDatabase:"데이터베이스에 없음",cracked:"준비됨",notCracked:"대기 중",protectionBypass:"보호 우회",releaseToday:"오늘 출시",unknownStatus:"상태 불명",gameNotFound:"gamestatus.info 데이터베이스에서 게임을 찾을 수 없습니다",status:"상태",protection:"보호",group:"그룹",release:"출시",crack:"업데이트",steamId:"Steam ID",score:"점수",metacritic:"Metacritic",type:"유형",subscriptions:"구독 수",hardware:"사양",supportProject:"프로젝트 후원",loadError:"로드 오류",loading:"GameStatus…",menuSettings:"Steam GameStatus — 설정",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"배지 · 캐시 · 표시",close:"닫기",cancel:"취소",save:"저장",saveReload:"저장 후 새로고침",sectionBadge:"배지",sectionCache:"캐시",badgePosition:"카드 위치",badgeVertical:"세로",badgeHorizontal:"가로",posTop:"위",posBottom:"아래",posLeft:"왼쪽",posRight:"오른쪽",badgePositionHint:"스토어 카드 배지에 적용됩니다. 게임 페이지 칩은 헤더에 유지됩니다.",badgeSize:"카드 크기",sizeSmall:"작게",sizeMedium:"보통",sizeLarge:"크게",sizeXLarge:"매우 크게",badgeSizeHint:"스토어 카드 배지에 적용됩니다. 게임 페이지 칩 크기는 그대로입니다.",showMissing:"“데이터베이스에 없음” 표시",showMissingHint:"끄면 GameStatus에 없는 게임은 배지 없이 남습니다.",on:"ON",off:"OFF",cacheHours:"캐시 기간(시간)",cacheHoursHint:"API 결과(미발견 포함)를 재사용하는 시간. 0은 캐시 비활성화. 비우거나 새로고침하면 즉시 다시 요청.",clearCache:"캐시 비우기",cacheCleared:"캐시를 비웠습니다 ({count})",cacheEmpty:"캐시가 비어 있습니다",cacheClearHint:"이 브라우저 프로필에 저장된 모든 GameStatus 조회를 삭제합니다.",repoLink:"GitHub",repoAbout:"소스 코드, 업데이트 및 문제 제보",tabAbout:"스크립트 정보",aboutBlurb:"Steam 상점 카드와 게임 페이지에 GameStatus.info 배지를 표시합니다: 상태, 점수 및 툴팁 상세 정보.",language:"인터페이스 언어",languageHint:"패널은 즉시 적용되며, 배지와 툴팁 번역은 새로고침 후 적용됩니다.",langAuto:"자동(브라우저)",tabGeneral:"일반",cacheUsage:"저장소 사용량",cacheMeterPct:"{pct}% 사용 중",cacheMeterUsed:"{used} / {limit}",cacheMeterEntries:"{count}개 항목",cacheMeterFound:"찾은 게임",cacheMeterMissing:"미발견",cacheMeterFree:"여유",cacheContents:"저장된 조회",cacheListEmpty:"아직 없음 — 상점 페이지를 열면 여기에 표시됩니다.",cacheRemoveEntry:"이 항목 삭제",cacheEntryNotFound:"미발견",cacheListMore:"…{count}개 더",settingsWord:"설정",sectionDisplay:"표시",resetSettings:"기본값으로 재설정",cardDisplay:"카드 표시 모드",cardDisplayBadge:"카드에 배지 표시",cardDisplayHover:"호버 시 툴팁 표시",cardDisplayHint:"상점 목록에서 GameStatus 카드를 여는 방식. 게임 페이지는 바뀌지 않습니다.",cardDisplayContext:"오른쪽 클릭",cardDisplayHotkey:"클릭 + 키",displayKey:"트리거 키",displayKeyHint:"이 키를 누른 채 게임을 클릭하면 카드가 열립니다. 키 없이 클릭하면 평소처럼 이동합니다.",displayKeyPress:"키를 누르세요…",cardPosition:"카드 위치",cardPositionHint:"GameStatus 카드가 게임의 어느 쪽에 열릴지 우선순위입니다. 선택한 쪽은 우선일 뿐이며, 공간이 부족하면 들어갈 수 있는 다음 쪽에 자동으로 열립니다.",badgeDisabledHint:"위치와 크기는 “카드에 배지 표시” 모드에서만 적용됩니다."},pl:{notInDatabase:"Brak w bazie",cracked:"Gotowe",notCracked:"Oczekujące",protectionBypass:"Obejście zabezpieczeń",releaseToday:"Premiera dziś",unknownStatus:"Nieznany status",gameNotFound:"Gry nie znaleziono w bazie gamestatus.info",status:"Status",protection:"Zabezpieczenie",group:"Grupa",release:"Premiera",crack:"Zaktualizowano",steamId:"Steam ID",score:"Ocena",metacritic:"Metacritic",type:"Typ",subscriptions:"Subskrypcje",hardware:"Sprzęt",supportProject:"Wspieraj projekt",loadError:"Błąd ładowania",loading:"GameStatus…",menuSettings:"Steam GameStatus — Ustawienia",btnTitle:"Steam GameStatus",btnText:"GameStatus",panelTitle:"GameStatus",panelSubtitle:"Odznaki · cache · wyświetlanie",close:"Zamknij",cancel:"Anuluj",save:"Zapisz",saveReload:"Zapisz i odśwież",sectionBadge:"Odznaka",sectionCache:"Cache",badgePosition:"Pozycja na kartach",badgeVertical:"Pionowo",badgeHorizontal:"Poziomo",posTop:"Góra",posBottom:"Dół",posLeft:"Lewo",posRight:"Prawo",badgePositionHint:"Dotyczy odznak na kartach sklepu. Na stronie gry chip zostaje w nagłówku.",badgeSize:"Rozmiar na kartach",sizeSmall:"Mały",sizeMedium:"Średni",sizeLarge:"Duży",sizeXLarge:"Bardzo duży",badgeSizeHint:"Dotyczy odznak na kartach sklepu. Na stronie gry rozmiar chipa się nie zmienia.",showMissing:"Pokazuj „brak w bazie”",showMissingHint:"Gdy wyłączone, karty bez dopasowania w GameStatus pozostają bez odznaki.",on:"WŁ",off:"WYŁ",cacheHours:"Czas cache (godziny)",cacheHoursHint:"Jak długo ponownie używać wyników API (w tym nie znaleziono). 0 wyłącza cache. Wyczyść lub odśwież, by pobrać od razu.",clearCache:"Wyczyść cache",cacheCleared:"Cache wyczyszczony ({count})",cacheEmpty:"Cache jest pusty",cacheClearHint:"Usuwa wszystkie zapisane zapytania GameStatus w tym profilu przeglądarki.",repoLink:"GitHub",repoAbout:"Kod źródłowy, aktualizacje i zgłoszenia błędów",tabAbout:"O skrypcie",aboutBlurb:"Pokazuje odznaki GameStatus.info na kartach i stronach gier Steam: status, oceny i szczegóły w podpowiedzi.",language:"Język interfejsu",languageHint:"Panel zmienia się od razu; odśwież stronę, by przetłumaczyć odznaki i podpowiedzi.",langAuto:"Auto (przeglądarka)",tabGeneral:"Ogólne",cacheUsage:"Zużycie pamięci",cacheMeterPct:"{pct}% pełne",cacheMeterUsed:"{used} z {limit}",cacheMeterEntries:"{count} wpisów",cacheMeterFound:"Znalezione gry",cacheMeterMissing:"Nieznalezione",cacheMeterFree:"Wolne",cacheContents:"Zapisane zapytania",cacheListEmpty:"Jeszcze pusto — otwieraj strony sklepu, a pojawią się tutaj.",cacheRemoveEntry:"Usuń ten wpis",cacheEntryNotFound:"Nie znaleziono",cacheListMore:"…i {count} więcej",settingsWord:"Ustawienia",sectionDisplay:"Wyświetlanie",resetSettings:"Przywróć domyślne",cardDisplay:"Tryb wyświetlania",cardDisplayBadge:"Odznaka na kartach",cardDisplayHover:"Podpowiedź po najechaniu",cardDisplayHint:"Jak otwiera się karta GameStatus na listach. Strona gry bez zmian.",cardDisplayContext:"Prawy przycisk",cardDisplayHotkey:"Klik + klawisz",displayKey:"Klawisz",displayKeyHint:"Przytrzymaj ten klawisz i kliknij grę, aby otworzyć kartę. Klik bez klawisza działa jak zwykle.",displayKeyPress:"Naciśnij klawisz…",cardPosition:"Pozycja karty",cardPositionHint:"Po której stronie gry karta GameStatus ma się preferencyjnie otwierać. Wybrana strona to tylko preferencja: gdy brakuje miejsca, karta otwiera się po następnej stronie, która się zmieści.",badgeDisabledHint:"Pozycja i rozmiar działają tylko w trybie „Odznaka na kartach”."}});let be="en";function fe(e){const t=String(e||"").trim().toLowerCase();return b[t]||b[t.split("-")[0]]||null}function ye(e="auto"){return be="auto"===e?function(){var e;const t=(null==(e=navigator.languages)?void 0:e.length)?navigator.languages:[navigator.language];for(const a of t){const e=fe(a);if(e)return e}return "en"}():fe(e)||"en",be}function ve(){return be}function Se(e,t={}){var a,n,s;const i=null!=(s=null!=(n=null==(a=me[be])?void 0:a[e])?n:me.en[e])?s:e;return Object.entries(t).reduce((e,[t,a])=>e.split(`{${t}}`).join(String(a)),i)}function _e(){return navigator.language||"en-US"}function we(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function ke(e){if(!e)return null;const t=we(e);return t?t.toLocaleDateString(_e()):e}function ze(e){const t=Math.max(0,Number(e)||0);return t<1024?`${Math.round(t)} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(2)} MB`}function $e(e){return `https://gamestatus.info/back/api/gameinfo/game/${encodeURIComponent(e)}/`}async function He(e,t){const a=await function(e){const t=_e();return new Promise((a,s)=>{n({method:"GET",url:e,headers:{Accept:"application/json","Accept-Language":t},timeout:15e3,onload(e){if(404!==e.status)if(e.status<200||e.status>=300)s(new Error(`HTTP ${e.status}`));else try{a(JSON.parse(e.responseText));}catch(t){s(t);}else a(null);},onerror:()=>s(new Error("Network error")),ontimeout:()=>s(new Error("Timeout"))});})}($e(e));return function(e,t){return !(!e||e.steam_prod_id&&String(e.steam_prod_id)!==String(t))}(a,t)?a:null}async function Me(e,t,a){const n=t.slice(0,2);for(const i of n)try{const n=await He(i,e);if(n)return {data:n,slug:i,slugs:t,triedUrls:a,apiUrl:$e(i),missing:!1}}catch(s){}return null}function Ee(e,t,a){const n=String(e),s=j(n);return s?Promise.resolve(s):(C.has(n)||C.set(n,(i=()=>async function(e,t,a){const n=j(e);if(n)return n;let s=de(a)?"":a,i=ge(e,t,s),o=i.map($e),r=false;if(!i.length){const a=await X(e);r=true,a&&(s=a,i=ge(e,t,s),o=i.map($e));}let c=await Me(e,i,o);if(c)return x(e,c),c;if(!r){const a=await X(e);if(a&&a!==s){const n=ge(e,t,a),r=[...new Set([...o,...n.map($e)])];if(c=await Me(e,n,r),c)return x(e,c),c;i=n.length?n:i,o=r,s=a;}}return c={data:null,slug:i[0]||null,slugs:i,triedUrls:o,missing:true},x(e,c),c}(e,t,a),new Promise((e,t)=>{O.push({task:i,resolve:e,reject:t}),V();})).finally(()=>{C.delete(n);})),C.get(n));var i;}function Le(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function Ae(e){return Le(e).replace(/`/g,"`")}const Ce=15;function Pe(e,t,a,n){const s=t.left+t.width/2,i=t.top+t.height/2;switch(e){case "left":return {left:t.left-7-a,top:i-n/2};case "right":return {left:t.left+t.width+7,top:i-n/2};case "top":return {left:s-a/2,top:t.top-7-n};case "bottom":return {left:s-a/2,top:t.top+t.height+7};default:return {left:t.left,top:t.top}}}function Be(e,t,a,n,s){return e.left>=Ce&&e.top>=Ce&&e.left+t<=n-Ce&&e.top+a<=s-Ce}function De(e,t,a,n,s){const i=Math.max(e.left,Ce),o=Math.min(e.left+t,n-Ce),r=Math.max(e.top,Ce),c=Math.min(e.top+a,s-Ce);return Math.max(0,o-i)*Math.max(0,c-r)}function Ge(e){if(!e)return "missing";const t=String(e.readable_status||"").toLowerCase(),a=String(e.hacked_groups_en||e.hacked_groups||"").toLowerCase();return /release today|релиз сегодня|выходит сегодня/.test(t)?"release-today":/bypass|обход|hypervisor/.test(a)||/bypass|обход/.test(t)?"bypass":/not cracked|не взлом|не взломан|unbroken|unreleased crack/.test(t)?function(e){const t=we(e.release_date);if(!t)return "not-cracked-recent";const a=new Date;return a.setMonth(a.getMonth()-1),t>a?"not-cracked-recent":"not-cracked-old"}(e):e.crack_date||/cracked|взлом/.test(t)?"cracked":"unknown"}function qe(e,t){return e?e.readable_status?e.readable_status:Se("cracked"===t?"cracked":"not-cracked-recent"===t||"not-cracked-old"===t?"notCracked":"bypass"===t?"protectionBypass":"release-today"===t?"releaseToday":"unknownStatus"):Se("notInDatabase")}function Te(e,t){return t?`\n
${Le(Se("gameNotFound"))}
\n${Le(g)}
${Le(Se("languageHint"))}
\n${Le(Se("cardDisplayHint"))}
\n${Le(Se("displayKeyHint"))}
\n \n${Le(Se("cardPositionHint"))}
\n${Le(Se("badgeDisabledHint"))}
\n \n \n${Le(Se("badgeSizeHint"))}
\n${Le(Se("badgePositionHint"))}
\n${Le(Se("showMissingHint"))}
\n${Le(Se("cacheHoursHint"))}
\n${Le(Se("cacheClearHint"))}
\n \n${Le(Se("aboutBlurb"))}
\n \n \n \n \n${Le(Se("repoAbout"))}
\n