/* ============ てりーさんタブ（お知らせ→てりーさん統合、2026-09-28） ============
   体調記録・予定照会・ガント調整・面談メモ追加まで受け付ける対話タイムライン。
   吹き出し（.chat-bubble）・提案カードのオーロラ（.nagi-suggest-aurora、shared.css）・録音のオーロラ
   （.voice-log-aurora）は、既存のグローバルクラスをそのまま
   再利用する（このアプリはビルド無しの単一ページで、CSSクラスはタブをまたいで共有される）。 */

.nagi-messages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 4px 2px 12px;
}

/* 日付区切り（中央揃え） */
.nagi-date-divider {
  align-self: center;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--ink-faint);
  background: var(--line);
  padding: 3px 12px;
  border-radius: 999px;
  margin: 4px 0;
}

/* 吹き出し1件分のグループ（バブル＋時刻）。LINEのように、時刻はバブルの
   「内側」の辺（画面端と逆側）に寄せる：
   - てりーさんのメッセージ（左寄せ）→ 時刻はバブルの右下
   - ユーザのメッセージ（右寄せ）→ 時刻はバブルの左下 */
.nagi-msg-group {
  display: flex;
  flex-direction: column;
  max-width: 100%;
}
.nagi-msg-group.is-model {
  align-items: flex-end;
  align-self: flex-start;
}
.nagi-msg-group.is-user {
  align-items: flex-start;
  align-self: flex-end;
}
.nagi-msg-time {
  font-size: 10.5px;
  color: var(--ink-faint);
  margin-top: 2px;
  padding: 0 2px;
}

/* 提案カード。枠・面は共通部品の.nagi-suggest-aurora（shared.css）。応答待ち（pending）は.is-flowingで動き、
   確定・見送り（.is-done）は固定（#33-52、2026-10-11。nagi-console.jsのcardHtml()がcard_statusから決める）。
   角丸・余白・バッジは、それまでの.aurora-card（今日タブの旧ブリーフィングと共有、#33-52で削除）の値を引き継いだ。 */
.nagi-card { margin: 2px 0; align-self: stretch; border-radius: 18px; }
.nagi-card-inner { padding: 16px 18px; }
.nagi-card-badge {
  display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: 0.02em;
  color: var(--pine-deep); background: var(--pine-soft); padding: 4px 10px; border-radius: 999px; margin-bottom: 8px;
}
.nagi-card-body { font-size: 13.5px; line-height: 1.7; color: var(--ink); }
.nagi-card-actions { display: flex; gap: 8px; margin-top: 10px; }
.nagi-card-status { margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--ink-faint); }
.nagi-card.is-done .nagi-card-inner { opacity: 0.75; }
/* てりーさんカード専用のアクションボタン（バックログ#33-17、2026-09-30）。カード種別を問わず
   「副（左・やめる）｜主（右・実行する）」で統一する。朝の提案の選択トグル
   （today.cssの.briefing-choice-btn）とは意味が違うので別クラスにしている。 */
.nagi-card-btn {
  flex: 1; padding: 7px; border-radius: 999px; border: 1px solid var(--line); background: none;
  color: var(--ink-muted); font-size: 12.5px; font-weight: 700; font-family: inherit; cursor: pointer;
}
.nagi-card-btn.is-primary { background: var(--pine); border-color: var(--pine); color: #fff; }
.nagi-card-btn:disabled { opacity: 0.6; cursor: default; }

/* 入力欄。シート（バックログ#40-3-3）の下部に固定する。スクロールするのは上の会話の領域（.nagi-scroll）だけ。 */
.nagi-input-row {
  position: static;
  flex-shrink: 0;
  padding: 8px 0 0;
  background: none;
}
.nagi-voicebox {
  position: relative;
  flex-shrink: 0;
  border-radius: 999px;
  padding: 2px;
  background: var(--line);
  overflow: hidden;
  isolation: isolate;
  transition: box-shadow 0.6s ease;
}
.nagi-voicebox.is-listening { box-shadow: 0 0 14px rgba(95, 168, 138, 0.55); }
.nagi-voicebox.is-thinking { box-shadow: 0 0 16px rgba(143, 203, 174, 0.7); }
.nagi-voicebox.is-listening .voice-log-aurora { opacity: 0.85; animation: vlSway 3.4s ease-in-out infinite alternate; }
.nagi-voicebox.is-listening #nagiMic { animation: vlPulse 1.6s ease-out infinite; }
.nagi-voicebox.is-thinking .voice-log-aurora { opacity: 0.95; animation: vlSpin 5s linear infinite, vlGlow 2.4s ease-in-out infinite alternate; }
.nagi-mic-btn {
  position: relative;
  z-index: 1;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--surface);
  font-size: 18px;
  cursor: pointer;
}
.nagi-mic-btn:disabled { opacity: 0.6; cursor: default; }
@media (prefers-reduced-motion: reduce) {
  .nagi-voicebox.is-listening .voice-log-aurora, .nagi-voicebox.is-thinking .voice-log-aurora,
  .nagi-voicebox.is-listening #nagiMic { animation: none; }
}
.nagi-clear-btn { display: block; align-self: flex-end; margin: 0 0 6px auto; flex-shrink: 0; padding: 3px 10px; font-size: 11px; }

/* ナビの「てりーさん」アイコン：顔だけの画像（terry-avatar.webp、#44-1）を、丸の中に縦横比を保って収める。 */
.nav-mascot-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
  background: #eaf5f2;
  border: 1.5px solid var(--pine-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.nav-mascot-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ============ 体調記録の確認パネル（2026-09-28追加） ============
   てりーさんが自動で仮入力した今日タブのAM/PMカード（#periodSectionAM/PM）を、このパネルへ
   一時的に移して表示し、その場で直してから記録する。PC幅は常設の右ペイン、スマホ幅は全画面。 */
.nagi-layout { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.nagi-main-col { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.nagi-side-panel { display: none; }
/* スマホ幅は全画面に重ねる。シート（.nagi-sheet）は開き終わるとtransform:noneになるので、
   position:fixedは画面全体を基準にする（transformが残っているとシートの中に閉じ込められる）。 */
.nagi-side-panel.is-open {
  display: flex;
  flex-direction: column;
  position: fixed;
  inset: 0;
  z-index: 30;
  background: var(--bg);
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
  box-sizing: border-box;
  overflow-y: auto;
}
.nagi-side-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; flex-shrink: 0; }
.nagi-side-panel-title { margin: 0; font-size: 15px; font-weight: 800; color: var(--ink); }
.nagi-side-panel-body { flex: 1; min-height: 0; }
.nagi-panel-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin-bottom: 8px; }
/* パネル内では、上の切替が期間を示すので、今日タブから移したカードの「● PM」と「✕ 未入力に戻す」の行は隠す（#33-18）。
   パネルを閉じて今日タブへ戻すと、このセレクタから外れて今までどおり出る。 */
.nagi-side-panel .period-head-row { display: none; }
.nagi-panel-seg button { border: none; background: var(--surface); padding: 6px 20px; font-size: 13px; font-weight: 700; font-family: inherit; color: var(--ink-muted); cursor: pointer; }
.nagi-panel-seg button.active { background: var(--pine); color: #fff; }
.nagi-panel-save-btn { margin-top: 16px; }

@media (min-width: 1024px) {
  .nagi-layout { flex-direction: row; gap: 16px; align-items: stretch; }
  .nagi-main-col { flex: 1; min-width: 0; }
  /* PCは会話の右に2列目として出す（窓の幅をmin(820px, 100vw - 164px)へ右にだけ広げる。.nagi-sheet.has-side-panel、#47） */
  .nagi-side-panel.is-open {
    position: static;
    inset: auto;
    z-index: auto;
    width: 380px;
    flex-shrink: 0;
    min-height: 0;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 10px rgba(38, 43, 40, 0.08);
  }
}

/* 古いやり取りを読み込み中の表示（バックログ#37）。まだ古い分がある間は会話欄のいちばん上に
   場所だけ取っておき（visibility:hidden）、読み込み中（.is-loading）だけ見せる。
   文字の大きさ・色は日付区切り・時刻表示に合わせる（背景のピルは付けない）。 */
.nagi-older-loading {
  align-self: center;
  font-size: 11.5px;
  color: var(--ink-faint);
  padding: 4px 0;
  visibility: hidden;
}
.nagi-older-loading.is-loading { visibility: visible; }

/* ============ てりーさんのシート（バックログ#40-3-3、2026-10-09） ============
   以前の「てりーさん」タブ（#view-nagi）の中身を、全タブのヘッダーの「てりーさん」から開くシートへ移した。
   スマホ: 下から出るシート（上40pxは暗くした元の画面が見える）。PC: 画面の右に貼り付くパネル。
   暗幕は既存の.sheet-overlayと同じ色。z-indexは今日タブのFAB（25）・ガントのボタン（24）より上、
   他のダイアログ（.sheet-overlay 40、確認ダイアログ 50）より下にする（シートの中から開くダイアログが上に出るように）。 */
.nagi-sheet-overlay {
  position: fixed;
  inset: 0;
  z-index: 38;
  background: rgba(38,43,40,0.35);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0s linear 0.25s;
}
.nagi-sheet-overlay.open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition: opacity 0.2s ease, visibility 0s;
}
.nagi-sheet {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  max-width: 560px;
  height: calc(100dvh - 40px);
  background: var(--bg);
  border-radius: 16px 16px 0 0;
  padding: 4px 16px calc(12px + env(safe-area-inset-bottom));
  transform: translateY(100%);
  transition: transform 0.25s ease;
  overflow: hidden;
}
/* 開き終わったらtransformを外す（noneにしておくと、中のposition:fixed（スマホの体調記録パネル）が画面全体を基準にできる） */
.nagi-sheet-overlay.open .nagi-sheet { transform: none; }
.nagi-sheet-handle { flex-shrink: 0; margin: 6px auto 8px; }
.nagi-sheet-tail { display: none; } /* PCの窓のしっぽ（#47）。スマホのシートでは出さない */
.nagi-sheet-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-bottom: 4px;
}
.nagi-sheet-mascot { width: 28px; height: 28px; }
.nagi-sheet-title { margin: 0; flex: 1; min-width: 0; font-size: 16px; font-weight: 700; color: var(--ink); }
.nagi-sheet-close { flex-shrink: 0; width: 32px; height: 32px; padding: 0; font-size: 14px; }
/* 会話の流れ。シートの中でスクロールするのはここだけ */
.nagi-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
body:has(.nagi-sheet-overlay.open) main { overflow-y: hidden; }
/* シートを開いている間は、今日タブの編集FAB・進捗管理の「てりーさんとガントを整える」（スマホ）を隠す
   （シートの入力欄と重ならないように。enterEditMode()がstyle.displayでFABを出しても、こちらが勝つよう!important）。 */
html.nagi-sheet-open .edit-save-fab,
html.nagi-sheet-open .edit-cancel-fab,
html.nagi-sheet-open .gantt-assist-btn { display: none !important; }

/* 頼めること（役割の入口）。スマホ・PCとも2列のタイル。
   #33-57: 「頼めること ▴」（#nagiAsksToggle）から開くポップオーバーにし、入力欄の上の行（.nagi-input-meta）を基準に
   会話の上へ重ねる（会話欄の高さは変えない）。縦が短い画面でもヘッダーより上へ飛び出さないよう、高さに上限を付けて中でスクロールする。 */
.nagi-asks {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 6px);
  z-index: 5;
  box-sizing: border-box;
  max-height: min(320px, 55dvh, var(--nagi-asks-room, 320px)); /* --nagi-asks-room: 会話欄の上端までの高さ（nagi-console.jsのrenderAsks()） */
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px;
  background: #fff;
  border: 1px solid #DEEBED;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(35, 96, 116, 0.18);
}
.nagi-asks-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.nagi-ask-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
.nagi-ask-tile:active { background: var(--surface-sunk); }
.nagi-ask-tile:disabled { opacity: 0.6; cursor: default; }
.nagi-ask-name { font-size: 13px; font-weight: 700; color: var(--ink); }
.nagi-ask-desc { font-size: 11.5px; line-height: 1.45; color: var(--ink-muted); }
.nagi-asks-note { margin: 6px 0 0; font-size: 12.5px; color: var(--ink-muted); }
.nagi-asks.is-collapsed { display: none; }
/* 入力欄の上の小さな行（「頼めること ▴」と、選んだ役割の印）。中の.nagi-asksの位置の基準（position:relative） */
.nagi-input-meta {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  flex-shrink: 0;
  padding-top: 8px;
}
.nagi-asks-toggle:disabled { opacity: 0.6; cursor: default; }
.nagi-asks-toggle {
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-muted);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 11.5px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}
.nagi-intent-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 4px 2px 10px;
  border-radius: 999px;
  background: var(--pine-soft);
  color: var(--pine-deep);
  font-size: 11.5px;
  font-weight: 700;
}
.nagi-intent-chip-clear {
  border: none;
  background: none;
  color: var(--pine-deep);
  font-size: 13px;
  line-height: 1;
  padding: 2px 6px;
  cursor: pointer;
  font-family: inherit;
}
/* 上の行が出ている時は、入力欄の上の余白を詰める */
.nagi-input-meta + .nagi-input-row { padding-top: 6px; }

/* ヘッダーの「てりーさん」ボタン（全タブ）。見た目の土台は.toggle-pill（左の丸い点は使わない） */
.nagi-header-btn {
  position: relative;
  padding: 3px 12px 3px 3px;
  gap: 6px;
  flex-shrink: 0;
}
.nagi-header-btn::before { display: none; }
/* 「に頼む」と右の›は、PC版の今日タブ（#33-8のデザイン刷新）だけで見せる。他のタブ・スマホは「てりーさん」のまま */
.nagi-header-btn-suffix,
.nagi-header-btn-arrow { display: none; }
.nagi-header-btn:active { background: var(--surface-sunk); }
.nagi-header-btn .nav-badge { top: -3px; right: -3px; left: auto; }
/* 375px未満のスマホの今日タブでは、日付・前日/翌日・勤怠と並ぶと次の日ボタンに重なるので、マスコットだけにする
   （名前はaria-label「てりーさんに頼む」で読み上げられる）。ユーザーの端末（412px）や他のタブでは文言も出す。 */
@media (max-width: 374.98px) {
  body[data-view="today"] .nagi-header-btn { padding: 3px; }
  body[data-view="today"] .nagi-header-btn-text { display: none; }
}
/* 過去・未来の日に省エネの実績バッジ🌱（today.jsがstyle.displayで出し入れ）が並ぶ時は、412px未満でも同じようにする */
@media (max-width: 411.98px) {
  body[data-view="today"] .header-actions:has(#todayHeaderEnergyBadge:not([style*="none"])) .nagi-header-btn { padding: 3px; }
  body[data-view="today"] .header-actions:has(#todayHeaderEnergyBadge:not([style*="none"])) .nagi-header-btn-text { display: none; }
}

/* 今日タブの帯（未確定の提案カードがある時だけ）。枠・面は動くオーロラ（.nagi-suggest-aurora.is-flowing、index.html。#33-52） */
.nagi-notice-band {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  border-radius: var(--radius-md);
  font-size: 12.5px;
  color: var(--ink);
}
.nagi-notice-band-text { flex: 1; min-width: 0; }
.nagi-notice-band-btn {
  flex-shrink: 0;
  border: 1px solid var(--pine);
  background: var(--surface);
  color: var(--pine-deep);
  border-radius: 999px;
  padding: 4px 14px;
  font-size: 12px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}

/* PCの窓（#47、2026-10-12。仕様: BACKLOG #47・docs/design-refresh/sidebar-terry-proposal-review.md「4」「6」）。
   #33-57までの右から出る600pxのシートをやめ、サイドバー左下のてりーさん（#sidebarTerryBtn）から出る吹き出し形の窓にした。
   サイドバーの右端（140px）に接して、下端16px・幅440px・高さmin(78dvh, 740px)。暗幕なし（覆い.nagi-sheet-overlayは透明のまま
   画面全体に残し、窓の外を押したら閉じる今までの挙動を保つ）。左のしっぽ（.nagi-sheet-tail）は窓の下端から135pxの高さで、
   左へ21px出す（窓の外へ出すので、PCでは窓のoverflowをvisibleにする。会話のスクロールは中の.nagi-scrollが受け持つ）。
   開く＝しっぽの位置を起点に、少し小さく左下へずれた所から200msで膨らむ。閉じる＝150ms ease-in。
   体調記録の確認パネル（.has-side-panel）を開いている間は、左端・下端・しっぽの位置を保ったまま右へだけ広げて2列にする（ユーザー決定）。 */
@media (min-width: 1024px) {
  .nagi-sheet-overlay {
    display: block;
    background: transparent;
    opacity: 1;
    transition: visibility 0s linear 0.16s; /* 閉じる動き（150ms）が終わってから覆いを外す */
  }
  .nagi-sheet-overlay.open { transition: visibility 0s; }
  .nagi-sheet {
    position: absolute;
    left: 140px;
    bottom: 16px;
    width: 440px;
    max-width: none;
    height: min(78dvh, 740px);
    border: 1px solid #CDE6EC;
    border-radius: 20px;
    padding: 16px 20px 16px;
    overflow: visible;
    box-shadow: 0 16px 40px rgba(31, 102, 124, 0.17);
    opacity: 0;
    transform: translate(-6px, 8px) scale(0.96);
    transform-origin: left calc(100% - 135px);
    transition: opacity 150ms ease-in, transform 150ms ease-in, width 0.2s ease;
  }
  .nagi-sheet-overlay.open .nagi-sheet {
    opacity: 1;
    transform: none;
    transition: opacity 200ms cubic-bezier(.2, .8, .2, 1), transform 200ms cubic-bezier(.2, .8, .2, 1), width 0.2s ease;
  }
  /* 確認パネルを開いている間だけ高さも広げる（1024×640で「この内容で記録する」を初期表示に入れる。Codex実装レビュー、#47）。
     通常の440px窓はmin(78dvh, 740px)のまま。1440×900では740px上限なので見た目は変わらない */
  .nagi-sheet.has-side-panel { width: min(820px, calc(100vw - 164px)); height: min(86dvh, 740px); }
  /* 窓を開いている間は、背後の通知帯（#nagiNoticeBand）を見せない（窓の上端が帯を横切って「開く」だけ残るのを防ぐ）。
     display:noneにすると背面のレイアウトが動くので、visibility:hiddenで位置を保つ。閉じたら元に戻る */
  html.nagi-sheet-open body[data-view] #nagiNoticeBand { visibility: hidden; }
  /* しっぽ: 横向きの丸みのある三角（根元18px・先端は細く）。面は窓と同じ#FCFEFE、外周は窓の枠と同じ#CDE6EC。
     右端2pxを窓の左の枠に重ねて、枠の切れ目を隠す。オーロラにはしない */
  .nagi-sheet-tail {
    display: block;
    position: absolute;
    left: -22px;
    bottom: 125px;
    width: 23px;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='23' height='20' viewBox='0 0 23 20'%3E%3Cpath d='M23 0V20H22Q14 16.6 2.6 13.9Q0.6 13.3 2.3 12.1Q12 6.2 22 1Z' fill='%23FCFEFE'/%3E%3Cpath d='M22 1Q12 6.2 2.3 12.1Q0.6 13.3 2.6 13.9Q14 16.6 22 19' fill='none' stroke='%23CDE6EC' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
    pointer-events: none;
  }
  .nagi-sheet-handle { display: none; }
  .nagi-notice-band { margin-bottom: 0; }
}
/* 縦が620px以下ではサイドバーのてりーさんを出さない（shared.css）ので、向ける先の無いしっぽも出さない */
@media (min-width: 1024px) and (max-height: 620px) {
  .nagi-sheet-tail { display: none; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
  .nagi-sheet,
  .nagi-sheet-overlay.open .nagi-sheet {
    transform: none;
    transition: opacity 120ms ease;
  }
}

/* ===== PC版「今日」タブのてりーさん（バックログ#33-8、2026-10-09。仕様: docs/design-refresh/README.md） =====
   1024px以上の今日タブでは、シートの中身（見出し・吹き出し・頼めること・入力欄）を青緑系の新しい見た目にする。
   予定タブから開いた時も、中身は同じ値を共有する（#33-47、2026-10-10。仕様: docs/design-refresh/schedule-nagi-spec.md）。
   振り返りタブから開いた時も同じ（2026-10-11。仕様: docs/design-refresh/history-nagi-followup.md）。設定タブも同じ（2026-10-11）。
   #33-57（2026-10-12）で1440px以上の今日タブの右ドック（暗幕なし・幅435px・本文を縮める）を廃止し、全タブとも
   暗幕つきの幅600pxの右シートにそろえた。#47（2026-10-12）で、窓の位置・大きさはサイドバー左下のてりーさんから出る440pxの
   吹き出し形に変えた（上の「PCの窓」の節）。ここは中身の見た目だけ。
   1023px以下はボトムシートのまま（見た目もそのまま）。 */
@media (min-width: 1024px) {
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet {
    padding: 18px 16px 14px;
    background: #FCFEFE; /* 1024〜1439pxの右シートでは裏の本文に重なるので、透かさない */
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet-head { gap: 10px; min-height: 52px; margin-bottom: 0; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet-mascot {
    width: 52px;
    height: 52px;
    border: 0;
    background: #E7F6F4;
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet-title { font-size: 16px; font-weight: 800; color: var(--ink); }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet-close {
    width: 38px;
    height: 38px;
    border: 0;
    background: #fff;
    color: #365D7D;
    font-size: 15px;
    box-shadow: 0 4px 14px rgba(46, 99, 118, 0.12);
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-clear-btn {
    margin: 4px 2px 6px auto;
    padding: 5px 11px;
    border: 0;
    background: #fff;
    color: #8297AA;
    font-size: 10.5px;
    box-shadow: 0 3px 10px rgba(35, 89, 107, 0.09);
  }
  /* てりーさんの吹き出しの左に、小さなてりーさんの顔（terry-avatar.webp。顔だけの画像なので縦横比を保って丸に収める、#44-1） */
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group.is-model { position: relative; padding-left: 42px; max-width: 100%; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group.is-model::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #E7F6F4 url("../assets/terry-avatar.webp") center / contain no-repeat;
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group .chat-bubble { font-size: 13px; line-height: 1.62; border-radius: 13px; }
  /* #33-57: シートを600pxに広げたので、吹き出しも固定の315pxでなく会話欄の幅の84%まで広げる。
     84%の上限は吹き出しの入れ物（.nagi-msg-group）に付け、吹き出し自体は入れ物いっぱい（100%）にする。吹き出しに84%を付けると、
     入れ物が中身の幅に縮むため「入れ物の84%」になり、短い発言まで途中で折り返す。てりーさんの側は顔（左42px）を除いた幅の84% */
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group.is-user { max-width: 84%; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group.is-model { max-width: calc(42px + (100% - 42px) * 0.84); }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group .chat-bubble { max-width: 100%; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group .chat-bubble-model { background: #F2F8F8; color: #38566F; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-msg-group .chat-bubble-user {
    padding: 11px 18px;
    background: linear-gradient(135deg, #3B9185, #27827D);
    color: #fff;
  }
  /* 頼めること: 2列のタイル、名前の左に小さな◉ */
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-asks-grid { gap: 8px; } /* #47: タイル間8px */
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-ask-tile {
    min-height: 67px;
    padding: 9px 10px;
    border: 1px solid #DEEBED;
    background: #fff;
    box-shadow: 0 4px 13px rgba(35, 96, 116, 0.065);
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-ask-name {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 800;
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-ask-name::before {
    content: "◉";
    display: inline-grid;
    place-items: center;
    flex: none;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #E6F7FA;
    color: var(--today-teal);
    font-size: 12px;
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-ask-desc { padding-left: 32px; font-size: 10.5px; line-height: 1.4; color: #71899E; }
  /* 入力欄: マイク（38px）｜入力（残り幅・50px）｜送信（48pxの青緑のボタン） */
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-input-row { align-items: center; gap: 7px; padding-top: 10px; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-voicebox { padding: 2px; background: #D9EDF0; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-mic-btn { width: 36px; height: 36px; font-size: 16px; }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) #nagiInput {
    min-height: 50px;
    padding: 10px 12px;
    border: 1px solid #E1ECEE;
    border-radius: 14px;
    background: #F8FBFB;
    font-size: 13px;
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-input-row .chat-send-btn {
    flex: none;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #58BFD0, #32A5B7);
    font-size: 0; /* 「送信」の文字の代わりに➤を出す（読み上げはaria-label「送信」） */
  }
  body:is([data-view="today"], [data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-input-row .chat-send-btn::before { content: "➤"; font-size: 20px; color: #fff; }
}

/* ===== PC版「予定」タブのてりーさん（バックログ#33-47、2026-10-10。仕様: docs/design-refresh/schedule-nagi-spec.md） =====
   中身の見た目は上の今日タブと共有。予定タブはカレンダー・一覧・ガントの表示領域を守るため、本文は縮めず、
   背面操作は止める（PCは#47から透明な覆い。窓の外のクリックは従来どおり閉じる）。
   窓の位置・大きさ・暗幕なしは#47の「PCの窓」の節（全タブ共通）。
   振り返りタブも同じ扱い（トークン・顔の切り抜きを共有。
   2026-10-11、仕様: docs/design-refresh/history-nagi-followup.md）。設定タブも振り返りと同じ扱い（2026-10-11）。 */
@media (min-width: 1024px) {
  /* 青緑の配色トークン（tokens.cssの「PC版『今日』タブのデザイン刷新」と同じ値）を、予定タブではシートの中だけに当てる。
     上の共有ルールが参照する--ink・--today-teal等や、日付区切り・時刻・体調記録パネルの色を今日タブとそろえるため
     （予定タブの本文は緑系のトークンのまま）。tokens.cssの値を変える時は、ここも合わせる。 */
  body:is([data-view="schedule"], [data-view="history"], [data-view="settings"]) .nagi-sheet {
    --ink: #12385F;
    --ink-muted: #48667E;
    --ink-faint: #8299AC;
    --line: #DCE8EC;
    --surface-sunk: #EEF6F6;
    --pine: #2F8A84;
    --pine-soft: #DDF1EF;
    --pine-deep: #1F5E62;
    --ok: #3C9085;
    --today-teal: #3BB5C7;
    --today-sun: #F0BB54;
    --today-moon: #67B9E3;
    --today-card-bg: rgba(255, 255, 255, 0.9);
    --today-card-line: rgba(214, 231, 235, 0.88);
    --today-card-shadow: 0 7px 20px rgba(38, 105, 124, 0.075);
    --today-panel-line: #E3ECEE;
    --today-radius: 12px;
    color: var(--ink);
  }
}
/* （#33-57の「1440px以上は薄い暗幕・左角丸・影の右シート」は、#47でPCの窓を左下のてりーさんから出す形にしたので廃止） */

/* ===== スマホ版てりーさんシートの配色（バックログ#33-47、2026-10-10。仕様: docs/design-refresh/nagi-sheet-mobile-spec.md） =====
   1023px以下（スマホ縦・アプリ横）では、どのタブから開いても、PC版と同じ青白＋青緑の配色にする。
   ボトムシートの高さ・暗幕・スクロール領域・safe-area・2列タイル・入力欄の並びは上の既定のまま変えず、色と小さな装飾だけ。
   スマホの会話幅を守るため、PC版の発言左の顔（34px）と頼めることの◉は付けない。
   PC（1024px以上）は上の「PC版『今日』タブのてりーさん」以降のルールのまま。 */
@media (max-width: 1023.98px) {
  /* 青緑の配色トークン（PC版の予定タブと同じ値のうち、シートの中で使うもの）。シートの中だけに当てる */
  .nagi-sheet {
    --ink: #12385F;
    --ink-muted: #48667E;
    --ink-faint: #8299AC;
    --line: #DCE8EC;
    --surface: #FFF;
    --surface-sunk: #EEF6F6;
    --pine: #2F8A84;
    --pine-soft: #DDF1EF;
    --pine-deep: #1F5E62;
    --today-teal: #3BB5C7;
    background: #FCFEFE;
    color: var(--ink);
  }
  .nagi-sheet .nagi-sheet-handle { background: #DCE8EC; }
  .nagi-sheet .nagi-sheet-head { gap: 9px; }
  /* 見出しのてりーさん: 28px→34px、枠なし。顔と花かんむりが見えるよう上の方を切り抜く（PC版と同じ） */
  .nagi-sheet .nagi-sheet-mascot {
    width: 34px;
    height: 34px;
    border: 0;
    background: #E7F6F4;
  }
  .nagi-sheet .nagi-sheet-title { color: var(--ink); font-weight: 800; }
  .nagi-sheet .nagi-sheet-close {
    width: 34px;
    height: 34px;
    border: 0;
    background: #fff;
    color: #365D7D;
    box-shadow: 0 4px 14px rgba(46, 99, 118, 0.12);
  }
  .nagi-sheet .nagi-clear-btn {
    border: 0;
    background: #fff;
    color: #8297AA;
    box-shadow: 0 3px 10px rgba(35, 89, 107, 0.09);
  }
  .nagi-sheet .nagi-date-divider { background: #E3EEF1; color: #7891A4; }
  /* 吹き出しの幅の上限は既定と同じ86%。ただし上限は入れ物（.nagi-msg-group）に付け、吹き出しは入れ物いっぱいにする
     （#33-57追加修正。吹き出しに86%を付けると、中身の幅に縮んだ入れ物の86%になり、短い発言まで途中で折り返す。PCと同じ考え方） */
  .nagi-sheet .nagi-msg-group.is-user,
  .nagi-sheet .nagi-msg-group.is-model { max-width: 86%; }
  .nagi-sheet .nagi-msg-group .chat-bubble { max-width: 100%; border-radius: 13px; font-size: 13px; line-height: 1.62; }
  .nagi-sheet .nagi-msg-group .chat-bubble-model { background: #F2F8F8; color: #38566F; }
  .nagi-sheet .nagi-msg-group .chat-bubble-user { background: linear-gradient(135deg, #3B9185, #27827D); color: #fff; }
  /* 頼めること: 2列・5タイルのまま。高さ・padding・文字サイズは変えない */
  .nagi-sheet .nagi-asks { border-top-color: #DCE8EC; }
  .nagi-sheet .nagi-asks-grid { gap: 7px; }
  .nagi-sheet .nagi-ask-tile {
    border-color: #DEEBED;
    background: #fff;
    box-shadow: 0 4px 13px rgba(35, 96, 116, 0.055);
  }
  .nagi-sheet .nagi-ask-name { color: #244A67; }
  .nagi-sheet .nagi-ask-desc,
  .nagi-sheet .nagi-asks-note { color: #71899E; }
  /* 入力欄: マイク｜入力（48px以上）｜送信（48pxの水色のボタン） */
  .nagi-sheet .nagi-voicebox { background: #D9EDF0; }
  .nagi-sheet #nagiInput {
    min-height: 48px;
    border: 1px solid #E1ECEE;
    border-radius: 14px;
    background: #F8FBFB;
    color: var(--ink);
  }
  .nagi-sheet #nagiInput::placeholder { color: #91A5B4; }
  .nagi-sheet .nagi-input-row .chat-send-btn {
    flex: none;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #58BFD0, #32A5B7);
    font-size: 0; /* 「送信」の文字の代わりに➤を出す（読み上げはaria-label「送信」） */
  }
  .nagi-sheet .nagi-input-row .chat-send-btn::before { content: "➤"; color: #fff; font-size: 20px; }
  /* 体調記録の確認パネル（スマホは全画面に重ねる） */
  .nagi-sheet .nagi-side-panel.is-open { background: #F4FAFB; color: var(--ink); }
}
