/* Poker tournament page (#/tournament/poker) — the room's tournament lobby in
   Arena Noir dress. Shares the lobby's width/gap grid (.poker-noir-lobby) and
   its buttons/kickers; everything else is pt-*. */
.pt-view { gap: 14px; }
.pt-card { padding: 18px 20px; border: 1px solid rgba(220, 190, 118, .18); border-radius: 18px; background: linear-gradient(150deg, rgba(23, 21, 25, .97), rgba(14, 13, 17, .97)); box-shadow: 0 14px 40px rgba(0, 0, 0, .35); }
.pt-head { position: relative; overflow: hidden; background: radial-gradient(circle at 92% 10%, rgba(212, 175, 85, .18), transparent 32%), linear-gradient(150deg, rgba(27, 23, 20, .98), rgba(12, 12, 15, .98)); border-color: rgba(212, 175, 85, .4); }
.pt-head h1 { margin: 6px 0 8px; font: 800 clamp(26px, 4vw, 40px)/1 Georgia, serif; letter-spacing: -.03em; color: #fdf6dd; }
.pt-head-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; color: #a9a08f; font: 800 10px/1 ui-monospace; letter-spacing: .12em; text-transform: uppercase; }
.pt-badge.is-running, .pt-badge.is-seating { color: #9fe8c0; border-color: rgba(53, 177, 112, .5); background: rgba(28, 92, 64, .25); }
.pt-badge.is-registering, .pt-badge.is-scheduled { color: #ffd97a; border-color: rgba(212, 175, 85, .5); }
.pt-badge.is-hfh { color: #ffe9ad; border-color: rgba(255, 217, 122, .6); background: rgba(90, 70, 20, .3); }
.pt-badge.is-spin { color: #ffd0f0; border-color: rgba(255, 120, 220, .55); background: rgba(120, 30, 90, .3); }
.pt-spin { color: #ffd0f0; }
.pt-badge.is-turbo { color: #ffb57a; border-color: rgba(255, 150, 80, .55); background: rgba(110, 55, 20, .3); }
.pt-badge.is-hyper { color: #ff9393; border-color: rgba(255, 110, 110, .55); background: rgba(120, 30, 30, .3); }
.pt-hfh { color: #ffe9ad; }
.pt-bounty { margin: -4px 0 10px; color: #ffd97a; }
.pt-satellite { margin: -4px 0 10px; color: #9fe8c0; }
.pt-rebuy { margin: -4px 0 10px; color: #c9b6ff; }
.pt-pulse { width: 7px; height: 7px; border-radius: 50%; background: #53b170; box-shadow: 0 0 8px #53b170; animation: pt-pulse 2.2s ease-in-out infinite; }
@keyframes pt-pulse { 50% { opacity: .35; } }
.pt-clock { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; margin: 4px 0 12px; }
.pt-clock-label { color: #d9b968; font: 800 13px var(--font-body); }
.pt-clock .mono { color: #ffe9ad; font: 800 22px/1 ui-monospace; }
.pt-clock-next, .pt-clock-late { color: #a9a08f; font-size: 12px; }
.pt-clock-next .mono, .pt-clock-late .mono { font-size: 14px; }
.pt-clock-at { color: #8d8891; font-size: 12px; }
.pt-champion { display: flex; align-items: center; gap: 10px; margin: 4px 0 12px; color: #ffe9ad; font: 800 18px Georgia, serif; }
.pt-crown { font-size: 26px; text-shadow: 0 0 18px rgba(212, 175, 85, .8); }
.pt-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px 14px; margin: 6px 0 14px; }
.pt-fact { display: grid; gap: 3px; }
.pt-fact dt { color: #77727b; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.pt-fact dd { margin: 0; color: #f0e6cd; font: 800 15px ui-monospace; }
.pt-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pt-break { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 18px; border: 1px solid rgba(143, 216, 176, .6); border-radius: 14px; background: linear-gradient(180deg, rgba(24, 40, 32, .96), rgba(10, 18, 14, .96)); color: #c9f1da; font-size: 14px; box-shadow: 0 0 30px rgba(80, 220, 150, .18); }
.pt-break strong { color: #8fe6bd; font: 900 12px ui-monospace; letter-spacing: .2em; text-transform: uppercase; }
.pt-break .mono { color: #fff; font: 800 18px ui-monospace; }
.pt-me { border-color: rgba(212, 175, 85, .45); display: grid; gap: 8px; }
.pt-me-line { color: #f4ead2; font: 800 15px var(--font-body); }
.pt-sub { margin: 0; color: #a49d90; font-size: 12.5px; line-height: 1.45; }
.pt-columns { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 14px; align-items: start; }
.pt-main, .pt-side { display: grid; gap: 14px; min-width: 0; }
.pt-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; color: #cbbd9d; font: 800 11px var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.pt-count { padding: 2px 8px; border: 1px solid rgba(212, 175, 85, .35); border-radius: 999px; color: #f2d47e; font: 800 10px ui-monospace; }
.pt-rows { display: grid; gap: 5px; }
.pt-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-height: 36px; padding: 5px 10px; border-radius: 9px; background: rgba(255, 255, 255, .04); color: #e9dfca; font-size: 13px; }
.pt-row > b { color: #f0d488; font-size: 12px; }
.pt-row-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-row small { color: #8d8891; font-size: 10px; letter-spacing: .06em; }
.pt-row strong { color: #efd486; }
.pt-row.is-me { outline: 1px solid rgba(212, 175, 85, .55); background: rgba(212, 175, 85, .09); }
.pt-row.is-out { opacity: .72; }
.pt-row-link { appearance: none; border: 0; text-align: left; cursor: pointer; font: inherit; }
.pt-row-link:hover { background: rgba(212, 175, 85, .1); }
.pt-away { color: #edc681; }
.pt-table-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.pt-table { display: grid; gap: 8px; padding: 12px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 14px; background: rgba(10, 14, 11, .7); }
.pt-table.is-final { border-color: rgba(245, 214, 127, .6); box-shadow: 0 0 24px rgba(212, 175, 85, .14); }
.pt-table header { display: flex; align-items: center; gap: 8px; }
.pt-table header strong { flex: 1 1 auto; color: #f7efdb; font-size: 13px; }
.pt-watchers { color: #9fe8c0; font: 800 11px ui-monospace; }
.pt-table-seats { display: grid; gap: 3px; }
.pt-seat { display: flex; justify-content: space-between; gap: 8px; padding: 3px 7px; border-radius: 7px; background: rgba(255, 255, 255, .035); font-size: 12px; color: #ded4be; }
.pt-seat.is-away { opacity: .55; }
.pt-seat-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-seat b { color: #e9cf87; }
.pt-ladder { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.pt-level { display: grid; gap: 2px; padding: 6px 4px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 8px; background: #0d0f11; text-align: center; }
.pt-level span { color: #6f6a74; font-size: 8px; }
.pt-level b { color: #ded4be; font: 800 9.5px ui-monospace; }
.pt-level.is-current { border-color: rgba(84, 190, 133, .6); background: rgba(32, 105, 71, .18); }
.pt-level.is-current b { color: #9fe8c0; }
.pt-level.is-break { border-bottom: 2px solid rgba(143, 216, 176, .55); }
.pt-regalia { display: grid; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(220, 190, 118, .14); color: #e9dfca; font-size: 12.5px; }
.pt-regalia-title { color: #cbbd9d; font: 800 10px var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
/* Section cards. An empty card is a blank slab with a border, so a section
   that has nothing to show (first paint, no tables yet) does not render one.
   The standings list scrolls inside its card: a 60-entry field must not push
   the tables below the fold. */
.pt-standings:empty, .pt-tables:empty, .pt-structure:empty, .pt-prizes:empty, .pt-champions:empty, .pt-champ-ladder:empty { display: none; }
/* The champion ladder: the Arcomage page's perk on the poker rail, same rung states. */
.pt-champ-ladder { border-color: rgba(233, 185, 73, .35); }
.pt-champ-wins { font: 800 13px/1.2 Georgia, serif; color: #ffe39a; margin: 6px 0 10px; }
.pt-champ-rungs { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px; }
.pt-champ-rung { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 6px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .03); text-align: center; }
.pt-champ-rung.is-held { border-color: rgba(233, 185, 73, .6); background: rgba(233, 185, 73, .08); }
.pt-champ-rung.is-next { border-color: rgba(104, 255, 218, .5); box-shadow: 0 0 14px rgba(104, 255, 218, .18); }
.pt-champ-rung.is-far { opacity: .62; }
.pt-champ-art { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .7)); font-size: 40px; line-height: 64px; }
.pt-champ-rung.is-far .pt-champ-art { filter: grayscale(.7) drop-shadow(0 2px 4px rgba(0, 0, 0, .7)); }
.pt-champ-name { font: 800 11px/1.2 Georgia, serif; color: #f5d67f; }
.pt-champ-req { font: 700 9.5px/1.2 ui-monospace, monospace; color: #b6aa90; }
.pt-champ-state { font: 700 9.5px/1.2 ui-monospace, monospace; color: #9fe8c0; min-height: 1.2em; }
.pt-standings .pt-rows { max-height: 560px; overflow-y: auto; scrollbar-width: thin; padding-right: 2px; }
.pt-tables .pt-table-grid { margin-top: 2px; }
.pt-structure .pt-ladder { margin-top: 4px; }
.pt-prizes { border-color: rgba(212, 175, 85, .3); }
.pt-champions .pt-row > b { font: 800 14px Georgia, serif; color: #f5d67f; }
@media (max-width: 900px) {
  .pt-columns { grid-template-columns: 1fr; }
  .pt-card { padding: 14px; }
  .pt-ladder { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pt-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .pt-row small { display: none; }
}
@media (prefers-reduced-motion: reduce) { .pt-pulse { animation: none; } }
