/* 水位马名/马号：全端统一中等偏大，随视口 clamp；JS 按行宽再缩小以保证完整显示 */
#panel-q .rank-wp-table-ref{
  --rank-q-horse-name-font:clamp(18px,5vw,24px);
}
#panel-q .rank-wp-table-ref > thead > tr.rank-q-thead-row .rank-q-th-sort-label{
  font-size:var(--rank-q-horse-name-font) !important;
  line-height:1 !important;
  font-weight:700 !important;
}
#panel-q .rank-wp-table-ref .rank-ref-horse-top{
  min-width:0 !important;
  overflow:visible !important;
}
#panel-q .rank-wp-table-ref .rank-ref-horse-top-main{
  display:inline-flex !important;
  align-items:baseline !important;
  flex:1 1 0 !important;
  min-width:0 !important;
  max-width:none !important;
  overflow:visible !important;
  white-space:nowrap !important;
  gap:4px !important;
}
#panel-q .rank-wp-table-ref .rank-ref-horse-top-main .rank-ref-horse-no,
#panel-q .rank-wp-table-ref .rank-ref-horse-no,
#panel-q .rank-wp-table-ref td:nth-child(1) .horse-name,
#panel-q .rank-wp-table-ref > tbody > tr.sortTr > td:nth-child(1) .horse-name,
#panel-q .rank-wp-table.rank-wp-table-ref > tbody > tr.sortTr > td:nth-child(1) .horse-name,
#panel-q .rank-wp-table.rank-wp-table-ref .rank-ref-horse-top .horse-name,
#panel-q .rank-wp-table.rank-wp-table-ref .rank-ref-horse-top-main .horse-name{
  font-size:var(--rank-q-horse-name-font) !important;
  max-width:none !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
}
#panel-q .rank-wp-table-ref > thead > tr.rank-q-thead-row > th.rank-q-th-col{
  min-height:28px !important;
}
#panel-q .rank-wp-table-ref > thead > tr.rank-q-thead-row .rank-q-th-sort{
  min-height:28px !important;
  padding:2px 4px !important;
  line-height:1 !important;
}
#panel-q .rank-wp-table-ref > thead > tr.rank-q-thead-row > th.rank-q-th-col[rowspan="2"] .rank-q-th-sort{
  min-height:56px !important;
}

/* 右上角倒計時整體左移 5%（所有狀態共用） */
.board-announcement-wrap .board-announcement-strip #rightState{
  transform:translateX(-5%);
}

/* 右上角「結束」：独立加载，不依赖 bundle 重建 */
.board-announcement-wrap .board-announcement-strip #rightState.right-state-finished{
  color:#fff !important;
  background:#c62828 !important;
  font-weight:900 !important;
  padding:2px 10px !important;
  border-radius:4px;
  box-shadow:none !important;
}

/* 右上角倒計時：進行中綠底白字；開跑紅底白字（結束见 .right-state-finished） */
.board-announcement-wrap .board-announcement-strip #rightState:not(.right-state-finished):not(:has(.state-open)){
  color:#fff !important;
  background:#16a34a !important;
  font-weight:900 !important;
  padding:2px 10px !important;
  border-radius:4px;
  box-shadow:none !important;
}
.board-announcement-wrap .board-announcement-strip #rightState:has(.state-open){
  color:#fff !important;
  background:#c62828 !important;
  font-weight:900 !important;
  padding:2px 10px !important;
  border-radius:4px;
  box-shadow:none !important;
}
.board-announcement-wrap .board-announcement-strip #rightState .state-open{
  color:inherit !important;
  background:transparent !important;
}

/* 提示音开关：独立加载，避免 bundle 未重建时无效 */
.board-announcement-wrap .board-alert-sound-btn.is-muted{color:#64748b !important;}

/* 水位工具列右側：簡易/詳細 + 調試（窄屏不擠出視口） */
.rank-q-font-tools{
  flex-wrap:wrap;
  row-gap:6px;
}
.rank-q-font-tools-right{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin-left:auto;
}
/* 水位調試：正式環境隱藏（僅保留 DOM 供 ?rankQDebug=1 時腳本啟用） */
#rankQDebugToggle,
.rank-q-debug-toggle,
#rankQDebugConsole,
.rank-q-debug-console{
  display:none !important;
}
/* 水位排序調試 */
.rank-q-debug-toggle{
  flex:0 0 auto;
  min-width:44px;
  height:30px;
  padding:0 10px;
  border:1px solid #94a3b8;
  border-radius:999px;
  background:#fff;
  color:#334155;
  font-size:13px;
  font-weight:700;
  line-height:28px;
  cursor:pointer;
  touch-action:manipulation;
}
.rank-q-debug-toggle.is-active{
  border-color:#0d9488;
  background:#ecfdf5;
  color:#0f766e;
}
.rank-q-debug-console{
  position:fixed;
  left:8px;
  right:8px;
  bottom:calc(72px + env(safe-area-inset-bottom, 0px));
  max-height:38vh;
  display:flex;
  flex-direction:column;
  border:1px solid #0f766e;
  border-radius:10px;
  background:rgba(15,23,42,.94);
  color:#e2e8f0;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
  z-index:2400;
  overflow:hidden;
}
.rank-q-debug-console[hidden]{display:none !important}
.rank-q-debug-console-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 10px;
  border-bottom:1px solid rgba(148,163,184,.35);
  flex:0 0 auto;
}
.rank-q-debug-console-title{
  font-size:12px;
  font-weight:700;
  color:#99f6e4;
}
.rank-q-debug-console-actions{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.rank-q-debug-console-btn{
  min-height:28px;
  padding:0 10px;
  border:1px solid #64748b;
  border-radius:6px;
  background:#1e293b;
  color:#f8fafc;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.rank-q-debug-console-text{
  margin:0;
  padding:8px 10px;
  font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:pre-wrap;
  word-break:break-word;
  overflow:auto;
  flex:1 1 auto;
  max-height:calc(38vh - 40px);
  color:#cbd5e1;
}
#panel-q:not(.active) .rank-q-debug-console{display:none !important}

/* 赔率走势图例：单行，排在第一矩阵上方（排位表下方） */
#panel-q .rank-q-block .rank-odds-legend{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:clamp(4px,1.2vw,10px) clamp(6px,2vw,14px) !important;
  width:100% !important;
  max-width:100% !important;
  margin:clamp(6px,1.5vw,10px) 0 clamp(8px,2vw,12px) !important;
  padding:0 !important;
  font-size:clamp(10px,2.6vw,12px) !important;
  line-height:1.35 !important;
  color:var(--muted,#64748b) !important;
  box-sizing:border-box !important;
}
#panel-q .rank-q-block .rank-odds-legend .legend-top-row,
#panel-q .rank-q-block .rank-odds-legend .legend-row{
  display:contents !important;
}
#panel-q .rank-q-block .rank-odds-legend .legend-label{
  font-weight:700 !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}
#panel-q .rank-q-block .rank-odds-legend .legend-item{
  display:inline-flex !important;
  align-items:center !important;
  gap:4px !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}
#panel-q .rank-q-block .rank-odds-legend .legend-dot{
  width:clamp(8px,2.2vw,10px) !important;
  height:clamp(8px,2.2vw,10px) !important;
}
#panel-q .rank-q-block .rank-odds-legend .legend-meta{
  display:inline-flex !important;
  align-items:center !important;
  gap:clamp(4px,1vw,8px) !important;
  margin-left:auto !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
#panel-q .rank-q-block .rank-odds-legend .q-update-time{
  font-size:inherit !important;
  white-space:nowrap !important;
}
#panel-q .rank-q-block .rank-odds-legend .q-refresh-btn{
  border:none !important;
  background:none !important;
  cursor:pointer !important;
  font-size:clamp(14px,3.8vw,18px) !important;
  line-height:1 !important;
  padding:2px 4px !important;
  flex:0 0 auto !important;
}
#panel-q .rank-q-block .rank-odds-legend .q-refresh-btn:hover{
  opacity:.8 !important;
}

/* Q 四矩阵：马会格子尺寸（仅行高/列宽/字号，不改颜色） */
#panel-q .q-tables-gap{
  display:block !important;
  height:12px !important;
  min-height:12px !important;
  margin:0 !important;
  padding:0 !important;
}
#panel-q .rank-q-matrix-group .rank-q-inline-water{margin-top:0 !important}
#panel-q .rank-q-matrix-group[data-q-matrix-group="qin"] .rank-q-inline-water{margin-bottom:0 !important}
/* 四矩阵外角直角（取消圆角） */
#panel-q .rank-q-block .qin-odds-slide-container,
#panel-q .rank-q-inline-water .qin-odds-slide-container,
#panel-q .rank-q-block .qin-odds-slide,
#panel-q .rank-q-inline-water .qin-odds-slide,
#panel-q .rank-q-block .qin-table,
#panel-q .rank-q-inline-water .qin-table,
#panel-q .rank-q-block .qin-odds-table,
#panel-q .rank-q-inline-water .qin-odds-table,
#panel-q .rank-q-block .qin-odds-table tr:first-child td:first-child,
#panel-q .rank-q-block .qin-odds-table tr:first-child td:last-child,
#panel-q .rank-q-block .qin-odds-table tr:last-child td:first-child,
#panel-q .rank-q-block .qin-odds-table tr:last-child td:last-child,
#panel-q .rank-q-inline-water .qin-odds-table tr:first-child td:first-child,
#panel-q .rank-q-inline-water .qin-odds-table tr:first-child td:last-child,
#panel-q .rank-q-inline-water .qin-odds-table tr:last-child td:last-child,
#panel-q .rank-q-inline-water .qin-odds-table tr:last-child td:last-child{
  border-radius:0 !important;
}
#panel-q .rank-q-block .qin-odds-table,
#panel-q .rank-q-inline-water .qin-odds-table{
  table-layout:fixed !important;
  font-size:13px !important;
}
#panel-q .rank-q-block .qin-odds-table td,
#panel-q .rank-q-block .qin-odds-table th,
#panel-q .rank-q-inline-water .qin-odds-table td,
#panel-q .rank-q-inline-water .qin-odds-table th{
  padding:1px !important;
  height:26px !important;
  min-height:26px !important;
  max-height:26px !important;
  line-height:15px !important;
  font-size:13px !important;
  box-sizing:border-box !important;
  vertical-align:middle !important;
  text-align:center !important;
  overflow:hidden !important;
}
/* 四矩阵格内数字居中（连赢 / 位置Q / QIN指數 / QPL指數 一致） */
#panel-q .rank-q-block .qin-odds-table td,
#panel-q .rank-q-block .qin-odds-table th,
#panel-q .rank-q-inline-water .qin-odds-table td,
#panel-q .rank-q-inline-water .qin-odds-table th{
  text-align:center !important;
  vertical-align:middle !important;
}
#panel-q .rank-q-block .qin-odds-table td>span,
#panel-q .rank-q-block .qin-odds-table th>span,
#panel-q .rank-q-block .qin-odds-table td>div,
#panel-q .rank-q-block .qin-odds-table th>div,
#panel-q .rank-q-inline-water .qin-odds-table td>span,
#panel-q .rank-q-inline-water .qin-odds-table th>span,
#panel-q .rank-q-inline-water .qin-odds-table td>div,
#panel-q .rank-q-inline-water .qin-odds-table th>div{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  line-height:15px !important;
  font-size:inherit !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
/* 四表标题：连赢 / 位置Q / QIN指數 / QPL指數 水平居中，字号与格内一致 */
#panel-q .rank-q-block .qin-odds-table .qin-odds-table-title,
#panel-q .rank-q-inline-water .qin-odds-table .qin-odds-table-title{
  text-align:center !important;
  font-size:13px !important;
  font-weight:700 !important;
}
#panel-q .rank-q-block .qin-odds-table .qin-odds-table-title>div,
#panel-q .rank-q-inline-water .qin-odds-table .qin-odds-table-title>div{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  line-height:15px !important;
  font-size:13px !important;
  padding:0 4px !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
#panel-q .q-toggle-cell,
#panel-q .q-toggle-btn{display:none !important}

/* 仅「QIN指數」「QPL指數」标题格底色 #ffce44 */
#panel-q .rank-q-inline-water .qin-water-table-QIN .qin-odds-table-title,
#panel-q .rank-q-inline-water .qin-water-table-QPL .qin-odds-table-title{
  background:#ffce44 !important;
  color:#122c68 !important;
}
#panel-q .rank-q-inline-water .qin-water-table-QIN .qin-odds-table-title>div,
#panel-q .rank-q-inline-water .qin-water-table-QPL .qin-odds-table-title>div{
  color:#122c68 !important;
}

@media(max-width:768px){
  #panel-q .rank-wp-table-ref col.rank-col-name{width:38% !important}
  #panel-q .rank-wp-table-ref > thead > tr.rank-q-thead-row > th.rank-q-th-col-name{width:38% !important}
  #panel-q .rank-wp-table-ref .rank-ref-horse-pace-slot .horse-pace-badge{
    font-size:11px !important;
    padding:1px 4px !important;
  }
  #panel-q .rank-wp-table.rank-wp-table-ref .rank-ref-horse-top-main,
  #panel-q .rank-wp-table.rank-wp-table-ref .rank-ref-horse-top-main .horse-name{
    overflow:visible !important;
    text-overflow:clip !important;
    max-width:none !important;
  }
  /* 手机：只保留更新时间与刷新，隐藏赔率走势图例 */
  #panel-q .rank-q-block .rank-odds-legend .legend-label,
  #panel-q .rank-q-block .rank-odds-legend .legend-item{
    display:none !important;
  }
  #panel-q .rank-q-block .rank-odds-legend{
    justify-content:flex-end !important;
    margin:clamp(4px,1vw,8px) 0 clamp(6px,1.5vw,10px) !important;
  }
  #panel-q .rank-q-block .rank-odds-legend .legend-meta{
    margin-left:0 !important;
    width:100% !important;
    justify-content:flex-end !important;
  }
  #panel-q .rank-q-block,
  #panel-q .rank-q-block .q-fit-wrap,
  #panel-q .rank-q-block .q-fit-inner,
  #panel-q #rankPanelQQ,
  #panel-q .rank-q-matrix-group,
  #panel-q .rank-q-inline-water{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  #panel-q .rank-q-block .qin-odds-slide-container,
  #panel-q .rank-q-inline-water .qin-odds-slide-container{
    overflow-x:visible !important;
    overflow-y:visible !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }
  #panel-q .rank-q-block .qin-odds-slide,
  #panel-q .rank-q-inline-water .qin-odds-slide,
  #panel-q .rank-q-block .qin-table,
  #panel-q .rank-q-inline-water .qin-table{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
    display:block !important;
    box-sizing:border-box !important;
  }
  #panel-q .rank-q-block .qin-odds-table,
  #panel-q .rank-q-inline-water .qin-odds-table{
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    font-size:11px !important;
    table-layout:fixed !important;
  }
  #panel-q .rank-q-block .qin-odds-table td,
  #panel-q .rank-q-block .qin-odds-table th,
  #panel-q .rank-q-inline-water .qin-odds-table td,
  #panel-q .rank-q-inline-water .qin-odds-table th{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:21px !important;
    min-height:21px !important;
    max-height:21px !important;
    padding:1px !important;
    font-size:11px !important;
    line-height:15px !important;
    white-space:nowrap !important;
  }
  #panel-q .rank-q-block .qin-odds-table .qin-odds-table-title,
  #panel-q .rank-q-inline-water .qin-odds-table .qin-odds-table-title{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:21px !important;
    min-height:21px !important;
    max-height:21px !important;
    font-size:11px !important;
  }
  #panel-q .rank-q-block .qin-odds-table .qin-odds-table-title>div,
  #panel-q .rank-q-inline-water .qin-odds-table .qin-odds-table-title>div{
    justify-content:center !important;
    text-align:center !important;
    line-height:15px !important;
    height:21px !important;
    min-height:21px !important;
    max-height:21px !important;
    font-size:11px !important;
  }
  #panel-q .rank-q-block .qin-odds-table td>span,
  #panel-q .rank-q-block .qin-odds-table th>span,
  #panel-q .rank-q-block .qin-odds-table td>div,
  #panel-q .rank-q-block .qin-odds-table th>div,
  #panel-q .rank-q-inline-water .qin-odds-table td>span,
  #panel-q .rank-q-inline-water .qin-odds-table th>span,
  #panel-q .rank-q-inline-water .qin-odds-table td>div,
  #panel-q .rank-q-inline-water .qin-odds-table th>div{
    line-height:15px !important;
    font-size:inherit !important;
  }
}
