/* 手机适配层：桌面保持已验收尺寸；业务表格复用同一份DOM与操作。 */
.ui-mobile-heading,.ui-table-scroll::before,.mp-trend-hint {display:none;}
.ui-table-scroll {min-width:0;max-width:100%;overflow:auto;}
.mp-trend-scroll {min-width:0;}
.mp-trend-plot {position:relative;height:230px;}
@media (max-width:720px) {
  :root {--mobile-top:calc(54px + env(safe-area-inset-top,0px));}
  html {-webkit-text-size-adjust:100%;text-size-adjust:100%;}
  #app::before {height:var(--mobile-top);background:#faf7fd;border-bottom:1px solid var(--border);}
  #app .main {padding-top:var(--mobile-top);overflow-x:hidden;scroll-padding-top:12px;}
  #app .page {padding:12px max(12px,env(safe-area-inset-right,0px)) calc(30px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));}
  .ui-mobile-menu {top:calc(5px + env(safe-area-inset-top,0px));left:max(12px,env(safe-area-inset-left,0px));}
  .ui-mobile-heading {display:flex;position:fixed;top:env(safe-area-inset-top,0px);left:68px;right:12px;height:54px;align-items:center;z-index:71;pointer-events:none;gap:8px;}
  .ui-mobile-heading strong {font-size:16px;color:var(--text-primary);font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  .ui-mobile-heading span {margin-left:auto;color:var(--text-muted);font-size:11px;white-space:nowrap;}
  .sidebar {padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);}
  .sidebar-nav .nav-item {min-height:46px;}
  .sidebar-logo .ui-sidebar-close {width:36px;height:44px;}
  .ui-local-note {bottom:calc(5px + env(safe-area-inset-bottom,0px));}
  /* 页面跟随正常滚动，不让多行工具栏遮住半个屏幕。 */
  #app .sched-toolbar {position:relative;top:auto;flex-wrap:wrap;gap:8px;padding:0 0 12px;z-index:20;}
  #app .page-title-inline {font-size:18px!important;flex-basis:100%;margin:0!important;}
  #app .sched-page-heading strong {font-size:18px;}
  #app .sched-page-heading small {font-size:12px;}
  .btn,.btn-sm,.sched-month-btn,.sched-month-today,.time-btn,.view-btn {min-height:40px;font-size:13px;}
  .sched-month-btn {min-width:40px;flex:none;}
  .sched-month-current {min-width:0!important;padding:0 6px;font-size:15px;}
  .btn {padding:8px 11px;white-space:nowrap;}
  .ui-icon-button,.modal-close,.detail-close,.sched-drawer-close {min-width:40px;min-height:40px;}
  #app :is(input,select,textarea),body :is(.modal,.detail-modal,.sched-drawer,.sched-dict-panel,.sched-import-panel,.ui-dialog-panel) :is(input,select,textarea) {font-size:16px!important;}
  :is(input,select,textarea) {min-width:0;max-width:100%;}
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select {min-height:40px;}
  input[type=date] {min-width:0;width:100%;text-align:left;}
  input[type=date]::-webkit-date-and-time-value {text-align:left;}
  input[type=checkbox],input[type=radio] {width:20px!important;height:20px!important;flex:none;vertical-align:middle;}
  .form-label,.sched-form-label,.comm-pub-grid label {font-size:13px;}
  .filter-bar {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
  .filter-bar>.search-input:not([type=date]) {width:100%!important;flex:1 1 100%;}
  .filter-bar>select {flex:1 1 135px;width:auto!important;}
  .filter-bar>input[type=date] {flex:1 1 120px;width:120px!important;}
  .filter-bar>.btn {margin-left:0!important;}
  .filter-bar>span {max-width:100%;}
  .card {padding:12px;min-width:0;}
  .card-title {gap:8px;flex-wrap:wrap;}
  .empty-state {padding:32px 12px;}
  .stats-grid {gap:8px;}
  .stat-card {padding:12px;min-width:0;}
  /* 宽表保留完整信息，局部滚动，手机不再压缩成一列一个字。 */
  .ui-table-scroll {display:block;overflow:auto!important;width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-height:65dvh!important;border-radius:10px;}
  .ui-table-scroll.ui-table-overflow::before {content:'↔ 左右滑动查看完整数据';display:block;position:sticky;left:0;width:100%;box-sizing:border-box;padding:7px 10px;font-size:11px;line-height:18px;background:#f4eef9;color:#79558d;}
  .ui-table-scroll table {font-size:13px;min-width:100%;}
  .ui-table-scroll :is(td,th) {padding:10px 9px;line-height:1.5;}
  .ui-table-scroll th {font-size:12px;}
  .ui-table-scroll .btn {min-height:36px;padding:6px 10px;font-size:12px;}
  #app :is(#sample-list,#__kols-list-host__,#settlement-list) table {min-width:900px;}
  #app #page-materials table {min-width:850px;}
  #app #page-admin-panel table {min-width:540px;}
  #app #page-materials>div {padding-bottom:0!important;}
  #app #sample-list>.card {padding:0;}
  #app .comm-table :is(.comm-fz1,.comm-fz2) {position:static;box-shadow:none;}
  #app .comm-table thead :is(.comm-fz1,.comm-fz2) {position:sticky;left:auto!important;}
  /* ROI手机仅固定指标列；合计在表格最右侧，不遮住日期数据。 */
  #app .roi-topline {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;}
  .roi-topline>.roi-heading {grid-column:1/-1;font-size:18px!important;}
  #app .roi-kpi-chip {display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;min-width:0;font-size:12px;}
  #app .roi-kpi-chip>span:last-child {margin:0!important;font-size:20px!important;overflow-wrap:anywhere;}
  .roi-controls {grid-column:1/-1;width:100%;margin:4px 0 0!important;}
  .roi-controls>select {flex:1 1 140px;min-width:120px;}
  #app #roi-card {height:auto!important;min-height:0;padding:0;}
  #app #roi-scroll {flex:none;max-height:65dvh!important;}
  #app .roi-matrix .roi-platform-name {position:static;width:64px;min-width:64px;}
  #app .roi-matrix .roi-metric {left:0;width:84px;min-width:84px;box-shadow:2px 0 4px #392d4710;}
  #app .roi-matrix .roi-total {position:static;box-shadow:none;}
  #app .roi-matrix thead :is(.roi-platform-name,.roi-total) {position:sticky;top:0;right:auto;left:auto;}
  #app .roi-matrix .roi-day {min-width:72px;}
  #app .roi-matrix td {min-width:72px;}
  /* 发布：平台标签和各类筛选都能触达，公司账号采用同样布局。 */
  .sched-tab-bar,.sched-dict-tabs,.sched-form-tabs,.ui-tabs-scroll {overflow-x:auto!important;display:flex;flex-wrap:nowrap!important;max-width:100%;-webkit-overflow-scrolling:touch;}
  .sched-tab,.sched-dict-tab,.sched-form-tab,.ui-tabs-scroll>button {flex:none;min-height:44px;white-space:nowrap;padding:9px 12px!important;font-size:13px!important;}
  #app #page-contents .sched-toolbar>.search-input {width:100%!important;flex:1 1 100%;order:2;}
  #app #page-contents .sched-toolbar>.filter-select {flex:1 1 130px;width:auto!important;order:3;}
  #app #page-contents .sched-toolbar>.btn,#app #page-contents .sched-toolbar>div[style*="position:relative"] {order:4;}
  #app #page-contents .sched-toolbar>.btn-primary {order:4;}
  #__col-pop__ {position:fixed!important;left:12px!important;right:12px!important;top:calc(var(--mobile-top) + 12px)!important;width:auto!important;max-height:calc(100dvh - var(--mobile-top) - 36px)!important;z-index:9000;}
  /* 排期有正常触控尺寸，日历卡片保留原编辑能力。 */
  #app #page-schedule .sched-toolbar>.page-title-inline {flex:1;}
  #app #page-schedule .sched-month-switcher {gap:6px;}
  #app #page-schedule .sched-page-actions>.btn-secondary {font-size:12px;padding:7px 8px;}
  .sched-mobile-list .sched-card-title {font-size:14px;white-space:normal;}
  .sched-mobile-list .sched-card-amount {font-size:13px;}
  .sched-mobile-list .sched-card-link {padding:7px;margin:-7px;}
  .sched-mobile-list .sched-card {padding:12px;}
  /* 样品/结算的统计和日期筛选不再互相挤占。 */
  #sample-totals {display:block!important;}
  #sample-totals>div>button {min-height:40px;margin-left:0!important;font-size:13px!important;}
  #sample-totals>div>button:nth-child(-n+2) {flex:1 1 130px;}
  #settlement-totals {width:100%;min-width:0;}
  #settlement-totals>div {flex-wrap:wrap!important;gap:8px!important;}
  #settlement-totals>div>div {min-width:0!important;flex:1 1 130px!important;}
  #st-filter-pending>span,#st-filter-settled>span {font-size:12px!important;}
  /* 数据看板/复盘：两列数字卡片，图表/榜单上下排列。 */
  #app #page-monthly-plan :is(.mp-wrap,.mp-two,.mp-panel,.mp-rank,.mp-col) {min-width:0;max-width:100%;}
  #app #page-monthly-plan .mp-cards {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  #app #page-monthly-plan .mp-card {padding:12px;}
  #app #page-monthly-plan .mp-card .v {font-size:21px;line-height:1.2;overflow-wrap:anywhere;}
  #app #page-monthly-plan .mp-card :is(.k,.u) {font-size:12px;white-space:normal;}
  #app #page-monthly-plan .mp-head {gap:8px;}
  #app #page-monthly-plan .mp-mn {margin-left:auto;font-size:14px;}
  #app #page-monthly-plan .mp-tag {font-size:12px;}
  #app #page-monthly-plan .mp-filter {gap:6px;}
  #app #page-monthly-plan .mp-chip-btn {padding:8px 12px;min-height:40px;font-size:13px;}
  #app #page-monthly-plan .mp-custom {display:flex;width:100%;min-width:0;}
  #app #page-monthly-plan .mp-custom input {flex:1;min-width:0;width:0;height:42px;}
  #app #page-monthly-plan .mp-two {grid-template-columns:minmax(0,1fr);}
  #app #page-monthly-plan .mp-panel,#app #page-monthly-plan .mp-rank {padding:12px;}
  #app #page-monthly-plan .mp-split {padding:0;}
  #app #page-monthly-plan .mp-col {padding:12px;}
  #app #page-monthly-plan .mp-bartrack {width:32px;}
  #app #page-monthly-plan .mp-tbl :is(th,td) {padding:9px 5px;font-size:12px;}
  #app #page-monthly-plan .mp-hint {font-size:11px;}
  #app #page-monthly-plan .mp-review-box {min-height:150px;font-size:16px;line-height:1.7;}
  #app #page-monthly-plan .mp-trend-scroll {overflow-x:auto;max-width:100%;}
  #app #page-monthly-plan .mp-trend-plot {min-width:var(--trend-min-width,600px);}
  .mp-trend-hint {display:block;font-size:11px;color:var(--text-muted);margin:6px 0;}
  #app #page-review-log .rl-h {flex-wrap:wrap;gap:8px;}
  #app #page-review-log .rl-kpi {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin:0;}
  #app #page-review-log .rl-kpi :is(b,span) {white-space:normal;}
  #app #page-review-log .rl-text {font-size:14px;line-height:1.9;overflow-wrap:anywhere;}
  /* 编辑窗口：全宽、单列、可滚动，保存区贴底；兼容底部安全区。 */
  .modal-overlay,.sched-dict-overlay,.sched-import-overlay,.ui-dialog-overlay {padding:8px!important;align-items:center;}
  .modal,.detail-modal,.sched-dict-panel,.sched-import-panel,.ui-dialog-panel {width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;min-width:0;overflow:auto!important;border-radius:14px!important;}
  .modal {display:flex;flex-direction:column;}
  .modal-body {overflow-y:auto;min-height:0;flex:1;}
  .modal-header,.modal-footer,.detail-header,.detail-footer,.sched-drawer-header,.sched-drawer-footer {padding:12px;gap:8px;flex-wrap:wrap;}
  .modal-header,.detail-header,.sched-drawer-header {flex-wrap:nowrap;}
  .modal-footer,.detail-footer,.sched-drawer-footer {padding-bottom:max(12px,env(safe-area-inset-bottom,0px));}
  .modal-footer .btn,.detail-footer .btn,.sched-drawer-footer .btn {flex:1;}
  .sched-drawer {width:100%!important;height:100dvh;max-height:100dvh;}
  .sched-drawer-header {padding-top:max(12px,env(safe-area-inset-top,0px));}
  .sched-drawer-body,.sched-dict-body,.sched-import-body {padding:14px;min-width:0;}
  .sched-dict-body,.sched-import-body {min-height:0;}
  :is(.modal-body,.detail-body,.sched-drawer-body) :is(.form-row,.sched-form-row,.three-col,div[style*="grid-template-columns"]) {grid-template-columns:minmax(0,1fr)!important;}
  :is(.modal-body,.detail-body,.sched-drawer-body) :is(.form-group,.sched-form-group) {min-width:0;}
  .comm-pub-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;}
  .comm-pub-head {flex-wrap:wrap;gap:8px;align-items:flex-start;}
  .comm-pub-head>div {min-width:0;flex-wrap:wrap;}
  .comm-pub-block {padding:10px;}
  #co-drawer .co-form-row {display:flex;flex-direction:column;align-items:stretch;gap:6px;}
  #co-drawer .co-form-label {width:auto;}
  #co-drawer .co-acc-list {flex:none;max-height:none;}
  #co-drawer .co-acc-list label {min-height:40px;white-space:normal;}
  .sched-dict-create-row {flex-wrap:wrap;padding:10px;}
  .sched-dict-create-row input {min-width:0;flex:1 1 150px;}
  .sched-dict-table {min-width:560px!important;}
  .sched-import-panel table {min-width:620px;}
  .ui-dialog-panel>div {min-width:0;}
  .ui-dialog-panel input {min-width:0;}
  #op-log-body>div:first-child {position:static!important;}
  #op-log-body>div:first-child :is(input,select) {flex:1 1 130px;max-width:100%;}
  #op-log-body table {min-width:800px;}
  #__keeping-ledger__ table {min-width:850px;}
  #__keeping-ledger__>div>div {flex-wrap:wrap;gap:8px;}
  .toast-container {right:12px;left:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 24px);}
  .toast {overflow-wrap:anywhere;}
  #reminder-dropdown {right:12px!important;max-width:calc(100vw - 24px);}
  #sync-stale-banner {flex-wrap:wrap;font-size:12px!important;}
  #login-screen {padding:16px;min-height:100dvh;align-items:center;}
  .login-box {padding:26px 22px;}
  .login-box :is(input,select) {font-size:16px!important;min-height:44px;}
  .btn-login {min-height:44px;}
}
@media (max-width:360px) {
  #app .page {padding-inline:8px;}
  #app #page-monthly-plan .mp-mn {width:100%;margin:0;justify-content:space-between;}
  #app #page-monthly-plan .mp-exp {gap:4px;}
  #app #page-monthly-plan .mp-bartrack {display:none;}
  #app #page-schedule .sched-page-actions>.btn-secondary {font-size:11px;padding-inline:6px;}
}

/* 动态编辑器的内联flex布局也须收拢，不能只处理grid表单。 */
@media(max-width:720px) {
  #page-contents .sched-toolbar>div[style*="margin-left:auto"] {width:100%;margin-left:0!important;flex-wrap:wrap;}
  #comm-drawer-body>.sched-form-group>div[style*="display:flex"] {flex-direction:column;align-items:stretch!important;}
  #comm-drawer-body>.sched-form-group>div[style*="display:flex"]>div {width:100%;}
  #co-drawer .co-account-picker {flex-direction:column;align-items:stretch!important;}
  #co-drawer .co-acc-list {width:100%;max-height:none!important;flex:none!important;}
  #co-drawer .co-acc-check {min-height:42px;}
  #st-total-bar {flex-wrap:wrap;}
  .sched-drawer:not(.open) {visibility:hidden;}
  .sched-drawer.open {visibility:visible;}
  .sched-drawer {top:var(--ui-viewport-top,0px);bottom:auto;height:var(--ui-viewport-height,100dvh);max-height:var(--ui-viewport-height,100dvh);}
  .modal-overlay,.sched-dict-overlay,.sched-import-overlay,.ui-dialog-overlay {top:var(--ui-viewport-top,0px)!important;bottom:auto!important;height:var(--ui-viewport-height,100dvh);}
  .modal,.detail-modal,.sched-dict-panel,.sched-import-panel,.ui-dialog-panel {max-height:calc(var(--ui-viewport-height,100dvh) - 16px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;}
  #app #page-review-log .rl-kpi-item {padding:8px;background:#f6f1fa;border-radius:8px;font-size:12px;}
  #app #page-review-log .rl-kpi-item::before {display:none;}
  .sched-import-header,.sched-import-footer {padding:12px;gap:8px;flex-wrap:wrap;}
  .sched-import-steps {overflow:auto;white-space:nowrap;flex:none;}
}
.rl-kpi-item+.rl-kpi-item::before {content:'　·　';}

@media(max-width:720px) {
  :is(.modal-body,.detail-body,.sched-drawer-body,.ui-dialog-panel) .form-group>.form-control {width:100%!important;}
  .modal-body label:has(>input[type=checkbox]),.modal-body label:has(>input[type=radio]) {min-height:40px;font-size:13px!important;}
  #settlement-form-container>div[style*="align-items:flex-start"] {flex-direction:column;align-items:stretch!important;}
  #settlement-form-container .form-group>div:has(>label[style*="min-width"]) {flex-wrap:wrap;}
  .ui-dialog-panel button:not(.btn) {min-height:40px;}
}
@media(max-width:720px) {
  #page-kols .filter-bar>div[style*="flex-wrap:nowrap"] {max-width:100%;width:100%;margin-left:0!important;flex-wrap:wrap!important;}
}
@media(max-width:720px) {
  .sched-dict-overlay:not(.open),.sched-import-overlay:not(.open) {visibility:hidden;}
  .sched-dict-overlay.open,.sched-import-overlay.open {visibility:visible;}
}
