    :root {
      --nm-motion-fast: 120ms;
      --nm-motion-standard: 180ms;
      --nm-motion-large: 220ms;
      --nm-motion-exit-fast: 100ms;
      --nm-motion-exit-standard: 140ms;
      --nm-motion-entrance: cubic-bezier(0, 0, 0.38, 0.9);
      --nm-motion-standard-easing: cubic-bezier(0.2, 0, 0.38, 0.9);
      --nm-motion-exit: cubic-bezier(0.2, 0, 1, 0.9);

      /* メインヘッダー高さ */
      --nm-header-height: 60px;

      /* サブヘッダー高さ */
      --nm-subheader-toolbar-row-height-mobile: 42px;
      --nm-subheader-toolbar-row-height-desktop: 40px;
      --nm-subheader-height-mobile: var(--nm-subheader-toolbar-row-height-mobile);
      --nm-subheader-height-desktop: var(--nm-subheader-toolbar-row-height-desktop);
      --nm-subheader-mobile-save-width: 84px;
    }

    :is(
      #node-create-modal, #line-style-modal, #relation-line-style-modal,
      #child-placement-modal, #node-settings-modal, #user-settings-modal, #confirm-modal,
      #alert-modal, #group-name-modal, #tag-delete-modal,
      #callings-conflict-modal, #map-conflict-modal, #logout-modal,
      #node-detail-quick-edit-modal, #tag-modal, #relation-modal
    ) {
      opacity: 1;
      visibility: visible;
      transition: opacity var(--nm-motion-large) var(--nm-motion-entrance), visibility 0s linear 0s;
    }
    :is(
      #node-create-modal, #line-style-modal, #relation-line-style-modal,
      #child-placement-modal, #node-settings-modal, #user-settings-modal, #confirm-modal,
      #alert-modal, #group-name-modal, #tag-delete-modal,
      #callings-conflict-modal, #map-conflict-modal, #logout-modal,
      #node-detail-quick-edit-modal, #tag-modal, #relation-modal
    ) > :first-child {
      opacity: 1;
      transform: translateY(0) scale(1);
      transition: opacity var(--nm-motion-large) var(--nm-motion-entrance), transform var(--nm-motion-large) var(--nm-motion-entrance);
    }
    :is(
      #node-create-modal, #line-style-modal, #relation-line-style-modal,
      #child-placement-modal, #node-settings-modal, #user-settings-modal, #confirm-modal,
      #alert-modal, #group-name-modal, #tag-delete-modal,
      #callings-conflict-modal, #map-conflict-modal, #logout-modal,
      #node-detail-quick-edit-modal, #tag-modal, #relation-modal
    ).hidden {
      display: flex !important;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity var(--nm-motion-exit-standard) var(--nm-motion-exit), visibility 0s linear var(--nm-motion-exit-standard);
    }
    :is(
      #node-create-modal, #line-style-modal, #relation-line-style-modal,
      #child-placement-modal, #node-settings-modal, #user-settings-modal, #confirm-modal,
      #alert-modal, #group-name-modal, #tag-delete-modal,
      #callings-conflict-modal, #map-conflict-modal, #logout-modal,
      #node-detail-quick-edit-modal, #tag-modal, #relation-modal
    ).hidden > :first-child {
      opacity: 0;
      transform: translateY(6px) scale(0.98);
      transition: opacity var(--nm-motion-exit-standard) var(--nm-motion-exit), transform var(--nm-motion-exit-standard) var(--nm-motion-exit);
    }

    #memo-settings-modal {
      display: block !important;
      opacity: 1;
      visibility: visible;
      transition: opacity var(--nm-motion-standard) var(--nm-motion-entrance), visibility 0s linear 0s;
    }
    #memo-settings-modal > :first-child {
      opacity: 1;
      transform: translateY(0);
      transition: opacity var(--nm-motion-standard) var(--nm-motion-entrance), transform var(--nm-motion-standard) var(--nm-motion-entrance);
    }
    #memo-settings-modal.hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity var(--nm-motion-exit-fast) var(--nm-motion-exit), visibility 0s linear var(--nm-motion-exit-fast);
    }
    #memo-settings-modal.hidden > :first-child {
      opacity: 0;
      transform: translateY(6px);
    }

    :is(#settings-modal, #node-type-dropdown, #state-dropdown, .nm-select-dropdown) {
      opacity: 1;
      visibility: visible;
      transform: translateY(0) scale(1);
      transform-origin: top right;
      transition: opacity var(--nm-motion-fast) var(--nm-motion-entrance), transform var(--nm-motion-fast) var(--nm-motion-entrance), visibility 0s linear 0s;
    }
    :is(#settings-modal, #node-type-dropdown, #state-dropdown, .nm-select-dropdown).hidden {
      display: block !important;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(-4px) scale(0.98);
      transition: opacity var(--nm-motion-exit-fast) var(--nm-motion-exit), transform var(--nm-motion-exit-fast) var(--nm-motion-exit), visibility 0s linear var(--nm-motion-exit-fast);
    }

    .nm-panel-content {
      opacity: 1;
      transition: opacity var(--nm-motion-fast) var(--nm-motion-entrance);
    }
    .nm-panel-content--enter { opacity: 0; }
    .nm-motion-status-item, #node-search-results, #node-search-empty {
      transition: opacity var(--nm-motion-fast) var(--nm-motion-entrance), visibility 0s linear 0s;
    }

    [data-save-spinner], [data-save-check], [data-save-error] {
      opacity: 1;
      visibility: visible;
      transition: opacity var(--nm-motion-fast) var(--nm-motion-entrance), visibility 0s linear 0s;
    }
    :is([data-save-spinner], [data-save-check], [data-save-error]).hidden {
      display: block !important;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    .nm-collapsible-content {
      overflow: hidden;
      transition: max-height var(--nm-motion-standard) var(--nm-motion-standard-easing), opacity var(--nm-motion-fast) var(--nm-motion-entrance);
    }
    .nm-list-item-motion {
      opacity: 1;
      transform: translateY(0);
      transition: opacity var(--nm-motion-fast) var(--nm-motion-entrance), transform var(--nm-motion-fast) var(--nm-motion-entrance);
    }
    .nm-list-item-motion--enter, .nm-list-item-motion--exit {
      opacity: 0;
      transform: translateY(4px);
    }

    @media (prefers-reduced-motion: reduce) {
      :root {
        --nm-motion-fast: 1ms;
        --nm-motion-standard: 1ms;
        --nm-motion-large: 1ms;
        --nm-motion-exit-fast: 1ms;
        --nm-motion-exit-standard: 1ms;
      }
      :is(
        #node-create-modal, #line-style-modal, #relation-line-style-modal,
        #child-placement-modal, #node-settings-modal, #user-settings-modal, #confirm-modal,
        #alert-modal, #group-name-modal, #tag-delete-modal,
        #callings-conflict-modal, #map-conflict-modal, #logout-modal,
        #node-detail-quick-edit-modal, #tag-modal, #relation-modal
      ) > :first-child,
      :is(#settings-modal, #node-type-dropdown, #state-dropdown, .nm-select-dropdown),
      .nm-sortable-row--dragging { transform: none !important; }
      .node, #group-panel, #right-panel, #node-search-modal-content { transition-duration: 1ms !important; }
      .nm-editor-toolbar-button { transition-duration: 1ms !important; }
      .nm-editor-group-toggle, .nm-editor-group-action, .nm-group-row { transition-duration: 1ms !important; }
      .nm-editor-right-panel, .nm-editor-right-panel-close { transition-duration: 1ms !important; }
    }

    /* ===== Header layout (variable driven) ===== */

    .nm-editor-subheader {
      background: #f8fafc;
      border-color: #d1d5db;
      box-shadow: none;
    }
    .nm-editor-toolbar-group {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding-right: 8px;
      border-right: 1px solid #d1d5db;
    }
    .nm-editor-toolbar-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      min-width: 36px;
      height: 36px;
      padding: 0;
      border: 1px solid #cbd5e1;
      border-radius: 6px;
      background: #ffffff;
      color: #334155;
      box-shadow: none;
      transition:
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        border-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        opacity var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-editor-toolbar-button--wide {
      width: 88px;
      min-width: 88px;
      padding-inline: 8px;
    }
    .nm-editor-toolbar-button--utility,
    .nm-editor-toolbar-button--mode:not([aria-pressed="true"]):not([aria-expanded="true"]) {
      border-color: transparent;
      background: transparent;
    }
    .nm-editor-toolbar-button:hover:not(:disabled):not([aria-disabled="true"]):not([aria-pressed="true"]) {
      border-color: #94a3b8;
      background: #f1f5f9;
    }
    .nm-editor-toolbar-button--utility:hover:not(:disabled):not([aria-disabled="true"]),
    .nm-editor-toolbar-button--mode:hover:not(:disabled):not([aria-disabled="true"]):not([aria-pressed="true"]):not([aria-expanded="true"]) {
      border-color: transparent;
      background: #e2e8f0;
    }
    .nm-editor-toolbar-button--primary:not(:disabled):not([aria-disabled="true"]) {
      border-color: #2563eb;
      background: #2563eb;
      color: #ffffff;
    }
    .nm-editor-toolbar-button--primary:hover:not(:disabled):not([aria-disabled="true"]) {
      border-color: #1d4ed8;
      background: #1d4ed8;
    }
    .nm-editor-toolbar-button--primary img {
      filter: invert(1) brightness(1.15);
    }
    .nm-editor-toolbar-button--plan-gated {
      border-color: #cbd5e1;
      background: #e2e8f0;
      color: #64748b;
    }
    .nm-editor-toolbar-button--mode[aria-pressed="true"] {
      border-color: transparent;
      background: #2563eb;
      color: #ffffff;
    }
    .nm-editor-toolbar-button--mode[aria-expanded="true"] {
      border-color: transparent;
      background: #dbeafe;
      color: #1d4ed8;
    }
    .nm-editor-toolbar-button--mode[aria-pressed="true"]:hover {
      border-color: transparent;
      background: #1d4ed8;
    }
    .nm-editor-toolbar-button:focus-visible {
      outline: 2px solid #2563eb;
      outline-offset: 2px;
    }
    .nm-editor-toolbar-button:disabled,
    .nm-editor-toolbar-button[aria-disabled="true"] {
      cursor: not-allowed !important;
      opacity: 0.48 !important;
      box-shadow: none;
    }
    .nm-subheader-mobile-save-status,
    #save-status {
      border: 1px solid #dbe2ea;
      background: rgba(255, 255, 255, 0.94);
      box-shadow: none;
    }
    html.dark .nm-editor-subheader {
      background: #0f172a;
      border-color: #334155;
    }
    html.dark .nm-editor-toolbar-group {
      border-color: #334155;
    }
    html.dark .nm-editor-toolbar-button {
      border-color: #475569;
      background: #111827;
      color: #e5e7eb;
    }
    html.dark .nm-editor-toolbar-button--utility,
    html.dark .nm-editor-toolbar-button--mode:not([aria-pressed="true"]):not([aria-expanded="true"]) {
      border-color: transparent;
      background: transparent;
    }
    html.dark .nm-editor-toolbar-button:hover:not(:disabled):not([aria-disabled="true"]):not([aria-pressed="true"]) {
      border-color: #64748b;
      background: #1f2937;
    }
    html.dark .nm-editor-toolbar-button--utility:hover:not(:disabled):not([aria-disabled="true"]),
    html.dark .nm-editor-toolbar-button--mode:hover:not(:disabled):not([aria-disabled="true"]):not([aria-pressed="true"]):not([aria-expanded="true"]) {
      border-color: transparent;
      background: #1f2937;
    }
    html.dark .nm-editor-toolbar-button--primary:not(:disabled):not([aria-disabled="true"]) {
      border-color: #60a5fa;
      background: #2563eb;
      color: #ffffff;
    }
    html.dark .nm-editor-toolbar-button--mode[aria-pressed="true"] {
      border-color: transparent;
      background: #2563eb;
      color: #ffffff;
    }
    html.dark .nm-editor-toolbar-button--mode[aria-expanded="true"] {
      border-color: transparent;
      background: #1e3a8a;
      color: #dbeafe;
    }
    html.dark .nm-editor-toolbar-button:not(.nm-editor-toolbar-button--mode) img,
    html.dark .nm-editor-toolbar-button--mode[aria-pressed="false"] img,
    html.dark .nm-map-writing-toolbar-button img {
      filter: invert(1) brightness(1.15);
    }
    html.dark .nm-subheader-mobile-save-status,
    html.dark #save-status {
      border-color: #334155;
      background: rgba(17, 24, 39, 0.94);
      color: #cbd5e1;
    }

    #sub-header {
      top: var(--nm-header-height);
      height: var(--nm-subheader-height-mobile);
    }
    #sub-header .nm-subheader-toolbar-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) var(--nm-subheader-mobile-save-width);
      align-items: center;
      gap: 6px;
      width: 100%;
      min-width: 0;
      height: var(--nm-subheader-toolbar-row-height-mobile);
    }
    #sub-header .nm-subheader-toolbar-row-wrap {
      width: 100%;
      min-width: 0;
      margin: 0;
      padding: 0;
      height: var(--nm-subheader-toolbar-row-height-mobile);
    }
    #sub-header .nm-subheader-mobile-save-status {
      width: var(--nm-subheader-mobile-save-width);
      min-width: var(--nm-subheader-mobile-save-width);
      height: 30px;
      white-space: nowrap;
      position: relative;
      z-index: 1;
    }

    #scroll-area,
    #right-panel,
    #group-panel {
      top: calc(
        var(--nm-header-height) +
        var(--nm-subheader-height-mobile)
      );
      height: calc(
        100dvh -
        var(--nm-header-height) -
        var(--nm-subheader-height-mobile) -
        var(--nm-plan-notice-height, 0px)
      );
    }
    #group-panel-toggle {
      top: calc(
        var(--nm-header-height) +
        var(--nm-subheader-height-mobile) +
        12px
      );
    }
    #node-search-container {
      top: calc(
        var(--nm-header-height) +
        var(--nm-subheader-height-mobile) +
        8px
      );
    }
    #search-trigger-icon {
      padding: 0;
      border: 0;
      background: transparent;
    }
    #global-notice-banner {
      top: calc(
        var(--nm-header-height) +
        var(--nm-subheader-height-mobile)
      );
    }

    /* PC（sm以上） */
    @media (min-width: 640px) {
      #sub-header {
        height: var(--nm-subheader-height-desktop);
      }
      #sub-header .nm-subheader-toolbar-layout {
        display: block;
        height: var(--nm-subheader-toolbar-row-height-desktop);
      }
      #sub-header .nm-subheader-toolbar-row-wrap {
        height: var(--nm-subheader-toolbar-row-height-desktop);
        /* 右端に重ねて置く保存状態のぶんを空け、入りきらないときは横スクロールにする */
        width: calc(100% - var(--nm-subheader-desktop-save-reserve, 80px));
        overflow-x: auto;
        overflow-y: hidden;
      }
      #sub-header .nm-subheader-mobile-save-status {
        display: none;
      }

      #scroll-area,
      #right-panel,
      #group-panel {
        top: calc(
          var(--nm-header-height) +
          var(--nm-subheader-height-desktop)
        );
        height: calc(
          100dvh -
          var(--nm-header-height) -
          var(--nm-subheader-height-desktop) -
          var(--nm-plan-notice-height, 0px)
        );
      }
      #group-panel-toggle {
        top: calc(
          var(--nm-header-height) +
          var(--nm-subheader-height-desktop) +
          12px
        );
      }
      #node-search-container {
        top: calc(
          var(--nm-header-height) +
          var(--nm-subheader-height-desktop) +
          8px
        );
      }
      #global-notice-banner {
        top: calc(
          var(--nm-header-height) +
          var(--nm-subheader-height-desktop)
        );
      }
    }

    #group-panel {
      width: min(300px, 86vw);
      right: 0;
      transform: translateX(100%);
      transition: transform var(--nm-motion-standard) var(--nm-motion-standard-easing);
      z-index: 35;
    }
    .nm-editor-group-panel {
      background: #ffffff;
      border-color: #cbd5e1;
      box-shadow: -4px 0 12px rgba(15, 23, 42, 0.1);
    }
    #group-panel.nm-group-panel--open {
      transform: translateX(0);
    }
    #group-panel-toggle {
      right: 0;
      width: 32px;
      min-width: 32px;
      height: 116px;
      border-radius: 10px 0 0 10px;
      border-right: 0;
      z-index: 34;
      transition:
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        border-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        opacity var(--nm-motion-fast) var(--nm-motion-standard-easing),
        visibility var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-editor-group-toggle {
      background: #ffffff;
      border-color: #cbd5e1;
      box-shadow: none;
    }
    .nm-editor-group-toggle:hover {
      border-color: #94a3b8;
      background: #f1f5f9;
    }
    .nm-editor-group-toggle:focus-visible,
    .nm-editor-group-panel-close:focus-visible,
    .nm-editor-group-action:focus-visible,
    .nm-group-row:focus-visible {
      outline: 2px solid #2563eb;
      outline-offset: 2px;
    }
    body.nm-group-panel-open #group-panel-toggle {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    .nm-editor-right-panel {
      background: #ffffff;
      border-color: #cbd5e1;
      color: #334155;
      box-shadow: -4px 0 12px rgba(15, 23, 42, 0.1);
    }
    .nm-editor-right-panel-header {
      min-height: 64px;
      border-color: #e2e8f0;
      background: #ffffff;
    }
    .nm-editor-right-panel-title {
      min-width: 0;
      color: #1e293b;
      line-height: 1.35;
    }
    .nm-editor-right-panel-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      min-width: 40px;
      height: 40px;
      padding: 0;
      border: 1px solid transparent;
      border-radius: 6px;
      background: transparent;
      color: #64748b;
      transition:
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        color var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-editor-right-panel-close:hover {
      background: #f1f5f9;
      color: #334155;
    }
    .nm-editor-right-panel-close:focus-visible {
      outline: 2px solid #2563eb;
      outline-offset: 2px;
    }
    .nm-editor-right-panel-body {
      min-width: 0;
      min-height: 0;
      background: #ffffff;
    }
    html.dark .nm-editor-right-panel {
      border-color: #334155;
      background: #0f172a;
      color: #cbd5e1;
      box-shadow: -4px 0 12px rgba(0, 0, 0, 0.28);
    }
    html.dark .nm-editor-right-panel-header,
    html.dark .nm-editor-right-panel-body {
      border-color: #334155;
      background: #0f172a;
    }
    html.dark .nm-editor-right-panel-title {
      color: #f1f5f9;
    }
    html.dark .nm-editor-right-panel-close {
      color: #cbd5e1;
    }
    html.dark .nm-editor-right-panel-close:hover {
      background: #1f2937;
      color: #ffffff;
    }
    html.dark .nm-editor-right-panel-close img {
      filter: invert(1) brightness(1.15);
    }
    #right-panel {
      transform: translateX(100%);
      visibility: hidden;
      pointer-events: none;
      transition:
        transform var(--nm-motion-standard) var(--nm-motion-standard-easing),
        visibility 0s linear var(--nm-motion-standard);
      z-index: 35;
    }
    #right-panel.nm-right-panel--open {
      transform: translateX(0);
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0s;
    }
    .nm-group-tab-text {
      writing-mode: vertical-rl;
      text-orientation: mixed;
      color: #111827;
      font-size: 13px;
      font-weight: 500;
      line-height: 1.15;
    }
    .nm-editor-group-panel-header {
      min-height: 52px;
      background: #ffffff;
    }
    .nm-editor-group-panel-close {
      border: 1px solid transparent;
      background: transparent;
      transition:
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        color var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-editor-group-panel-close:hover {
      background: #f1f5f9;
      color: #334155;
    }
    .nm-editor-group-toolbar {
      min-height: 48px;
      background: #f8fafc;
    }
    .nm-editor-group-list {
      min-height: 0;
      overscroll-behavior: contain;
      background: #f8fafc;
    }
    .nm-editor-group-action {
      width: 32px;
      min-width: 32px;
      height: 32px;
      padding: 0;
      border-color: #cbd5e1;
      background: #ffffff;
      box-shadow: none;
    }
    .nm-editor-group-action:hover:not(:disabled):not([aria-disabled="true"]) {
      border-color: #94a3b8;
      background: #f1f5f9;
    }
    .nm-editor-group-action--danger:hover:not(:disabled):not([aria-disabled="true"]) {
      border-color: #fca5a5;
      background: #fef2f2;
    }
    .nm-editor-group-action:disabled,
    .nm-editor-group-action[aria-disabled="true"] {
      cursor: not-allowed;
      opacity: 0.45;
    }
    .nm-group-toolbar-btn {
      transition:
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        border-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        opacity var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-group-row {
      min-height: 52px;
      border-radius: 8px;
      border: 1px solid #d1d5db;
      background: #ffffff;
      box-shadow: none;
      transition:
        border-color var(--nm-motion-fast) var(--nm-motion-standard-easing),
        background-color var(--nm-motion-fast) var(--nm-motion-standard-easing);
    }
    .nm-group-row:hover {
      border-color: #94a3b8;
      background: #f8fafc;
    }
    .nm-group-row--active {
      border-color: #2563eb;
      background: #eff6ff;
    }
    .nm-group-drag-handle {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 24px;
      min-height: 32px;
      color: #64748b;
      cursor: grab;
    }
    .nm-group-drag-handle:active { cursor: grabbing; }
    html.dark .nm-editor-group-panel {
      background: #0f172a;
      border-color: #334155;
      box-shadow: -4px 0 12px rgba(0, 0, 0, 0.28);
    }
    html.dark .nm-editor-group-panel-header,
    html.dark .nm-editor-group-toolbar,
    html.dark .nm-editor-group-list {
      background: #0f172a;
      border-color: #334155;
    }
    html.dark .nm-editor-group-action {
      border-color: #475569;
      background: #111827;
    }
    html.dark .nm-editor-group-action:hover:not(:disabled):not([aria-disabled="true"]),
    html.dark .nm-editor-group-panel-close:hover {
      background: #1f2937;
    }
    html.dark #group-panel {
      background: #0f172a;
      border-color: #1f2937;
    }
    html.dark #group-panel .border-gray-200 {
      border-color: #1f2937;
    }
    html.dark #group-panel .bg-gray-50 {
      background: #0b1120;
    }
    html.dark #group-panel .bg-white {
      background: #111827;
    }
    html.dark .nm-group-toolbar-btn {
      border-color: #334155;
      background: #111827;
    }
    html.dark .nm-group-toolbar-btn:hover {
      background: #1f2937;
    }
    html.dark .nm-group-toolbar-btn img,
    html.dark #group-panel-close img {
      filter: invert(1) brightness(1.18);
    }
    html.dark #group-panel-toggle {
      background: #111827;
      border-color: #334155;
    }
    html.dark .nm-group-tab-text {
      color: #e5e7eb;
    }
    html.dark .nm-group-row {
      border-color: #334155;
      background: #111827;
      color: #e5e7eb;
    }
    html.dark .nm-group-row:hover {
      background: #1f2937;
    }
    html.dark .nm-group-row--active {
      border-color: #60a5fa;
      background: #172554;
    }

/* 案内用領域を確保し、キャンバス原点・スクロール・フォーカスは動かさない。 */
.nm-plan-node-notice {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 40;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  border-top: 1px solid #bfdbfe; background: #eff6ff; color: #1e3a8a;
  font-size: 13px;
}
.nm-plan-node-notice[hidden] { display: none; }
.nm-plan-node-notice p { flex: 1 1 220px; margin: 0; }
html.dark .nm-plan-node-notice { background: #172554; color: #dbeafe; border-color: #1e40af; }
#footer-ui { bottom: calc(12px + var(--nm-plan-notice-height, 0px)); }
