/* 蓝色虚线框 = 此处可点击跳转
 * 约定(2026-05-13 简化):挂 = 此处可点击(不区分实现/占位/开发中)
 *
 * 外壳层(index.html / workbench-*.html)直接给可点击元素加 .proto-marked
 * iframe 内 design-refs SPA 由 shared/proto-marker-inject.js 单源 selector 注入
 *
 * 之前的"占位不挂"规则已废止 — 占位子页有可点击入口也挂,统一语义
 */

.proto-marked {
  outline: 1px dashed var(--proto-mark) !important;
  outline-offset: 3px;
  border-radius: var(--r-md);
  position: relative;
}

.proto-marked.proto-marked--inline {
  outline-width: 1px;
  outline-offset: 2px;
}

/* 跨模块入口卡片角标 */
.proto-marked[data-cross-module]::after {
  content: '↗ 跨模块';
  position: absolute;
  top: -10px;
  right: 12px;
  background: var(--proto-mark);
  color: #fff;
  font: 500 10px/1 var(--font-mono);
  padding: 3px 7px;
  border-radius: var(--r-pill);
  letter-spacing: .04em;
  pointer-events: none;
}

/* 占位水印 */
.proto-placeholder {
  position: relative;
  background:
    repeating-linear-gradient(135deg, transparent 0 11px, rgba(154,160,155,0.12) 11px 12px),
    var(--panel);
  border: 1px dashed var(--line);
  border-radius: var(--r-md);
  padding: 32px;
  text-align: center;
  color: var(--ink-3);
  font-size: 13px;
  line-height: 1.7;
}
.proto-placeholder::before {
  content: 'PLACEHOLDER';
  display: inline-block;
  font: 500 10px/1 var(--font-mono);
  color: var(--ink-4);
  letter-spacing: .12em;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  margin-bottom: 12px;
}
