/* Steam Deck games database: hub and curated lists ([pc_deck]). Builds on the .pc-gp card look.
   Deck blue is a small accent; status colours match the game page badge (.pc-deck-*). */
.pc-dk { --pc-dk: #1a9fff; --pc-dk-ink: #0b6fc0; --pc-dk-ver: #1f9d3a; --pc-dk-pla: #b7791f; }
.pc-gp.pc-dk > * + * { margin-top: 16px; }
@media (min-width: 700px) { .pc-gp.pc-dk > * + * { margin-top: 20px; } }

/* hero */
.pc-dk-hero { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--pc-radius, 16px); color: #fff; padding: 20px 16px 16px;
  background: radial-gradient(90% 120% at 100% 0%, rgba(26, 159, 255, .32) 0%, rgba(26, 159, 255, 0) 55%),
              radial-gradient(70% 90% at 0% 100%, rgba(232, 70, 26, .24) 0%, rgba(232, 70, 26, 0) 60%), #0d1520;
  box-shadow: 0 10px 30px rgba(13, 21, 32, .2); }
.pc-dk-kicker { margin: 0; font-size: .72em; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8fd0ff; }
.pc-gp .pc-dk-h1 { margin: 6px 0 8px; font-family: var(--pc-head); font-size: clamp(1.55em, 4.2vw, 2.35em); font-weight: 700; line-height: 1.1; color: #fff; letter-spacing: -.01em; }
.pc-dk-intro { margin: 0; max-width: 62em; color: rgba(255, 255, 255, .8); line-height: 1.55; font-size: .97em; }
.pc-dk-tiles { margin-top: 14px; }
@media (min-width: 900px) { .pc-dk-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } .pc-dk-tiles .pc-tile:last-child:nth-child(odd) { grid-column: auto; } }
a.pc-dk-tile { color: #fff; text-decoration: none; transition: border-color .15s; }
a.pc-dk-tile:hover { border-color: rgba(143, 208, 255, .7); }
.pc-dk-tile .v { overflow: hidden; text-overflow: ellipsis; }
.pc-dk-t-verified { background: linear-gradient(135deg, rgba(31, 157, 58, .32), rgba(31, 157, 58, .1)); border-color: rgba(110, 228, 149, .4); }
.pc-dk-t-playable { background: linear-gradient(135deg, rgba(234, 179, 8, .26), rgba(234, 179, 8, .08)); border-color: rgba(250, 204, 21, .35); }
@media (min-width: 700px) { .pc-dk-hero { padding: 28px 26px 22px; } }

/* status badges (table) */
.pc-dk-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .78em; font-weight: 700; white-space: nowrap; line-height: 1.5; }
.pc-dk-verified { background: rgba(31, 157, 58, .14); color: #17762c; }
.pc-dk-playable { background: rgba(183, 121, 31, .16); color: #8a5a14; }
.pc-dk-unsupported { background: rgba(214, 54, 56, .12); color: #a8282a; }
.pc-dk-unknown { background: rgba(127, 127, 127, .14); color: #55555c; }

/* filter form */
.pc-dk-form { margin: 0 0 14px; padding: 14px; background: #f6f8fb; border: 1px solid rgba(16, 16, 24, .07); border-radius: 12px; }
.pc-dk-row, .pc-dk-adv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pc-dk-adv { display: none; margin-top: 10px; }
.pc-dk-form.is-open .pc-dk-adv { display: grid; }
.pc-dk-f { display: flex; flex-direction: column; gap: 3px; min-width: 0; margin: 0; }
.pc-dk-f > span { font-size: .7em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--pc-muted); }
.pc-dk-f select, .pc-dk-f input { width: 100%; min-width: 0; height: 40px; padding: 0 10px; border: 1px solid rgba(16, 16, 24, .16); border-radius: 8px; background: #fff;
  color: #1d1d1f; font: inherit; font-size: .92em; box-sizing: border-box; }
.pc-dk-f select:focus, .pc-dk-f input:focus { outline: 2px solid var(--pc-dk); outline-offset: 1px; }
.pc-dk-q { grid-column: 1 / -1; }
.pc-dk-toggle { grid-column: 1 / -1; height: 40px; border: 1px dashed rgba(16, 16, 24, .25); border-radius: 8px; background: transparent; color: var(--pc-dk-ink);
  font: inherit; font-size: .9em; font-weight: 700; cursor: pointer; }
.pc-dk-form.is-open .pc-dk-toggle { border-style: solid; }
.pc-dk-chks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.pc-dk-chk { display: inline-flex; align-items: center; gap: 7px; margin: 0; font-size: .92em; cursor: pointer; }
.pc-dk-chk input { width: 18px; height: 18px; accent-color: var(--pc-dk-ink); margin: 0; }
.pc-dk-actions { display: flex; align-items: center; gap: 14px; margin-top: 12px; }
.pc-dk-go { height: 42px; padding: 0 20px; border: 0; border-radius: 8px; background: var(--pc-accent, #e8461a); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.pc-dk-go:hover { filter: brightness(1.06); }
.pc-dk-reset { font-size: .9em; font-weight: 600; color: var(--pc-muted); }
@media (min-width: 760px) {
  .pc-dk-row { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; }
  .pc-dk-q { grid-column: auto; }
  .pc-dk-toggle { grid-column: auto; padding: 0 14px; }
  .pc-dk-adv { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) { .pc-dk-adv { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* status chips */
.pc-dk-chips { display: flex; gap: 8px; margin: 0 0 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.pc-dk-chips::-webkit-scrollbar { display: none; }
.pc-dk-chip { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid rgba(16, 16, 24, .12); border-radius: 999px;
  background: #fff; color: #2c2c33; font-size: .88em; text-decoration: none; white-space: nowrap; }
.pc-dk-chip b { font-variant-numeric: tabular-nums; color: var(--pc-muted); font-weight: 700; }
.pc-dk-chip:hover { border-color: var(--pc-dk); }
.pc-dk-chip.is-on { background: #0d1520; border-color: #0d1520; color: #fff; }
.pc-dk-chip.is-on b { color: #8fd0ff; }
.pc-dk-count { margin: 0 0 6px; font-size: .85em; color: var(--pc-muted); }
.pc-dk-listhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; }
.pc-dk-more { font-size: .88em; font-weight: 700; color: var(--pc-accent); text-decoration: none; white-space: nowrap; }
.pc-dk-more:hover { text-decoration: underline; }

/* table */
.pc-dk .pc-ltable td { padding-top: 6px; padding-bottom: 6px; }
.pc-dk .pc-ltable td.pc-thumbcell { width: 128px; min-width: 128px; padding-left: 0; padding-right: 8px; }
.pc-dk .pc-ltable .pc-cap { width: 120px; max-width: none; height: 45px; }
.pc-dk .pc-ltable td.pc-name { min-width: 150px; overflow-wrap: normal; word-break: normal; hyphens: manual; font-weight: 600; }
.pc-dk .pc-ltable td.pc-name a { color: inherit; text-decoration: none; }
.pc-dk .pc-ltable td.pc-name a:hover { color: var(--pc-accent); }
.pc-dk-tags { display: block; margin-top: 1px; font-size: .78em; font-weight: 400; color: var(--pc-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 30ch; }
.pc-dk .pc-ltable .pc-now { font-weight: 700; }
.pc-dk-table th a { color: inherit; text-decoration: none; }
.pc-dk-table th a:hover, .pc-dk-table th.pc-dk-sorted a { color: var(--pc-dk-ink); }
.pc-dk-table td.pc-dk-st { text-align: left; }
.pc-dk-table th:nth-child(3) { text-align: left; }
.pc-dk-rn { display: block; font-size: .74em; color: var(--pc-muted); }
.pc-dk-sc { line-height: 1.2; }
.pc-dk-price { white-space: nowrap; }
.pc-dk-disc { display: inline-block; padding: 1px 6px; border-radius: 4px; background: #4c6b22; color: #beee11; font-weight: 700; font-size: .82em; }
.pc-dk-low { display: inline-block; padding: 1px 6px; border-radius: 4px; background: rgba(26, 159, 255, .14); color: var(--pc-dk-ink); font-weight: 700; font-size: .74em; }
.pc-dk-free { font-weight: 700; color: var(--pc-up); }
.pc-dk-empty { text-align: left !important; padding: 16px 8px !important; white-space: normal !important; }
.pc-dk-note { margin-top: 10px; }

/* nav */
.pc-dk-nav ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .pc-dk-nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .pc-dk-nav ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pc-dk-nav li { margin: 0; }
.pc-dk-nav li a { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 12px 14px; background: #fff; border: 1px solid var(--pc-line);
  border-left: 3px solid var(--pc-dk); border-radius: 12px; text-decoration: none; color: var(--pc-ink); box-sizing: border-box; }
.pc-dk-nav li a:hover { border-color: var(--pc-accent); }
.pc-dk-nav li b { font-weight: 700; }
.pc-dk-nav li span { font-size: .84em; color: var(--pc-muted); }
.pc-dk-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pc-dk-pill { display: inline-block; padding: 6px 13px; border: 1px solid rgba(16, 16, 24, .12); border-radius: 999px; background: #fff; color: #2c2c33;
  text-decoration: none; font-size: .9em; font-weight: 600; }
.pc-dk-pill:hover { border-color: var(--pc-dk); color: var(--pc-dk-ink); }
.pc-dk-pill.is-on { background: #0d1520; border-color: #0d1520; color: #fff; }

@media (max-width: 640px) {
  .pc-dk .pc-ltable td, .pc-dk .pc-ltable th { padding-left: 5px; padding-right: 5px; }
  .pc-dk .pc-ltable th { font-size: .62em; letter-spacing: .04em; }
  .pc-dk .pc-ltable td.pc-thumbcell { width: 72px; min-width: 72px; padding-right: 6px; }
  .pc-dk .pc-ltable .pc-cap { width: 66px; height: 25px; }
  .pc-dk .pc-ltable td.pc-name { min-width: 100px; font-size: .9em; }
  .pc-dk-tags { max-width: 18ch; }
  .pc-dk-badge { font-size: .7em; padding: 1px 7px; }
  .pc-dk-price { font-size: .88em; }
  .pc-dk-low { display: none; }
}
@media (max-width: 420px) {
  .pc-dk .pc-ltable td.pc-thumbcell { padding: 0; }
  .pc-dk .pc-ltable th.pc-th-game { text-align: left; }
  .pc-dk .pc-ltable td.pc-thumbcell { width: 0; min-width: 0; }
  .pc-dk .pc-ltable td.pc-thumbcell > * { display: none; }
  .pc-dk .pc-ltable .pc-rank-col { padding-right: 2px; }
  .pc-dk-disc { display: block; width: max-content; margin: 0 0 2px auto; }
}
/* phones: the Deck status moves under the game name so players and price fit */
.pc-dk-inl { display: none; }
@media (max-width: 640px) {
  .pc-dk-inl { display: block; margin-top: 3px; }
  .pc-dk-table td.pc-dk-st, .pc-dk-table th.pc-dk-sth { display: none; }
  .pc-dk-tags { display: none; }
}
