/* ============================================================
   Image Converter — Product Page V2 的 Workspace 外壳规则（Phase 11B-A）

   通用的 Product Page 页面层（Hero / 卡片 / 步骤 / FAQ …）在 product-page.css（Phase 12A 抽出）；
   这里只剩 Image Product 页**独有**的 Workspace 外层关系。先加载 product-page.css，再加载本文件。
   - 只允许覆盖共享令牌的取值、外壳 min-height 防破框、外层 .tool-shell 上内边距（g55 [B] 逐条校验）
   ============================================================ */

/* ---------- 2. Workspace 外层（只在这一页、只在桌面宽度） ----------
   Hero 与 Workspace 卡片之间拉开；卡片内部的间距通过**覆盖共享令牌的取值**放松，
   不写任何 Workspace 组件规则 —— intent 页与 PDF Workspace 用的仍是共享层原值。 */
@media (min-width: 641px) {
  html.is-standalone .pp-hero ~ .yqw.tool-shell {
    --pp-ws-promise-lines: 1;
    padding-top: 26px;
    --yqw-surface-pad: clamp(32px, 3.4vw, 48px);
    --yqw-section-gap: 30px;
    --yqw-title-subtitle-gap: 10px;
    /* 外框 = 两侧内边距 + 任务头 + 区块间距 + trust 行（实测 149px + 每行说明文字 1.5 × 字号，+2 容差）。
       ⚠️ 任务头说明文字被共享组件限宽 64ch，**行数由语言决定、与视口无关**：
       en / vi 一行，id 两行。首版把外框写成单行常数，id 页在桌面空态破框 19px（本轮实测发现）。
       g55 [I] 断言：实际渲染行数 == --pp-ws-promise-lines，且三种语言逐视口不破框 */
    --pp-ws-chrome: calc(2 * var(--yqw-surface-pad) + 151px
                         + var(--pp-ws-promise-lines) * 1.5 * var(--yqw-subtitle-size));
  }
  /* Phase 11C-A：es / fr / ru 的任务头说明在桌面四档视口上同样折成两行（g55 [I] 实测），与 id 同档 */
  html[lang="id"].is-standalone .pp-hero ~ .yqw.tool-shell,
  html[lang="es"].is-standalone .pp-hero ~ .yqw.tool-shell,
  html[lang="fr"].is-standalone .pp-hero ~ .yqw.tool-shell,
  html[lang="ru"].is-standalone .pp-hero ~ .yqw.tool-shell { --pp-ws-promise-lines: 2; }
  /* ⚠️ 防破框：锁高 = 视口剩余高度，Hero 变松以后矮视口装不下空态的最小内容，
     首版就是 dropzone 从白卡底部穿出去。这里给外壳一个**不小于内容**的下限：
     视口够高时锁高本来就更大、这条不起作用（三态仍等高）；
     视口矮时卡片整体向下延伸、页面自然滚动，而不是内容穿框。 */
  html.is-standalone .pp-hero ~ .tool-shell .yqw-surface {
    min-height: calc(var(--yqw-dropzone-min) + var(--pp-ws-chrome));
  }
}

@media (max-width: 640px) {
  html.is-standalone .pp-hero ~ .tool-shell { padding-top: 22px; }
}
