/* M3 インタラクション層 */
#overlay-stage > [data-overlay-id] {
  touch-action: none;
}

.akari-interaction-selection-frame[data-akari-interaction] {
  position: fixed;
  z-index: 2147483647;
  box-sizing: border-box;
  border: 1px solid rgba(255, 157, 66, 0.98);
  pointer-events: none;
}

.akari-interaction-selection-frame[hidden] {
  display: none;
}

.akari-interaction-selection-frame.is-rotation3d .is-edge,
.akari-interaction-selection-frame.is-rotation3d .is-rotate {
  display: none;
}

.akari-interaction-rotation3d[data-akari-interaction] {
  position: fixed;
  /* 線と選択ハンドルが重なるときはハンドルを優先する。 */
  z-index: 2147483646;
  overflow: visible;
  pointer-events: none;
  touch-action: none;
}
.akari-interaction-rotation3d[hidden] { display: none; }
.akari-interaction-rotation3d-visible { pointer-events: none; filter: drop-shadow(0 1px 2px #111); }
.akari-interaction-rotation3d-hit { pointer-events: stroke; cursor: grab; touch-action: none; }

[data-akari-ui="preview-marquee"] {
  position: fixed;
  pointer-events: none;
  box-sizing: border-box;
  border: 1px solid var(--akari-accent, #4da3ff);
  background: rgba(77, 163, 255, 0.14);
  z-index: 91;
}

[data-akari-interaction-marquee-hit] { outline: 1px solid var(--akari-accent, #4da3ff); }

/* 背景は選択できるが動かせない。拡縮ハンドルを消し、
   枠を破線にして「選べるが移動できない」ことを視覚でも伝える。 */
.akari-interaction-selection-frame.is-locked[data-akari-interaction] {
  border-style: dashed;
  border-color: rgba(200, 200, 200, 0.9);
}

.akari-interaction-selection-frame.is-locked .akari-interaction-handle {
  display: none;
}

.akari-interaction-snap-guide[data-akari-interaction] {
  position: absolute;
  z-index: 2147483646;
  pointer-events: none;
  background: #ff8b2c;
}

.akari-interaction-snap-guide.is-vertical[data-akari-interaction] {
  top: 0;
  bottom: 0;
  width: 1px;
  transform: translateX(-0.5px);
}

.akari-interaction-snap-guide.is-horizontal[data-akari-interaction] {
  right: 0;
  left: 0;
  height: 1px;
  transform: translateY(-0.5px);
}

.akari-interaction-snap-guide[data-akari-interaction][hidden] {
  display: none;
}

.akari-interaction-handle[data-akari-interaction] {
  position: absolute;
  width: 10px;
  height: 10px;
  box-sizing: border-box;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #ff8b2c;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.7);
  /* M3 拡縮ハンドル（ビューワー UI ラウンド §3）: ドラッグ可能にする */
  pointer-events: auto;
  touch-action: none;
}

.akari-interaction-handle.is-nw {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  cursor: nwse-resize;
}

.akari-interaction-handle.is-ne {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
  cursor: nesw-resize;
}

.akari-interaction-handle.is-se {
  right: 0;
  bottom: 0;
  transform: translate(50%, 50%);
  cursor: nwse-resize;
}

.akari-interaction-handle.is-sw {
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
  cursor: nesw-resize;
}

.akari-interaction-handle.is-edge {
  width: 8px;
  height: 8px;
  border: 1px solid #fff;
  border-radius: 1px;
  background: #35b8e7;
}
.akari-interaction-handle.is-n { top: 0; left: 50%; transform: translate(-50%, -50%); cursor: ns-resize; }
.akari-interaction-handle.is-e { top: 50%; right: 0; transform: translate(50%, -50%); cursor: ew-resize; }
.akari-interaction-handle.is-s { bottom: 0; left: 50%; transform: translate(-50%, 50%); cursor: ns-resize; }
.akari-interaction-handle.is-w { top: 50%; left: 0; transform: translate(-50%, -50%); cursor: ew-resize; }
.akari-interaction-selection-frame:not([data-akari-selection-kind="leaf"]) .is-edge { display: none; }
.akari-interaction-selection-frame.is-telop .is-edge { display: none; }
.akari-interaction-selection-frame.is-element-focus.is-telop .is-edge { display: block; }
.akari-interaction-selection-frame.is-line .akari-interaction-handle:not(.is-line-start):not(.is-line-end):not(.akari-interaction-action) { display: none; }
.akari-interaction-selection-frame:not(.is-line) .is-line-start,
.akari-interaction-selection-frame:not(.is-line) .is-line-end { display: none; }
.akari-interaction-selection-frame.is-line .is-line-start,
.akari-interaction-selection-frame.is-line .is-line-end { top: 50%; width: 12px; height: 12px; cursor: crosshair; }
.akari-interaction-selection-frame.is-line .is-line-start { left: calc(var(--akari-line-end-inset, 0px) - 1px); transform: translate(-50%, -50%); }
.akari-interaction-selection-frame.is-line .is-line-end { right: calc(var(--akari-line-end-inset, 0px) - 1px); transform: translate(50%, -50%); }

.akari-interaction-rotate-stem {
  position: absolute;
  left: 50%;
  bottom: 100%;
  height: 22px;
  border-left: 1px solid rgba(255, 157, 66, 0.98);
  pointer-events: none;
}

.akari-interaction-handle.is-rotate {
  top: -22px;
  left: 50%;
  transform: translate(-50%, -50%);
  cursor: grab;
}

.akari-interaction-selection-frame[data-akari-selection-kind="multi"] .akari-interaction-handle,
.akari-interaction-selection-frame[data-akari-selection-kind="multi"] .akari-interaction-rotate-stem,
.akari-interaction-selection-frame.is-locked .akari-interaction-rotate-stem {
  display: none;
}

[data-akari-interaction-editing="true"] {
  outline: 2px solid rgba(77, 190, 255, 0.98) !important;
  outline-offset: 3px;
  cursor: text !important;
  pointer-events: auto !important;
  -webkit-user-select: text !important;
  user-select: text !important;
}
