/* ============================================================
   来财 iOS · 控制台 UI v4 —— 统一布局层
   目标：单列 / 全部左对齐 / 无截断 / 无溢出 / 视觉统一
   只做布局与观感，不动功能。
   ============================================================ */

:root{
  /* 侧栏宽度用独立变量：v3 里 --lc-sider 被浅色主题当成了背景色，
     两者撞名导致 width:var(--lc-sider) 解析成 #FFFFFF → 侧栏塌成 120px。 */
  --lc-sidebar-w: 224px;
  --lc-gap: 14px;
  --lc-content-x: 18px;
}

/* ---------- 0. 骨架：侧栏定宽，内容区不留怪异留白 ---------- */
.ant-pro-layout .ant-layout-sider,
.ant-layout-sider.ant-pro-sider{
  width: var(--lc-sidebar-w) !important;
  min-width: var(--lc-sidebar-w) !important;
  max-width: var(--lc-sidebar-w) !important;
  flex: 0 0 var(--lc-sidebar-w) !important;
  overflow: hidden !important;
}
.ant-pro-layout .ant-layout-sider .ant-layout-sider-children{
  padding: 8px 8px 14px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
/* 品牌区与菜单左缘对齐 */
.ant-pro-layout .ant-pro-sider-logo,
.ant-pro-layout .ant-pro-sider-logo > a{
  padding-left: 10px !important;
  padding-right: 8px !important;
}

/* ---------- 1. 侧栏菜单：文字绝不截断 ---------- */
.ant-pro-sider-menu.ant-menu{
  width: 100% !important;
  font-size: 13.5px !important;
}
.ant-pro-sider-menu .ant-menu-item,
.ant-pro-sider-menu .ant-menu-submenu-title{
  height: 38px !important;
  line-height: 38px !important;
  margin: 2px 0 !important;
  padding-left: 12px !important;
  padding-right: 8px !important;
  border-radius: 9px !important;
}
.ant-pro-sider-menu .ant-menu-title-content,
.ant-pro-sider-menu .ant-menu-title-content > a,
.ant-pro-sider-menu .ant-menu-item > a{
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  letter-spacing: .2px;
}
.ant-pro-sider-menu .ant-menu-item .anticon,
.ant-pro-sider-menu .ant-menu-submenu-title .anticon,
.ant-pro-sider-menu .ant-menu-submenu-arrow{
  flex: 0 0 auto !important;
  margin-right: 9px !important;
  font-size: 15px !important;
}
.ant-pro-sider-menu .ant-menu-submenu-arrow{
  margin-right: 0 !important;
  margin-left: auto !important;
}
/* 子菜单层级缩进统一 */
.ant-pro-sider-menu .ant-menu-sub.ant-menu-inline{
  padding-left: 0 !important;
}
.ant-pro-sider-menu .ant-menu-sub .ant-menu-item{
  padding-left: 36px !important;
  height: 34px !important;
  line-height: 34px !important;
  font-size: 13px !important;
}
/* 折叠按钮不与菜单打架 */
.ant-pro-sider .ant-pro-sider-collapsed-button{
  right: 6px !important;
}

/* ---------- 2. 内容区：统一内边距，单列，左对齐 ---------- */
.ant-pro-layout .ant-pro-layout-content,
.ant-layout-content.ant-pro-layout-content{
  padding: var(--lc-content-x) !important;
  margin: 0 !important;
}
.ant-pro-layout .ant-pro-page-container,
.ant-pro-page-container{
  padding: 0 !important;
}
.ant-pro-page-container .ant-pro-page-container-children-container,
.ant-pro-page-container-children-container{
  padding: 0 !important;
  max-width: none !important;
}
.ant-pro-page-container .ant-page-header{
  padding: 0 0 10px 0 !important;
}
.ant-pro-page-container .ant-page-header-heading-title{
  font-size: 17px !important;
  letter-spacing: .3px;
}

/* ---------- 3. 工具栏：一律左排（标题 → 搜索 → 按钮） ---------- */
.ant-pro-table-list-toolbar-container{
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  padding: 0 0 10px 0 !important;
  margin: 0 !important;
}
.ant-pro-table-list-toolbar-left{
  flex: 0 0 auto !important;
  justify-content: flex-start !important;
}
.ant-pro-table-list-toolbar-right{
  margin-left: 0 !important;
  flex: 1 1 auto !important;
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
.ant-pro-table-list-toolbar-title{
  font-size: 14.5px !important;
  font-weight: 600 !important;
}

/* ---------- 4. 查询区：左对齐，控件定宽，按钮紧随其后 ---------- */
.ant-pro-table-search,
.ant-pro-card.ant-pro-table-search{
  margin-bottom: 12px !important;
  border-radius: 12px !important;
}
.ant-pro-query-filter,
.ant-pro-table-search .ant-form{
  padding: 12px 14px 4px 14px !important;
}
.ant-pro-query-filter-row{
  justify-content: flex-start !important;
  gap: 0 10px !important;
}
.ant-pro-query-filter-row > .ant-col{
  flex: 0 0 auto !important;
  max-width: 300px !important;
  min-width: 208px !important;
  width: auto !important;
}
.ant-pro-query-filter-row .ant-form-item{
  margin-bottom: 10px !important;
}
.ant-pro-query-filter-row .ant-form-item-row{
  flex-wrap: nowrap !important;
}
.ant-pro-query-filter-row .ant-form-item-label{
  flex: 0 0 auto !important;
  max-width: 84px !important;
}
.ant-pro-query-filter-row .ant-form-item-label > label{
  font-size: 13px !important;
  white-space: nowrap !important;
}
.ant-pro-query-filter-row .ant-form-item-control{
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.ant-pro-query-filter-row .ant-input,
.ant-pro-query-filter-row .ant-select,
.ant-pro-query-filter-row .ant-picker{
  width: 100% !important;
  min-width: 0 !important;
}
/* 查询/重置按钮组：贴在查询控件左边，不甩到右边 */
.ant-pro-query-filter .ant-form-item:last-child,
.ant-pro-query-filter-row > .ant-col:last-child{
  margin-left: 0 !important;
}

/* ---------- 5. 表格：操作列不在右侧吸附，随内容左排 ---------- */
.ant-table-thead > tr > th:last-child,
.ant-table-tbody > tr > td:last-child{
  position: static !important;
  right: auto !important;
  z-index: auto !important;
  box-shadow: none !important;
  background: inherit !important;
  text-align: left !important;
}
.ant-table-thead > tr > th,
.ant-table-tbody > tr > td{
  padding: 11px 14px !important;
  vertical-align: middle !important;
}
.ant-table-tbody > tr > td{
  font-size: 13px !important;
  line-height: 1.55 !important;
}
/* 操作列里的按钮：左排、间距统一、不换行叠字 */
.ant-table-tbody > tr > td:last-child .ant-btn,
.ant-table-tbody > tr > td:last-child .ant-space{
  margin: 0 6px 0 0 !important;
}
.ant-table-tbody > tr > td:last-child{
  white-space: nowrap !important;
}
/* 表格容器：留出滚动，不撑破页面 */
.ant-table-wrapper{
  overflow-x: auto !important;
  border-radius: 12px;
}
.ant-table{
  min-width: 0 !important;
}
/* 长文本列不把表格撑宽 */
.ant-table-cell{
  word-break: break-word !important;
}

/* ---------- 6. 栅格：卡片铺满整行，不留半排空白 ---------- */
/* JS 会给「一排多列」的行加 .lc-grid-row */
.lc-grid-row{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(146px, 1fr)) !important;
  gap: var(--lc-gap) !important;
  row-gap: var(--lc-gap) !important;
  margin: 0 0 var(--lc-gap) 0 !important;
  width: 100% !important;
}
.lc-grid-row > .ant-col{
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: none !important;
  padding: 0 !important;
}
/* 纵向堆叠：左右并排的区块改成上下排列 */
.lc-stack{
  display: block !important;
  width: 100% !important;
}
.lc-stack > .ant-col,
.lc-stack > .ant-card,
.lc-stack > div{
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  margin-bottom: var(--lc-gap) !important;
}
.lc-stack > *:last-child{
  margin-bottom: 0 !important;
}

/* ---------- 7. 卡片观感统一 ---------- */
.ant-card{
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(23,43,64,.05) !important;
}
.ant-card .ant-card-head{
  min-height: 44px !important;
  padding: 0 16px !important;
  border-bottom: 1px solid var(--lc-line) !important;
}
.ant-card .ant-card-head-title{
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 11px 0 !important;
}
.ant-card .ant-card-body{
  padding: 14px 16px !important;
}
.ant-statistic-title{
  font-size: 12.5px !important;
  margin-bottom: 4px !important;
}
.ant-statistic-content{
  font-size: 24px !important;
  line-height: 1.2 !important;
}

/* ---------- 8. 表单/弹层：左对齐、控件高度统一 ---------- */
.ant-form-item-label > label{
  font-size: 13px !important;
}
.ant-input,
.ant-input-affix-wrapper,
.ant-select-selector,
.ant-picker,
.ant-input-number{
  min-height: 34px !important;
  font-size: 13px !important;
}
.ant-select-single .ant-select-selector{
  height: 34px !important;
  align-items: center !important;
  display: flex !important;
}
.ant-btn{
  font-size: 13px !important;
  box-shadow: none !important;
}
.ant-btn-sm{
  font-size: 12.5px !important;
}
.ant-form-item{
  margin-bottom: 14px !important;
}
.ant-modal .ant-modal-body{
  padding: 18px 20px 4px 20px !important;
}
.ant-modal .ant-modal-header{
  padding: 14px 20px !important;
}
.ant-drawer .ant-drawer-body{
  padding: 16px 18px !important;
}

/* ---------- 9. 描述列表/详情：标签定宽、内容左对齐不挤 ---------- */
.ant-descriptions-item-label{
  width: 108px !important;
  white-space: nowrap !important;
}
.ant-descriptions-item-content{
  word-break: break-word !important;
}

/* ---------- 10. 顶栏 ---------- */
.ant-layout-header{
  padding: 0 16px !important;
}
.ant-pro-global-header{
  padding: 0 !important;
}

/* ---------- 11. 移动端 ---------- */
@media (max-width: 992px){
  :root{ --lc-content-x: 10px; }
  .lc-grid-row{
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)) !important;
    gap: 10px !important;
  }
}
@media (max-width: 768px){
  .ant-pro-layout .ant-pro-layout-content,
  .ant-layout-content.ant-pro-layout-content{
    padding: 10px !important;
  }
  .ant-pro-table-list-toolbar-container{
    gap: 8px !important;
  }
  .ant-pro-table-list-toolbar-right{
    width: 100% !important;
  }
  .ant-pro-query-filter-row > .ant-col{
    min-width: 100% !important;
    max-width: 100% !important;
  }
  .lc-grid-row{
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .ant-table-thead > tr > th,
  .ant-table-tbody > tr > td{
    padding: 9px 10px !important;
  }
}

/* ---------- 12. 兜底：任何横向溢出都不要 ---------- */
.ant-pro-layout-content{
  overflow-x: hidden !important;
}

/* ============ 13. 仪表盘扩展区块：单列堆叠 + 全左对齐 ============ */
#lc-dash-extra .lc-dash-grid{
  grid-template-columns: 1fr !important;
  gap: var(--lc-gap) !important;
  margin-top: var(--lc-gap) !important;
}
#lc-dash-extra .lc-pane{
  padding: 14px 16px !important;
  border-radius: 12px !important;
}
#lc-dash-extra .lc-pane-head{
  margin-bottom: 12px !important;
  font-size: 14px !important;
}
/* 快捷操作：一行铺开，按钮左对齐 */
#lc-dash-extra .lc-quick{
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  gap: 10px !important;
}
#lc-dash-extra .lc-q{
  justify-content: flex-start !important;
  gap: 8px !important;
  padding: 10px 12px !important;
}
#lc-dash-extra .lc-q i{
  margin-left: auto !important;
}
/* 链路状态：标签定宽 + 数值紧随其后，左对齐 */
#lc-dash-extra .lc-srow{
  justify-content: flex-start !important;
  align-items: baseline !important;
  gap: 10px !important;
  padding: 8px 0 !important;
}
#lc-dash-extra .lc-srow > span{
  flex: 0 0 108px !important;
  color: var(--lc-text-2) !important;
}
#lc-dash-extra .lc-srow > b{
  max-width: none !important;
  text-align: left !important;
  flex: 1 1 auto !important;
}

/* ============ 14. 查询区：控件定宽 + 按钮紧跟其后，全部左排 ============ */
.ant-pro-query-filter-row{
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}
.ant-pro-query-filter-row > .ant-col{
  flex: 0 0 238px !important;
  width: 238px !important;
  min-width: 0 !important;
  max-width: 238px !important;
  padding: 0 !important;
}
/* 按钮列：跟着输入框走，不甩到最右 */
.ant-pro-query-filter-row > .ant-col:last-child{
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
}
.ant-pro-query-filter-row > .ant-col:last-child .ant-form-item,
.ant-pro-query-filter-row > .ant-col:last-child .ant-space{
  margin-bottom: 0 !important;
}
.ant-pro-query-filter-row > .ant-col:last-child .ant-form-item-control-input-content{
  display: flex !important;
  justify-content: flex-start !important;
  gap: 8px !important;
}
.ant-pro-query-filter-row > .ant-col:last-child .ant-space-item{
  margin: 0 !important;
}

/* ============ 15. 表格：右侧列不再贴边被切 ============ */
.ant-table-wrapper{
  padding-bottom: 2px !important;
}
.ant-table-container{
  border-radius: 10px !important;
}
.ant-table-thead > tr > th:last-child,
.ant-table-tbody > tr > td:last-child{
  padding-right: 18px !important;
}
/* 数值列右不贴边 */
.ant-table-cell{
  overflow: hidden !important;
}

@media (max-width: 992px){
  .ant-pro-query-filter-row > .ant-col{
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ============ 16. 弹层/下拉/分页：全部白底，杜绝黑白混搭 ============ */
.ant-select-dropdown,
.ant-dropdown-menu,
.ant-dropdown .ant-dropdown-menu,
.ant-picker-panel-container,
.ant-picker-dropdown .ant-picker-panel-container,
.ant-modal .ant-modal-content,
.ant-drawer .ant-drawer-content,
.ant-popover .ant-popover-inner,
.ant-popconfirm .ant-popover-inner,
.ant-table-filter-dropdown,
.ant-notification-notice,
.ant-message-notice-content,
.ant-tooltip-inner,
.ant-menu-submenu-popup .ant-menu,
.ant-cascader-menus,
.ant-select-tree,
.ant-tree{
  background:#FFFFFF !important;
  color:var(--lc-text) !important;
  border-color:var(--lc-line) !important;
  box-shadow:0 8px 24px rgba(23,43,64,.12) !important;
}
.ant-tooltip-inner{ background:#1B2A38 !important; color:#FFF !important; }
.ant-select-dropdown .ant-select-item,
.ant-dropdown-menu .ant-dropdown-menu-item,
.ant-menu-submenu-popup .ant-menu-item,
.ant-picker-panel .ant-picker-cell,
.ant-table-filter-dropdown .ant-dropdown-menu-item{
  color:var(--lc-text) !important;
}
.ant-select-dropdown .ant-select-item-option-selected{
  background:#E9F8F2 !important;
  color:var(--lc-accent) !important;
}
.ant-dropdown-menu .ant-dropdown-menu-item:hover,
.ant-select-dropdown .ant-select-item-option-active{
  background:#F2F7FB !important;
}
.ant-picker-panel,
.ant-picker-header,
.ant-picker-body,
.ant-picker-footer,
.ant-picker-time-panel-column{
  background:#FFFFFF !important;
  border-color:var(--lc-line) !important;
}
.ant-picker-cell-inner{ color:var(--lc-text) !important; }
.ant-picker-cell-disabled .ant-picker-cell-inner{ color:#B7C6D2 !important; }
.ant-modal .ant-modal-header,
.ant-drawer .ant-drawer-header{
  background:#FFFFFF !important;
  border-bottom:1px solid var(--lc-line) !important;
}
.ant-modal .ant-modal-title,
.ant-drawer .ant-drawer-title{ color:var(--lc-text) !important; font-weight:600 !important; }
.ant-modal .ant-modal-close,
.ant-drawer .ant-drawer-close{ color:#7A8FA0 !important; }

/* 分页：白底深字、整体靠左 */
.ant-pagination{
  justify-content: flex-start !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.ant-pagination input,
input[aria-label="Page"]{
  background:#FFFFFF !important;
  color:var(--lc-text) !important;
  border:1px solid var(--lc-line-strong) !important;
  min-height:30px !important;
  height:30px !important;
}
.ant-pagination .ant-pagination-item,
.ant-pagination .ant-pagination-prev,
.ant-pagination .ant-pagination-next,
.ant-pagination .ant-pagination-options .ant-select-selector{
  background:#FFFFFF !important;
  border-color:var(--lc-line-strong) !important;
}
.ant-pagination .ant-pagination-item a,
.ant-pagination .ant-pagination-prev button,
.ant-pagination .ant-pagination-next button{ color:var(--lc-text) !important; }
.ant-pagination .ant-pagination-item-active{
  border-color:var(--lc-accent) !important;
  background:#E9F8F2 !important;
}
.ant-pagination .ant-pagination-item-active a{ color:var(--lc-accent) !important; }
/* 分页容器整体左对齐（原来靠右） */
.ant-table-pagination.ant-pagination,
.ant-table-wrapper .ant-table-pagination{
  justify-content: flex-start !important;
  margin: 14px 0 0 0 !important;
}

/* ============ 17. 操作按钮统一靠左（含弹窗底部） ============ */
.ant-modal .ant-modal-footer{
  display:flex !important;
  justify-content:flex-start !important;
  gap:8px !important;
  padding:12px 20px 16px !important;
}
.ant-modal .ant-modal-footer .ant-btn+.ant-btn{ margin-left:0 !important; }
.ant-drawer .ant-drawer-footer{
  display:flex !important;
  justify-content:flex-start !important;
  gap:8px !important;
}
.ant-drawer .ant-drawer-footer .ant-btn+.ant-btn{ margin-left:0 !important; }
.ant-form .ant-form-item-control-input-content > .ant-space,
.ant-form-item-control-input-content{
  justify-content: flex-start !important;
}
/* 卡片右上角的额外操作：不再甩到最右，跟标题排在一起 */
.ant-card-head-wrapper{
  justify-content: flex-start !important;
  gap: 12px !important;
}
.ant-card-extra{ margin-left: 8px !important; }
.ant-pro-card-head-wrapper{ justify-content: flex-start !important; gap:12px !important; }
.ant-pro-card-extra{ margin-left: 0 !important; }

/* ============ 18. 工具栏「更多」折叠菜单 ============ */
.lc-more-btn{
  display:inline-flex !important; align-items:center !important; gap:4px !important;
}
.lc-more-wrap{ position:relative !important; display:inline-block !important; }
.lc-more-menu{
  position:absolute !important; top:calc(100% + 6px) !important; left:0 !important;
  min-width:150px !important; background:#FFF !important;
  border:1px solid var(--lc-line) !important; border-radius:10px !important;
  box-shadow:0 10px 26px rgba(23,43,64,.14) !important;
  padding:6px !important; z-index:1050 !important; display:none;
}
.lc-more-menu.lc-open{ display:block !important; }
.lc-more-menu > button{
  display:flex !important; align-items:center !important; gap:8px !important;
  width:100% !important; text-align:left !important;
  background:transparent !important; border:0 !important;
  padding:8px 10px !important; border-radius:7px !important;
  color:var(--lc-text) !important; font-size:13px !important; cursor:pointer !important;
  min-height:32px !important; box-shadow:none !important;
}
.lc-more-menu > button:hover{ background:#F2F7FB !important; color:var(--lc-accent) !important; }

/* ============ 19. 弹窗/抽屉内部（antd v6 新结构 .ant-modal-container）============ */
.ant-modal-container,
.ant-modal-content,
.ant-modal-body,
.ant-modal-header,
.ant-modal-footer,
.ant-modal-title,
.ant-drawer-container,
.ant-drawer-content,
.ant-drawer-body,
.ant-drawer-header,
.ant-drawer-footer,
.ant-modal-confirm-content,
.ant-modal-confirm-title{
  background:#FFFFFF !important;
  color:var(--lc-text) !important;
}
/* 弹层里的输入类控件一律白底深字 */
.ant-modal input,
.ant-modal textarea,
.ant-modal .ant-select-selector,
.ant-modal .ant-input,
.ant-modal .ant-input-number,
.ant-modal .ant-picker,
.ant-drawer input,
.ant-drawer textarea,
.ant-drawer .ant-select-selector,
.ant-drawer .ant-input,
.ant-drawer .ant-picker,
.ant-dropdown input,
.ant-select-dropdown input,
.ant-picker-dropdown input{
  background:#FFFFFF !important;
  color:var(--lc-text) !important;
  border-color:var(--lc-line-strong) !important;
}
.ant-modal input::placeholder,
.ant-modal textarea::placeholder,
.ant-drawer input::placeholder{ color:#9AAEBD !important; }
/* 表单标签/说明文字在弹层里也要深色可读 */
.ant-modal .ant-form-item-label > label,
.ant-drawer .ant-form-item-label > label{ color:var(--lc-text-2) !important; }
.ant-modal .ant-form-item,
.ant-drawer .ant-form-item{ color:var(--lc-text) !important; }
/* 弹窗分割线 */
.ant-modal-header{ border-bottom:1px solid var(--lc-line) !important; }
.ant-modal-footer{ border-top:1px solid var(--lc-line) !important; }
/* 底部按钮左对齐 + 间距 */
.ant-modal-footer{ display:flex !important; justify-content:flex-start !important; gap:8px !important; }
.ant-modal-footer .ant-btn{ margin:0 !important; }

/* ============ 20. 全局输入控件兜底：白底深字 ============ */
.ant-input,
.ant-input-affix-wrapper,
.ant-input-number,
.ant-picker,
.ant-select:not(.ant-select-customize-input) .ant-select-selector,
.ant-input-outlined,
textarea.ant-input{
  background:#FFFFFF !important;
  color:var(--lc-text) !important;
  border-color:var(--lc-line-strong) !important;
}
.ant-input::placeholder,
textarea.ant-input::placeholder,
.ant-select .ant-select-selection-placeholder,
.ant-picker input::placeholder{ color:#9AAEBD !important; }
.ant-input-affix-wrapper input{ background:transparent !important; }
.ant-select-arrow, .ant-picker-suffix, .ant-input-suffix{ color:#8AA0B2 !important; }
