/* djdata 手机端布局层：只负责 ≤768px，不改变桌面和平板布局。 */
.mobile-app-bar,
.mobile-bottom-nav,
.mobile-flow-tabs,
.mobile-lof-sort,
.mobile-card-list,
.mobile-settings-btn,
.mobile-settings-layer{display:none;}

@media(max-width:768px){
  :root{--mobile-top:52px;--mobile-bottom:62px;}
  html,body{width:100%;height:100dvh;min-height:100dvh;overflow:hidden;}
  body{display:block;padding:0;background:var(--bg);}
  html.mobile-modal-open{overflow:hidden;}
  html.mobile-modal-open .main{overflow:hidden;}
  html.mobile-modal-open .panel.active{overflow:hidden!important;}
  html.mobile-settings-open{overflow:hidden;}
  html.mobile-settings-open .main{overflow:hidden!important;}
  html.mobile-settings-open .panel.active{overflow:hidden!important;}

  .sidebar,
  .mobile-menu-btn,
  .sidebar-overlay{display:none!important;}

  .mobile-app-bar{
    position:fixed;z-index:80;left:0;right:0;top:0;height:var(--mobile-top);
    display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;
    padding:6px 12px;border-bottom:1px solid var(--border);
    background:var(--material-bg);backdrop-filter:var(--material-filter);-webkit-backdrop-filter:var(--material-filter);
  }
  .mobile-app-brand{display:grid;place-items:center;}
  .mobile-app-brand .brand-mark{width:28px;height:28px;}
  .mobile-settings-btn{
    grid-column:2;width:36px;height:36px;display:grid;place-items:center;padding:0;
    border:1px solid var(--btn-border);border-radius:11px;background:var(--btn-bg);
    color:var(--btn-text);box-shadow:var(--shadow-control);font-size:17px;line-height:1;
  }
  .mobile-settings-btn:active{transform:scale(.96);}
  .mobile-app-bar>strong{
    position:absolute;left:50%;max-width:calc(100% - 184px);transform:translateX(-50%);
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:17px;letter-spacing:-.025em;
  }
  .mobile-app-actions{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:6px;}
  .mobile-theme-btn,.pwa-refresh-mobile{
    width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--btn-border);
    border-radius:11px;background:var(--btn-bg);color:var(--btn-text);box-shadow:var(--shadow-control);
  }
  .mobile-theme-btn .theme-icon{width:17px;height:17px;}
  .pwa-install-mobile{width:36px;height:36px;display:grid;place-items:center;padding:0;border-radius:11px;font-size:18px;line-height:1;}
  .pwa-refresh-mobile{padding:0;}
  .pwa-refresh-mobile>span{width:17px;height:17px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6v5h-5l1.9-1.9A6.8 6.8 0 1 0 18.8 16l1.7 1A8.8 8.8 0 1 1 18.3 7.7L20 6Z'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6v5h-5l1.9-1.9A6.8 6.8 0 1 0 18.8 16l1.7 1A8.8 8.8 0 1 1 18.3 7.7L20 6Z'/%3E%3C/svg%3E") center/contain no-repeat;}
  .pwa-refresh-mobile.is-spinning>span{animation:pwa-refresh-spin .8s linear infinite;}
  .pwa-refresh-mobile:disabled{opacity:.7;}
  @keyframes pwa-refresh-spin{to{transform:rotate(360deg);}}

  .mobile-settings-layer{
    position:fixed;inset:0;z-index:2000;display:flex;min-width:0;min-height:0;
    background:var(--bg);color:var(--text);
  }
  .mobile-settings-layer[hidden]{display:none!important;}
  .mobile-settings-backdrop{position:absolute;inset:0;background:var(--bg);}
  .mobile-settings-dialog{
    position:relative;z-index:1;display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;
    background:var(--bg);color:var(--text);
  }
  .mobile-settings-header{
    flex:0 0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px;
    min-height:58px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--card-bg);
  }
  .mobile-settings-header h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:17px;}
  .mobile-settings-back,.mobile-settings-close{
    width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid var(--btn-border);
    border-radius:11px;background:var(--btn-bg);color:var(--btn-text);box-shadow:var(--shadow-control);font-size:25px;line-height:1;
  }
  .mobile-settings-back[hidden]{display:none!important;}
  .mobile-settings-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 12px calc(18px + env(safe-area-inset-bottom));overscroll-behavior:contain;}
  .mobile-settings-menu{display:grid;gap:10px;}
  .mobile-data-health-card{min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--card-bg);box-shadow:var(--shadow-card);overflow:hidden;}
  .mobile-settings-item{
    width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;
    border:1px solid var(--border);border-radius:14px;background:var(--card-bg);color:var(--text);box-shadow:var(--shadow-card);text-align:left;
  }
  .mobile-data-health-card .mobile-settings-item{border:0;border-radius:0;background:transparent;box-shadow:none;}
  .mobile-settings-item>span:first-child{min-width:0;display:grid;gap:4px;}
  .mobile-settings-item strong{font-size:15px;}
  .mobile-settings-item small{color:var(--text3);font-size:11px;line-height:1.4;}
  .mobile-settings-item>span:last-child{flex:0 0 auto;color:var(--text3);font-size:25px;line-height:1;}
  .mobile-data-health-chevron{transition:transform .22s cubic-bezier(.2,.8,.2,1),color .16s ease;transform-origin:center;}
  .mobile-data-health-card.is-expanded .mobile-data-health-chevron{transform:rotate(90deg);color:var(--accent);}
  .mobile-data-health-detail{display:grid;grid-template-rows:0fr;min-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);visibility:hidden;pointer-events:none;transition:grid-template-rows .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility 0s linear .22s;}
  .mobile-data-health-detail>.mobile-data-health-list{min-height:0;overflow:hidden;border-top:1px solid var(--border);padding:0 14px;}
  .mobile-data-health-card.is-expanded .mobile-data-health-detail{grid-template-rows:1fr;opacity:1;transform:none;visibility:visible;pointer-events:auto;transition-delay:0s;}
  .mobile-data-health-list{max-height:none;overflow:visible;padding:12px 0 14px;gap:10px;}
  .mobile-data-health-list .data-health-item{gap:4px;padding:8px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none;}
  .mobile-data-health-list .data-health-item strong{font-size:14px;}
  .mobile-data-health-list .data-health-item span,.mobile-data-health-list .data-health-item small{font-size:11px;line-height:1.45;white-space:normal;overflow:visible;text-overflow:clip;}
  @media(prefers-reduced-motion:reduce){
    .mobile-data-health-detail,.mobile-data-health-chevron{transition-duration:.01ms!important;transition-delay:0s!important;}
  }
  .pwa-notice{bottom:calc(var(--mobile-bottom) + env(safe-area-inset-bottom) + 8px);align-items:flex-start;}
  .pwa-notice-actions{align-self:center;}
  .pwa-ios-help{padding:16px;}

  .mobile-bottom-nav{
    position:fixed;z-index:80;left:0;right:0;bottom:0;
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
    min-height:calc(var(--mobile-bottom) + env(safe-area-inset-bottom));
    padding:5px 8px calc(5px + env(safe-area-inset-bottom));
    border-top:1px solid var(--border);background:var(--material-bg);
    backdrop-filter:var(--material-filter);-webkit-backdrop-filter:var(--material-filter);
  }
  .mobile-bottom-item{
    min-width:0;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
    border:0;border-radius:12px;background:transparent;color:var(--text3);font-size:10px;font-weight:560;
  }
  .mobile-bottom-item.active{background:var(--sidebar-hover);color:var(--accent);}
  .mobile-bottom-icon{font-size:17px;line-height:20px;filter:grayscale(1);opacity:.75;}
  .mobile-bottom-item.active .mobile-bottom-icon{filter:none;opacity:1;}
  .main{
    width:100%;height:100dvh;padding:var(--mobile-top) 0 calc(var(--mobile-bottom) + env(safe-area-inset-bottom));
    overflow:hidden;min-width:0;
  }
  .panel,.panel.active{
    width:100%;height:100%;min-width:0;padding:0;overflow-x:hidden;overflow-y:auto;
    overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;
  }
  .panel>*{max-width:100%;}
  button,select,input{touch-action:manipulation;}
  button,select{min-height:44px;}

  /* 环球指数：地图、行情、概览自然纵向排列。 */
  #panel-global>div:first-child{height:auto!important;min-height:0!important;padding:10px 8px 16px!important;}
  .gi-grid{
    width:100%;height:auto!important;min-height:0!important;display:grid;
    grid-template-columns:minmax(0,1fr);grid-template-rows:280px auto auto;gap:10px;
  }
  .gi-map-widget{grid-column:1;grid-row:1;min-height:0;}
  .gi-map-widget .cf-widget-hdr{min-height:42px;padding:6px 9px;}
  .gi-map-body{padding:4px!important;}
  .gi-map-widget:not(.expanded) .gi-map-label-name{font-size:30px;font-weight:650;}
  .gi-map-widget:not(.expanded) .gi-map-label-value{font-size:34px;font-weight:780;transform:translateY(10px);}
  .gi-table-widget{grid-column:1;grid-row:2;height:auto;min-height:620px;}
  .gi-table-body{height:auto;min-height:570px;padding:4px 7px 9px;}
  .gi-table{width:100%;height:auto;table-layout:fixed;font-size:12px;}
  .gi-table thead{height:38px;}
  .gi-table th{padding:8px 5px;font-size:11px;}
  .gi-table td{padding:8px 5px;font-size:12px;}
  .gi-table th:first-child,.gi-table td:first-child{width:50%;}
  .gi-table th:nth-child(2),.gi-table td:nth-child(2){width:27%;}
  .gi-table th:nth-child(3),.gi-table td:nth-child(3){width:23%;}
  .gi-table tbody tr{height:40px;}
  .gi-index-name{font-size:13px;}
  .gi-country-badge{flex-basis:18px;width:18px;height:18px;line-height:18px;font-size:8px;}
  .gi-footer-space{grid-column:1;grid-row:3;height:auto;min-height:600px;padding:13px 12px;}
  .gi-overview-body{grid-template-columns:minmax(0,1fr);gap:12px;}
  .gi-overview-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;}
  .gi-overview-metric{min-width:0;padding:10px 8px;border-bottom:1px solid var(--border);}
  .gi-overview-metric:nth-child(odd){border-right:1px solid var(--border);}
  .gi-overview-metric:nth-child(even){border-right:0;}
  .gi-overview-insights{grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);padding-top:8px;}
  .gi-overview-history{min-height:230px;padding:10px 0 0;border-left:0;border-top:1px solid var(--border);}

  /* 资金流向：手机端每次只展示一个子页面。 */
  .cf-page{height:auto!important;min-height:0!important;padding:10px 8px 16px!important;overflow:visible!important;}
  .cf-page-heading{display:none;}
  .mobile-flow-tabs{
    position:sticky;z-index:8;top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;
    margin:0 0 10px;padding:4px;border:1px solid var(--border);border-radius:13px;
    background:var(--material-bg);backdrop-filter:var(--material-filter);-webkit-backdrop-filter:var(--material-filter);
  }
  .mobile-flow-tabs button{border:0;border-radius:9px;background:transparent;color:var(--text3);font-size:13px;font-weight:600;}
  .mobile-flow-tabs button.active{background:var(--accent);color:#fff;box-shadow:0 3px 10px rgba(0,122,255,.2);}
  .cf-dashboard-grid{display:block!important;width:100%;height:auto!important;min-height:0!important;}
  .cf-side-stack{display:contents!important;}
  #panel-watchlist #sf-widget,
  #panel-watchlist #cf-widget,
  #panel-watchlist #mf-widget{display:none;width:100%;min-width:0;}
  #panel-watchlist #sf-widget.mobile-flow-active,
  #panel-watchlist #cf-widget.mobile-flow-active,
  #panel-watchlist #mf-widget.mobile-flow-active{display:flex;}
  #panel-watchlist .cf-widget-hdr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;min-height:48px;padding:7px 9px;gap:7px;}
  #panel-watchlist .cf-widget-title{min-width:0;max-width:100%;line-height:1.35;}
  #panel-watchlist .cf-widget-hdr>span:last-child{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap;}
  #main #sector-flow-chart,
  #main #capital-flow-chart,
  #main #margin-flow-chart,
  #main #industry-valuation-chart,
  #main .ms-chart-wrap canvas,
  #main #etf-trend-chart{touch-action:pan-y!important;}
  #main #sf-widget.expanded #sector-flow-chart,
  #main #cf-widget.expanded #capital-flow-chart,
  #main #mf-widget.expanded #margin-flow-chart,
  #main .iv-chart-card.expanded #industry-valuation-chart,
  #main .ms-card.expanded .ms-chart-wrap canvas,
  #main .etf-chart-card.expanded #etf-trend-chart{touch-action:none!important;}
  #sf-widget{height:auto!important;min-height:790px;}
  #sf-widget .sf-widget-body{
    display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:300px auto;gap:10px;
    height:auto;min-height:740px;min-width:0;padding:8px;
  }
  #sf-widget .sf-chart-pane{min-width:0;min-height:300px;}
  #sf-widget .sf-chart-pane canvas,
  #cf-widget .cf-widget-body canvas,
  .etf-chart-card:not(.expanded) .etf-chart-wrap canvas{touch-action:pan-y;}
  #sf-widget .sf-ranking{min-width:0;min-height:420px;padding:0;border:0;border-radius:11px;background:var(--surface-muted);overflow:hidden;}
  #sf-widget .sf-rank-head,#sf-widget .sf-rank-row{grid-template-columns:minmax(105px,1fr) 82px 62px;column-gap:6px;}
  #sf-widget .sf-rank-head{font-size:11px;padding:9px 8px;}
  #sf-widget .sf-rank-group-title{font-size:11px;padding:8px 8px 4px;}
  #sf-widget .sf-rank-row{font-size:12px;padding:6px 8px;}
  #cf-widget{height:430px!important;}
  #cf-widget .cf-widget-body{min-height:370px;padding:8px 5px;}
  #mf-widget{height:auto!important;min-height:680px;}
  #mf-widget .mf-body{height:auto;min-height:620px;padding:8px;}
  #mf-widget .mf-latest-panel{height:auto;min-height:600px;padding:5px 0;}
  #mf-widget .mf-stats-area{padding:14px 8px;}
  #mf-widget .mf-sub-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  #mf-widget .mf-sub-item{min-width:0;display:flex;flex-wrap:wrap;justify-content:center;}
  #mf-widget .mf-rank-table-wrap{width:100%;overflow:hidden;}
  #mf-widget .mf-rank-table{width:100%;table-layout:fixed;font-size:11px;}
  #mf-widget .mf-rank-table th,#mf-widget .mf-rank-table td{padding:6px 5px;overflow:hidden;text-overflow:ellipsis;}
  #mf-widget .mf-rank-table th:nth-child(1),#mf-widget .mf-rank-table td:nth-child(1),
  #mf-widget .mf-rank-table th:nth-child(5),#mf-widget .mf-rank-table td:nth-child(5),
  #mf-widget .mf-rank-table th:nth-child(6),#mf-widget .mf-rank-table td:nth-child(6){display:none;}
  #mf-widget .mf-rank-table th:nth-child(2),#mf-widget .mf-rank-table td:nth-child(2){width:42%;}
  #mf-widget .mf-rank-table th:nth-child(3),#mf-widget .mf-rank-table td:nth-child(3){width:22%;}
  #mf-widget .mf-rank-table th:nth-child(4),#mf-widget .mf-rank-table td:nth-child(4){width:36%;}
  #mf-widget .mf-history-panel{height:min(560px,70dvh);min-height:420px;max-height:560px;flex:none;}
  #mf-widget .mf-history-chart-wrap{overflow:hidden}
  #mf-widget .mf-history-chart-wrap canvas{position:absolute;inset:0}
  #mf-widget .mf-history-chart-wrap canvas{touch-action:pan-y;}
  .mf-history-toolbar{min-height:46px;padding:1px 2px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);}
  .mf-history-legend{gap:5px;}
  .mf-history-legend button{min-height:36px;gap:3px;font-size:9px;}
  .mf-history-legend button i{width:9px;height:9px;}
  .mf-history-toolbar .mf-overlay-wrap{margin-left:6px;}
  .mf-overlay-toggle{min-height:44px;min-width:58px;padding:8px 12px;}
  #mf-widget.expanded .mf-overlay-toggle{min-height:44px;min-width:58px;padding:8px 12px;}
  #mf-widget.expanded.mobile-landscape-expanded .mf-overlay-toggle{min-height:44px;}
  .mf-overlay-menu{width:min(230px,calc(100vw - 28px));max-height:280px;overflow-y:auto;overscroll-behavior:contain;}
  .mf-overlay-menu label{min-height:42px;font-size:13px;}
  #mf-widget.mobile-landscape-expanded .mf-overlay-menu{right:0;top:calc(100% + 6px);max-height:min(280px,calc(100dvw - 100px));}

  /* LOF：桌面宽表替换为可展开卡片。 */
  #panel-lof{padding:0 0 14px;}
  #panel-lof .top-scroll{max-height:none;padding:10px 8px 5px;overflow:visible;}
  #panel-lof .header{padding:0 2px 5px;justify-content:flex-start;text-align:left;}
  #panel-lof .header h1{display:none;}
  #panel-lof .header .time{text-align:left;font-size:10px;line-height:1.55;}
  #panel-lof .summary-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin:6px 0 8px;}
  #panel-lof .summary-card{min-height:104px;padding:13px 14px;}
  #panel-lof .filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;margin:0;padding:5px;}
  #panel-lof .filter-btn{min-width:0;padding:5px 4px;font-size:11px;}
  #panel-lof .filter-bar input{grid-column:1 / -1;width:100%;min-width:0;margin:0;order:initial;}
  #panel-lof .slider-bar{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:8px;width:auto;margin:0 8px;padding:8px 0 10px;}
  #panel-lof .slider-left{grid-column:1 / -1;}
  #panel-lof .expand-btn{display:none;}
  .mobile-lof-sort{display:flex;grid-column:1 / -1;align-items:center;gap:8px;color:var(--text3);font-size:11px;}
  .mobile-lof-sort select{flex:1;min-width:0;padding:6px 30px 6px 10px;border:1px solid var(--btn-border);border-radius:10px;background-color:var(--btn-bg);color:var(--text);}
  #panel-lof .table-wrap{display:none;}
  .mobile-card-list{display:grid;gap:9px;margin:0 8px 12px;}
  .mobile-data-card{
    width:100%;min-width:0;border:1px solid var(--border);border-radius:15px;background:var(--card-bg);
    color:var(--text);box-shadow:var(--shadow-card);overflow:hidden;
  }
  .mobile-card-toggle{
    width:100%;display:grid;grid-template-columns:24px minmax(0,1fr) auto 18px;align-items:center;gap:8px;
    padding:12px;border:0;background:transparent;color:inherit;text-align:left;
  }
  .mobile-card-rank{color:var(--text3);font-size:11px;text-align:center;}
  .mobile-card-identity{min-width:0;display:flex;flex-direction:column;gap:2px;}
  .mobile-card-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;}
  .mobile-card-identity small{color:var(--text3);font-size:10px;}
  .mobile-card-primary{font-size:18px;font-weight:750;font-variant-numeric:tabular-nums;}
  .mobile-card-primary.up,.iv-mobile-card .up{color:var(--up-color);}
  .mobile-card-primary.down,.iv-mobile-card .down{color:var(--down-color);}
  .mobile-card-chevron{color:var(--text3);font-size:16px;transition:transform .16s ease;}
  .lof-mobile-card.expanded .mobile-card-chevron{transform:rotate(180deg);}
  .mobile-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border);background:var(--surface-muted);}
  .mobile-card-metrics>div{min-width:0;padding:9px 8px;text-align:center;}
  .mobile-card-metrics>div+div{border-left:1px solid var(--border);}
  .mobile-card-metrics span,.mobile-card-detail-grid span{display:block;color:var(--text3);font-size:10px;}
  .mobile-card-metrics strong,.mobile-card-detail-grid strong{display:block;margin-top:2px;font-size:12px;font-variant-numeric:tabular-nums;}
  .mobile-card-details{display:none;padding:10px 12px 12px;border-top:1px solid var(--border);}
  .lof-mobile-card.expanded .mobile-card-details{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:10px;}
  .mobile-card-trend{min-width:0;overflow:hidden;}
  .mobile-card-trend .spark{width:150px;max-width:100%;height:auto;}
  .mobile-card-detail-grid{display:grid;gap:12px;}
  .mobile-empty-state{padding:28px 16px;text-align:center;color:var(--text3);border:1px dashed var(--border);border-radius:14px;}

  /* 行业估值：统计和图表自然流式，宽表改为卡片。 */
  #panel-valuation{padding:0;}
  .iv-page{height:auto;min-height:0;padding:10px 8px 16px;gap:10px;overflow:visible;}
  .iv-toolbar{padding:10px;gap:10px;}
  .iv-heading{width:100%;padding:0;display:block;}
  .iv-heading>div>strong{display:none;}
  .iv-heading>div{display:flex;justify-content:space-between;gap:8px;}
  .iv-heading small{display:block;margin-top:4px;padding:0;border:0;white-space:normal;}
  .iv-controls{width:100%;display:grid;grid-template-columns:1fr;gap:8px;overflow:visible;}
  .iv-select-wrap{width:100%;height:auto;min-height:44px;}
  .iv-select-wrap .site-select{width:100%;}
  .site-select-trigger{min-height:40px;}
  .site-select-listbox{max-height:45dvh;overscroll-behavior:contain;}
  .iv-select-wrap select{flex:1;max-width:none;}
  .iv-segment{width:100%;max-width:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;overflow:visible;}
  .iv-segment button{min-width:0;padding:0 6px;font-size:11px;}
  .iv-detail-grid{display:flex;flex-direction:column;flex:none;height:auto;min-height:0;gap:10px;}
  .iv-stats-card{flex:none;padding:14px;overflow:visible;}
  .iv-industry-nav{display:flex;}
  .iv-industry-nav .iv-cycle-metric{width:auto;min-width:42px;padding:0 8px;font-size:11px;font-weight:650;}
  .iv-stats-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 12px;}
  .iv-stats-list .iv-stats-divider{padding-top:4px;margin-top:0;border-top:0;}
  .iv-chart-card{flex:none;min-height:390px;padding:11px;}
  .iv-chart-mobile-nav-slot{position:sticky;top:0;z-index:3;display:flex;justify-content:flex-end;padding:0 0 8px;background:var(--card-bg);}
  .iv-chart-mobile-nav-slot .iv-industry-nav{display:flex;}
  .iv-chart-wrap{min-height:330px;}
  .iv-table-card{flex:none;min-height:0;}
  .iv-table-card .iv-table-head{min-height:52px;padding:8px 10px;}
  .iv-table-card .iv-table-head>div:first-child{display:none;}
  .iv-table-card .iv-card-actions{width:100%;}
  .iv-table-card #iv-search{width:100%;min-height:38px;}
  .iv-table-card #iv-table-expand-btn,.iv-table-scroll{display:none;}
  .iv-mobile-list{display:grid;margin:0;gap:9px;}
  .iv-mobile-card{display:block;padding:0;text-align:left;}
  .iv-mobile-card.active{border-color:rgba(0,122,255,.45);box-shadow:0 0 0 3px rgba(0,122,255,.1),var(--shadow-card);}
  .iv-mobile-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;}
  .iv-mobile-card-head>span{min-width:0;display:flex;flex-direction:column;gap:2px;}
  .iv-mobile-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;}
  .iv-mobile-card-head small{color:var(--text3);font-size:10px;}
  .iv-mobile-card-head em{font-style:normal;font-size:15px;font-weight:700;}
  .iv-mobile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);background:var(--surface-muted);}
  .iv-mobile-metrics>span{min-width:0;padding:9px 4px;text-align:center;}
  .iv-mobile-metrics>span+span{border-left:1px solid var(--border);}
  .iv-mobile-metrics small{display:block;color:var(--text3);font-size:9px;}
  .iv-mobile-metrics strong{display:block;margin-top:3px;font-size:12px;font-variant-numeric:tabular-nums;}

  /* 市场信号：五张指标卡自然单列，视觉沿用现有卡片系统。 */
  #panel-signals{padding:0;}
  .ms-page{height:auto;min-height:0;padding:10px 8px 16px;gap:10px;overflow:visible;}
  .ms-toolbar{min-height:0;padding:11px 12px;align-items:flex-start;}
  .ms-heading strong{display:none;}
  .ms-heading span{font-size:11px;line-height:1.4;}
  .ms-update strong{font-size:11px;}
  .ms-update small{font-size:9px;}
  .ms-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:10px;min-height:0;}
  .ms-card{
    grid-column:1;min-height:380px;padding:13px 12px 12px;
    grid-template-rows:auto auto minmax(235px,1fr) auto;
  }
  .ms-card-head strong{font-size:14px;}
  .ms-current>strong{font-size:25px;}
  .ms-direction-hint{padding-bottom:1px;font-size:12px;line-height:1.5;}
  .ms-chart-wrap{min-width:0;min-height:235px;}
  .ms-chart-wrap canvas{touch-action:pan-y;}
  .ms-card footer{display:block;min-height:0;}
  .ms-card footer p{max-width:none;font-size:12px;line-height:1.5;}
  .ms-card footer span{display:block;margin-top:5px;font-size:12px;line-height:1.5;text-align:left;}
  .iv-wheel-hint{display:none;}
  .iv-chart-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding-bottom:8px;}
  .iv-chart-head>div:first-child{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding-right:4px;}
  .iv-chart-head strong{max-width:100%;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .iv-chart-head #iv-chart-period{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.35;}
  .iv-chart-head .iv-card-actions{min-width:0;align-self:start;}
  .iv-chart-help{display:none;}
  .iv-chart-wrap{min-width:0;min-height:330px;}

  /* 所有展开组件使用手机安全视口，不再依赖桌面侧边栏宽度。 */
  .cf-backdrop,.sidebar.collapsed~.main .cf-backdrop{left:0;}
  #panel-watchlist .cf-widget.expanded,
  .gi-map-widget.expanded,
  .iv-chart-card.expanded,
  .iv-table-card.expanded,
  .ms-card.expanded,
  .sidebar.collapsed~.main .gi-map-widget.expanded,
  .sidebar.collapsed~.main .iv-chart-card.expanded,
  .sidebar.collapsed~.main .iv-table-card.expanded,
  .sidebar.collapsed~.main .ms-card.expanded{
    position:fixed!important;z-index:110!important;left:8px!important;right:8px!important;top:8px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;width:auto!important;height:auto!important;
    max-width:none!important;max-height:none!important;margin:0!important;border-radius:14px!important;overflow:auto!important;
  }
  #gi-chart-expanded,.sidebar.collapsed~.main #gi-chart-expanded{
    left:8px!important;right:8px!important;top:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;
    width:auto!important;height:auto!important;
  }
  #gi-chart-expanded #gi-chart-canvas{touch-action:none;}
  #gi-chart-expanded #gi-chart-canvas{user-select:none;-webkit-user-select:none;}
  #gi-chart-expanded .gi-chart-crosshair-info{top:6px;right:8px;padding:6px 8px;gap:3px 8px;font-size:10px;}
  #gi-chart-expanded .gi-chart-crosshair-info.align-right{right:auto;left:8px;}
  #panel-watchlist .cf-widget.expanded .sf-widget-body{grid-template-columns:1fr;grid-template-rows:minmax(320px,45vh) auto;}
  #mf-widget.expanded{padding:12px!important;}
  #mf-widget.expanded .mf-value{font-size:38px;}
  #mf-widget.expanded .mf-label{font-size:14px;}
  #mf-widget.expanded .mf-sub-label{font-size:12px;}
  #mf-widget.expanded .mf-sub-val{font-size:17px;}
  #mf-widget.expanded .mf-rank-table{font-size:12px;}
}

@media(max-width:768px) and (orientation:portrait){
  #main #panel-watchlist .cf-widget.expanded.mobile-landscape-expanded,
  #main .gi-map-widget.expanded.mobile-landscape-expanded,
  #main #gi-chart-expanded.mobile-landscape-expanded,
  #main .iv-chart-card.expanded.mobile-landscape-expanded,
  #main .iv-table-card.expanded.mobile-landscape-expanded,
  #main .ms-card.expanded.mobile-landscape-expanded,
  #main .etf-chart-card.expanded.mobile-landscape-expanded{
    position:fixed!important;
    z-index:1100!important;
    left:50%!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    width:calc(100dvh - 16px)!important;
    height:calc(100dvw - 16px)!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    transform:translate(-50%,-50%) rotate(90deg)!important;
    transform-origin:center center!important;
    scroll-padding-inline-end:env(safe-area-inset-bottom);
  }

  #sf-widget.expanded.mobile-landscape-expanded .sf-widget-body{
    display:grid;
    height:calc(100% - 48px);
    min-width:0;
    min-height:0;
    overflow:hidden;
    grid-template-columns:minmax(0,1fr) minmax(270px,36%);
    grid-template-rows:minmax(0,1fr);
  }
  #sf-widget.expanded.mobile-landscape-expanded .sf-chart-pane{
    min-width:0;
    min-height:0;
  }
  #sf-widget.expanded.mobile-landscape-expanded .sf-ranking{
    min-width:270px;
    min-height:0;
    max-height:none;
    overflow:hidden!important;
  }
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-head,
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-row{
    grid-template-columns:minmax(0,1fr) 82px 62px;
    column-gap:5px;
  }
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-head{padding:4px 6px;font-size:10px;}
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-group-title{padding:4px 6px 2px;font-size:10px;}
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-row{min-height:0;padding:2px 6px;font-size:10px;line-height:1.15;}
  #sf-widget.expanded.mobile-landscape-expanded .sf-rank-list{min-height:0;}
  #sf-widget.expanded.mobile-landscape-expanded .sf-chart-pane canvas,
  #mf-widget.expanded.mobile-landscape-expanded canvas,
  #main .etf-chart-card.expanded.mobile-landscape-expanded canvas,
  #main .ms-card.expanded.mobile-landscape-expanded canvas{touch-action:none;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded{
    display:flex;flex-direction:column;overflow:hidden!important;
  }
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-card-head,
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-chart-controls,
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-legend{
    min-width:0;flex:0 0 auto;
  }
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-card-head{position:relative;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-card-head>div{min-width:0;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-chart-controls{grid-template-columns:minmax(0,1fr) auto;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-chart-wrap{min-width:0;min-height:0;flex:1 1 auto;margin:0 8px;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-legend{max-height:34px;overflow:hidden;}
  #main .etf-chart-card.expanded.mobile-landscape-expanded .etf-trend-mobile-info{position:absolute;top:8px;right:8px;width:min(210px,58%);max-width:calc(100% - 16px);max-height:min(120px,46%);margin:0;}
  #mf-widget.expanded.mobile-landscape-expanded .mf-body,
  #mf-widget.expanded.mobile-landscape-expanded .mf-latest-panel{
    min-height:0;
  }
  #mf-widget.expanded.mobile-landscape-expanded .mf-history-panel{height:100%;min-height:0;max-height:none;flex:1;}
  #main .iv-table-card.expanded.mobile-landscape-expanded + .iv-mobile-list{
    display:none;
  }
  #main .iv-table-card.expanded.mobile-landscape-expanded .iv-table-scroll{
    display:block;
    flex:1;
    min-height:0;
    overflow:auto;
  }
  #main .ms-card.expanded.mobile-landscape-expanded{
    grid-template-rows:auto auto minmax(0,1fr) auto;
    padding:12px 14px 10px;
    overflow:hidden!important;
  }
  #main .ms-card.expanded.mobile-landscape-expanded .ms-card-head{align-items:center;}
  .ms-card.expanded.mobile-landscape-expanded .ms-current{position:static;z-index:auto;grid-row:2;min-height:30px;align-items:center;}
  .ms-card.expanded.mobile-landscape-expanded .ms-current>strong{font-size:26px;line-height:1;}
  #main .ms-card.expanded.mobile-landscape-expanded .ms-chart-wrap{grid-row:3;min-height:0;}
  #main .ms-card.expanded.mobile-landscape-expanded footer{display:none;}
}

@media(max-width:768px){
  .iv-table-card #iv-table-expand-btn{display:grid;}
}

@media(max-width:768px){
  /* 宽基 ETF 从资金流向页内标签进入，底部导航仍保持五栏。 */
  .mobile-flow-tabs{grid-template-columns:repeat(4,minmax(0,1fr));}
  .mobile-flow-tabs button{font-size:11px;padding-left:2px;padding-right:2px;}
  #panel-etf-monitor{padding:0;}
  .etf-page{height:auto;min-height:0;padding:10px 8px 16px;gap:10px;overflow:visible;}
  .etf-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}.etf-summary-card{padding:11px 12px;min-height:88px;}.etf-summary-card strong{font-size:19px;}.etf-summary-card span{font-size:10px;}.etf-summary-card small{font-size:9px;}.etf-summary-date-card{min-height:112px;}.etf-date-row strong{font-size:12px;}
  .etf-section-head{min-height:26px;}.etf-section-head strong{font-size:12px;}.etf-index-expand-btn{font-size:9px;padding:4px 8px;}.etf-index-cards{grid-template-columns:1fr;gap:8px;}.etf-index-card>header{padding:10px 11px 6px;}.etf-index-card>header strong{font-size:13px;}.etf-index-card>header small{font-size:9px;}.etf-index-score{font-size:11px;}.etf-index-metrics{padding:6px 9px 9px;}.etf-index-metrics small{font-size:8px;}.etf-index-metrics strong{font-size:11px;}.etf-index-card>footer{font-size:8px;padding:6px 10px 8px;}.etf-index-card-details{padding:0 8px 7px;}.etf-index-detail-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:7px 1px;font-size:9px;}.etf-index-detail-main{grid-column:1/-1;}.etf-index-detail-row span{font-size:8px;}.etf-index-detail-row strong{font-size:9px;}.etf-index-empty{padding:14px;font-size:10px;}
  .etf-chart-card:not(.expanded){height:auto;min-height:0;flex:0 0 auto;}.etf-card-head,.etf-table-head{padding:10px 11px;align-items:flex-start;}.etf-card-head strong,.etf-table-head strong{font-size:13px;}.etf-card-head span,.etf-table-head span{font-size:9px;line-height:1.35;}.etf-chart-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:7px 10px;gap:7px;}.etf-chart-controls label{min-width:0;font-size:10px;}.etf-chart-controls .site-select{width:100%;}.etf-chart-controls select{min-height:44px;font-size:10px;max-width:none;}.etf-index-selector{grid-column:1/-1;width:100%;gap:3px 7px;}.etf-index-selector button{display:none;min-height:32px;font-size:10px;}.etf-index-selector button[data-index-code="000300"],.etf-index-selector button[data-index-code="000852"],.etf-index-selector button[data-index-code="399006"]{display:inline-flex;}.etf-index-selector button i{width:9px;height:9px;}.etf-index-picker{display:block;align-self:end;}.etf-index-picker>button{min-height:40px;}.etf-index-picker-listbox{max-height:45dvh;}.etf-chart-card:not(.expanded) .etf-chart-wrap{min-height:290px;flex:0 0 290px;margin:0 4px;}.etf-legend{font-size:9px;padding:5px 10px 8px;}.etf-trend-mobile-info{position:absolute;z-index:3;top:8px;right:8px;box-sizing:border-box;width:min(210px,58%);max-width:calc(100% - 16px);max-height:min(120px,46%);overflow:auto;display:block;margin:0;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface-muted) 94%,transparent);box-shadow:0 4px 14px rgba(15,23,42,.14);font-size:9px;line-height:1.3;pointer-events:none;}.etf-trend-mobile-info[hidden]{display:none!important;}.etf-trend-mobile-info>strong,.etf-trend-mobile-info>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.etf-trend-mobile-info>strong{color:var(--text);font-size:10px;}.etf-trend-mobile-info>small{margin-top:2px;color:var(--text3);}.etf-trend-mobile-info>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin-top:5px;}.etf-trend-mobile-info span{display:flex;justify-content:space-between;gap:5px;min-width:0;color:var(--text3);}.etf-trend-mobile-info span b{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;}
  .etf-table-card{overflow:hidden;}.etf-table-actions input{width:125px;min-height:30px;font-size:10px;}.etf-table-scroll{display:none;}.etf-mobile-list{display:grid;gap:8px;margin:0;padding:8px;}.etf-mobile-card{padding:11px 10px;border:1px solid var(--border);border-radius:12px;background:var(--card-bg);box-shadow:var(--shadow-card);}.etf-mobile-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}.etf-mobile-card header strong,.etf-mobile-card header small{display:block;}.etf-mobile-card header strong{font-size:13px;}.etf-mobile-card header small{margin-top:3px;color:var(--text3);font-size:9px;}.etf-mobile-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);}.etf-mobile-metrics span{min-width:0;text-align:center;}.etf-mobile-metrics span+span{border-left:1px solid var(--border);}.etf-mobile-metrics small{display:block;color:var(--text3);font-size:9px;}.etf-mobile-metrics strong{display:block;margin-top:3px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.etf-mobile-empty{padding:28px 12px;text-align:center;color:var(--text3);font-size:11px;}
  .etf-chart-card.expanded{position:fixed!important;z-index:110!important;left:8px!important;right:8px!important;top:12.5dvh!important;bottom:auto!important;width:auto!important;height:75dvh!important;min-height:0!important;max-width:none!important;max-height:75dvh!important;margin:0!important;overflow:hidden!important;transform:none!important;display:flex;flex-direction:column;}.etf-chart-card.expanded .etf-card-head{position:relative;flex:0 0 auto;}.etf-chart-card.expanded .etf-expand-btn{position:absolute;top:8px;right:8px;z-index:2;}.etf-chart-card.expanded .etf-chart-controls{flex:0 0 auto;}.etf-chart-card.expanded .etf-chart-wrap{min-height:0;flex:1 1 auto;}
  .etf-table-card.expanded{position:fixed!important;z-index:110!important;left:8px!important;right:8px!important;top:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;margin:0!important;overflow:hidden!important;display:flex;flex-direction:column;min-height:0;}.etf-table-card.expanded .etf-table-scroll{display:block;overflow:auto;max-height:none;flex:1;min-height:0;}.etf-table-card.expanded .etf-mobile-list{display:none;}
}

@media(max-width:768px) and (orientation:portrait){
  .etf-table-card.expanded.mobile-landscape-expanded{position:fixed!important;z-index:1100!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;width:calc(100dvh - 16px)!important;height:calc(100dvw - 16px)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;transform:translate(-50%,-50%) rotate(90deg)!important;transform-origin:center center!important;}
}

@media(max-width:380px){
  .pwa-notice{flex-direction:column;}
  .pwa-notice-actions{width:100%;align-self:stretch;}
  .pwa-notice-actions button{flex:1;}
  .lof-mobile-card.expanded .mobile-card-details{grid-template-columns:1fr;}
  .mobile-card-trend{text-align:center;}
  .iv-mobile-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
  .iv-mobile-metrics>span:nth-child(3){border-left:0;border-top:1px solid var(--border);}
  .iv-mobile-metrics>span:nth-child(4){border-top:1px solid var(--border);}
}
