/* 历史区列表在面板内滚动（CONTRACT 修订 30）：撑满剩余高度、允许缩小、超出滚动；行数少时不把任务条拉高。
   flex-basis 必须是 0 不能是 auto：auto 会把列表内容高度算进面板的固有高度，面板进而顶高整个网格行
   （实测：文生图页 30 条历史把页面从 1459px 撑到 4012px，列表也不再滚动）。改 0 之后面板高度只由
   同一行的资料上传/生成结果两列决定，列表填满剩余空间并内部滚动，这才是修订 30 要的效果。
   scrollbar-gutter:stable 固定预留滚动条宽度：不这样写，Chrome 在某些系统设置下用悬浮式滚动条盖住卡片右边缘的文字
   （【用户实测 2026-09-13，生产站】任务条文字换行位置不对、被滚动条遮住一部分）。 */
/* grid-auto-rows:min-content 必须写：任务条是 <button>，全站 styles.css 里 button{min-height:42px}
   会被网格当成行高，而卡片内容（状态段换行两行 + 时间戳 + 内边距）实际要 82px；不写这条，
   卡片被钉在 42px，多出来的 40px 画到卡片外、压在下一张卡片上（【用户实测 2026-09-13，生产站】
   "文案明显叠在一起""超出了任务条的边框"）。 */
.r2-task-list { display:grid; grid-auto-rows:min-content; gap:10px; align-content:start; flex:1 1 0; min-height:0; overflow:auto; scrollbar-gutter:stable; }
/* 任务条第一行 = 名称段 + 一个空格 + 状态段；第二行是提交时间。 */
.r2-task-line { display:block; }
.r2-task-list [hidden], .r2-task-actions[hidden] { display:none !important; }
/* align-items 原来是 flex-start：会让内部这两行文字各自按内容宽度收缩，而不是撑满卡片宽度，
   换行位置因此跟卡片实际宽度对不上（同一次实测发现）。改 stretch 让两行都撑满卡片可用宽度，
   text-align:left 仍保证文字本身靠左。
   word-break:keep-all：历史区只有 318px 宽（1920 屏三列布局实测），状态段放不下一行必然换行；
   不加这条会把中文词从中间劈开（实测「本次任」+「务共1张】」），加了之后在斜杠处断
   （「…失败0张/」+「本次任务共1张】」）。overflow-wrap:anywhere 保留作兜底，防止极端长段溢出卡片。 */
.r2-task-summary { display:flex; flex-direction:column; align-items:stretch; gap:6px; width:100%; padding:14px 16px; text-align:left; color:inherit; background:#fff; border:1px solid #d5dbe3; border-radius:10px; cursor:pointer; font:inherit; overflow-wrap:anywhere; word-break:keep-all; }
.r2-task-summary.is-selected { border-color:#45826c; background:#f3f8f5; }
.r2-task-summary:focus-visible { outline:2px solid #45826c; outline-offset:2px; }
.r2-task-summary small { color:#596979; }
.r2-task-notice { white-space:pre-wrap; color:#71431a; }
.r2-task-notice:empty { display:none; }
.r2-task-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.r2-task-actions button { padding:8px 12px; border:1px solid #9cabb8; border-radius:7px; background:#f8fafc; color:#182b3c; cursor:pointer; font:inherit; }
.r2-task-actions button:disabled { opacity:.5; cursor:default; }
