/* 三卡扑克 / 小德州 · 多桌 · 统一牌桌 HUD（design2/ui-system.md §2 · 迁移说明 docs/hud.md）
   骨架（Z0 顶栏 / Z1 细屏 / Z2 台面 / Z3 rail / Z4 抽屉 / Z5 (i)）在 css/table-hud.css；(i) 底下一排键 .th-pop-f 在 css/blackjack.css；决策倒计时走台面正上方的环（TableHUD.clockRing）。
   这里只放 carnival 桌自己的：细屏（荷官最近几手）· 绿色半月台 · 荷官牌 / 公共牌 · 你的注圈竖排 · 别人的位置 · 结果条 · 规则全文弹窗。
   画面层 js/games/carnival-live.js，视图 js/views/carnival-live.js（前缀 tcpx / uthx）。尺寸都是 dp（1280×720 设计稿，整页 zoom = k）。 */

/* ============ 骨架：HUD 自己有顶栏，不留全站顶栏的 48 ============ */
#tcpxScreen > .content.cv-root,#uthxScreen > .content.cv-root{margin-top:0;padding:0;position:relative;overflow:hidden;flex:1;min-height:0;}

/* ============ Z1 细屏：荷官最近 20 手牌型（亮绿 = 有手 / 合格，灰 = 没有） ============ */
.cv-lcd{height:100%;display:flex;align-items:center;gap:14px;padding:0 16px;min-width:0;}
.cv-lcd .k{font-family:var(--serif);font-size:var(--fs-s);letter-spacing:.18em;color:var(--lcd-2);white-space:nowrap;position:relative;z-index:1;}
.cv-dh{display:flex;gap:3px;align-items:center;overflow:hidden;min-width:0;position:relative;z-index:1;}
.cv-dh i{min-width:32px;height:28px;padding:0 4px;border-radius:3px;flex:none;display:flex;align-items:center;justify-content:center;
  font:var(--fs-s)/1 var(--serif);font-style:normal;white-space:nowrap;color:var(--lcd-2);background:#0f1a22;box-shadow:0 0 0 1px var(--lcd-line) inset;}
.cv-dh i.q{background:#123324;color:#a9e5bd;box-shadow:0 0 0 1px #1f5a3c inset;}

/* ============ Z2 绿色半月台（下沿的弧接住 rail；最下面 26 藏在 rail 下面） ============ */
.cv-tbl{bottom:-40px;border-radius:18px 18px 50% 50% / 18px 18px 26% 26%;}
.cv-cloth{bottom:14px;border-radius:8px 8px 50% 50% / 8px 8px 26% 26%;--f5:var(--felt-300);--f7:var(--felt-500);--f9:var(--felt-700);
  box-shadow:0 0 0 2px var(--brass-700) inset,0 0 0 3px rgba(0,0,0,.6) inset,0 12px 30px rgba(0,0,0,.45) inset;}
html[data-night] .cv-cloth{--f5:var(--felt-500);--f7:var(--felt-700);--f9:var(--felt-900);}
.cv-cloth .th-you{bottom:36px;}
.cv-cloth .th-menu{bottom:78px;}

/* 荷官的牌（小德州：荷官两张 + 公共牌五张一排）在倒计时正下方 */
.cv-dealer{position:absolute;left:50%;top:80px;transform:translateX(-50%);z-index:4;display:flex;gap:22px;align-items:flex-start;}
.cvx-cards{display:flex;align-items:flex-start;}
.cvx-cards.dealer,.cvx-cards.board{gap:6px;--card-w:50px;--card-h:70px;min-height:70px;}
.cvx-cards.board{padding:0 0 0 22px;border-left:1px solid rgba(217,191,126,.28);min-width:290px;}
.cvx-cards.board:empty{border-left-color:transparent;}   /* 下注中台面上还没牌：别留一根孤零零的竖线（qa） */
.cv-dname{position:absolute;left:50%;top:156px;transform:translateX(-50%);z-index:4;font-family:var(--serif);font-size:var(--fs-s);letter-spacing:.08em;color:var(--tx-1);white-space:nowrap;}
.cv-dname b{font-weight:400;margin-left:2px;}
.cv-dname b.q{color:var(--brass-100);} .cv-dname b.nq{color:var(--tx-2);}
/* 台布印字（一行，赔率细节进 (i)） */
.cv-print{position:absolute;left:0;right:0;top:178px;text-align:center;pointer-events:none;z-index:1;font-family:var(--serif);font-size:var(--fs-s);
  letter-spacing:.24em;color:var(--print);opacity:.72;white-space:nowrap;}

/* 结果条：倒计时的原位（发牌 / 结算时倒计时藏起来） */
.cv-result{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:7;min-width:140px;max-width:460px;padding:6px 16px 7px;text-align:center;
  background:linear-gradient(180deg,rgba(20,12,8,.94),rgba(10,6,4,.94));border:1px solid var(--brass-500);border-radius:3px;
  box-shadow:var(--shadow-2),0 0 24px rgba(255,200,120,.15);font-family:var(--serif);color:var(--brass-100);}
.cv-result .h{font-size:var(--fs-l);line-height:1.1;letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums;}
.cv-result .s{font-size:var(--fs-s);color:var(--tx-2);margin-top:3px;font-family:var(--sans);line-height:1.4;}
.cv-result.win .h{color:var(--good);} .cv-result.lose .h{color:#ffb3a8;} .cv-result.fold .h,.cv-result.push .h{color:var(--tx-1);}

/* ============ 你的位置（正前方）：手牌名 → 你的牌 → 注圈竖排（同实物印法） ============ */
.cv-hero{position:absolute;left:50%;bottom:78px;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:6px;}
.cv-hname{height:16px;line-height:16px;font-family:var(--serif);font-size:var(--fs-s);letter-spacing:.08em;color:var(--brass-100);white-space:nowrap;}
.cv-hcards{min-height:76px;display:flex;align-items:flex-end;}
.cvx-cards.hero{gap:6px;--card-w:54px;--card-h:76px;min-height:76px;}
.cv-hero.folded .cvx-cards.hero{filter:saturate(.4) brightness(.65);}
.cv-hero.turn .cvx-cards.hero{filter:drop-shadow(0 0 10px rgba(255,200,120,.5));}
.cv-hcirc{display:flex;flex-direction:column;align-items:center;gap:6px;}
.cv-row{display:flex;gap:12px;justify-content:center;align-items:center;}
.cv-cloth:not(.seated) .cv-hcirc{opacity:.5;}

/* 注圈（台布印线：实线双圈，不填色；印字在圈里，下了注就被筹码盖住）；金额写在圈外右边（Ante | Blind 那一排 Ante 的写在左边） */
.cvx-ring{position:relative;flex:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  border:2px solid rgba(217,191,126,.7);background:rgba(0,0,0,.08);box-shadow:0 0 0 1px rgba(0,0,0,.35) inset;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);}
.cvx-ring.main{width:52px;height:52px;}
.cvx-ring.side,.cvx-ring.play{width:44px;height:44px;}
.cvx-ring::after{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(217,191,126,.28);pointer-events:none;}
.cvx-ring:hover{border-color:var(--brass-300);}
.cvx-ring label{font:var(--fs-s)/1.1 var(--serif);letter-spacing:.04em;color:var(--print);text-align:center;pointer-events:none;white-space:nowrap;}
.cvx-ring.side{border-color:rgba(247,164,60,.7);} .cvx-ring.side label{color:#f5c98f;}
.cvx-ring.fixed{cursor:default;border-color:rgba(217,191,126,.45);}
.cvx-ring.fixed:hover{border-color:rgba(217,191,126,.45);}
.cvx-ring .st{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;line-height:0;}
.cvx-ring em{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:8px;font:var(--fs-m)/1 var(--serif);font-style:normal;color:var(--brass-100);
  white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums lining-nums;}
.cv-row.two .cvx-ring:first-child em{left:auto;right:100%;margin:0 8px 0 0;}
.cvx-ring.has{box-shadow:0 0 0 2px var(--brass-300) inset,0 0 16px rgba(231,201,127,.3);}
.cvx-ring.has label{opacity:0;}

/* ============ 别人的位置：沿半月形台边（缩 0.85；名字 / 标签用 15 dp，缩完还有 12） ============ */
.cv-seats{position:absolute;inset:0;pointer-events:none;z-index:5;}
.cvx-slot{position:absolute;width:0;display:flex;flex-direction:column;align-items:center;gap:2px;transform:scale(.85);transform-origin:50% 100%;
  transition:filter var(--t-norm),opacity var(--t-norm);}
.cvx-slot .sl-lbl{height:20px;line-height:20px;font-family:var(--serif);font-size:var(--fs-m);letter-spacing:.06em;color:var(--tx-2);white-space:nowrap;}
.cvx-slot .sl-lbl.act{color:var(--brass-300);}
.cvx-slot .sl-lbl.win{color:var(--good);} .cvx-slot .sl-lbl.lose{color:#ffb3a8;} .cvx-slot .sl-lbl.push,.cvx-slot .sl-lbl.fold{color:var(--tx-2);}
.cvx-slot .sl-cards{--card-w:40px;--card-h:56px;min-height:56px;}
.cvx-slot .sl-cards .card+.card{margin-left:calc(var(--card-w) * -.36);}
.cvx-slot .sl-hand{height:20px;line-height:20px;font-size:var(--fs-m);color:var(--brass-100);white-space:nowrap;}
.cvx-slot .sl-bet{display:flex;align-items:flex-end;justify-content:center;gap:6px;min-height:28px;}
.cvx-slot .sl-bet .sb{display:flex;}
.cvx-slot .sl-nm{height:26px;display:flex;align-items:center;gap:6px;font-size:var(--fs-m);color:var(--tx-2);white-space:nowrap;pointer-events:auto;}
.cvx-slot .sl-nm b{font-family:var(--serif);font-weight:400;color:var(--brass-300);}
.cvx-slot .sl-nm .pt-seat{--pts:32px;margin:-3px 0;}   /* 别人位置名字前的写实小头像（js/core/portraits.js） */
.cvx-slot.turn .sl-nm{color:var(--brass-100);}
.cvx-slot.turn .sl-cards{filter:drop-shadow(0 0 6px rgba(255,200,120,.45));}
.cvx-slot.folded{filter:saturate(.55) brightness(.8);}
.cvx-slot .sl-spot{width:52px;height:52px;border-radius:50%;border:2px solid rgba(217,191,126,.26);margin-bottom:4px;}
.cvx-slot .bx-btn{font-size:var(--fs-m);height:28px;}

/* ============ Z3c 决策键：倍数后面的小金额 ============ */
.cv-root .th-acts .btn small{font-size:var(--fs-s);opacity:.8;margin-left:4px;font-family:var(--serif);letter-spacing:0;}

/* ============ Z4 抽屉缩略：荷官最近几局（亮 = 有手） ============ */
.cv-thumb{display:flex;align-items:center;gap:3px;flex-wrap:nowrap;overflow:hidden;font-size:var(--fs-s);}
.cv-thumb i{font-style:normal;font-family:var(--serif);min-width:18px;height:18px;padding:0 2px;line-height:18px;text-align:center;border-radius:2px;
  border:1px solid rgba(201,160,82,.3);color:var(--tx-2);white-space:nowrap;}
.cv-thumb i.q{border-color:var(--brass-500);color:var(--brass-100);background:rgba(201,160,82,.12);}

/* ============ 矮窗口（布局高 < 720）：注圈和牌压小一点 ============ */
@container vp (max-height:680px){
  .cvx-cards.hero{--card-w:46px;--card-h:64px;min-height:64px;}
  .cv-hcards{min-height:64px;}
  .cvx-ring.main{width:46px;height:46px;} .cvx-ring.side,.cvx-ring.play{width:40px;height:40px;}
  .cv-print{top:172px;}
}

/* ============ 规则全文弹窗 ============ */
.cv-help{font-size:12.5px;line-height:1.7;color:var(--cream-300);}
.cv-help h4{margin:10px 0 2px;font-family:var(--serif);font-weight:400;color:var(--brass-300);letter-spacing:.08em;font-size:13px;}
.cv-help p{margin:4px 0;}
.cv-help .dim{color:var(--cream-500);font-size:12px;}
.cv-pay{width:100%;border-collapse:collapse;margin:6px 0;}
.cv-pay th{text-align:left;font-weight:400;color:var(--cream-500);font-size:12px;border-bottom:1px solid var(--hairline-strong);padding:3px 6px;}
.cv-pay td{padding:3px 6px;border-bottom:1px solid var(--hairline);}
.cv-pay td+td{font-family:var(--serif);color:var(--brass-100);}
