/* 首页工作台：正式版必需、原型 home.css 没有对应物的最小补充。每条写明原型为什么没有；不放视觉参数、不覆盖任何原型选择器。
   视觉一律来自 src/styles/sunlit/home.css（原型逐字拷贝），这里只补「正式版多出来的控件」的骨架。 */

/* 1. 全表面抓取按钮。原型在编辑态给整块 .tile 挂 pointerdown 并把 .tile 设成可聚焦（home.js `grid.addEventListener('pointerdown')`／`t.tabIndex = 0`）；
      正式版要给辅助技术和端到端一枚有名字的控件（「选择 X」），所以在 .tile-edit 里铺一枚透明按钮承担同一职责：pointerdown 拾起、方向键移动、
      Shift＋方向键改尺寸、Delete 移出。它没有任何像素；把手 .t-remove／.t-resize 在 DOM 里排在它后面，因此仍压在它上层。 */
.t-grab {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: transparent;
  font: inherit;
  pointer-events: auto;
  cursor: grab;
}
.tile.is-lift .t-grab {
  cursor: grabbing;
}
.t-grab:focus-visible {
  outline: 2px solid var(--b-focus);
  outline-offset: 3px;
}

/* 2. 选中模块的等价控件条（前移／后移／宽度／高度／内容设置）。原型只有拖动与把手，没有「内容设置」这种业务概念；
      正式版键盘用户与端到端要靠这些控件改同一份布局。壳复用原型 .wb-tray（同一块托盘材质），这里只排里面的标签与下拉。 */
.wb-selection-controls {
  justify-content: flex-start;
}
.wb-selection-controls label {
  display: inline-flex;
  align-items: center;
  gap: var(--b-sp-2);
  font-size: var(--b-fs-13);
  color: var(--b-text-2);
}
.wb-selection-controls select.field {
  width: auto;
  height: var(--b-control-h-sm);
  padding: 0 var(--b-sp-3);
}

/* 3. 保存失败／重载失败的可恢复提示。原型 anchor-extension.css 的 .anchor-status 只是一段文字（设计稿没有真实写入）；
      正式版要在同一条里放重试按钮，所以补一行 flex 排版与和网格的间距。 */
.wb-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--b-sp-3);
  margin-bottom: var(--b-sp-4);
}
.wb-notice p {
  margin: 0;
}

/* 4. 原型把整块正文作为链接；正式版有弹层入口与嵌套业务控件，因此用同一枚原生入口铺满正文。
      入口脱离头部流，不增加原型17px头高；名字保留给辅助技术，焦点框使用已有焦点令牌。
      列表链接和重试独立在上层，编辑态／缩略预览的既有 inert 同时涵盖入口和内容。 */
.wb-tile-entry {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.wb-tile-entry:disabled {
  cursor: default;
}
.wb-tile-entry:focus-visible {
  outline: 2px solid var(--b-focus);
  outline-offset: calc(-1 * var(--b-sp-1));
}
.wb-tile-details,
.wb-tile-control,
.wb-real-task,
.wb-inspiration-item,
.wb-certificate,
.wb-action-row .t-go {
  position: relative;
  z-index: 2;
}
/* 详情正文透传到整卡入口，独立业务控件仍接收指针；避免高模块的正文挡住整卡点击。 */
.wb-tile-details {
  pointer-events: none;
}
.wb-tile-details :is(a[href], button, input, select, textarea) {
  pointer-events: auto;
}
/* 推荐封面加载失败后的紧凑重试使用原型 icon-btn 材质，只补内容图上的定位与命中层级。 */
.wb-cover-retry {
  position: absolute;
  top: var(--b-sp-2);
  right: var(--b-sp-2);
  z-index: 2;
}
