/* User Provided Stylesheet */

/*
 * 主题给每个 iframe 嵌入都套了一个固定 padding-bottom:60% 的响应式外框
 * （内联样式，来自 React 组件），跟内容实际需要的高度没关系：
 * 对交互组件，60% 的外框可能撑出一大截空白，也可能截断较高的内容。
 * 这里用 :has() 按 iframe 的 src 反查父级 wrapper，强制覆盖。
 *
 * 各 runner 的高度不写死——对应的 exercises/shared/*-runner
 * 会在同源情况下用 window.frameElement 把自己的高度精确改成内容实际需要的值
 * （见各 runner 里的 reportHeight()）。这里只负责把默认值从"巨大空白"
 * 降到"一个不太离谱的初始高度"，本地 myst start 预览（跨源，JS 改不了
 * 高度）时不至于露出大片空白；同源部署后 JS 会接管，覆盖得更精确。
 *
 * 新增一种练习题 runner 时不用改这个文件——下面这条通配规则会自动覆盖
 * exercises/shared/ 下所有 *-runner。内容明显高于 60px 的组件可以再增加一个
 * 仅供跨源本地预览使用的兜底高度；同源部署后 runner 的精确高度会覆盖它。
 */

div:has(> iframe[src*="exercises/shared/"]) {
  padding-bottom: 0 !important;
}
div:has(> iframe[src*="exercises/shared/"]) > iframe {
  position: static !important;
  /* 必须 !important 才能压过主题内联的 height:100%；
     runner 页面自己算出精确高度后，用 style.setProperty(…, 'important')
     写行内样式来覆盖——同源同优先级时，内联 !important 压得过外部样式表 !important。*/
  height: 60px !important;
}

/* 代码题本地跨源预览的兜底高度；同源部署后由 runner 自适应覆盖 */
div:has(> iframe[src*="exercises/shared/code-runner"]) > iframe {
  height: 480px !important;
}

/* 填空题比判断题/选择题多一行"检查"按钮，60px 兜底会把按钮切掉，给高一点 */
div:has(> iframe[src*="exercises/shared/fill-blank-runner"]) > iframe {
  height: 110px !important;
}
