/*
 * 脚本モードの表示段階。既存の編集領域gridのareaだけを切り替え、本文の入力面・
 * scrollport・textareaの寸法は writing_text_surface.css / writing_editor.css の契約を使う。
 */

/* シーンの一覧・並べ替え・別原稿への移動（共通Popoverで開閉する浮動面）。 */
.nm-writing-script-scene-panel {
  position: fixed;
  z-index: 10010;
  width: min(320px, calc(100vw - 16px));
  max-height: min(420px, calc(100vh - 16px));
  overflow-y: auto;
  padding: 6px;
  display: grid;
  gap: 2px;
  border: 1px solid var(--nm-writing-border, #e2e8f0);
  border-radius: 10px;
  background: var(--nm-writing-surface, #fff);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
}
.nm-writing-script-scene-panel.hidden { display: none; }
.nm-writing-script-scene-heading { padding: 4px 6px; font-size: 12px; color: var(--nm-writing-muted, #64748b); }
.nm-writing-script-scene-row { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.nm-writing-script-scene-title {
  min-width: 0;
  flex: 1;
  min-height: 34px;
  padding: 4px 8px;
  overflow: hidden;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.nm-writing-script-scene-action {
  min-width: 34px;
  min-height: 34px;
  padding: 2px 8px;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
}
.nm-writing-script-scene-target { text-align: left; }
.nm-writing-script-scene-title:hover,
.nm-writing-script-scene-action:not(:disabled):hover { background: #eff6ff; }
.nm-writing-script-scene-action:disabled { opacity: .4; cursor: not-allowed; }
.nm-writing-script-scene-title:focus-visible,
.nm-writing-script-scene-action:focus-visible {
  outline: 2px solid var(--nm-focus-ring, #2563eb);
  outline-offset: 2px;
}
@media (pointer: coarse) {
  .nm-writing-script-scene-title,
  .nm-writing-script-scene-action { min-height: 44px; }
}
html.dark .nm-writing-script-scene-panel { box-shadow: 0 10px 24px rgba(0, 0, 0, .45); }
html.dark .nm-writing-script-scene-title:hover,
html.dark .nm-writing-script-scene-action:not(:disabled):hover { background: #1e293b; }

/* 4段階: body / script / script-left（左に脚本）/ script-right（右に脚本）。
   ツールバーは本文と同じ行に画面幅で1本だけ置き、分割表示ではいま書いている側（data-script-surface）のものを出す。 */
.nm-writing-editor-shell > .nm-writing-script-toolbar-region { grid-area: toolbar; }
.nm-writing-editor-shell:not([data-script-layout='script']):not([data-script-layout='script-left']):not([data-script-layout='script-right']) > .nm-writing-script-toolbar-region,
.nm-writing-editor-shell[data-script-surface='body'] > .nm-writing-script-toolbar-region,
.nm-writing-editor-shell[data-script-layout='script-left'][data-script-surface='script'] > .nm-writing-toolbar-region:not(.nm-writing-script-toolbar-region),
.nm-writing-editor-shell[data-script-layout='script-right'][data-script-surface='script'] > .nm-writing-toolbar-region:not(.nm-writing-script-toolbar-region) {
  display: none;
}
.nm-writing-editor-shell[data-script-layout='script'] {
  grid-template-areas:
    'title'
    'toolbar'
    'script'
    'script';
}
.nm-writing-editor-shell[data-script-layout='script'] > .nm-writing-toolbar-region:not(.nm-writing-script-toolbar-region),
.nm-writing-editor-shell[data-script-layout='script'] > .nm-writing-auxiliary-controller-slot,
.nm-writing-editor-shell[data-script-layout='script'] > .nm-writing-textarea-frame {
  display: none;
}
.nm-writing-editor-shell[data-script-layout='script-left'],
.nm-writing-editor-shell[data-script-layout='script-right'] {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.nm-writing-editor-shell[data-script-layout='script-left'] {
  grid-template-areas:
    'title title'
    'toolbar toolbar'
    'script auxiliary'
    'script editor';
}
.nm-writing-editor-shell[data-script-layout='script-right'] {
  grid-template-areas:
    'title title'
    'toolbar toolbar'
    'auxiliary script'
    'editor script';
}

.nm-writing-script-pane {
  /* 親の本文面のkeyboard余白を継承せず、この面のviewportが所有する。 */
  --nm-writing-textarea-occlusion-reserve: 0px;
  grid-area: script;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto auto;
  background: var(--nm-writing-surface);
}
.nm-writing-script-pane.hidden { display: none !important; }
.nm-writing-editor-shell[data-script-layout='script-left'] .nm-writing-script-pane {
  border-right: 1px solid var(--nm-writing-border);
}
.nm-writing-editor-shell[data-script-layout='script-right'] .nm-writing-script-pane {
  border-left: 1px solid var(--nm-writing-border);
}
/* 通常は本文のツールバーの隣へ移す。移せなかったときだけ脚本面の内側で使う（親gridの named area を持ち込まない）。 */
.nm-writing-script-pane > .nm-writing-script-toolbar-region { grid-area: auto; }
.nm-writing-script-toolbar-slot { min-width: 0; }
.nm-writing-script-textarea-frame {
  min-width: 0;
  min-height: 0;
  position: relative;
  overflow: hidden;
}
.nm-writing-script-pane[data-script-state='loading'] .nm-writing-script-textarea-frame,
.nm-writing-script-pane[data-script-state='error'] .nm-writing-script-textarea-frame {
  visibility: hidden;
}
.nm-writing-script-pane[data-script-state='loading']::after {
  content: '脚本を読み込んでいます…';
  grid-row: 4;
  grid-column: 1;
  place-self: center;
  color: var(--nm-writing-muted);
  font-size: 13px;
}
.nm-writing-script-notice {
  padding: 6px 12px;
  border-top: 1px solid var(--nm-writing-border);
  color: var(--nm-writing-muted);
  font-size: 13px;
}
.nm-writing-script-notice[data-notice-type='error'] { color: #b91c1c; }
.nm-writing-script-notice.hidden { display: none; }
.nm-writing-script-element-tool { font-size: 13px; }
.nm-script-dialogue-divider {
  flex: 0 0 1px;
  align-self: center;
  height: 20px;
  margin-inline: 6px;
  background: var(--nm-writing-border);
}
.nm-script-dialogue-body { gap: 12px; }
.nm-script-dialogue-body .nm-script-dialogue-scenes {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}
.nm-script-dialogue-scenes > legend {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 0 0 6px;
}
.nm-script-dialogue-scenes > div {
  border-top: 1px solid var(--nm-writing-border);
  border-bottom: 1px solid var(--nm-writing-border);
}
.nm-writing-dialog-body .nm-script-dialogue-choice {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding-block: 6px;
}
.nm-script-dialogue-choice > .nm-choice__control { margin: 0; }
.nm-script-dialogue-choice > .nm-choice__label {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.nm-script-dialogue-count {
  flex-shrink: 0;
  color: var(--nm-writing-muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.nm-script-dialogue-preview-section > summary {
  padding-block: 6px;
  color: var(--nm-writing-muted);
  font-size: 13px;
  cursor: pointer;
}
.nm-script-dialogue-preview-section > summary:focus-visible {
  outline: 2px solid var(--nm-focus-ring);
  outline-offset: 2px;
}
.nm-script-dialogue-preview {
  margin: 8px 0 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
}
@media (pointer: coarse) {
  .nm-writing-dialog-body .nm-script-dialogue-choice { min-height: 44px; }
}
.nm-writing-script-node-open[hidden] { display: none; }
.nm-writing-script-node-open {
  max-width: 16em;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--nm-writing-primary);
}
.nm-writing-script-map-fallback {
  padding: 0 12px 8px;
}
.nm-writing-script-map-fallback.hidden { display: none; }

/* 同名ノードの移動先。表示位置は呼出側が固定配置で指定する。 */
.nm-writing-script-node-menu { position: fixed; z-index: 10010; max-width: 240px; }
.nm-writing-script-layout-menu [role='menuitem'] {
  min-height: 36px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.nm-writing-script-layout-menu [role='menuitem']:hover { background: #eff6ff; }
.nm-writing-script-node-type { color: var(--nm-writing-muted); font-size: 12px; }

/* 本文が縦書きでも、脚本の横書き設定を独立して保つ（祖先hostの縦書き規則を打ち消す）。 */
.nm-writing-script-pane.nm-writing-text-surface-host:not(.nm-writing-text-surface--vertical) .nm-writing-text-surface-input {
  writing-mode: horizontal-tb;
  overflow-x: hidden;
  overflow-y: auto;
  line-height: 1.75;
}

/* 切替アイコンとメニュー */
.nm-writing-script-layout-wrap { position: relative; }
.nm-writing-script-layout-toggle {
  min-width: 36px;
  height: 36px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 0;
  border-radius: 8px;
  color: var(--nm-writing-muted);
  background: transparent;
  cursor: pointer;
}
.nm-writing-script-layout-toggle:not(:disabled):hover { color: var(--nm-writing-primary); background: #eff6ff; }
.nm-writing-script-layout-toggle:focus-visible {
  outline: 2px solid var(--nm-focus-ring, #2563eb);
  outline-offset: 2px;
}
/* 一覧の項目は余白が4pxしかないので、焦点の枠は内側に描く（外側だと一覧の縁に重なる）。 */
.nm-writing-script-layout-menu [role='menuitemradio']:focus-visible,
.nm-writing-script-layout-menu [role='menuitem']:focus-visible {
  outline: 2px solid var(--nm-focus-ring, #2563eb);
  outline-offset: -2px;
}
.nm-writing-script-layout-toggle:disabled { opacity: .45; cursor: not-allowed; }
/* FREE: PROの札は横に並べず、アイコン右上の小さな印にする（丸い札が別のボタンに見えないように）。 */
.nm-writing-script-layout-toggle.nm-pro-locked-control { position: relative; }
.nm-writing-script-layout-toggle > .nm-plan-badge {
  position: absolute;
  top: 3px;
  right: -2px;
  min-height: 0;
  padding: 0 3px;
  border: 0;
  border-radius: 3px;
  font-size: 8px;
  line-height: 12px;
  letter-spacing: 0;
}
.nm-writing-script-layout-icon {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.nm-writing-script-layout-glyph { width: 18px; height: 18px; display: block; }
.nm-writing-script-layout-divider {
  width: 1px;
  height: 14px;
  background: currentColor;
  opacity: .5;
}
.nm-writing-script-layout-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 40;
  min-width: 220px;
  padding: 4px;
  display: grid;
  gap: 2px;
  border: 1px solid var(--nm-writing-border);
  border-radius: 10px;
  background: var(--nm-writing-surface);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
}
.nm-writing-script-layout-menu.hidden { display: none; }
.nm-writing-script-layout-menu [role='menuitemradio'] {
  min-height: 36px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}
.nm-writing-script-layout-menu [role='menuitemradio'][hidden] { display: none; }
.nm-writing-script-layout-menu [role='menuitemradio']:hover { background: #eff6ff; }
.nm-writing-script-layout-menu [role='menuitemradio'][aria-checked='true'] {
  color: var(--nm-writing-primary);
  background: #eff6ff;
  font-weight: 600;
}
.nm-writing-script-layout-menu .nm-writing-script-layout-icon { min-width: 46px; }

@media (pointer: coarse) {
  .nm-writing-script-layout-toggle { min-width: 44px; height: 44px; }
  .nm-writing-script-layout-menu [role='menuitemradio'],
  .nm-writing-script-layout-menu [role='menuitem'] { min-height: 44px; }
}

html.dark .nm-writing-script-layout-toggle:not(:disabled):hover,
html.dark .nm-writing-script-layout-menu [role='menuitemradio']:hover,
html.dark .nm-writing-script-layout-menu [role='menuitem']:hover,
html.dark .nm-writing-script-layout-menu [role='menuitemradio'][aria-checked='true'] {
  background: #1e293b;
}
html.dark .nm-writing-script-layout-menu { box-shadow: 0 10px 24px rgba(0, 0, 0, .45); }
html.dark .nm-writing-script-notice[data-notice-type='error'] { color: #fca5a5; }

/* 端末内の脚本下書き。入力を妨げない一行の通知として置く。 */
.nm-writing-script-draft {
  padding: 6px 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--nm-writing-border);
  color: var(--nm-writing-muted);
  font-size: 13px;
}
.nm-writing-script-draft.hidden { display: none; }

/* 原稿一覧の「脚本あり」の目印。本文の文字数より目立たない補助表示にする。 */
.nm-writing-script-status-badge {
  justify-self: start;
  width: max-content;
  margin-left: 6px;
  padding: 0 6px;
  border: 1px solid var(--nm-writing-border);
  border-radius: 999px;
  color: var(--nm-writing-muted);
  font-size: 11px;
  line-height: 18px;
  white-space: nowrap;
}

/* 原稿一覧: 開いている脚本のシーン（柱）。原稿の行の下に字下げして並べる。 */
.nm-writing-script-scene-outline { display: grid; padding: 2px 0 6px 44px; }
.nm-writing-script-scene-item {
  min-height: 36px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border-radius: 6px;
}
.nm-writing-script-scene-item:hover { background: #f1f5f9; }
.nm-writing-script-scene-jump {
  min-width: 0;
  min-height: 34px;
  padding: 4px 6px;
  overflow: hidden;
  border: 0;
  border-left: 2px solid var(--nm-writing-border);
  border-radius: 0;
  color: var(--nm-writing-text, inherit);
  background: transparent;
  font-size: 13px;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.nm-writing-script-scene-jump:focus-visible { outline: 2px solid var(--nm-focus-ring, #2563eb); outline-offset: -2px; }
.nm-writing-script-scene-item .nm-writing-row-action { min-height: 30px; }
html.dark .nm-writing-script-scene-item:hover { background: #1e293b; }
@media (pointer: coarse) {
  .nm-writing-script-scene-item, .nm-writing-script-scene-jump { min-height: 44px; }
}

/* 脚本面の検索・読み上げ。本文側と同じ部品を脚本のツール行の直下に置く。 */
.nm-writing-script-pane > .nm-writing-script-auxiliary-slot { grid-area: auto; }
/* 非表示の要素があっても入力面が伸びる行に入るよう、各行を明示する。 */
.nm-writing-script-pane > .nm-writing-script-toolbar-region { grid-row: 1; }
.nm-writing-script-pane > .nm-writing-script-auxiliary-slot { grid-row: 2; }
.nm-writing-script-pane > .nm-writing-script-draft { grid-row: 3; }
.nm-writing-script-pane > .nm-writing-script-textarea-frame { grid-row: 4; }
.nm-writing-script-pane > .nm-writing-script-notice { grid-row: 5; }
.nm-writing-script-pane > .nm-writing-script-map-fallback { grid-row: 6; }


/* ---- 脚本の原稿（ProseMirror の編集部品）。書体・文字サイズ・色は本文の入力欄と揃える ---- */
.nm-writing-script-textarea-frame > .nm-script-prose-mount { position: absolute; inset: 0; }
.nm-script-prose {
  --nm-script-band: 3.2em;
  --nm-script-pad: 16px;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: var(--nm-script-pad) clamp(14px, 3vw, 28px);
  padding-bottom: calc(var(--nm-script-pad) + var(--nm-writing-textarea-occlusion-reserve, 0px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  overflow-anchor: none;
  -webkit-overflow-scrolling: touch;
  outline: none;
  color: #1e293b;
  background: #fff;
  font-family: var(--nm-writing-font-family);
  font-size: var(--nm-writing-font-size);
  line-height: 1.75;
  white-space: pre-wrap;
  white-space: break-spaces;
  word-wrap: break-word;
  font-variant-ligatures: none;
  font-feature-settings: 'liga' 0;
  caret-color: #2563eb;
  counter-reset: nm-script-scene;
  /* 罫線はスクロール方向に一様。本文と一緒に背景を再描画するlocal指定は不要。 */
  background-attachment: scroll;
  /* 上段と本文を分ける横罫（横書きでは縦罫）。背景として引き、文字には重ねない。 */
  background-image: linear-gradient(to right,
    transparent calc(var(--nm-script-band) - .45em),
    #cbd5e1 calc(var(--nm-script-band) - .45em),
    #cbd5e1 calc(var(--nm-script-band) - .45em + 1px),
    transparent calc(var(--nm-script-band) - .45em + 1px));
  background-origin: content-box;
  background-repeat: no-repeat;
}
.nm-script-prose:focus-visible { box-shadow: inset 3px 0 0 rgba(37, 99, 235, .7); }
.nm-script-prose ::selection { color: #1e3a8a; background: #bfdbfe; }
.nm-script-prose.ProseMirror-hideselection *::selection { background: transparent; }
.nm-script-prose[contenteditable='false']:not(.nm-writing-input-preflight-armed) { color: #475569; background-color: #f8fafc; }
.is-vertical > .nm-script-prose-mount > .nm-script-prose {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  overflow-x: auto;
  overflow-y: hidden;
  padding: clamp(14px, 3vw, 28px) var(--nm-script-pad);
  background-image: linear-gradient(to bottom,
    transparent calc(var(--nm-script-band) - .45em),
    #cbd5e1 calc(var(--nm-script-band) - .45em),
    #cbd5e1 calc(var(--nm-script-band) - .45em + 1px),
    transparent calc(var(--nm-script-band) - .45em + 1px));
}
.nm-script-el { position: relative; margin: 0; padding-inline-start: var(--nm-script-band); }
.nm-script-el--scene_heading { counter-increment: nm-script-scene; font-weight: 600; margin-block-start: .9em; }
.nm-script-el--scene_heading:first-child { margin-block-start: 0; }
/* シーン番号は上段の余白に置く（柱を並べ替えると番号も振り直される）。 */
.nm-script-el--scene_heading::before {
  content: counter(nm-script-scene);
  position: absolute;
  writing-mode: horizontal-tb;
  box-sizing: border-box;
  min-width: 1.9em;
  height: 1.9em;
  padding: 0 .25em;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nm-writing-muted);
  color: var(--nm-writing-muted);
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  left: .35em;
  top: 50%;
  transform: translateY(-50%);
}
.is-vertical .nm-script-el--scene_heading::before { left: auto; top: .4em; right: 50%; transform: translateX(50%); }
.nm-script-el--action { padding-inline-start: calc(var(--nm-script-band) + 3em); }
.nm-script-el--action.is-self-indented { padding-inline-start: var(--nm-script-band); }
.nm-script-el--dialogue { padding-inline-start: calc(var(--nm-script-band) + 1em); text-indent: -1em; }
.nm-script-el--character,
.nm-script-speaker { color: var(--nm-writing-primary); }
.nm-script-el--parenthetical { padding-inline-start: calc(var(--nm-script-band) + 2em); color: var(--nm-writing-muted); }
.nm-script-el--transition { padding-inline-start: calc(var(--nm-script-band) + 8em); }
.nm-script-el.is-current:not(.nm-script-el--note) { background: rgba(37, 99, 235, .05); }
.nm-script-el.is-empty { min-block-size: calc(1lh + 44px); }
/* 行種別の補助ボタンをcontenteditableの兄弟に置く。本文のIME/selection/DOM監視の対象に含めない。 */
.nm-script-kind-hint-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.nm-script-kind-hint[hidden] { display: none; }
.nm-script-kind-hint {
  position: absolute;
  inset: auto;
  pointer-events: auto;
  white-space: nowrap;
  min-block-size: 44px;
  min-inline-size: 44px;
  padding: 4px 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--nm-writing-muted);
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: inherit;
  line-height: 1.3;
  text-indent: 0;
  cursor: pointer;
}
.nm-script-kind-hint:hover,
.nm-script-kind-hint[aria-expanded='true'] { color: var(--nm-writing-primary); }
.nm-script-kind-hint:focus-visible { outline: 2px solid var(--nm-focus-ring, #2563eb); outline-offset: -2px; }
.nm-script-kind-hint:disabled { cursor: default; opacity: .55; }
.nm-script-kind-label { font-size: .8em; }
html.dark .nm-script-prose {
  color: #e2e8f0;
  background-color: #0f172a;
  background-image: linear-gradient(to right,
    transparent calc(var(--nm-script-band) - .45em),
    #334155 calc(var(--nm-script-band) - .45em),
    #334155 calc(var(--nm-script-band) - .45em + 1px),
    transparent calc(var(--nm-script-band) - .45em + 1px));
}
html.dark .is-vertical > .nm-script-prose-mount > .nm-script-prose {
  background-image: linear-gradient(to bottom,
    transparent calc(var(--nm-script-band) - .45em),
    #334155 calc(var(--nm-script-band) - .45em),
    #334155 calc(var(--nm-script-band) - .45em + 1px),
    transparent calc(var(--nm-script-band) - .45em + 1px));
}
html.dark .nm-script-prose ::selection { color: #dbeafe; background: #1e3a8a; }
html.dark .nm-script-el.is-current:not(.nm-script-el--note) { background: rgba(96, 165, 250, .08); }

/* 種類の切り替え（⇄）と次へ（↵） */
.nm-writing-script-kind-button {
  color: var(--nm-writing-primary);
  font-weight: 600;
  --nm-toolbar-hover: transparent;
  --nm-toolbar-active: transparent;
  --nm-toolbar-accent-bg: transparent;
  --nm-toolbar-accent-hover: transparent;
}
/* 種類の名前が変わってもボタンの幅（ツールバーの並び）を動かさない。いちばん長い「ト書き」「セリフ」の3文字分。 */
.nm-writing-script-kind-button [data-script-kind-label] { display: inline-block; width: 3em; text-align: start; }
.nm-writing-script-tool-icon { margin-inline-end: 4px; font-size: 1.05em; line-height: 1; }
[data-script-next] .nm-writing-script-tool-icon { margin-inline-end: 0; }
.nm-writing-script-kind-menu {
  position: fixed;
  right: auto;
  z-index: 10010;
  min-width: 0;
  padding: 0;
  border-radius: 8px;
}
.nm-writing-script-kind-options { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); padding: 4px; }
/* 入力行に追従する面は移動アニメーションを重ねず、共通のフェードだけを使う。 */
.nm-writing-script-kind-menu.nm-motion-popover,
.nm-writing-script-kind-menu.nm-motion-popover.nm-motion-closing { transform: none; }
.nm-writing-script-layout-menu [role='menuitemradio'] {
  min-height: 36px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.nm-writing-script-layout-menu [role='menuitemradio']:hover { background: #eff6ff; }
.nm-writing-script-layout-menu [role='menuitemradio'][aria-checked='true'] { color: var(--nm-writing-primary); font-weight: 600; }
html.dark .nm-writing-script-layout-menu [role='menuitemradio']:hover { background: #1e293b; }
/* 種類は小さな文字の選択肢として示す。選択・押下でもタイル状の背景を付けない。 */
.nm-writing-script-layout-menu.nm-writing-script-kind-menu [role='menuitemradio'],
html.dark .nm-writing-script-layout-menu.nm-writing-script-kind-menu [role='menuitemradio'] {
  justify-content: center;
  padding: 6px 2px;
  font-size: 14px;
  background: transparent;
}
.nm-script-kind-hint,
.nm-writing-script-kind-button,
.nm-writing-script-kind-menu [role='menuitemradio'] { -webkit-tap-highlight-color: transparent; }
@media (pointer: coarse) {
  .nm-writing-script-kind-button,
  [data-script-next] { min-height: 44px; }
  .nm-writing-script-layout-menu [role='menuitemradio'] { min-height: 44px; }
}

/* ノードリンク（Ctrl/⌘＋クリックでマップのノードへ飛べる語）。横書きは下線、縦書きは右側の線。 */
.nm-script-link {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
  text-underline-offset: .22em;
  text-underline-position: under;
}
/* 縦書きの下線（text-underline-position: right）は描かないブラウザがあるため、右側の罫線で引く（行の配置は変えない）。 */
.is-vertical .nm-script-link {
  text-decoration-line: none;
  border-right: 1px solid currentColor;
  padding-right: .12em;
}
/* メモも同じ編集面・書字方向を使い、本文と区別できる目印を付ける。 */
.nm-script-el--note {
  border: 1px solid var(--nm-writing-border, #9ca3af);
  background: color-mix(in srgb, var(--nm-writing-surface, #fff) 94%, #64748b);
  padding-block: .3em;
  padding-inline-start: calc(var(--nm-script-band) + 2.5em);
}
.nm-script-el--note:not(.is-empty)::before {
  content: 'メモ';
  position: absolute;
  inset-inline-start: var(--nm-script-band);
  font-size: .7em;
  color: var(--nm-writing-muted);
  margin-inline-end: .7em;
}

/* 連続メモは保存要素を結合せず、論理方向の内側の枠と余白だけを除く。 */
.nm-script-el--note:has(+ .nm-script-el--note) {
  border-block-end: 0;
  padding-block-end: 0;
}
.nm-script-el--note + .nm-script-el--note {
  border-block-start: 0;
  padding-block-start: 0;
}
.nm-script-el--note + .nm-script-el--note::before { content: none; }
/* 継続メモには種類ヒントを出さないため、その操作領域44pxも確保しない。 */
.nm-script-el--note + .nm-script-el--note.is-empty { min-block-size: 1lh; }
