/* ============================================================================
   PC 端两栏布局（全站功能子页）· 2026-09-28
   ----------------------------------------------------------------------------
   背景：站内 101 个功能子页里，只有 3 个（文案 / 文生图 / 图生图）做过 PC 两栏，
   其余在 PC 上都是「手机单列被拉宽到 1044px」—— 输入框超宽、右侧一大片空白。

   做法：结果区可见时，子页切成「左操作 / 右结果」两栏。
   **判据由 pc-layout.js 提供**（给子页加 `.pc-2col`），本文件只认这个类。

   🔴 为什么判据不写在 CSS 里（这是踩过的坑，别再改回去）
   第一版用 `:has(> [id*="Result"]:not([hidden]))` 当判据，上线后全量体检发现
   **21 个子页被误切、右栏全空** —— 这些页面的结果区没有 `hidden` 属性，
   而是靠 `display:none` / 空内容隐藏，`:not([hidden])` 对它们恒为真。
   CSS 读不到"真实高度"，表达不了「是不是真的可见」，所以判据必须在 JS 里。
   ⇒ 想让更多页面吃到两栏，改 pc-layout.js 的判据，**不要**在这里加 `:has()`。

   🔴 布局本身的迭代记录（也都是实测踩出来的）
     v3 结果区写 `grid-row: 2 / span 90` 是致命错：右栏从第 2 行起被占满，
        "跨栏元素"（历史页签/横幅）找不到整行空位被推到页面很下面，
        于是第 2 行左半空着，整页看着"左边全空、右边一张图"
     v4 去掉除 topbar 外的所有跨栏元素，让它们统统留在左栏
     v5 结果区改 `grid-row: 2 / span 999` 跨到最后一行 ——
        否则结果区（常 400px+）会把所在行撑高，同一行的左栏矮元素下面留一大片空白

   ⚠️ 需要 Chrome 105+ / Safari 15.4+（`:has` 已不再使用，但本文件依赖现代 grid）。
   ========================================================================== */

@media (min-width: 1024px) {

  /* ---------- ① 切两栏（只认 JS 打完的标记） ---------- */
  .subpanel.active.pc-2col:not(#sub-copy):not(#sub-t2i):not(#sub-i2i) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px 18px;
    align-items: start;
  }

  /* ---------- ② 顶栏通宽（唯一的"跨两栏"元素） ---------- */
  .subpanel.active.pc-2col:not(#sub-copy):not(#sub-t2i):not(#sub-i2i) > .sub-topbar {
    grid-column: 1 / -1;
  }

  /* ---------- ③ 结果区 → 右栏，随左栏滚动停靠 ---------- */
  /* 选择器写法必须与 pc-layout.js 的判据一致：id/class 含 result（不分大小写） */
  .subpanel.active.pc-2col:not(#sub-copy):not(#sub-t2i):not(#sub-i2i) > [id*="result" i]:not([hidden]),
  .subpanel.active.pc-2col:not(#sub-copy):not(#sub-t2i):not(#sub-i2i) > [class*="result" i]:not([hidden]) {
    grid-column: 2;
    /* 🔴 跨到最后一行（2 / span 999），不能只写 grid-row: 2 ——
       只占一行时，这一行会被结果区撑高（常 400px+），
       同一行左栏那个矮元素下面就是一大片空白。 */
    grid-row: 2 / span 999;
    align-self: start;
    position: sticky;
    top: 76px;
    min-width: 0;
  }

  /* ---------- ④ 其余全部留在左栏（不跨栏，避免把 row2 左半留空） ---------- */
  .subpanel.active.pc-2col:not(#sub-copy):not(#sub-t2i):not(#sub-i2i) > *:not(.sub-topbar):not([id*="result" i]):not([class*="result" i]) {
    grid-column: 1;
    min-width: 0;
  }
}
