/* 学生端移动适配：保留桌面工作台，只在窄屏启用移动壳层。 */
#mobile-drawer{display:contents}
#mobile-drawer-backdrop,#mobile-bottom-nav,#mobile-menu-toggle{display:none}

@media (max-width:900px){
  html,body{width:100%;max-width:100%;overflow:hidden}
  body{height:var(--mobile-visual-viewport-height,100dvh);min-height:var(--mobile-visual-viewport-height,100dvh);padding:0}
  #command-workbench{width:100%;height:var(--mobile-visual-viewport-height,100dvh);min-height:var(--mobile-visual-viewport-height,100dvh);border:0;border-radius:0;box-shadow:none;overflow:hidden}

  /* 侧栏在移动端变成可滑出的主导航抽屉。 */
  #mobile-drawer{position:fixed;z-index:155;inset:0 auto 0 0;display:block;width:min(86vw,320px);min-width:0;visibility:hidden;transform:translate3d(-105%,0,0);transition:transform .22s ease,visibility 0s linear .22s;pointer-events:none}
  #mobile-drawer #sidebar.command-rail{position:relative;inset:auto;z-index:auto;width:100%!important;min-width:0!important;max-width:none!important;height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;box-shadow:18px 0 45px rgba(0,0,0,.2)}
  #mobile-drawer #sidebar> *:not(#resize-handle):not(#sidebar-toggle){flex-shrink:0}
  #mobile-drawer #sidebar-body{flex:0 0 auto;min-height:0;overflow:visible}
  #mobile-drawer #sidebar-sessions-list{flex:0 0 auto;min-height:0;overflow:visible}
  body.mobile-drawer-open #mobile-drawer{visibility:visible;transform:translate3d(0,0,0);transition-delay:0s;pointer-events:auto}
  #mobile-drawer-backdrop{position:fixed;z-index:145;inset:0;background:rgba(11,18,34,.34);backdrop-filter:blur(3px)}
  body.mobile-drawer-open #mobile-drawer-backdrop{display:block}

  /* 顶部只保留当前上下文和左上角菜单按钮，避免长标题挤压内容。 */
  #mobile-menu-toggle{display:grid;width:38px;height:38px;min-width:38px;padding:0;place-items:center;border-radius:11px}
  #mobile-menu-toggle .ico{width:19px;height:19px}
  #mobile-menu-toggle{position:absolute;top:9px;left:10px}
  #main.command-canvas{min-width:0;border-radius:0}
  #main-header.canvas-head{position:relative;min-height:56px;padding:8px 10px 8px 58px;gap:8px}
  #main-header .canvas-context{min-width:0;flex:1}
  #main-header .canvas-context-copy{min-width:0}
  #main-header .session-name{display:block;max-width:calc(100vw - 120px);font-size:.82rem}
  #main-header .canvas-context-copy>span{display:none}
  #main-header .canvas-actions{flex:0 0 auto;margin-left:auto;gap:5px}
  #main-header #header-admin-link,#main-header #panel-toggle{display:none!important}
  #main-body{min-height:0}
  #session-panel{display:none!important}

  /* 聊天页和输入框只为系统安全区留出空间。 */
  #messages{min-width:0;padding:16px 12px calc(24px + env(safe-area-inset-bottom));gap:10px}
  .msg,.msg.assistant,.msg.user{width:100%;max-width:100%;padding-right:0;padding-left:0}
  .msg.user .bubble{max-width:88%}
  #uploaded-list{margin:0 10px}
  #sop-bubbles{margin:0 10px!important}
  #input-bar.command-composer{z-index:125;margin:0 10px calc(10px + env(safe-area-inset-bottom))!important;min-height:60px;padding:8px;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto}
  #composer-left{min-width:58px}
  #composer-left>div{display:flex;align-items:center}
  #composer-role-context{display:none}
  #composer-left .btn-plain{width:28px;min-width:28px;height:32px;padding:0}
  #composer-left .lang-selector-wrap{margin-left:2px}
  #composer-left .lang-toggle{width:28px;height:28px;padding:0;font-size:0}
  #composer-left .lang-toggle:before{content:'文';font-size:.72rem}
  #composer-actions{gap:4px}
  #composer-actions .btn-plain{display:none!important}
  #input{min-width:0;font-size:.86rem}
  #send-btn.command-composer,#input-bar #send-btn{width:38px;min-width:38px;height:38px;border-radius:12px}

  /* 题库保持一张题卡一列，选项和操作区满足触控尺寸。 */
  #workspace-view{min-height:0;padding-bottom:0}
  #question-bank-view{min-width:0;height:100%}
  .question-bank-toolbar{gap:6px;overflow-x:auto;flex-wrap:nowrap!important;padding:8px 10px;scrollbar-width:none}
  .question-bank-toolbar::-webkit-scrollbar{display:none}
  .question-bank-toolbar select{width:auto;min-width:122px;max-width:170px;flex:0 0 auto!important}
  .question-bank-mode-list{width:auto!important;order:initial!important;flex:0 0 auto;flex-wrap:nowrap}
  .question-bank-progress{margin-left:auto;flex:0 0 auto}
  .question-bank-count{display:none}
  .question-bank-scroll{padding:12px 10px calc(24px + env(safe-area-inset-bottom))}
  .question-bank-card{width:100%;border-radius:14px}
  .question-bank-card-head{gap:8px;padding:14px}
  .question-bank-card-title{min-width:0;font-size:.98rem;overflow-wrap:anywhere}
  .question-bank-position{font-size:.72rem}
  .question-bank-body{padding:14px}
  .question-bank-section{margin-bottom:16px}
  .question-bank-option{min-height:48px;padding:11px 10px}
  .question-bank-option-key{width:26px;height:26px;flex-basis:26px}
  .question-bank-actions{gap:7px;padding:12px 14px}
  .question-bank-actions button{min-height:42px;flex:1 1 calc(50% - 7px);padding:8px 10px}
  .question-bank-rich table{min-width:440px}
  .question-bank-image-grid,.question-bank-source-media{grid-template-columns:1fr}
  .question-bank-image img{max-height:300px}

  /* 知识图谱筛选器横向滚动，图谱与树状详情使用同一可视区域。 */
  #kg-view>div:first-child{gap:6px!important;overflow-x:auto;flex-wrap:nowrap;padding:8px 10px!important;scrollbar-width:none}
  #kg-view>div:first-child::-webkit-scrollbar{display:none}
  #kg-view>div:first-child>*{flex:0 0 auto}
  #kg-view>div:first-child>div[style*="margin-left:auto"]{margin-left:0!important}
  #kg-search{width:138px!important}
  .kg-subject,.kg-chapter-wrap{min-width:132px;max-width:180px}
  .kg-chapter-trigger{width:180px;min-width:132px;max-width:180px}
  .kg-chapter-menu{min-width:280px;max-width:calc(100vw - 20px);max-height:300px}
  #kg-canvas{min-width:0;min-height:0}
  #kg-legend{left:8px!important;bottom:calc(14px + env(safe-area-inset-bottom))!important;max-width:calc(100% - 16px);max-height:78px;overflow:auto}
  #kg-zoom{right:8px!important;bottom:calc(14px + env(safe-area-inset-bottom))!important}
  #kg-view>div:nth-child(2){min-height:0;flex-direction:column}
  #kg-tree{width:100%!important;min-width:0!important;max-width:none!important;flex:0 0 38%!important;border-right:0!important;border-bottom:1px solid var(--border);padding:8px!important}
  #kg-detail{min-width:0;flex:1;padding:12px!important;overflow:auto}

  /* 文件库使用卡片宽度，不让表格内容把页面撑出横向滚动。 */
  #lib-view{min-width:0}
  #lib-header{gap:6px!important;flex-wrap:wrap;overflow-x:auto;padding:8px 10px!important}
  #lib-header>span:first-child{width:100%;flex:1 0 100%!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere}
  #lib-header .lib-breadcrumb{width:100%;flex:1 0 100%;overflow-wrap:anywhere}
  #lib-search{width:160px!important;min-height:36px}
  #lib-table-wrap{overflow:auto!important;padding-bottom:calc(16px + env(safe-area-inset-bottom))!important}
  #lib-table{min-width:0!important}
  #lib-table table{width:100%!important;min-width:0!important;table-layout:fixed}
  #lib-table table th:nth-child(2),#lib-table table td:nth-child(2),#lib-table table th:nth-child(3),#lib-table table td:nth-child(3){display:none}
  #lib-table table th:first-child,#lib-table table td:first-child{width:auto;overflow-wrap:anywhere;white-space:normal}
  #lib-table table th:nth-child(4),#lib-table table td:nth-child(4){width:70px;padding-left:4px!important;padding-right:4px!important}
  #lib-table .lib-qcard{margin:6px 8px!important;padding:11px!important}
  #lib-table .lib-file-row td,#lib-table .lib-dir-row td{padding-left:10px!important;padding-right:10px!important}

  /* 预览和设置弹窗在手机上改为底部抽屉，内容仍可独立滚动。 */
  .modal-overlay{align-items:flex-end;padding:10px}
  .modal-overlay .modal{width:100%;max-width:none;max-height:calc(100dvh - 20px);border-radius:18px 18px 12px 12px}
  #preview-modal .modal{width:100%!important;height:calc(100dvh - 10px)!important;max-height:none;border-radius:16px 16px 0 0}
  #preview-modal .modal-header{gap:8px;padding:12px 14px}
  #preview-modal .modal-header h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

@media (max-width:480px){
  #mobile-drawer{width:min(88vw,310px)}
  #main-header .role-avatar{width:30px;height:30px}
  #main-header .session-name{max-width:calc(100vw - 112px);font-size:.78rem}
  .question-bank-card-head{display:block}
  .question-bank-position{display:block;margin-top:6px}
  .question-bank-actions button{flex-basis:100%}
}

@media (prefers-reduced-motion:reduce){
  #mobile-drawer{transition:none}
}
