@charset "utf-8";
/* z-index list
noscript_filter		                9999
moveObj         (ﾓｰﾀﾞﾙの移動table)	   22
modal-overlay	(ﾓｰﾀﾞﾙ背景)	           21
header	ﾍｯﾀﾞｰ	                      20
.side-scroll-btn (ｻｲﾄﾞﾊﾟﾈﾙ上下ﾎﾞﾀﾝ)	   11
#sidePanel	                         10
#nav-open       (ｱｲｺﾝ(≡))	          10
hotHostInline   (ｲﾝﾗｲﾝhondsontable)   10
その他 -1,0,1は省略 */

/*────────────────────────────
  HTML配置構成
────────────────────────────*/
#header-box ~ #contains-wrapper {
  top: 50px; /* 余白設定(ﾍｯﾀﾞｰのｽﾍﾟｰｽを確保) */
  min-height: calc(100% - 50px);
}

/*────────────────────────────
  タグセレクター（要素セレクター）部分
────────────────────────────*/
/* default */
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  -webkit-overflow-scrolling: touch;
}

body {
  color: #000;
  line-height: 1.5;
  font-size: 16px;
  font-family: "メイリオ", "Roboto", "SegoeUI", Arial, sans-serif;
  /* 'ヒラギノ角ゴシック', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', 'Meiryo,Meiryo UI', sans-serif; */
  margin: 0;
  padding: 0;
  background: #ddebf7;
}

ul,
li {
  margin: 0;
  padding: 0;
  list-style-type: none;
  line-height: 0;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

/* link */
a {
  text-decoration: none;
}

img {
  border: none;
}

hr {
  position: relative; /* 擬似要素配置の基準 */
  border: none;
  height: 8px; /* ドットの縦サイズに合わせる */
}

hr::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle,
    #75a6df 4px,
    /* 半径:hrのheight/2 */ transparent 1px /* 以降は透明 */
  );
  background-size: 30px; /* 横間隔10px、縦ライン高さ2px */
  animation: dot-move 12s linear infinite;
}
@keyframes dot-move {
  to {
    background-position: 30px 0;
  }
}

/*────────────────────────────
  header部分
────────────────────────────*/
/* header */
header {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  flex-flow: row nowrap;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  border-bottom: 1px solid #999;
  background: #ddebf7;
  z-index: 20;
  user-select: none; /* テキスト選択を無効化 */
}

/* 左上のロゴ(サービス名) */
/* ロゴ領域（#logo）のスタイル設定 */
#logo {
  display: flex; /* Flexbox レイアウトを使用 */
  flex-flow: column nowrap; /* 子要素を縦方向に配置し、折り返しはしない */
  justify-content: center; /* 主軸（上下方向）で中央揃え */
  align-items: center; /* 交差軸（左右方向）で中央揃え */
  height: 100%; /* 高さは親要素に合わせる */
  min-width: 280px; /* 最小幅も280pxに設定 */
  line-height: 18px; /* 行の高さを18pxに設定 */
  color: #000; /* テキストの色を黒に設定 */
  margin-top: 10px;
}

#main-logo {
  font-size: 18px;
  font-weight: bold;
}

#small-logo {
  font-size: 13px;
  letter-spacing: 10px;
}

/* メニューラッパー */
#header_menu {
  display: flex;
  flex-flow: column nowrap;
}

/* ドロップダウンメニュー */
.dropdown_menu {
  position: relative;
}

.dropdown_menu a,
.dropdown_menu label {
  display: block;
  text-align: center;
}

.dropdown_menu ul {
  display: none;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 1px); /* X と Y を同時に制御 */
  background: #3c8dbc;
  box-shadow: 0 2px 12px rgba(3, 28, 43, 0.5);
  border-radius: 8px;
  border: 2px solid #ffffff;
  overflow: hidden; /* ← 重要 */
  white-space: nowrap;
}

.dropdown_menu:hover ul {
  display: block;
  background-color: #a1d7f7;
}

.dropdown_menu a:hover,
.dropdown_menu label:hover {
  background: #a1d7f7;
  cursor: pointer;
}
/* ドロップダウンアイテム */
.dropdown_item {
  border-bottom: 1.5px solid #ffffff;
}

.dropdown_item:first-child a,
.dropdown_item:first-child label {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

.dropdown_item:last-child {
  border-bottom: none;
}

/* 4. ホバー時にも子要素の角丸を維持 */
.dropdown_item a,
.dropdown_item label {
  display: block;
  font-size: 14px;
  padding: 16px 12px; /* 表示枠の大きさ */
  text-align: left;
  color: #000; /* 黒文字 */
}

/* ドロップダウンアイテムにホバーしたときに薄暗く */
.dropdown_item:hover a,
.dropdown_item:hover label {
  filter: brightness(0.9);
}

.dropdown_item2 {
  background: #f3f9ff;
  display: flex;
  font-size: 14px;
  padding: 15px 12px 5px; /* 表示枠の大きさ */
  text-align: left;
  border-bottom: 1.5px solid #ffffff;
  flex-direction: column; /* 縦並びにして gap を効かせる */
  gap: 14px; /* 各行間に 6px の隙間 */
}

/* ヘッダー内のボタン */
.button01 {
  padding: 5px 10px 5px; /* 内側の余白 */
  display: inline-flex !important; /* 縦並びに */
  flex-direction: column; /* アイコンの下に文字を配置 */
  align-items: center; /* 中央揃え */
  justify-content: center;
  background-color: transparent; /* 基本色 */
  color: #000000;
  border: none;
  border-radius: 6px;
  font-size: 28px;
  cursor: pointer;
  transition:
    background-color 0.2s,
    filter 0.1s;
  text-decoration: none; /* リンクの下線を消す */
}

/* アイコンだけ28px に */
.button01 .outline-icon {
  font-size: 28px;
  color: transparent; /* 中身を消す */
  -webkit-text-stroke: 1.2px #000000;
}

.button01 .button01-label {
  font-size: 12px;
  margin: 6.5px 0px 4px; /* アイコンと文字の間隔 */
  display: inline-flex;
  align-items: center;
  white-space: nowrap; /* 横方向の縮小を防ぐ */
}

/* Hover: 背景を明るく */
.button01:hover {
  background-color: #a1d7f7;
}

/* Active（押し下げ時）: 背景を少し濃く */
.button01:active {
  background-color: #5fb3e3;
  filter: brightness(0.9);
}

/* login_btn */
#login_btn {
  display: block;
  color: #fff;
  font-weight: 500;
  font-size: 14px;
  background: #903;
  text-align: center;
  padding: 10px;
  border-radius: 10px;
}

#login_btn:hover {
  background: rgb(82, 0, 0);
}

/*────────────────────────────
  サイドパネル部分
────────────────────────────*/

/* sidePanel */
#sidePanel {
  position: fixed; /* ビューポート固定 */
  top: 50px;
  left: 0;
  width: 250px;
  max-width: 250px;
  height: calc(100% - 50px);
  background: #f6faff;
  box-shadow: 0 0 25px rgba(15, 36, 56, 0.2);
  color: #0f2438;
  transition: 0.3s ease-in-out;
  -webkit-transition: 0.3s ease-in-out;
  z-index: 10; /* ｱｲｺﾝ(≡)と同じ高さ */
  overflow-x: hidden;
  overflow-y: hidden; /* スクロールバーを消す */
  -webkit-overflow-scrolling: touch;
  user-select: none; /* テキスト選択を無効化 */
}

/* ｱｲｺﾝ(≡) */
#nav-open {
  position: fixed;
  top: 50px;
  left: 250px;
  color: #555;
  background: #fff;
  display: block;
  font-size: 30px;
  width: 30px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  border-radius: 0 0 10px 0;
  box-shadow: 0 0 20px rgba(15, 36, 56, 0.4);
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  transition: 0.3s ease-in-out;
  -webkit-transition: 0.3s ease-in-out;
  cursor: pointer;
  z-index: 10; /* ｻｲﾄﾞﾊﾟﾈﾙと同じ高さ */
  user-select: none; /* テキスト選択を無効化 */
}

#nav-open:hover {
  color: #b3b3b3;
}
.panel-title {
  display: flex; /* 文字位置調整の基本 */
  justify-content: center; /* 横寄せも一緒に中央に */
  align-items: center; /* ← これで縦中央寄せ */
  height: 48px;
  font-weight: 700;
  letter-spacing: 3px;
  background: linear-gradient(180deg, #e6f8ff, #f5f9ff);
  color: #0f2438;
}

.category-wrapper {
  position: relative;
}

/* 各カテゴリーの全体スタイル */
.category {
  margin: 0px 10px 12px;
  border: 1px solid #abbecf;
  border-radius: 10px;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}

/* カテゴリータイトル（クリック可能な部分） */
.category-title {
  position: relative; /* 絶対配置の親にする */

  background-color: #f0f0f0;
  z-index: 0; /* before+1 */

  display: flex;
  align-items: center; /* ← これで縦中央寄せ */
  justify-content: space-between;
  padding: 5px 14px;
  color: #0f2438;
  font-weight: 700;
  border-bottom: 1px solid rgba(201, 216, 230, 0.6);
}

/* 共通スタイル（2つの矢印） */
.category-title::after,
.category-title::before {
  font-size: 10px;
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%) rotate(30deg);
  transition:
    opacity 0.4s ease,
    transform 0.4s ease,
    color 0.4s ease;
}

/* ﾀｲﾄﾙの後に'◀'を生成 */
.category-title::after {
  content: "◀";
  color: #6b7a8c;
  opacity: 1;
}
/* ﾀｲﾄﾙの後に開いた後の'◁'を生成 */
.category-title::before {
  content: "◁";
  color: #6200ff;
  opacity: 0;
}

.category-title:hover {
  background: #eaf5ff;
}

.category-num {
  position: absolute; /* 親に対して絶対配置 */
  top: 0px; /* 上へはみ出す量は調整 */
  left: 2px; /* 左へはみ出す量は調整 */
  font-size: 40px;
  line-height: 1;
  color: rgb(224, 226, 255);
  pointer-events: none; /* クリックを邪魔しない */
  z-index: -1; /* 文字より下に */
}

/* 開閉時 */
.toggle-input:checked + .category-title {
  background: #eaf5ff;
}
.toggle-input:checked + .category-title::after {
  opacity: 0;
  transform: translateY(-50%) rotate(330deg);
}
.toggle-input:checked + .category-title::before {
  opacity: 1;
  transform: translateY(-50%) rotate(330deg);
}
.toggle-input:checked + .category-title + .sub-category {
  max-height: 500px; /* コンテンツに合わせた適切な値に調整 */
  padding: 0.3em 0.5em; /* 展開時の余白 */
}

/* 
  サブカテゴリー（閉じた状態）：ここで定義した transition が、
  開くときのアニメーション（閉じた状態から変化するタイミング）に適用される
*/
.sub-category {
  padding: 0em 0.5em; /* 初期状態では padding-top は 0 にして隠す */
  max-height: 0; /* 内容を隠すため高さを 0 に */
  overflow: hidden;
  /* 開くときのアニメーション秒数（ここでは 0.5s） */
  transition:
    max-height 0.1s ease-out,
    padding 0.25s ease;
}

/* サブカテゴリー内の各項目 */
.sub-category li {
  line-height: 1;
}

/* サブ項目リンク */
.sub-category a {
  position: relative; /* 疑似要素の位置基準にするため */
  display: block;
  padding: 8px 10px;
  font-size: 15px;
  border-radius: 15px;
  color: #000000;
  text-decoration: none;
  transition:
    background 0.15s,
    color 0.15s;
}
.sub-category a:hover {
  background: #eaf5ff;
}
.sub-category a.active,
.sub-category a[aria-current="page"] {
  background: rgba(60, 141, 188, 0.12);

  font-weight: 700;
}
/* ﾀｲﾄﾙの前にﾄﾞｯﾄを生成 */
.sub-category a::before {
  content: "";
  display: inline-block; /* 幅・高さを有効にする */
  width: 8px;
  height: 8px;
  margin-right: 8px; /* テキストとの間隔 */
  border-radius: 50%;
  background: #3c8dbc;
  vertical-align: middle; /* テキスト中央に揃える */
}

/* ▲▼ボタンの共通スタイル */
.side-scroll-btn {
  display: none;
  position: fixed; /* ← fixed から absolute に変更 */
  left: 210px; /* ビューポート左端からの距離 */
  width: 38px;
  height: 38px;
  background: rgba(60, 141, 188, 0.65);
  color: #fff;
  font-size: 30px;
  border: none;
  border-radius: 50%;
  z-index: 11; /* ｻｲﾄﾞﾊﾟﾈﾙ+1 */
  cursor: pointer;

  align-items: center;
  justify-content: center;
  user-select: none;

  transition:
    background 0.2s ease,
    opacity 0.5s ease;
  box-shadow: 0 2px 8px rgba(60, 141, 188, 0.15);
}

.side-scroll-btn:hover {
  opacity: 1;
  background: rgba(60, 141, 188, 0.35);
}

/* 「戻る（上へ）」ボタン */
#sideScrollUpBtn {
  top: 53px; /* ビューポート上端から12px下 */
}

/* 「進む（下へ）」ボタン */
#sideScrollDownBtn {
  bottom: 6px; /* ビューポート下端から12px上 */
}

/*────────────────────────────
  条件選択or入力部分 contains-wrapper 
────────────────────────────*/

/* 見出し(主)スタイル */
h2 {
  position: relative;
  text-align: center;
  font-size: 30px;
  font-weight: bold;
  font-family: "游ゴシック Light"; /* スタイリッシュなフォント例 */
  letter-spacing: 3px; /* 文字間隔を広めに */
  color: #000000;
  margin: 25px auto 20px;
  z-index: 1;
}
/* 背景和風番号 */
h2::before {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(var(--len));
  z-index: 0;
  color: rgba(147, 154, 255, 0.25);
  font-size: 68px;
  font-family: "Meiryo";
  line-height: 1;
  content: attr(data-number);
}
/* ｱﾝﾀﾞｰぼかし */
h2::after {
  content: "";
  position: absolute;
  bottom: -5px; /* シャドウの位置を調整 */
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
  width: 700px; /* シャドウの広がり */
  height: 30px;
  border-radius: 20px;
  background: rgb(255, 255, 255);
  filter: blur(8px); /* ぼかし量を調整 */
}

/* 見出し(ﾚﾍﾞﾙ2)スタイル */
h4 {
  position: relative;
  width: 550px;
  margin: 0 auto; /* コンテナ内で中央に配置 */
  padding: 10px 15px 10px 10px;
  font-size: 20px;
  letter-spacing: 3px; /* 文字間隔を広めに */
  color: #09315f;
  border: 2px solid #75a6df; /* ほんのり明るいブルーに */
  border-left-width: 3.5em;
  border-radius: 20px 6px 6px 20px;
  text-align: center;
}
h4::before,
h4::after {
  position: absolute;
  font-family: "Font Awesome 6 Free";
  top: 50%;
  left: -46px;
  color: transparent; /* 中を透明に */
  -webkit-text-stroke: 0.5px #fff; /* 外枠の色 */
}
/* '\e4dc'; */ /* 爆発のマーク */
/* '\f043'; */ /* 雫 */
h4::before {
  content: "\f518"; /* book-open icon */
  font-size: 30px;
  transform: translate(-2px, -50%);
}
h4::after {
  content: "\f303"; /* pencil icon */
  font-size: 20px;
  transform: translateX(5px) translateY(calc(-50% - 10px)) rotate(-10deg);
}

/* 見出し(ﾚﾍﾞﾙ3)スタイル */
.ttl3,
.ttl4,
.ttl5 {
  position: relative;
  display: flex; /* blockレベルのflexに変更 */
  width: fit-content; /* コンテンツに合わせて縮む */
  gap: 0.5em; /* バッジとテキストの間隔 */
  /* テキスト */
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 5px;
  color: #273036;
  /* ボックス */
  padding: 5px 24px 5px 56px; /* 左にバッジ幅＋余白を確保 */
  background:
    linear-gradient(to bottom, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0) 45%),
    repeating-linear-gradient(-45deg, #bbdbfb 0 3px, #f2f6fc 3px 7px);
  border-radius: 20px;
  box-shadow: 0 2px 10px rgba(8, 23, 44, 0.15);
}

/* .ttl3,
.ttl4 {
    letter-spacing: 5px;
} */
.ttl3 {
  margin: 20px 60px 5px;
}
.ttl4 {
  margin: 5px 20px;
}
.ttl5 {
  margin: 3px 5px 3px 15px;
  font-size: 16px;
  font-weight: 600;
  padding: 5px 18px 5px 38px; /* 左にバッジ幅＋余白を確保 */
}

/* 丸い円 */
.ttl3::before,
.ttl4::before,
.ttl5::before {
  position: absolute;
  left: 0;
  top: 50%;

  content: "";
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #2f7dfa52;
  transform: translate(-10px, -50%);
}
.ttl5::before {
  width: 40px;
  height: 40px;
}
/* 丸い番号 */
.ttl3::after,
.ttl4::after,
.ttl5::after {
  position: absolute;
  left: 0;
  top: 50%;
  content: attr(data-number);
  font-family: "Lucida Sans Unicode";
  font-size: 45px;
  color: #e5efff;
  transform: translate(2px, calc(-50% + 2px));
}
.ttl5::after {
  font-size: 35px;
  transform: translate(0px, calc(-50% + 2px));
}

/* 本ｺﾝﾃﾝﾂと外部ｺﾝﾃﾝﾂ表示部 */
#contains-wrapper {
  position: relative;
  top: 0;
  min-height: 100%;
  transition: 0.3s ease-in-out;
}
/* 変更時にはJSで設定している値と合わせること！ */
#contains-wrapper {
  left: 250px;
  width: calc(100% - 250px);
}
/* JSでCSSを付加させて配置を変更させる */
#contains-wrapper.fullwidth {
  left: 0;
  width: 100%;
}

/* contains-box(本ｺﾝﾃﾝﾂ表示部) */
#contains-box {
  min-width: 740px;
  background: #ddebf7;
  overflow: hidden; /* 内部要素のはみ出し防止 */
}

#contains-box input[type="text"] {
  text-align: right;
}

#contains-box input[type="text"].input_error {
  border: 2px solid red;
}

/* footer */
#footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  min-width: 740px;
  height: 50px;
  font-size: 14px;
  display: flex;
  display: -webkit-flex;
  flex-flow: column nowrap;
  -webkit-flex-flow: column nowrap;
  justify-content: center;
  -webkit-justify-content: center;
  align-items: center;
  -webkit-align-items: center;
  text-align: center;
  overflow: hidden;
  border-collapse: collapse;
  border-spacing: 0;
  border-top: 1px solid #999;
  background: #ddebf7;
}

#footer p {
  padding: 0;
  margin: 0;
}

/* noscript */
#noscript_filter {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ccc;
  z-index: 9999;
}

/* フローティングウィンドウのスタイル */
/* コンテナ：ドラッグ移動可能な領域 */
/* フォームをドラッグ領域として設定（必要に応じサイズ・配置は調整） */
#GDisplaySpace {
  position: relative; /* 内部の絶対配置要素の基準となる */
  display: block;
}
/* フォーム内のその他の要素がある場合のスタイルはそのままでOK */

/* ﾁｬｰﾄｳｨﾝﾄﾞｳ */
#floatingChart,
#floatingChart2 {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 0 25px rgba(15, 36, 56, 0.3);
  padding: 2px;
}
#floatingChart {
  position: relative;
}
#floatingChart2 {
  left: 50%;
  top: 0px;
}
/* ドラッグハンドル */
#dragHandle {
  border-radius: 10px 10px 0 0;
  display: block;
  color: #ffffff;
  background: #616161;
  padding: 5px;

  font-weight: bold;
  letter-spacing: 6px;
  text-align: center;
}

/* -----------------------
Handsontable
-------------------------- */
.handsontable {
  font-size: 15px;
}
.handsontable th {
  text-align: center;
}
.handsontable td {
  text-align: left;
  font-family: Arial, Helvetica, sans-serif;
}
/* 行列ﾍｯﾀﾞｰのｽﾀｲﾙ */
.handsontable tbody th,
.handsontable thead th {
  background-color: #333333 !important; /* 暗めの背景色 */
  color: #ffffff !important; /* 白文字 */
}

/* -----------------------
ｵｼｬﾚなｾﾚｸﾄ
-------------------------- */
/* 共通部分 */
select {
  border-radius: 7px;
  font-size: 15px;
  background: #fff;
  transition: border 0.2s;
  border: 2px solid #75a6df; /* ほんのり明るいブルーに */
  padding: 2px 5px;
}
/* フォーカス,ホバー時 */
select:focus,
select:hover {
  outline: none; /* デフォルトのフォーカススタイルを消す */
  border: 2px solid #00408a; /* 暗めのブルーに */
}
/* 横長ｾﾚｸﾄ */
.select05 {
  width: 300px;
  padding: 8px 5px;
}

/* -----------------------
オシャレなボタン
-------------------------- */
.btn-ghost {
  padding: 2px 20px 4px;
  margin: 20px;
  border: 2px solid #0077ff; /* ほんのり暗めのブルーに */
  border-radius: 7px;
  background: #0077ff; /* ほんのり暗めのブルーに */
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 2px;
  cursor: pointer;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.1s ease;
  box-shadow: 2px 2px 6px #0077ff6c;
}
.btn-ghost:hover {
  background: transparent;
  color: #333;
  box-shadow:
    2px 2px 6px #0077ff6c,
    inset 1px 1px 8px #0077ff6c;
}
.btn-ghost:active {
  transform: translateY(2px);
  box-shadow: none;
}

/* -----------------------
オシャレなラジオボタン
-------------------------- */

/* オリジナルのラジオボタンは非表示 */
.custom-radio {
  display: none;
}

/* ラベルの基本スタイル */
.custom-radio-label {
  display: inline-block;
  position: relative;
  padding-left: 35px;
  margin-right: 20px;
  font-size: 15px;
  cursor: pointer;
  user-select: none;
  color: #333;
}

/* 外枠の円（ボタンの見た目） */
.custom-radio-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border: 2px solid #5f9ea0;
  border-radius: 50%;
  background-color: #fff;
  transition: all 0.3s ease;
}

/* ラジオボタンがチェックされた時の内側の円 */
.custom-radio:checked + .custom-radio-label::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #000000;
}

/* ホバー時の視覚効果 */
.custom-radio-label:hover::before {
  border-color: #01002c;
}

/* -----------------------
オシャレなインプット
-------------------------- */
input[type="text"] {
  width: 80px; /* インプットの横幅 */
  padding: 2px 5px 4px; /* 内側の余白 */
  font-size: 15px; /* テキストの大きさ */
  border: 2px solid #75a6df; /* ほんのり明るいブルーに */
  border-radius: 7px; /* 角を丸める */
  transition:
    border-color 0.3s,
    box-shadow 0.3s; /* フォーカス時のアニメーション */
}
/* ホバー時 */
input[type="text"]:hover {
  border: 2px solid #00408a; /* 暗めのブルーに */
}

input[type="text"]:focus {
  border-color: #00408a; /* 暗めのブルーに */
  outline: none; /* デフォルトのフォーカススタイルを消す */
  box-shadow: 0 0 5px #00408a; /* ふんわりとした影を追加 */
}

/* -----------------------
オシャレな背景
-------------------------- */
.custom-section1,
.custom-section2 {
  position: relative;
  background-color: #f7f7f7;
  border: none;
  border-radius: 20px;
  padding: 20px;
  margin: 10px auto;
  box-shadow: 0 0 25px rgba(15, 36, 56, 0.2);
  text-align: center;
}
/* 擬似要素で外側線を描画 */
.custom-section1::before,
.custom-section2::before {
  content: "";
  position: absolute;
  inset: 5px; /* 親の内側から少し余白を取る */
  border: 2.5px dashed #5f7077;
  border-radius: 20px; /* 親と同じ角丸サイズ */
  pointer-events: none; /* マウスイベントを透過させる */
}
.custom-section1 {
  width: 420px;
}
.custom-section2 {
  width: 700px;
}

/* -----------------------
   おしゃれなﾁｪｯｸﾎﾞｯｸｽ
-------------------------- */
.checkbox08 {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  border: 2px solid #75a6df; /* ほんのり明るいブルーに */
  border-radius: 5px;
  position: relative;
  cursor: pointer;
  transition:
    background-color 0.2s,
    border-color 0.2s;
  transform: translateY(3px);
}
/* ホバー時 */
.checkbox08:hover {
  border-color: #00408a; /* 暗めのブルーに */
}
.checkbox08:checked {
  background-color: #288ce4; /* フラットなブルー */
}

.checkbox08:active {
  background-color: #75a6df; /* ほんのり明るいブルーに */
}

.checkbox08:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 6px;
  width: 5px;
  height: 12px;
  border: solid white;
  border-width: 0 2px 3px 0;
  transform: rotate(45deg);
}

/* -----------------------
   2択 チェックボックス
-------------------------- */
/* ラベル全体（コンテナ）配置 */
.checkbox04-label,
.checkbox08-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.checkbox04-label {
  margin: 0 auto 15px;
}
.checkbox08-label {
  margin: 0 auto;
}
/* チェックボックス自体の非表示設定 */
.checkbox04-input {
  position: absolute;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
/* 選択肢全体を囲むコンテナ(ホバー/キーボードフォーカス時のアクセントも付与) */
.checkbox04-control {
  position: relative;
  display: flex;
  align-items: center;
  border: 1px solid #6e6e6e; /* 外側の線 */
  border-radius: 8px; /* お好みで調整 */
  overflow: hidden; /* 内部要素のはみ出し防止 */
  transition: 0.3s;
  background: transparent; /* 背景を透明にする */
  user-select: none; /* 文字選択を禁止する */
}
/* 個々のテキスト要素（「指定しない」「指定する」） */
.checkbox04-text,
.checkbox08-text {
  transition:
    background 0.3s,
    color 0.3s;
}
.checkbox04-text {
  padding: 6px 20px 4px 20px;
}
.checkbox08-text {
  padding: 1px 20px 0px 20px;
  margin-bottom: -1px;
}
/* スライダー部分 */
.checkbox04-slider {
  position: relative;
  width: 40px;
  height: 18px;
}
/* スライダートラック：常に固定 */
.checkbox04-slider::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 3px;
  width: 35px;
  height: 18px;
  background: #fff;
  border: 1px solid #8d8d8d;
  border-radius: 15px;
  transform: translateY(-50%);
}
/* スライダーノブ：固定の色 */
.checkbox04-slider::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 5px;
  width: 13px;
  height: 13px;
  background: #000;
  border-radius: 50%;
  transform: translateY(-50%);
  transition: left 0.2s;
}
/* 状態に応じた背景／文字色の切替 */
.checkbox04-control .checkbox04-on,
.checkbox04-control .checkbox04-off {
  color: #6e6e6e;
}
.checkbox04-input:checked ~ .checkbox04-control .checkbox04-on,
.checkbox04-input:not(:checked) ~ .checkbox04-control .checkbox04-off {
  background: #ff555e;
  color: #fff;
}
/* チェックオン時、ノブが右側へ移動 */
.checkbox04-input:checked ~ .checkbox04-control .checkbox04-slider::after {
  left: 23px;
}

/* ―――――――――――――――
   3択ﾗｼﾞｵﾎﾞﾀﾝ(共通)
   ――――――――――――――― */
.radio3V-group,
.radio3H-group {
  position: relative;
  display: flex;
  border: 1px solid #6e6e6e;
  border-radius: 8px;
  overflow: hidden;
  user-select: none;
}
/* ラジオ本体は完全に隠す */
.radio3V-group input,
.radio3H-group input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  color: #6e6e6e;
}
/* ラベル（選択肢） */
.radio3V-group label,
.radio3H-group label {
  position: relative;
  cursor: pointer;
  transition:
    color 0.3s,
    background 0.3s;
  z-index: 1;
  color: #b3b3b3;
  background: transparent;
}
/* ハイライト用スライダー */
.radio3V-slider,
.radio3H-slider {
  position: absolute;
  top: 0;
  left: 0;
  background: #ff555e;
  transition: top 0.2s;
}
/* チェック時にラベル文字色を白に */
.radio3V-btn1:checked + label,
.radio3V-btn2:checked + label,
.radio3V-btn3:checked + label,
.radio3H-btn1:checked + label,
.radio3H-btn2:checked + label,
.radio3H-btn3:checked + label {
  color: #ffffff;
}
/* ホバー時の微調整 */
.radio3V-group label:hover,
.radio3H-group label:hover {
  background: #ffcbce;
  color: #000000;
}
/* 選択中のラベルにホバーしたときだけ適用 */
.radio3V-group input:checked + label:hover,
.radio3H-group input:checked + label:hover {
  background: #c93c41;
  color: #ffffff;
}

/* ―――――――――――――――
   3択ﾗｼﾞｵﾎﾞﾀﾝ(縦)
   ――――――――――――――― */
.radio3V-group {
  flex-direction: column;
  width: 280px; /* お好みで調整 */
  margin: 5px auto;
}
.radio3V-group label {
  padding: 3px 10px;
}
/* ハイライト用スライダー */
.radio3V-slider {
  width: 100%;
  height: calc(100% / 3);
}
/* スライダーの位置切り替え */
.radio3V-btn1:checked ~ .radio3V-slider {
  top: 0%;
}
.radio3V-btn2:checked ~ .radio3V-slider {
  top: 33.333%;
}
.radio3V-btn3:checked ~ .radio3V-slider {
  top: 66.666%;
}

/* ―――――――――――――――
   3択ﾗｼﾞｵﾎﾞﾀﾝ(横)
   ――――――――――――――― */
.radio3H-group {
  flex-direction: row;
  width: 450px; /* お好みで調整 */
  margin: 15px auto;
}
/* ラベル（選択肢） */
.radio3H-group label {
  flex: 1; /* ラベルを均等に幅配分 */
  text-align: center; /* テキストを真ん中へ */
  padding: 6px 10px;
}
/* ハイライト用スライダー */
.radio3H-slider {
  width: calc(100% / 3);
  height: 100%;
}
/* スライダーの位置切り替え */
.radio3H-btn1:checked ~ .radio3H-slider {
  left: 0%;
}
.radio3H-btn2:checked ~ .radio3H-slider {
  left: 33.333%;
}
.radio3H-btn3:checked ~ .radio3H-slider {
  left: 66.666%;
}

/* -----------------------
   ﾓｰﾀﾞﾙｳｲﾝﾄﾞｳ (入力ｱｼｽﾀﾝｽ)
-------------------------- */
/* ｵｰﾊﾞｰﾚｲ（背景のｽｸﾛｰﾙを遮断） */
.modal-overlay {
  position: relative; /* ← absolute配置の基準 */
  position: fixed;
  inset: 0; /* ﾋﾞｭｰﾎﾟｰﾄの四辺にぴったり重ねる */
  background: rgba(0, 0, 0, 0.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 21; /* ﾍｯﾀﾞｰ+1 */
  overscroll-behavior: contain;
  opacity: 0; /* ｱﾆﾒｰｼｮﾝ前の状態 */
  transition: opacity 600ms ease;
}

/* 開いた状態(ﾌｪｰﾄﾞｲﾝ) */
.modal-overlay.is-open {
  opacity: 1;
}

/* ﾓｰﾀﾞﾙ本体：ﾍｯﾀﾞｰ＋ｺﾝﾃﾝﾂの縦並び */
.modal-window2 {
  display: flex;

  margin: 20px auto;
  max-height: calc(100% - 40px);

  overflow: visible; /* 閉じるボタンを外に */

  transform: translateY(12px);
  opacity: 0;
  transition:
    transform 600ms ease,
    opacity 600ms ease;
  will-change: transform, opacity;
}

/* ｵｰﾊﾞｰﾚｲが開いたら本体も最終状態へ */
.modal-overlay.is-open .modal-window2 {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* ｺﾝﾃﾝﾂ部分だけ縦ｽｸﾛｰﾙ */
.modal-content {
  flex: 1 1 auto;
  justify-content: center; /* 横方向に中央寄せ */
  align-items: flex-start; /* 縦方向は上揃え */
  overflow-x: hidden; /* 横ｽｸﾛｰﾙを隠す */
  padding: 0px 10px;
}

/* 閉じるﾎﾞﾀﾝ：目立つﾃﾞｻﾞｲﾝに強化 */
.modal-close2 {
  position: absolute; /* 子 */
  right: 0%;
  transform: translate(15px, -35px);
  background: #ffffff;
  color: #000000;
  font-weight: 1200;
  border: none;
  padding: 0px 9px;
  font-size: 25px;
  border: 4px solid #002f64b2;
  border-radius: 25px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.modal-close2:hover {
  background: #c1e8ff;
}

/* ﾓｰﾀﾞﾙ枠を超えて絶対配置 */
#hotModal {
  position: relative;
  display: inline-block;
  vertical-align: top;
  width: 220px; /* 元の幅を維持 */
  top: 0px; /* 必要に応じ調整 */
  left: 10px; /* モーダル枠の右端に並べたいなら */
}

#moveObj {
  display: none;
  position: fixed; /* absolute relative*/
  width: 220px;
  top: 0px;
  z-index: 22; /* ﾓｰﾀﾞﾙ背景+1 */
  will-change: transform;
}

/* 常時表示のtable部 */
#hotHostInline {
  position: absolute;
  width: 220px;
  bottom: 30px; /* ﾂｰﾙバー分をずらす */
  right: 5px; /* Chart内の適当なｵﾌｾｯﾄ */

  opacity: 0.7;
  pointer-events: none;
  z-index: 10;
}
/* 入力セル内のｽﾀｲﾙ */
#hotHostInline .handsontable td,
#hotHostInline .handsontable tr {
  background-color: #58585828;
  color: #000000;
}

#Modal3OpBtn {
  position: absolute;
  top: 25px; /* ツールバー分をずらす */
  left: 25px; /* Chart内の適当なオフセット */
}

/* -----------------------
   表の追加・削除ボタン
-------------------------- */
/* ボタン共通スタイル */
.add-button {
  background-color: #288ce4; /* フラットなブルー */
  border: none;
  border-radius: 4px; /* 角丸 */
  color: #fff; /* 白アイコン */
  padding: 2px 15px;
  margin: 2px 5px;
  font-size: 18px; /* アイコンサイズ調整 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  transition: background-color 0.2s;
  cursor: pointer;
}
/* ホバー時 */
.add-button:hover {
  background-color: #00408a; /* 暗めのブルーに */
}
.add-button:active {
  background-color: #75a6df; /* ほんのり明るいブルーに */
  transform: translateY(2px);
  box-shadow: none;
}
.delete-btn {
  background-color: #288ce4; /* フラットなブルー */
  border: none;
  border-radius: 4px; /* 角丸 */
  color: #fff; /* 白アイコン */
  padding: 3px 15px 1px;
  margin: 2px 5px;
  font-size: 18px; /* アイコンサイズ調整 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  transition: background-color 0.2s;
  cursor: pointer;
}
/* hover・focus時のフィードバック */
.delete-btn:hover {
  background-color: #c0392b;
}
.delete-btn:active {
  transform: translateY(2px);
  box-shadow: none;
}

/* -----------------------
   ｵｼｬﾚなtable
-------------------------- */
/* 基本ｽﾀｲﾙ */
.table000,
.table111,
.table222 {
  border-spacing: 0;
  border: 2px solid #4a90e2; /* 落ち着いたブルー */
  border-radius: 20px;
  overflow: hidden; /* 角丸を適用 */
  color: #002141; /* 落ち着いた濃紺 */
  margin: 0 auto;
  width: 100%; /* dataがないときいっぱいに広げる */
}
/* 表題塗り */
.table000 th,
.table111 th {
  background-color: #ebf4ff; /* 落ち着いたブルー */
}
/* 線ﾀｲﾌﾟ1 */
.table000 th,
.table000 td,
.table111 th,
.table111 td {
  border-bottom: 1px solid #b0c4de; /* 下線 */
  border-right: 1px solid #b0c4de; /* 右線 */
}
/* 線ﾀｲﾌﾟ2 */
.table222 th,
.table222 td {
  border-bottom: 1px solid #b0c4de; /* 下線 */
}
/* 線ﾀｲﾌﾟ3 */
.senRight {
  border-right: 1px solid #b0c4de; /* 右線 */
}
/* その他 */
.table111 th,
.table111 td,
.table222 th,
.table222 td {
  height: 45px; /* 行の高さ*/
}
/* table_background */
.table_bg-blue {
  background-color: #ebf4ff; /* 落ち着いたブルー */
  font-weight: bold;
}
/* none-border */
.non-border {
  border-spacing: 0;
  border-style: none;
}

.vertical-text {
  width: 24px;
}

/* -----------------------
   ｵｼｬﾚな四角のﾄｸﾞﾙ
-------------------------- */
.toggle5 {
  display: inline-block;
  cursor: pointer;
  user-select: none;
}

.toggle5-input {
  display: none;
}

.toggle5-track {
  position: relative;
  display: flex;
  width: 80px;
  height: 28px;
  border: 1px solid #9ca3af;
  border-radius: 6px;
}

/* 親（□つまみ） */
.toggle5-knob {
  position: absolute;
  top: -3.5px;
  left: -2px;
  width: 34px;
  height: 34px;
  background: linear-gradient(145deg, #e3f1fb, #bcd9f2); /* 淡いブルーだが上下で濃淡をつける */
  border-radius: 6px;
  transition: left 0.3s ease;
  box-shadow: 2px 2px 4px rgba(42, 60, 97, 0.4);
  z-index: 1;
}

.toggle5-knob::before {
  content: "≡"; /* 文字を表示 */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-55%, -50%) rotate(90deg); /* 位置調整 90度回転 */
  font-size: 30px;
  color: rgba(25, 60, 170, 0.55); /* 色は控えめな濃紺 */
}

/* ﾄﾗｯｸ部分のﾀﾞﾐｰ(文字を切り取るためのﾏｽｸ) */
.toggle5-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 6px;
  overflow: hidden; /* 文字だけこの中で切り取る */
}

/* ﾁｪｯｸ時は右へ移動 */
.toggle5-input:checked + .toggle5-track .toggle5-knob,
.toggle5-input:checked + .toggle5-track .label5on,
.toggle5-input:checked + .toggle5-track .label5off {
  left: 46px; /* 80+2*2-(34+2) */
}

.label5on,
.label5off {
  position: absolute;
  top: 50%;
  left: 0%;
  transition: left 0.3s ease;
  padding: 6px;
  font-size: 13px;
  white-space: nowrap; /* ﾃｷｽﾄを折り返さない */
}
.label5on {
  background: #16a361;
  color: #ffffff;
  font-weight: bold;
  transform: translate(calc(-100% + 3px), -50%); /* 初期位置 */
}
.label5off {
  background: #9ba3b3;
  transform: translate(29px, -50%); /* 初期位置 */
}

/* -----------------------
   toggle5による選択中の行
-------------------------- */
.table111 tbody tr.selected {
  outline: 2px dashed #007bff;
  outline-offset: -4px;
  border-radius: 12px; /* ← 角を丸くする */
}

/* 

後で消す

*/
