/* CAIA CHAT ブランドテーマ（LibreChat本体は無改変 — index.htmlから本CSSを後読みして上書き）
   方式: LibreChatのアクセント色はCSS変数 --green-* に一元化されているため、
   緑スケールを藤色スケールへ差し替える（仕様書§5 デザイントークン準拠） */
:root {
  --green-50: #F5F3FB;
  --green-100: #EEEBF7;
  --green-200: #DDD6EF;
  --green-300: #C4B9E3;
  --green-400: #A99BD8;
  --green-500: #8B7DC2;
  --green-600: #7A6BB5;
  --green-700: #473C73;
  --green-800: #3A3160;
  --green-900: #2E2749;
  --green-950: #201B33;
  --brand-purple: #8B7DC2;
}

/* Jost（Futuraの代替。Futuraを持つ端末=Macでは本物Futura、他はJost） */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/jost-light.ttf') format('truetype');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/jost-bold.ttf') format('truetype');
}

/* 左サイドバー最上部のワードマークロゴ（太字Futura/Jost） */
nav .flex.flex-col.overflow-hidden.pt-2::before {
  content: "CAIA CHAT";
  display: block;
  font-family: 'Futura', 'Jost', 'Century Gothic', sans-serif;
  font-weight: 700;
  font-size: 19px;
  letter-spacing: 0.02em;
  color: #473C73;
  padding: 4px 14px 14px;
}
.dark nav .flex.flex-col.overflow-hidden.pt-2::before {
  color: #C4B9E3;
}

/* チャット欄（回答の横）のCAIAアバター: 円形マスク(overflow:hidden+角丸)で星の角が
   切れないよう、アバター直近のラッパー数階層だけ overflow を解除する。
   ※スクロール枠(messages-view本体)には触れないよう、直下チェーンで階層を限定している。 */
[data-testid="messages-view"] .rounded-full:has(> img[src*="logo.svg"]),
[data-testid="messages-view"] div:has(> .rounded-full > img[src*="logo.svg"]),
[data-testid="messages-view"] div:has(> div > .rounded-full > img[src*="logo.svg"]),
[data-testid="messages-view"] div:has(> div > div > .rounded-full > img[src*="logo.svg"]) {
  overflow: visible !important;
}
/* JS未読込時のフォールバック（静的アイコン）を少し大きく */
[data-testid="messages-view"] .rounded-full > img[src*="logo.svg"] {
  transform: scale(1.35);
  transform-origin: center;
}

/* =========================================================================
   ログイン画面（CAIAシリーズ共通カードデザイン・CHAT紫版）
   仕様: 連絡ハブ/共有/CAIAブランド_ログイン・カラー共通仕様.md（2026-07-24）
   星=単色#8B7DC2 / "CAIA"=dark#473C73 / "CHAT"・CTA=base#7A6BB5 / 背景=共通グラデ
   ========================================================================= */

/* 背景（マネージャー版と同一のグラデ） */
.min-h-screen.flex-col:has(.w-authPageWidth) {
  background: radial-gradient(1100px 620px at 50% -10%, #f3f5f8 0%, #e7ecf1 46%, #dfe5ec 100%) !important;
}
html.dark .min-h-screen.flex-col:has(.w-authPageWidth) {
  background: radial-gradient(1100px 620px at 50% -10%, #1c1a26 0%, #17151f 55%, #131118 100%) !important;
}

/* カード本体 */
.caia-auth-card {
  border-radius: 20px !important;
  box-shadow: 0 1px 0 rgba(15,23,42,.04), 0 20px 48px -12px rgba(15,23,42,.22) !important;
  padding: 34px 30px 30px !important;
  max-width: 392px !important;
  width: 100%;
  margin: 24px auto;
}
html.dark .caia-auth-card {
  box-shadow: 0 1px 0 rgba(0,0,0,.3), 0 24px 56px -12px rgba(0,0,0,.6) !important;
}

/* Reactの元ロゴ（カード外・上部）は隠す（自前ヘッダーをカード内に置くため） */
.min-h-screen.flex-col:has(.w-authPageWidth) > div:has(> img[src*="logo.svg"]) {
  display: none !important;
}

/* カード内: 自前ヘッダー（星＋ワードマーク＋サブ） */
.caia-login-head { text-align: center; margin: 2px 0 2px; }
.caia-login-head .caia-login-star {
  display: flex; align-items: center; justify-content: center;
  width: 60px; height: 60px; margin: 2px auto 14px;
  opacity: .8; /* ブランド標準: 星は不透明度80% */
  filter: drop-shadow(0 6px 14px rgba(139,125,194,.28));
}

/* ワードマーク「CAIA CHAT」 */
.caia-login-wordmark {
  text-align: center;
  font-family: 'Futura', 'Futura PT', 'Jost', 'Avenir Next', 'Century Gothic', sans-serif;
  font-size: 27px;
  letter-spacing: 1.4px;
  line-height: 1;
  margin: 0 0 6px;
}
.caia-login-wordmark .c { color: #473C73; font-weight: 700; }
.caia-login-wordmark .p { color: #7A6BB5; font-weight: 500; margin-left: 0.32em; }
.dark .caia-login-wordmark .c { color: #C4B9E3; }
.dark .caia-login-wordmark .p { color: #A99BD8; }

/* サブタイトル */
.caia-login-sub {
  text-align: center;
  font-size: 12px;
  color: #64748b;
  letter-spacing: .3px;
  margin: 0 0 4px;
}
.dark .caia-login-sub { color: #94a3b8; }

/* 挨拶見出し（テンプレ準拠: 18px/800/上下広め margin:24px 0 28px） */
.caia-auth-card h1 {
  font-size: 18px !important;
  font-weight: 800 !important;
  margin: 24px 0 28px !important;
  letter-spacing: .5px !important;
  color: #1e293b !important;
}
.dark .caia-auth-card h1 { color: #e2e8f0 !important; }

/* 「ログイン状態を保持」チェック（テンプレ準拠） */
.caia-login-remember {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: #64748b; margin: 4px 0 20px; cursor: pointer;
}
.caia-login-remember input { width: 16px; height: 16px; accent-color: #7A6BB5; }
.dark .caia-login-remember { color: #94a3b8; }

/* 入力欄 */
.caia-auth-card input[type="email"],
.caia-auth-card input[type="text"],
.caia-auth-card input[type="password"] {
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 11px !important;
  background: #fdfefe !important;
  transition: border-color .15s, box-shadow .15s;
}
.caia-auth-card input:focus {
  border-color: #7A6BB5 !important;
  box-shadow: 0 0 0 3px rgba(122,107,181,.16) !important;
  outline: none !important;
}
html.dark .caia-auth-card input[type="email"],
html.dark .caia-auth-card input[type="text"],
html.dark .caia-auth-card input[type="password"] {
  background: #14121c !important;
  border-color: #2c2838 !important;
}

/* CTAボタン = base紫 */
.caia-auth-card button[type="submit"] {
  background-color: #7A6BB5 !important;
  border-color: #7A6BB5 !important;
  color: #fff !important;
  border-radius: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .4px;
  min-height: 48px;
}
.caia-auth-card button[type="submit"]:hover {
  background-color: #473C73 !important;
}

/* LibreChat純正リンク（パスワードを忘れた場合はこちら／ログイン画面に戻る 等）をCAIA紫に（既定は緑） */
.caia-auth-card a[href="/forgot-password"],
.caia-auth-card a[href="/login"] {
  color: #7A6BB5 !important;
  text-decoration: none !important;
}
.caia-auth-card a[href="/forgot-password"]:hover,
.caia-auth-card a[href="/forgot-password"]:focus,
.caia-auth-card a[href="/login"]:hover,
.caia-auth-card a[href="/login"]:focus {
  color: #473C73 !important;
  text-decoration: underline !important;
  text-decoration-color: #473C73 !important;
}
.dark .caia-auth-card a[href="/forgot-password"],
.dark .caia-auth-card a[href="/login"] { color: #A99BD8 !important; }

/* CTA下の追加メニュー（または／Googleでログイン）
   当面は非表示。有効化時に <html data-caia-social="on"> で表示。 */
.caia-auth-extra { margin-top: 4px; }

.caia-auth-extra .caia-or { display: none; align-items: center; gap: 10px; margin: 14px 0; }
.caia-auth-extra .caia-or::before,
.caia-auth-extra .caia-or::after { content: ""; flex: 1; height: 1px; background: #e2e8f0; }
.caia-auth-extra .caia-or span { font-size: 11.5px; color: #94a3b8; letter-spacing: .5px; }
.caia-auth-extra .caia-google {
  display: none; align-items: center; justify-content: center; gap: 10px;
  width: 100%; min-height: 46px; padding: 12px;
  border: 1.5px solid #e2e8f0; border-radius: 12px; background: #fff;
  color: #1e293b; font-size: 15px; font-weight: 700; text-decoration: none;
  transition: background .15s, border-color .15s;
}
.caia-auth-extra .caia-google:hover { background: #f8fafc; border-color: #cbd5e1; }
html[data-caia-social="on"] .caia-auth-extra .caia-or,
html[data-caia-social="on"] .caia-auth-extra .caia-google { display: flex; }
.dark .caia-auth-extra .caia-google { background: #14121c; border-color: #2c2838; color: #e2e8f0; }
.dark .caia-auth-extra .caia-google:hover { background: #1b1826; }
.dark .caia-auth-extra .caia-or::before,
.dark .caia-auth-extra .caia-or::after { background: #2c2838; }

/* フッター「CAIA • AGENT」 */
.caia-login-foot {
  margin-top: 22px;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  font-family: 'Futura', 'Jost', 'Century Gothic', sans-serif;
  font-size: 10.5px; letter-spacing: 2px; color: #94a3b8;
}
.caia-login-foot .dot { width: 4px; height: 4px; border-radius: 50%; background: #A99BD8; display: inline-block; }

/* 認証ページではノートトグルを隠す（保険。JS側でも制御） */
html.caia-auth #caia-note-toggle { display: none !important; }

/* 挨拶画面（こんにちは○○）のCAIAアイコン: 丸枠(shadow-stroke・白背景・影リング)を消して星だけに */
.shadow-stroke:has(.caia-av-star),
.shadow-stroke:has(img[src*="logo.svg"]) {
  box-shadow: none !important;
  background: transparent !important;
  border: none !important;
}

/* 指示タグバー（入力ボックスの中・テキストエリアの上の小さなグレーチップ・アイコンなし） */
.caia-tagbar {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  justify-content: flex-start;
  padding: 9px 14px 2px;
}
.caia-tag {
  cursor: pointer;
  font-size: 10.5px;
  line-height: 1;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.14);
  background: transparent;
  color: #8a8a8a;
  white-space: nowrap;
  transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.caia-tag:hover {
  color: #5f5f5f;
  border-color: rgba(0, 0, 0, 0.28);
  background: rgba(0, 0, 0, 0.03);
}
.caia-tag:active { color: #473C73; }
.dark .caia-tag {
  color: #9a9a9a;
  border-color: rgba(255, 255, 255, 0.16);
}
.dark .caia-tag:hover {
  color: #c4c4c4;
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.05);
}

/* 右サイドのノートパネル */
#caia-note-toggle {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 55;
  width: 32px;
  height: 62px;
  border: none;
  border-radius: 10px 0 0 10px;
  background: #8B7DC2;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  box-shadow: -2px 0 10px rgba(71, 60, 115, 0.2);
  transition: background 0.15s ease;
}
#caia-note-toggle:hover { background: #7A6BB5; }
#caia-note-toggle.active { background: #473C73; }
#caia-note-panel {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: 340px;
  max-width: 92vw;
  min-width: 240px;
  background: #ffffff;
  border-left: 1px solid rgba(71, 60, 115, 0.12);
  z-index: 56;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.22s ease;
}
#caia-note-panel.open { transform: translateX(0); }
/* 幅調整用のドラッグハンドル（左端） */
.caia-note-resize {
  position: absolute;
  top: 0;
  left: -3px;
  width: 7px;
  height: 100%;
  cursor: col-resize;
  z-index: 2;
}
.caia-note-resize:hover { background: rgba(139, 125, 194, 0.18); }
.caia-note-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  font-weight: 700;
  font-size: 15px;
  color: #473C73;
  border-bottom: 1px solid rgba(71, 60, 115, 0.1);
  letter-spacing: 0.02em;
}
.caia-note-close {
  border: none;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: #999;
  padding: 0 4px;
}
.caia-note-close:hover { color: #473C73; }
/* タブ（ノートブック / ノート） */
.caia-note-tabs { padding: 8px 10px; }
.caia-note-tabwrap { display: flex; gap: 4px; }
.caia-note-tab {
  border: none;
  background: transparent;
  font-size: 12.5px;
  font-weight: 700;
  color: #9a94ad;
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  letter-spacing: 0.02em;
}
.caia-note-tab:hover { color: #6b6480; background: rgba(139, 125, 194, 0.08); }
.caia-note-tab.active { color: #473C73; background: rgba(139, 125, 194, 0.14); }
.dark .caia-note-tab { color: #8d87a0; }
.dark .caia-note-tab.active { color: #C9BEEB; background: rgba(169, 155, 216, 0.18); }

/* ノートブック（アップロードボックス＋ブックのファイルリスト）内側マージン20px */
.caia-note-book {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 20px;
}
.caia-nb-upload {
  margin: 20px 0 0;
  border: 2.5px dashed rgba(139, 125, 194, 0.55);
  border-bottom: none;
  border-radius: 12px 12px 0 0;
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  color: #8B7DC2;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.caia-nb-upload:hover, .caia-nb-upload.drag {
  background: rgba(139, 125, 194, 0.08);
  border-color: #8B7DC2;
}
.caia-nb-upload small {
  font-size: 10px;
  font-weight: 400;
  color: #a9a2c0;
}
.dark .caia-nb-upload { border-color: rgba(169, 155, 216, 0.45); color: #C9BEEB; }
.dark .caia-nb-upload small { color: #8d87a0; }
/* ソース追加ボタン（URLから追加 / テキストを貼り付け） */
/* 「ブックを追加」ボックスの下辺に一体化した2ボタン（点線連続・外周角丸12px） */
.caia-nb-srcbtns { display: flex; gap: 0; margin: 0 0 12px; }
.caia-nb-src {
  flex: 1 1 50%;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 2.5px dashed rgba(139, 125, 194, 0.55);
  background: transparent;
  color: #8B7DC2;
  font-size: 11.5px;
  font-weight: 700;
  padding: 8px 4px;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.12s ease;
}
.caia-nb-src svg { flex: 0 0 auto; }
.caia-nb-src span {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.caia-nb-src:first-child { border-right: none; border-radius: 0 0 0 12px; }
.caia-nb-src:last-child { border-radius: 0 0 12px 0; }
.caia-nb-src:hover { background: rgba(139, 125, 194, 0.1); }
.dark .caia-nb-src { color: #C9BEEB; border-color: rgba(169, 155, 216, 0.45); }
/* ブック追加ポップアップ（URL / テキスト） */
.caia-nb-pop {
  border: 1px solid rgba(71, 60, 115, 0.18);
  border-radius: 10px;
  padding: 12px;
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #ffffff;
  box-shadow: 0 6px 18px rgba(71, 60, 115, 0.14);
}
.caia-nb-pop-title { font-size: 12px; font-weight: 700; color: #473C73; }
.caia-nb-pop-input {
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 6px;
  padding: 7px 9px;
  font-size: 12.5px;
  outline: none;
}
.caia-nb-pop-input:focus { border-color: #8B7DC2; }
.caia-nb-pop-ta {
  min-height: 110px;
  resize: vertical;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 6px;
  padding: 7px 9px;
  font-size: 12.5px;
  line-height: 1.5;
  outline: none;
  font-family: inherit;
}
.caia-nb-pop-ta:focus { border-color: #8B7DC2; }
.caia-nb-pop-btns { display: flex; align-items: center; gap: 8px; }
.caia-nb-pop-add {
  border: none;
  background: #8B7DC2;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 6px;
  cursor: pointer;
}
.caia-nb-pop-add:hover { background: #7A6BB5; }
.caia-nb-pop-cancel { border: none; background: transparent; color: #999; font-size: 12px; cursor: pointer; }
.caia-nb-pop-cancel:hover { color: #555; }
.dark .caia-nb-pop { background: #211e2e; border-color: rgba(169, 155, 216, 0.25); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4); }
.dark .caia-nb-pop-title { color: #C9BEEB; }
.dark .caia-nb-pop-input, .dark .caia-nb-pop-ta { background: #17141f; color: #e2e2e2; border-color: rgba(255, 255, 255, 0.18); }
.caia-note-file.uploading { color: #8B7DC2; font-size: 11px; }

.caia-note-files-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 0 6px;
  font-size: 12px;
  font-weight: 700;
  color: #473C73;
  letter-spacing: 0.02em;
}
.caia-note-files-reload {
  border: none;
  background: transparent;
  color: #999;
  cursor: pointer;
  padding: 2px 3px;
  display: inline-flex;
}
.caia-note-files-reload:hover { color: #473C73; }
.caia-note-files-headR { display: inline-flex; align-items: center; gap: 6px; }
.caia-note-dedup {
  border: 1px solid rgba(176, 57, 47, 0.35);
  background: rgba(176, 57, 47, 0.06);
  color: #B0392F;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  align-items: center;
}
.caia-note-dedup:hover { background: rgba(176, 57, 47, 0.13); }
.dark .caia-note-dedup { color: #e07a70; border-color: rgba(224, 122, 112, 0.4); background: rgba(224, 122, 112, 0.10); }

/* ===== ノートブックの説明（(i)ボタン＋モーダル） ===== */
.caia-nbi-row { display: flex; justify-content: flex-end; margin: 12px 0 -12px; position: relative; z-index: 1; }
.caia-nbi-btn {
  display: inline-flex; align-items: center; gap: 4px;
  border: 0; background: transparent; cursor: pointer;
  color: #a7a2b8; font-size: 11px; padding: 2px 6px; border-radius: 999px;
}
.caia-nbi-btn:hover { color: #6b5fae; background: rgba(139, 125, 194, 0.08); }
.dark .caia-nbi-btn { color: #7c7790; }
.dark .caia-nbi-btn:hover { color: #C4B9E3; background: rgba(169, 155, 216, 0.14); }

.caia-nbi-ov {
  position: fixed; inset: 0; z-index: 100001;
  background: rgba(20, 16, 30, 0.45);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.caia-nbi {
  width: min(560px, 94vw); max-height: 84vh; overflow-y: auto;
  background: #fff; border-radius: 16px;
  box-shadow: 0 24px 64px rgba(40, 30, 70, 0.35);
}
.caia-nbi-head {
  position: sticky; top: 0; z-index: 1;
  display: flex; justify-content: space-between; align-items: center;
  padding: 15px 20px 11px; background: #fff; border-bottom: 1px solid #ece7f3;
  font-size: 15px; font-weight: 800; color: #473C73;
}
.caia-nbi-close { border: 0; background: transparent; font-size: 19px; line-height: 1; color: #999; cursor: pointer; padding: 2px 4px; }
.caia-nbi-close:hover { color: #473C73; }
.caia-nbi-body { padding: 14px 22px 24px; font-size: 13.5px; line-height: 1.75; color: #3c4043; }
.caia-nbi-body p { margin: 8px 0; }
.caia-nbi-lead { font-size: 14px; }
.caia-nbi-body h4 { font-size: 13px; font-weight: 800; color: #473C73; margin: 18px 0 4px; }
.caia-nbi-body ol, .caia-nbi-body ul { margin: 6px 0; padding-left: 1.4em; }
.caia-nbi-body li { margin: 3px 0; }
.caia-nbi-rag-toggle {
  display: block; width: 100%; text-align: left; margin: 14px 0 0;
  padding: 9px 12px; border: 1.5px dashed rgba(139, 125, 194, 0.45); border-radius: 10px;
  background: rgba(139, 125, 194, 0.05); color: #6b5fae; font-weight: 700; font-size: 12.5px; cursor: pointer;
}
.caia-nbi-rag-toggle:hover { background: rgba(139, 125, 194, 0.11); }
.caia-nbi-rag {
  padding: 8px 12px 4px; margin-top: -1px;
  border: 1.5px dashed rgba(139, 125, 194, 0.3); border-top: 0; border-radius: 0 0 10px 10px;
  background: rgba(139, 125, 194, 0.03);
}
.dark .caia-nbi { background: #26222f; }
.dark .caia-nbi-head { background: #26222f; border-color: #3a3448; color: #C9BEEB; }
.dark .caia-nbi-body { color: #e0e0e0; }
.dark .caia-nbi-body h4 { color: #C9BEEB; }
.dark .caia-nbi-rag-toggle { color: #C4B9E3; background: rgba(169, 155, 216, 0.10); border-color: rgba(169, 155, 216, 0.42); }
.dark .caia-nbi-rag { border-color: rgba(169, 155, 216, 0.28); background: rgba(169, 155, 216, 0.05); }

/* 回答下のボタン行（ノートに追加・チューニング依頼を横並び） */
.caia-ansbtns { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.caia-ansbtns .caia-note-add { margin-top: 8px; }

/* ===== チューニング依頼（回答フィードバック） ===== */
.caia-tune-note { font-size: 11px; line-height: 1.6; color: #a7a2b8; margin: 6px 0 0; }
.dark .caia-tune-note { color: #7c7790; }
.caia-tune { width: min(440px, 92vw); max-height: 76vh; }
.caia-tune-cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.caia-tune-cat {
  border: 1px solid #e2dcee; background: transparent; color: #6b6480;
  font-size: 12px; padding: 5px 11px; border-radius: 999px; cursor: pointer;
}
.caia-tune-cat:hover { border-color: #8B7DC2; }
.caia-tune-cat.on { background: rgba(139, 125, 194, 0.14); border-color: #8B7DC2; color: #473C73; font-weight: 700; }
.caia-tune-ta {
  width: 100%; box-sizing: border-box; min-height: 88px; resize: vertical;
  border: 1px solid #e2dcee; border-radius: 10px; padding: 10px 12px;
  font-size: 13px; line-height: 1.6; color: #3c4043; outline: none; font-family: inherit;
}
.caia-tune-ta:focus { border-color: #8B7DC2; }
.dark .caia-tune-cat { border-color: #3a3448; color: #b3adc1; }
.dark .caia-tune-cat.on { background: rgba(169, 155, 216, 0.16); border-color: #A99BD8; color: #C9BEEB; }
.dark .caia-tune-ta { background: rgba(0,0,0,0.2); border-color: #3a3448; color: #e0e0e0; }

/* ===== ブックのグループ分け ===== */
.caia-note-addgrp {
  border: 1px solid rgba(139, 125, 194, 0.38);
  background: rgba(139, 125, 194, 0.07);
  color: #6b5fae; cursor: pointer;
  font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap;
}
.caia-note-addgrp:hover { background: rgba(139, 125, 194, 0.15); }
.dark .caia-note-addgrp { color: #C4B9E3; border-color: rgba(169, 155, 216, 0.42); background: rgba(169, 155, 216, 0.12); }

/* 各ブック行のグループ選択チップ */
.caia-book-grp-sel {
  flex: none; border: 1px solid #e2dcee; background: transparent;
  color: #a7a2b8; cursor: pointer; font-size: 10.5px; font-weight: 700;
  border-radius: 6px; padding: 2px 7px; max-width: 92px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  opacity: 0; transition: opacity 0.12s ease;
}
.caia-note-file:hover .caia-book-grp-sel { opacity: 1; }
.caia-book-grp-sel.assigned { color: #6b5fae; border-color: rgba(139, 125, 194, 0.42); background: rgba(139, 125, 194, 0.09); }
.caia-book-grp-sel:hover { border-color: #8B7DC2; color: #6b5fae; }
.dark .caia-book-grp-sel { border-color: #3a3448; color: #7c7790; }
.dark .caia-book-grp-sel.assigned { color: #C4B9E3; background: rgba(169, 155, 216, 0.15); border-color: rgba(169, 155, 216, 0.42); }

/* グループ見出し（折りたたみ・件数・一括チェック） */
.caia-book-grp {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 2px 6px; margin-top: 3px;
  border-bottom: 1px solid #ece7f3;
  position: sticky; top: 0; background: #fff; z-index: 2;
}
.caia-book-grp-caret { border: 0; background: transparent; cursor: pointer; color: #8B7DC2; font-size: 10px; width: 15px; padding: 0; transition: transform 0.15s ease; }
.caia-book-grp.collapsed .caia-book-grp-caret { transform: rotate(-90deg); }
.caia-book-grp-name { flex: 0 1 auto; min-width: 0; font-size: 12.5px; font-weight: 700; color: #473C73; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.01em; }
.caia-book-grp-count { font-size: 11px; font-weight: 700; color: #b3adc4; font-variant-numeric: tabular-nums; margin-left: -3px; }
.caia-book-grp-sp { flex: 1; }
.caia-book-grp-menu-btn { border: 0; background: transparent; color: #b3adc4; cursor: pointer; font-size: 15px; line-height: 1; padding: 0 3px; }
.caia-book-grp-menu-btn:hover { color: #473C73; }
.caia-book-grp-check { flex: none; width: 15px; height: 15px; accent-color: #8B7DC2; cursor: pointer; }
.dark .caia-book-grp { background: #1e1b26; border-color: #332c3f; }
.dark .caia-book-grp-name { color: #C9BEEB; }
.dark .caia-book-grp-count, .dark .caia-book-grp-menu-btn { color: #7e7890; }

/* グループ選択のポップアップメニュー */
.caia-grp-menu {
  position: fixed; z-index: 100000; min-width: 152px; max-height: 60vh; overflow: auto;
  background: #fff; border: 1px solid #e2dcee; border-radius: 11px;
  box-shadow: 0 12px 32px rgba(60, 50, 90, 0.18); padding: 5px;
}
.caia-grp-menu-item {
  display: block; width: 100%; text-align: left; border: 0; background: transparent;
  padding: 7px 11px; border-radius: 7px; font-size: 12.5px; color: #3c4043; cursor: pointer; white-space: nowrap;
}
.caia-grp-menu-item:hover { background: rgba(139, 125, 194, 0.10); }
.caia-grp-menu-item.on { color: #6b5fae; font-weight: 700; }
.caia-grp-menu-item.add { color: #8B7DC2; font-weight: 700; border-top: 1px solid #ece7f3; margin-top: 4px; }
.dark .caia-grp-menu { background: #26222f; border-color: #3a3448; box-shadow: 0 12px 32px rgba(0,0,0,0.4); }
.dark .caia-grp-menu-item { color: #e0e0e0; }
.dark .caia-grp-menu-item:hover { background: rgba(169, 155, 216, 0.16); }
.dark .caia-grp-menu-item.add { border-color: #3a3448; }
.caia-note-files-filter {
  display: none;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 6px;
  padding: 7px 10px;
  border: 1px solid rgba(139, 125, 194, 0.28);
  border-radius: 8px;
  background: rgba(139, 125, 194, 0.04);
  font-size: 12.5px;
  color: #3c4043;
  outline: none;
}
.caia-note-files-filter:focus { border-color: #8B7DC2; background: #fff; }
.caia-note-files-filter::placeholder { color: #a7a2b8; }
.dark .caia-note-files-filter { color: #e0e0e0; background: rgba(169, 155, 216, 0.10); border-color: rgba(169, 155, 216, 0.30); }
.dark .caia-note-files-filter:focus { border-color: #A99BD8; background: rgba(0,0,0,0.2); }
.caia-note-files-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 0 14px;
  font-size: 13.5px;
  color: #666;
}
.caia-note-file {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 2px;
  border-radius: 8px;
  color: #3c4043;
  cursor: grab;
}
.caia-note-file:active { cursor: grabbing; }
.caia-note-file-name {
  flex: 1;
  min-width: 0;
  font-size: 13.5px;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.caia-note-file-ok {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #2E9E6B;
  background: rgba(46, 158, 107, 0.12);
  padding: 2px 7px;
  border-radius: 999px;
  white-space: nowrap;
}
.caia-note-file-ok.img { color: #8B7DC2; background: rgba(139, 125, 194, 0.14); }
.dark .caia-note-file-ok { color: #5AC593; background: rgba(90, 197, 147, 0.16); }
.dark .caia-note-file-ok.img { color: #C4B9E3; background: rgba(169, 155, 216, 0.18); }
/* ノートタブ下部の「ノートブックに追加」ボタン */
.caia-note-tobook {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0 20px 16px;
  padding: 8px 6px;
  border: 1.5px solid rgba(139, 125, 194, 0.4);
  border-radius: 999px;
  background: transparent;
  color: #8B7DC2;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.caia-note-tobook:hover { background: rgba(139, 125, 194, 0.1); border-color: #8B7DC2; }
.dark .caia-note-tobook { color: #C9BEEB; border-color: rgba(169, 155, 216, 0.4); }

/* ブックのホバープレビュー（学習済み本文の冒頭を浮かせて表示） */
.caia-nb-preview {
  position: fixed;
  z-index: 80;
  width: 320px;
  max-height: 340px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(71, 60, 115, 0.15);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
  padding: 10px 12px;
  display: none;
  pointer-events: none;
}
.caia-nb-preview-head {
  font-size: 11px;
  font-weight: 700;
  color: #473C73;
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.caia-nb-preview-body {
  font-size: 11px;
  line-height: 1.55;
  color: #555;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 300px;
  overflow: hidden;
}
.dark .caia-nb-preview { background: #211e2e; border-color: rgba(169, 155, 216, 0.25); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); }
.dark .caia-nb-preview-head { color: #C9BEEB; }
.dark .caia-nb-preview-body { color: #c9c9c9; }

/* ☑︎風のシンプルなチェックボックス（塗りなし・グレーの枠＋チェックのみ） */
/* ブック削除ボタン（行ホバーで表示） */
.caia-note-file-del {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #b0392f;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.12s ease, background 0.12s ease;
}
.caia-note-file:hover .caia-note-file-del { opacity: 0.75; }
.caia-note-file-del:hover { opacity: 1 !important; background: rgba(176, 57, 47, 0.1); }
.dark .caia-note-file-del { color: #e07a70; }

.caia-note-file-check {
  flex: 0 0 auto;
  appearance: none;
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border: 1.5px solid #b5b5b5;
  border-radius: 3px;
  background: transparent;
  position: relative;
  cursor: pointer;
  margin: 0;
}
.caia-note-file-check:checked::after {
  content: '';
  position: absolute;
  left: 3.5px;
  top: 0.5px;
  width: 4.5px;
  height: 8.5px;
  border: solid #8a8a8a;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.dark .caia-note-file-check { border-color: #6f6f6f; }
.dark .caia-note-file-check:checked::after { border-color: #9a9a9a; }
.dark .caia-note-files-head { color: #C9BEEB; }
.dark .caia-note-file { color: #e0e0e0; }

.caia-note-area {
  flex: 1;
  border: none;
  outline: none;
  resize: none;
  padding: 14px;
  font-size: 14px;
  line-height: 1.75;
  color: #333;
  background: #ffffff;
  font-family: inherit;
}
.caia-note-add {
  display: inline-block;
  margin-top: 8px;
  cursor: pointer;
  font-size: 11px;
  line-height: 1;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid rgba(139, 125, 194, 0.3);
  background: transparent;
  color: #8B7DC2;
  transition: background 0.12s ease, color 0.12s ease;
}
.caia-note-add:hover { background: rgba(139, 125, 194, 0.12); color: #473C73; }
/* パネル展開時はメインを左に寄せて隠れないように（右余白はJSがパネル幅に合わせて設定） */
html.caia-note-open #root { box-sizing: border-box; }
.dark #caia-note-panel { background: #1e1c2b; border-left-color: rgba(169, 155, 216, 0.2); }
.dark .caia-note-head { color: #C9BEEB; border-bottom-color: rgba(169, 155, 216, 0.15); }
.dark .caia-note-area { color: #e2e2e2; background: #1e1c2b; }
.dark .caia-note-add { color: #C9BEEB; border-color: rgba(169, 155, 216, 0.3); }

/* 左サイドバー: チャット履歴の行間を少し詰める（36px→30px。仮想リストは読込時にこの高さを測定） */
nav .ReactVirtualized__Grid .group.relative.flex.h-12 {
  height: 30px !important;
}

/* 左サイドバー: チャットのカテゴリ分け（「チャット▼」の上の選択バー＋各チャットの丸バッジ） */
/* 「＋ 新規セッション」ボタン（カテゴリバーの直上・控えめ：淡い枠＋紫文字） */
.caia-newsession {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: calc(100% - 24px);
  margin: 6px 12px 2px;
  padding: 7px 12px;
  border: 1px solid rgba(122, 107, 181, .28);
  border-radius: 9px;
  background: transparent;
  color: #6D5EA8;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.caia-newsession:hover {
  background: rgba(122, 107, 181, .08);
  border-color: rgba(122, 107, 181, .45);
  color: #473C73;
}
.caia-newsession svg { flex: 0 0 auto; width: 14px; height: 14px; opacity: .85; }
.dark .caia-newsession { color: #B7ACDE; border-color: rgba(169, 155, 216, .3); }
.dark .caia-newsession:hover { background: rgba(169, 155, 216, .12); border-color: rgba(169, 155, 216, .5); color: #C4B9E3; }

.caia-catbar {
  position: relative;
  padding: 2px 12px 8px;
}
/* 見出し「カテゴリ ▾」（チャット見出しと同じ体裁：文字はアプリのtext-xs/font-bold/text-text-secondaryに合わせる） */
.caia-cat-head {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  border: none;
  background: transparent;
  padding: 8px 4px;
  cursor: pointer;
}
.caia-catbar.collapsed .caia-cat-chev { transform: rotate(-90deg); }
.caia-catbar.collapsed .caia-cat-chips { display: none; }
.caia-cat-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 5px 2px 0 8px;
}
.caia-cat-chip {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: none;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.9;
  transition: opacity 0.12s ease, box-shadow 0.12s ease;
}
.caia-cat-chip.two { font-size: 9px; letter-spacing: -0.5px; }
.caia-cat-chip:hover { opacity: 1; }
.caia-cat-chip.active {
  opacity: 1;
  box-shadow: 0 0 0 2px #F7F5FB, 0 0 0 3.5px #473C73;
}
.caia-cat-add {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px dashed rgba(71, 60, 115, 0.4);
  background: transparent;
  color: #8B7DC2;
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.caia-cat-add svg { display: block; }
.caia-cat-add:hover { background: rgba(139, 125, 194, 0.12); }

/* カテゴリ追加/編集ポップアップ */
.caia-cat-pop {
  position: absolute;
  left: 12px;
  top: 100%;
  margin-top: 3px;
  z-index: 70;
  width: 232px;
  background: #ffffff;
  border: 1px solid rgba(71, 60, 115, 0.18);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(71, 60, 115, 0.2);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.caia-cat-pop-row { display: flex; gap: 6px; }
.caia-cat-pop input {
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 12.5px;
  color: #333;
  background: #fff;
  outline: none;
}
.caia-cat-pop input:focus { border-color: #8B7DC2; }
.caia-cat-pop-letter { width: 46px; text-align: center; }
.caia-cat-pop-name { flex: 1; min-width: 0; }
.caia-cat-pop-colors { display: flex; flex-wrap: wrap; gap: 8px; }
.caia-cat-sw {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
}
.caia-cat-sw.sel { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #473C73; }
.caia-cat-pop-btns { display: flex; align-items: center; gap: 8px; }
.caia-cat-pop-save {
  border: none;
  background: #8B7DC2;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 6px;
  cursor: pointer;
}
.caia-cat-pop-save:hover { background: #7A6BB5; }
.caia-cat-pop-del {
  border: none;
  background: transparent;
  color: #c0392b;
  font-size: 12px;
  padding: 6px 6px;
  cursor: pointer;
  margin-left: auto;
}
.caia-cat-pop-del:hover { text-decoration: underline; }
.caia-cat-pop-cancel {
  border: none;
  background: transparent;
  color: #999;
  font-size: 12px;
  padding: 6px 6px;
  cursor: pointer;
}
.caia-cat-pop-cancel:hover { color: #555; }
.dark .caia-cat-pop { background: #211e2e; border-color: rgba(169, 155, 216, 0.25); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); }
.dark .caia-cat-pop input { background: #17141f; color: #e2e2e2; border-color: rgba(255, 255, 255, 0.18); }
.dark .caia-cat-sw.sel { box-shadow: 0 0 0 2px #211e2e, 0 0 0 3.5px #C4B9E3; }
.dark .caia-cat-pop-cancel { color: #9a95a8; }
.dark .caia-cat-chip.active { box-shadow: 0 0 0 2px #1c1a26, 0 0 0 3.5px #C4B9E3; }
.dark .caia-cat-add { color: #C4B9E3; border-color: rgba(196, 185, 227, 0.4); }

/* 各チャットのアイコン上に重ねる丸バッジ */
.caia-cat-badge {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.caia-cat-badge.on { display: flex; cursor: pointer; }
.caia-cat-badge.two { font-size: 9px; letter-spacing: -0.5px; }
/* カテゴリ選択中：未分類チャットはローダーの色だけ選択色に＋周りに点々の◯ */
.caia-cat-badge.preview {
  display: flex;
  cursor: pointer;
  width: 20px;
  height: 20px;
  background: transparent;
}

/* プラスローダーの枠3種（汎用・今後どこにでも適用できるよう用意）
   currentColor を使うので、親の color（＝ローダー/カテゴリ色）を継承して枠色が揃う。
   枠なし = .caia-plus-ring 単体 / 点線 = .dashed / 実線 = .solid */
.caia-plus-ring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  box-sizing: border-box;
  border: 1.5px solid transparent; /* 太さ = 現状のカテゴリ選択の的に合わせる */
}
.caia-plus-ring.dashed { border-style: dashed; border-color: currentColor; }
.caia-plus-ring.solid { border-style: solid; border-color: currentColor; }

/* プロジェクトのフォルダ行: 先頭の開閉マーク（▽）を名前のすぐ後ろへ移動 */
nav [aria-expanded] { display: flex; align-items: center; }
nav [aria-expanded] > svg:first-child { order: 99; margin-left: 4px; }

/* 下部フッター「CAIA CHAT」（細字Futura/Jost・文字間隔を詰める） */
div[role="contentinfo"] span {
  font-family: 'Futura', 'Jost', 'Century Gothic', sans-serif !important;
  font-weight: 300 !important;
  letter-spacing: 0.01em;
}

/* 回答内の見出しが大きすぎ・太すぎるのを抑える（本文に近い落ち着いたサイズへ） */
[data-testid="messages-view"] .markdown h1,
[data-testid="messages-view"] [class*="markdown"] h1 { font-size: 1.24em !important; font-weight: 700 !important; margin: 0.8em 0 0.35em !important; }
[data-testid="messages-view"] .markdown h2,
[data-testid="messages-view"] [class*="markdown"] h2 { font-size: 1.12em !important; font-weight: 600 !important; margin: 0.75em 0 0.3em !important; }
[data-testid="messages-view"] .markdown h3,
[data-testid="messages-view"] [class*="markdown"] h3 { font-size: 1.03em !important; font-weight: 600 !important; margin: 0.65em 0 0.28em !important; }
[data-testid="messages-view"] .markdown h4,
[data-testid="messages-view"] .markdown h5,
[data-testid="messages-view"] .markdown h6,
[data-testid="messages-view"] [class*="markdown"] h4,
[data-testid="messages-view"] [class*="markdown"] h5,
[data-testid="messages-view"] [class*="markdown"] h6 { font-size: 1em !important; font-weight: 600 !important; margin: 0.55em 0 0.25em !important; }

/* 参照資料の行「📔 参照: …」を本文より小さめ・グレーに */
[data-testid="messages-view"] .markdown .caia-cite,
[data-testid="messages-view"] [class*="markdown"] .caia-cite {
  font-size: 0.82em;
  line-height: 1.5;
  color: #9a94ab;
  margin-top: 6px;
}
[data-testid="messages-view"] .caia-cite * { color: inherit; font-size: inherit; font-weight: 400; }
.dark [data-testid="messages-view"] .caia-cite,
.dark [data-testid="messages-view"] [class*="markdown"] .caia-cite { color: #817c94; }

/* 応答時間（回答の下に小さく・送信→完了の実測） */
.caia-resp-time {
  display: inline-block;
  margin: 6px 0 0 2px;
  font-size: 11px;
  color: #a7a2b8;
  font-variant-numeric: tabular-nums;
  user-select: none;
}
.dark .caia-resp-time { color: #7c7790; }

/* ===== ヒストリー（会話の流れ＝AI要約見出しの目次） ===== */
.caia-note-hist {
  flex: 1;
  min-height: 0;
  display: none;
  flex-direction: column;
  padding: 0 16px;
}
.caia-hist-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 4px 8px;
  font-size: 12px;
  font-weight: 700;
  color: #473C73;
  letter-spacing: 0.02em;
}
.caia-hist-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.caia-hist-item {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  padding: 8px 8px 8px 6px;
  border-radius: 8px;
  cursor: pointer;
  color: #3c4043;
  font-size: 13px;
  line-height: 1.35;
  transition: background 0.12s ease;
}
.caia-hist-item:hover { background: rgba(139, 125, 194, 0.10); }
.caia-hist-dot {
  flex: none;
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.6);
}
.caia-hist-num {
  flex: none;
  min-width: 15px;
  margin-top: 1px;
  font-size: 11px;
  font-weight: 700;
  color: #b3adc4;
  text-align: right;
  white-space: nowrap; /* まとめ表記「12–17」用 */
}
.caia-hist-body {
  flex: 1;
  min-width: 0;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; /* 見出し＋要点を1行で。あふれた分は…で省略 */
}
.caia-hist-label {
  display: inline;
  font-weight: 400;
}
.caia-hist-sub {
  display: inline;
  margin-left: 6px;
  font-size: 11.5px;
  font-weight: 400;
  color: #9a94ab;
}
.caia-hist-sub::before { content: "→ "; opacity: 0.7; }
.caia-hist-item.caia-hist-pending .caia-hist-label { color: #a7a2b8; }
.caia-hist-empty {
  padding: 28px 12px;
  text-align: center;
  font-size: 12.5px;
  line-height: 1.7;
  color: #a7a2b8;
}
/* ジャンプ先メッセージの一瞬ハイライト */
.caia-hist-flash {
  animation: caiaHistFlash 1.4s ease;
  border-radius: 12px;
}
@keyframes caiaHistFlash {
  0%, 30% { background: rgba(139, 125, 194, 0.16); box-shadow: 0 0 0 6px rgba(139, 125, 194, 0.10); }
  100% { background: transparent; box-shadow: 0 0 0 6px transparent; }
}
.dark .caia-hist-head { color: #C9BEEB; }
.dark .caia-hist-item { color: #e0e0e0; }
.dark .caia-hist-item:hover { background: rgba(169, 155, 216, 0.16); }
.dark .caia-hist-num { color: #6f6b80; }
.dark .caia-hist-item.caia-hist-pending .caia-hist-label { color: #7c7790; }
.dark .caia-hist-sub { color: #817c94; }
.dark .caia-hist-empty { color: #7c7790; }
.dark .caia-hist-dot { box-shadow: 0 0 0 2px rgba(20, 20, 24, 0.6); }
.dark .caia-hist-flash { animation: caiaHistFlashDark 1.4s ease; }
@keyframes caiaHistFlashDark {
  0%, 30% { background: rgba(169, 155, 216, 0.18); box-shadow: 0 0 0 6px rgba(169, 155, 216, 0.12); }
  100% { background: transparent; box-shadow: 0 0 0 6px transparent; }
}

/* センターの入力欄: 左右の余白を広げる（従来 sm:px-2=8px → 32px。詰まり解消） */
form:has(#prompt-textarea) {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}

/* サイドバーの日付見出し（今日/昨日/過去7日間…）が直下のチャット項目とくっつくのを解消 */
nav h2.pl-1.pt-1.text-text-secondary {
  margin-top: 12px !important;
  padding-bottom: 5px !important;
}

/* ===== CAIA-FOR アプリ基盤 ===== */
/* 左パネル: アプリ一覧（カテゴリの上） */
.caia-applist { padding: 2px 12px 10px; }
.caia-applist-head {
  font-size: 12px; font-weight: 700; color: var(--text-secondary, #6b7280);
  padding: 8px 4px 4px;
}
.caia-appitem {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 7px 8px; margin-bottom: 2px;
  border-radius: 8px; background: transparent;
  color: inherit; font-size: 13px; text-align: left; cursor: pointer;
  transition: background .15s;
}
.caia-appitem:hover { background: rgba(122, 107, 181, .10); }
.caia-appitem:active { background: rgba(122, 107, 181, .16); }
/* LibreChatのボタン共通CSS（枠線・フォーカスリング・タップハイライト）を打ち消す＝ちらつき防止 */
.caia-appitem,
.caia-appitem:focus,
.caia-appitem:focus-visible,
.caia-appitem:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
  -webkit-tap-highlight-color: transparent;
  appearance: none;
}
.caia-appitem svg { flex: 0 0 auto; color: #7A6BB5; }

/* 右パネル: アプリタブ */
.caia-note-tab.caia-apptab { color: #7A6BB5; }
.caia-note-tab.caia-apptab.active { color: #473C73; }

/* 右パネル: アプリ画面（FORサーバー配信ページをiframeで表示） */
.caia-app-panel { display: none; flex: 1 1 auto; min-height: 0; }
.caia-app-panel iframe { width: 100%; height: 100%; border: none; display: block; }
