/* ====== 漫象数据 · 九法降妖 走势分析站 样式（深色主题） ====== */
:root{
  --bg:#101827; --bg2:#0a111e;
  --gold:#f5d88e; --gold-soft:#fff7df; --gold-soft2:#fff8df; --gold-deep:#e7c46e;
  --ink:#07111f; --ink2:#101b2f; --ink3:#10243d; --ink4:#0c1a2c; --ink5:#172a46;
  --card:rgba(255,255,255,0.045); --card-solid:#16223a;
  --cyan:#5ce4ff; --cyan2:#a7efff; --cyan3:#60c9ff; --blue:#37d8ff;
  --text:#fff7df; --text2:#c8d8ee; --text3:#7e95b3;
  --line:rgba(245,216,142,0.14); --line2:rgba(120,180,255,0.12);
  --rainbow:linear-gradient(135deg,#ff39f6 0%,#37d8ff 22%,#60ff9b 43%,#ffe45f 62%,#ff6a3d 80%,#ff39f6 100%);
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{font-family:var(--font);background:radial-gradient(1200px 600px at 50% -10%,#1a2a48 0%,var(--bg) 55%,var(--bg2) 100%);color:var(--text);font-size:14px;line-height:1.5;min-height:100vh;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input{font-family:inherit;}
a{color:inherit;text-decoration:none;}
#app{max-width:1200px;margin:0 auto;padding-bottom:72px;min-height:100vh;}

/* ====== 顶部栏 ====== */
.tf-topbar{display:flex;align-items:center;gap:12px;padding:11px 16px;background:rgba(7,14,25,0.55);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;flex-wrap:wrap;}
.tf-top-left{display:flex;align-items:center;gap:10px;flex:1;min-width:200px;}
.tf-top-right{display:flex;align-items:center;gap:10px;}
.tf-banner{color:var(--text3);font-size:12px;flex:1;text-align:center;}
.tf-chip{padding:7px 14px;border-radius:20px;background:rgba(255,255,255,0.06);border:1px solid var(--line);font-size:13px;color:var(--text2);transition:.15s;}
.tf-chip:active{transform:scale(.96);}
.tf-chip-primary{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#5a3d00;border:none;font-weight:600;}
.tf-room-status{display:flex;align-items:center;gap:8px;font-size:13px;}
.tf-room-name{font-weight:600;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tf-sync{display:flex;align-items:center;gap:4px;color:var(--cyan3);font-size:12px;}
.tf-sync-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:tftpulse 1.6s infinite;}
@keyframes tftpulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.tf-user-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;background:rgba(255,255,255,0.06);border:1px solid var(--line);}
.tf-username{font-size:13px;color:var(--text);}
.tf-vip-tag{font-size:11px;font-weight:700;color:#5a3d00;background:linear-gradient(135deg,var(--gold),var(--gold-deep));padding:2px 8px;border-radius:10px;}
.tf-ver-btn{padding:7px 14px;border-radius:20px;font-size:13px;background:rgba(255,255,255,0.06);border:1px solid var(--line);color:var(--text2);}
.tf-ver-btn.active{background:linear-gradient(135deg,var(--ink3),var(--ink5));color:var(--gold);border-color:var(--gold);}

/* ====== 主区 ====== */
.tf-main{display:flex;gap:16px;padding:16px;align-items:flex-start;}
.tf-beast-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;flex:1;max-width:560px;margin:0 auto;}

/* ====== spell-card 经典版兽卡（1:1 tafang 深色） ====== */
.spell-card{background:var(--card);backdrop-filter:blur(4px);border-radius:12px;padding:8px 6px 6px;text-align:center;border:1px solid var(--accent);cursor:pointer;transition:.15s;position:relative;display:flex;flex-direction:column;align-items:center;min-height:148px;}
.spell-card:hover{transform:translateY(-2px);background:rgba(255,255,255,0.07);}
.spell-card.trace-on{box-shadow:0 0 0 2px var(--accent),0 0 18px var(--accent);}
.beast-visual{display:flex;flex-direction:column;align-items:center;gap:3px;}
.beast-visual img{width:46px;height:46px;object-fit:cover;border-radius:10px;}
.beast-visual span{font-size:11px;color:var(--text);font-weight:500;}
.spell-main{display:flex;align-items:center;justify-content:center;gap:5px;margin:6px 0 4px;}
.spell-main strong{font-size:11px;color:#fff;background:var(--accent);padding:2px 7px;border-radius:6px;font-weight:600;}
.spell-main b{font-size:22px;font-weight:800;color:#fff;font-family:Arial,sans-serif;line-height:1;}
.spell-card footer{display:flex;justify-content:space-around;width:100%;font-size:10px;color:var(--text3);border-top:1px solid var(--line2);padding-top:5px;margin-top:auto;}
.omission-stat.cold{color:#ff6b6b;font-weight:600;}
/* 推荐卡(第10格,主防推荐) */
.recommend-card{border-color:#f3cf4e;background:linear-gradient(160deg,rgba(243,207,78,.14),rgba(255,255,255,.03));justify-content:flex-start;}
.rec-head{font-size:11px;color:#f3cf4e;font-weight:700;text-align:center;width:100%;letter-spacing:1px;}
.recommend-panel{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:6px;width:100%;border-top:1px solid var(--line2);padding-top:6px;}
.rec-row{display:flex;align-items:center;gap:4px;}
.rec-picks{display:flex;gap:4px;}
.recommend-label{font-size:9px;font-weight:700;width:16px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;}
.recommend-label.main{background:#ff6b6b;color:#fff;}
.recommend-label.guard{background:#41d9c9;color:#06203a;}
.recommend-number{width:24px;height:24px;border-radius:6px;color:#fff;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;}

/* 倒计时卡(第10格,跳动) */
.count-card{justify-content:center;border-color:#f3cf4e;background:linear-gradient(160deg,rgba(243,207,78,.14),rgba(255,255,255,.03));}
.count-label{font-size:11px;color:#f3cf4e;text-align:center;width:100%;letter-spacing:1px;}
.count-num{font-size:40px;font-weight:800;color:#fff;font-family:Arial;line-height:1;margin:6px 0;text-shadow:0 0 14px rgba(243,207,78,.55);animation:countTick 1s ease-in-out infinite;}
.count-unit{font-size:10px;color:var(--text3);}
@keyframes countTick{0%,100%{transform:scale(1);}50%{transform:scale(.86);}}

/* 主区左列 + 24位走势 */
.tf-classic-col{display:flex;flex-direction:column;flex:1;min-width:0;gap:16px;}
.history-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;}
.history-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.toolbar-right{display:flex;align-items:center;gap:8px;}
.room-profile{display:flex;flex-direction:column;gap:1px;}
.rp-name{font-size:14px;font-weight:600;color:var(--text);}
.rp-id{font-size:10px;color:var(--text3);}
.col-toggle{padding:5px 12px;border-radius:8px;background:rgba(255,255,255,0.06);border:1px solid var(--line);color:var(--gold);font-size:12px;}
select.col-toggle{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:24px;background-color:rgba(255,255,255,0.06);background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;}
select.col-toggle option{background:#16223a;color:var(--text);}
.history-grid{display:flex;flex-direction:column;gap:2px;align-items:flex-start;overflow-x:auto;}
.history-row{display:flex;flex-wrap:nowrap;gap:2px;align-items:center;justify-content:flex-start;}
.history-cell{width:15px;height:15px;border-radius:3px;color:#fff;font-weight:700;font-size:9px;display:flex;align-items:center;justify-content:center;}
.history-cell.rec-hit{z-index:2;font-weight:900;}
.hist-countdown{background:#fff;color:#d51f2a;font-weight:800;animation:pendingBlink 1s steps(1,end) infinite;padding:3px 8px;border-radius:6px;}
@keyframes pendingBlink{0%,50%{opacity:1;}50.01%,100%{opacity:0.2;}}
.history-cell.hp-hit{outline:2px solid var(--gold);outline-offset:1px;z-index:1;}
.hp-search{width:72px;padding:5px 10px;border-radius:20px;border:1px solid var(--line2);background:rgba(0,0,0,.25);color:var(--text);font-size:12px;text-align:center;}
.hp-search::placeholder{color:#5b6b8c;}
.hp-search:focus{outline:none;border-color:var(--cyan3);}

/* 走势表格 trend-panel */
.trend-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;overflow-x:auto;}
.trend-head,.trend-rows .tr{display:grid;grid-template-columns:46px repeat(9,minmax(20px,1fr)) repeat(4,minmax(20px,1fr));gap:2px;align-items:center;}
.trend-head{margin-bottom:6px;border-bottom:1px solid var(--line2);padding-bottom:5px;}
.th{font-size:10px;color:var(--text3);text-align:center;}
.tr{margin-bottom:2px;}
.tp{font-size:10px;color:var(--text3);text-align:center;}
.tc{height:20px;border-radius:3px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;color:transparent;}
.tc.hit{color:#fff;}
.tf-download{display:block;text-align:center;padding:11px;margin:14px 0 4px;border-radius:12px;background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:#5a3d00;font-weight:600;text-decoration:none;}
.tf-game-toast{text-align:center;padding:60px 24px;color:var(--text3);font-size:15px;}

/* ====== 高级版侧栏 ====== */
.tf-main:not(.tf-main-v2) .tf-sidebar{display:none;}
.tf-sidebar{width:380px;flex-shrink:0;background:linear-gradient(180deg,var(--ink3),var(--ink));border:1px solid var(--line2);border-radius:16px;color:#dff4ff;overflow:hidden;position:sticky;top:72px;}
.tf-sb-header{padding:14px 16px;font-size:14px;border-bottom:1px solid rgba(120,180,255,.15);background:rgba(255,255,255,.03);}
.tf-sb-body{padding:0;}
.tf-build-placeholder{text-align:center;padding:30px 16px;color:var(--text3);}
.tf-build-icon{font-size:42px;margin-bottom:10px;}
.tf-build-placeholder p{font-size:14px;margin-bottom:6px;color:var(--text2);}
.tf-build-placeholder small{font-size:11px;line-height:1.7;display:block;}
.tf-sb-empty{padding:40px 16px;text-align:center;color:var(--text3);}
.tf-ws{background:rgba(255,255,255,.04);border:1px solid rgba(120,180,255,.12);border-radius:12px;margin:12px;overflow:hidden;}
.tf-ws-head{padding:10px 12px;border-bottom:1px solid rgba(120,180,255,.1);display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:rgba(0,0,0,.15);}
.tf-ws-head strong{font-size:13px;color:var(--gold);}
.tf-ws-tabs{display:flex;flex-wrap:wrap;gap:4px;flex:1;}
.tf-ws-tab{font-size:11px;padding:4px 9px;border-radius:8px;background:rgba(255,255,255,.06);color:#9fb0c8;}
.tf-ws-tab.on{background:linear-gradient(135deg,var(--cyan3),var(--blue));color:#06203a;font-weight:600;}
.tf-ws-body{padding:12px;}
.tf-mod-title{font-size:13px;color:#fff;margin-bottom:10px;font-weight:600;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.tf-mod-title small{font-size:10px;color:#7e95b3;font-weight:400;}
.tf-table{width:100%;border-collapse:collapse;font-size:11px;color:#c8d8ee;}
.tf-table th{font-weight:500;color:#7e95b3;padding:5px 3px;text-align:center;border-bottom:1px solid rgba(120,180,255,.12);font-size:10px;}
.tf-table td{padding:5px 3px;text-align:center;border-bottom:1px solid rgba(120,180,255,.06);}
.tf-table td:first-child{text-align:left;}
.tf-dim{color:#7e95b3;}
.dev-hot{color:#ff9f9f;font-weight:600;}
.dev-cold{color:#7de8ff;font-weight:600;}
.tf-num-chip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;color:#fff;font-weight:700;font-size:11px;margin-right:3px;}
.tf-state{font-size:10px;padding:2px 7px;border-radius:8px;background:rgba(255,255,255,.08);color:#9fb0c8;}
.tf-state.hot{background:rgba(125,232,255,.18);color:#7de8ff;}
.tf-state.cold{background:rgba(255,107,107,.18);color:#ff9f9f;}
.tf-bar{width:60px;height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;}
.tf-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#60ff9b,#ffe45f);}
.tf-bar-fill.warn{background:linear-gradient(90deg,#ffe45f,#ff9f9f);}
.tf-bar-fill.over{background:linear-gradient(90deg,#ff9f9f,#ff39f6);}
.tf-matrix{display:grid;grid-template-columns:32px repeat(9,1fr);gap:2px;}
.tf-mx-corner{font-size:8px;color:#5b6b8c;display:flex;align-items:center;justify-content:center;}
.tf-mx-h{font-size:10px;font-weight:700;text-align:center;padding:3px 0;}
.tf-mx-cell{height:24px;border-radius:4px;font-size:9px;font-weight:700;color:#06203a;display:flex;align-items:center;justify-content:center;}
.tf-table-omit td:nth-child(6){text-align:left;}
.tf-num-box{display:inline-flex;align-items:center;justify-content:center;width:20px;height:24px;border-radius:5px;color:#fff;font-weight:700;font-size:12px;margin:1px;}
.tf-stream-head{font-size:10px;color:#7e95b3;margin:6px 0 4px;}
.tf-stream{display:flex;flex-wrap:wrap;gap:2px;padding:8px 6px;background:rgba(0,0,0,.22);border-radius:8px;margin-bottom:8px;}
.tf-back-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.tf-back-cell{background:rgba(255,255,255,.04);border:1px solid rgba(120,180,255,.1);border-radius:8px;padding:10px 4px;text-align:center;}
.tf-back-v{font-size:17px;font-weight:700;color:#7de8ff;}
.tf-back-v.dim{color:#7e95b3;}
.tf-back-l{font-size:9px;color:#7e95b3;margin-top:3px;}
.tf-heat{font-size:9px;}
.tf-heat-row{display:flex;align-items:center;gap:2px;margin-bottom:2px;}
.tf-heat-h{width:14px;text-align:right;color:#5b6b8c;font-size:8px;flex-shrink:0;}
.tf-heat-hc{flex:1;text-align:center;font-weight:700;font-size:9px;}
.tf-heat-c{flex:1;height:15px;border-radius:3px;color:rgba(6,32,58,.85);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:8px;}
.tf-bal{display:flex;flex-direction:column;gap:5px;}
.tf-bal-row{display:flex;align-items:center;gap:6px;font-size:11px;}
.tf-bal-bar{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;}
.tf-bal-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#60ff9b,#ffe45f);}
.tf-order2{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;padding:6px 0;}
.tf-order2-info{font-size:12px;line-height:1.8;color:var(--text2);padding:4px 0;}

/* ====== 底部导航 ====== */
.tf-nav{position:fixed;bottom:0;left:0;right:0;max-width:1200px;margin:0 auto;display:flex;background:rgba(7,14,25,0.85);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:50;padding:0 env(safe-area-inset-bottom);}
.tf-nav-btn{flex:1;padding:10px 0 12px;font-size:12px;color:var(--text3);text-align:center;transition:.15s;}
.tf-nav-btn.active{color:var(--gold);font-weight:600;}
.tf-nav-btn::before{content:"🏠";display:block;font-size:20px;margin-bottom:2px;}
.tf-nav-btn[data-tab="game"]::before{content:"🎮";}
.tf-nav-btn[data-tab="account"]::before{content:"👤";}

/* tab 面板 */
.tf-tab-panel{padding:24px 16px;}
.tf-account-box{max-width:480px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;}
.tf-account-box h3{margin-bottom:16px;font-size:18px;color:var(--text);}
.tf-acc-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line2);margin-bottom:12px;color:var(--text2);}
.tf-add-room{display:flex;gap:8px;margin-top:14px;}
.tf-acc-rooms{display:flex;flex-direction:column;gap:6px;}
.tf-acc-room{display:flex;align-items:center;justify-content:space-between;padding:10px;border:1px solid var(--line2);border-radius:10px;background:rgba(255,255,255,.02);}
.tf-acc-room b{font-size:13px;color:var(--text);}
.tf-acc-room span{font-size:10px;color:var(--text3);display:block;}
.tf-acc-room-btns{display:flex;gap:6px;}
.tf-acc-room-btns .tf-chip{font-size:11px;padding:4px 10px;}
.tf-vs{display:flex;flex-direction:column;gap:5px;}
.tf-vs-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line2);border-radius:8px;background:rgba(255,255,255,.02);font-size:12px;}
.tf-vs-name{flex:1;color:var(--text);}
.tf-vs-row .tf-chip{font-size:10px;padding:3px 8px;}

/* ====== 弹层 ====== */
.tf-modal{display:none;position:fixed;inset:0;background:rgba(7,17,31,.65);backdrop-filter:blur(3px);z-index:100;align-items:center;justify-content:center;padding:16px;}
.tf-modal.show{display:flex;}
.tf-modal-card{background:linear-gradient(180deg,#16223a,#0e1626);border:1px solid var(--line);border-radius:18px;width:100%;max-width:380px;max-height:86vh;overflow:hidden;display:flex;flex-direction:column;}
.tf-modal-wide{max-width:520px;}
.tf-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line2);}
.tf-modal-head h3{font-size:16px;color:var(--text);}
.tf-close{font-size:24px;color:var(--text3);line-height:1;width:28px;height:28px;}
.tf-modal-body{padding:18px;display:flex;flex-direction:column;gap:12px;}
.tf-modal-foot{padding:0 18px 14px;display:flex;gap:10px;}
.tf-modal-foot .tf-chip{flex:1;text-align:center;padding:11px;}
.tf-input{width:100%;padding:11px 14px;border:1px solid var(--line2);border-radius:10px;font-size:14px;background:rgba(0,0,0,.25);color:var(--text);}
.tf-input::placeholder{color:#5b6b8c;}
.tf-input:focus{outline:none;border-color:var(--cyan3);}
.tf-err{color:#ef4444;font-size:12px;}
.tf-hint{text-align:center;color:var(--text3);font-size:12px;padding:0 18px 16px;}
.tf-tabs{display:flex;gap:8px;padding:12px 16px 0;}
.tf-tab{padding:8px 14px;border-radius:10px;font-size:13px;color:var(--text3);}
.tf-tab.active{background:var(--ink3);color:var(--gold);}
.tf-badge{background:var(--cyan3);color:#06203a;border-radius:10px;padding:1px 7px;font-size:11px;margin-left:4px;}
.tf-modal-search{padding:12px 16px;}
.tf-modal-search .tf-input{border-radius:20px;}
.tf-room-list{padding:0 16px 16px;overflow-y:auto;flex:1;}
.tf-room-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;margin-bottom:6px;border:1px solid var(--line2);transition:.12s;background:rgba(255,255,255,.02);}
.tf-room-item:active{background:rgba(255,255,255,.05);}
.tf-room-item.active{border-color:var(--cyan3);background:rgba(96,201,255,.08);}
.tf-room-avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--gold),var(--gold-deep));display:flex;align-items:center;justify-content:center;color:#5a3d00;font-weight:700;flex-shrink:0;overflow:hidden;}
.tf-room-avatar img{width:100%;height:100%;object-fit:cover;}
.tf-room-info{flex:1;min-width:0;}
.tf-room-info b{font-size:13px;display:block;color:var(--text);}
.tf-room-info span{font-size:11px;color:var(--text3);}
.tf-live-tag{font-size:10px;color:#fff;background:#ef4444;padding:2px 6px;border-radius:6px;}

.tf-loading{text-align:center;color:var(--text3);padding:40px;grid-column:1/-1;}

/* ====== 响应式 ====== */
@media(max-width:860px){
  .tf-banner{display:none;}
  .tf-main{flex-direction:column;padding:12px;}
  .tf-sidebar{width:100%;position:static;}
}
@media(max-width:420px){
  .tf-beast-grid{grid-template-columns:repeat(3,1fr);gap:6px;max-width:100%;}
  .tf-room-name{max-width:90px;}
}
/* ============ 九法降妖 游戏界面 ============ */
.tf-game-wrap{display:flex;flex-direction:column;gap:14px;padding:4px 0 20px;}
.tf-game-roombar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tf-game-select{background:var(--bg,#252a3e);color:var(--text,#e8eaf0);border:1px solid var(--border,#3a4060);border-radius:8px;padding:7px 10px;font-size:13px;max-width:260px;}
.tf-game-account{font-size:12px;opacity:.8;}
/* 全局房间下拉(底部导航固定位置, 主页与游戏共用) */
.tf-global-room{background:rgba(37,42,62,.9);color:var(--text,#e8eaf0);border:1px solid var(--border,#3a4060);border-radius:8px;padding:6px 8px;font-size:12px;max-width:200px;margin-left:6px;flex:0 0 auto;}
.tf-game-roomhint{font-size:12px;opacity:.85;}
.tf-game-roomhint b{color:var(--gold,#e6c15a);}
.tf-game-round{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.04);border-radius:10px;padding:10px 14px;font-size:13px;}
.tf-round-id{color:var(--gold,#e6c15a);font-weight:600;}
.tf-round-time{opacity:.9;}
.tf-round-status{color:#5ecf8a;font-weight:600;}
.tf-round-wait{color:#e85d68;}
.tf-game-board{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;max-width:560px;margin:0 auto;width:100%;}
.tf-board-hint{grid-column:1/-1;text-align:center;color:var(--text);opacity:.6;padding:24px 0;font-size:13px;}
.tf-game-betpanel{background:rgba(230,193,90,.08);border:1px solid rgba(230,193,90,.3);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;}
.tf-bet-title{font-weight:600;font-size:14px;}
.tf-bet-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.tf-bet-row label{font-size:13px;display:flex;align-items:center;gap:6px;}
.tf-bet-row input{background:var(--bg,#252a3e);color:var(--text,#e8eaf0);border:1px solid var(--border,#3a4060);border-radius:6px;padding:6px 8px;}
.tf-bet-price{font-weight:700;color:var(--gold,#e6c15a);}
.tf-bet-msg{font-size:12px;min-height:16px;}
.tf-game-history-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.tf-game-history-head strong{font-size:14px;}
.tf-chip{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;}
.tf-chip-primary{background:var(--gold,#e6c15a);color:#1a1a2e;}
.tf-chip-danger{background:#e85d68;color:#fff;}
.tf-chip:disabled{opacity:.5;cursor:not-allowed;}
/* ============ 登录门禁遮罩 ============ */
.login-gate{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  background:var(--bg,#1a1c29);}
.login-gate-card{background:var(--panel,#252a3e);border:1px solid var(--border,#3a4060);
  border-radius:16px;padding:40px 44px;text-align:center;max-width:360px;width:90%;
  box-shadow:0 20px 60px rgba(0,0,0,.5);}
.login-gate-logo{font-size:22px;font-weight:800;background:linear-gradient(135deg,#e6c15a,#ff8a5c);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:14px;}
.login-gate-tip{font-size:13px;opacity:.75;margin-bottom:24px;line-height:1.6;}
.login-gate-btn{width:100%;padding:12px;font-size:15px;}
.login-gate-hint{font-size:11px;opacity:.5;margin-top:14px;}

.tf-game-balance{font-size:12px;opacity:.85;}
.tf-game-balance b{color:var(--gold,#e6c15a);}
.tf-records-summary{padding:10px 18px;font-size:13px;color:var(--text2);border-bottom:1px solid var(--line2);}
.tf-records-summary b{color:var(--text);}
.tf-records-list{max-height:60vh;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px;}
.tf-record-item{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;}
.tf-record-item.rec-win{border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.08);}
.tf-record-item.rec-lose{opacity:.82;}
.tf-record-spell{font-weight:600;font-size:14px;color:var(--text);}
.tf-record-spell .tf-record-num{font-size:11px;opacity:.6;font-weight:400;}
.tf-record-detail{font-size:12px;color:var(--text2);}
.tf-record-result{font-size:13px;font-weight:600;color:var(--gold);}
.tf-record-item.rec-win .tf-record-result{color:#22c55e;}
.tf-record-item.rec-lose .tf-record-result{color:#e85d68;}
.tf-record-item.rec-pending .tf-record-result{color:#e6c15a;}
.tf-record-meta{font-size:11px;opacity:.6;}
.tf-records-empty,.tf-records-loading{text-align:center;color:var(--text3);padding:40px;}
