/* 高度 / 宽度填充补丁：仅公共滚动边界、成员线索与客服工单。 */
:root{--shell-banner-height:30px;--shell-topbar-height:72px;--table-row-height:44px}

/* 公共布局：顶栏固定，内容区承接剩余高度；默认页面仍可在内容区自身滚动。 */
.main-wrap{display:flex;flex-direction:column;height:100vh;min-height:0;overflow:hidden}
.offline-banner,.topbar{flex:0 0 auto}
#pageContent{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  height:calc(100vh - var(--shell-banner-height) - var(--shell-topbar-height));
  overflow-y:auto;
  overflow-x:hidden;
}
#pageContent>.large-list-root{flex:1 1 auto;min-height:0}
.table-card{min-height:0}
.table-card>.card-head,.table-card>.query-selection,.table-card>.batch-bar,.table-card>.smart-pagination,.table-card>[id$="Pager"]{flex:0 0 auto}
.table-card>.table-scroll{min-height:0}
.data-table{width:100%;table-layout:fixed}
.data-table thead th{position:sticky;top:0;z-index:3;background:var(--card)}

/* 成员线索：工具条以下整卡撑到视口底，只有表格中段滚动。 */
#pageContent.page-stretch-members{overflow:hidden;padding-bottom:18px}
.page-stretch-members #memberListRoot{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.page-stretch-members .member-list-tools{flex:0 0 auto}
.page-stretch-members .member-table-card{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
.page-stretch-members .virtual-member-scroll{position:relative;flex:1 1 auto;height:auto!important;min-height:132px;overflow:auto}
.page-stretch-members #memberPager{flex:0 0 auto;background:var(--card)}
.page-stretch-members .member-data-table{width:100%;min-width:0;table-layout:fixed}
.page-stretch-members .member-data-table th,
.page-stretch-members .member-data-table td{height:var(--member-row-height,44px);min-height:44px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-stretch-members .member-data-table thead th{height:44px}
.page-stretch-members .member-data-table th:nth-child(1),.page-stretch-members .member-data-table td:nth-child(1){width:4%}
.page-stretch-members .member-data-table th:nth-child(2),.page-stretch-members .member-data-table td:nth-child(2){width:9%}
.page-stretch-members .member-data-table th:nth-child(3),.page-stretch-members .member-data-table td:nth-child(3){width:11%}
.page-stretch-members .member-data-table th:nth-child(4),.page-stretch-members .member-data-table td:nth-child(4){width:14%}
.page-stretch-members .member-data-table th:nth-child(5),.page-stretch-members .member-data-table td:nth-child(5){width:11%}
.page-stretch-members .member-data-table th:nth-child(6),.page-stretch-members .member-data-table td:nth-child(6){width:8%}
.page-stretch-members .member-data-table th:nth-child(7),.page-stretch-members .member-data-table td:nth-child(7){width:9%}
.page-stretch-members .member-data-table th:nth-child(8),.page-stretch-members .member-data-table td:nth-child(8){width:16%}
.page-stretch-members .member-data-table th:nth-child(9),.page-stretch-members .member-data-table td:nth-child(9){width:10%}
.page-stretch-members .member-data-table th:nth-child(10),.page-stretch-members .member-data-table td:nth-child(10){width:8%}
.page-stretch-members .member-data-table .col-opt{display:table-cell!important}
.page-stretch-members .member-data-table .row-title{min-width:0}.page-stretch-members .member-data-table .row-title b{overflow:hidden;text-overflow:ellipsis}
.page-stretch-members .member-data-table .row-action{max-width:100%;padding-left:5px;padding-right:5px;white-space:nowrap}

/* 客服工单：上下文控件固定，左右卡等高，滚动分别发生在列表和会话中段。 */
#pageContent.page-stretch-tickets{overflow:hidden;padding-bottom:18px}
.page-stretch-tickets>.help-strip,
.page-stretch-tickets>.grid,
.page-stretch-tickets>.page-tools,
.page-stretch-tickets>.ticket-batch{flex:0 0 auto}
.page-stretch-tickets>.split-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);flex:1 1 auto;min-height:0}
.page-stretch-tickets .ticket-list,
.page-stretch-tickets .conversation{display:flex;flex-direction:column;height:100%;min-height:0;max-height:none;overflow:hidden}
.page-stretch-tickets .ticket-list-head,.page-stretch-tickets .ticket-conversation-head{position:relative;top:auto;flex:0 0 auto}
.page-stretch-tickets .ticket-virtual-scroll{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}
.page-stretch-tickets .ticket-virtual-scroll>.ticket-row{flex:0 0 auto;min-height:44px}
.page-stretch-tickets .ticket-virtual-scroll>.empty-state{flex:1 1 auto;min-height:44px}
.page-stretch-tickets .ticket-list>.smart-pagination{flex:0 0 auto;background:var(--card)}
.page-stretch-tickets .conversation-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}
.page-stretch-tickets .reply-box{flex:0 0 auto;background:var(--card)}
.page-stretch-tickets .reply-box textarea{display:block}

@media(max-width:1199px){
  .page-stretch-members .member-data-table{min-width:900px}
}

@media(max-width:899px){
  :root{--shell-topbar-height:70px}
  #pageContent.page-stretch-members{overflow:hidden;padding-bottom:14px}
  .page-stretch-members .member-table-card{min-height:0}
  .page-stretch-members .virtual-member-scroll{overflow:auto}
  .page-stretch-members .member-data-table{min-width:980px}
  .page-stretch-members .member-data-table th:first-child,.page-stretch-members .member-data-table td:first-child{position:sticky;left:0;z-index:5;background:var(--card)}

  #pageContent.page-stretch-tickets{overflow-y:auto;overflow-x:hidden;padding-bottom:52px}
  .page-stretch-tickets>.split-workspace{display:grid;grid-template-columns:1fr!important;flex:0 0 auto;min-height:0}
  .page-stretch-tickets .ticket-list{height:min(620px,72vh);min-height:500px;max-height:none}
  .page-stretch-tickets .conversation{height:min(660px,76vh);min-height:540px}
}

@media(max-width:520px){
  #pageContent.page-stretch-members{padding-bottom:10px}
  .page-stretch-members .virtual-member-scroll{height:auto!important;min-height:120px}
}
