/* Scans only. Loaded after shared workspace styles. */
.workspace-page #scansView .scan-page-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.workspace-page #scansView {
  --scan-card: #0d0f13;
  --scan-line: #ffffff0e;
  --scan-muted: #88919e;
  --scan-blue: #729bcc;
  --scan-red: #df8593;
  --scan-yellow: #d9b174;
  --scan-green: #68b89a;
  min-width: 0;
}
.workspace-page #scansView .scans-view-heading { margin-bottom: 22px; align-items: center; }
.workspace-page #scansView .scans-view-heading h1 { margin: 5px 0 0; font-size: 27px; letter-spacing: -.045em; }
.workspace-page #scansView .scans-retention-note { display: inline-flex; align-items: center; gap: 7px; color: var(--scan-muted); font-size: 11px; }
.workspace-page #scansView .scans-retention-note svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.65; }
.workspace-page #scansView .workspace-scans-grid { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 20px; align-items: start; }
.workspace-page #scansView .panel { min-width: 0; border: 1px solid var(--scan-line); border-radius: 6px; background: var(--scan-card); box-shadow: none; overflow: hidden; }
.workspace-page #scansView .scan-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 21px; border-bottom: 0; }
.workspace-page #scansView .scan-card-heading h2 { margin: 0; color: #eef1f7; font-size: 15px; line-height: 1.35; font-weight: 600; letter-spacing: -.025em; }
.workspace-page #scansView .scan-card-heading p { margin: 6px 0 0; color: var(--scan-muted); font-size: 11px; line-height: 1.5; }
.workspace-page #scansView .scan-refresh-button,
.workspace-page #scansView .scan-copy-button,
.workspace-page #scansView .scan-page-button { display: inline-grid; place-items: center; width: 31px; height: 31px; flex: none; padding: 0; color: #969faa; background: transparent; border: 1px solid transparent; border-radius: 4px; cursor: pointer; transition: color .15s,background .15s; }
.workspace-page #scansView :is(.scan-refresh-button,.scan-copy-button,.scan-page-button):hover:not(:disabled) { color: #d9e3ee; background: #ffffff06; border-color: transparent; }
.workspace-page #scansView :is(.scan-refresh-button,.scan-copy-button,.scan-page-button) svg { width: 15px; height: 15px; }
.workspace-page #scansView .scan-history-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 21px 17px; }
.workspace-page #scansView .scan-page-size-label { display: flex; align-items: center; gap: 8px; color: var(--scan-muted); font-size: 11px; white-space: nowrap; }
.workspace-page #scansView .scan-page-size-label select { min-width: 59px; height: 31px; padding: 0 8px; color: #c6ccd5; background: #13161b; border: 1px solid #ffffff0b; border-radius: 4px; font: inherit; outline: none; color-scheme: dark; }
.workspace-page #scansView .scan-search-label { display: flex; align-items: center; gap: 8px; width: min(230px,50%); min-width: 120px; height: 32px; padding: 0 10px; border: 1px solid #ffffff0c; border-radius: 4px; background: #0a0c0f; transition: border-color .15s; }
.workspace-page #scansView .scan-search-label:focus-within { border-color: #729bcc80; }
.workspace-page #scansView .scan-search-label svg { width: 14px; height: 14px; flex: none; fill: none; stroke: #71829a; stroke-width: 1.6; }
.workspace-page #scansView .scan-search-label input { width: 100%; min-width: 0; min-height: 0; padding: 0; font: inherit; font-size: 11px; color: #e7ecf5; background: none; border: 0; outline: 0; }
.workspace-page #scansView .scan-search-label input::placeholder { color: #69778b; }
.workspace-page #scansView .scan-history-table { min-width: 0; }
.workspace-page #scansView :is(.scan-head,.scan-row,.scan-list-row,.scan-history-row) { display: grid; grid-template-columns: minmax(170px,1.65fr) 74px 100px minmax(100px,1fr); align-items: center; gap: 12px; padding-inline: 21px; }
.workspace-page #scansView .scan-head { padding-block: 11px; color: #89919e; background: #ffffff02; border-top: 0; border-bottom: 1px solid var(--scan-line); font-size: 10px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.workspace-page #scansView .scan-history-rows { min-height: 350px; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) { position: relative; width: 100%; min-height: 80px; padding-block: 13px; border: 0; border-bottom: 1px solid var(--scan-line); background: transparent; color: #d9dee6; text-align: left; text-decoration: none; font-size: 11px; cursor: pointer; transition: background .15s; animation: none; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row):hover { background: #ffffff05; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row):last-child { border-bottom: 0; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) > * { min-width: 0; }
.workspace-page #scansView .scan-list-row > * { grid-area: auto; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) strong { display: block; color: #e7ecf5; font-size: 12px; font-weight: 600; line-height: 1.5; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) small { display: block; margin-top: 3px; color: #73829b; font-size: 10px; line-height: 1.4; }
.workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) :is(.scan-person,.scan-details) { display: flex; align-items: center; gap: 10px; min-width: 0; }
.workspace-page #scansView .scan-player-copy { display: block; min-width: 0; }
.workspace-page #scansView .scan-player-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace-page #scansView .scan-player-copy time { display: block; margin-top: 3px; color: #73829b; font-size: 9px; line-height: 1.5; }
.workspace-page #scansView :is(.scan-avatar,.scan-person-avatar) { position: relative; display: grid; place-items: center; width: 36px; height: 36px; flex: none; border: 0; border-radius: 4px; background: #1b1e24; color: #8d97a5; overflow: hidden; font-size: 12px; }
.workspace-page #scansView :is(.scan-avatar,.scan-person-avatar) img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.workspace-page #scansView .scan-avatar-fallback { display: grid; place-items: center; width: 100%; height: 100%; }
.workspace-page #scansView .scan-avatar-fallback svg { display: block; width: 21px; height: 21px; fill: currentColor; }
.workspace-page #scansView .scan-avatar.has-image .scan-avatar-fallback { visibility: hidden; }
.workspace-page #scansView .scan-avatar.has-image { background: transparent; }
.workspace-page #scansView .scan-avatar.avatar-loading { color: #727f90; background: #1a1e25; }
.workspace-page #scansView :is(.scan-pin,.scan-row-pin) { display: inline-flex; align-items: center; gap: 2px; padding: 0; border: 0; border-radius: 0; color: #8e9eb3; background: transparent; font: 9px/1.5 ui-monospace,Consolas,monospace; letter-spacing: .035em; }
.workspace-page #scansView :is(.scan-pin,.scan-row-pin) > span { display: inline; width: auto; min-width: 6px; height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; }
.workspace-page #scansView :is(.scan-game,.scan-game-cell) { display: inline-flex; align-items: center; gap: 6px; color: #a8b8ce; font-size: 10px; }
.workspace-page #scansView :is(.scan-game,.scan-game-cell) svg { width: 19px; height: 23px; flex: none; fill: #a8b8ce; stroke: none; }
.workspace-page #scansView .scan-game img { width: 31px; height: 32px; object-fit: contain; flex: none; }
.workspace-page #scansView .result-pill { display: inline-flex; align-items: center; gap: 5px; padding: 0; border-radius: 0; border: 0; background: transparent; font-size: 10px; font-weight: 500; line-height: 1.4; }
.workspace-page #scansView .result-pill::before { content: ''; display: block; width: 4px; height: 4px; flex: none; border-radius: 50%; background: currentColor; }
.workspace-page #scansView .result-pill.Detected { color: var(--scan-red); background: transparent; }
.workspace-page #scansView .result-pill.Warning { color: var(--scan-yellow); background: transparent; }
.workspace-page #scansView .result-pill.Clean { color: var(--scan-green); background: transparent; }
.workspace-page #scansView .scan-indications { display: grid; align-content: center; gap: 7px; min-width: 0; }
.workspace-page #scansView :is(.scan-indicator-bar,.scan-indication-bar) { display: flex; align-items: center; width: 100%; height: 6px; gap: 0; overflow: hidden; border-radius: 3px; background: #1b2431; }
.workspace-page #scansView :is(.scan-indicator-bar,.scan-indication-bar) > span { display: block; flex: 0 0 auto; min-width: 0; height: 100%; border-radius: 0; }
.workspace-page #scansView .scan-indication-bar [data-level="detected"] { background: var(--scan-red); }
.workspace-page #scansView .scan-indication-bar [data-level="warning"] { background: var(--scan-yellow); }
.workspace-page #scansView .scan-indication-bar [data-level="clean"] { background: var(--scan-green); }
.workspace-page #scansView .scan-indications small { margin: 0; color: #6e7f97; font-size: 8px; line-height: 1.4; }
.workspace-page #scansView :is(.scan-indications,.scan-indicator-bar) .detected { background: var(--scan-red); }
.workspace-page #scansView :is(.scan-indications,.scan-indicator-bar) .warning { background: var(--scan-yellow); }
.workspace-page #scansView :is(.scan-indications,.scan-indicator-bar) .clean { background: var(--scan-green); }
.workspace-page #scansView .empty-list { display: grid; place-items: center; min-height: 280px; margin: 0; padding: 35px 21px; color: #7e8ca2; font-size: 12px; text-align: center; }
.workspace-page #scansView .scan-history-footer { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 16px 21px; border-top: 1px solid var(--scan-line); color: var(--scan-muted); font-size: 10px; }
.workspace-page #scansView .scan-page-navigation { display: flex; align-items: center; gap: 11px; }
.workspace-page #scansView #scanPageSummary { min-width: 32px; text-align: center; font-variant-numeric: tabular-nums; color: #a6b3c8; }
.workspace-page #scansView .scan-page-button { width: 27px; height: 27px; }
.workspace-page #scansView .scan-page-button:disabled { opacity: .32; cursor: default; }
.workspace-page #scansView .scan-load-older { text-align: center; }
.workspace-page #scansView .scan-load-older:has(button:not([hidden])) { padding: 0 21px 17px; }
.workspace-page #scansView .scan-load-older .text-button { color: #82adf4; font-size: 10px; text-decoration: none; cursor: pointer; }
.workspace-page #scansView .scans-sidebar { display: grid; gap: 18px; }
.workspace-page #scansView .scans-sidebar .scan-card-heading { padding: 17px 18px; }
.workspace-page #scansView :is(.scan-platform-label,.scan-private-badge) { display: inline-flex; align-items: center; gap: 5px; color: #77869d; font-size: 9px; white-space: nowrap; }
.workspace-page #scansView .scan-platform-label svg { width: 11px; height: 11px; }
.workspace-page #scansView .scan-private-badge svg { width: 11px; height: 11px; }
.workspace-page #scansView .scan-game-preview { position: relative; display: flex; align-items: end; gap: 15px; min-height: 176px; padding: 20px 22px; background: linear-gradient(0deg,#080e19f5,#080e1975 60%,#080e1925),url('/assets/scans/gta-v-banner.webp') center 40%/cover no-repeat; overflow: hidden; }
.workspace-page #scansView .scan-game-preview::after { position: absolute; inset: 0; content: ''; box-shadow: none; pointer-events: none; }
.workspace-page #scansView .scan-game-logo { position: relative; z-index: 1; display: grid; place-items: center; width: 47px; height: 62px; flex: none; color: #e6edf9; }
.workspace-page #scansView .scan-game-logo svg { width: 44px; height: 52px; fill: currentColor; stroke: none; }
.workspace-page #scansView .scan-game-logo img { display: block; width: 54px; height: 54px; max-width: 100%; object-fit: contain; }
.workspace-page #scansView .scan-game-preview > div { position: relative; z-index: 1; }
.workspace-page #scansView .scan-game-preview small { display: block; color: #6389bb; font-size: 8px; letter-spacing: .13em; }
.workspace-page #scansView .scan-game-preview strong { display: block; margin: 8px 0 6px; color: #e9effa; font-size: 18px; line-height: 1.3; font-weight: 600; letter-spacing: -.035em; }
.workspace-page #scansView .scan-game-preview div > span { color: #8293af; font-size: 10px; }
.workspace-page #scansView .scan-download-actions { display: flex; gap: 8px; padding: 16px 18px; }
.workspace-page #scansView .scan-download-actions .button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 35px; padding: 8px 10px; border-radius: 4px; font-size: 11px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.workspace-page #scansView .scan-download-actions svg { width: 14px; height: 14px; flex: none; }
.workspace-page #scansView .scan-generate-button { flex: 1.2; color: #f3f6fc; background: #265fae; border: 1px solid #3972bd; }
.workspace-page #scansView .scan-generate-button:hover:not(:disabled) { background: #2c6ac0; border-color: #477ec5; }
.workspace-page #scansView .scan-download-button { flex: 1; color: #b9c2cf; background: #16191f; border-color: #ffffff10; }
.workspace-page #scansView .scan-download-button svg { fill: none; stroke: currentColor; stroke-width: 1.65; }
.workspace-page #scansView #downloadScanner[aria-disabled="true"] { opacity: .4; cursor: default; }
.workspace-page #scansView .scan-pin-content { padding: 21px 18px 19px; text-align: center; }
.workspace-page #scansView .scan-pin-value { display: block; color: #aebed5; font: 500 23px/1.4 ui-monospace,Consolas,monospace; letter-spacing: .23em; font-variant-numeric: tabular-nums; }
.workspace-page #scansView #invitePinHint { margin: 9px 0 0; color: #77869d; font-size: 10px; line-height: 1.5; }
.workspace-page #scansView .invite-box { padding: 0 18px 17px; margin: 0; border-top: 0; }
.workspace-page #scansView .invite-box label { margin: 0 0 7px; color: #8492a7; font-size: 9px; }
.workspace-page #scansView .invite-box > div { display: flex; gap: 6px; }
.workspace-page #scansView .invite-box input { min-width: 0; min-height: 32px; padding: 7px 8px; border: 1px solid #ffffff10; border-radius: 4px; background: #0a0d13; color: #9eb9de; font: 10px/1.4 ui-monospace,Consolas,monospace; }
.workspace-page #scansView .invite-box small { margin: 8px 0 0; color: #74839a; font-size: 9px; line-height: 1.6; }
.workspace-page #scansView .scan-rates-period { color: #68788f; font-size: 9px; }
/* Cumulative percentage stops, set by workspace.js; all 0% means an empty track. */
.workspace-page #scansView .scan-rates-chart { position: relative; display: grid; place-items: center; width: 152px; height: 152px; margin: 23px auto 19px; border-radius: 50%; background: conic-gradient(from -90deg,var(--scan-red) 0 var(--scan-detected-end,0%),var(--scan-yellow) var(--scan-detected-end,0%) var(--scan-warning-end,0%),var(--scan-green) var(--scan-warning-end,0%) var(--scan-clean-end,0%),#24282f var(--scan-clean-end,0%) 100%); animation: none; }
.workspace-page #scansView .scan-rates-chart::before { position: absolute; inset: 17px; border-radius: 50%; content: ''; background: var(--scan-card); }
.workspace-page #scansView .scan-rates-center { position: relative; z-index: 1; text-align: center; }
.workspace-page #scansView .scan-rates-center strong { display: block; color: #e6ecf6; font-size: 28px; font-weight: 500; line-height: 1.3; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.workspace-page #scansView .scan-rates-center span { display: block; color: #70819a; font-size: 10px; }
.workspace-page #scansView .scan-rates-legend { display: grid; gap: 10px; margin: 0; padding: 0 24px 21px; }
.workspace-page #scansView .scan-rates-legend > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.workspace-page #scansView .scan-rates-legend dt { display: flex; align-items: center; gap: 8px; color: #9aa7bc; font-size: 11px; }
.workspace-page #scansView .scan-rates-legend dd { margin: 0; color: #d2dcea; font-size: 11px; font-variant-numeric: tabular-nums; }
.workspace-page #scansView .scan-rate-dot { width: 6px; height: 6px; border-radius: 50%; }
.workspace-page #scansView .scan-rate-dot.detected { background: var(--scan-red); }
.workspace-page #scansView .scan-rate-dot.warning { background: var(--scan-yellow); }
.workspace-page #scansView .scan-rate-dot.clean { background: var(--scan-green); }
.workspace-page #scansView :is(button,a,select,input):focus-visible { outline: 2px solid #729bcc; outline-offset: 3px; }
@media(min-width:1500px) { .workspace-page #scansView .workspace-scans-grid { grid-template-columns: minmax(0,1fr) 330px; gap: 24px; } }
@media(max-width:1180px) and (min-width:761px) { .workspace-page #scansView .workspace-scans-grid { grid-template-columns: minmax(0,1fr) 270px; gap: 15px; } .workspace-page #scansView :is(.scan-head,.scan-row,.scan-list-row,.scan-history-row) { grid-template-columns: minmax(125px,1.5fr) 41px 79px minmax(65px,1fr); gap: 8px; padding-inline: 14px; } .workspace-page #scansView :is(.scan-card-heading,.scan-history-controls,.scan-history-footer) { padding-inline: 14px; } .workspace-page #scansView :is(.scan-game,.scan-game-cell) { font-size: 0; } .workspace-page #scansView .scan-game-preview { padding-inline: 18px; gap: 12px; } .workspace-page #scansView .scan-download-actions { padding-inline: 12px; } }
@media(max-width:960px) { .workspace-page #scansView .workspace-scans-grid { grid-template-columns: minmax(0,1fr); } .workspace-page #scansView .scans-sidebar { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; } .workspace-page #scansView .scan-download-actions { flex-direction: column; } .workspace-page #scansView .scan-game-preview { min-height: 116px; gap: 8px; padding-inline: 14px; } .workspace-page #scansView .scan-game-logo { width: 32px; } .workspace-page #scansView .scan-game-logo svg { width: 29px; height: 39px; } .workspace-page #scansView .scan-game-preview strong { font-size: 15px; } .workspace-page #scansView .scan-rates-chart { width: 125px; height: 125px; } .workspace-page #scansView .scan-pin-value { font-size: 20px; letter-spacing: .15em; } .workspace-page #scansView .scan-private-badge { font-size: 0; } }
@media(max-width:620px) { .workspace-page #scansView .scans-retention-note { font-size: 10px; } .workspace-page #scansView .scans-sidebar { grid-template-columns: minmax(0,1fr); } .workspace-page #scansView .scan-history-controls { padding: 14px; gap: 8px; } .workspace-page #scansView .scan-page-size-label { gap: 5px; font-size: 10px; } .workspace-page #scansView .scan-page-size-label > span { display: none; } .workspace-page #scansView .scan-search-label { width: 62%; } .workspace-page #scansView :is(.scan-head,.scan-row,.scan-list-row,.scan-history-row) { grid-template-columns: minmax(112px,1.5fr) 27px 75px minmax(45px,.8fr); gap: 6px; padding-inline: 12px; } .workspace-page #scansView .scan-head { font-size: 8px; } .workspace-page #scansView :is(.scan-game,.scan-game-cell) { font-size: 0; } .workspace-page #scansView :is(.scan-avatar,.scan-person-avatar) { display: none; } .workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) strong { font-size: 11px; } .workspace-page #scansView :is(.scan-row,.scan-list-row,.scan-history-row) small { font-size: 9px; } .workspace-page #scansView .result-pill { padding: 4px 5px; font-size: 9px; } .workspace-page #scansView .scan-history-footer { padding: 13px 12px; font-size: 9px; } .workspace-page #scansView .scan-history-rows { min-height: 250px; } .workspace-page #scansView .scan-game-preview { padding: 22px 26px; gap: 20px; } .workspace-page #scansView .scan-game-logo { width: 52px; } .workspace-page #scansView .scan-game-logo svg { width: 39px; height: 49px; } .workspace-page #scansView .scan-game-preview strong { font-size: 19px; } .workspace-page #scansView .scan-download-actions { flex-direction: row; padding-inline: 18px; } .workspace-page #scansView .scan-rates-chart { width: 150px; height: 150px; } .workspace-page #scansView .scan-pin-value { font-size: 25px; letter-spacing: .25em; } .workspace-page #scansView .scan-private-badge { font-size: 9px; } }
@media(min-width:621px) and (max-width:960px) { .workspace-page #scansView .scans-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); } .workspace-page #scansView .scan-rates-card { display: grid; grid-template-columns: 180px minmax(0,1fr); grid-column: 1/-1; } .workspace-page #scansView .scan-rates-card .scan-card-heading { grid-column: 1/-1; } .workspace-page #scansView .scan-rates-legend { align-content: center; padding: 20px 24px 20px 5px; gap: 17px; } }
@media(max-width:620px) { .workspace-page #scansView :is(.scan-head,.scan-row,.scan-list-row,.scan-history-row) { grid-template-columns: minmax(126px,1.6fr) 24px 64px minmax(36px,.7fr); } .workspace-page #scansView :is(.scan-avatar,.scan-person-avatar) { display: grid; width: 36px; height: 36px; border-radius: 4px; } .workspace-page #scansView .scan-details { gap: 7px; } .workspace-page #scansView .result-pill { padding: 0; gap: 4px; } .workspace-page #scansView .scan-indications small { font-size: 7px; } }
@media(max-width:360px) { .workspace-page #scansView :is(.scan-head,.scan-row,.scan-list-row,.scan-history-row) { grid-template-columns: minmax(116px,1.6fr) 22px 58px minmax(30px,.7fr); gap: 4px; padding-inline: 10px; } .workspace-page #scansView .scan-game img { width: 23px; } }
@media(max-width:620px) { .workspace-page #scansView .scan-game img { width: 22px; height: 24px; } }
@media(prefers-reduced-motion:reduce) { .workspace-page #scansView *, .workspace-page #scansView *::before { animation: none !important; transition: none !important; } }
