/* ============================================================
   门户双端适配补丁 · 2026-09-09
   为什么独立成文件：theme.css 是多 chat 共享且有未提交改动，
   为避免裹挟他人改动，响应式修复独立放这里；由各页面显式引用，
   红线文件（schedule.html / audit.html）不引用、零影响。

   核心病根：body 是纵向 flex + main.container 带 margin:auto
   → 主区按内容收缩(fit-content)。一旦页内有"不可收缩宽内容"
   （轮播轨道、不换行筛选条等），整个主区会被撑到几百像素宽，
   手机端出现大横向滚动。此文件让主容器恒为全宽，从根上治住。
   ============================================================ */

/* 主容器恒为全宽（max-width 仍由 .container 自己约束，桌面端居中不变） */
main.container{width:100%;}

/* 收缩上下文里的栅格/弹性子项：允许收缩，不给祖先撑最小宽度 */
main.container .grid > *{min-width:0;}

/* 轮播：轨道与每张 slide 恒等于容器宽，杜绝 min-width:100% 在
   收缩容器里退化成"内容宽"的经典坑；track 超出部分由 .carousel 裁掉 */
main.container .carousel{max-width:100%;}
main.container .carousel .slides{width:100%;}
main.container .carousel .slide{width:100%;}

/* ---- 窄屏专项 ---- */
@media (max-width:640px){
  /* 轮播左右留白收窄，slide 可读面积更大 */
  main.container .carousel .slide{padding:22px 20px 30px;}
  main.container .kb-carousel .slide{padding:22px 20px 30px;}
  /* 弹性工具条允许换行（搜索框/下拉/按钮在窄屏竖排） */
  main.container .kb-toolbar{flex-wrap:wrap;}
  main.container .kb-toolbar input{flex:1 1 100%;min-width:0;}
  /* 长词/长链接强制可断行，杜绝个别标题撑破卡片 */
  main.container .card h3,main.container .card p{overflow-wrap:break-word;}
}

/* 防御兜底：任何情况下都不允许页面级横向滚动（内容超宽一律裁剪并允许组件内滚动） */
html,body{overflow-x:hidden;}
