:root{font-family:'Manrope',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#effbf4;background:#07100f;--ink:#effbf4;--muted:#8ca59c;--line:#203930;--mint:#91e8ba;--mint-deep:#0f2d21;--orange:#efad69;--panel:#061611;--panel-2:#0f211b;--danger:#ff8e80;--radius:16px}*{box-sizing:border-box}/* The lobby links only this sheet, so it never got the base style.css sets:
   its buttons sat at the UA's 13.33px and its body at 16px. */
button,input,select,textarea{font:inherit}small{font-size:12px}body{font-size:15px;margin:0;min-height:100vh;background:#07100f;position:relative;isolation:isolate;overflow-x:hidden}body:after{content:"";position:absolute;inset:-55%;pointer-events:none;z-index:-1;background:conic-gradient(from 0deg at 50% 50%,rgba(103,52,181,.22) 0deg,rgba(133,68,222,.16) 70deg,rgba(30,84,63,.12) 150deg,rgba(103,52,181,.2) 210deg,rgba(212,143,40,.08) 300deg,rgba(103,52,181,.22) 360deg);filter:blur(80px);animation:aurora-spin 60s linear infinite}@keyframes aurora-spin{0%{transform:rotate(0deg) translate(0,0)}25%{transform:rotate(90deg) translate(3%,-2%)}50%{transform:rotate(180deg) translate(0,3%)}75%{transform:rotate(270deg) translate(-3%,-2%)}100%{transform:rotate(360deg) translate(0,0)}}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:12px;top:12px}.network-shell{width:min(1120px,calc(100% - 36px));margin:auto;padding:22px 0 42px}.network-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--line)}.header-actions{display:flex;align-items:center;gap:18px}.wallet-pill,.text-link{font-size:12px;font-weight:800}
.wallet-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:99px;background:var(--panel-2);text-decoration:none;font:800 13px/1 Manrope,ui-sans-serif,system-ui,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.01em;transition:border-color .18s}
.wallet-pill:hover{border-color:var(--accent)}.wallet-pill{color:var(--mint)}.text-link{color:var(--muted);text-decoration:none}.profile-chip{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:var(--panel-2);color:var(--ink);font-size:20px;line-height:1;text-decoration:none;transition:border-color .18s,transform .18s}.profile-chip:hover{border-color:var(--mint);transform:translateY(-1px)}.lobby-control{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.74fr);gap:22px;align-items:stretch;padding:28px 0 26px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 10px;color:var(--orange);font:800 10px/1.2 monospace;letter-spacing:.17em}.lobby-copy h1{margin:0;font-size:clamp(31px,4.4vw,54px);line-height:.98;letter-spacing:-.065em}.lobby-copy h1 em{color:var(--mint);font-style:normal}.lobby-copy>p:last-child{max-width:520px;margin:16px 0 0;color:var(--muted);font-size:15px;line-height:1.55}.lobby-ctas{display:grid;gap:10px;align-content:center}.primary-action,.secondary-action,.leave-action{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:13px;cursor:pointer;font:800 15px/1 Inter,ui-sans-serif,system-ui;transition:transform .16s,filter .16s}.primary-action{min-height:62px;padding:16px 18px;border:0;background:var(--mint);color:#041f14;box-shadow:0 12px 28px #65e0a828}.primary-action:hover{transform:translateY(-2px);filter:brightness(1.04)}.primary-action strong{font-size:20px}.active-session{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px;border:1px solid #35664f;border-radius:14px;background:linear-gradient(145deg,#0d241c,#061611);box-shadow:inset 0 1px #b5ffd10a}.active-session[hidden]{display:none!important}.session-label{display:block;color:var(--mint);font:800 10px/1 monospace;letter-spacing:.12em}.session-copy strong{display:block;overflow:hidden;margin-top:5px;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.session-copy small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.session-actions{display:flex;align-items:center;gap:7px}.secondary-action,.leave-action{min-height:38px;padding:0 10px;border:1px solid var(--line);background:#061611;color:var(--ink);white-space:nowrap;font-size:10px}.secondary-action:hover{border-color:var(--mint);color:var(--mint)}.leave-action{color:#ffb0a1}.leave-action:hover{border-color:var(--danger);color:#ffcabf}.section-heading{display:flex;align-items:end;justify-content:space-between;padding:24px 0 14px}.section-heading .eyebrow{margin-bottom:7px}.section-heading h2{margin:0;font-size:27px;letter-spacing:-.05em}.status-dot{color:var(--mint);font:800 10px monospace}.table-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.table-card{display:flex;flex-direction:column;min-height:210px;padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,var(--panel-2),var(--panel));animation:rise .38s both;animation-delay:var(--delay);transition:border-color .18s,transform .18s}.table-card:hover,.table-card:active{transform:translateY(-3px);border-color:#ffd447}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center}.table-index{color:#5f8479;font:12px monospace}.table-state{color:var(--mint);font:800 10px monospace}.table-card h3{margin:24px 0 7px;font-size:20px;letter-spacing:-.055em}.blinds{margin:0;color:var(--muted);font-size:12px}.blinds b{color:var(--ink)}.card-bottom{margin-top:auto;padding-top:19px;color:#82968d;font-size:10px}.card-action{margin-top:12px;padding:11px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--mint);text-align:left;font-weight:800;cursor:pointer}.network-footer{display:flex;justify-content:space-between;color:#62756c;font-size:10px;padding-top:30px}.buyin-dialog{width:min(420px,calc(100% - 32px));border:1px solid #416a58;border-radius:18px;padding:22px;background:#061611;color:var(--ink);box-shadow:0 25px 90px #000b}.buyin-dialog::backdrop{background:#020806b8;backdrop-filter:blur(5px)}.dialog-close{float:right;border:0;background:none;color:var(--muted);font-size:27px;cursor:pointer}.buyin-dialog h2{margin:0 0 8px;font-size:27px}.dialog-muted,.dialog-hint{color:var(--muted);font-size:12px}.buyin-dialog label{display:block;margin-top:22px;color:var(--muted);font-size:12px}.buyin-dialog input{width:100%;margin:8px 0;padding:14px;border:1px solid rgba(145,232,186,.32);border-radius:12px;background:var(--panel-2);color:var(--ink);font-size:20px}.buyin-dialog input::placeholder{color:var(--muted)}.buyin-dialog input:focus{outline:none;border-color:var(--mint)}.buyin-dialog .primary-action{width:100%;margin-top:16px}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.network-shell{width:calc(100% - 24px);padding-top:16px}.header-actions{gap:12px}.text-link{display:none}.profile-chip{width:38px;height:38px;font-size:18px}.lobby-control{grid-template-columns:1fr;gap:18px;padding:25px 0 22px}.lobby-copy h1{font-size:36px}.lobby-copy>p:last-child{font-size:12px}.active-session{grid-template-columns:1fr}.session-actions>*{flex:1;justify-content:center}.table-grid{grid-template-columns:1fr 1fr;gap:10px}.table-card{min-height:190px;padding:14px}.table-card h3{margin-top:20px;font-size:20px}.card-bottom{display:block;line-height:1.5}.card-bottom span{display:block}.network-footer{display:block;line-height:2}.network-footer span{display:block}}@media(max-width:390px){.table-grid{grid-template-columns:1fr}.table-card{min-height:170px}.lobby-copy h1{font-size:36px}}

.session-copy .session-title{margin-top:5px}
/* The card sits on "Вы выходите после текущей раздачи" until the hand ends,
   which can be a minute. Without a sign of life it reads as a stuck page. */
/* Beside the table name, which is where the eye already is. display is
   set here rather than inherited from a parent that happens to be flex:
   an inline span ignores width and height, so the spinner would have
   been a nought-by-nought nothing. */
.session-title{display:flex;align-items:center;gap:9px;min-width:0}
.session-title strong{margin-top:0}
.session-spinner{display:inline-block;width:16px;height:16px;flex:none;border-radius:50%;border:2px solid rgba(95,237,170,.22);border-top-color:#5fedaa;animation:session-spin .8s linear infinite}
.session-spinner[hidden]{display:none}
@media (prefers-reduced-motion: reduce){.session-spinner{animation-duration:2.4s}}
@keyframes session-spin{to{transform:rotate(360deg)}}

/* Two ways in, one row, always -- even on a narrow phone. Each used to carry
   a description line explaining what it does; the label alone has to do
   that job now, so both stay short verbs/nouns rather than sentences. */
.lobby-control{grid-template-columns:1fr}
.lobby-ctas{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px}
.lobby-ctas #activeSession,.lobby-ctas #sessionReport{grid-column:1/-1}
.entry-action{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 14px;border-radius:14px;cursor:pointer;font:inherit;transition:transform .16s,filter .16s}
.entry-action:hover{transform:translateY(-1px);filter:brightness(1.05)}
.entry-action:active{transform:translateY(0)}
.entry-mark{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:9px;font-size:15px;font-weight:800;line-height:1}
.entry-mark svg{width:16px;height:16px;fill:currentColor}
.profile-chip svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.grid-footer{margin-top:12px}
.grid-footer .entry-action{width:100%}
.entry-text b{font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}
.entry-primary{border:0;background:var(--mint);color:#041f14;box-shadow:0 12px 28px #65e0a828}
.entry-primary .entry-mark{background:#041f14;color:var(--mint)}
.entry-secondary{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.entry-secondary .entry-mark{background:var(--mint-deep);color:var(--mint)}
/* Quieter than the two it sits under: it is help, not a way to start. */
.entry-guide{min-height:44px;border:1px solid var(--line);background:transparent;color:var(--muted);grid-column:1/-1}
.entry-guide:hover{color:var(--ink);border-color:var(--mint)}
.entry-guide .entry-mark{background:transparent;border:1px solid var(--line);color:var(--muted)}
/* The whole card opens the table, so it has to look pressable: on a phone
   every tap that missed the small "Войти" button did nothing at all. */
.table-card[data-open-table]{cursor:pointer}
@media (max-width:640px){
  .entry-action{min-height:48px;padding:10px 10px;gap:8px}
  .entry-text b{font-size:12px}
}
@media (prefers-reduced-motion: reduce){.entry-action{transition:none}.entry-action:hover{transform:none}}

/* A live pulse of real activity between the entry CTAs and the table list,
   and per-tier identity on each card -- colour plus a seat-dot row instead
   of bare "4 / 6" text, so scanning for a stake and an open seat reads
   faster than parsing three numbers in a row. */
.felt-strip{
  margin:18px 0 0;padding:14px 16px;border-radius:14px;
  background:radial-gradient(ellipse at 50% -20%,rgba(145,232,186,.14),transparent 60%),linear-gradient(160deg,var(--mint-deep),var(--panel) 70%);
  border:1px solid #ffd447;position:relative;overflow:hidden;
}
.felt-strip::after{
  content:"";position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.fs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative}
.fs-copy b{display:block;font-size:15px;letter-spacing:-.01em}
.fs-copy small{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.live-dot{display:flex;align-items:center;gap:6px;font:800 10px monospace;color:var(--mint);letter-spacing:.08em}
.live-dot i{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 rgba(145,232,186,.6);animation:live-pulse 1.8s infinite}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(145,232,186,.55)}70%{box-shadow:0 0 0 7px rgba(145,232,186,0)}100%{box-shadow:0 0 0 0 rgba(145,232,186,0)}}
@media (prefers-reduced-motion: reduce){.live-dot i{animation:none}body:after{animation:none}}

.tier-tag{font:800 10px monospace;letter-spacing:.08em;padding:2px 6px;border-radius:6px;text-transform:uppercase}
.tier-tag.micro{color:var(--mint);background:var(--mint-deep)}
.tier-tag.low{color:var(--orange);background:#3a2410}
.tier-tag.mid{color:var(--danger);background:#3a1712}

.table-card{position:relative;overflow:hidden}
.table-card:before{
  content:"";position:absolute;top:-30%;right:-20%;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,var(--tier-glow,rgba(145,232,186,.14)),transparent 70%);pointer-events:none;
}
.table-card>*{position:relative}

/* Border colour breathes gold on a loop instead of the border moving/spinning. */
.table-card{animation:rise .38s var(--delay) both,card-gold-shimmer 4.5s ease-in-out infinite;border-color:#5c4a1f}
.table-card:hover,.table-card:active{border-color:#ffd447;box-shadow:0 0 22px -6px #ffd44766}
@keyframes card-gold-shimmer{0%,100%{border-color:#3a2f14}50%{border-color:#ffd447}}
@media (prefers-reduced-motion: reduce){.table-card{animation:none;border-color:#ffd447}}

.seats{display:flex;gap:3px}
.seats i{width:6px;height:6px;border-radius:50%;background:var(--line);display:inline-block}
.seats i.on{background:var(--mint)}
.seats.full i.on{background:var(--danger)}
/* The narrow-screen rule below (`.card-bottom span{display:block}`, in the
   big minified block above) was written for two lines of text -- stacking
   "Бай-ин ..." over "4 / 6". The second span is a compact dot row now, not
   a line of text, and same-specificity-but-later here beats it back to a
   single row instead of stretching six 6px dots across the full card. */
.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}
.card-bottom span{display:inline-flex;align-items:center}

.lobby-copy h1,.table-card h3,.buyin-dialog h2,.section-heading h2,.fs-copy b{font-family:'Unbounded','Manrope',ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em}

/* Unbounded is wider than the Inter this size/tracking was tuned for --
   "Доступные столы" wrapped to two lines and squeezed the status-dot badge
   into a wrap of its own. Shrink the heading, keep the badge on one line. */
.section-heading h2{font-size:20px}
.status-dot{white-space:nowrap;flex:none}

/* Buttons and table cards shift to violet to match the new purple lobby
   background; the mint that's kept elsewhere (wallet, live-dot, tier
   colours) still carries its own meaning and stays untouched. */
:root{--violet:#c9a8ff;--violet-deep:#24103e}
.primary-action{background:var(--violet);color:#1c0f33;box-shadow:0 12px 28px #8b5cf628}
.entry-primary{background:var(--violet);color:#1c0f33;box-shadow:0 12px 28px #8b5cf628}
.entry-primary .entry-mark{background:#1c0f33;color:var(--violet)}
.entry-secondary .entry-mark{background:var(--violet-deep);color:var(--violet)}
.card-action{color:var(--violet)}
.table-state{color:var(--violet)}
.seats i.on{background:var(--violet)}

/* Session report in the lobby. Profile rules live in profile.css. */
.session-report{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}
.report-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.report-close{border:0;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:0 4px}
.report-close:hover{color:var(--ink)}
.report-summary{margin:8px 0 12px;color:var(--muted);font-size:13px}
.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.report-grid-4:has(#reportDailyCell:not([hidden])){grid-template-columns:repeat(4,1fr)}
.report-grid span{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.report-grid strong{display:block;margin-top:3px;font-size:16px}
@media(max-width:620px){.report-grid,.report-grid-4:has(#reportDailyCell:not([hidden])){grid-template-columns:repeat(2,1fr)}}
.report-grid .up{color:var(--mint)}
.report-grid .down{color:var(--orange)}


/* ── The lobby, in the profile's clothes ────────────────────────────────────
   Two screens of one app should not look like two apps. The lobby was a green
   felt under a rotating aurora with gold-shimmering cards; the profile is a
   flat graphite sheet with violet accents and quiet 1px borders. This block
   moves the lobby onto the profile's tokens and turns off the decoration that
   has no counterpart there.

   The mode tabs keep their green on purpose -- they are the one thing asked to
   stay, and they are also the only control that says which money you are in,
   so being the single coloured thing on the page is the point. Their colours
   are literals in cash-ui.css, not tokens, so nothing here reaches them.

   Green that still means something stays green: a winning result reads mint on
   the profile too, and that is a value, not chrome. */
:root{
  --ink:#f1f1f4;--muted:#a2a1ac;--line:#303039;
  /* One grey, not two: the lobby's cards and its dialogs are the same
     surface, and a second value a hair away would be a rename. */
  --panel:#18191f;--panel-2:var(--panel);
  --accent:#c8b3f6;--violet:#c8b3f6;--violet-deep:#2a2440;
  /* Kept a real mint: below, every place the lobby used it as *the* accent is
     repointed at --accent by name, and what is left of it carries meaning. */
  --mint:#9cddbc;--mint-deep:#22322b;
  --danger:#f39b9f;--orange:#e0b57a;
}
body{background:#101115}
/* The aurora and the film-grain are the felt's, not the profile's. */
body:before,body:after{display:none}

.brand-word{display:flex;align-items:center;color:var(--ink);text-decoration:none;font:700 18px/1 'Unbounded',sans-serif;letter-spacing:-1px}
.brand-word>i{font:24px/1 Georgia,serif;margin-left:4px;color:var(--accent)}
.wallet-pill{color:var(--accent)}
.profile-chip:hover{border-color:var(--accent)}
.network-header{border-bottom-color:var(--line)}
.lobby-copy h1 em{color:var(--accent)}
.eyebrow{color:var(--muted)}
.status-dot{color:var(--accent)}
.table-index,.card-bottom,.network-footer{color:var(--muted)}

.primary-action,.entry-primary{box-shadow:none}
.secondary-action,.leave-action{background:var(--panel)}
.secondary-action:hover{border-color:var(--accent);color:var(--accent)}
.entry-guide:hover{border-color:var(--accent)}

.active-session{border-color:var(--line);background:var(--panel);box-shadow:none}
.session-label{color:var(--accent)}
.session-spinner{border-color:rgba(200,179,246,.22);border-top-color:var(--accent)}

/* A panel like any other on the profile: no gold rule, no grain, no glow. */
.felt-strip{background:var(--panel-2);border-color:var(--line)}
.felt-strip::after{display:none}
.live-dot{color:var(--accent)}
.live-dot i{background:var(--accent);box-shadow:none;animation:none}

/* The cards stop breathing gold and just sit there, like the profile's
   sections do. Hover is the only colour left on them. */
.table-card{
  animation:rise .38s var(--delay) both;
  border-color:var(--line);background:var(--panel-2);
}
.table-card:hover,.table-card:active{border-color:var(--accent);box-shadow:none}
.table-card:before{display:none}
@media (prefers-reduced-motion: reduce){.table-card{animation:none;border-color:var(--line)}}
.tier-tag.micro{color:var(--accent);background:var(--violet-deep)}
.tier-tag.low{color:var(--orange);background:#33291a}
.tier-tag.mid{color:var(--danger);background:#3a2426}
.seats i{background:var(--line)}
.seats i.on{background:var(--accent)}

.buyin-dialog{border-color:var(--line);background:var(--panel);box-shadow:0 25px 90px #000b}
.buyin-dialog::backdrop{background:#0b0b0fb8}
.buyin-dialog input,#roomDialog select{border-color:var(--line);background:var(--panel-2)}
.buyin-dialog input:focus,#roomDialog select:focus{border-color:var(--accent)}
.session-report{border-color:var(--line);background:var(--panel-2)}


/* ── Free2Play on the felt ──────────────────────────────────────────────────
   The graphite-and-violet lobby above is the profile's; on the training tab
   it reads as a settings page, not a card room. body.f2p, set by lobby.js
   with the mode, puts that one tab on green felt with a gold rail: the
   tokens the whole page is built from are repointed here, so the cards, the
   panels, the dialogs and the mode switch all move together.

   The cube and the game switch are CUBE's, not the felt's: their tokens are
   pinned back to the graphite values below, so nothing of theirs changes. */
html:has(body.f2p){background:#071d15}
body.f2p{
  --ink:#f6efd6;--muted:#a9c2b3;--line:rgba(232,195,90,.28);
  --panel:#0d2a1f;--panel-2:var(--panel);
  --gold:#e8c35a;--gold-ink:#1a2a1f;
  --accent:var(--gold);--violet:var(--gold);--violet-deep:#3a2e10;
  --mint:#9cddbc;--mint-deep:#1b3a2c;--danger:#f39b9f;--orange:#e8c35a;
  background:
    radial-gradient(ellipse 90% 55% at 50% -8%,rgba(52,150,104,.55),transparent 70%),
    radial-gradient(ellipse 140% 90% at 50% 20%,#155a3e,#0d3a29 45%,#092a1e 70%,#071d15 100%);
}
/* The grain the graphite turned off: felt is cloth, not paint. Not the
   180px grey tile above -- at its size it reads as blotches on a wide
   screen. A fine desaturated noise, drawn at twice its tile so it stays
   crisp on a retina screen, blended soft-light so it dithers the gradient
   instead of greying it. */
body.f2p:before{display:block;opacity:.55;mix-blend-mode:soft-light;background-size:160px 160px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body.f2p .guest-cube,body.f2p .game-tabs{--ink:#f1f1f4;--muted:#a2a1ac;--line:#303039;--panel:#18191f;--panel-2:#18191f}

/* Balance: a gold chip, with a chip's dashed edge and a spade on it. */
body.f2p #playPilot .cash-wallet-grid>div{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#f3d97e,#d0a237 55%,#ecc75e);border-color:#8a6a1c;
  outline:2px dashed rgba(26,42,31,.3);outline-offset:-7px;
  box-shadow:inset 0 1px 0 rgba(255,244,200,.6),0 8px 24px -10px rgba(232,195,90,.6);
}
body.f2p #playPilot .cash-wallet-grid>div::after{
  content:"♠";position:absolute;right:14px;top:50%;transform:translateY(-50%);
  font:700 44px/1 Georgia,serif;color:rgba(26,42,31,.18);pointer-events:none;
}
body.f2p #playPilot .cash-wallet-grid span,body.f2p #playPilot .cash-wallet-grid small,body.f2p #playPilot .cash-wallet-grid strong{color:var(--gold-ink)}
body.f2p .cash-pilot{background:linear-gradient(160deg,#124a33,#0d2a1f 70%)}

/* Gold for the one way in, a dark rail for the rest. */
body.f2p .entry-primary,body.f2p .primary-action{background:linear-gradient(180deg,#f3d97e,#d9ac3a);color:var(--gold-ink);box-shadow:0 8px 22px -8px rgba(232,195,90,.7)}
body.f2p .entry-primary .entry-mark{background:var(--gold-ink);color:var(--gold)}
body.f2p .entry-secondary{background:rgba(0,0,0,.28)}
body.f2p .entry-secondary .entry-mark{background:var(--violet-deep);color:var(--gold)}
body.f2p .entry-guide{background:transparent}
body.f2p .cash-actions .cash-cashier{background:rgba(0,0,0,.28)}
body.f2p .header-login{background:#2aabee}

/* The live strip is a strip of the rail: the suits sit in it like an inlay. */
body.f2p .felt-strip{background:linear-gradient(160deg,#124a33,#0d2a1f 70%);border-color:var(--line)}
body.f2p .felt-strip::after{
  display:block;content:"♠ ♥ ♦ ♣";inset:auto 18px auto auto;top:50%;transform:translateY(-50%);
  background:none;mix-blend-mode:normal;opacity:.14;
  font:700 30px/1 Georgia,serif;letter-spacing:.25em;color:var(--gold);
}
/* On a phone the inlay would sit under the headline. */
@media (max-width:640px){body.f2p .felt-strip::after{display:none}}

/* A table card is a table: green baize inside a gold rail, seats as chips. */
body.f2p .table-card{
  background:radial-gradient(ellipse at 50% 20%,#1c6a48,#124a33 75%);
  border-color:#b8923a;
  box-shadow:inset 0 0 0 4px #0b2a1d,inset 0 0 0 5px rgba(232,195,90,.35),0 10px 30px -14px rgba(0,0,0,.6);
}
body.f2p .table-card:hover,body.f2p .table-card:active{border-color:#ffd97a;box-shadow:inset 0 0 0 4px #0b2a1d,inset 0 0 0 5px rgba(255,217,122,.6),0 14px 34px -12px rgba(232,195,90,.35)}
body.f2p .table-index{color:rgba(246,239,214,.5)}
body.f2p .tier-tag.micro{color:var(--gold);background:rgba(0,0,0,.32)}
body.f2p .tier-tag.low{color:#ffd97a;background:rgba(0,0,0,.32)}
body.f2p .tier-tag.mid{color:var(--danger);background:rgba(0,0,0,.32)}
body.f2p .table-state{color:var(--gold)}
body.f2p .card-bottom{color:var(--muted)}
body.f2p .seats{gap:4px}
body.f2p .seats i{width:9px;height:9px;background:rgba(0,0,0,.35);border:1.5px dashed rgba(246,239,214,.35)}
body.f2p .seats i.on{background:var(--gold);border-color:rgba(26,42,31,.5)}
body.f2p .seats.full i.on{background:var(--danger)}
body.f2p .card-actions,body.f2p .card-action{border-color:var(--line)}
body.f2p .card-action{color:var(--gold)}
body.f2p .card-observe:hover{border-color:var(--gold);color:var(--gold)}
body.f2p .card-mine{border-color:#ffd97a}

body.f2p .eyebrow,body.f2p .status-dot,body.f2p .session-label{color:var(--gold)}
body.f2p .active-session{background:linear-gradient(160deg,#124a33,#0d2a1f 70%)}
body.f2p .session-report{background:linear-gradient(160deg,#124a33,#0d2a1f 70%)}
body.f2p .secondary-action,body.f2p .leave-action{background:rgba(0,0,0,.28)}
body.f2p .buyin-dialog{background:linear-gradient(160deg,#124a33,#0d2a1f 70%);border-color:#b8923a}
body.f2p .buyin-dialog input,body.f2p #roomDialog select{background:rgba(0,0,0,.3)}
body.f2p .payment-details button{color:var(--gold-ink)}
