/* 星汉基诺: 选号区(10 × 8) · 选号信息 / 赔付表 / 按钮 · 本期的票 */
.kn-board{display:grid;grid-template-columns:auto 1fr calc(var(--u)*300);gap:calc(var(--u)*14);width:100%;align-items:stretch}
.kn-grid{display:grid;grid-template-columns:repeat(10,calc(var(--u)*27));grid-auto-rows:calc(var(--u)*25);gap:calc(var(--u)*3)}
.kn-grid button{padding:0;border:1px solid rgba(217,179,108,.35);border-radius:calc(var(--u)*4);background:rgba(255,255,255,.04);color:var(--tk-ink);font:600 calc(var(--u)*12)/1 Georgia,serif;cursor:pointer}
.kn-grid button:hover{border-color:var(--tk-gold-hi)}
.kn-grid button[aria-pressed="true"]{background:radial-gradient(circle at 40% 35%,#ffe7a8,#d9a440 60%,#8a5e14);color:#2a1a06;border-color:#fff1c4;font-weight:800}
.kn-ctl{display:flex;flex-direction:column;gap:calc(var(--u)*8);min-width:0}
.kn-sel{margin:0;font-size:calc(var(--u)*14)}
.kn-sel b{font:700 calc(var(--u)*18)/1 Georgia,serif;color:#ffd98a}
.kn-sel span{margin-left:calc(var(--u)*6);color:var(--tk-mute);font-size:calc(var(--u)*12)}
.kn-pay{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:calc(var(--u)*4);font-size:calc(var(--u)*12)}
.kn-pay span{padding:calc(var(--u)*3) calc(var(--u)*7);border-radius:calc(var(--u)*4);background:rgba(217,179,108,.12);white-space:nowrap}
.kn-pay span b{color:#ffd98a}
.kn-pay small{color:var(--tk-mute)}
.kn-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*6)}
.kn-add{grid-column:1 / -1;height:calc(var(--u)*34);border-color:#f6dc9a;background:linear-gradient(180deg,#5a4214,#2a1d08);color:#fff1c4;font-weight:700}
.kn-tickets{display:flex;flex-direction:column;gap:calc(var(--u)*5);overflow:auto;max-height:calc(var(--u)*240)}
.kn-t{display:grid;grid-template-columns:1fr auto auto;gap:calc(var(--u)*6);align-items:center;padding:calc(var(--u)*5) calc(var(--u)*8);border-radius:calc(var(--u)*6);border:1px solid rgba(217,179,108,.35);background:rgba(0,0,0,.3);font-size:calc(var(--u)*12)}
.kn-t.is-pending{border-style:dashed}
.kn-t__n{display:flex;flex-wrap:wrap;gap:calc(var(--u)*3)}
.kn-t__n i,.kn-h i{display:inline-grid;place-items:center;width:calc(var(--u)*20);height:calc(var(--u)*20);border-radius:50%;background:#2a2016;font:700 calc(var(--u)*10)/1 Georgia,serif;font-style:normal}
.kn-t__n i.is-hit{background:radial-gradient(circle at 40% 35%,#ffe7a8,#d9a440 60%,#8a5e14);color:#2a1a06}
.kn-t b{font-family:Georgia,serif;color:#ffd98a}
.kn-t button{width:calc(var(--u)*20);height:calc(var(--u)*20);padding:0;border:1px solid rgba(217,179,108,.5);border-radius:50%;background:none;color:#f6dc9a;cursor:pointer}
/* 开奖时: 右上角「我的票」(实时命中), 中间大号码 */
.kn-live{right:calc(var(--u)*16);top:calc(var(--u)*62);width:calc(var(--u)*330)}
.kn-live>div{display:flex;flex-direction:column;gap:calc(var(--u)*5);padding:calc(var(--u)*10)}
.tk-keno .tk-hist{left:calc(var(--u)*16);right:auto}
.kn-call{position:absolute;left:50%;top:44%;z-index:4;display:grid;place-items:center;width:calc(var(--u)*130);height:calc(var(--u)*130);border-radius:50%;transform:translate(-50%,-50%);
  background:radial-gradient(circle at 35% 30%,#fff,#ffe08a 30%,#d99a20 70%,#7a4a08);color:#2a1806;font:800 calc(var(--u)*64)/1 Georgia,serif;box-shadow:0 0 calc(var(--u)*40) rgba(255,210,110,.8);animation:kn-pop .6s ease-out}
@keyframes kn-pop{from{transform:translate(-50%,-50%) scale(.3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.kn-h{display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.kn-h p{display:flex;flex-wrap:wrap;gap:calc(var(--u)*2);margin:0;padding-bottom:calc(var(--u)*5);border-bottom:1px solid rgba(217,179,108,.15)}
.kn-h i{width:calc(var(--u)*19);height:calc(var(--u)*19);font-size:calc(var(--u)*9)}
.kn-hot{margin-top:calc(var(--u)*8);font-size:calc(var(--u)*12);color:var(--tk-mute)}
.kn-hot i{background:#6a1a1a;color:#fff}
/* ---------- 无边框(和龙虎一样, 公共 .tk-flat): 号码格 / 票 / 按钮都不画边框, 靠淡底色 + 留白; 悬停金色柔光 ---------- */
/* 10-15 用户: 太透明太暗 —— 底栏用带暖色的深底, 号码格 / 票的底色加实, 字提亮 */
.tk-keno .tk-bar{background:linear-gradient(180deg,rgba(28,20,16,.55),rgba(30,22,18,.9) 18%,rgba(24,17,14,.96))}
.tk-flat .kn-grid button{border:0;background:linear-gradient(180deg,rgba(255,240,210,.17),rgba(255,240,210,.1));color:#fff6e2;transition:background .2s}
.tk-flat .kn-grid button:hover{background:radial-gradient(circle at 50% 100%,rgba(255,206,120,.35),rgba(255,206,120,.06) 80%)}
.tk-flat .kn-grid button[aria-pressed="true"]{background:radial-gradient(circle at 40% 35%,#ffe7a8,#d9a440 60%,#8a5e14);box-shadow:0 0 calc(var(--u)*8) rgba(255,210,120,.5)}
.tk-flat .kn-pay span{background:rgba(255,240,210,.13)}
.tk-flat .kn-add{border:0;color:#fff1c4;font-weight:700;background:linear-gradient(180deg,rgba(226,184,96,.5),rgba(226,184,96,.22))}
.tk-flat .kn-add:not(:disabled):hover{background:linear-gradient(180deg,rgba(226,184,96,.72),rgba(226,184,96,.34))}
.tk-flat .kn-t{border:0;background:rgba(255,240,210,.12)}
.tk-flat .kn-t.is-pending{opacity:.75;background:rgba(255,214,140,.16)} /* 还没确认的票: 半透明(不用虚线框) */
.tk-flat .kn-t button{border:0;background:rgba(255,255,255,.14)}
.tk-flat .kn-t button:hover{background:rgba(246,220,154,.22)}
/* 「下这张票」是主要操作: 更实的金色(其他按钮的清晰样式在公共 tablekit.css .tk-flat) */
.tk-keno .kn-add{background:linear-gradient(180deg,rgba(226,184,96,.7),rgba(226,184,96,.38));box-shadow:inset 0 1px 0 rgba(255,240,200,.35)}
.tk-keno .kn-add:not(:disabled):hover{background:linear-gradient(180deg,rgba(240,200,110,.9),rgba(226,184,96,.5))}
