/* font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic Pro', Meiryo, sans-serif; */

html, body {
  /*font-family: monospace;*/
font-family: 
  'Hiragino Kaku Gothic Pro', 
  'Helvetica Neue', 
  Arial, 
  sans-serif;
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  letter-spacing: 0.01em;
}
*, *::before, *::after {
  box-sizing: inherit;
}

input::placeholder,
textarea::placeholder {
  color: #999 !important;
}

input,
textarea {
  caret-color: currentColor;
  
  -webkit-text-fill-color: currentColor;
  text-decoration-color: currentColor;
}


button,
.usersSelect-label1,
.communityBtn,
.friendActionArea,
.tab,
.menuItem {
  user-select: none;
  -webkit-user-select: none;
}

/* WebKit系（Chrome, Safari） */
::-webkit-scrollbar {
  width: 12px;
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: rgba(170, 170, 170, 0.5);
  border-radius: 4px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

/* Firefox */
* {
  scrollbar-width: auto; /* thin 細い auto　標準 */
  scrollbar-color: rgba(170, 170, 170, 0.5) transparent;  /* thumb / track */
}

/* =========================
   Firefox
========================= */
* {
  scrollbar-width: auto; /* thin 細い auto　標準 */
  scrollbar-color: var(--scroll-thumb) var(--scroll-track);
}

/* =========================
   Chrome / Safari
========================= */
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

*::-webkit-scrollbar-track {
  background: var(--scroll-track);
}

*::-webkit-scrollbar-thumb {
  background-color: var(--scroll-thumb);
  border-radius: 4px;
}

*::-webkit-scrollbar-thumb:hover {
  background-color: var(--scroll-thumb-hover);
}

/*
body.theme-haru {
  --scroll-thumb: rgba(151, 91, 152, 0.5);
  --scroll-thumb-hover: rgba(101, 101, 101, 0.8);
  --scroll-track: transparent;
}

body.theme-natsu {
  --scroll-thumb: rgba(41, 86, 41, 0.5);
  --scroll-thumb-hover: rgba(170, 170, 170, 0.8);
  --scroll-track: transparent;
}

body.theme-aki {
  --scroll-thumb: rgba(226, 135, 135, 0.5);
  --scroll-thumb-hover: rgba(170, 170, 170, 0.8);
  --scroll-track: transparent;
}

body.theme-fuyu {
  --scroll-thumb: rgba(81, 102, 121, 0.5);
  --scroll-thumb-hover: rgba(101, 101, 101, 0.8);
  --scroll-track: transparent;
}
*/
body.theme-aki {
  --scroll-thumb: rgba(170, 170, 170, 0.5);
  --scroll-thumb-hover: rgba(170, 170, 170, 0.8);
  --scroll-track: transparent;
}

body.theme-natsu {
  --scroll-thumb: rgba(170, 170, 170, 0.5);
  --scroll-thumb-hover: rgba(170, 170, 170, 0.8);
  --scroll-track: transparent;
}

body.theme-haru {
  --scroll-thumb: rgba(101, 101, 101, 0.5);
  --scroll-thumb-hover: rgba(101, 101, 101, 0.8);
  --scroll-track: transparent;
}

body.theme-fuyu {
  --scroll-thumb: rgba(101, 101, 101, 0.5);
  --scroll-thumb-hover: rgba(101, 101, 101, 0.8);
  --scroll-track: transparent;
}


/* ==================================================
   全体コンテナ
================================================== */
.container {
  height: calc(100dvh - 0.7rem);
  position: relative;
  display: flex;
  max-width: none;
  width: calc(100dvw - 1rem);
  margin: 0.5rem 0.5rem 0.2rem 0.5rem;
  overflow: hidden;
  box-sizing: border-box;
  border: none;
  transition: opacity 0.3s ease;
  pointer-events: auto;
  opacity: 1;
}

.container.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.container.is-hidden * {
  pointer-events: none;
}


#threeColumnContainer {
  width: 100%;  
  display: flex;
  height: 100%;
}

.edit-Container.threeColumn {
  width: 40%;
  border-right: 0.01px solid #f6d3eb;

}

.L-group.threeColumn {
  width: 30%;
  max-width: 30%;
}

#formTopRight {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 0px;
  height: calc(100% - (90px + 3rem));
  border-top: 0.01px solid #f6d3eb;
}

#formTopRight.threeColumn {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 30%;
  height: calc(100% - (90px + 3rem));
  border-top: 0.01px solid #f6d3eb;
}

.container.hidden {
  display: none !important;
}

.usersSelected-Btns {
  width: 100%;
  background:#323533d8;
  position: relative;
  display: flex;
  min-height: 1.5rem;
  max-height: 1.5rem;
  align-items: center;
  justify-content: flex-end;
  z-index: 100;
  color: #f6d3eb;
}

.usersSelected-Btns.threeColumn {
  width: 30%;
  max-width: 30%;
}

#sizechangeBtnWrapper{
  position: relative;
  display: flex;
  flex: 1;
  height: 100%;
  font-size: 12px;
}

.formToptop-Btns {
  width: 100%;
  background:#323533d8;
  position: relative;
  display: flex;
  top:0;
  left:0;
  min-height: 1.5rem;
  align-items: center;
  justify-content: flex-end;
  z-index: 100;
  color: #f6d3eb;
}

#usersSelectLabelContainer.threeColumn {
  width: 30%;
  max-width: 30%;
}

#usersSelectLabelContainer {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: calc(6.6rem + 1px);
  align-items: center;
  color: #f6d3eb;
}

.usersSelectLabel {
  flex: 1;
  height: 100%;
  border: none;
  display: flex;
  justify-content: center; /* 左右中央 */
  align-items: center; 
  background: linear-gradient(to right, #555956, #000601b5);
  color: #c2c3ad;

}

#modeSelectLabel {
  width: 100%;
  background: linear-gradient(to right, #032409, #03240900);
  padding: 1.5px 12px;
}
/* ==================================================
   左カラム関連
================================================== */

/* 左カラムフォーム（検索/プレビュー） */
.left-top, .left-bottom {
  z-index: 50;
}

/*#formTop { transition: width 0.6s ease; }*/

/* ==================================================
   共通ボタンスタイル
================================================== */
.search-PanelBtn,
.plus-Editor-Btn,
.auto-width-Btn,
.AI-editode,
.AI-proofread-Btn,
.copy-editor-Btn,
.delete-Editor-Btn,
.edit-add-folder,
.resultarea-Btn,
.reference-Btn {
  flex: 1;
  height: 100%;
  min-width: 0;
  font-size: 13px;
  cursor: pointer;
  border: none;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#editorClearBtn {
  display: none;
}

.preview-add-folder,
.preview-comment,
.insert-editor {
  flex: 1;
  height: 100%;
  font-size: 12px;
  cursor: pointer;
  border: none;
  border-radius: 6px;
}

/* ==================================================
   左カラム編集エリア（結果/プレビュー）
================================================== */

.folder-Wrapper {
  width: 3.7rem;    /* 親に合わせる */
  height: 2.7rem;
  position: absolute; /* 内部要素の基準 */
  aspect-ratio: 4 / 3;   /* 縦横比 4:3 を固定 */
  margin-left: 1.26rem;
  top: 0.4rem;
}
.folder-icon {
  width: 100%;
  height: 100%;
  position: relative;
}
/* 上のタブ部分 */
.folder-tab {
  width: 50%;          /* 親の幅の50% */
  height: 20%;         /* 親の高さの20% */
  border-top-left-radius: 10%;
  border-top-right-radius: 10%;
  position: absolute;
  top: 0;
  left: 12.5%;         /* 中央寄せ: (100%-50%)/2 */
}
/* フォルダー本体 */
.folder-body {
  width: 100%;
  height: 80%;         /* 上タブ以外を占有 */
  border-radius: 5%; 
  position: absolute;
  bottom: 0;
  left: 0;
}

.L-group {
  display: flex;
  position: relative;
  width: 40%;
  height: calc(100% - 2.2rem);
  flex-direction: column;
  z-index:999;
  color: #c3a6ba;
  top: 2.2rem;
}


.language-select-btn {
  left: 39%;
}

.settingTab-Select-Btn {
  left: 78%;
}

.left-top {
  display: flex;
  position: relative;
  height: 100%;
  flex-direction: column;
  align-items: flex-start;
  max-width: 200%;
  min-width: 100%;
  gap: 0.2rem;
  padding: 0rem 0rem 0rem 0rem;
  /*resize: both;*/
  overflow: visible;
  top: 0;
  left: 0;
}


/* 検索入力欄 */
.search-input {
  width: 90%;
  max-width: 354px;
  font-size: 13px;
  line-height: 1.7;
  padding: 0rem 0.5rem;
  box-sizing: border-box;
  resize: none;
  margin-bottom: 0.2rem;
  display: none;
}


.leftTop-content{
  display: flex;
  flex: 1;
  border: none;
  width: 100%;
  height: 100%;
  flex-direction: column;
  resize: none;
  overflow: hidden; 
  box-sizing: border-box;
  align-items: stretch;
  position: relative;
}

#searchModeContainer,
#AIModeContainer {
  display: none;
}

.result-comand-container {
  display: flex;
  width: 100%;
  justify-content: space-between;
  height: 32px;
  border: 0.01px solid #f6d3eb;
  background-color: #f7f7f700;
  color: #f6d3eb;
  overflow: none;
}


.result-comand-seachBtn,
.edit-codeBtn,
.AI-ModeBtm,
.reference-note-btn,
.folder-and-languageBtn {
  flex: 1;
  height: 100%;
  font-size: 13px;
  cursor: pointer;
  border: none;
  /*background-color: #000601b4;
  background-color: #03240967;*/
  backdrop-filter: blur(6px);
  color: #f6d3eb;
}

.usersSelect-label1 {
  background-color: transparent;
  width: 90px;
  padding-left: 12px;
  display: flex;
  align-items: center;
  transition: background-color 0.2s ease;
}

.usersSelect-label2 {
  background-color: transparent;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  font-size: 13px;
}

.editModeTagInput-container,
.usersSelectWrapper {
  display: flex;
  width: 100%;
  height: 2.2rem;
  box-sizing: border-box;

  background: linear-gradient(
    to right,
    rgba(128, 128, 128, 1) 0px,   /* 左端は不透明 */
    rgba(0, 6, 1, 0.686) 150px     /* 150pxで完全透明 */
  );
  pointer-events: auto;
  cursor: pointer;
}

.editModeTagInput-container:hover,
.usersSelectWrapper:hover {
  background: linear-gradient(
    to right,
    rgb(148, 156, 148) 0px,   /* 左端は不透明 */
    rgba(0, 6, 1, 0.81) 150px     /* 150pxで完全透明 */
  );
}

.bitweenline {
  width: 100%;
  height: 1px;
  background-color: #dfdeda8b;
  border: none;

}

#createTagListBtn {
  position: relative;
  height: calc(2.2rem - 1.5px);

}

.folder-and-languageBtn {
  text-align: start;
}

.folder-and-languageBtn {
  background-color: #545554cd;
  border: 0.5px solid #939292d0;
  border-bottom: none;
  color: #f6d3eb;
}

.folder-and-languageBtn:hover {
  background-color: #767d76cd;
}

.AI-ModeBtm:hover,
.edit-codeBtn:hover,
.result-comand-seachBtn:hover,
.reference-note-btn:hover,
.sort-StartBtn:hover {
  background-color: #6198c4bb;
}

.Reference-mode-container{
  flex: 1;
  border: none;
  width: 100%;
  flex-direction: column;
  resize: none;
  overflow: hidden; 
  box-sizing: border-box;
  /*background-color: #032409ca;
  border-top: 1px solid #dfdeda6a;
  padding-top: 6px;*/
  display: none;
}

#promptEditorModelabel {
  height: 26.2px;
  padding: 2px 0 2px 5px;
  color: #f6d3eb;
  font-size: 14px;
  display: inline-block;
  flex-wrap: wrap;          /* 中身を折り返す */
  align-items: center;
  top: 0;
}

.promptEditorModePanel {
  justify-content: space-between;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  height: 2.2rem;
  margin-bottom: 4px;
}

.promptPanelDataBtn,
.promptTagtitleBtn,
.promptTagDescriptionBtn,
.promptTagCodeBtn {
  flex: 1;
  height: 100%;
  font-size: 12px;
  cursor: pointer;
  pointer-events: auto;
  border: none;
  color: #000000;
  background-color: #ababab;/*#0006018b;*/
  clip-path: polygon(
    0% 0%,     /* 左上 */
    calc(100% - 20px) 0%,    /* 右上 */
    100% 100%, /* 右下 */
    20px 100%    /* 左下 */
  );
}

#viewLabelChangeBtn,
#labelTagBtn,
#labelTitleBtn,
#labelDescriptionBtn,
#labelCodeBtn,
#searchLabelChangeBtn,
#searchTargetTagBtn,
#searchTargetTitleBtn,
#searchTargetDescriptionBtn,
#searchTargetAllBtn,
#searchTargetCodeBtn,
#goToTagCreateBtn,
#editTagDeleteBtn {
  width: 100%;
  height: 2.2rem;
  border: none;
  font-size: 13px;
}

#searchLabelChangeBtn {
  font-size: 12px;
}


/* 初期は閉じる 
#viewLabelChange .dropdown,
#searchLabelChange .dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height .25s ease;
  pointer-events: none;
  opacity: 0;
}
*/
/* 開く時 
#viewLabelChange.open .dropdown,
#searchLabelChange.open .dropdown {
  max-height: 8.8rem;
  pointer-events: auto;
  opacity: 1;
}
*/
/* 初期は閉じる
#CandDmenu .dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.13s ease, opacity 0.13s ease;
  pointer-events: none;
  opacity: 0;
} */

/* 開くとき
#CandDmenu.open .dropdown {
  max-height: 4.4rem;
  pointer-events: auto;
  opacity: 1;
}
 */
/*.editTag-text.mode-code { }*/
.editTag-text.mode-title { font-weight: 600; }
.editTag-text.mode-description { font-size: 0.9em; opacity: .85; }



/* ==================================================
   プレビューエリア（結果/プレビュー）
================================================== */

.left-bottom {
  display: none;
  flex-direction: column;
  flex: 1;
  width: 100%;
  padding: 0rem 0rem 0rem 0rem;
  box-sizing: border-box;
}


/*#formBottom { transition: width 0.6s ease; }*/

.title-wrapper {
  display: flex;
  align-items: end; /* 下揃え */
  column-gap: 1.6rem;
}

.comment-wrapper {
  display: flex;
  align-items: end; /* 下揃え */
  column-gap: 1.6rem;
  margin-left: 0.76rem;
}

.updown-wrapper {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
}

.L-button-group {
  width: 100%;/*calc(100% - 0.5rem);*/
  position: absolute;
  display: flex;
  min-height: 2.2rem;
  align-items: center;
  justify-content: flex-end;
  z-index: 100;
  background-color: #37373767;
  backdrop-filter: blur(6px);
  box-sizing: border-box;  
  border-bottom: 1px solid #dfdeda8b;
  height: 2.2rem;
  pointer-events: auto;
  opacity: 1;
  transition: background-color 1s ease, opacity 1s ease;
}

.L-button-group.disabled {
  pointer-events: none;
  background-color: #000601cf;
  opacity: 0.7;
}

.L-button-group.disabled button {
  color: #ffffff40;
}

.Target-btnGroup,
.Trigger-btnGroup,
.Panel-btnGroup {
  justify-content: space-between;
  width: 100%;/*calc(100% - 0.5rem);*/
  position: relative;
  display: flex;
  min-height: 1.8rem;
  margin-top: 8px;
  align-items: center;
  justify-content: flex-end;
  z-index: 100;
  color: #f6d3eb;
}

#actionPanelTagResetBtn,
#targetPanelTagResetBtn,
#triggerPanelTagResetBtn {
  margin-right: 8px;
  border: 0.5px solid #808080;

}



.folder-and-language {
  width: calc(50% - 0.5rem);
}


.comment-output {
  height: 2.06rem;
  min-height: 2.06rem;
  font-size: 14px;
  line-height: 1.7;
  padding: 0 0.6rem;
  box-sizing: border-box;
  resize: none;
  overflow-y: auto;
  margin-left: 0.7rem;
  margin-bottom: 0.2rem;
  white-space: nowrap;       /* 折り返さない */
  overflow: hidden;          /* 見切れを隠す */
  text-overflow: ellipsis;
}

.preview-editor-wrapper {
  display: flex;
  border: none;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 3.9rem);
  overflow: hidden;
  box-sizing: border-box;
  align-items: stretch;
  position: absolute;
  resize: none;
  z-index: 0;
  padding-top: 2.2rem;
  border-bottom: 0.01px solid #f6d3eb;
  border-left: 0.01px solid #f6d3eb;
  border-right: 0.01px solid #f6d3eb;
}

.description-wrapper {
  display: flex;
  border: none;
  width: 100%;
  flex: 1;
  overflow: hidden;
  box-sizing: border-box;
  align-items: stretch;
  position: relative;
  resize: none;
  z-index: 0;
}






#previewContainer {
  min-height: 4.4rem;
  max-height: 100%;
  width: 100%;
  display: none;
}


.preview-editArea-label {
  position: absolute;
  width: 100%;
  top: 2.2rem;
  left: 0;
  min-height: 1.7rem;
  font-size: 14px;
  padding: 0px 10px;
  z-index: 0; /* textarea より前面  width: calc(100% - 16px);*/
  pointer-events: none;
  background: linear-gradient(to right, #ffcccc, #032409);
  
  border-left: 0.01px solid #f6d3eb;
  border-right: 0.01px solid #f6d3eb;
  color: #032409;
  z-index: 400;
  display: none;
}












.preview-editor-wrapper {
  display: none;
}

.preview-editor{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  resize: none;
  scrollbar-width: none;
  border: none;
  overflow: hidden;
  display: flex;
  background-color: #032409;
  color: transparent;
}
/* 行番号用 */


/* ==================================================
   右カラム（複製エディター含む）
================================================== */
.R-group {
  display: flex;
  position: absolute;
  height: calc(100% - 3.7rem);
  width: 60%;
  z-index: 0;
  top: 2.2rem;
  right: 0;
  transition: opacity 0.5s ease;
}

#Rgroup.threeColumn {
  width: 40%;
}

#tagCreatebottonsWrapper,
.edit-button-group,
.resultarea-button-group,
.reference-button-group,
.AI-button-group,
.setting-button-group {
  justify-content: space-between;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
}

.edit-button-group {
  border-bottom: 1px solid #dfdeda8b;
}

#PreviewCodeButtonGroup {
  position: absolute;
  z-index: 2;
  height: 2.2rem;
  top: 0;
  left: 0;
  background-color: #434343;
  border: 0.01px solid #f6d3eb;
  border-bottom: none;
}

.resultarea-button-group,
#PreviewCodeButtonGroup {
  display: none;
}

.reference-button-group {
  display: none;
}

/*
#tagCreatebottonsWrapper {
  position: absolute;
  justify-content: space-between;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  min-height: 2.2rem;
  display: none;
  top: 34px;
  width: calc(100% - 16px)
}
*/
.AI-button-group {
  display: none;
}

.edit-Container {
  width: 60%;
  height: calc(100% - (11px + 8rem)); /* タブとボタンの高さを引く */
  /*min-height: calc(100% - (70px + 3rem));
  /*top: calc(90px + 3rem);
  height: auto;
  top: calc(11px + 8rem);*/
  bottom: 0;
  right: 0;
  box-sizing: border-box;
  position: absolute;
  display: flex;
  overflow: hidden;
  border: none;
  z-index: 0;
  /*border-top: 0.01px solid #f6d3eb;*/
  border-left: 1px solid #dfdeda8b;
}

#insertFlash {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  pointer-events: none;
background: linear-gradient(
  to top,
  #e6e8e6aa 0%,

  rgba(230, 232, 230, 0) 150%
);
  opacity: 0;
}

#insertFlash.flash {
  animation: flashFade 1s cubic-bezier(0.2, 0, 0, 1);
  transform-origin: top;
}

@keyframes flashFade {
  0% {
    opacity: 0.4;
    height: 150%;
  }
  100% {
    opacity: 0;   /* スーッ */
    height: 0%;
  }
}

#ViewportTouchSpace {
  position: absolute;
  inset: 0;
  z-index: 1;

  background: transparent;
  display: block;

}

#touchFocusSpace {
  position: absolute;
  inset: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 305;

  background: transparent;

  display: none;
  user-select: none;

  -webkit-user-select: none;
}

#touchFocusSpace.spec-mode{
  width: 60%;
}

/* 仮想キー*/
#touchEditorKeyPanel {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 310;

  display: grid;
  grid-template-columns: repeat(8, 48px);
  grid-template-rows: repeat(8, 40px);
  gap: 6px;

  contain: layout paint;
  transition: right 0s;
}

#touchEditorKeyPanel.spec-mode {
  right: calc(40% + 16px);
  transition: right 0.6s ease 0.15s;
}


#touchEditorKeyPanel button {
  border-radius: 4px;
  font-size: 13px;
  font-weight: 550;
}

body.theme-haru #touchEditorKeyPanel button {
  background-color: #90599060;
  color: #1e1d1d;
  border: 1px solid #ffffff20;
}

body.theme-natsu #touchEditorKeyPanel button {
  background-color: #1a552560;
  color: #e0e0e0;
  border: 1px solid #ffffff20;
}

body.theme-aki #touchEditorKeyPanel button {
  background-color: #69161660;
  color: #e0e0e0;
  border: 1px solid #ffffff20;
}

body.theme-fuyu #touchEditorKeyPanel button {
  background-color: #6f808f60;
  color: #1e1d1d;
  border: 1px solid #ffffff20;
}


#touchEditorKeyPanel button.active {
  opacity: 1;
}

#touchEditorKeyPanel button.disabled {
  opacity: 0.4;
  pointer-events: none;
}


/* 矢印 */
.touchEditorKey[data-key="up"] {
  grid-column: 6 / span 2;
  grid-row: 6;
}

.touchEditorKey[data-key="left"] {
  grid-column: 5;
  grid-row: 6 / span 2;
}

.touchEditorKey[data-key="down"] {
  grid-column: 6 / span 2;
  grid-row: 7;
}

.touchEditorKey[data-key="right"] {
  grid-column: 8;
  grid-row: 6 / span 2;
}

/* Space */
.touchEditorKey[data-key="space"] {
  grid-column: 1 / span 4;
  grid-row: 7;
}

/* enter */
.touchEditorKey[data-key="enter"] {
  grid-column: 7 / span 2;
  grid-row: 4 / span 2;
}

/* focus */
.touchEditorKey[data-key="focus"] {
  grid-column: 5 / span 4;
  grid-row: 8;
}

/* undo */
.touchEditorKey[data-key="undo"] {
  grid-column: 1 / span 2;
  grid-row: 8;
}

/* redo */
.touchEditorKey[data-key="redo"] {
  grid-column: 3 / span 2;
  grid-row: 8;
}

/* backspace */
.touchEditorKey[data-key="backspace"] {
  grid-column: 7 / span 2;
  grid-row: 3;
}

/* delete */
.touchEditorKey[data-key="delete"] {
  grid-column: 7 / span 2;
  grid-row: 2;
}

/* tab */
.touchEditorKey[data-key="tab"] {
  grid-column: 5 / span 2;
  grid-row: 4;
}

/* shiftTab */
.touchEditorKey[data-key="shiftTab"] {
  grid-column: 5 / span 2;
  grid-row: 5;
}

/* paste */
.touchEditorKey[data-key="paste"] {
  grid-column: 3 / span 2;
  grid-row: 6;
}

/* select */
.touchEditorKey[data-key="select"] {
  grid-column: 7 / span 2;
  grid-row: 1;
  opacity: 0.4;
}

/* selectCopy */
.touchEditorKey[data-key="selectCopy"] {
  grid-column: 3 / span 2;
  grid-row: 5;
  opacity: 1;
  pointer-events: auto;
}

.touch-selection-start-marker {
  display: inline-block;
  position: relative;
  width: 2px;
  height: 18px;
  background: #1683ff;
  vertical-align: middle;
}

.touch-selection-start-marker::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  left: 50%;
  top: -5px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #1683ff;
}

.touch-selection-end-marker {
  display: inline-block;
  position: relative;
  width: 2px;
  height: 18px;
  background: #1683ff;
  vertical-align: middle;
}

.touch-selection-end-marker::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  left: 50%;
  bottom: -5px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #1683ff;
}

.edit-area-wrapper.slide-out {
  animation: editorSlideOut 0.4s ease forwards;
}

@keyframes editorSlideOut {
  from {
    transform: translateX(0);
    opacity: 1;
  }

  to {
    transform: translateX(25%);
    opacity: 0;
  }
}

.edit-area-wrapper.act {
  pointer-events: auto;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  position: absolute;
  display: flex;
  overflow: hidden;
  border: none;
  z-index: 100;
}

.edit-area-wrapper.act.spec-mode .CodeMirror {
  width: 60% !important;
}

.edit-area-wrapper.nonact {
  pointer-events: none;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  position: absolute;
  display: flex;
  overflow: hidden;
  border: none;
  z-index: 10;
}

.edit-area-wrapper.nonact.spec-mode .CodeMirror {
  width: 60% !important;
}

.edit-area-wrapper.multi {
  pointer-events: none;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  position: absolute;
  display: flex;
  overflow: hidden;
  border: none;
  z-index: 0;
}

.edit-area-wrapper.preview {
  pointer-events: none;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  position: absolute;
  display: flex;
  overflow: hidden;
  border: none;
  z-index: 0;
}


.overView-group {
  justify-content: space-between;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 2.3rem;

}

.overView-group.is-hidden .overViewCopyBtn {
  display: none;
}

.overView-group.is-hidden .overViewChangeBtn {
  display: flex;
}

.overViewLabel {
  height: 2.3rem;
  color: #c9c9c9;
  font-size: 13px;
  display: flex;
  align-items: flex-end;
  background-color: transparent !important;
}

.overViewChangeBtn,
.overViewCopyBtn,
.overViewAndCodeCopyBtn {
  flex: 1;
  height: 2.1rem;
  background-color: #ffffff44;
  border: none;
  color: #c9c9c9;
  margin-left: 1px;
  border-radius: 4px;
}

.overViewChangeBtn {
  display: none;
  align-items: center;
  justify-content: center;
}

.overView-groupFont {
  background-color: #ffffff3a;
  color: #3d3d3d;
}
.overView-groupFont:hover {
  background-color: #ffffff17;
}

body.theme-haru .overView-groupFont,
body.theme-fuyu .overView-groupFont {
  background-color: #ffffff3a;
  color: #3d3d3d;
  font-weight: 550;
}
body.theme-haru .overView-groupFont:hover,
body.theme-fuyu .overView-groupFont:hover {
  background-color: #ffffff17;
}

body.theme-natsu .overView-groupFont,
body.theme-aki .overView-groupFont {
  background-color: #ffffff3a;
  color: #c9c9c9;
}
body.theme-natsu .overView-groupFont:hover,
body.theme-aki .overView-groupFont:hover {
  background-color: #ffffff17;
}


.fileDocument-userWriteArea1,
.fileDocument-userWriteArea2 {
  height:calc(50% - 3.3rem);
  border-radius: 6px;
  padding: 4px 10px;
  resize: none;
  line-height: 20px;
  overflow-y: auto;
  flex-shrink: 0;
  font-size: 13px;
  border: none;
font-family: 
  'Hiragino Kaku Gothic Pro', 
  'Helvetica Neue', 
  Arial, 
  sans-serif;
}



.AIRequest-Btn {
  background-color: #041808b6;
  color: #c9c9c9;
  height: 28px;
  min-height: 28px;
  font-size: 12px;
  border: 0.5px solid #8080809c;
  margin-bottom: 6px;
}

.AIRequest-Btn:hover {
  background-color: #6198c4bb;
}
/*
textarea {
  background-image: linear-gradient(to bottom, rgba(255,255,255,0.1) 1px, transparent 1px);
  background-size: 100% 20px;
  line-height: 20px;
}
*/
.edit-area{
  position: absolute;
  top: 0;
  
  right: 0;        /* ←追加（これ重要） */
  width: 40%;
  height: 100%;
  box-sizing: border-box;
  resize: none;
  /*scrollbar-width: none;*/
  border: none;
  overflow-y: auto;
  display: flex;
  flex-direction: column;

  z-index: 0;
  outline: none;
  padding: 8px;
  opacity: 0.01;
  pointer-events: none;
  transition: all 0.6s ease 0.2s;
}

.edit-area-wrapper.act.spec-mode .edit-area {
  z-index: 100;
  pointer-events: auto;
  color: #f6d3eb;
  width: 40%;
  height: 100%;
  right: 0px;
  left: auto;
  opacity: 1;
  border: 0.5px solid #8080809c;
  pointer-events: auto;
  /*
  border-radius: 6px;
  top: 16px;
  left: 6px;

  box-shadow: 
  0 4px 12px rgba(0, 0, 0, 0.3),
  0 4px 12px rgba(0, 0, 0, 0.2);
  */
}

.edit-area-wrapper.act.spec-mode .edit-cm-target {
  z-index: 90;
  pointer-events: none;
}

/* ==================================================
   言語選択モーダル
================================================== */
#templateTagsModal,
#languageSelectModal,
#coreframeModal,
.language-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  display: none;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(8px); /* 背景をぼかす */
}


#languageSelectContainer {
  position: fixed;
  top: 10vh;
  max-height: 90vh;
  left: 50%;
  transform: translate(-50%);
  width: 50%;

  display: flex;
  flex-direction: column;
}

#templateTagsSelectContainer,
#FWSelectContainer {
  position: fixed;
  top: 10vh;
  max-height: 90vh;
  left: 50%;
  transform: translate(-50%);
  width: 50%;
  
  display: flex;
  flex-direction: column;
}

#editModeTagDropdown div,
#templateTagsDropdown {
  font-size: 13px !important;
}

#languageGrid {
  border-radius: 12px;
  max-width: 700px;
  width: 90%;
  height: 80dvh;
  max-height: 80dvh;

  display: flex;
  flex-direction: column;
  padding-bottom: 16px;
  border: 1px solid #dfdeda8b;
}


#languageOptionGrid,
#languageFunctionGrid {
  gap: 1rem;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  box-sizing: border-box;
}

#languageFunctionGrid {
  padding: 2rem 2rem 1.5rem;
}


#languageOptionGrid {
  padding: 1rem 2rem 1.5rem;
  border-top: 1px solid #dfdeda8b;
}

#languageTabsGrid {
  gap: 1rem;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  box-sizing: border-box;
  position: relative;
  padding: 1rem 1rem 0 2rem;
  flex: 1;
  min-height: 0;
  border-top: 1px solid #dfdeda8b;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

body.theme-natsu .editor-name-grid,
body.theme-natsu #languageGrid {
  background: linear-gradient(
    135deg,
    rgba(210, 210, 210, 0.65),
    rgba(120, 120, 120, 0.65),
    rgba(10, 56, 18, 0.65),
    rgba(10, 56, 18, 0.65),
    rgba(10, 56, 18, 0.65),
    rgba(120, 120, 120, 0.65)
  );
  color: #fff;
}

body.theme-natsu .editor-lang-label,
body.theme-natsu .editor-name-grid button,
body.theme-natsu .editor-name-grid label,
body.theme-natsu .editor-name-grid #editorNameLangLabel {
  color: #fff;
}

body.theme-haru .editor-name-grid,
body.theme-haru #languageGrid {
  background: linear-gradient(
    135deg,
    rgba(210, 210, 210, 0.65),
    rgba(210, 210, 210, 0.65),
    rgba(151, 91, 152, 0.65),
    rgba(151, 91, 152, 0.65),
    rgba(151, 91, 152, 0.65),
    rgba(210, 210, 210, 0.65)
  );
}

body.theme-haru .editor-lang-label,
body.theme-haru .editor-name-grid button,
body.theme-haru .editor-name-grid label,
body.theme-haru .editor-name-grid #editorNameLangLabel {
  color: #222;  
}

body.theme-aki .editor-name-grid,
body.theme-aki #languageGrid {
  background: linear-gradient(
    135deg,
    rgba(210, 210, 210, 0.65),
    rgba(120, 120, 120, 0.65),
    rgba(80, 23, 23, 0.65),
    rgba(80, 23, 23, 0.65),
    rgba(80, 23, 23, 0.65),
    rgba(120, 120, 120, 0.65)
  );
}

body.theme-aki .editor-lang-label,
body.theme-aki .editor-name-grid button,
body.theme-aki .editor-name-grid label,
body.theme-aki .editor-name-grid #editorNameLangLabel {
  color: #fff;
}

body.theme-fuyu .editor-name-grid,
body.theme-fuyu #languageGrid {
  background: linear-gradient(
    135deg,
    rgba(210, 210, 210, 0.65),
    rgba(210, 210, 210, 0.65),
    rgba(111, 174, 213, 0.647),
    rgba(111, 174, 213, 0.647),
    rgba(111, 174, 213, 0.647),
    rgba(210, 210, 210, 0.65)
  );
}

body.theme-fuyu .editor-lang-label,
body.theme-fuyu .editor-name-grid button,
body.theme-fuyu .editor-name-grid label,
body.theme-fuyu .editor-name-grid #editorNameLangLabel {
  color: #222;  
}

#languageOptionGrid .language-btn,
#languageFunctionGrid .language-btn,
#languageTabsGrid .language-btn {
  border: none;
  border-radius: 8px;
  height: 40px;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.1s ease;
  background-color: #ffffff90;
  color: #323232;
}

#languageOptionGrid .language-btn:hover,
#languageFunctionGrid .language-btn:hover,
#languageTabsGrid .language-btn:hover {
  background-color: #e6e8e6f0;
  color: #737373;
}

/* ==================================================
   エディター名入力モーダル
================================================== */
/* モーダル全体 */
.editor-name-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px); /* 背景をぼかす */
  z-index: 1000;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.editor-name-modal.hidden {
  display: none;
}

/* モーダル背景 */
.editor-name-modal::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

/* モーダルコンテナ */
.editor-name-grid {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.85); /* 白ベースの透明感 */
  backdrop-filter: blur(12px);
  border-radius: 20px;
  padding: 30px 40px;
  min-width: 450px;
  width: 50%;
  max-width: 500px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 20px;
  text-align: center;
}

.language-input-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

/* 言語ラベル */
.editor-lang-label {
  font-weight: bold;
  font-size: 16px;
}

.editor-name-input-area {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* 入力欄 */
#editorNameInput,
#languageExtInput,
#languageNameInput {
  padding: 0 16px;
  height: 30px;
  font-size: 14.5px;
  border: none;
  border-radius: 6px;
  background: rgba(255,255,255,0.7);
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  text-align: center;
}

.editor-name-input-area {
  margin: 16px;
}

/*
#editorNameInput:focus,
#languageNameInput:hover {
  outline: none;
  box-shadow: 0 0 10px rgba(100,149,237,0.5);
  transform: scale(1.02);
}
*/

/* ボタン */
.editor-name-buttons {
  justify-content: space-around;

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  height: 2.2rem;
}

.editor-name-buttons button {
  flex: 1;
  height: 100%;
  padding: 0 12px;
  border: none;
  border-radius: 16px;
  cursor: pointer;
  border-bottom: 1px solid #dfdeda8b;
  background-color: transparent;
  /*transition: transform 0.2s ease, box-shadow 0.2s ease;
  background: linear-gradient(45deg, #9aff9fd4, #e1fac4ce);*/
  color: #1b2b1a;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.editor-name-buttons button:hover {
  /*background: linear-gradient(45deg, #9aff9f, #e1fac4e6);*/
  backdrop-filter: blur(6px);

}

/*
.editor-name-buttons button:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}

.editor-name-buttons button:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
*/
/* ==================================================
   レスポンシブ　今は保留
================================================== 
@media (max-width: 900px) {
  .left-sticky-wrapper {
    position: relative;
    width: 100%;
    left: 0;
    top: 0;
    right: auto;
  }
  .R-button-group {
    position: relative;
    right: 0;
    top: 0;
    width: 100%;
  }
  .edit-area-wrapper {
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    margin-top: 0.5rem;
    width: 100%;
  }
}
*/
/* ==================================================
   右上
================================================== */
#editorTabContainer {
  height: 6.6rem;
  /*width: calc(100% - 180px);*/
  flex: 1;
  display: block;
  /*backdrop-filter: blur(2px);*/
  box-sizing: border-box; 
}


#editorButtonGroupContainer {
  width: 100%;
  height: 2.5px;
  min-height: 29px;
  box-sizing: border-box;
  position: relative;
  display: flex;
  border-top: 1px solid #dfdeda8b;
  border-left: 1px solid #dfdeda8b;

}

#failedSendPanelsContainer {
  position: absolute;
  pointer-events: auto;
  z-index: 1;
  height: 100%;
  width: 100%;
  display: flex;
  opacity: 1;
  transition: width 0.3s ease, opacity 0.3s ease;
  padding: 8px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  
}

#failedSendPanelsContainer.is-hidden {
  opacity: 0;
  pointer-events: none;
}

#failedSendPanelsCounter {
  flex: 1;
  width: calc(100% - 160px);
  height: 100%;
  position: relative;
  color: #cfcfcf;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#retrySendPanelsBtn {
  width: 160px;
  
}

#editorTabInfoContainer {
  background-color: #000601af;
  pointer-events: auto;
  cursor: pointer;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 4.4rem;
}

#editorTabInfoContainer.disabled #editorTabInfo,
#editorTabInfoContainer.disabled #editorTabDateLabel,
#editorTabInfoContainer.disabled {
  pointer-events: none;
  color: #cfcfcf3a;
}

#editorTabInfoContainer:hover {
  background-color: #000601cf;
}



#editorTabInfo {
  width: 100%;
  height: 34px;
  box-sizing: border-box;
  color: #cfcfcf;
  color: #f6d3eb;
  display: flex;
  font-size: 16px;
  align-items: center;
  justify-content: center;
  transition: color 0.28s ease;
}

#editorTabDateLabel {
  width: 100%;
  height: 20px;
  box-sizing: border-box;
  color: #cfcfcf;
  color: #f6d3eb;
  display: flex;
  opacity: 0.8;
  align-items: center;
  justify-content: flex-end;
  padding-right: 6px;
  transition: color 0.28s ease;
}


.editor-tab-group {
  position: absolute;
  top: 2.2rem;
  width: 60%;
  height: 88px;
  max-height: 60vh;
  gap: 0.5rem;
  padding: 8px 8px 26px 8px;
  overflow-y: hidden;
  pointer-events: none;
  position: relative;
  box-sizing: border-box;
  scroll-behavior: smooth;
  /*background-color: #0b1a0ca1;*/
  background: linear-gradient(
    to bottom,
    #000601af calc(100% - 16px),
    #7a7a7a71 100%
  );
  z-index: 0;
  transition: background-color 1s ease, opacity 0.3s ease;
  opacity: 0;
  backdrop-filter: blur(4px);
}

.editor-tab-group.expand {
  background: linear-gradient(
    to bottom,
    #000601af calc(100% - 16px),
    #7a7a7a71 100%
  );
  transition: height 0.38s cubic-bezier(0.4, 0, 0.2, 1), background-color 1s ease,  background-color 1s ease;
  opacity: 1;
  pointer-events: auto;
  z-index: 1100;
  overflow-y: hidden;
}

#Rgroup.expand {
  opacity: 0.1;
}

.editor-tab-group.collapse {
  opacity: 0;
  pointer-events: none;
  background-color: #7a7a7aaf;
  transition: 
    opacity 0.4s ease, height 1s ease;
  z-index: 1100;
}

.usersSelected-Btnsright {

  background:#323533d8;
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  height: calc(6.6rem + 0.5px);

  width: 160px;
  background-color: transparent;
  z-index: 100;
  color: #f6d3eb;
  border-bottom: 1px solid #dfdeda8b;
  transition: width 0.3s cubic-bezier(0, 0, 0.2, 1) ;
  
}

#selectedEditorBtns.disabled {
  width: 0px;
}

#selectedEditorBtns.disabled .usersSelected-editorBtn {
  pointer-events: none;
  color: #cfcfcf3a;
  color: transparent;

}



.usersSelected-editorBtn {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.2rem;
  border-left: 1px solid #282828ad;
  
  background: linear-gradient(
    to right,
    rgba(0, 6, 1, 0.69) 40px,   /* 左端は不透明 */
    rgba(128, 128, 128, 1) 180px
  );
  pointer-events: auto;
  cursor: pointer;
}

.usersSelected-editorBtn:hover {
  background: linear-gradient(
    to right,
    rgba(0, 6, 1, 0.81) 40px,   /* 左端は不透明 */
    rgb(148, 156, 148) 180px     /* 150pxで完全透明 */
  );
}

#plusEditorBtn {
  max-height: calc(2.2rem - 1.5px);
  font-weight: 550;
}

#promptEditorModePanel {
  display: none;
}

.category-container {
  flex-wrap: wrap;
  gap: 5px; /* タブ間のスペース */
  overflow-y: hidden;
  margin-bottom: 3px;
  padding: 4px;
  width: 100%;          /* 親幅いっぱい */
  box-sizing: border-box;
  background-color: #7474742a;
}

.editorTabHeader {
  display: flex;
  flex-direction: column;
  width: 100%;

  padding: 0 4px;
  margin-bottom: 12px;

}

#usedHistoryWrapper {
  flex: 1;
  display: block;
}

#usedHistoryBtnsWrapper {
  display: flex;
  width: 100%;
  padding-bottom: 4px;
  border-bottom: 1px solid #dfdeda65;
  gap: 6px 12px;
}

#historyLabel {
  color: #cfcfcf;
  display: flex;
  opacity: 0.9;
  align-items: center;
  justify-content: flex-start;
}

.cloudAccessWrapper {
  height: 2.2rem;
  gap: 16px;
  width: 60%;
  max-width: 336px;
  display: none;
  justify-content: space-between;
  align-items: center;
}

.cloudAccessBtns {
  flex: 1;
  height: 100%;
  border: 0.5px solid #cccccc80;
  border-bottom: none;
  background: #1918189c;
  color: #ccc;
  cursor: pointer;

}

#cloudloadBtn {
  border-right: none;
}

.fileListSaveMark,
.saveMark {
  display: inline-block;

  opacity: 0;
  transition: opacity 0.5s ease, color 0.5s ease, background-color 0.5s ease;

  width: .35rem;
  height: .35rem;
  border-radius: 12px;
  position: relative;
  bottom: -3px;
}

.fileListSaveMark {
 margin-left: 4px;
}

.file-tab.unsaved .fileListSaveMark,
#cloudSyncBtn.unsaved .saveMark {
  opacity: 1;
}

.file-tab:hover .fileListSaveMark,
#cloudSyncBtn:hover .saveMark {
  background-color: #fff;
  color: #fff;
}

body.theme-haru .fileListSaveMark,
body.theme-haru .saveMark {
  color: #fedfff;
  background-color: #fedfff;
}

body.theme-natsu .fileListSaveMark,
body.theme-natsu .saveMark {
  color: #bfedbf;
  background-color: #bfedbf;
}

body.theme-aki .fileListSaveMark,
body.theme-aki .saveMark {
  color: #f1bfbf;
  background-color: #f1bfbf;
}

body.theme-fuyu .fileListSaveMark,
body.theme-fuyu .saveMark {
  color: #cde2f6;
  background-color: #cde2f6;
}


/*
.cloudAccessBtns:hover {
  background: #444;
  color: #fff;
}
*/


#cloudStatus {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  color: #ccccccde;
  margin-bottom: 2px;
  padding-right: 4px;  
}

.category-label {
  font-size: 12px;
  color: #f6d3eb;
}

.tab-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px; /* タブ間のスペース */
}

#usedHistory1 {
  background: linear-gradient(to right, #e8e8e8, #b3b3b3);
}
#usedHistory2 {
  background: linear-gradient(to right, #b3b3b3, #9c9c9c);
}
#usedHistory3 {
  background: linear-gradient(to right, #9c9c9c, #888888);
}
#usedHistory4 {
  background: linear-gradient(to right, #888, #888);
}
#usedHistory5 {
  background: linear-gradient(to right, #888, #888);
}
#usedHistory1,
#usedHistory2,
#usedHistory3,
#usedHistory4,
#usedHistory5 {
  opacity: 1;
  pointer-events: auto;
  min-width: 60px;
  max-width: 240px;
  white-space: nowrap;
  height: 22px;
  font-family: 
    'SF Mono', 
    'Menlo', 
    'Consolas', 
    'Noto Sans Mono CJK JP', 
    monospace;
  font-size: 13px;
  font-weight: 550;
  border: none;
  padding: 0 12px;
  margin-bottom: 4px;
  border-radius: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0em;
  color: #323232;
}

#editorTabGroup.collapse #usedHistory1,
#editorTabGroup.collapse #usedHistory2,
#editorTabGroup.collapse #usedHistory3,
#editorTabGroup.collapse #usedHistory4,
#editorTabGroup.collapse #usedHistory5 {
  pointer-events: none;
}
#usedHistory1.disabled,
#usedHistory2.disabled,
#usedHistory3.disabled,
#usedHistory4.disabled,
#usedHistory5.disabled {
  opacity: 0;
  pointer-events: none;
}

.edeitorSettingBtns,
#edeitorSettingWrapper {
  display: flex;
}

.edeitorSettingBtns {
  display: grid;
  height: 45px;
  width: 40%;

  grid-template-columns: 1fr 1fr;

  grid-template-rows: 22px 22px;
  gap: 1px;
  margin: 4px 0 0 auto;
}

#editorsFontSizePlate {
  grid-column: 1 / 3;
  display: flex;
  font-size: 13px;
  color: #ccc;
  display: flex;
  align-items: flex-start;
}

#editorsFontSizeDisplay {
  margin-left: 16px;
  font-size: 13px;
  color: #ccc;
  display: flex;
  align-items: flex-start;
}

.editorsFontSize-changeBtn {
  flex: 1;
  height: 100%;
  width: 100%; 
  font-size: 14px;
  cursor: pointer;
  border: none;
  background: #ccc;
  color: #444;
}

.editorsFontSize-changeBtn:hover {
  background: #e8e8e8;
}

#freeEditorBtn {
  padding: 0 16px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  width: fit-content;
  overflow: hidden;
  flex-shrink: 0;
  margin-top: 16px;
}

.text-tab {
  min-width: 60px;
  max-width: 240px;
  white-space: nowrap;
  height: 22px;
  font-family: 
    'SF Mono', 
    'Menlo', 
    'Consolas', 
    'Noto Sans Mono CJK JP', 
    monospace;
  font-size: 13px !important;
  font-weight: 550;
  border: none;
  padding: 0 12px;
  margin-bottom: 4px;
  border-radius: 3px;
  overflow: hidden;      /* ここが必要 */
  text-overflow: ellipsis;
  letter-spacing: 0em;
  color: #323232 !important;
}

.text-tab {
  background: #888;
}

#usedHistory1:hover,
#usedHistory2:hover,
#usedHistory3:hover,
#usedHistory4:hover,
#usedHistory5:hover,
.text-tab:hover {
  background: #e8e8e8;
}

.text-tab.active {
  background: #ccc;
}

.text-tab.active:hover {
  background: #e8e8e8;
}
/* ==================================================
   アニメーション
================================================== */
.editorMode-container{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /*border-top: 1px solid #dfdeda8b;
  /*border-right: 1px solid #dfdeda8b;
  background-color: #37373767;
  backdrop-filter: blur(6px);*/
  padding: 8px 8px 0px 0px;
  display: flex;
  flex-direction: column;
  color: #f6d3eb;
  z-index: 0;
  overflow: hidden;
}

.editModeInput-container {
  position: relative;
  max-height: 100%;
  flex: 1;
}

#editModeInput {
  width: calc(100% - 1px);
  margin-left: 1px;
  max-height: 31px;
  justify-content: flex-start;
  font-size: 13px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0.26rem 3rem 0.26rem 2.2rem;          /* 必要に応じて */
  box-sizing: border-box;
  white-space: nowrap;         /* 改行を保持 */
  overflow: auto;        /* 自動リサイズするのでスクロールは出さない */
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 1.5px solid #808080;
  background-color: white;
  color: #333;
  border-radius: 16px;
  letter-spacing: 0.03em
}

#fileInputClearBtn,
#inputClearBtn {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 17px;
  color: #444;
  z-index: 2;
  height: 29px;
  width: 20px;
  
  background: transparent;

  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-left: 1px;

  border: none;

  border-radius: 0 17px 17px 0;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.3s ease, font-size 0.3 ease;
}


#fileInputClearBtn.is-hidden,
#inputClearBtn.is-hidden {
  opacity: 0;
  pointer-events: none;
}

#fileInputClearBtn:hover,
#inputClearBtn:hover {
  font-size: 19px;
  padding-left: 0px;
}

#fileInputSlideEndBtn,
#inputSlideEndBtn {
  position: absolute;
  top: 2px;
  right: 22px;
  z-index: 1;
  height: 29px;
  width: 20px;
  background: transparent;
  cursor: text;
}


#searchModeTagsearchInput,
#editModeTagsearchInput {
  position: relative;
  width: 100%;
  max-height: 31px;
  justify-content: flex-start;
  font-size: 12px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0.26rem 16px;          /* 必要に応じて */
  box-sizing: border-box;
  white-space: nowrap;
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 0.5px solid #8080809c;
  background: rgb(16, 16, 16) 150px;
  border-radius: 16px;
  outline: none;       /* 青枠を消す */
  box-shadow: none;
  pointer-events: auto;
  color: #eee;
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.764);
}

.dropdownDeleteBtn {
  height: 31px;
  background-color: #222;
  color: #eee;
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.764);
  pointer-events: auto;
  border: 1.5px solid #808080c8; /* 必要なら追加 */
  border-radius: 16px;
}

.dropdownDeleteBtn:hover {
  background-color: #6d6c6cea;
}

#deleteTagListBtn {
  position: absolute;
  width: 90px;
  max-height: 31px;
  font-size: 12px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
   /* padding: 0.26rem 1rem 0.26rem 2.2rem;         必要に応じて */
  box-sizing: border-box;
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 0.5px solid #8080809c;
  background-color: #646464;
  color: #f6d3eb;
  border-radius: 0 16px 16px 0;
  z-index: 1;
  top: 0;
  right: 0;
  pointer-events: auto;
  cursor: pointer;
}

#deleteTagListBtn:hover {
  background-color: #9faa9bb4;
}

#keywordPlusBtn,
#actionKeywordPlusBtn,
#targetKeywordPlusBtn,
#triggerKeywordPlusBtn {
  position: absolute;
  width: 90px;
  max-height: 31px;
  font-size: 12px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
   /* padding: 0.26rem 1rem 0.26rem 2.2rem;         必要に応じて */
  box-sizing: border-box;
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 0.5px solid #8080809c;
  background-color: #646464;
  color: #f6d3eb;
  
  clip-path: polygon(
    0% 0%,     /* 左上 */
    calc(100% - 20px) 0%,    /* 右上 */
    100% 100%, /* 右下 */
    20px 100%    /* 左下 */
  );
  border-radius: 0 16px 16px 0;
  z-index: 1;
  top: 0;
  right: 0;
  pointer-events: auto;
  cursor: pointer;
}

#keywordPlusBtn:hover,
#actionKeywordPlusBtn:hover,
#targetKeywordPlusBtn:hover,
#triggerKeywordPlusBtn:hover {
  background-color: #767d76cd;
}

#templateTagsSelectInput,
#FWSelectModalInput,
#languageSelectModalInput,
#FWSelectInput {
  width: 100%; /*calc(100% - 286px);*/
  max-height: 31px;
  justify-content: flex-start;
  font-size: 13px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0.26rem 1rem 0.26rem 2.2rem;          /* 必要に応じて */
  box-sizing: border-box;
  white-space: nowrap;         /* 改行を保持 */
  overflow: auto;        /* 自動リサイズするのでスクロールは出さない */
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 1.5px solid #808080;
  background-color: #222;
  color: #eee;
  border-radius: 16px;
  margin-bottom: 22px;
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.764);
}

#PLSelectInput {
  width: calc(100% - 92px);
  max-height: 31px;
  justify-content: flex-start;
  font-size: 12px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0.26rem 1rem 0.26rem 2.2rem;          /* 必要に応じて */
  box-sizing: border-box;
  white-space: nowrap;         /* 改行を保持 */
  overflow: auto;        /* 自動リサイズするのでスクロールは出さない */
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 1.5px solid #808080;
  background-color: #222;
  color: #eee;
  border-radius: 16px;
  margin-bottom: 8px;
  box-shadow: 0 8px 12px rgb(0, 0, 0);
}

.toolslistDeleteModeBtn {
  flex: 1;
  top: 0;
  right: 0;
  min-width: 100px;
  box-sizing: border-box;
  min-height: 31px;
  max-height: 31px;
  border: 1.5px solid #808080;
  background-color: #222;
  color: #eee;
  border-radius: 16px;
  font-size: 12px;
  display: inline-flex;           /* フレックスにする */
  justify-content: center; /* 横方向中央 */
  align-items: center;     /* 縦方向中央 */
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 8px 12px rgb(0, 0, 0);
}


.toolslistDeleteModeBtn:hover {
  background-color: #6d6c6cea;
}

.FWSelectInput-wrapper {
  position: relative;
  width: 100%;
  height: 2.2rem;
  margin-bottom: 16px;
  gap: 8px;
}

.language-dropdown-container,
.coreframe-dropdown-container {
  display: flex;
  flex-direction: column;
  background-color: #222;
  max-height: 70dvh;
  overflow-y: auto;
  font-size: 13px;
  width: 100%;/*calc(100% - 28px);*/
  padding: 16px 0;
  border: 0.5px solid #808080c8;
  border-radius: 6px;
  box-shadow: 0 8px 12px rgb(0, 0, 0);
  z-index: 100;
}

.coreframe-dropdown-container {
  flex-direction: column;
}

.platform-dropdown-container {
  width: 104%;
  display: flex;
  background-color: #222;
  max-height: calc(100vh - 166px);
  overflow-y: auto;
  font-size: 13px;
  padding: 8px 0px 16px 0px;
  border: 0.5px solid #808080c8;
  border-radius: 6px;
  box-shadow: 0 8px 12px rgb(0, 0, 0);
  margin-bottom: 40px;
  z-index: 100;
}


.platform-dropdown-container {
  display: none;
}

.platform-dropdown,
.language-dropdown,
.frontend-dropdown,
.backend-dropdown {
  flex: 1;                 /* 左右で均等に幅を分ける */
  pointer-events: auto;
  overflow-y: auto;
  padding-left: 1rem;
  scrollbar-gutter: stable;
}

.backend-dropdown {
  border-left: 0.5px solid #808080c8;
  padding-top: 44px;
}

.editModeTagInput-container-w {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}


.treeLeft .language-tree-version,
.treeLeft .language-tree-runtime,
.treeLeft .language-tree-runtime-version {
  display: none;
}

.treeRight .language-tree-version,
.treeRight .language-tree-runtime,
.treeRight .language-tree-runtime-version {
  display: block;
}

.treeLeft .core-tree-framework,
.treeLeft .core-tree-version {
  display: none;
}

.treeRight .core-tree-framework,
.treeRight .core-tree-version {
  display: block;
}

.treeLeft .template-tag-item {
  display: none;
}

.treeRight .template-tag-item {
  display: block;
}
/* ============================================================= */
/* ============================================================= */

#searchModeTagwapper,
#editModeTagwapper {
  position: absolute;
  height: calc(100% - 160px);
  top: 115px;
  width: 50%;
  background: #222;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  z-index: 1000;
  font-size: 13px;
  padding: 10px 0 10px 12px;
  border: 0.5px solid #808080c8;
  box-shadow: 0 8px 12px rgb(0, 0, 0);
  display: flex;
  flex-direction: column; 
}

#serachModeTagserach,
#editModeTagserach {
  flex: 0 0 auto; /* 高さ固定なし、必要なら固定 */
  margin-bottom: 0px;
  width: calc(100% - 8px)
}

.tag-dropdown {
  position: relative;
  height: 100%;
  width: 100%;
  background: #222;
  overflow-y: auto;
  font-size: 13px;
  padding: 0px 0px;
  scrollbar-gutter: stable;
}

.dropdown-category.action,
.dropdown-category.user-category {
  cursor: pointer;
  pointer-events: auto;
}

.dropdown-category.action:hover,
.dropdown-category.user-category:hover {
  background: rgba(255,255,255,0.1);
}

.dropdown-item.disabled {
  color: #888;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.7;
}

.dropdown-item.disabled:hover {
  background-color: transparent; /* hover で色変わらない */
  cursor: default;
}

.selectCancel,
.do-not-use,
.show-all-item {
  font-size: 13px;
}

.selectCancel {
  display: flex;
  margin: 0 14px 0 12px;
  padding: 4px 0px;         /* coreframe と同じ */
  color: #eee;
  cursor: pointer;
  display: block;
  font-weight: 550;
}

#languageSelectCancelBtn.selectCancel {
  padding: 4px 0px;
}

.selectCancel:hover {
  background-color: #88888835;
}

/* 基本カテゴリー・ツール・バージョン用 */
.dropdown-category.disabled,
.coreframe-item.disabled,
.version-item.disabled {
  color: #aaa;
  cursor: default;
  pointer-events: none; /* クリック無効 */
}

/* ユーザー追加分 */
.dropdown-category.user-added,
.coreframe-item.user-added,
.version-item.user-added {
  color: #c44;
  cursor: pointer;
}

.dropdown-category.user-added:hover,
.coreframe-item.user-added:hover,
.version-item.user-added:hover {
  background-color: rgba(255,0,0,0.1);
}




.searchModeTag-dropdown div:hover,
.tag-dropdown div:hover {
  background: rgba(255,255,255,0.1);
}

.dropdown-item {
  position: relative;
  font-size: 13px;
  cursor: pointer;
  color: #eee;
  padding: 4px 0 4px 40px; 
}

.dropdown-button {
  position: relative;
  font-size: 13px;
  cursor: pointer;
  color: #eee;
  padding: 4px 0;
}

.dropdown-button:hover,
.dropdown-item:hover {
  background-color: #88888835; /* ホバーで背景色変化 */
}
.dropdown-category {
  padding-top: 8px;
  color: #aaa;               /* coreframe 系と色を揃える */
  font-weight: bold;
  cursor: default;           /* pointer じゃなくする */
  pointer-events: auto;      /* クリック不可 */
  background-color: #222;    /* 背景揃え */
  border-bottom: none;
  position: relative;
}

.dropdown-category::after {
  content: "";
  position: absolute;
  left: var(--indent, 0px);  /* ←ここだけでOK */
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    #696969 0%,
    rgba(68, 68, 68, 0) 100%
  );
}

.coreframe-item::after {
  content: "";
  position: absolute;
  left: var(--indent, 40px);  /* ←ここだけでOK */
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    #696969 0%,
    rgba(68, 68, 68, 0) 100%
  );
}

.dropdown-deleteItem {
  padding: 8px 0 0 40px !important;
}
.dropdown-deleteItem::after {
  content: "";
  position: absolute;
  left: var(--indent, 40px);  /* ←ここだけでOK */
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    #696969 0%,
    rgba(68, 68, 68, 0) 100%
  );
}

.dropdown-deleteVersion {
  padding: 8px 0 0 80px !important;
}
.dropdown-deleteVersion::after {
  content: "";
  position: absolute;
  left: var(--indent, 80px);  /* ←ここだけでOK */
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    #696969 0%,
    rgba(68, 68, 68, 0) 100%
  );
}

.tag-dropdown .dropdown-item {
  padding: 4px 12px;         /* coreframe と同じ */
  color: #eee;
  cursor: pointer;
  display: block;
  padding: 4px 2px 4px 40px; 
  font-size: 13px;
}


.cancelDiv-item {
  position: relative;
  color: #eee;
  cursor: pointer;
  display: block;
  font-size: 13px;
  padding: 4px 0; 
  margin-bottom: 4px;
  width: calc(100% - 8px);
}

.cancelDiv-item:hover {
  background-color: #88888835;
}

/* ============================================================= */
/* ============================================================= */


#editModeInput:empty:before {
  content: attr(data-placeholder);
  color: #7c7c7c;
  pointer-events: none;
}

#itemCounterArea {
  display: flex;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid #dfdeda8b;
  
  /*background-color: #37373767;
  backdrop-filter: blur(6px);
  background: linear-gradient(to right, #37373700, #37373767, #37373700);*/
  position: relative;
  width: 100%;
  height: 2.2rem;
  cursor: pointer;  
  pointer-events: auto;
  margin-top: 1px;
  gap: 1px
}
/*
#itemCounterArea:hover {
  background: #000601cf !important;
}
*/

#autoScrollBtns {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  
}

#autoScrollUp,
#autoScrollDown {
  min-width: fit-content;
  flex: 1;
  background-color: #000601af;
  border: none;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #f6d3eb;
  
}

#goToTagCreateBtn {
  background-color: #000601af;
  flex: 1;
  font-size: 14px;
  font-weight: 550;
  border: none;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #f6d3eb;
}

#goToTagCreateBtn:hover,
#autoScrollUp:hover,
#autoScrollDown:hover {
  background-color: #000601cf;
}


#itemCounterPlate {
  flex: 1;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;

  background-color: #000601af;
  color: #fff;
}

/* カスタムスクロールバー */
.custom-scrollbar {
  position: absolute;
  background: #ccc;
  border-radius: 8px;
  opacity: 0.7;
}

.custom-scrollbar.vertical {
  width: 8px;
  right: 2px;      /* 枠外に表示 */
  top: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.476);
}

.custom-scrollbar.horizontal {
  height: 8px;
  left: 0;
  right: 0;
  bottom: -10px;     /* 枠外に表示 */
  background-color: rgba(212, 212, 212, 0.771);
}

/* =============================================================== */
/*　　　　　　　　　　　　　　　ここから消すな
/* =============================================================== */
/* Chrome, Safari, Edge */
#editModeInput::-webkit-scrollbar,
#editModeTagInput::-webkit-scrollbar,
#FWSelectInput::-webkit-scrollbar,
.virtual-scroll-viewport {
  display: none;  /* スクロールバー非表示 */
}

/* Firefox */
#editModeInput,
#editModeTagInput,
#FWSelectInput,
.virtual-scroll-viewport {
  scrollbar-width: none;  /* スクロールバー幅を消す */
}

/* Internet Explorer / 古いEdge */
#editModeInput,
#editModeTagInput,
#FWSelectInput,
.virtual-scroll-viewport {
  -ms-overflow-style: none; /* IE用非表示 */
}
/* =============================================================== */
/*　　　　　　　　　　　　　　　ここまで消すな
/* =============================================================== */
.editSearch-icon {
  position: absolute;
  left: 10px;
  top: 0.65rem;
  width: 16px;
  height: 16px;
  color: #888;
  pointer-events: none;
  z-index: 10;
}

.editMode-cmdArea {
  justify-content: space-between;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  height: 2.2rem;
  min-height: 2.2rem;
  margin-top: 8px;
}

#editModeCmdArea2,
#tagCreatebottonsWrapper {
  display: none;
}

.preview-setBtn,
.editMode-cmdBtn,
.searchLabelMatchBtn,
.label-changeBtn,
.CandD-menuBtn {
  flex: 1;
  height: 100%;
  font-size: 13px;
  cursor: pointer;
  border: none;
}

.searchLabelMatchBtn.active::before {
  content: "⚫︎ ";
}
.search-TargetBtn.active::before {
  content: "⚫︎ ";
}
.label-changeBtn.active::before {
  content: "⚫︎ ";
}
.preview-setBtn.active::before {
  content: "⚫︎ ";
}


/*
#searchBiginningMatchBtn {
background: linear-gradient(to right, #b89393, #000601c3, #000601c3);
color: #f6d3eb;
}

#searchPartialMatchBtn {
background: linear-gradient(to right, #000601c3, #000601c3, #000601c3, #9e7e7e,#9e7e7e, #000601c3, #000601c3, #000601c3);
color: #f6d3eb;
}

#searchBiginningMatchBtn:hover {
background: linear-gradient(to right, #3960c9e3, #6198c4bb, #6198c4bb);
color: #f6d3eb;
}

#searchPartialMatchBtn:hover {
background: linear-gradient(to right, #6198c4bb, #6198c4bb, #6198c4bb, #3960c9e3,#3960c9e3, #6198c4bb, #6198c4bb, #6198c4bb);
color: #f6d3eb;
}
*/

.template-content {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: visible; /* hidden → visible に変更 */
}

.virtual-scroll-viewport {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  height: 100%;
}

.editModeTag {
  flex-direction: column;
  align-items: flex-start;
  display: none;
  cursor: pointer;            /* 見た目上クリックできるようにする */
  pointer-events: auto;
  /*display: inline-block;*/ /* 内包する input の幅に合わせやすくなる */
  transition: background 0.2s ease;
  padding-top: 13px;
  padding-bottom: 6px;
  border-bottom: 1px solid #dfdeda6a;
  backdrop-filter: blur(2px);
}

.is-clamped {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3; /* 将来用 */
  -webkit-box-orient: vertical;
  overflow: hidden;

  /* 👇 フェードアウト本体 */
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,0)
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,0)
  );
}


.editTag-text{
  min-height: 26.2px;
  max-height: auto;
  width: 100%;
  display: block;
  align-items: center;
  padding: 0px 4px;
  /*background-color: #e0e0e0;
  color: #333;
  color: #f6d3eb;*/
  line-height: 18px;
  border-radius: 12px;
  cursor: default;
  font-size: 13px;
  white-space: normal;
  overflow: visible;
  word-break: break-word;
  /* text-overflow: ellipsis;    省略記号「…」を表示 */
  /* min-width: fit-content;     内容に合わせて広がる */
  box-sizing: border-box;
  transition: box-shadow 0.8s ease, background-color 0.8s ease;
  pointer-events: none;
  overflow: hidden;

}

.editTag-text .label-tag,
.editTag-text .label-title,
.editTag-text .label-desc,
.editTag-text .label-code {
  position: relative;
  overflow: hidden;
  white-space: pre-line;       /* 改行を反映 */
  min-height: 18px;
  word-break: break-word;
  line-height: 18px;   /* 1 → 1.2〜1.35 の間で調整 */
  margin-bottom: 10px;
}

.label-title,
.label-desc,
.label-code {
  transition: max-height 0.5s ease;
}

.editTag-text .label-code {
  font-weight: 500;
  font-family: 
    'SF Mono', 
    'Menlo', 
    'Consolas', 
    'Noto Sans Mono CJK JP', 
    monospace !important;
}

/* ラベルごとの色分け */
.editTag-text .tagRow {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 8px;
  align-items: start;
  position: relative;
}

.editTag-text .tagLabel {
  white-space: nowrap;
  color: #d6d6d6a9;
  font-weight: 550;
  font-size: 12px;
}

.editTag-text .label-lang {
  color: #f0f0f0;
}

.editTag-text .label-core {
  color: #f0f0f0;
}

.editTag-text .label-tag {
  color: #f6d3eb;
}

.editTag-text .label-title {
  color: #a4cbea;
}

.editTag-text .label-desc {
  color: #e7e7e7;
}

.editTag-text .label-code {
  color: #a0e68e;
  white-space: pre;
  tab-size: 2;
}

.virtual-scroll-viewport.preview .editModeTag .editModePanel .editTagsCodeBtn,
.virtual-scroll-viewport.OFF .editModeTag .editModePanel .PanelDataOpenBtn,
.virtual-scroll-viewport.OFF .editModeTag .editModePanel .editTagsCodeBtn {
  opacity: 0.4;
}

.label-text {
  position: relative; /* ボタン絶対配置の基準 */
  transition: max-height 0.3s ease;
}

.expand-btn {
  position: absolute;

  left: 2px;
  bottom: 14px;

  width: 36px;
  height: 24px;

  font-weight: 600;

  margin: 0;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  font-size: 16px;
  line-height: 1;
  border: none;
  border-radius: 16px;

  cursor: pointer;

  /*
  background-color: #cfcfcfaa;
  color: #cfcfcf;  
  */

  background: linear-gradient(to bottom, #cfcfcf03, #cfcfcfaa);
  color: #2c2c2c;

  transition: background 0.25s ease;

}

.expand-btn.sticky {
  position: absolute;
  height: calc(100% - 40px);
  bottom: 14px;
  border-radius: 12px;
  background: linear-gradient(to bottom, #cfcfcf03, #cfcfcfaa);
}

.expand-btn:hover {
background-color: #fefefeaa;
color: #2c2c2c;
}

.expand-btn.sticky:hover {
  background: linear-gradient(to bottom, #fefefe03, #fefefeaa);
}

/* 3行制限（通常） */
.editTag-text .clamp-3 {
  max-height: calc(18px * 3);
  overflow: hidden;
}

.syntax-span {
  display: block;       /* ← これ */
  white-space: normal;
}

/* 3行を超えた場合だけ、下にグラデーション */
.editTag-text .is-clamped::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 60%;
  pointer-events: none;
}


.editTag-text, 
.editTag-text span, 
.editTag-text.is-clamped::after {
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
  letter-spacing: 0.02em;
}

.editModePanel {
  justify-content: space-between;
  /*display: flex;*/
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  pointer-events: none;
  width: 100%;
  min-height: 9rem;
  padding-left: 9px;
  margin-bottom: 1rem;
}

.PanelDataOpenBtn,
.editTagsUpdateBtn,
.editTagsCopyBtn,
.editTagsCodeBtn,
.prompt-panelBtn {
  flex: 1;
  width: 75%;
  height: 2rem;
  font-size: 12.5px;
  padding: 4px 10px;
  cursor: pointer;
  pointer-events: auto;
  border: none;
  color: #012407;
  background-color: #e7e7dfc7;/*#0006018b;*/
  clip-path: polygon(
    0% 0%,     /* 左上 */
    calc(100% - 0px) 0%,    /* 右上 */
    100% 100%, /* 右下 */
    20px 100%    /* 左下 */
  );
  font-weight: 500;
}

@media (hover: none) and (pointer: coarse) {
  .PanelDataOpenBtn {
    display: none;
  }
}

.PanelDataOpenBtn.active:hover {
  background-color: #ffffffee;
}

#PaneldateToolsBtn {
  pointer-events: none;
  opacity: 0;
}

/* 基本：補助ボタンは非表示にして左寄せにずらし */
.editModePanel .editTagsUpdateBtn,
.editModePanel .editTagsCopyBtn,
.editModePanel .editTagsCodeBtn {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-80px) translateY(0);
  transition: opacity 360ms cubic-bezier(.22,.9,.35,1),
              transform 420ms cubic-bezier(.22,.9,.35,1);
}

/* hover styling for buttons */
.editModePanel button:hover {
  background-color: #e7e7dfe9;
}

/* ON: 縦メイン＋横に少しずつズレる */
.editModePanel.show-buttons .editTagsUpdateBtn {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0px) translateY(1px);
  transition-delay: 0.03s;
}

.editModePanel.show-buttons .editTagsCopyBtn {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0px) translateY(2px);
  transition-delay: 0.09s;
}

.editModePanel.show-buttons .editTagsCodeBtn {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0px) translateY(3px);
  transition-delay: 0.15s;
}



/* optional: when hiding, remove delays quickly so hide is snappy */
.editModePanel:not(.show-buttons) .editTagsUpdateBtn,
.editModePanel:not(.show-buttons) .editTagsCopyBtn,
.editModePanel:not(.show-buttons) .editTagsCodeBtn {
  transition-delay: 0s;
}

.temp-hover-code {
  background: rgba(146, 146, 146, 0.363);
  height: 100%;
  padding: 0;
}

/* 追加タグハイライト用 */
/* editTag-text 用のハイライトアニメーション */
@keyframes shrinkShadow {
  0% {
    box-shadow: 0 0 20px 10px #e0e0e0;
  }
  100% {
    box-shadow: 0 0 0 0 #e0e0e0;
  }
}

.editTag-text.highlight-added {
  animation: shrinkShadow 0.8s ease forwards;
}


/* --------------------------
   🔹 タグ左の削除ボタン
--------------------------- */
.editModeTag {
  transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.5, 1);
  position: relative;
}

/* deleteモードONのときだけテキストを右にずらす */
.editModeTag.delete-mode {
  transform: translateX(36px); /* バツボタン幅ぶん右にスライド */
}

/* バツボタン */
.tag-close-btn {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) translateX(-30px); /* 左から右にスライド */
  opacity: 0;
  cursor: pointer;
  background: transparent;
  border: none;
  color: #f00;
  font-size: 36px;
  transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.3s ease;
  z-index: 500;
}

/* アニメーションON時 */
.tag-close-btn.active {
  opacity: 1;
  transform: translateY(-50%) translateX(-30px);
  pointer-events: auto;
}

/* 削除中だけ浮かせる */
.editModeTag.deleting {
  transform: translateX(50px);
  left: 0; /* 元の座標に置く */
  width: auto; /* 本来の幅を保持 */
  transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.5s cubic-bezier(0.25, 0.8, 0.5, 1);
}

/* Wrapper 内のボタンとテキスト */
.editModePanel-btn {
  margin-right: 4px;
  cursor: pointer;
}

#editTagstitle,
#editTagsDescription,
#editTagsCode {
  display: block;
  min-height: 20px;
  margin-top: 4px;
  padding: 2px 4px;
  border: 1px solid #ddd;
  border-radius: 2px;
  background-color: #f9f9f9;
  font-size: 0.9rem;
}
/* ----------------------------------------------------
   🔹 上段（コード用テキストエリア）🔹 下段（メモ用テキストエリア）
------------------------------------------------------ */

#editTagCode,
#editTagMemo {
  width: 100%;
  font-size: 14px;
  line-height: 21px;
  border: none;
  resize: none;        /* ユーザーが自由に高さを変えない */
  box-sizing: border-box;
  outline: none;
  white-space: nowrap;
}

#editTagCode {
  background-color: #f9f9f900;
  color: black;
  min-height: 62px; /* 1行分の高さ */
  max-height: 168px;
  overflow: auto;
}

#editTagMemo {
  background-color: #464646;
  border-radius: 6px;
  padding: 6px 12px;
  height: 32px; /* 1行分の高さ */
  margin-bottom: 38px;
  color: #f6d3eb;
}

#editTagCode::placeholder {
  color: #f6d3eb79;
}

#editTagMemo::placeholder {
  color: #f6d3eb79;
}
/* --------------------------
   🔹 保存ボタン
--------------------------- */

#codeAndMemSaveBtn {
  position: absolute;
  bottom: -0.2px;
  left: 0px;
  width: 55px;
  height: 45px;
  background-color: #957b27;
  color: #f6d3eb;
  clip-path: polygon(0% 0%, 0% 100%, 100% 100%);
  cursor: pointer;
  z-index: 1000;
  border: none;
}

#SaveBtnTriangleLabel {
  position: absolute;
  bottom: 5px;    /* 上にはみ出す */
  left: 8px;   /* 右方向に少しずらす */
  font-size: 14px;
  color: #342b31;
  white-space: nowrap; /* 改行させない */
  pointer-events: none;
  z-index: 1000;
}

/*
#codeAndMemSaveBtn {
  display: inline-block;
  padding: 2px 10px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background-color: #4CAF50;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
*/
#codeAndMemSaveBtn:hover {
  background-color: #6198c4;
}

/*
#codeAndMemSaveBtn:active {
  background-color: #3e8e41;
}
*/


/* 重複エラー */
.panelTag-Duplication-error {
  animation: shake 0.2s;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  75% { transform: translateX(-2px); }
}

#editTitleAreaContainer,
#editDescriptionAreaContainer,
#editTitleLeftBottomAreaContainer,
#editDescriptionLeftBottomAreaContainer,
#ReferenceModebottonsWrapper {
  display: none;
}

#ReferenceModebottonsWrapper {
  justify-content: space-between;
  /*display: flex;*/
  text-align: center;
  justify-content: flex-end;
  box-sizing: border-box;
  pointer-events: auto;
  line-height: 1.1rem;  
  width: calc(100% - 18px);
  min-height: 2.2rem;
  margin-top: 1rem;
  position: absolute;
}
/*
#promptEditorWrapper {
  position: absolrute;
  top: 6.2rem;
  width: 100%;
  margin-left: -8px;
  height: calc(100% - 6.2rem);
}
*/

#promptEditorWrapper {
  position: relative;
  width: 100%;
  height: 30%;
  min-height: 62px;
}

#editTitleAreaContainer,
#editDescriptionAreaContainer {
  border: none;
  width: calc(100% - 16px);
  height: 40%;
  bottom: 16px;
  left: 0;
  overflow: hidden;
  box-sizing: border-box;
  align-items: stretch;
  position: absolute;
  resize: none;
}

.editArea-editor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 2.2rem);
  padding: 10px 10px 10px 10px;

  line-height: 1.6;
  resize: none;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  overflow-y: auto;
  box-sizing: border-box;
  z-index: 0;
  border: none;
  background-color: #032409;
  color: #fff;
  border: 0.01px solid #f6d3eb;
  outline: none;          /* 青い枠を消す */
  box-shadow: none;
}

.editArea-label {
  position: absolute;
  width: 100%;
  top: 2.2rem;
  left: 0;
  min-height: 1.7rem;
  padding: 0px 10px;
  pointer-events: none;
  /*border-top: 0.01px solid #f6d3eb;*/
  z-index: 400;
  font-weight: 600;

  font-size: 12.5px;
}


#editCodeareaLabel {
  position: absolute;
  width: 100%;
  height: 1.7rem;
  top: 0;
  left: 0;
  padding: 0px 33px;
  z-index: 0; /* textarea より前面 */
  pointer-events: none;
  z-index: 400;
  
}

#previewWrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 300; /* 上に重ねる */
  pointer-events: none; /* マウス操作は既存コードに通す */
}


/* 擬似キャレット */
.pseudo-caret {
  display: inline-block;
  width: 1px;      /* 1文字分くらいの幅 */
  background-color: #ffffff;
  height: 1.5em;
  vertical-align: top; /* 行の上に合わせる */
  animation: blink 1s steps(1) infinite;
  margin-right: -1px;
}

body.theme-haru .pseudo-caret {
  background-color: #333333;
}

body.theme-fuyu .pseudo-caret {
  background-color: #333333;
}

body.theme-natsu .pseudo-caret {
  background-color: #ffffff;
}

body.theme-aki .pseudo-caret {
  background-color: #ffffff;
}

@keyframes blink {
  0%, 50% { opacity: 1; }
  50.1%, 100% { opacity: 0; }
}


#editModeToolscheckContainer {
  display: flex; /* flex は維持 */
  flex-direction: column;
  position: absolute;
  top: 2.2rem;
  left: 0;
  width: 100%;
  max-width: 100%;
  max-height: 0;       /* 初期は閉じる */
  overflow: hidden;    /* スクロール用に overflow-y:auto 内部に設定する */
  gap: 6px;
  align-items: flex-start;
  background: #000000c1;    /* 必要に応じて背景 */
  color: #c2ac53;
  transition: max-height 0.3s ease;
  z-index: 600;
  padding: 0 16px;
  border-left: 0.01px solid #f6d3eb;
  border-right: 0.01px solid #f6d3eb;
}

#editModeToolscheckContainer.open {
  max-height: 100%; /* 中身の高さより十分大きければOK */
  overflow-y: hidden;
  padding: 16px;

}

#suggestionBoxContainer {
  position: absolute;
  z-index: 1100;
  display: none;
  width: calc(50% - 10px);
  max-width: 550px;
  height: 55%;
  bottom: 16px;
  right: 16px;
  border: 0.01px solid #f6d3eb;
  background-color: #032409ca;
  flex-direction: column;
  color: #f6d3eb;
  overflow: hidden;
  font-size: 12px;
}

#suggestionBoxCounter {
  height: 1.8rem;
  background-color: #afafaf48;
}

#suggestionBox {
  position: absolute;
  top: 1.4rem;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0.01px solid #f6d3eb;
  background-color: #032409ca;
  padding: 8px 8px 0px 8px;
  display: flex;
  flex-direction: column;
  color: #f6d3eb;
  z-index: 0;
  overflow: hidden;
}

#AIAmendmentMassege {
  position: absolute;
  z-index: 1100;
  display: none;
  width: calc(25% - 16px);
  height: 1.8rem;
  padding: 3px 6px;
  top: 0px;
  right: 16px;
  /*border: 0.01px solid #f6d3eb;*/
  background-color: #afafaf48;
  color: #a0a0a0;
  font-size: 12px;
}

#AIAmendmentSuportBox {
  position: absolute;
  z-index: 1100;
  display: none;
  width: calc(25% - 16px);
  height: calc(45% - 16px - 1.8rem);
  top: 1.8rem;
  right: 16px;
  border: 0.01px solid #f6d3eb;
  background-color: #032409ca;
  flex-direction: column;
  color: #f6d3eb;
  overflow: auto;
}

.snippet-item {
  cursor: pointer;
  pointer-events: auto;
  border: 0.01px solid #f6d3eb48;
  color: #f6d3eb;
  padding: 3px 2px;
  background-color: #63636348;
}

.detailSetting-editor-container {
  display: flex;
  flex-direction: column;
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  background: #f9f9f91e;
  font-size: 13px;
  color: #8faf92;
}

#inputSuportWrapper {
  position: absolute;
  display: none;
  top: 2px;
  left: 15px;
  width: calc(100% - 10px);
  z-index: 1200;
  background: #222222;
  resize: none;  /* 高さが maxHeight を超えた場合にスクロール */
  pointer-events: auto;
  overflow: hidden;
  box-sizing: border-box;
  padding-right: -16px;
  border: 0.1px solid #8fcffc;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #afc0b0;
  font-size: 12px;
}

#fileContainer{
  position: absolute;
  width: calc(100% - 1rem);
  height: calc(100% - 2.2rem);
  left: 0.5rem;
  top: 2.2rem;

  padding: 24px 1.5rem 0.5rem 1.5rem;
  z-index: 1000;
  border-radius: 0 0 12px 12px;
  border-radius: 0;
  overflow: hidden;
  font-size: 12px;
  background: #292828f5;
  color: #cccaca;
  border: 1px solid #545454;
  display: flex;
  flex-direction: column;
  box-shadow: 18px 18px 24px rgb(16, 16, 16);
  transition: transform 0.5s cubic-bezier(0.5, 0, 0.5, 1), opacity 0.5s ease;
  opacity: 1;
  backdrop-filter: blur(4px);
}

/* 右端にスライドして退避 */
#fileContainer.slideOut {
  transform: translate(-50%, 100%); /* 下に画面外へ */
    opacity: 0;
}

#fileContainer.fadeOut {
    opacity: 0;
}

/*
#fileContainerSlideBtn {
  position: absolute;
  left: calc(50% - 50px);
  bottom: 0;
  height: 40px;
  width: 130px;
  background: #e5e2e233;
  color: #cccaca;
  border-radius: 50%;
  pointer-events: auto;
  border: none;
  display: none;
  transform: scaleY(0.7);
  font-size: 15px;
}

#fileContainerSlideBtn:hover {
  background: #e5e2e272;
}
*/

#cloudaccessBtns {
  position: absolute;
  top: 2rem;
  left: 2rem;
  display: block;;

}

/* ===== 固定列（共通） ===== */
.sticky-col {
  position: sticky;
  left: 0;
  z-index: 5;
  background: #292828f5;
}

/* ===== チェックボックス列 ===== */
.checkbox-col {
  width: 40px;
  min-width: 40px;
  text-align: center;
  z-index: 6; /* No列より前 */
}

/* ===== No列（チェック列の右） ===== */
.sticky-no {
  position: sticky;
  left: 40px;
  z-index: 5;
  background: #292828f5;
}

/* ===== チェック列の操作領域 ===== */
.check-cell {
  cursor: pointer;
  user-select: none;          /* 誤選択防止 */
}

/* hover は列全体にだけ効かせる */
.check-cell:hover {
  background: rgba(255,255,255,0.05);
}

/* checkbox 本体 */
.row-check {
  cursor: pointer;
}

#filterCountLabel {
  height: 26px;
  top: 52px;
  right: 2rem;
  position: absolute;
  z-index: 1;
  font-size: 12px;
  color: #aaa;
}

.failSortListDiv.selected {
  color: rgb(118, 247, 122) !important;
}

#fileListContainer {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

#fileContainerDataBox {
  width: 100%;
  height: 100%;
  background-color: #222;
}


.treeSelected {
  width: 100%;
  height: 100%;

  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
}


/* 上段 */
.treeHeader {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;

  padding: 10px;
}


.treeDescription {
  display: flex;
  flex-direction: column;

  font-size: 16px;
}


.treeDescription small {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  white-space: pre-line;
}


.treeActions {
  width: 70%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, 2.2rem);
  justify-content: center;
  align-items: center;
  margin: 0 0 0 auto;
  gap: 8px;
}

.treeActions button {
  width: 100%;
  min-width: 0;
  height: 2.2rem;
  border-radius: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}



/* 下段 */
.treeBody {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;

  min-height: 0;
}


/* 左右 */
.treeLeft,
.treeRight {
  border: 1px solid var(--border-color, #ccc);

  overflow-y: auto;
  min-height: 0;

  padding: 16px 0 16px 16px;
  scrollbar-gutter: stable;
}


.language-tree-list {
  list-style: none;
  padding-left: 15px;
}


.language-tree-item {
  padding: 5px 8px;
  cursor: pointer;
}


.language-tree-item:hover {
  background: rgba(128,128,128,0.15);
}


.language-tree-version {
  padding-left: 15px;
  font-size: 13px;
}





#fileListSearchWrapper {
  position: relative; /* SVG を絶対配置するための基準 */
  width: 60%;
  max-width: 700px;
  display: block;
  justify-content: center; /* 入力欄ごと中央 */
  margin: 0 auto;
}

#fileListSearchInput{
  width: 100%;
  max-height: 31px;
  justify-content: flex-start;
  font-size: 13px;
  line-height: 21px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0.26rem 3rem 0.26rem 2.2rem;          /* 必要に応じて */
  box-sizing: border-box;
  white-space: nowrap;         /* 改行を保持 */
  overflow: auto;        /* 自動リサイズするのでスクロールは出さない */
  min-height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 1.5px solid #808080;
  background-color: white;
  color: black;
  border-radius: 16px;
  display: block;
}

th[data-key="title"]::before,
th[data-key="description"]::before,
th[data-key="name"]::before,
th[data-key="document"]::before,
th[data-key="context"]::before,
th[data-key="code"]::before {
  content: "🔍 ";
}

th[data-key="title"].filter-search::after,
th[data-key="description"].filter-search::after,
th[data-key="code"].filter-search::after {
  content: " ▼";
}

th[data-key="title"]::after,
th[data-key="description"]::after,
th[data-key="name"]::after,
th[data-key="core"]::after,
th[data-key="document"]::after,
th[data-key="context"]::after,
th[data-key="code"]::after,
th[data-key="language"]::after,
th[data-key="coreframe"]::after,
th[data-key="tag"]::after,
th[data-key="cat"]::after,
th[data-key="uat"]::after {
  content: " ▽";
}

th[data-key="title"].filter-search::after,
th[data-key="description"].filter-search::after,
th[data-key="name"].filter-search::after,
th[data-key="document"].filter-search::after,
th[data-key="context"].filter-search::after,
th[data-key="code"].filter-search::after {
  content: " ▼";
}
th.filter-active::after {
  content: " ▼";
}

th.sort-asc::after {
  content: " ▲";
}

th.sort-desc::after {
  content: " ▼";
}

.fileSearch-icon {
  position: absolute;
  left: 12px;  /* input 内の左パディングに合わせる */
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: #808080;
  pointer-events: none;
  z-index: 1;
}

#cloudSaveTargetExplanationLabel,
#cloudSaveExplanationLabel {
  display: flex;
  align-items: center;
  height: 20px;
  box-sizing: border-box;
}

#cloudSaveTargetExplanationLabel {
  font-size: 13px;
}

#cloudSaveExplanationLabel {
  font-size: 13px;
}

#cloudSaveTargetExplanationLabel .fileListTargetMark {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin: 0 0 0 2px;
  accent-color: #0173c5;
  pointer-events: none;
  align-self: center;
  transform: translateY(2.5px);
}

#cloudSaveExplanationLabel .fileListSaveMark {
  flex-shrink: 0;
  opacity: 1;
  margin: 0 12px 0 8px;
  align-self: center;
  transform: translateY(-6px);
}


#fileListTabs {
  display: flex;
  height: 2rem;
  min-height: 2.2rem;
  width: 100%;
  margin-top: 2px;
}

.file-tab {
  flex: 1;
  padding: 0.3rem 1rem;
  border: 0.1px solid #cccccc80;
  background: transparent;
  color: #cccccc80;
  cursor: pointer;

  font-size: 13px;
  min-width: fit-content;
  border-radius: 8px 8px 0 0;
}


#exitFileContainerBtn {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  padding: 0.3rem 0.8rem;
  border: 0.1px solid #ccc;
  background: #1918189c;
  color: #ccc;
  cursor: pointer;
  border-radius: 4px;
  font-size: 13px;
  width: 80px;
  height: 2.2rem;
  border-radius: 6px;
}

.checkbox-col.not-send {
  opacity: 0.3;
}

#exitFileContainerBtn:hover {
  background: #444;
  color: #fff;
}

.fileContentsWrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 3rem;
  
}

#fileContainerCloseBtn,
#saveIndividuallyBtn {
  height: 2.3rem;
  position: relative;
  padding: 0 1.5rem;
  background: #1918189c;
  color: #fff;
  border: 0.1px solid #ccc;
  cursor: pointer;
  width: 200px;
  font-size: 13px;
  min-width: fit-content;
  border-radius: 16px;
}

#fileContainerCloseBtn {
  margin: 0 0 0 auto;
}

#fileContainerCloseBtn:hover,
#saveIndividuallyBtn:hover,
.file-tab:hover {
  background: #444;
  color: #fff;
}

.file-tab.active {
  background: #1918189c;
  color: #fff;
  border: 0.1px solid #ccc;
  border-bottom: none;
}

.file-tab:hover {
  background: #444;
  color: #fff;
  border: 0.1px solid #ccc;
  border-bottom: none;
}

.file-tab.active:hover {
  background: #1918189c;
}

#fileChangeUsersBtn.active,
#fileChangeFrameBtn.active,
#fileChangeCate_TagBtn.active {
  background-color: #222;
}

#fileChangeUsersBtn.active:hover,
#fileChangeFrameBtn.active:hover,
#fileChangeCate_TagBtn.active:hover {
  background-color: #222;
}

.file-list-scroll {
  flex: 1;
  height: 100%;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  border: 0.1px solid #ccc;
  border-top: none;
  background: #1918189c;
}

.top-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  height: 16px;          /* スクロールバー分 */
  display: none;
  background: #1918189c;
  border-left: 0.1px solid #ccc;
  border-right: 0.1px solid #ccc;
}

.top-scroll-inner {
  height: 1px;           /* 中身は見えなくてOK */
}


.file-list-table,
.editor-list-table {
  position: sticky;
  top: 0;
  width: 100%;
  border-collapse: collapse;
  min-width: 140px;
  cursor: pointer;
}

.file-list-table thead th {
  position: sticky;
  top: -1px;
  z-index: 10;
  background: #1b1b1b;
  box-shadow:

    inset 0 1px 0 #ccc,

    inset 0 -1px 0 #ccc;
  height: 32px !important;
}

.checkbox-col {
  box-shadow:
    inset 1px 0 0 #ccc,   /* 左 */
    inset -1px 0 0 #ccc;  /* 右 */
}


#fileListContainer tr {
  height: 20px;        /* 行高さ（かなりコンパクト） */
}

.file-list-table th,
.file-list-table td {
  padding: 2px 8px;
  border: 1px solid #ccc;
  text-align: left;
  white-space: nowrap;
}

.file-list-table th {
  background: #1918189c;
}

.file-list-table tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

/* 交互に色を変える */
#fileListContainer tr:nth-child(even) {
  background: #1918189c;
}

#fileListContainer tr:nth-child(odd) {
  background: #292828f5;
}

/* リストの表示幅を設定 =================================== */
.file-list-table {
  table-layout: auto;
  width: 100%;
}

.visibility-toggle-btn {
  padding: 2px 6px;
  font-size: 12px;
  cursor: pointer;
}

.file-list-table th,
.file-list-table td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


thead th.sticky-col {
  position: sticky;
  left: 0;
  z-index: 20;
  box-shadow:
    inset 0 1px 0 #ccc,
    inset 1px 0 0 #ccc,   /* 左 */
    inset -1px 0 0 #ccc;  /* 右 */
}

tbody td.sticky-col {
  position: sticky;
  left: 0;
  z-index: 10;
}

/* 固定幅列 */
.file-list-table th.file-ULC,
.file-list-table td.file-ULC {
  min-width: 100px;
}

/* 固定幅列 */
.file-list-table th.file-title,
.file-list-table td.file-title {
  min-width: 200px;
  max-width: 200px;
}

.file-list-table th.file-description,
.file-list-table td.file-description {
  min-width: 300px;
  max-width: 300px;
}

.file-list-table th.file-code,
.file-list-table td.file-code {
  min-width: 250px;
  max-width: 250px;
}

.visibility-toggle-btn {
  padding: 2px 6px;
  margin-right: 2px;
  cursor: pointer;
  background: #444;
  color: #ccc;
  border: 1px solid #666;
  border-radius: 4px;
}

.visibility-toggle-btn.active {
  background: #0a84ff;
  color: #fff;
  cursor: default;
}

.visibility-toggle-btn.original {
  background-color: #b3e5fcc4; /* 薄い水色 */
  color: #000;               /* 文字色は黒で見やすく */
}

.visibility-toggle-btn.active.original {
  background: #0a84ff;
  color: #fff;
  cursor: default;
}


.undo-delete-btn {
  position: relative;
  width: 100%;
  background: #333333b6;
  color: white;
  opacity: 0.9;
  z-index: 300;
  font-size: 12px;
}

.undo-delete-btn:hover {
  background: #6d6c6cb6;
}

.undo-delete-btn.hidden {
  display: none;
}

.dropdown-category {
  color: #e8b6e1d3;
  font-size: 13px;
}



.add-Categorybtn,
.language-item {
  font-weight: bold;
  color: #f295e6d3 !important;
  font-size: 13px;
}

.language-version-item {
  font-weight: bold;
  color: #f0a2e5d3;
  font-size: 13px;
}

.coreframe-item {
  font-weight: bold;
  color: #e8b6e1d3 !important;
  font-size: 13px;
  padding: 8px 0 0 40px !important;
}

.non-hover:hover {
  background-color: transparent !important;

}

.dropdown-item.add-btn,
.dropdown-item.add-version-btn,
.dropdown-item.runtime-add-btn {
  color: #d6d7afb6;
}


.dropdown-category.delete-Mode {
  cursor: pointer;
  pointer-events: auto;
}

.dropdown-category.delete-Mode:hover {
  background-color: #88888835
}

#communityContainer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  display: none;
  justify-content: center;
  align-items: center;
  /*backdrop-filter: blur(8px);  背景をぼかす */
  transition: opacity 0.5s ease;
  opacity: 1;
  pointer-events: auto;
}


#communitiesSendFormback {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1300;
  display: flex;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(2px); /* 背景をぼかす */
  transition: opacity 0.5s ease;
  opacity: 1;
  pointer-events: auto;
}

#communitiesAlertback {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1350;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.3s ease;
  opacity: 1;
  pointer-events: auto;
  background-color: transparent;
}

.ownerAnnouncementBox {
  overflow-y: auto;
  border-radius: 6px;
  padding: 1rem 0 1rem 1rem;
  scrollbar-gutter: stable;
}

.ownerAnnouncementBox .ownerAnnounceItemsWrapper {
  width: 100% !important;
  margin-left: 1rem !important;
}


.ownerAnnouncementBox .ownerAnnounceItemsWrapper .friendRequestForCommBtn {
  display: none;
}

.ownerAnnouncementBox .ownerAnnouncementItem .friendRequestForCommBtn {
  display: none;
}

#communitiesSendFormCloseBtn {
  position: relative;

  margin: 0 0 1rem auto;
  background-color: transparent;
  border: 1px solid #7c7c7c;
  color: #cccaca;
  font-size: 14px;
  border-radius: 6px;
  opacity: 1;
  z-index: 1001;

  min-width: 120px;
  padding: 0 12px;   /* 左右余白 */
  height: 2rem;

  display: inline-block; /* または inline-flex */
  width: auto;           /* テキストに合わせる */

  transition: opacity 0.2s ease;
}

#communitiesSendFormCloseBtn:hover {
  opacity: 0.7;
}

#communitiesAlertback.is-hidden,
#communitiesSendFormback.is-hidden,
#communityContainer.is-hidden {
  opacity: 0;
  pointer-events: none;
}

#communityWrapper {
  position: absolute;
  width: calc(100% - 1rem);
  height: calc(100% - 1rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 1rem 0 0 1rem;
  z-index: 1000;
  border-radius: 12px;
  overflow: hidden;
  font-size: 12px;
  background-color: #000000c9;
  backdrop-filter: blur(2px);
  color: #cccaca;
  border: 1px solid #54545480;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  grid-template-rows: auto auto auto 1fr;
  grid-template-areas:
    "buttons buttons"
    "friendsLabel communityLabel"
    "friendsList  communityList";
/*  align-items: stretch;
  flex-direction: column;*/
  box-shadow: 18px 18px 24px rgb(16, 16, 16);
  transition: transform 0.5s cubic-bezier(0.5, 0, 0.5, 1);

}

.sendFormTypeLabel {
  width: 100%;
  background-color: #2928285b;
  font-size: 14.5px;
  font-weight: 500;

}

#communitiesSendForm {
  position: absolute;
  width: 65%;
  max-height: 85%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 2rem 2rem 1rem 2rem;
  z-index: 1000;
  border-radius: 12px;
  overflow-y: auto;
  overflow-x: hidden;
  font-size: 13px;
  background: #292828e3;
  color: #cccaca;
  border: 1px solid #545454;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
/*  align-items: stretch;
  flex-direction: column;*/
  box-shadow: 18px 18px 24px rgb(16, 16, 16);
  transition: transform 0.5s cubic-bezier(0.5, 0, 0.5, 1);
  backdrop-filter: blur(6px);
}

.announcementView {
  position: relative;
  width: calc(100% + 1rem);
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  scrollbar-gutter: stable;
}

#communitiesAlertForm {
  position: absolute;
  min-width: 460px;
  max-width: 60%;
  height: 40%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 3rem;
  z-index: 1000;
  border-radius: 12px;
  overflow: hidden;
  font-size: 14px;
  background: #292828e3;
  color: #cccaca;
  border: 1px solid #545454;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
  display: flex;
  flex-direction: column;
  backdrop-filter: blur(6px);
/*  align-items: stretch;
  flex-direction: column;
  box-shadow: 18px 18px 24px rgb(16, 16, 16);
  transition: transform 0.5s cubic-bezier(0.5, 0, 0.5, 1);*/
}

#communitiesAlertArea {
  position: relative;
  height: 100%;
  width: 100%;
  white-space: pre-line;
}

#myInfoPlate {
  grid-column: 1 / -1;       /* 全幅を使う */
  display: flex;
  gap: 32px;
  font-size: 12px;
  margin-bottom: 8px;
}

#friendCodePlate,
#myNamePlate,
#myIdPlate {
  font-size: 13px;
  font-weight: bold;
  color: #cccaca;
  
}

.community-headerLabel {
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
  font-size: 15px;
  font-weight: bold;
  width: 100%;
}

.community-columnLabel {
  font-size: 14px;
  font-weight: 550;
  color: #a0c9d8;
}

#friendsContainerLabel {
  display: block;
}

#communitySearchLabel {
  display: none;
  align-content: end;
}

#communitysContainerTabs {
  width: 100%;

  display: flex;
  align-items: center;
  justify-content: space-between;
  opacity: 0;
  pointer-events: none;
  
}

#communitysContainerTabs.community #inviteCommunityBtn,
#communitysContainerTabs.community #openCommunityBtn {
  display: block;
}
#communitysContainerTabs.community #request_InvitationBtn,
#communitysContainerTabs.community #friendRequestFormBtn {
  display: none;
}

#communitysContainerTabs.friend #inviteCommunityBtn,
#communitysContainerTabs.friend #openCommunityBtn {
  display: none;
}
#communitysContainerTabs.friend #request_InvitationBtn,
#communitysContainerTabs.friend #friendRequestFormBtn {
  display: block;
}


.hasCommunitiesBtn {
  flex: 1;
  background: #29282880;
  font-size: 13px;
  font-weight: bold;
  color: #cccaca8d;
  border-radius: 6px 6px 0 0;
  border: 2px solid #54545435;
  border-bottom: 1px solid #545454;
  height: 32px;
}

.hasCommunitiesBtn.active {
  background: linear-gradient(to right, #0000002d, #2928283d);
  color: #cccaca;
  border: 1px solid #545454;
  border-bottom: transparent !important;

}

.hasCommunitiesBtn.active.left {
  background: linear-gradient(to right, #000000b9, #0000002d);
}

#sendRequestFormLabel {
  margin-bottom: 24px;
}

#friendRequestTargetCodeLabel,
#friendRequestTargetIdLabel {
  font-size: 13px;
}

#friendRequestTargetCodeLabel.NG,
#friendRequestTargetIdLabel.NG {
  color: #ff5555;
}

#sendFriendsLabel {
  font-size: 14px;
  margin-top: 6px;
}

#communitysContainer {
  /*pointer-events: auto;
  cursor: pointer;*/
  padding: 0;
  background-color: #2a2a2aa5;
  background: linear-gradient(to right, #000000b9, #0000002d,  #00000000);
  border: 1px solid #545454d8;
  height: 100%;     /* ← これが無いと全部無意味 */
  min-height: 0;
  border-top: 1px solid #2a2a2a00 !important;  
}


#friendsContainer {
  position: relative;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: none;
  height: 100%;     /* ← これが無いと全部無意味 */
  min-height: 0;
  /*background-color: #2a2a2aa5;*/
}

#openCommSearchDoms {
  padding: 1rem 0;
  background: #29282800;
  border: 1px solid #545454;
  height: 100%;
  width: 100%;
  min-height: 0;
  padding: 1rem;
  display: none;
  flex-direction: column;
  overflow-y: auto;
  background-color: #2a2a2aa5;
}


#searchCommunityInput {
  width: 100%;
  font-size: 14px;
  line-height: 31px;          /* 行高さ（ここをUI基準に合わせてください） */
  padding: 0rem 1rem 0rem 2.2rem;          /* 必要に応じて */
  box-sizing: border-box;
  resize: none;
  overflow-x: auto;        /* 自動リサイズするのでスクロールは出さない */
  height: 31px;           /* JSで同じ値を参照するが、CSSでも保険的に設定 */
  border: 1.5px solid #808080;
  border-radius: 50px;
  color: #1a1a1a;
}

#searchCommunityInput::placeholder {
  color: rgba(0, 0, 0, 0.4);
}

.communitiesAnnounceRuleDesc,
#communitiesSearchBtnsDesc {
  width: calc(100% - 40px);
  margin-left: auto;
  right: 0;
  color: #f2eec3bf;
  white-space: pre-line;
  font-size: 13px;
}

.friendTable {
  display: flex;
  flex-direction: column;
  font-size: 13px;
  overflow-y: auto;
  flex: 1 1 auto;
  scrollbar-gutter: stable;
}

.friendRow {
  position: relative;

  /*
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  */
  display: block;

  padding: 6px 8px;
  border-bottom: 1px solid #646464;
  align-items: center;
  font-size: 14px;
  transition: height 0.3s ease;
  pointer-events: auto;
  background-color: transparent;
  
}

.friendRow.disabled {
  opacity: 0.4;
}

.friendRow.disabled .friendActionArea {
  pointer-events: none;
}

.friendRow .statusDisplay {
  margin-bottom: 3px;
}


.friendActionArea {
  pointer-events: auto;
  height: 25px;
  width: 100%;
  overflow: hidden;

  display: flex;
  justify-content: center; /* 横中央 */
  align-items: center;     /* 縦中央 */

  border: 1px solid #a4a4a465;
  border-radius: 0;
  transition:
    margin 0.25s ease,
    width 0.25s ease,
    border-radius 0.25s ease;

  font-size: 18px;
  letter-spacing: 2px;
  box-sizing: border-box;
  margin: 0 auto 0px auto;

}


.friendActionArea.close {
  border-radius: 16px;
  margin: 0 auto 10px auto;

  font-size: 13px;
  letter-spacing: 0px;

  background-color: #545554cd;
  color: #f6d3eb;
  border: 0.25px solid #9392923d;

  width: 80%;
  min-width: fit-content;
  padding: 0 12px;
}

.friendActionArea:hover {
  background: #3a3a3a81;
  cursor: pointer;
}


.friendActionArea.close:hover {
  background-color: #767d76cd;
}


.friendColorTab {
  position: absolute;
  top: -8px;
  left: 12px;

  cursor: pointer;
  border: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;


  min-width: 16px;
  min-height: 16px;
  max-width: 16px;
  max-height: 16px;

  border-radius: 16px 16px 0 16px; 
  border: 1px solid #808080b4;
  
  /* 右下をきれいに斜めカット */
  clip-path: polygon(
    0% 0%, 
    100% 0%, 
    100% 60%, /* 75%から少し削って斜め感を強調 */
    55% 100%, 
    0% 100%
  );
}

.yellowFont {
  color: #f5e876;
}
.blueFont {
  color: #a0c9d8;
}
.pinkFont {
  color: #e7b0db;
}


.friendRow > div {
  position: relative;
  overflow: hidden;      /* はみ出しを隠す */
}

.friendRow > div span {
  display: inline-block;
  white-space: nowrap;    /* 横に伸ばす */
  transition: none;       /* JSで制御 */
}

/* メンバー行も friendRow と同じ grid に揃える */
.memberRow {
  display: grid;
  grid-template-columns: 0.3fr 1fr 1fr; /* Friend / Name / Notes */
  padding: 6px 8px;
  border-bottom: 1px solid #444;
  align-items: center;
  font-size: 12px;
  line-height: 16px;
  gap: 4px;
  background-color: transparent;
  width: 100%;
  opacity: 1;
  border-radius: 0px;
  transition: border-radius 0.3s ease;
}

/* hover 効果もフレンド側と統一 */
.memberRow:hover {
  background-color: #63636332;
  cursor: pointer;
}

.memberRow > div {
  position: relative;
  overflow: hidden;      /* はみ出したテキストを隠す */
}

.memberRow > div span {
  display: inline-block;
  white-space: nowrap;    /* 横に伸ばして折り返さない */
  transition: none;       /* JSで transform させるのでここはリセット */
}

.memberMoreRow {
  display: flex;
  padding: 4px;
  white-space: rap;
  word-break: break-word;
  font-size: 13px;
}

.memberRow.select {
  border: 1px solid #dadadae4;
  border-radius: 6px;
  padding: 16px 8px 6px;
}

.friendHeader {
  width: 100%;
  font-weight: bold;
  background: #212121;
  color: #ffffffbc;
  border-bottom: 1px solid #dadadae4;
  border-radius: 6px 6px 0 0;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 0 6px 8px;
  position: sticky;
  top: 0;            /* スクロール時に上に固定 */
}

#communityWrapper #friendsContainer .friendHeader {
  width: calc(100% - 15px);
}

.communityBoardInfo .friendHeader {
  width: 100%;
}

.friendRow:not(.friendHeader):hover {
  background-color: #63636332;
  cursor: pointer;
}


.friendRow.active {
  /*border-right: 2px solid #dadadae4;*/
  background: linear-gradient(
    60deg,
    transparent 0 90%,
    #dadadae4 100%
  );

  background: linear-gradient(to right, #dadada00, #dadada00 calc(100% - 8px), #fff 100%);

}
/*
.friendRow.active:hover {
  background: #62634fe1;
}
*/
/*
.friendRow.pending {
  opacity: 0.6;
  pointer-events: none;
}
*/

.emptyDampty {
  margin: 16px auto 36px auto;
  font-size: 14px !important;
}

/* コミュニティブロック全体 */
.communityBlock {
  border: 1px solid #545454;
  border-radius: 8px;
  margin-bottom: 12px;
  margin-top: 16px;
  padding: 0; /* ヘッダーとメンバーのpaddingで調整 */
  background: #2a2a2a;
  display: flex;
  flex-direction: column;
  position: relative;
  box-sizing: border-box;
  color: #ffffffbc;
}

.communityBlock.owner-invite-mode {
  padding: 16px;
  box-sizing: border-box;
  margin: 0;
  height: 100%;
}

.inviteCommunitySettingWrapper {
  border: 1px solid #545454;
  border-radius: 8px;
  margin-bottom: 12px;
  margin-top: 16px;
  background: #2a2a2a;
  display: block;
  box-sizing: border-box;
  color: #ffffffbc;
  padding: 8px 8px 16px;
}

.ownerInviteTitle {
  width: 100%;
  max-width: 600px;
  font-size: 14px;
  font-weight: bold;
  margin: 0 auto 8px auto;
  display: flex;
}

.boardSizeChange {
  display: flex;
  position: relative;
  right: 0;
  margin-left: auto;
  gap: 3px;
  height: 2rem;
}

.boardSizeChangeBtn {
  border: 1px solid #a5a5a5;
  border-radius: 4px;
  background-color: transparent;
  font-size: 16px;
  color: #a5a5a5;
  width: 60px;

}

.boardSizeChangeBtn:hover {
  background-color: #a5a5a588;
}

.communityBlock.owner-invite-mode input {
  width: 100%;
  max-width: 600px;

  max-height: 31px;
  justify-content: flex-start;
  font-size: 13px;
  line-height: 21px;
  padding: 0.26rem 1rem 0.26rem 2.2rem;
  box-sizing: border-box;
  white-space: nowrap;
  overflow: auto;
  min-height: 31px;
  border: 1.5px solid #808080;
  background-color: white;
  color: black;
  border-radius: 16px;
  margin: 0 auto 16px auto;

}

.communityBlock.owner-invite-mode .membersContainer {
  max-height: calc(100vh - 264px);
  margin-bottom: 24px;

}

.ownerInviteWrapper.insertFriendsContainer .communityBlock.owner-invite-mode .membersContainer {
  max-height: calc(100vh - 310px);
  margin-bottom: 24px;

}

/* ヘッダーを friendRow と同じ grid に揃える */
.communityHeader {
  font-weight: bold;
  background: #212121;
  color: #ffffffbc;
  border-bottom: 1px solid #dadadae4;
  border-radius: 6px 6px 0 0;
  font-size: 13px;

  display: grid;
  grid-template-columns: 0.3fr 1fr 1fr; /* Friend / Name / Notes に合わせる */

  padding: 6px 8px;
  gap: 4px
}


/* もし必要ならヘッダー内spanに余白調整 */
.communityHeader span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.friendCommunities,
.memberName,
.memberNotes {
  display: block;         /* スパンでも効くように */
  overflow: hidden;       /* はみ出し部分を隠す */
  white-space: nowrap;    /* 横に折り返さない */
}


.friendName {
  overflow: hidden;       /* はみ出し部分を隠す */
  white-space: nowrap;    /* 横に折り返さない */
  margin: 3px 0;
  width: 100%;
}

.friendNotes {
  width: calc(100% - 40px);
  margin-left: auto;
  overflow: hidden;       /* はみ出し部分を隠す */
  white-space: nowrap;    /* 横に折り返さない */
  margin-bottom: -10px;
}

.editRow {
  position: relative;
  width: 100%;
  padding: 8px 2px;

  display: flex;
  flex-direction: column;
  border-top: 1.5px solid #808080c4;
  background: #2a2a2aba;
  gap: 4px 3px;
}



.editRow .notesInput {
  position: relative;
  width: calc(100% - 32px);
  right: 0;
  margin-left: auto;
}

.editRow .colorContainer {

  display: flex;
  flex-direction: column;
  width: calc(100% - 40px);
  margin: 6px auto 24px auto;

  gap: 12px;
}

.editRow .colortabContainer {

  display: flex;
  justify-content: space-between;
  width: calc(100% - 45px);
}

.colorTab {
  flex: 1;
  cursor: pointer;
  border: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative; 
  z-index: 1;

  color: #dadada79;
  max-width: 32px;
  height: 32px;

  border-radius: 16px 16px 0 16px; 
  border: 1px solid #808080b4;
  
  /* 右下をきれいに斜めカット */
  clip-path: polygon(
    0% 0%, 
    100% 0%, 
    100% 60%, /* 75%から少し削って斜め感を強調 */
    55% 100%, 
    0% 100%
  );
}

.colorTab.selectedColor {
  position: absolute;
  width: 16px;
  height: 16px;
  top: 14px;
  left: 12px;
  color: transparent;
}

.colorTab:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
  z-index: 2;
}

.ownerInviteFooter,
.actionAreaBtns {
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 2rem;
}

.ownerInviteFooter {
  position: relative;

  bottom: 0;
}

.ownerInviteFooter button,
.editRow .saveBtn {
  flex: 1;
  max-width: fit-content;
  min-width: 40%;
  background-color: #545554cd;
  border-radius: 16px;
  color: #f6d3eb;
  border: 0.25px solid #9392923d;
}

.editRow .removeBtn {
  flex: 1;
  max-width: fit-content;
  min-width: 40%;
  background-color: #545554cd;
  color: #f6d3eb;
  border: 0.25px solid #9392923d;
}

.editRow .saveBtn:hover,
.editRow .removeBtn:hover {
  background-color: #767d76cd;
}
/*
.editRow {
  width: 100%;
  padding: 8px 2px;

  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;

  grid-template-areas:
    "remove input"
    ". save";

  gap: 6px;
  border-top: 1.5px solid #808080c4;
  background: #2a2a2aba;
}
*/
/* 左上 
.editRow .removeBtn {
  grid-area: remove;
  justify-self: start;
}*/

/* 右上 
.editRow .notesInput {
  grid-area: input;
  width: 100%;
}*/

/* 右下 
.editRow .saveBtn {
  grid-area: save;
  justify-self: end;
}*/

.inviteClearBtn,
#sendCommInviteBtn,
#searchCommunitysListChangeBtn,
#communitysListChangeBtn {
  height: 1.8rem;
  max-height: 2rem;
  margin-bottom: 12px;
  margin-left: 1rem;
  font-size: 13px;
  width: 50%;
  background-color: #545554cd;
  color: #f6d3eb;
  border-radius: 6px;
  border: none;
}

.inviteClearBtn,
#sendCommInviteBtn {
  height: 2.2rem;
  width: 70%;
  margin: 16px auto 12px auto;
  display: block;
}

.inviteClearBtn:hover,
#sendCommInviteBtn:hover,
#searchCommunitysListChangeBtn:hover,
#communitysListChangeBtn:hover {
  background-color: #767d76cd;
}

#communityBtnWrapper {
  grid-column: 1 / span 2;
  display: flex;
  width: calc(100% - 1rem);
  min-height: 36;
  margin-bottom: 12px;

}

#communitiesAlertWrapper1,
#communitiesAlertWrapper2 {
  display: flex;
  width: 100%;
  min-height: 2rem;
  gap: 24px;
}

#communitiesAlertWrapper1.is-hidden,
#communitiesAlertWrapper2.is-hidden {
  display: none;
}
.alertBtns {
  flex: 1;
  background-color: transparent;
  border: 1px solid #7c7c7c;
  color: #cccaca;
  font-size: 14px;
  border-radius: 6px;
  opacity: 1;
  z-index: 1001;
  height: 2rem;
  transition: opacity 0.2s ease;
}

.alertBtns:hover {
  opacity: 0.7;
}

#communityBtn {
  position: relative;
}

.communityBtn {
  flex: 1;
  min-height: 2rem;
  font-size: 13px;
  align-items: center;        /* 縦中央 */
  justify-content: center;
  background-color: #cccaca00;
  
  background-color: #545554cd;
  color: #1f1f1f;
  color: #f6d3eb;
  border: 0.25px solid #9392923d;

  cursor: pointer;
  pointer-events: auto;
}

.communityBtn:hover {
  background-color: #767d76cd;
}

.communityBtn.active {
  background-color: #767d76cd;
}

.ownerInviteEntryBtn {
  border: 2px solid #ddd !important;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.4s ease, background-color 0.4s ease;
}

.ownerInviteEntryBtn.is-hidden {
  opacity: 0;
  pointer-events: none;
  background-color: #e0e0e0;
}

#receiveMessageContainer,
#searchCommunityContainer,
#createCommunityContainer,
#friendRequestContainer,
#sendMessageContainer {
  display: none;       /* 初期は非表示 */
  flex-direction: column;
  height: 100%;        /* 親の高さに合わせる */
  width: 100%;         /* 必要に応じて親の半分など */
  overflow: hidden;
  box-sizing: border-box;
  border-top: 1px solid #545454d8;

}
#friendRequestContainer {
  display: flex;
  border-top: none;
}

#friendRequestContainerScroller {
  flex: 1;
  min-height: 0;        /* ← 超重要 */
}

#createCommunityContainer,
#sendMessageContainer {
  padding: 16px 0 16px 16px;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

#createCommunityContainer {
  overflow-y: auto;
}

#receiveMessageListScroller,
#searchCommunitysListScroller,
#communitysListScroller {
  display: flex;       /* 初期は非表示 */
  flex-direction: column;
  height: 100%;      /* 親の高さに合わせる */
  min-height: 0;
  width: 100%;
}

#communitysListScroller {
  display: none;
}

#searchOpenCommunitiesList,
#communitysList {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  gap: 32px;
  box-sizing: border-box;
  padding: 8px 0 16px 8px;

  scrollbar-gutter: stable;
}


#friendRequestForm {
  overflow-y: auto;
  height: 100%;           /* 展開時の最大想定高さ */
  opacity: 1;
  padding: 0 0 0 16px;
  margin-bottom: 16px;

  transition:
    max-height 0.6s ease,
    opacity 0.8s ease,
    padding-bottom 0.35s ease;
  scrollbar-gutter: stable;
  
}

#friendRequestForm.is-hidden {
  max-height: 0;
  opacity: 0;
  padding: 0;
  border-bottom: transparent;
  margin: 0;
}

#communitiesSearchBtns,
.joinActionWrapper,
#friendRequestActionBar,
#sendMessageBtnWrapper {
  display: flex;
  width: 100%;
  min-height: 2rem;
  margin-bottom: 12px;
}

#friendRequestActionBar {
  gap: 6px;
}

#communitiesSearchBtns {
  margin: 12px 0 24px;
}

.requestNotesInput {
  flex: 1;
  height: 1.7rem;
  font-size: 13px;
  background: #e0e0e0;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1.7;
  border: none;
}

.requestActions button,
#submitCancelCommunity,
#submitCreateCommunity,
#cancelFriendRequest,
#sendFriendRequestBtn {
  border-radius: 6px;
}


#sendFriendsList {
  width: 100%;
  min-height: 2.3rem;      /* 0人でも潰れない */
  max-height: 9rem;
  overflow-y: auto;        /* ← 重要 */
  display: flex;
  flex-wrap: wrap;
  padding: 0 6px;
  background-color: #f1f1f1;
  color: #444;

  line-height: 2rem;

  display: flex;
  align-items: center;

  border: 1px solid #444;
  border-radius: 4px;
  font-size: 13px;
  margin-bottom: 4px;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
}

#friendRequestTargetCode,
.communitySettingInput,
#friendRequestTargetId,
.requestNotesInput,
#friendRequestTargetNotes,
#communityNameInput {
  margin-bottom: 16px;
  width: 100%;
  height: 2.5rem;      /* 0人でも潰れない */
  display: flex;
  padding: 3px 6px;
  background-color: #f1f1f1;
  color: #282828;
  border: 1px solid #444;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
}

#friendRequestTargetCode {
  padding: 0 16px;
  display: flex;
  min-width: 300px;
  max-width: fit-content;
  text-align: center;
}

.communitySettingTextarea,
#communityTheme,
#friendRequestMessage,
.friendRequestMessage,
#sendFriendsMessage {
  width: 100%;
  min-height: 10rem;
  max-height: 60%;
  background-color: #f1f1f1;
  color: #444;
  border: 1px solid #444;
  border-radius: 4px;
  padding: 6px;
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  resize: vertical;
  overflow-y: auto;
  margin-bottom: 24px;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
}

.announceMessageArea {
  width: 100%;
  background-color: #f1f1f1;
  color: #282828;
  border: 1px solid #444;
  border-radius: 4px;
  padding: 6px;
  box-sizing: border-box;

  overflow-y: hidden;
  resize: none;

  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  margin-bottom: 24px;

  font-family:
    'Hiragino Kaku Gothic Pro',
    'Helvetica Neue',
    Arial,
    sans-serif;
}

.communitySettingTextarea {
  resize: none;
}

#friendRequestMessage {
  max-height: 20rem;
  resize: vertical;
}

.usersettinglabel {
  margin-left: 50%;
  width: 50%;
  color: #d9e2e8;
  font-size: 13px;
  margin-top: 20px;
}

.usersettingUnderBar {
  height: 1px;
  margin-left: 50%;
  width: 50%;
  background: linear-gradient(
    to right,
    #d9e2e8 0%,
    rgba(68, 68, 68, 0) 100%
  );
}


.JoinCommunityBtn,
.JoinedCommunityBtn,
#replyMessageBtn,
#sendMessageBtn {
  min-height: 2rem;
  max-height: 2rem;
  min-width: 50%;
  max-width: fit-content;
  margin-left: auto;
  margin-top: 26px;
  display: flex;
  align-items: center;        /* 縦中央 */
  justify-content: center;
  background-color: #cccaca;
  color: #1f1f1f;
  border: 1px solid #444;
  border-radius: 6px;
  cursor: pointer;
  pointer-events: auto;
}

.JoinedCommunityBtn {
  margin-top: 4px;
}

.inBoard {
  margin-left: 0;
  margin-right: auto;
  margin-bottom: 32px !important;
}

.joinOwnerBtn,
.memberListOpenBtn {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  background-color: #545554cd;
  color: #f6d3eb;
  border-radius: 16px;
}

.joinOwnerBtn:hover,
.memberListOpenBtn:hover {
  background-color: #767d76cd !important;

}

#sendMessageBtn {
  margin-top: 12px;
}
.JoinCommunityBtn:hover,
.JoinedCommunityBtn:hover,
.sendMessageBtn:hover {
  background-color: #e3e3e3;

}

#friendApprovalContainer {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;

  overflow-y: hidden;
}

#receivedRequestList {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 38px;
  padding: 8px 0 20vh 8px;
  overflow-y: auto;
}


.requestRow {
  display: flex;
  flex-direction: column;
  padding: 12px 8px 32px 8px;
  border: 1px solid #666;
  border-radius: 6px;

}

.requestLastRow {
  display: flex;
  flex-direction: column;
  padding: 12px 8px 32px 8px;
  border: 1px solid #666;
  border-radius: 6px;

}

.requestHeaderUid {
  width: 100%;
  font-weight: 550;
  color: #eaeaea;
  /*background: #1f1f1f;
  border: 1px solid #666;
  border-radius: 4px 4px 0 0;*/
  margin-bottom: 12px;
  font-size: 13px;
  
  border-bottom: none;
  
}

.requestNameRow {
  display: flex;
  flex-direction: column;  /* 縦並び */
  padding: 0px 24px;
  gap: 2px;               /* 行間 */
}

.requestNotesWrapper {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  margin-top: 20px;
  margin-bottom: 12px;
}

.requestName {
  font-weight: bold;
  font-size: 14px;
}

.notesInfo {
  background-color: transparent;
  color: #e5df97;
  font-size: 12px;
  padding: 12px 4px 6px 4px;
  white-space: pre-wrap;
  box-sizing: border-box;
  border: none;
  opacity: 0.8;
}

.requestMessage {
  padding: 6px 8px;
  min-height: 3.4em;
  line-height: 1.7;
  font-size: 13px;
  background-color: #e6e6e6;
  color: #1f1f1f;
  width: 100%;
  white-space: pre-wrap;
  box-sizing: border-box;
  border-radius: 4px;
  resize: none;
}

.requestActions {
  min-height: 2rem;
  width: 100%;
  margin-top: 6px;
  display: flex;
  font-size: 12px;
  align-items: center;        /* 縦中央 */
  justify-content: center;
  /*
  background-color: #cccaca;
  color: #1f1f1f;
  border-radius: 6px;*/
  gap: 8px;
  cursor: pointer;
  pointer-events: auto;
  box-sizing: border-box;
  align-self: stretch;
}

#createCommunityForm {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding-bottom: 20vh;
  scrollbar-gutter: stable;
}

.itemWrapper {
  opacity: 1;
  transition: opacity 0.5s ease;
}

.itemWrapper.fadeOut {
  opacity: 0;
}

.themeText {
  position: relative;
  color: #e4e4e4;
  font-size: 14px;
  border: 1px solid #f2eec38b;
  border: none;
  padding: 10px 10px;
  margin-left: 12px;
  margin-bottom: 32px;
  width: calc(100% - 12px);
  white-space: pre-wrap;
  min-height: 6rem;
  
}

.leftUp {
  height: calc(100% - 4px);
  width: 30%;
  position: absolute;
  top: 0;
  left: 0;
  border-top: 1px solid #dfdeda55;
  border-left: 1px solid #dfdeda55;
  border-top-left-radius: 6px;
}
.rightUp {
  height: 80%;
  width: 80%;
  position: absolute;
  bottom: 0;
  right: 0;
  border-bottom: 1px solid #dfdeda55;
  border-right: 1px solid #dfdeda55;
  border-bottom-right-radius: 6px;
}

.inviteSettings,
#friendRequestSelect,
#inviteSettings,
#ownerDisplaySettings,
#communityAccessType,
#communityDissolveSettings {
  width: 100%;
  min-height: 0;
  display: flex;
  margin-top: 36px;
  flex: 1;
  position: relative;
  padding-top: 2.5rem;
}

.inviteSettings {
  margin-top: 0px;
  padding-top: 1rem;
}

#inviteSettings {
  display: none;
}

.joinToggleContainer {
  width: 100%;
  min-height: 0;
  display: flex;
  flex: 1;
  position: relative;
}

#communityDissolveSettings {
  margin-left: 20px;
  width: calc(100% - 20px);
}

#friendRequestSelect {
  margin-top: 26px;
}
#ownerDisplaySettings {
  margin-top: 12px;
  display: none;
}

#inviteMemberDesc,
#inviteMemberDesc,
#ownerDisplayDesc {
  display: none;
}

#inviteSettings {
  padding-top: 0;
  margin-top: 30px;
}

.inviteSettings label,
.joinToggleContainer label,
#friendRequestSelect label,
#inviteSettings label,
#ownerDisplaySettings label,
#communityAccessType label,
#communityDissolveSettings label {
  width: 100%;
  flex: 1;
  font-size: 14px;
  color: #c7dde5;
  display: flex;
  align-items: center;
}

.communityDissolveLabel {
  color: #f3e356;
  color: #a0c9d8 !important;
  font-size: 14px !important;

  margin-top: 28px;
  border-bottom: 1px solid #a0c9d8;
  position: absolute;
  left: 0;
  top: -2rem;
}

.communityDissolveChangeLabel {
  color: #f3e356;
  color: #a0c9d8;
  font-size: 14px;

  margin-top: 16px;
  border-bottom: 1px solid #a0c9d8;
  position: relative;
}



#createCommunityActions {
  min-height: 2rem;
  height: 2rem;
  width: 100%;
  display: flex;
  align-items: center;        /* 縦中央 */
  justify-content: center;
  margin-top: 36px;
  gap: 6px;
}

.settingContainer,
.requestCntainer {
  height: 0px;
  border: none;
  overflow: hidden;
  padding: 0 8px;
  border-radius: 6px;
  position: relative;
  border: 1px solid #a0c9d800;
  transition:
    height 0.35s cubic-bezier(0.1, 0.8, 0.2, 1),
    padding 0.35s cubic-bezier(0.1, 0.8, 0.2, 1),
    border-color 0.2s ease,
    margin-top 0.35s cubic-bezier(0.1, 0.8, 0.2, 1);
  opacity: 0;
  margin: 0;
}

.settingContainer {
  display: flex;       /* 初期は非表示 */
  flex-direction: column;
  position: absolute;
}

.settingContainer.open,
.requestCntainer.open {
  height: 140px;
  border: 1px solid #a0c9d8;
  padding: 0 8px 12px 8px;
  margin-top: 12px;
  opacity: 1;
}
.settingContainer.open {
  height: 380px;
  border: 1px solid #a0c9d8;
  padding: 0 8px 12px 8px;
  margin: 24px 0 24px 0;
  opacity: 1;
  position: relative;
}

.accessDescription {
  color: #c7dde5;
  font-size: 13px;
  white-space: pre-line;
  margin-left: 20px; /* ラベルから少しインデント */
  margin-top: 16px;
}


.openCommunityWrapper {
  margin-top: 16px;
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
}

#communityMessageInput {
  font-family: 
    'Hiragino Kaku Gothic Pro', 
    'Helvetica Neue', 
    Arial, 
    sans-serif;
  font-size: 13px;
  font-weight: 500;
}


.communityTitle {
  font-size: 15px;
  font-weight: 500;
  color: #f6d3eb;
  margin-left: 12px;
}
.communityTitleUnderBar {
  height: 1px;
  margin-left: 12px;
  width: calc(100% - 12px);
  background: linear-gradient(
    to right,
    #d9e2e8 0%,
    rgba(68, 68, 68, 0) 100%
  );
}

.chatInviteWrapper {
  opacity: 1;
  transition: opacity 0.4s ease;
}

.chatInviteWrapper.deleted {
  opacity: 0;
}

/*
.friendBtnWrapper {
  display: grid;

  width: 100%;

  grid-template-columns: max-content 44%;
  grid-template-rows: auto auto;

  gap: 1px 8px;
}
*/

/* 左
.friendWrapperLabel {
  grid-column: 1;
  grid-row: 1;
  color: #e0e0e0ef;
}
 */

/* 下部横幅全部
.communityFriendUnderBar {
  grid-column: 1 / 3;
  grid-row: 2;
}

.communityFriendUnderBar {
  height: 1px;
  width: 100%;
  background: linear-gradient(
    to right,
    #d9e2e8 0%,
    rgba(68, 68, 68, 0) 100%
  );
}
 */
.participants {
  color: #e4e4e4;
  font-size: 12px;
  font-weight: 500;
  margin: 4px 0 10px 26px;
}

.thisCommunityDissolve,
.thisCommunityMe {
  color: #dcdcdc;
  white-space: pre-wrap;
  padding-left: 47px;
  text-indent: -47px;
}

.thisCommunityDissolve {
  margin-top: 16px;
}

.thisCommunityMe::before {
  content: "◆";
  margin-right: 6px;
  margin-left: 28px;
}

.thisCommunityDissolve::before {
  content: "◇";
  margin-right: 6px;
  margin-left: 28px;
}

#communitySearchMoreBtn {
  background-color: transparent;
  border: none;
  color: #fff;
  margin: 32px auto;
  font-size: 14px;
  text-decoration: underline;
}

.penaltyBtn {
  background: none;
  border: none;
  margin-left: 48px;

  color: #f2eec3;
  text-decoration: underline;
  cursor: pointer;
  pointer-events: auto;
  font: inherit;
}

.penaltyBtn:hover {
  color: #f2eec3;
  text-decoration: none;
}

/*
.CommunityAnonymouslyLabel {
  color: #929191;
  margin-left: 26px;
}
.CommunityAnonymouslyLabel::before {
  content: "◆";
  margin-right: 6px;
}
*/

.commLabel {
  color: #ca80e3;  /* 好きな色に */
  font-weight: 600; /* strong 相当 */
  margin-left: 6px;
  margin-top: 12px;
  
}

.commInfoLabel {
  color: #d19be3da;  /* 好きな色に */
  font-weight: 600; /* strong 相当 */
  margin-left: 6px;
  margin-top: 12px;
  
}

.ruleLabel {
  margin-left: 40px;
}

.commOwnerLabel {
  color: #d1acdf;
  font-size: 13px;
  font-weight: 600;
}


.commValue {
  color: #dcdcdc;
  font-size: 14px;
}

.membersContainer {
  overflow-y: auto;

}

.membersContainer.list {
  overflow-y: auto;
}

.declineBtn {
  flex: 1;
  height: 100%;
  padding: 0 12px;
  border: none;
  border-radius: 16px;
  cursor: pointer;
  border-bottom: 1px solid #dfdeda8b;
  background-color: transparent;
  /*transition: transform 0.2s ease, box-shadow 0.2s ease;
  background: linear-gradient(45deg, #9aff9fd4, #e1fac4ce);*/
  color: #d1acdf;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  margin-left: 8px;
  color: #f0eed1c5;  
  background: linear-gradient(to bottom, #bebda3c5, #f3e35600);
}

.declineBtn:hover {
  background: linear-gradient(to bottom, #bebda380, #f3e35600);
  border-top-color: #ffffff80;
  border-left-color: #ffffff80;
  border-right-color: #66666680;
  border-bottom-color: #66666680;
}

.redBtn {
  background-color: #ac3d3d;
  transition: all 0.2s ease;
  color: #f6d3eb;
}

.redBtn:hover {
  background-color: #d02b2b;
  color: #f6d3eb;
}

.pinkBtn {
  background-color: #e7b0db;
  color: #241f23;
}

.pinkBtn:hover {
  background-color: #eec4e5;

}

.Dissolve_Condition {
  margin-top: 12px;
  
}

.friendRequestBtn {
  background-color: transparent;
  border: none;
  font-size: 13px;
  color: #f2eec3;
  margin-top: 4px;
  margin-bottom: 12px;
  margin-left: 40px;
  font-weight: 500;
  border-radius: 50px;
  border: 0.5px solid #f2eec372;
  padding: 3px 18px;
}

.friendRequestBtn:hover {
  /*text-decoration: underline;*/
  border: 0.5px solid #f2eec3;
}

#friendMessageBtn,
#friendManagementBtn {
  position: relative;
}

.unkownAnnounceBadge,
.friendRequestDisplay {
  position: absolute !important;
  border-radius: 50%;
  background-color: #0173c5;
  color: #cfcfce;
  font-size: 10px;
  width: 16px;  /* 幅と高さを指定 */
  height: 16px;
  display: flex; /* 中央寄せ */
  justify-content: center;
  align-items: center;
  top: 0px;    /* バッジを少し外側にずらす */
  right: 0px;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.5s ease;
}

.unkownAnnounceBadge.is-hidden,
.friendRequestDisplay.is-hidden {
  opacity: 0;
}

.empty {
  position: relative;
  margin: 32px auto;

}

.goToBoardBtn {

  height: 2.3rem;
  width: 80%;
  display: flex;
  align-items: center;
  justify-content: center;

  margin: 28px auto 0 auto;
  
  font-size: 15px;
  font-weight: 450;
  background-color: transparent;

  color: #f2eec3;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  border-radius: 50px;
  border: 0.5px solid #f2eec3;
}

.goToBoardBtn:hover {
  /*text-decoration: underline;*/
  border: 0.5px solid #f2eec372;
}

.ownerAnnounceBtn,
.friendInviteBtn {
  min-height: 2.2rem;
  height: auto;
  margin-top: 4px;
  margin-bottom: 4px;

  margin-left: 42px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 450;

  width: 50%;
  min-width: fit-content;
  background-color: transparent;

  display: flex;
  align-items: center;
  justify-content: center;

  color: #d2d2d2;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  border-radius: 50px;
  border: 0.5px solid #dcdcdc;
}

.ownerAnnounceBtn:hover,
.friendInviteBtn:hover {
  /*text-decoration: underline;*/
  border: 0.5px solid #d9d9d972;
}

.ownerAnnounceWrapper {
  display: block;
  width: 100;
  gap: 12px;
  margin: 18px 0 26px;
  padding-right: 8px;
}

.inviteOwnerBtnsWapper {
  pointer-events: auto;
  opacity: 1;
  margin: 16px 0 24px;
  gap: 6px;
  width: 100%;
  max-height: 500px;
  overflow: hidden;
  transition: max-height 0.5s ease, opacity 0.5s ease, margin 0.5s ease;
}

.inviteOwnerBtnsWapper.is-hidden {
  max-height: 0;
  pointer-events: none;
  opacity: 0;
  margin: 0;
  display: none;
}

.inviteOwnerBtn {
  width: 100%;
  font-weight: bold;
  color: #f0eed1c5;
  background-color: transparent;
  font-size: 14px;
  min-height: 2.5rem;
  height: auto;
  background: linear-gradient(to bottom, #bebda3c5, #f3e35600);
  border-radius: 4px;
  border: 1px solid #888;
  border-top-color: #fff;
  border-left-color: #fff;
  border-right-color: #666;
  border-bottom-color: #666;
}

.inviteOwnerBtn:hover {
  background: linear-gradient(to bottom, #bebda380, #f3e35600);
  border-top-color: #ffffff80;
  border-left-color: #ffffff80;
  border-right-color: #66666680;
  border-bottom-color: #66666680;
}

.ownerOutDisplay {
  width: 100%;
  padding: 16px 8px;
  color: #f0eed1c5;
  background-color: transparent;
  font-size: 13px;
  min-height: 2.5rem;
  height: auto;
  white-space: pre-line;
  background: linear-gradient(
    to bottom,
    #bebda3c5 0,
    #f3e35600 32px
  );
  border-radius: 4px;
  border: 1px solid #888;
  border-top-color: #fff;
  border-left-color: #fff;
  border-right-color: #666;
  border-bottom-color: #666;
}

.inviteOwnerOptionMsg {
  width: 100%;
  color: #f0eed1c5;
  font-size: 12px;
  text-align: right;
}


.ownerAnnounceBtn {
  margin: 3px 20% 0 auto;
  position: relative;
}

.typeEnabled {
  padding: 0px 18px;
  font-size: 14px;
  font-weight: 400;
  background-color: transparent;
  display: flex;
  color: #f2eec3;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  border-radius: 50px;
  border: 0.5px solid #f2eec372;
  margin-bottom: 1px;
}

.typeEnabled:hover {
  /*text-decoration: underline;*/
  border: 0.5px solid #f2eec3;
}

body.theme-natsu .typeEnabled {
  color: #f2eec3;
  border: 0.5px solid #f2eec372;
}
body.theme-natsu .typeEnabled:hover {
  border: 0.5px solid #f2eec3;
}

body.theme-haru .typeEnabled {
  color: #302f26;
  border: 0.5px solid #302f2672;
}
body.theme-haru .typeEnabled:hover {
  border: 0.5px solid #302f26;
}

body.theme-aki .typeEnabled {
  color: #f2eec3;
  border: 0.5px solid #f2eec372;
}
body.theme-aki .typeEnabled:hover {
  border: 0.5px solid #f2eec3;
}

body.theme-fuyu .typeEnabled {
  color: #302f26;
  border: 0.5px solid #302f2672;
}
body.theme-fuyu .typeEnabled:hover {
  border: 0.5px solid #302f26;
}

.communityDescription {

  margin-top: 2px;
  margin-left: 50px;

  font-size: 12px;
  font-weight: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #f2eec3bf;
  border: none;
  pointer-events: none;
}

.joinRequestLabel {
  margin-left: 0px;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
  font-size: 12px;
  font-weight: 300;
  display: flex;
  color: #f2eec3bf;
  border: none;
  pointer-events: none;
}

.joinCompletedMsg,
.communityThemeDisplay {
  font-size: 13px;
  margin-top: 8px;
  margin-bottom: 8px;
}



#communityBoardContainer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;

  display: none;
  flex-direction: column;
  z-index: 999;
  transition: opacity 0.5s ease, transform 0.4s ease;
  /*background-image: url("/image/1212a.JPG");1211e*/
  background-size: cover;
  background-position: center;
  opacity: 1;
  pointer-events: auto;

  transform-origin: bottom right;

}

#communityBoardContainer.is-hidden {
  opacity: 0;
  pointer-events: none;
}

#communityMiniOverlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  cursor: pointer;
  pointer-events: auto;
  background: transparent;
}

#communityBoardContainer.is-mini + #communityMiniOverlay {
  display: block;
  z-index: 1000;
}

#communityMiniOverlay,
#communityBoardContainer.is-mini {
  width: 360px;
  height: 240px;

  right: 16px;
  bottom: 16px;
  top: auto;
  left: auto;

  border-radius: 12px;
  overflow: hidden;

  cursor: pointer;
  box-shadow: 0 8px 30px rgba(0,0,0,0.35);
  transform: scale(0.6);
  transform-origin: bottom right;
}

#communityBoardWrapper {
  position: relative;
  pointer-events: auto;
  overflow-y: hidden;
  border: none;
  color: #f6d3eb;
  z-index: 1001;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  /*padding: 1rem 2rem 1rem 0.5rem;*/
}

#communityBoardInfo {
  display: flex;
  flex-direction: column;
  width: 35%;
  min-width: 35%;
  max-width: 90%;
  height: calc(100% - 5.5rem);
  top: 2.6rem;
  border: none;
  margin-left: 0.5rem;
  margin-top: 1rem;
  box-shadow: 12px 12px 18px rgb(16, 16, 16);
  border-radius: 6px;
  transition: opacity 0.2s ease 0s width 0.2s ease;
  overflow: auto;         /* これが必須 */
  resize: horizontal;
  
  position: absolute;  
  z-index: 2;
  backdrop-filter: blur(4px);

  border: 1px solid #545454;
  background: #2a2a2a;
  
}

#CommunityBtnContainer {
  display: flex;
  height: 2rem;
  width: 100%;
  position: relative;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  color: #f6d3eb;
  top: 8px;
  gap: 6px;
  padding: 0 8px;
  
}

#CommunityBtnContainer button {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#CommunityBtnContainer.chat {
  display: flex;
  height: 2rem;
  width: 65%;
  position: relative;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  color: #f6d3eb;
  left: 35%;
  padding: 0 8px 0 16px;
  gap: 6px;
  
}

.community-btn {
  flex: 1;
  height: 100%;
  background-color: transparent;
  color: #f6d3eb;
  font-size: 14px;
  cursor: pointer;
  border: none;
  display: flex;          /* ← これが無い */
  justify-content: center;
  align-items: center;
  transition: all 0.3s ease;
  font-weight: bold;
  border-radius: 50px;
  background-color: #545554cd;
}
.community-btn:hover {
  background-color: #767d76cd;
}

#newThreadBtn.active {
  background-color: #767d76cd;
}

#leaveThreadBtn.disabled,
#newThreadBtn.disabled {
  background-color: #303030cd;
  color: #806e7a;
  pointer-events: none;
  opacity: 0.7;
}

#leaveThreadBtn.is-hidden,
#newThreadBtn.is-hidden {
  display: none;
}


#inlineWidthBtn.active {
  background-color: #767d76cd;
}
/*
#gotoCommunityContainerBtn {
  pointer-events: auto;
  cursor: pointer;
  border: none;
  position: absolute;
  border-radius: 6px;
  width: auto;
  padding: 4px 12px;
  top: 1.5rem;
  right: 2rem;
  background-color: #2a2a2aa5;
  color: #e0e0e0;
  font-size: 14px;
}

#gotoCommunityContainerBtn:hover {
  text-decoration: underline;
}
*/


#communityQandABoardWrapper {
  height: calc(100% - 2.6rem);
  min-height: 0;
  width: calc(65% - 32px);
  margin-left: auto;              /* ← 右寄せはここで完結 */
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  padding-top: 1rem;


  transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;


}


@media (hover: none) and (pointer: coarse) {
  .announcementView,
  #friendTableRows,
  #communityQandABoard {
    padding-right: 16px;
  }

  .ownerAnnouncementBox {
    padding-right: 16px !important;
  }
}


/* Q&Aボード */


#communityQandABoard {
  flex: 1 1 0;
  width: 100%;


  min-height: 0;

  overflow-y: auto;
  overflow-x: hidden;

  padding-bottom: 50vh;

  box-sizing: border-box;
  scrollbar-gutter: stable;

  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}


#communityQandABoard.hidden .threadWrapper {
  display: none;
}

#communityQandABoard.hidden .threadWrapper.active {
  display: block;
  background-color: transparent;
  padding-left: 0;
}

#sendBlock {
  width: 100%;
  max-width: 1000px;

  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);

  display: flex;
  flex-direction: column;

  min-height: 0;
  pointer-events: auto;
  opacity: 1;
  transition: opacity 0.3s ease;

  padding: 0 15px 0 0;
}



#sendBlock.is-hidden {
  pointer-events: none;
  opacity: 0;

}



/* 入力欄 */
.chat-input-wrapper {
  width: 100%;

  position: sticky;
  bottom: 0;

  display: flex;
  align-items: flex-end;
  gap: 8px;

  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(255,255,255,0.1);
  transition: opacity 0.3s ease;
}

/* textarea */
.chat-input-wrapper textarea {
  flex: 1;
  resize: none;
  max-height: 160px;

  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;

  border-radius: 10px;
  border: none;
  outline: none;

  background: rgba(255,255,255,0.12);
  color: inherit;

  color: #fff;
}

/* フォーカス時 */
.chat-input-wrapper textarea:focus {
  background: rgba(255,255,255,0.18);
}

/* 送信ボタン */
.chat-input-wrapper button {
  padding: 8px 14px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-weight: 550;
  opacity: 1;
  font-size: 13px;
  transition: 
    opacity 0.5s ease;
}

.chat-input-wrapper button:hover {
  opacity: 0.7;
}

.threadWrapper {
  backdrop-filter: blur(6px);
  border-radius: 6px;
  padding: 0 12px 16px 12px;
  position: relative;
  overflow: visible;
  padding-left: 22px;
  opacity: 1;
  transition: opacity 1s ease;
  margin-top: 22px;
}

.threadWrapper.removeAni {
  opacity: 0;
}


.myMessageWrapper,
.otherMessageWrapper {
  backdrop-filter: blur(6px);
  border-radius: 6px;
  padding: 0 12px 12px 12px;
  position: relative;
  padding-bottom: 20px;
  overflow: visible;
  margin-top: 22px;
}

.replyWrapper,
.otherMessageWrapper {
  margin-right: 5%;
  width: 95%;
}

.myResWrapper,
.myMessageWrapper {
  margin-left: 5%;
  width: 95%;
}



.threadWrapper.active {
  padding: 0 0 12px 12px;
}

.threadWrapper.active .threadResponses {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 24px;
}

.threadResponses {
  display: none;
}

.chatReplyPreview {
  position: relative;
  width: calc(100% + 6px);
  margin-top: 12px;
  margin-bottom: 12px;
  padding: 0 6px 6px 6px;
  border-radius: 6px;
  left: -6px;
}

.myResWrapper,
.replyWrapper {
  border-radius: 6px;
  padding: 0 12px 12px 12px;
  margin-top: 16px;
}

.myResWrapper.unblur,
.replyWrapper.unblur {
  border-radius: 6px;
  padding: 0 12px 12px 12px;
  margin-top: 16px;
}


.dummyThreadWapper {

  min-height: 48px;
  max-height: 300px;
  width: 100%;
  padding: 8px;

  overflow-y: auto;

  display: flex;
  flex-wrap: wrap;
  gap: 8px;

  box-sizing: border-box;
}

.dummyThreadTag {
  display: inline-flex;
  align-items: center;
  padding: 0 10px 0 0;
  margin: 4px;
  color: #1a1a1a;
  background-color: transparent;

  font-size: 13px;
  font-weight: 500;
}


.chatInviteCommunityBlock,
.communityBlockWrapper {
  background-color: #2a2a2aa5;
  /*box-shadow: 18px 18px 24px rgb(16, 16, 16);*/
  word-break: break-all;
  opacity: 1;
  transition: opacity 1.5s ease;
  position: relative;
}


.community-removing {
  opacity: 0;
}





.threadWrapper.deleted .threadHeader,
.threadWrapper.deleted .threadMainPost,
.myResWrapper.deleted,
.replyWrapper.deleted {
  opacity: 0.4;
}

.chatMessage.deleted .actionDelete {
  display: none;
}

.chatMessage.deleted {
  opacity: 0.4;
}

.threadWrapper.deleted .threadWrapper .chatMessageActions {
  display: none;
}
.threadWrapper.deleted .threadWrapper .replyHeader {
  pointer-events: none;
}
.threadWrapper.deleted .threadWrapper.chatMessageToggle {
  opacity: 0;
}

.replyWrapper.deleted .chatMessageToggle {
  opacity: 0;
  pointer-events: none;
}
.replyWrapper.deleted .chatMessageActions {
  display: none;
}
.replyWrapper.deleted .replyHeader {
  pointer-events: none;
}

.replyWrapper.blocked {
  background-color: transparent !important;
}

/*
.threadWrapper.blocked .memberIdArea,
.threadWrapper.blocked .headerNotesArea,
.threadWrapper.blocked .headerNameArea,
*/

.threadWrapper.blocked .targetBlock,
.replyWrapper.blocked .headerNotesArea,
.replyWrapper.blocked .memberIdArea,

.replyWrapper.blocked .responseNameArea,
.replyWrapper.blocked .replyContainer,
.replyWrapper.blocked .replyPreview,
.threadWrapper.blocked .threadMainPost,
.replyWrapper.blocked .threadResponse {
  filter: blur(6px);       /* ぼかしの強さ */
  opacity: 0.2;            /* 半透明でわかるように */
  pointer-events: none;    /* クリックや選択を無効化 */
  user-select: none;       /* テキスト選択も無効 */
  transition: filter 0.2s, opacity 0.2s; /* なめらかアニメーション */
}

.replyWrapper.blocked .replyHeader {
  border-bottom: 1px solid #7f7e7e2a;
}


.replyPreview.blocked {
  display: none;
}

.replyWrapper.blocked .replyNumber,
.replyWrapper.blocked .chatMessageToggle,
.replyWrapper.blocked .threadDate {
  opacity: 0.3;            /* 半透明でわかるように */
  transition: filter 0.2s, opacity 0.2s; /* なめらかアニメーション */
}

.replyWrapper.unblur .replyNumber {
  opacity: 0.3;            /* 半透明でわかるように */
  transition: filter 0.2s, opacity 0.2s; /* なめらかアニメーション */
}

.threadWrapper .blurReleaseBtn,
.replyWrapper .blurReleaseBtn,
.replyWrapper.blocked .actionReply,
.threadWrapper.blocked .markerBtn,
.replyWrapper.blocked .markerBtn {
  display: none !important;
}

.replyWrapper.unblur .actionReply,
.threadWrapper.unblur .markerBtn,
.replyWrapper.unblur .markerBtn {
  display: none !important;
}

.threadWrapper.blocked .blurReleaseBtn,
.replyWrapper.blocked .blurReleaseBtn {
  display: block !important;

}

.threadWrapper.unblur .blurReleaseBtn,
.replyWrapper.unblur .blurReleaseBtn {
  display: block !important;
}

.replyWrapper.blocked .threadResponse {
  height: 0px;
  margin: 0px;
  padding: 0px;
}

.threadWrapper.blocked .threadMainPost {
  max-height: 60px;
  min-height: 60px;
  background: rgba(37, 37, 37, 0.6);
  margin: 0px;
  padding: 0px;
}

.threadWrapper.blocked .threadMainPost * ,
.replyWrapper.blocked .threadResponse * {
  pointer-events: none;
  user-select: none;
}


button[data-icon]::before {
  content: attr(data-icon);
  margin-right: 6px;
}

.threadHeader,
.replyHeader { 
  border-bottom: 1px solid #7f7e7ec9;
  display: flex;
  /* align-items: center; 縦位置揃え 
  align-items: flex-end;*/
  gap: 0; /* flex-gap は左と中央に効かないように0 */

  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;

  gap: 2px 4px;


  pointer-events: auto;
  cursor: pointer;
  padding: 12px 0 3px;
  font-size: 16px;
}

.replyHeader {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
}

.replyHeader .replyNumber {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: start;
  justify-self: start;
}

.replyHeader .headerLeftArea {
  grid-column: 2 / 4;
  grid-row: 1;
  display: grid;
  grid-template-columns: auto 1fr auto;
}

.replyHeader .chatMessageToggle {
  grid-column: 1;
  bottom: -1px;
  position: relative;
}

.replyHeader .responseNameArea {
  grid-column: 2;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.replyHeader .memberIdArea {
  grid-column: 3;
}

.replyHeader .headerNotesArea {
  grid-column: 2;
  grid-row: 2;
  padding-left: 63px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.replyHeader .headerNotesArea .friendColorTab {
  top: 1px;
  left: 37px;
}

.replyHeader .threadDate {
  grid-column: 3;
  grid-row: 2;
}


.headerLeftArea {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 0 4px;
}

.chatMessageHeader {
  border-bottom: 1px solid #7f7e7ec9;

  display: grid;
  grid-template-columns: 24px auto auto 1fr;
  align-items: end;

  pointer-events: auto;
  cursor: pointer;
  padding-top: 12px;
  font-size: 14px;
  font-weight: 550;
}

.chatMessageReplyHeader {
  border-bottom: 1px solid #7f7e7ec9;

  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: end;


  pointer-events: auto;
  cursor: pointer;
  padding-top: 12px;
  font-size: 14px;
  font-weight: 550;
}

.chatMessageDate {
  justify-self: start;

}

.chatMessageReplyHeader .chatMessageDate {
  padding-left: 32px;

}

.chatMessageSender {
  justify-self: start;
}

.chatMessageHeader .chatMessageSender {
  padding-left: 32px;
}


.threadSetting {
  padding-top: 6px;
  padding-bottom: 4px;
  border-bottom: 0.5px solid #7f7e7ec9;
  background-color: #e0e0e032;
}

.threadLanguageLabel {
  position: relative;
  padding-left: 30px;
  
}

.threadFrameLabel {
  position: relative;
  padding-left: 38px;
}

.threadTagSetting {
  position: relative;
  display: flex;
  padding-left: 38px; 
}

.threadTagLabel {
  padding: 0 8px;
}

.threadLanguageLabel.is-none,
.threadFrameLabel.is-none {
  color: #797979;
}

.chatMessageSender,
.responseNameArea,
.headerNameArea {
  font-size: 14px;
  font-weight: 450;
  opacity: 0.9;
}

.headerNameArea {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.headerNotesArea,
.chatMessageSenderNotes {
  position: relative;
  font-size: 13px;
  font-weight: 400;
  opacity: 0.8;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.headerNotesArea {
  padding-left: 56px;  
}

.headerNotesArea .friendColorTab {
  top: 1px;
  left: 29px;
}

.memberIdArea {
  font-size: 13px;
  font-weight: 400;
  opacity: 0.8;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  /*border-bottom: 1px solid #7f7e7ec9;*/
}

.threadMainPost {
  margin-bottom: 32px;
  white-space: pre-wrap;
  pointer-events: auto;
  padding: 8px 8px 8px 7.7px;
  font-size: 14px;
  line-height: 1.7;
}

.threadResponse {
  white-space: pre-wrap;
  padding: 8px 6px 6px 12px;
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 16px;
}

.threadDate {
  font-size: 13px;
  opacity: 0.8;
  margin-left: auto;
  right: 0;
}

.threadBtnWapper {
  position: relative;
  font-size: 13px;
  border: none;
  width: calc(100% - 20px);           /* ← ここがポイント */
  height: 2rem;
  display: flex;
  top: 0px;
  bottom: 16px;
  left: 20px;
  gap: 12px;
  pointer-events: auto;
  overflow: hidden;
}




.threadsBtn {
  font-size: 13px;
  border: none;
  border-radius: 50px;
  height: 100%;
  padding: 4px 12px;
  
  display: inline-flex;
  align-items: center;
  justify-content: center;

  /*background-color: #d6d6d64d;*/
  cursor: pointer;
  pointer-events: auto;
  white-space: nowrap;
  flex: 0 0 calc((100% - 12px) / 2);
  width: calc((100% - 12px) / 2);
  transition:
    opacity 400ms cubic-bezier(.22,.9,.35,1),
    transform 800ms cubic-bezier(.22,.9,.35,1);
  opacity: 1;
}

.switchReplyBtn {
  transform: translateX(0%);
}

.favoriteBtn {
  transform: translateX(0%);
}

.concludedBtn {
  opacity: 0;
  transform: translateX(100%);
}

.threadWrapper.target .switchReplyBtn {
  transform: translateX(-100%);
  opacity: 0;
}

.threadWrapper.target .favoriteBtn {
  transform: translateX(calc(-100% - 12px));
}

.threadWrapper.target .concludedBtn {
  transform: translateX(calc(-100% - 12px));
  opacity: 1;
}

body.theme-natsu #sendCommunityMessageBtn,
body.theme-natsu .threadsBtn {
  background: linear-gradient(to right, #336133, #336133 34px, #074512 100%);
  color: #e0e0e0;
}
body.theme-natsu .inline-panel,
body.theme-natsu .inline-editor-tab {
  background-color: #86b486;
  color: #031e08;
}
body.theme-natsu .inline-panel:hover,
body.theme-natsu .inline-editor-tab:hover {
  background-color: #86b48688;
  color: #031e08;
}

body.theme-haru #sendCommunityMessageBtn,
body.theme-haru .threadsBtn {
  background: linear-gradient(to right, #bd87bd, #bd87bd 34px, #d9bcd9 100%);
  color: #1e1d1d;
}
body.theme-haru .inline-panel,
body.theme-haru .inline-editor-tab {
  background-color: #975b98;
  color: #d8cfd8;
}
body.theme-haru .inline-panel:hover,
body.theme-haru .inline-editor-tab:hover {
  background-color: #86b48688;
  color: #031e08;
}

body.theme-aki #sendCommunityMessageBtn,
body.theme-aki .threadsBtn {
  background: linear-gradient(to right, #a45151, #a45151 34px, #400606 100%);
  color: #e0e0e0;
}
body.theme-aki .inline-panel,
body.theme-aki .inline-editor-tab {
  background-color: #e28787;
  color: #1e0303;
}
body.theme-aki .inline-panel:hover,
body.theme-aki .inline-editor-tab:hover {
  background-color: #86b48688;
  color: #031e08;
}

body.theme-fuyu #sendCommunityMessageBtn,
body.theme-fuyu .threadsBtn {
  background: linear-gradient(to right, #8da8bf, #8da8bf 34px, #c4dbeb 100%);
  color: #1e1d1d;
}
body.theme-fuyu .inline-panel,
body.theme-fuyu .inline-editor-tab {
  background-color: #516679;
  color: #d9e2e8;
}
body.theme-fuyu .inline-panel:hover,
body.theme-fuyu .inline-editor-tab:hover {
  background-color: #86b48688;
  color: #031e08;
}

body.theme-natsu #sendCommunityMessageBtn:hover,
body.theme-natsu .threadsBtn:hover {
  background: linear-gradient(to right, #336133, #336133 34px, #336133 100%);

}

body.theme-haru #sendCommunityMessageBtn:hover,
body.theme-haru .threadsBtn:hover {
  background: linear-gradient(to right, #bd87bd, #bd87bd 34px, #bd87bd 100%);

}

body.theme-aki #sendCommunityMessageBtn:hover,
body.theme-aki .threadsBtn:hover {
  background: linear-gradient(to right, #a45151, #a45151 34px, #a45151 100%);

}

body.theme-fuyu #sendCommunityMessageBtn:hover,
body.theme-fuyu .threadsBtn:hover {
  background: linear-gradient(to right, #8da8bf, #8da8bf 34px, #8da8bf 100%);

}


.sendCommunityBtn {
  flex: 1;
  height: 100%;
  background-color: transparent;
  color: white;
  font-size: 12px;
  cursor: pointer;
  border: none;
}

.folder-sendCommunityBtn-languageBtn:hover {
  background-color: #767d76cd;
}


#sendSelectLanguageLabel,
#sendSelectFrameLabel {
  min-height: 1.8rem;
}

#SendEditorTabBtn,
.SendCustomPanelBtn {

  transition: opacity 0.5s ease;
  border: none;
  /*box-shadow: 18px 18px 24px rgb(16, 16, 16);*/
  font-size: 13px;
  padding: 4px 12px;
  min-width: 80px;
  z-index: 1000;
  display: block;
}

.SendCustomPanelBtn {
  position: relative;
  top: -6px;
  align-self: flex-end;
  margin-bottom: 2px;
  border-radius: 50px;  
}

#SendEditorTabBtn {
  position: absolute;  
  top: 48px;
  right: 12px;
  border-radius: 4px;  
}



#SendEditorTabBtn.is-hidden,
.SendCustomPanelBtn.is-hidden {
  display: none;
}

.threadTags {
  display: flex;
  flex-direction: column;
  gap: 6px;
}


.inline-panel {
  cursor: pointer;
  border-radius: 50px;
  font-weight: 600;
  pointer-events: auto;
  margin-left: 3px;
  margin-right: 3px;
  width: auto;
  height: auto;
  font-size: 13px;
  letter-spacing: 0em;
  padding: 4px 12px;

}
.inline-panel:hover {
  background: rgba(0,0,0,0.12);
}

.inline-editor-tab {
  cursor: pointer;
  border-radius: 4px;
  font-weight: 600;
  pointer-events: auto;
  margin-left: 3px;
  margin-right: 3px;
  width: auto;
  height: auto;
  padding: 4px 12px;

  font-size: 13px;
  letter-spacing: 0em;
}
.inline-editor-tab:hover {
  background: rgba(0,0,0,0.12);
}


#selectDataPopUp {
  border-radius: 50px;
  background-color: #545554cd;
  color: #f6d3eb;
  font-size: 13px;
  padding: 2px 16px;
  position: absolute;

  min-width: 180px;
  width: fit-content;
  max-width: 40%;
  
  height: 1.8rem;
  z-index: 1000;
  bottom: 26px;
  left: 10px;
  pointer-events: auto;
  opacity: 1;  
  transition: opacity 0.16s ease;
}

#selectDataPopUp.is-hidden {
  pointer-events: none;
  opacity: 1;
}

#selectDataPopUp:hover {
  background: rgba(177, 177, 177, 0.856);
  
}

#sendCommunityInput {
  padding-bottom: 58px;
  border-radius: 6px;
}


.threadWrapper.is-hidden {
  display: none;
}

.compare-editor-wrap {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  z-index: 9999;
  overflow: hidden;
}

.cm-left, .cm-right {
  height: 100%;
  overflow: auto;
  min-width: 0;

}

.cm-right {
  max-width: 10%;
}


.inline-editor-host {
  position: relative;
  max-height: 60vh;
  height: auto;
  min-height: 0;
  overflow: auto;
  margin: 16px 0 0 0;
  left: -12px;
  width: calc(100% + 18px);
  scrollbar-gutter: stable;

  left: -24px;
  width: calc(100% + 44px);
}

.threadWrapper .inline-editor-host {
  left: -24px;
  width: calc(100% + 44px);
}

.threadWrapper.target .inline-editor-host {
  left: -18px;
  width: calc(100% + 28px);
}

.threadResponse .inline-editor-host {
  left: -19px !important;
  width: calc(100% + 37px) !important;
}

.chatMessage .inline-editor-host {
  left: -7px !important;
  width: calc(100% + 18px) !important;
}

.cm-left .inline-editor-host.left {
  max-height: none;
  height: 100%;
  overflow: auto;
  margin: 0;
}


.inline-editor-host-btns {
  display: flex;
  height: 2rem;
  width: 100%;
  position: relative;
  align-items: center;
  justify-content: space-between;
  margin: 12px 0 0 0;
  gap: 12px;
  color: #f6d3eb;
}

.inline-editor-host-btn {
  flex: 1;
  height: 100%;
  background-color: transparent;
  color: white;
  font-size: 13px;
  cursor: pointer;
  border: none;
  display: flex;          /* ← これが無い */
  justify-content: center;
  align-items: center;
  transition: all 0.3s ease;
  font-weight: bold;
  border-radius: 50px;
  background-color: #4f4f4f;
}

.inline-editor-host-btn:hover {
  background-color: #949494;
}

.inline-editor-host .CodeMirror {
  height: 100%;
  font-size: 12px;
}





/* フォーカス状態 */
.threadWrapper.is-editor-focus .threadMainPost > * {
  opacity: 0.15;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

/* editor だけは生かす */
.threadWrapper.is-editor-focus .inline-editor-host,
.threadWrapper.is-editor-focus .inline-editor-host-btns {
  opacity: 1;
  pointer-events: auto;
}

/* editor を大きく */
.threadWrapper.is-editor-focus .inline-editor-host {
  max-width: 100%;
  transform: scale(1.05);
  z-index: 10;
}

/* ボタンも少し目立たせる */
.threadWrapper.is-editor-focus .inline-editor-host-btns {
  position: sticky;
  top: 0;
  z-index: 11;
}

.threadMainPost.is-editor-focus .inline-editor-host {
  position: relative;
  z-index: 10;
  transform: scale(1.05);
}

.threadMainPost.is-editor-focus > :not(.inline-editor-host):not(.inline-editor-host-btns) {
  opacity: 0.1;
  pointer-events: none;
}

#communityBoardInfo.widthViewMode {
  opacity: 0;
  pointer-events: none;
  position: absolute;

}

#communityQandABoardWrapper.widthViewMode {
  display: flex;
  width: 100%;
}

#communityQandABoard.widthViewMode {
  width: 100%;

  padding: 0 16px 50vh 32px;
}

#communityQandABoardWrapper.widthViewMode #sendBlock {
  position: relative;
}

#inline-btns.widthViewMode {
  position: absolute;
  width: 100%;
  top: 0;
}

#threadCMWrapper.widthViewMode {
  position: absolute;
  width: 100%;
  top: calc(2rem + 16px);
  height: 100%;
  
}



#receiveMessageList {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0 0.5rem 0 1rem;
  gap: 0.5px;
}

#messageInboxLabel {
  position: relative;
  font-size: 16px;
  font-weight: 400;
  left: 1rem;
}

.messageRow {
  padding: 6px 10px;
  border: 1px solid #a0c9d8;
  cursor: pointer;
  font-size: 14px;
}

.messageRow:hover {
  background: #464646f5;
}

.messageHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 0.5px solid #a0c9d85a;
}

.senderDisplayName {
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 70%;
  font-weight: 600;
}

.messageDate {
  margin-left: auto;
  text-align: right;
  font-size: 13px;
  opacity: 0.7;
}

.messagePreview {
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 4px 0;
}


.chatMessageBody {
  white-space: pre-wrap;
  letter-spacing: 0.02em;
  font-size: 14px;
  line-height: 1.7;
  border-radius: 6px;
  pointer-events: auto;
  padding: 8px 8px 8px 7.7px;
}


#communityQandABoardWrapper.width .replyWrapper,
#communityQandABoardWrapper.width .otherMessageWrapper {
  width: 95%
}

#communityQandABoardWrapper.widthView .myResWrapper,
#communityQandABoardWrapper.width .myMessageWrapper {
  margin-left: 5%;
  width: 95%;
}

.chatMessageNotes {
margin-left: 14px;
margin-right: 4px;
font-size: 14px;
font-weight: 500;
opacity: 0.7;
}

.chatMessageDate {
  font-size: 13px;
  opacity: 0.8;
  right: 0;
  left: auto;
}


.chatMessageToggle {
  background-color: transparent;
  border: none;
  width: 24px;
  text-align: start;
  color: inherit;
  pointer-events: auto;
  opacity: 0.4;
  font-size: 13.5px;
  transition: all 0.5s ease;
}

.alineCenter {
  text-align: center;
  width: 32px;
}

.chatMessageHeader:hover .chatMessageToggle,
.threadHeader:hover .chatMessageToggle,
.replyHeader:hover .chatMessageToggle {
  opacity: 1;
  
}

.chatMessage.deleted .chatMessageHeader {
  pointer-events: none;
}


.chatMessageActions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;  
  flex-wrap: wrap;
  gap: 2px;

  overflow: hidden;

  max-height: 0;
  padding: 0;
  margin-top: 0;
  margin-bottom: 0;

  background-color: transparent;
  opacity: 0;

  transition:
    max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.2s ease,
    margin 0.25s ease;
}

.chatMessageActions.open {
  max-height: 500px;
  padding: 1px;
  margin-top: 12px;
  margin-bottom: 12px;

  opacity: 1;
}


.chatMessageActions button {
  font-size: 13px;
  border: none;
  border-radius: 0px;
  height: 100%;
  flex: 1;
  padding: 0 6px;
  height: 2.2rem;   
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background-color: #d6d6d64d;
  cursor: pointer;
  pointer-events: auto;
  white-space: nowrap;
  opacity: 1;
}

.chatMessageActions button {


  flex: 1 1 calc(50% - 1px);

  min-width: 80px;

  max-width: calc(50% - 1px);

  opacity: 0;
  pointer-events: none;

  /* 左上に重なっている状態 */
  transform: translate(-180px, 0px);

  transition:
    opacity 400ms cubic-bezier(.22,.9,.35,1),
    transform 460ms cubic-bezier(.22,.9,.35,1);

  border-radius: 0;
}


/* 右 */
.friendBtn {
  width: 100%;
  max-width: none !important;
  flex: none !important;

  grid-column: 2;
  grid-row: 1;
}

  /*
  clip-path: polygon(
    0% 0%,
    calc(100% - 0px) 0%,
    100% 100%,
    20px 100%
  );
  */
.chatMessageActions.open button {
  opacity: 1;
  pointer-events: auto;
  transform: translate(0, 0);
}

.chatMessageActions.open button:nth-child(1) {
  transition-delay: 0.03s;
}

.chatMessageActions.open button:nth-child(2) {
  transition-delay: 0.06s;
}

.chatMessageActions.open button:nth-child(3) {
  transition-delay: 0.09s;
}

.chatMessageActions.open button:nth-child(4) {
  transition-delay: 0.12s;
}

.chatMessageActions.open button:nth-child(5) {
  transition-delay: 0.14s;
}

.chatMessageActions.open button:nth-child(6) {
  transition-delay: 0.16s;
}

.chatMessageActions.open button:nth-child(6) {
  transition-delay: 0.18s;
}

.replyPreview {

  position: relative;
  width: calc(100% + 20px);
  margin-bottom: 12px;
  padding: 0 6px 18px 12px;
  border-radius: 6px;
  left: -12px;
}

.noMarginB {
  margin-bottom: 0;
}

.friendRequestBox,
.reportForm {
  font-size: 13px;
  padding: 1rem;
  margin-top: 6px;
  margin-bottom: 6px;
  width: 100%;
  overflow-y: auto;
}

.friendRequestBox.is-hidden {
  display: none;
}

#sortCommunitySelect {
  padding: 4px 6px;
  width: 100%;
  font-size: 14px;
}

#sortCommunitySelect.option {
  font-size: 14px;
}

#sortCommunitySelectLabel {
  position: relative;
  margin-top: 12px;
  font-size: 13px;
}

#searchCommSetWrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
  margin-top: 24px;
  border-top: 6px solid #88888867;
  border-bottom: 6px solid #88888867;
  padding: 8px 0 16px;
}

#searchCommSetWrapper label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
}

#searchCommSetWrapper label:first-of-type {
  grid-column: 1;
  grid-row: 1;
}

#searchCommSetWrapper label:last-of-type {
  grid-column: 2;
  grid-row: 1;
}

#searchCommBtn {
  grid-column: 1 / 3;
  grid-row: 2;

  justify-self: center;
  transition: transform .25s ease;
}

#searchCommBtn.left {
  transform: translateX(-130%);
}

#searchCommBtn.right {
  transform: translateX(0%);
}

#searchCommSetWrapper input[type="radio"] {
  margin: 0;
}


.reportsSelect {
  padding: 4px 6px;
  width: 75%;
}

.reportsText {
  resize: vertical;
  min-height: 6em;
  max-height: 18em;
  padding: 4px 6px;
  
}

.reportsDiv {
  min-height: 6em;
  padding: 4px 6px;
  
}


.friendRequestForCommBtn,
.reportsSendBtn {
  margin-left: 60%;
  width: 40%;
  height: 2rem;
  border: none;
  border-radius: 50px;
  text-align: center;
  padding: 0;
  background: #e0e0e0;
  transition: all 0.3s ease;
  color: #333;
}

.friendsRowBtn {
  min-width: 50%;
  right: 0;
  padding: 0 12px;   /* 左右余白 */
  height: 2rem;
  color: #1e1d1d;
  border: none;
  border-radius: 50px;
  background: #e0e0e0;

  display: inline-block; /* または inline-flex */
  width: auto;           /* テキストに合わせる */

  transition: all 0.3s ease;
}

.saveBtn {
  min-width: 50%;
}
.removeBtn {
  margin-left: 0;
}

.friendsRowBtn:hover,
.friendRequestForCommBtn:hover,
.reportsSendBtn:hover {
  background: #fff;
}

.friendRequestForCommBtn.toneDown {
  background: #808080;
}

.notesInput {
  width: 100%;
  padding: 4px 6px;
  background-color: #ffffff;
  color: #282828;
  border: 1px solid #444;
  border-radius: 4px;
  line-height: 1.4;
  font-size: 13px;
  margin-bottom: 6px;
}

.friendRequestNotes {
  width: 100%;
  padding: 4px 6px;
  background-color: #ffffff;
  color: #2b2a2a;
  border: 1px solid #444;
  border-radius: 4px;
  line-height: 1.4;
  font-size: 13px;
  margin-top: 6px;
  margin-bottom: 12px;
  opacity: 0.8;
}

.friendRequestNotes::placeholder {
  color: rgba(0,0,0,0.4);
}

.friendRequestMessage {
  width: 100%;
  min-height: 11rem;
  max-height: 60vh;
  background-color: #ffffff;
  color: #2b2a2a;
  border: 1px solid #444;
  border-radius: 4px;
  padding: 6px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 1.7;
  resize: vertical;
  overflow-y: auto;
  margin-top: 4px;
  margin-bottom: 6px;
  opacity: 0.8;
}

.community-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

