/* Bloom — 会社という花を咲かせるプラットフォーム（旧PLai Hub・2026-07-23リブランド）
   LH品質トークン × Salesforce風上タブ（絵文字なし・SVG stroke統一）

   ■ 使う色は4つだけ（2026-07-23 市岡指示「ピンクと緑と黒と白だけで作って」）
     新ロゴ＝2枚の花びら。大きいピンク＝「人」、小さいグリーン＝「AI」。その意味をUIにそのまま持ち込む。
       ピンク  … 人が押すもの・人に見てほしいもの（主操作／選択中／強調／注意・期限切れ）
       グリーン… AIと仕組みの側（AI下書き・via AI・完了・稼働中・応答あり）
       ブラック… 文字と、いちばん重い操作（本番配信のような取り消せないボタン）
       ホワイト… 面。グレーはすべてブラックの薄めで作る（青みグレー・橙・赤・紫は使わない）
     ロゴの実測色そのもの（--petal / --petal-ai / --petal-mix）は明るすぎるので装飾・ロゴ専用。文字色にはしない。
     機械検査= `node qa/06_palette.mjs`（この4系統から外れた色が1つでも入ったらFAIL）

   ■ コントラスト実測（WCAG 2.1 相対輝度・全ペア4.5:1以上を確認して採用）
     白文字 on brand 4.79 ／ brand on 白 4.79 ／ brand on bg 4.52 ／ brand-ink on brand-soft 5.76
     白文字 on green 5.31 ／ green on green-soft 4.94 ／ sub on 白 4.96 ／ 白文字 on ink 17.95 */
:root{
  /* 新ロゴ実測色（装飾・ロゴ専用。文字色にはしない） */
  --petal:#f5709c; --petal-ai:#76d6ae; --petal-mix:#80a090;
  /* ピンク＝人 */
  --brand:#c7406d; --brand-strong:#b23962; --brand-ink:#a8365c; --brand-soft:#fff2f6; --brand-line:#f7d4e1;
  /* グリーン＝AI・仕組み（塗りにも文字にも1つで足りる濃さ） */
  --green:#1b7a53; --green-soft:#ecfaf3; --green-line:#c9ecdb;
  --ai:var(--green); --ai-soft:var(--green-soft); --ai-line:var(--green-line);
  /* ブラック＆ホワイト（グレーはすべて黒の薄め＝色みを持たせない） */
  --ink:#161620; --ink-2:#3a3a45; --sub:#6f6f7b; --line:#e8e8ec; --bg:#f8f8fa; --card:#fff;
  --neutral-soft:#f1f1f4; --neutral-line:#d5d5dc;
  /* 旧トークン互換: 既存ルールを書き換えずに全部この4色に寄る。
     赤（警告）はピンクへ、橙（注意）は黒の薄めへ畳む＝5色目を作らない。 */
  --purple:var(--brand); --purple2:var(--petal); --purple-soft:var(--brand-soft);
  --red:var(--brand-ink); --red-soft:var(--brand-soft);
  --orange:var(--ink-2); --orange-soft:var(--neutral-soft);
  --r:14px; --sh:0 8px 24px rgba(22,22,32,.07);
  --font-brand:"Avenir Next","Segoe UI Variable Display",system-ui,-apple-system,"Helvetica Neue",sans-serif;
}
/* ロゴ本体（index.htmlの<symbol id="bloom-petals">を<use>で参照） */
.brand-sprite{position:absolute;width:0;height:0;overflow:hidden}
.bloom-mark{display:block;width:100%;height:100%}
.wordmark{font-family:var(--font-brand);font-weight:700;letter-spacing:-.015em}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6}
.hidden{display:none!important}
a{color:var(--purple);text-decoration:none}
button{font-family:inherit}

/* ---------- ログイン ---------- */
/* 咲く前の淡いピンク→ミント。2枚の花びらの色をそのまま背景の光にしている */
.login{position:fixed;inset:0;background:linear-gradient(140deg,#fff4f8,#f8f8fa 55%,#eefaf4);display:grid;place-items:center;z-index:50;padding:16px}
.login-inner{width:min(92vw,400px)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(26,26,46,.10);padding:34px 34px 26px}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.login-mark{width:50px;height:50px;flex:none}
.login-brand b{font-size:25px;display:block;line-height:1.15}
.login-brand span{font-size:12px;color:var(--sub);font-weight:600}
.login-note{color:var(--sub);font-size:12.5px;margin:0 0 14px}
.login input{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:11px 14px;font-size:15px;margin-bottom:12px}
.login input:focus{outline:none;border-color:var(--brand)}
.login-err{color:var(--red);font-size:12.5px;font-weight:700;min-height:18px;margin:8px 0 0}
.login-tagline{margin:16px 0 0;text-align:center;font-family:var(--font-brand);font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--sub)}

.mark{width:28px;height:28px;flex:none}

/* ---------- 左レール（2026-07-24 上タブから移行）----------
   市岡指示「左の一番上がホーム。ホームで部署を選んだら左側も変わる。メッセージ・カレンダーの下にビデオ会議」。
   ホーム／メッセージ／カレンダー／ビデオ会議は常設。その下が“いま選んでいる部署”の道具箱。 */
.app{display:grid;grid-template-columns:236px minmax(0,1fr);align-items:start;min-height:100dvh}
.rail{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);z-index:20}
.brand{display:flex;align-items:center;gap:9px;padding:16px 16px 12px}
.brand b{font-size:19px}
.nav{flex:1;overflow-y:auto;padding:2px 10px 10px;scrollbar-width:thin}
.nav-sec + .nav-sec{margin-top:6px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;font-weight:700;font-size:13px;color:var(--ink-2);white-space:nowrap;cursor:pointer;position:relative}
.nav a svg{width:17px;height:17px;stroke:var(--sub);flex:none}
/* Xロゴだけは塗りのアイコン（線画ではない）ので stroke を無効化する */
.nav a svg[fill="currentColor"]{stroke:none;fill:var(--sub)}
.nav a:hover{background:var(--bg)}
.nav a.on{background:var(--brand-soft);color:var(--brand-ink)}
.nav a.on svg{stroke:var(--brand)}
.nav a.on svg[fill="currentColor"]{fill:var(--brand)}
.nav a .sp{flex:1}
.badge{font-size:10.5px;font-weight:800;background:var(--red-soft);color:var(--red);border-radius:999px;padding:1px 7px}
/* 部署の見出し＝クリックで切替メニュー */
.nav-dept{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.dept-head{display:flex;align-items:center;gap:7px;width:100%;border:0;background:transparent;padding:4px 10px 6px;cursor:pointer;text-align:left;font-family:inherit;color:var(--ink)}
.dept-head:hover{color:var(--brand-ink)}
.dept-head .dept-lb{font-size:9.5px;font-weight:800;letter-spacing:.08em;color:var(--sub)}
.dept-head b{font-size:13px;flex:1}
.dept-head svg{width:14px;height:14px;stroke:var(--sub);flex:none}
/* 位置はCSSだけで決める（CSPが style-src 'self' なのでJSからのインラインstyleは弾かれる）。
   レール下部に固定＝ナビの項目数が変わっても位置がずれない。 */
.dept-menu{position:fixed;left:12px;bottom:72px;z-index:60;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 16px 40px rgba(22,22,32,.16);padding:7px;width:212px}
.dept-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:9px;padding:8px 10px;cursor:pointer;font-family:inherit}
.dept-menu button:hover{background:var(--bg)}
.dept-menu button.on{background:var(--brand-soft)}
.dept-menu button b{display:block;font-size:12.5px;color:var(--ink)}
.dept-menu button span{display:block;font-size:10.5px;color:var(--sub);margin-top:1px}
.nav-bottom{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.rail-foot{display:flex;align-items:center;gap:7px;padding:10px 12px;border-top:1px solid var(--line);flex-wrap:wrap}
.rail-foot .chip{font-size:10.5px;padding:3px 9px}
.workspace{min-width:0}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:700;color:var(--sub);white-space:nowrap}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.chip.warn{color:var(--brand-ink);border-color:var(--brand-line);background:var(--brand-soft)}
.chip.warn .dot{background:var(--red)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);border:1px solid var(--brand-line);display:grid;place-items:center;font-weight:800;font-size:13px}

/* ---------- まもなくバー ---------- */
/* 2枚の花びらの色を濃度だけ落として横に流す（白文字が両端で4.5:1以上になる濃さ） */
.soonbar{display:flex;align-items:center;gap:14px;background:linear-gradient(90deg,var(--brand-strong),var(--green));color:#fff;padding:11px 22px}
.soonbar svg{width:20px;height:20px;flex:none}
.soon-tx{flex:1;min-width:0}
.soon-tx b{font-size:14.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.soon-tx span{opacity:.85;font-size:12px}

/* ---------- 共通 ---------- */
.main{padding:20px 22px 48px;max-width:1280px;margin:0 auto}
.view{display:none}
.view.on{display:block}
.vhead{display:flex;align-items:end;gap:14px;margin:4px 0 16px;flex-wrap:wrap}
.vhead h1{margin:0;font-size:22px}
.vhead .date{color:var(--sub);font-weight:700;padding-bottom:2px}
.vhead .sp{flex:1}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);min-width:0}
.card .hd{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line)}
.card .hd svg{width:17px;height:17px;stroke:var(--purple)}
.card .hd b{font-size:14px}
.card .hd .sp{flex:1}
.card .hd a{font-size:12px;font-weight:700}
.card .bd{padding:10px 18px 14px}
.live{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;color:var(--green);background:var(--green-soft);border-radius:999px;padding:2px 10px}
.live .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.empty{padding:26px 18px;text-align:center;color:var(--sub);font-size:13px}
.empty b{display:block;color:var(--ink);margin-bottom:4px;font-size:14px}

.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:800;cursor:pointer;text-decoration:none}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--purple);color:#fff}
.btn.primary:hover{background:var(--brand-strong)}
.btn.white{background:#fff;color:var(--purple)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost svg{stroke:var(--sub)}
.btn.wide{width:100%;justify-content:center}
.btn:disabled{opacity:.5;cursor:default}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;box-shadow:var(--sh);min-width:0}
.kpi .lb{font-size:11.5px;color:var(--sub);font-weight:700;display:flex;align-items:center;gap:7px}
.kpi .lb svg{width:15px;height:15px;stroke:var(--purple);flex:none}
.kpi .v{font-size:24px;font-weight:800;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kpi .v small{font-size:12.5px;color:var(--sub);font-weight:700}
/* カード内の小KPI（マーケ/財務/SaaSのミニカード）。4列のままだと「¥1,234,567」が「¥…」に潰れる（2026-07-23修正） */
.kpis.mini{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:8px}
.kpis.mini .kpi{padding:10px 12px;box-shadow:none;background:var(--bg)}
.kpis.mini .kpi .lb{font-size:11px}
.kpis.mini .kpi .v{font-size:17px;white-space:normal;overflow-wrap:anywhere}
.kpi .note{font-size:11px;color:var(--sub);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.cols{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;align-items:start;margin-bottom:14px}
/* グリッド子は必ず縮められるように（nowrap+ellipsisの中身はmin-content寄与が全文幅のままなので、
   min-width:0が無い子が1つでもあるとトラックがビューポートを突き破る — 2026-07-17モバイル223pxはみ出しの真因） */
.cols>*{min-width:0}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}

/* タイムライン行 */
.tl{list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.tl li:last-child{border-bottom:none}
.tl .tm{font-weight:800;font-size:13px;text-align:right;color:var(--ink)}
.tl .tm.allday{font-size:10.5px;color:var(--sub)}
.tl .tt{min-width:0}
.tl .tt b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 直下の<span>だけに効かせる。子孫セレクタのままだと中の .tag まで巻き込んで、
   MTG/セミナー/予定タグの文字色が全部 --sub に上書きされていた（2026-07-23 発見・元からのバグ） */
.tl .tt>span{font-size:11.5px;color:var(--sub)}
.tl li.hot{background:linear-gradient(90deg,var(--purple-soft),transparent 75%);border-radius:10px;padding-left:8px;padding-right:8px}
.tl li.past{opacity:.45}
.tag{display:inline-block;font-size:10px;font-weight:800;border-radius:6px;padding:1px 7px;margin-right:6px}
.tag.mtg{background:var(--neutral-soft);color:var(--ink-2)}
.tag.sem{background:var(--red-soft);color:var(--red)}
.tag.wk{background:var(--green-soft);color:var(--green)}
.tag.allday{background:var(--bg);color:var(--sub)}
.join{display:inline-flex;align-items:center;gap:6px;background:var(--purple);color:#fff;border-radius:9px;padding:6px 12px;font-size:12px;font-weight:800}
.join svg{width:13px;height:13px;stroke:#fff}
.join.meet{background:var(--green)}

/* ToDo */
.todo{list-style:none;margin:0;padding:0}
.todo li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}
.todo li:last-child{border-bottom:none}
.todo .cb{width:18px;height:18px;border:2px solid var(--neutral-line);border-radius:5px;flex:none;cursor:pointer;background:#fff;padding:0}
.todo li.done .cb{background:var(--green);border-color:var(--green);position:relative}
.todo li.done .cb::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.todo li.done .tx{color:var(--sub);text-decoration:line-through}
.todo .tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.todo .due{font-size:11px;color:var(--red);font-weight:700;flex:none}
.todo .src{font-size:10px;color:var(--sub);background:var(--bg);border-radius:6px;padding:1px 7px;font-weight:700;flex:none}
.todo-add{display:flex;gap:8px;margin-top:12px}
.todo-add input[type=text]{flex:1;border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px}
.todo-add input[type=date]{border:1.5px solid var(--line);border-radius:10px;padding:8px;font-size:12px}
.todo-add input:focus{outline:none;border-color:var(--purple)}
/* 予定タブ内ToDoの見出し（期限切れ／今日／その他） */
.todo-group + .todo-group{margin-top:14px}
.todo-group-l{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.02em;border-radius:999px;padding:2px 9px;margin-bottom:4px}
.todo-group-l.bad{background:var(--red-soft);color:var(--red)}
.todo-group-l.warn{background:var(--orange-soft);color:var(--orange)}
.todo-group-l.muted{background:var(--bg);color:var(--sub)}

/* 週カレンダー */
.wnav{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.wnav b{font-size:15px}
.wnav .sp{flex:1}
.wgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:14px 16px 16px}
.day{background:var(--bg);border-radius:10px;padding:7px;min-height:110px;min-width:0;cursor:pointer;border:2px solid transparent}
.day:hover{border-color:var(--purple2)}
.day .dh{font-size:10.5px;font-weight:800;color:var(--sub);display:flex;justify-content:space-between}
.day.today{outline:2px solid var(--purple);background:var(--purple-soft)}
.day.today .dh{color:var(--brand-ink)}
.day.sel{border-color:var(--purple)}
.day .sat{color:var(--sub)}.day .sun{color:var(--red)}
.ev{margin-top:5px;background:#fff;border-left:3px solid var(--purple);border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev.sem{border-left-color:var(--red)}
.ev.allday{border-left-color:var(--neutral-line);color:var(--sub)}
.ev.more{background:transparent;color:var(--sub);border-left-color:transparent}

/* リスト行（マーケ・リンク台帳） */
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:13px}
.rows li:last-child{border-bottom:none}
.rows .tx{flex:1;min-width:0}
.rows .tx b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rows .tx span{font-size:11.5px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.pill{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px;flex:none}
.pill.p{background:var(--neutral-soft);color:var(--ink-2)}
.pill.g{background:var(--green-soft);color:var(--green)}
.pill.o{background:var(--neutral-soft);color:var(--ink-2)}
.pill.r{background:var(--red-soft);color:var(--red)}

/* Team Harnessで開催中のミーティング（ホーム上部・そのまま参加できる） */
.meet-live-bar{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--green),#166644);color:#fff;border-radius:var(--r);padding:12px 16px;margin-bottom:14px;box-shadow:var(--sh);flex-wrap:wrap}
.meet-live-bar .mlb-dot{width:9px;height:9px;border-radius:50%;background:#fff;flex:none;animation:mlb 1.6s infinite}
@keyframes mlb{0%,100%{opacity:1}50%{opacity:.25}}
.meet-live-bar .mlb-tx{flex:1;min-width:180px;line-height:1.4}
.meet-live-bar .mlb-tx b{display:block;font-size:14px}
.meet-live-bar .mlb-tx span{font-size:11.5px;opacity:.92}
.meet-live-bar .btn.white{color:var(--green)}

/* ---------- アプリ・ランチャー（2026-07-23: PLaiの全SaaS面の入口をここに集約） ---------- */
.apps-note{font-size:11.5px;color:var(--sub);margin:2px 0 12px}
.apps-group + .apps-group{margin-top:14px}
.apps-gh{font-size:11px;font-weight:800;color:var(--sub);letter-spacing:.06em;margin-bottom:7px}
.apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px}
.app-card{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"ic tx" "meta meta" "act act";gap:4px 11px;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#fff;transition:border-color .15s,box-shadow .15s}
.app-card:hover{border-color:var(--brand-line);box-shadow:0 10px 22px rgba(26,26,46,.07)}
.app-card .ac-ic{grid-area:ic;width:38px;height:38px;border-radius:11px;background:var(--purple-soft);display:grid;place-items:center}
.app-card .ac-ic svg{width:19px;height:19px;stroke:var(--purple)}
.app-card .ac-tx{grid-area:tx;min-width:0}
.app-card .ac-tx b{display:block;font-size:13.5px}
.app-card .ac-tx span{display:block;font-size:11.5px;color:var(--sub);line-height:1.5}
.app-card .ac-meta{grid-area:meta;margin-top:8px}
.app-card .ac-act{grid-area:act;display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.btn.sm{padding:6px 12px;font-size:11.5px;border-radius:9px}
.btn.sm svg{width:12px;height:12px}
#open-origin{display:inline-flex;font-size:10.5px;padding:3px 9px}
#open-origin svg{width:14px;height:14px;stroke:var(--sub)}

/* ---------- ホームの部署カード（ここで選ぶと左レールの道具箱が入れ替わる） ---------- */
.depts{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:11px;margin-bottom:16px}
.dept-card{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px 15px;cursor:pointer;font-family:inherit;transition:border-color .15s,box-shadow .15s}
.dept-card:hover{border-color:var(--brand-line);box-shadow:0 8px 20px rgba(22,22,32,.06)}
.dept-card.on{border-color:var(--brand);background:linear-gradient(150deg,var(--brand-soft),#fff 70%)}
.dept-card .dc-top{display:flex;align-items:center;gap:8px}
.dept-card .dc-top svg{width:16px;height:16px;stroke:var(--brand);flex:none}
.dept-card .dc-top b{font-size:13.5px}
.dept-card .dc-top .dc-n{margin-left:auto;font-size:10.5px;font-weight:800;color:var(--sub)}
.dept-card p{margin:4px 0 0;font-size:11.5px;color:var(--sub);line-height:1.6}
.dept-card .dc-tools{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.dept-card .dc-tools span{font-size:10px;font-weight:700;background:var(--neutral-soft);color:var(--ink-2);border-radius:6px;padding:1px 7px}

/* ---------- メッセージ（Team Harnessのチャットを最新順で） ---------- */
.msg2{display:grid;grid-template-columns:328px minmax(0,1fr);min-height:calc(100dvh - 140px)}
.msg2>*{min-width:0}
.conv-col{border-right:1px solid var(--line);max-height:calc(100dvh - 140px);overflow-y:auto}
.conv-item{display:flex;gap:11px;align-items:flex-start;padding:11px 14px;border-bottom:1px dashed var(--line);cursor:pointer;width:100%;border-left:0;border-right:0;border-top:0;background:#fff;text-align:left;font-family:inherit}
.conv-item:hover{background:var(--bg)}
.conv-item.on{background:var(--brand-soft)}
.conv-item .ci-av{width:38px;height:38px;border-radius:12px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.conv-item.grp .ci-av{background:var(--green-soft);color:var(--green)}
.conv-item .ci-tx{flex:1;min-width:0}
.conv-item .ci-hd{display:flex;align-items:baseline;gap:8px}
.conv-item .ci-hd b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.conv-item .ci-hd time{font-size:10px;color:var(--sub);flex:none}
.conv-item .ci-last{display:block;font-size:11.5px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.conv-item .ci-meta{display:block;font-size:10px;color:var(--sub);margin-top:3px}
.msg-thread{display:flex;flex-direction:column;max-height:calc(100dvh - 140px)}
.msg-hd{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line)}
.msg-hd b{font-size:14.5px}
.msg-hd .sp{flex:1}
.msg-hd span{font-size:11.5px;color:var(--sub)}
.msg-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}
.msg-row{display:flex;gap:10px}
.msg-row .mr-av{width:32px;height:32px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:12.5px;flex:none;overflow:hidden}
.msg-row .mr-av img{width:100%;height:100%;object-fit:cover}
.msg-row .mr-tx{min-width:0;flex:1}
.msg-row .mr-who{font-size:12px;font-weight:800}
.msg-row .mr-who time{font-weight:600;color:var(--sub);font-size:10.5px;margin-left:7px}
.msg-row .mr-b{font-size:13.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;margin-top:2px}
.msg-row .mr-file{display:inline-block;font-size:11px;color:var(--sub);background:#fff;border:1px solid var(--line);border-radius:8px;padding:2px 9px;margin-top:5px}
.msg-send{border-top:1px solid var(--line);padding:12px 18px;background:#fff;display:flex;gap:9px;align-items:flex-end}
.msg-send textarea{flex:1;border:1.5px solid var(--line);border-radius:11px;padding:10px 13px;font:inherit;font-size:13.5px;resize:vertical;min-height:44px;max-height:160px}
.msg-send textarea:focus{outline:none;border-color:var(--brand)}
.msg-empty{display:grid;place-items:center;color:var(--sub);font-size:13px;min-height:320px;text-align:center;line-height:1.9}

/* ---------- ビデオ会議 ---------- */
.meet-live{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--green),#166644);color:#fff;border-radius:var(--r);padding:13px 17px;margin-bottom:11px;flex-wrap:wrap}
.meet-live .ml-dot{width:9px;height:9px;border-radius:50%;background:#fff;flex:none;animation:mlb 1.6s infinite}
.meet-live .ml-tx{flex:1;min-width:180px;line-height:1.45}
.meet-live .ml-tx b{display:block;font-size:14.5px}
.meet-live .ml-tx span{font-size:11.5px;opacity:.92}
.meet-live .btn.white{color:var(--green)}
.meet-rows{list-style:none;margin:0;padding:0}
.meet-rows li{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px dashed var(--line)}
.meet-rows li:last-child{border-bottom:none}
.meet-rows .mt{font-weight:800;font-size:12.5px;text-align:right;color:var(--ink)}
.meet-rows .mt small{display:block;font-weight:700;color:var(--sub);font-size:10.5px}
.meet-rows .mx{min-width:0}
.meet-rows .mx b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meet-rows .mx span{font-size:11.5px;color:var(--sub)}

/* ---------- 開発（作ったもの・出したもの） ---------- */
.dev-group + .dev-group{margin-top:18px}
.dev-gh{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.dev-gh h2{margin:0;font-size:15px}
.dev-gh span{font-size:11.5px;color:var(--sub)}
.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(292px,1fr));gap:11px}
.dev-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px 15px;min-width:0;display:flex;flex-direction:column;gap:5px}
.dev-card:hover{border-color:var(--brand-line)}
.dev-hd{display:flex;align-items:center;gap:8px}
.dev-hd b{font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dev-hd .pill{margin-left:auto}
.dev-card p{margin:0;font-size:11.5px;color:var(--sub);line-height:1.65}
.dev-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.dev-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;background:var(--neutral-soft);color:var(--ink-2);border-radius:6px;padding:2px 7px;max-width:100%;overflow-wrap:anywhere}
.dev-act{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}
.dev-url{font-size:11px;color:var(--brand);overflow-wrap:anywhere}

/* ---------- Bloom について（設定タブ・ブランドの正本） ---------- */
.bloom-about{background:linear-gradient(135deg,#fffafc,#fff 45%,#faf7ff)}
.bloom-about .bd{padding:20px 22px 18px}
.ba-head{display:flex;align-items:center;gap:14px}
.ba-mark{width:46px;height:46px;flex:none}
.ba-tx{min-width:0}
.ba-tx b{display:block;font-size:22px;line-height:1.2}
.ba-tx span{display:block;font-family:var(--font-brand);font-size:11.5px;font-weight:600;letter-spacing:.03em;color:var(--sub);margin-top:2px}
.ba-lead{margin:14px 0 0;font-size:13px;line-height:1.95;color:var(--ink);max-width:62em}
.ba-petals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.ba-petal{display:grid;grid-template-columns:12px minmax(0,1fr);gap:4px 11px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.ba-petal i{grid-row:span 2;width:12px;height:12px;border-radius:50% 0 50% 50%;margin-top:4px}
.ba-petal.human i{background:var(--petal)}
.ba-petal.ai i{background:var(--petal-ai);width:10px;height:10px}
.ba-petal b{font-size:12.5px}
.ba-petal span{font-size:11.5px;color:var(--sub);line-height:1.7}
.ba-note{margin:14px 0 0;font-size:11px;color:var(--sub)}
@media(max-width:760px){.ba-petals{grid-template-columns:1fr}}

/* テーブル */
table.tb{width:100%;border-collapse:collapse;font-size:13px}
.tb th,.tb td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.tb th{background:var(--bg);font-size:11px;color:var(--sub);font-weight:800}
.tb th.num,.tb td.num{text-align:right}
.tb td.num{font-weight:800;white-space:nowrap}
.tb tr:last-child td{border-bottom:none}
.tbwrap{overflow-x:auto}

/* モーダル */
.modal{position:fixed;inset:0;background:rgba(26,26,46,.45);display:grid;place-items:center;z-index:40;padding:16px}
.modal-card{background:#fff;border-radius:16px;box-shadow:var(--sh);padding:22px 24px;width:min(94vw,520px);max-height:90vh;overflow-y:auto}
.modal-card h3{margin:0 0 14px;font-size:17px}
.modal-card label{display:block;font-size:12px;font-weight:700;color:var(--sub);margin-bottom:10px}
.modal-card input,.modal-card textarea{display:block;width:100%;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;margin-top:4px;font-family:inherit}
.modal-card input:focus,.modal-card textarea:focus{outline:none;border-color:var(--purple)}
.row2{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.modal-note{font-size:11px;color:var(--sub);margin:12px 0 0}
.conflict{border:1.5px solid var(--brand-line);background:var(--red-soft);border-radius:10px;padding:10px 14px;font-size:12.5px;margin-bottom:10px}
.conflict b{color:var(--red)}
.zm-result{border:1.5px solid var(--green-line);background:var(--green-soft);border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:10px;word-break:break-all}
.zm-result b{display:block;color:var(--green);margin-bottom:4px}

/* スケルトン */
.skel{background:linear-gradient(90deg,#ededf1 25%,#f8f8fa 50%,#ededf1 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:10px;min-height:80px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- 返信インボックス複製（LH風2ペイン） ---------- */
.inbox2{display:grid;grid-template-columns:330px 1fr;gap:0;min-height:420px}
.conv-list{border-right:1px solid var(--line);max-height:560px;overflow-y:auto}
.conv{display:flex;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px dashed var(--line);cursor:pointer}
.conv:hover{background:var(--bg)}
.conv.on{background:var(--purple-soft)}
/* アバターはどの場所でも固定サイズ（スレッドヘッダー等で原寸爆発させない・2026-07-17バグ修正） */
.cav{width:36px;height:36px;border-radius:50%;background:var(--purple-soft);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:14px;flex:none;overflow:hidden}
.cav img{width:100%;height:100%;object-fit:cover;display:block}
.thread-hd .cav{width:32px;height:32px}
.thread-msgs img{max-width:100%;max-height:320px;border-radius:10px}
.conv .ctx{flex:1;min-width:0}
.conv .ctx b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv .ctx span{display:block;font-size:11.5px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv .cmeta{text-align:right;flex:none}
.conv .cmeta time{display:block;font-size:10px;color:var(--sub)}
.thread{display:flex;flex-direction:column;max-height:560px}
.thread-hd{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.thread-hd b{font-size:14px}
.thread-msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.bubble{max-width:78%;border-radius:14px;padding:8px 13px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.bubble.in{align-self:flex-start;background:#fff;border:1px solid var(--line);border-top-left-radius:4px}
.bubble.out{align-self:flex-end;background:var(--purple);color:#fff;border-top-right-radius:4px}
.bubble time{display:block;font-size:9.5px;opacity:.65;margin-top:3px}
.draft-box{border-top:1px solid var(--line);padding:12px 16px;background:#fff}
/* AIが書いたもの＝小さい紫の花びらの色。人の操作（ピンク）と一目で見分けられるようにする */
.draft-box .dhd{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--green);margin-bottom:6px}
.draft-box .dbody{border:1.5px dashed var(--green-line);background:var(--green-soft);border-radius:10px;padding:10px 13px;font-size:13px;white-space:pre-wrap;max-height:130px;overflow-y:auto}
.draft-box .dact{display:flex;gap:8px;margin-top:10px;align-items:center}
.thread-empty{display:grid;place-items:center;color:var(--sub);font-size:13px;min-height:300px}

/* チャット複製（TH風ストリーム） */
.chatrow{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}
.chatrow:last-child{border-bottom:none}
.chatrow .cav{width:30px;height:30px;border-radius:8px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.chatrow .cb2{flex:1;min-width:0}
.chatrow .cb2 .who{font-size:12px;font-weight:800}
.chatrow .cb2 .who .ch{color:var(--sub);font-weight:700;margin-left:6px;font-size:11px}
.chatrow .cb2 .body{white-space:pre-wrap;word-break:break-word}
.viaai{display:inline-block;font-size:9.5px;font-weight:800;background:var(--green-soft);color:var(--green);border-radius:5px;padding:0 6px;margin-left:6px;vertical-align:1px}

/* 棒グラフ（財務 月次推移） */
.bars{display:flex;flex-direction:column;gap:7px}
.bar-item{display:grid;grid-template-columns:74px 1fr 110px;gap:10px;align-items:center;font-size:12px}
.bar-item .bl{color:var(--sub);font-weight:700;text-align:right}
.bar-track{height:16px;background:var(--bg);border-radius:8px;overflow:hidden}
.bar-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--brand),var(--petal))}
.bar-item .bv{font-weight:800;text-align:right;white-space:nowrap}

/* ローンチチェックリスト複製 */
.launch-card{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:10px;min-width:0}
.launch-card .lhd{display:flex;align-items:center;gap:8px 10px;margin-bottom:6px;flex-wrap:wrap;min-width:0}
.launch-card .lhd b{font-size:13.5px;min-width:0;overflow-wrap:anywhere}
.launch-card .note{overflow-wrap:anywhere}
.chk{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:4px 0;min-width:0}
.chk span{min-width:0;overflow-wrap:anywhere}
.chk .box{width:15px;height:15px;border:2px solid var(--neutral-line);border-radius:4px;flex:none}
.chk.done .box{background:var(--green);border-color:var(--green);position:relative}
.chk.done .box::after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.chk.done span{color:var(--sub)}
.chk a{font-size:11px;margin-left:auto}

@media(max-width:1000px){
  /* 狭い画面ではレールを上の横並びに畳む。項目は全部残す（隠さない＝押せなくならない） */
  .app{grid-template-columns:1fr}
  .rail{position:sticky;top:0;height:auto;flex-direction:row;align-items:center;gap:8px;border-right:0;border-bottom:1px solid var(--line);padding:0 10px;overflow-x:auto}
  .brand{padding:8px 4px 8px 0;flex:none}
  .nav{display:flex;align-items:center;gap:6px;padding:0;overflow:visible;flex:none}
  .nav-sec{display:flex;align-items:center;gap:4px;margin:0!important}
  .nav-sec + .nav-sec{margin-left:6px!important}
  .nav-dept,.nav-bottom{border-top:0;border-left:1px solid var(--line);padding:0 0 0 8px;margin-top:0}
  .dept-head{width:auto;padding:4px 8px;gap:5px}
  .dept-menu{left:auto;right:10px;top:56px;bottom:auto}
  .dept-head .dept-lb{display:none}
  .rail-foot{border-top:0;padding:0 0 0 6px;flex:none;flex-wrap:nowrap;margin-left:auto}
  .frame-wrap{height:calc(100dvh - 53px)}
  .inbox2{grid-template-columns:1fr}
  .conv-list{max-height:260px;border-right:none;border-bottom:1px solid var(--line)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols,.grid3,.kpis.three{grid-template-columns:1fr}
  .topnav{gap:8px;padding:0 10px}
  .row2{grid-template-columns:1fr 1fr}
  .wgrid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:10px}
  .day{min-height:74px;padding:4px}
  .ev{font-size:9px}
}

/* ---------- サブタブ（ビュー内切替・LH/TH機能フル移植用） ---------- */
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.stab{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:800;color:var(--sub);cursor:pointer}
.stab:hover{color:var(--ink)}
.stab.on{background:var(--purple);border-color:var(--purple);color:#fff}
.stab .sbadge{font-size:10px;font-weight:800;background:var(--red-soft);color:var(--red);border-radius:999px;padding:1px 6px}
.stab.on .sbadge{background:rgba(255,255,255,.25);color:#fff}
.sub-sec{display:none;margin-top:14px}
.sub-sec.on{display:block}
.stack{display:grid;gap:14px}
.hd2{font-size:12px;color:var(--sub);font-weight:800;margin:2px 0 6px}

/* チャンネル絞り込みチップ（CS社内チャット） */
.chfilter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.chf{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:700;color:var(--sub);cursor:pointer}
.chf.on{background:var(--purple-soft);border-color:var(--purple);color:var(--brand-ink)}

/* Claude並列アカウント使用量（~/.claude/dashboard移植） */
.utb td{vertical-align:middle;white-space:nowrap}
.ubar{display:inline-block;width:96px;height:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:hidden;vertical-align:middle;margin-right:7px}
.ubar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--green),var(--petal-ai))}
.ubar.warn i{background:var(--brand)}
.ubar.hot i{background:var(--brand-ink)}
.upct{font-weight:800;font-size:12px}


/* ---------- 埋込ビュー（本体UI複製の全画面iframe） ---------- */
/* frameビューがONのときは.mainの余白と幅制限を外し、本体UIをedge-to-edgeで見せる */
.main:has(.view.frame.on){padding:0;max-width:none}
.view.frame{padding:0}
.frame-wrap{height:100dvh}
.frame-wrap iframe{width:100%;height:100%;border:0;display:block;background:var(--bg)}
.mt14{margin-top:14px}.no-margin{margin:0}.mail-note{display:block;margin:12px 2px 0}.x-fill{stroke:none;fill:var(--purple)}

/* ---------- Mail Harness ---------- */
.main:has(#view-mail.on){max-width:none;padding:0}
.mail-shell{--mail-blue:var(--brand);--mail-navy:var(--ink);--mail-soft:var(--brand-soft);display:grid;gap:14px}
.mail-hero{display:flex;align-items:center;gap:13px;min-width:0}
.mail-hero-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,var(--petal),var(--petal-ai));display:grid;place-items:center;box-shadow:0 8px 18px rgba(199,64,109,.22);flex:none}
.mail-hero-mark svg{width:21px;height:21px;stroke:#fff}
.mail-hero-copy{min-width:0}
.mail-hero h1{margin:0;font-size:23px;line-height:1.25;letter-spacing:-.02em}
.mail-hero p{margin:3px 0 0;color:var(--sub);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-hero-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}
.mail-live{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--green-line);background:var(--green-soft);color:var(--green);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800}
.mail-live i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(27,122,83,.15)}
.btn.mail-new svg,.btn.mail-refresh svg{stroke:currentColor}
.btn.danger{background:var(--ink);color:#fff}
.btn.danger:hover{background:#000}

.mail-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.mail-tabs::-webkit-scrollbar{display:none}
.mail-tab{position:relative;display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:0;background:transparent;color:var(--sub);font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap}
.mail-tab svg{width:16px;height:16px;stroke:currentColor}
.mail-tab:hover{color:var(--ink)}
.mail-tab.on{color:var(--mail-blue)}
.mail-tab.on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;background:var(--mail-blue);border-radius:3px 3px 0 0}
.mail-tab b{font-size:10px;background:#ececf5;color:#6f7282;border-radius:999px;padding:1px 6px}
.mail-tab.on b{background:var(--mail-soft);color:var(--mail-blue)}
.mail-panel{display:none}
.mail-panel.on{display:block}

.mail-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mail-kpi-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;box-shadow:0 5px 18px rgba(26,26,46,.045);min-width:0}
.mail-kpi-top{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:11.5px;font-weight:800}
.mail-kpi-top span{width:28px;height:28px;border-radius:9px;background:var(--mail-soft);display:grid;place-items:center;flex:none}
.mail-kpi-top svg{width:15px;height:15px;stroke:var(--mail-blue)}
.mail-kpi-value{font-size:25px;line-height:1.25;font-weight:850;letter-spacing:-.03em;margin-top:7px}
.mail-kpi-note{margin-top:2px;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.mail-health{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:linear-gradient(100deg,#fff,#fffafc);border:1px solid var(--brand-line);border-radius:13px;padding:13px 15px}
.mail-health-icon{width:36px;height:36px;border-radius:11px;background:var(--green-soft);display:grid;place-items:center}
.mail-health-icon svg{width:18px;height:18px;stroke:var(--green)}
.mail-health-copy b{display:block;font-size:13px}
.mail-health-copy span{display:block;color:var(--sub);font-size:11.5px;margin-top:1px}
.mail-domain{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:var(--ink-2);white-space:nowrap}
.mail-domain code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;border:1px solid var(--line);padding:3px 8px;border-radius:7px;color:var(--mail-navy)}

.mail-pool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.mail-pool-card{appearance:none;border:1px solid #e3e5ee;background:#fff;border-radius:12px;padding:11px 12px;display:grid;grid-template-columns:34px minmax(0,1fr) auto 15px;align-items:center;gap:9px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:0 4px 14px rgba(28,31,51,.035)}
.mail-pool-card:hover{border-color:var(--brand-line);background:#fffafc;transform:translateY(-1px)}
.mail-pool-card.main{border-color:var(--brand-line);background:linear-gradient(115deg,#fff,var(--brand-soft))}
.mail-pool-card>svg{width:15px;height:15px;stroke:#999db0}
.mail-pool-icon{width:34px;height:34px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center}
.mail-pool-icon svg{width:17px;height:17px;stroke:var(--mail-blue)}
.mail-pool-copy{min-width:0}
.mail-pool-copy b{display:block;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-pool-copy small{display:block;color:var(--sub);font-size:9.5px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-pool-card strong{font-size:15px;letter-spacing:-.02em}

.mail-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:14px;margin-top:14px;align-items:start}
.mail-section-card{background:#fff;border:1px solid var(--line);border-radius:13px;min-width:0;box-shadow:0 5px 18px rgba(26,26,46,.04)}
.mail-section-head{display:flex;align-items:center;gap:9px;padding:12px 15px;border-bottom:1px solid var(--line)}
.mail-section-head svg{width:16px;height:16px;stroke:var(--mail-blue)}
.mail-section-head b{font-size:13px}
.mail-section-head span{font-size:11px;color:var(--sub)}
.mail-section-head .mail-sp{flex:1}
.mail-section-body{padding:13px 15px}
.mail-segments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.mail-segment{display:flex;align-items:center;gap:10px;border:1px solid #ececf3;background:#fcfcfe;border-radius:11px;padding:10px;min-width:0}
.mail-segment-dot{width:9px;height:9px;border-radius:50%;background:var(--mail-blue);box-shadow:0 0 0 4px var(--mail-soft);flex:none}
.mail-segment-copy{min-width:0;flex:1}
.mail-segment-copy b{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-segment-copy span{font-size:10.5px;color:var(--sub);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-segment-copy span em{display:inline-block;font-style:normal;font-size:8.5px;font-weight:850;letter-spacing:.02em;background:var(--green-soft);color:var(--green);border-radius:999px;padding:1px 5px;margin-right:5px}
.mail-segment.plai .mail-segment-copy span em{background:var(--ai-soft);color:var(--ai)}
.mail-segment.aircle .mail-segment-dot{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}
.mail-segment-count{font-size:13px;font-weight:850;white-space:nowrap}
.mail-segment-action{border:0;background:transparent;color:var(--mail-blue);font-size:11px;font-weight:800;padding:3px;cursor:pointer}

.mail-feed{list-style:none;padding:0;margin:0}
.mail-feed li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #eff0f5}
.mail-feed li:last-child{border-bottom:0}
.mail-feed-icon{width:30px;height:30px;border-radius:9px;background:#f2f3f8;display:grid;place-items:center}
.mail-feed-icon svg{width:14px;height:14px;stroke:var(--sub)}
.mail-feed-copy{min-width:0}
.mail-feed-copy b{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-feed-copy span{font-size:10.5px;color:var(--sub);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-feed-meta{font-size:10.5px;color:var(--sub);white-space:nowrap}
.mail-empty-mini{padding:18px 8px;text-align:center;color:var(--sub);font-size:12px}

.mail-compose-grid{display:grid;grid-template-columns:minmax(440px,1.05fr) minmax(390px,.95fr);gap:14px;align-items:start}
.mail-editor{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(26,26,46,.05)}
.mail-editor-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);background:#fcfcfe}
.mail-editor-head svg{width:17px;height:17px;stroke:var(--mail-blue)}
.mail-editor-head b{font-size:13.5px}
.mail-draft-state{margin-left:auto;font-size:10.5px;color:var(--sub);font-weight:800;background:#f1f2f7;border-radius:999px;padding:2px 8px}
.mail-form{padding:15px 16px;display:grid;gap:13px}
.mail-route-banner{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:11px;padding:9px 11px}
.mail-route-banner>span{width:32px;height:32px;border-radius:9px;background:#fbe4ee;display:grid;place-items:center}
.mail-route-banner>span svg{width:16px;height:16px;stroke:var(--mail-blue)}
.mail-route-banner b{display:block;font-size:11.5px}
.mail-route-banner small{display:block;font-size:9.5px;color:var(--sub);margin-top:1px}
.mail-route-banner strong{font-size:13px}
.mail-route-banner.aircle{border-color:var(--green-line);background:var(--green-soft)}
.mail-route-banner.aircle>span{background:var(--green-line)}
.mail-route-banner.aircle>span svg{stroke:var(--green)}
.mail-field{display:grid;gap:5px}
.mail-field label{font-size:11.5px;font-weight:800;color:var(--ink-2)}
.mail-field label small{font-weight:600;color:var(--sub);margin-left:5px}
.mail-field input,.mail-field select,.mail-field textarea,.mail-toolbar input,.mail-toolbar select,.mail-contact-tools input,.mail-contact-tools select{width:100%;border:1.5px solid #dfe1ea;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:13px;padding:9px 11px}
.mail-field textarea{resize:vertical;min-height:210px;line-height:1.8}
.mail-field input:focus,.mail-field select:focus,.mail-field textarea:focus,.mail-toolbar input:focus,.mail-contact-tools input:focus,.mail-contact-tools select:focus{outline:none;border-color:var(--mail-blue);box-shadow:0 0 0 3px rgba(192,64,112,.13)}
.mail-field-help{font-size:10.5px;color:var(--sub)}
.mail-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mail-test-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;background:#f8f8fc;border:1px solid #e8e9f0;border-radius:11px;padding:10px}
.mail-test-box .mail-field{min-width:0}
.mail-test-box .btn{height:38px}
.mail-safety{border:1px solid #e3e4ec;border-radius:11px;padding:10px 11px;display:grid;gap:7px}
.mail-safety-row{display:flex;align-items:flex-start;gap:8px;color:#656a7d;font-size:11px}
.mail-safety-row svg{width:15px;height:15px;stroke:#9b9fb0;flex:none;margin-top:1px}
.mail-safety-row.ok{color:var(--green)}
.mail-safety-row.ok svg{stroke:var(--green)}
.mail-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line);background:#fcfcfe}
.mail-editor-actions .mail-action-sp{flex:1}
.mail-editor-actions .btn svg{stroke:currentColor}
.mail-save-status{font-size:11px;color:var(--sub);min-height:18px}

.mail-preview-wrap{position:sticky;top:16px;min-width:0}
.mail-preview-head{display:flex;align-items:center;gap:8px;margin:0 0 8px 2px;color:var(--sub);font-size:11.5px;font-weight:800}
.mail-preview-head svg{width:15px;height:15px;stroke:var(--sub)}
.gmail-window{background:#fff;border:1px solid #dfe2e8;border-radius:14px;overflow:hidden;box-shadow:0 12px 34px rgba(32,36,58,.12)}
.gmail-topbar{height:44px;background:#f6f8fc;border-bottom:1px solid #e5e8ee;display:flex;align-items:center;gap:7px;padding:0 13px}
.gmail-dot{width:8px;height:8px;border-radius:50%;background:#d2d6df}
.gmail-search{height:26px;border-radius:7px;background:#e9edf5;margin-left:9px;flex:1;max-width:260px;display:flex;align-items:center;padding:0 9px;color:#8c92a2;font-size:10px}
.gmail-message{padding:17px 20px 22px}
.gmail-subject{font-size:17px;line-height:1.4;font-weight:650;color:#202124;margin-bottom:15px;overflow-wrap:anywhere}
.gmail-meta{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:22px}
.gmail-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--brand),var(--green));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:850}
.gmail-avatar.aircle{background:linear-gradient(145deg,var(--green),var(--petal-ai))}
.gmail-from{min-width:0;color:#202124;font-size:11.5px;line-height:1.35}
.gmail-from b{font-size:12px}
.gmail-from span{display:block;color:#6d7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gmail-from #gmail-preview-from{display:inline;color:#202124;overflow:visible;white-space:normal}
.gmail-time{font-size:10px;color:#747986}
.gmail-body-copy{font-size:13px;color:#292b35;line-height:1.9;overflow-wrap:anywhere;min-height:190px}
.gmail-body-copy p{margin:0 0 15px}
.gmail-body-copy .gmail-placeholder{color:#a0a4b2}
.gmail-footer{margin-top:28px;padding-top:14px;border-top:1px solid #e5e7ed;color:#7a7f8e;font-size:10.5px;line-height:1.65}
.gmail-footer a{color:#6d7280;text-decoration:underline}
.mail-preview-note{margin:9px 2px 0;color:var(--sub);font-size:10.5px;line-height:1.6}

.mail-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.mail-toolbar .mail-search{flex:1;min-width:220px;max-width:420px}
.mail-toolbar select{width:auto;min-width:150px}
.mail-table-wrap{overflow:auto}
.mail-table{width:100%;border-collapse:collapse;font-size:12px}
.mail-table th{position:sticky;top:0;background:#f7f8fb;color:var(--sub);text-align:left;font-size:10.5px;font-weight:850;letter-spacing:.02em;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mail-table td{padding:10px;border-bottom:1px solid #eceef3;vertical-align:middle}
.mail-table tbody tr:hover{background:#fffafc}
.mail-table tr:last-child td{border-bottom:0}
.mail-table-subject{font-weight:750;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-table-sub{display:block;color:var(--sub);font-size:10.5px;font-weight:500;margin-top:1px}
.mail-status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:850;background:#f0f1f5;color:#686d7f;white-space:nowrap}
.mail-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.mail-status.sent{background:var(--green-soft);color:var(--green)}
.mail-status.scheduled{background:var(--neutral-soft);color:var(--ink-2)}
.mail-status.draft{background:var(--ai-soft);color:var(--ai)}
.mail-status.failed,.mail-status.partial{background:var(--brand-soft);color:var(--brand-ink)}
.mail-row-actions{display:flex;align-items:center;gap:5px;justify-content:flex-end}
.mail-icon-btn{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;color:#656a7d}
.mail-icon-btn:hover{border-color:var(--brand-line);color:var(--brand);background:#fffafc}
.mail-icon-btn svg{width:14px;height:14px;stroke:currentColor}

.mail-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;align-items:start}
.mail-contact-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.mail-contact-tools input{flex:1;min-width:210px}
.mail-contact-tools select{width:auto;min-width:180px}
.mail-directory-summary{display:flex;align-items:center;gap:10px;background:#f7f7fb;border:1px solid #e8e9f0;border-radius:10px;padding:9px 11px;margin-bottom:9px}
.mail-directory-summary b{font-size:12px}
.mail-directory-summary span{color:var(--sub);font-size:10.5px}
.mail-route-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 8px;font-size:9.5px;font-weight:850;background:var(--ai-soft);color:var(--ai);white-space:nowrap}
.mail-route-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.mail-route-pill.aircle{background:var(--green-soft);color:var(--green)}
.mail-route-pill.both{background:var(--neutral-soft);color:var(--ink-2)}
.mail-route-pill.blocked{background:#f2f3f6;color:#7b7f8d}
.mail-block-reason{display:block;color:var(--brand-ink);font-size:9px;margin-top:3px;white-space:nowrap}
.mail-contact-table td:nth-child(2){min-width:110px}
.mail-contact-table td:nth-child(3){min-width:180px}
.mail-contact-table td:nth-child(4){min-width:150px}
.mail-contact-name{font-weight:750}
.mail-contact-name span{display:block;font-weight:500;color:var(--sub);font-size:10.5px}
.mail-tag-pills{display:flex;gap:4px;flex-wrap:wrap}
.mail-tag-pill{display:inline-flex;align-items:center;gap:4px;background:var(--ai-soft);color:var(--ai);border-radius:999px;padding:2px 7px;font-size:9.5px;font-weight:800;max-width:180px}
.mail-tag-pill.source{background:#f2f3f7;color:#696e80}
.mail-tag-pill button{border:0;background:transparent;color:inherit;padding:0;line-height:1;cursor:pointer;font-weight:900}
.mail-add-tag{display:flex;align-items:center;gap:5px}
.mail-add-tag select{width:120px;border:1px solid var(--line);border-radius:7px;padding:5px;font:inherit;font-size:10.5px}
.mail-tag-manager{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;position:sticky;top:16px}
.mail-tag-manager h3{font-size:13px;margin:0 0 4px}
.mail-tag-manager>p{font-size:10.5px;color:var(--sub);margin:0 0 12px;line-height:1.6}
.mail-create-tag{display:flex;gap:6px}
.mail-create-tag input{min-width:0;flex:1;border:1.5px solid var(--line);border-radius:8px;padding:8px 9px;font:inherit;font-size:11.5px}
.mail-create-tag input:focus{outline:none;border-color:var(--brand)}
.mail-create-tag .btn{padding:7px 10px}
.mail-manual-list{display:grid;gap:7px;margin-top:12px}
.mail-manual-row{display:flex;align-items:center;gap:8px;border-top:1px solid #eff0f5;padding-top:8px;font-size:11.5px}
.mail-manual-row i{width:8px;height:8px;border-radius:50%;background:var(--brand)}
.mail-manual-row b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-manual-row span{color:var(--sub);font-size:10px}
.mail-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:11px;color:var(--sub);font-size:11px}
.mail-pagination div{display:flex;gap:6px}

.mail-confirm-card{width:min(94vw,560px);text-align:left}
.mail-confirm-icon{width:42px;height:42px;border-radius:12px;background:var(--red-soft);display:grid;place-items:center;margin-bottom:11px}
.mail-confirm-icon svg{width:21px;height:21px;stroke:var(--red)}
.mail-confirm-lead{font-size:12.5px;color:var(--sub);margin:-7px 0 14px;line-height:1.7}
.mail-confirm-summary{margin:0;border:1px solid var(--line);border-radius:11px;overflow:hidden}
.mail-confirm-summary div{display:grid;grid-template-columns:76px 1fr;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line)}
.mail-confirm-summary div:last-child{border-bottom:0}
.mail-confirm-summary dt{font-size:10.5px;color:var(--sub);font-weight:800}
.mail-confirm-summary dd{margin:0;font-size:11.5px;font-weight:700;overflow-wrap:anywhere}
.mail-confirm-check{display:flex!important;align-items:flex-start;gap:9px;margin:13px 0!important;border:1px solid #e3e4ec;border-radius:10px;padding:10px;color:var(--ink)!important;font-size:11.5px!important;cursor:pointer}
.mail-confirm-check input{width:16px!important;height:16px;margin:1px 0 0;flex:none}
.mail-confirm-error{background:var(--red-soft);color:var(--red);border-radius:9px;padding:8px 10px;font-size:11.5px;margin-bottom:10px}
.app-toast{position:fixed;right:20px;bottom:20px;z-index:60;background:var(--ink);color:#fff;border-radius:10px;padding:10px 14px;box-shadow:0 12px 30px rgba(20,23,39,.25);font-size:12px;font-weight:700;max-width:min(420px,calc(100vw - 40px))}
.app-toast.bad{background:var(--brand-ink)}

@media(max-width:1100px){
  .mail-pool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mail-compose-grid{grid-template-columns:1fr}
  .mail-preview-wrap{position:static}
  .mail-overview-grid{grid-template-columns:1fr}
  .mail-contact-layout{grid-template-columns:1fr}
  .mail-tag-manager{position:static}
}
@media(max-width:760px){
  /* スマホだけロゴタイプを隠す（タブの横幅を優先）。タブレット幅では "Bloom" を出す */
  .brand b{display:none}
  .main:has(#view-mail.on){padding:12px 10px 34px}
  .mail-hero p,.mail-live{display:none}
  .mail-hero-actions .mail-refresh{display:none}
  .mail-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mail-kpi-value{font-size:21px}
  .mail-health{grid-template-columns:auto 1fr}
  .mail-domain{display:none}
  .mail-segments{grid-template-columns:1fr}
  .mail-pool-grid{grid-template-columns:1fr}
  .mail-compose-grid{display:block}
  .mail-preview-wrap{margin-top:12px}
  .mail-form-row{grid-template-columns:1fr}
  .mail-test-box{grid-template-columns:1fr}
  .mail-editor-actions .mail-action-sp{display:none}
  .mail-editor-actions .btn{flex:1;justify-content:center}
  .mail-table-subject{max-width:210px}
  .mail-contact-tools select{width:100%}
  .mail-directory-summary{align-items:flex-start;flex-direction:column;gap:2px}
}

/* ---------- カレンダー（Googleカレンダー型・2026-07-24） ---------- */
.gcal-top{display:flex;align-items:center;gap:10px;margin:2px 0 14px;flex-wrap:wrap}
.gcal-title{margin:0 4px;font-size:21px;font-weight:700}
.icon-nav{width:34px;height:34px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.icon-nav:hover{background:var(--neutral-soft)}
.icon-nav svg{width:19px;height:19px;stroke:currentColor}
.icon-nav.sm{width:26px;height:26px}
.icon-nav.sm svg{width:15px;height:15px}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg button{border:0;background:transparent;padding:7px 16px;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer}
.seg button + button{border-left:1px solid var(--line)}
.seg button.on{background:var(--brand-soft);color:var(--brand-ink)}
.gcal{display:grid;grid-template-columns:216px minmax(0,1fr);gap:16px;align-items:start}
.gcal-side{position:sticky;top:14px}
.gcal-create{border-radius:12px;padding:11px 20px;font-size:13.5px;box-shadow:0 6px 16px rgba(199,64,109,.25)}
.gcal-note{font-size:10.5px;color:var(--sub);line-height:1.7;margin:12px 2px 0}
#mini-month{margin-top:16px}
.mm-hd{display:flex;align-items:center;gap:2px;padding:0 2px 6px}
.mm-hd b{font-size:12.5px}
.mm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.mm-w{font-size:9.5px;color:var(--sub);text-align:center;font-weight:700;padding:2px 0}
.mm-d{border:0;background:transparent;border-radius:50%;aspect-ratio:1;font-size:10.5px;font-weight:600;color:var(--ink);cursor:pointer;padding:0}
.mm-d:hover{background:var(--neutral-soft)}
.mm-d.out{color:var(--neutral-line)}
.mm-d.sel{outline:1.5px solid var(--brand);outline-offset:-1.5px}
.mm-d.today{background:var(--brand);color:#fff;font-weight:800}
.gcal-main{overflow:hidden}
.gcal-main.grid-mode{display:flex;flex-direction:column;height:calc(100dvh - 120px)}
/* 時間グリッド */
.tg-head{display:grid;grid-template-columns:56px repeat(auto-fit,minmax(0,1fr));border-bottom:1px solid var(--line)}
.tg-day{border:0;background:transparent;padding:8px 0 6px;text-align:center;cursor:pointer}
.tg-day .w{display:block;font-size:10.5px;font-weight:700;color:var(--sub)}
.tg-day .w.sat{color:var(--sub)}.tg-day .w.sun{color:var(--brand-ink)}
.tg-day b{display:inline-grid;place-items:center;min-width:34px;height:34px;border-radius:50%;font-size:17px;margin-top:2px}
.tg-day:hover b{background:var(--neutral-soft)}
.tg-day.today b{background:var(--brand);color:#fff}
.tg-allday{display:grid;grid-template-columns:56px repeat(auto-fit,minmax(0,1fr));border-bottom:1px solid var(--line);min-height:4px}
.tg-adcell{padding:2px 3px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-chip{border:0;text-align:left;background:var(--petal-ai);color:#0f4a31;border-radius:6px;font-size:10.5px;font-weight:700;padding:2px 8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit}
.tg-gutter{font-size:9px;color:var(--sub);text-align:right;padding:4px 6px 0 0}
.tg-scroll{overflow-y:auto;flex:1;scrollbar-width:thin}
.tg-body{display:grid;grid-template-columns:56px repeat(auto-fit,minmax(0,1fr));position:relative;height:1152px}
.tg-hours{position:relative}
.tg-hours span{position:absolute;right:6px;transform:translateY(-50%);font-size:9.5px;color:var(--sub);background:#fff;padding:0 2px}
.tg-hours span:nth-child(1){top:0}.tg-hours span:nth-child(2){top:48px}.tg-hours span:nth-child(3){top:96px}.tg-hours span:nth-child(4){top:144px}.tg-hours span:nth-child(5){top:192px}.tg-hours span:nth-child(6){top:240px}.tg-hours span:nth-child(7){top:288px}.tg-hours span:nth-child(8){top:336px}.tg-hours span:nth-child(9){top:384px}.tg-hours span:nth-child(10){top:432px}.tg-hours span:nth-child(11){top:480px}.tg-hours span:nth-child(12){top:528px}.tg-hours span:nth-child(13){top:576px}.tg-hours span:nth-child(14){top:624px}.tg-hours span:nth-child(15){top:672px}.tg-hours span:nth-child(16){top:720px}.tg-hours span:nth-child(17){top:768px}.tg-hours span:nth-child(18){top:816px}.tg-hours span:nth-child(19){top:864px}.tg-hours span:nth-child(20){top:912px}.tg-hours span:nth-child(21){top:960px}.tg-hours span:nth-child(22){top:1008px}.tg-hours span:nth-child(23){top:1056px}.tg-hours span:nth-child(24){top:1104px}
.tg-col{position:relative;border-left:1px solid var(--line);cursor:pointer;min-width:0;
  background:repeating-linear-gradient(to bottom,transparent 0 47px,var(--line) 47px 48px)}
.cv-ev{position:absolute;border:0;text-align:left;border-radius:7px;padding:3px 7px;font-family:inherit;cursor:pointer;overflow:hidden;min-width:0;border-left:3px solid transparent}
.cv-ev b{display:block;font-size:11px;font-weight:700;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-ev span{display:block;font-size:9.5px;opacity:.85}
.cv-ev.c-mtg{background:var(--brand-soft);border-left-color:var(--brand);color:var(--brand-ink)}
.cv-ev.c-sem{background:var(--brand);color:#fff}
.cv-ev.c-plain{background:var(--green-soft);border-left-color:var(--green);color:var(--green)}
.cv-ev.past{opacity:.55}
.cv-ev:hover{filter:brightness(.97);box-shadow:0 3px 10px rgba(22,22,32,.15);z-index:3}
.now-line{position:absolute;left:0;right:0;height:2px;background:var(--brand);z-index:4;pointer-events:none}
.now-line i{position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--brand)}
/* 月グリッド */
.mg-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.mg-head span{text-align:center;font-size:10.5px;font-weight:700;color:var(--sub);padding:7px 0}
.mg-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.mg-week:last-child{border-bottom:0}
.mg-cell{min-height:112px;border-left:1px solid var(--line);padding:3px;min-width:0;cursor:pointer}
.mg-cell:first-child{border-left:0}
.mg-cell.out{background:var(--bg)}
.mg-num{display:inline-grid;place-items:center;min-width:24px;height:24px;border:0;background:transparent;border-radius:50%;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;margin:1px auto 2px;color:var(--ink)}
.mg-cell.out .mg-num{color:var(--sub)}
.mg-num:hover{background:var(--neutral-soft)}
.mg-num.today{background:var(--brand);color:#fff}
.mg-cell{display:flex;flex-direction:column;align-items:stretch}
.mg-ev{border:0;text-align:left;background:transparent;font-family:inherit;font-size:10.5px;font-weight:700;color:var(--ink);border-radius:5px;padding:1px 5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mg-ev i{font-style:normal;color:var(--sub);font-weight:600;margin-right:3px}
.mg-ev:hover{background:var(--neutral-soft)}
.mg-ev.ad{background:var(--petal-ai);color:#0f4a31}
.mg-ev.c-sem:not(.ad){color:var(--brand-ink)}
.mg-more{border:0;background:transparent;font-family:inherit;font-size:10px;font-weight:700;color:var(--sub);text-align:left;padding:1px 5px;cursor:pointer}
.mg-more:hover{color:var(--ink)}
/* 予定ポップオーバー */
.ev-pop{position:fixed;z-index:70;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(22,22,32,.22);padding:14px 16px}
.ep-hd{display:flex;align-items:center;gap:9px}
.ep-hd b{flex:1;font-size:14px;min-width:0}
.ep-dot{width:12px;height:12px;border-radius:4px;flex:none}
.ep-dot.c-mtg{background:var(--brand)}.ep-dot.c-sem{background:var(--brand-ink)}.ep-dot.c-plain{background:var(--green)}
.ep-when{font-size:12px;color:var(--ink-2);margin:6px 0 0 21px}
.ep-row{font-size:11.5px;color:var(--sub);margin:4px 0 0 21px}
.ep-desc{font-size:11px;color:var(--sub);margin:8px 0 0 21px;line-height:1.7;max-height:88px;overflow:hidden}
.ep-act{display:flex;gap:8px;margin:12px 0 0 21px;flex-wrap:wrap}
@media(max-width:1000px){.gcal{grid-template-columns:1fr}.gcal-side{position:static;display:flex;gap:14px;align-items:flex-start}.gcal-note{display:none}.gcal-main.grid-mode{height:calc(100dvh - 170px)}}

/* ---------- メッセージ: DM吹き出し・グループロゴ ---------- */
.conv-item .ci-av img,.msg-hd .ci-av img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.conv-item .ci-av.grp,.msg-hd .ci-av.grp{background:#fff;border:1px solid var(--line)}
.msg-hd{gap:11px}
.msg-hd .ci-av{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:800;background:var(--brand-soft);color:var(--brand-ink);overflow:hidden;flex:none}
.msg-hd .mh-t{min-width:0}
.msg-hd .mh-t b{display:block;font-size:14.5px}
.msg-hd .mh-t span{display:block;font-size:11px;color:var(--sub)}
.dm-row{display:flex;gap:9px;align-items:flex-end}
.dm-row.me{justify-content:flex-end}
.dm-row .mr-av{width:30px;height:30px;border-radius:10px;overflow:hidden;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.dm-row .mr-av img{width:100%;height:100%;object-fit:cover}
.dm-b{max-width:72%;background:#fff;border:1px solid var(--line);border-radius:14px;border-bottom-left-radius:5px;padding:8px 13px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.dm-row.me .dm-b{background:var(--brand);border-color:var(--brand);color:#fff;border-radius:14px;border-bottom-right-radius:5px}
.dm-b time{display:block;font-size:9px;opacity:.6;margin-top:3px}

/* ---------- ビデオ会議 ---------- */
.meet-today{margin-bottom:12px}
.meet-frame{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);height:calc(100dvh - 130px)}
#view-meet .meet-live + .meet-frame,#view-meet .meet-today + .meet-frame{height:calc(100dvh - 240px)}

/* ---------- 開発ロゴ ---------- */
.dev-logo{width:34px;height:34px;border-radius:9px;overflow:hidden;flex:none;border:1px solid var(--line);background:#fff;display:grid;place-items:center}
.dev-logo img{width:100%;height:100%;object-fit:contain}

/* ---------- 設定: 招待・ガイド・ロゴ ---------- */
.invite-box{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}
.invite-row{display:flex;gap:8px;flex-wrap:wrap}
.invite-row input{flex:1;min-width:220px;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-size:13px}
.invite-row input:focus{outline:none;border-color:var(--brand)}
.invite-row select{border:1.5px solid var(--line);border-radius:10px;padding:9px;font:inherit;font-size:12.5px;background:#fff}
.guide{margin:8px 0 12px;padding-left:20px;font-size:12.5px;line-height:2}
.guide li{margin-bottom:4px}
.logo-row{display:flex;gap:10px;align-items:center}
.logo-row .ci-av{width:38px;height:38px;border-radius:12px;overflow:hidden;flex:none;display:grid;place-items:center}
.logo-row input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:8px 11px;font:inherit;font-size:12px}
