:root{ --ink:#1A2453; --gold-t:#8A6100; --orange-t:#C2521E;
  --navy:#1A2453; --navy2:#0F1635; --gold:#F0A500; --orange:#E8763A;
  --bg:#F4F6FA; --card:#FFFFFF; --text:#1E293B; --muted:#586576; --line:#E2E8F0;
  --danger:#B91C1C; --ok:#15803D;
}
@media (prefers-color-scheme: dark){
  :root{ --ink:#A8BDF2; --ok:#4ADE80; --bad:#F87171; --gold-t:#F5B942; --orange-t:#F09468; --danger:#F87171; --bg:#0E1220; --card:#171C2E; --text:#E6EAF3; --muted:#94A3B8; --line:#2A3350;
    --navy:#33427A; --navy2:#26325E; }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.6}
.hd{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.hd-inner{max-width:1080px;margin:0 auto;padding:16px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.hd h1{margin:0;font-size:18px;letter-spacing:.02em}
.tabs{display:flex;gap:8px;margin-left:auto}
.tab{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.18);
  border-radius:999px;padding:7px 18px;font-size:14px;cursor:pointer}
.tab.active{background:var(--gold);color:#3a2a00;border-color:var(--gold);font-weight:700}
.wrap{max-width:1080px;margin:0 auto;padding:22px 16px 60px}
.hidden{display:none !important}
.muted{color:var(--muted);font-size:13px}

.row{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.lbl{font-size:13px;color:var(--muted)}
.select,input,textarea{background:var(--card);color:var(--text);border:1px solid var(--line);
  border-radius:9px;padding:9px 11px;font-size:14px;font-family:inherit;width:100%}
.select{max-width:340px}
textarea{resize:vertical}

/* ── レポート画面: コントロールを圧縮し、レポート領域を最大化 ── */
.ctl-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ctl-row .sel-client{max-width:230px;padding:6px 10px;font-size:13px}
.rtabs{display:flex;gap:4px;flex-wrap:wrap}
.rtab{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:8px;
  padding:6px 12px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.rtab:hover:not(.disabled){border-color:var(--gold)}
.rtab.active{background:var(--navy);color:#fff;border-color:var(--ink);font-weight:700}
.rtab.disabled{opacity:.4;cursor:not-allowed}
.ctl2{margin-bottom:6px}
.spacer{flex:1}
.targets{display:flex;gap:8px;flex-wrap:wrap}
.tsel{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted)}
.tsel select{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;
  padding:5px 8px;font-size:12.5px;max-width:340px}
.ver-wrap{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted)}
.ver-select{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;
  padding:5px 8px;font-size:12.5px;max-width:180px}
.diag-status{font-size:11.5px;color:var(--gold-t);font-weight:700;white-space:nowrap}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:8px;white-space:nowrap}
.preview-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);
  display:flex;flex-direction:column}
.preview-title{font-size:11.5px;color:var(--muted);padding:5px 10px;border-bottom:1px solid var(--line);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* レポートが常に大きく見えるよう、残り高さいっぱいに広げる */
.frame{width:100%;height:calc(100vh - 210px);min-height:420px;border:0;background:#fff;display:block}
/* 全画面表示 */
body.report-full .hd,body.report-full .ctl-row:not(.ctl2),body.report-full #report-empty{display:none}
body.report-full .wrap{max-width:none;padding:6px 8px}
body.report-full .frame{height:calc(100vh - 92px)}
body.report-full .preview-wrap{border-radius:8px}

.btn{background:var(--navy);color:#fff;border:0;border-radius:9px;padding:9px 16px;font-size:14px;cursor:pointer}
.btn:hover{opacity:.92}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}
.btn.danger:hover{background:var(--danger);color:var(--bg)}

.settings-grid{display:grid;gap:16px;grid-template-columns:320px 1fr}
@media(max-width:820px){.settings-grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.client-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.client-list li{padding:11px 12px;border:1px solid var(--line);border-radius:9px;cursor:pointer}
.client-list li:hover{border-color:var(--gold)}
.client-list li.active{border-color:var(--gold);background:rgba(240,165,0,.08)}
.client-list .cl-n{font-weight:700;font-size:14px}
.client-list .cl-m{font-size:12px;color:var(--muted)}
.pill{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;margin-left:6px}
.pill.on{background:rgba(21,128,61,.14);color:var(--ok)}
.pill.off{background:var(--line);color:var(--muted)}

.form .f{margin-bottom:12px}
.form .f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}
.form .req{color:var(--danger)}
.form small{display:block;margin-top:3px}
.sec{font-size:13px;margin:18px 0 8px;padding-top:12px;border-top:1px dashed var(--line);color:var(--text)}
.toggle-row{display:flex;align-items:center;gap:12px}
.ads-fields{border-left:3px solid var(--gold);padding-left:12px;margin-top:4px}
.form-actions{display:flex;align-items:center;gap:10px;margin-top:18px}
.form-msg{font-size:13px}
.form-msg.ok{color:var(--ok)} .form-msg.err{color:var(--danger)}

/* 対策ページ（複数ページ×複数KW）の行 */
.target-row{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;background:rgba(0,0,0,.015)}
.tr-head{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.tr-head .t-url{flex:1}
.t-del{flex:0 0 auto;width:32px;height:32px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;cursor:pointer}
.t-del:hover{border-color:var(--danger);color:var(--danger)}
.btn-add{margin-top:2px}
.tr-field{margin-top:14px;padding-left:10px;border-left:3px solid var(--line)}
.tr-field:has(.t-kw){border-left-color:var(--gold)}
.tr-field:has(.t-q){border-left-color:#3f8ed0}
.tr-field:first-of-type{margin-top:6px}
.tr-lb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.tr-no{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;
  background:var(--gold);color:#3a2a00;font-size:12px;font-weight:800;flex:0 0 auto}
.tr-no.n2{background:#2d79b9;color:#fff}
.tr-ttl{font-size:13.5px;font-weight:800;color:var(--text);letter-spacing:.01em}
.tr-sub{font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
/* 候補提案 */
.sug-btn{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:999px;
  padding:2px 10px;font-size:11px;cursor:pointer}
.sug-btn:hover:not(:disabled){border-color:var(--gold);color:var(--gold-t)}
.sug-btn:disabled{opacity:.6;cursor:default}
.sug-box{margin-top:6px;border:1px dashed var(--line);border-radius:9px;padding:8px 10px;background:rgba(0,0,0,.02)}
.sug-hint{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}
.sug-hint.err{color:var(--danger)}
.sug-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.sug-chip{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:999px;
  padding:4px 11px;font-size:12px;cursor:pointer;text-align:left}
.sug-chip:hover{border-color:var(--gold)}
.sug-chip.on{background:rgba(240,165,0,.14);border-color:var(--gold);font-weight:700}
.sug-chip.on::before{content:"✓ ";color:var(--gold-t)}
.sug-meta{margin-left:6px;font-size:10.5px;color:var(--muted);font-weight:400;white-space:nowrap}
/* 候補の判断テーブル */
.cand-sec{margin:8px 0 10px}
.cand-h{display:inline-block;font-size:11.5px;padding:2px 10px;border-radius:999px;margin-bottom:5px;cursor:default}
.cand-h.ok{background:rgba(21,128,61,.14);color:var(--ok)}
.cand-h.hold{background:rgba(240,165,0,.16);color:var(--gold-t)}
.cand-h.rej{background:var(--line);color:var(--muted);cursor:pointer}
details.cand-sec summary{list-style:none}
details.cand-sec summary::-webkit-details-marker{display:none}
table.cand-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
table.cand-tbl th{text-align:left;font-size:10.5px;color:var(--muted);font-weight:700;padding:4px 6px;border-bottom:1px solid var(--line)}
table.cand-tbl td{padding:6px;border-bottom:1px solid var(--line);vertical-align:top}
table.cand-tbl tr.on{background:rgba(240,165,0,.07)}
table.cand-tbl .cc{text-align:center;white-space:nowrap}
table.cand-tbl .cd{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11.5px}
table.cand-tbl th.cc{text-align:center} table.cand-tbl th.cd{text-align:right}
table.cand-tbl .ct{line-height:1.5}
.cand-why{font-size:11px;color:var(--muted);margin-top:2px}
.cand-ev{font-size:10.5px;color:var(--muted);opacity:.85;margin-top:2px}
.cand-tbl .rel{font-size:10px;color:var(--muted);white-space:normal;display:block}
.cand-tbl .na{color:var(--muted)} .cand-tbl .u{font-size:10px;color:var(--muted)}
.pick{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:7px;
  padding:3px 8px;font-size:11px;cursor:pointer;white-space:nowrap}
.pick:hover{border-color:var(--gold)}
.pick.on{background:rgba(240,165,0,.16);border-color:var(--gold);font-weight:700}
.sug-close{background:transparent;border:0;color:var(--muted);font-size:11px;cursor:pointer;padding:0}
.sug-close:hover{color:var(--text);text-decoration:underline}

/* アクセス解析ツール（GA4/Clarity） */
.analytics-tool{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:rgba(0,0,0,.015)}
.analytics-tool .at-title{font-weight:700;font-size:13px;margin-bottom:8px}
.auth-ref-field,.auth-token-field{margin-top:2px}
.warn{color:var(--danger);font-weight:700;font-size:11px}

/* レポート: 対策ページ選択 */
.pages{margin:-4px 0 18px}
.pages-h{font-size:12px;color:var(--muted);margin-bottom:8px}
.page-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;text-align:left;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-bottom:8px;cursor:pointer;color:var(--text)}
.page-item:hover{border-color:var(--gold)}
.page-item.active{border-color:var(--gold);background:rgba(240,165,0,.08)}
.page-item .pg-url{font-weight:700;font-size:13.5px;word-break:break-all}
.page-item .pg-badge{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:999px}
.page-item .pg-badge.on{background:rgba(21,128,61,.14);color:var(--ok)}
.page-item .pg-badge.off{background:var(--line);color:var(--muted)}
.page-item .pg-kw{flex-basis:100%;font-size:11.5px;color:var(--muted)}
/* 広告分析: 種別×形式セレクタ */
.ads-optrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.ads-optrow .ao-lb{font-size:12px;color:var(--muted);width:36px;flex:0 0 auto}
.opt{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.opt:hover{border-color:var(--gold)}
.opt.active{border-color:var(--gold);background:rgba(240,165,0,.12);font-weight:700}

.switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto}
.switch input{display:none}
.slider{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.2s}
.slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+.slider{background:var(--gold)}
.switch input:checked+.slider:before{transform:translateX(20px)}

/* 依存の接続状態 */
.health{margin-bottom:12px}
.health-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hz{font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.hz.ok{background:rgba(21,128,61,.12);color:var(--ok);border-color:transparent}
.hz.ng{background:rgba(185,28,28,.12);color:var(--danger);border-color:transparent;font-weight:700}
.hz.off{opacity:.75}
.hz-note{font-size:11px;color:var(--danger)}

/* 説明の折りたたみ（既定は畳む） */
details.help{margin:-2px 0 10px}
details.help > summary{display:inline-block;list-style:none;cursor:pointer;font-size:11px;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:2px 10px}
details.help > summary::-webkit-details-marker{display:none}
details.help > summary::before{content:"▸ "}
details.help[open] > summary::before{content:"▾ "}
details.help > summary:hover{border-color:var(--gold);color:var(--gold-t)}
.help-body{margin:6px 0 0;font-size:12px;color:var(--muted);line-height:1.6}
/* 候補行の理由 */
details.why{margin-top:2px}
details.why > summary{display:inline-block;list-style:none;cursor:pointer;font-size:10px;color:var(--muted);
  border:1px solid var(--line);border-radius:6px;padding:0 6px}
details.why > summary::-webkit-details-marker{display:none}
details.why > summary::before{content:"▸ "}
details.why[open] > summary::before{content:"▾ "}
details.why > summary:hover{border-color:var(--gold);color:var(--gold-t)}

/* プロダクトロゴ */
.hd h1.logo{font-size:20px;font-weight:800;letter-spacing:.08em;margin:0}
.hd h1.logo span{color:var(--gold)}
.logo-sub{font-size:10.5px;color:#9fb0c8;letter-spacing:.06em;align-self:center}

/* ブランドマーク（FUN-CREATEロゴ・角丸） */
.brand-mark{width:34px;height:34px;border-radius:9px;display:block;flex:0 0 auto;
  background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.hd-inner{gap:12px}
@media(max-width:520px){ .brand-mark{width:28px;height:28px;border-radius:7px} .logo-sub{display:none} }

/* バージョン表示・歯車タブ */
.app-ver{font-size:10.5px;color:#8ea3c0;letter-spacing:.04em;align-self:center;
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:1px 8px}
.tab.tab-icon{font-size:22px;line-height:1;padding:5px 16px}

/* 利用マニュアル */
.manual{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:12px}
.manual>summary{cursor:pointer;list-style:none;font-size:14px;display:flex;align-items:center;gap:10px}
.manual>summary::-webkit-details-marker{display:none}
.manual>summary::before{content:"▸";color:var(--muted)}
.manual[open]>summary::before{content:"▾"}
.mn-hint{font-size:11px;color:var(--muted);font-weight:400}
.manual[open] .mn-hint{display:none}
.mn-body{margin-top:12px;font-size:13px;line-height:1.7}
.mn-lead{color:var(--muted);font-size:12.5px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.mn-sec{border-top:1px solid var(--line);padding:8px 0}
.mn-sec:first-of-type{border-top:0}
.mn-sec>summary{cursor:pointer;list-style:none;font-weight:700;font-size:13px;padding:4px 0}
.mn-sec>summary::-webkit-details-marker{display:none}
.mn-sec>summary::before{content:"▸ ";color:var(--muted)}
.mn-sec[open]>summary::before{content:"▾ "}
.mn-sec ul,.mn-sec ol{margin:6px 0 6px 0;padding-left:20px}
.mn-sec li{margin:4px 0}
.mn-sec p{margin:6px 0}
.mn-tbl{width:100%;border-collapse:collapse;margin:6px 0;font-size:12.5px}
.mn-tbl th{text-align:left;vertical-align:top;padding:6px 10px 6px 0;white-space:nowrap;color:var(--text);
  border-bottom:1px solid var(--line);width:1%}
.mn-tbl td{padding:6px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.mn-sec code{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:11.5px}

/* マニュアルを別タブで開く */
.mn-open{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--muted);
  border-radius:8px;padding:3px 10px;font-size:11px;cursor:pointer;white-space:nowrap}
.mn-open:hover{border-color:var(--gold);color:var(--gold-t)}

/* ── GA4 CV定義（効果検証・CVR算出の前提。人が明示指定する） ── */
.analytics-tool .cvdef{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.analytics-tool .cvdef .req{font-size:11px;font-weight:700;margin-left:6px}
.analytics-tool .row-inline{display:flex;gap:8px;align-items:center}
.analytics-tool .row-inline input{flex:1}
.analytics-tool .row-inline .btn{white-space:nowrap}
.analytics-tool .hint{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.6}

/* マニュアルは ui/manual.html が単一ソース。設定画面には iframe で埋め込む（内容の二重管理を避ける） */
.manual .mn-frame{width:100%;height:70vh;min-height:420px;border:1px solid var(--line);
  border-radius:10px;background:var(--card);display:block}

/* ══════ 案件（商談）管理 ══════ */
.deal-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
@media(max-width:900px){.deal-layout{grid-template-columns:1fr}}
.deal-list-pane{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;position:sticky;top:12px}
.dl-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dl-filter{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:4px;cursor:pointer}
.deal-list{list-style:none;margin:0;padding:0;max-height:70vh;overflow:auto}
.deal-list li{border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:7px;cursor:pointer}
.deal-list li:hover{border-color:var(--navy)}
.deal-list li.on{border-color:var(--navy);background:var(--bg)}
.deal-list li.closed{opacity:.6}
.deal-list li.dl-none{border:none;cursor:default;color:var(--muted);font-size:12.5px;text-align:center;padding:18px 0}
.dl-t{font-weight:700;font-size:13px;line-height:1.5}
.dl-m{font-size:11px;color:var(--muted);margin-top:3px}
.dl-stage{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.dl-next{font-size:11px;color:var(--ink);margin-top:4px}

.deal-detail{min-width:0}
.dd-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.dd-title{flex:1;min-width:220px;font-size:16px;font-weight:700;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text)}
.dd-next{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.dd-next label{font-size:12px;color:var(--muted);white-space:nowrap}
.dd-next input{flex:1;min-width:200px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}
.dd-msg{font-size:12px;color:var(--muted)}
.dd-msg.ok{color:var(--ok)} .dd-msg.err{color:var(--danger)} .dd-msg.warn{color:var(--gold-t)}

.dd-sec{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}
.dd-sec>summary{cursor:pointer;padding:12px 16px;font-size:13.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dd-sec>summary::-webkit-details-marker{display:none}
.dd-sec>summary::before{content:"▸";color:var(--muted);font-size:11px}
.dd-sec[open]>summary::before{content:"▾"}
.dd-hint{font-size:11px;color:var(--muted);font-weight:400}
.dd-body{padding:0 16px 16px;border-top:1px solid var(--line);padding-top:14px}
.dd-body textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);color:var(--text);font-family:inherit;font-size:13px;line-height:1.7;resize:vertical}
.dd-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.dd-note{font-size:11.5px;color:var(--muted);background:var(--bg);border-left:3px solid var(--gold);
  border-radius:6px;padding:8px 11px;margin:10px 0 0;line-height:1.7}

.inq-parsed{margin-top:12px}
.inq-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.inq-tbl th{text-align:left;width:96px;padding:6px 9px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
.inq-tbl td{padding:6px 9px;border-bottom:1px solid var(--line);word-break:break-all}
.inq-tbl .na{color:var(--muted);font-size:11.5px}
.inq-cid{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);width:180px}

.mt-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.mt-item{border:1px solid var(--line);border-radius:9px}
.mt-item>summary{cursor:pointer;padding:9px 12px;font-size:12.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mt-d{color:var(--muted);font-size:11.5px}
.mt-req{font-size:10.5px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--ok)}
.mt-req.none{color:var(--muted)}
.mt-detail{padding:0 12px 12px;font-size:12.5px}
.mt-sum{margin:6px 0;white-space:pre-wrap}
.mt-blk{margin-top:8px} .mt-blk b{font-size:11.5px;color:var(--muted)}
.mt-blk ul{margin:3px 0 0;padding-left:20px} .mt-blk li{margin:2px 0}
.mt-raw{margin-top:8px} .mt-raw summary{cursor:pointer;font-size:11.5px;color:var(--muted)}
.mt-raw pre{white-space:pre-wrap;font-size:11.5px;background:var(--bg);border-radius:6px;padding:9px;margin:6px 0 0;max-height:260px;overflow:auto}
.mt-form{border-top:1px dashed var(--line);padding-top:12px}
.mt-form .f3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
@media(max-width:720px){.mt-form .f3{grid-template-columns:1fr}}
.mt-form .f3 label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}
.mt-form .f3 input{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}
.mt-lb{display:block;font-size:11.5px;color:var(--muted);margin:8px 0 4px}

.em-gen,.pr-gen{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.em-gen input,.pr-gen input{flex:1;min-width:200px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}
.em-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.em-item{border:1px solid var(--line);border-radius:9px}
.em-item>summary{cursor:pointer;padding:9px 12px;font-size:12.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.em-d{color:var(--muted);font-size:11.5px}
.em-sent{font-size:10.5px;color:var(--ok);background:var(--bg);border-radius:999px;padding:1px 8px}
.em-draft{font-size:10.5px;color:var(--gold-t);background:var(--bg);border-radius:999px;padding:1px 8px}
.em-detail{padding:0 12px 12px}
.em-sub{font-size:12.5px;margin:6px 0 8px}
.em-body{width:100%;font-family:inherit;font-size:12.5px;line-height:1.8;padding:10px;border:1px solid var(--line);
  border-radius:8px;background:var(--bg);color:var(--text);resize:vertical}

.pr-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.pr-item{border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.pr-h{font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pr-d{color:var(--muted);font-size:11.5px;margin-left:auto}
.pr-warn{font-size:11.5px;color:var(--danger);background:var(--bg);border-left:3px solid var(--danger);
  border-radius:6px;padding:7px 10px;margin-top:7px;line-height:1.7}
.pr-frame{width:100%;height:600px;border:1px solid var(--line);border-radius:8px;margin-top:10px;background:var(--card)}

.kn-list{display:flex;flex-direction:column;gap:8px}
.kn-item{border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:12.5px}
.kn-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kn-s{font-size:10.5px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.kn-m{font-size:11px;color:var(--muted);margin-left:auto}
.kn-n,.kn-r{font-size:11.5px;color:var(--muted);margin-top:3px}

.tl{list-style:none;margin:0;padding:0;font-size:12.5px}
.tl li{padding:6px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap}
.tl-at{color:var(--muted);font-size:11.5px;white-space:nowrap;min-width:110px}
.tl-k{font-weight:700;font-size:11.5px;color:var(--ink);white-space:nowrap}

/* 自社サービスカタログ（設定画面） */
.svc-state{font-size:11px;border-radius:999px;padding:1px 9px;border:1px solid var(--line)}
.svc-state.ok{color:var(--ok)} .svc-state.ng{color:var(--danger)}
.svc-list{display:flex;flex-direction:column;gap:10px}
.svc-item{border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.svc-h{display:flex;gap:8px;align-items:center;font-size:13px}
.svc-cat{font-size:10.5px;color:var(--muted);background:var(--bg);border-radius:999px;padding:1px 8px}
.svc-sum{font-size:11.5px;color:var(--muted);margin:3px 0 8px}
.svc-f{display:flex;gap:8px;align-items:center;margin-top:5px;font-size:12px}
.svc-f span{width:70px;color:var(--muted);font-size:11.5px}
.svc-f input{flex:1;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--text);font-size:12.5px}
.svc-plans{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.svc-plans span{font-size:11px;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.svc-src{font-size:10.5px;color:var(--muted);margin-top:6px}

/* 出力先の切り替え（社内用 / クライアント用）。全レポート共通 */
.aud-sw{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}
.aud-btn{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700;
  padding:6px 12px;cursor:pointer;white-space:nowrap}
.aud-btn+.aud-btn{border-left:1px solid var(--line)}
.aud-btn:hover{color:var(--text)}
.aud-btn.active{background:var(--navy);color:#fff}
.aud-btn[data-aud="internal"].active{background:#7A1F1F}

/* AI検索エンジンの接続テスト */
.ai-test{margin:10px 0 16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ai-test-res{width:100%;display:flex;flex-direction:column;gap:6px}
.ai-t{display:flex;gap:10px;align-items:baseline;font-size:12.5px;border:1px solid var(--line);
  border-radius:8px;padding:7px 11px;background:var(--card)}
.ai-t-n{font-weight:700;white-space:nowrap;min-width:110px}
.ai-t-d{color:var(--muted);word-break:break-all}
.ai-t.ok{border-color:var(--ok)} .ai-t.error{border-color:var(--danger)} .ai-t.warn{border-color:var(--gold)}

/* AI検索エンジンのAPIキー登録 */
.ai-keys{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.ai-key{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.ai-key-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.ai-key-pri{font-size:10.5px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--muted)}
.ai-key-set{font-size:10.5px;color:var(--ok);background:var(--bg);border-radius:999px;padding:1px 8px}
.ai-key-hint{font-size:11.5px;color:var(--muted);margin:4px 0 8px;line-height:1.6}
.ai-key .row-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ai-key input{flex:1;min-width:200px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}
.ai-key-msg{font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.6;word-break:break-all}
.ai-key-msg.ok{color:var(--ok)} .ai-key-msg.err{color:var(--danger)} .ai-key-msg.warn{color:var(--gold-t)}

/* CV定義：業種別の例テーブル（詳細説明内） */
.cv-eg{width:100%;border-collapse:collapse;font-size:11.5px;margin:6px 0 4px}
.cv-eg th,.cv-eg td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top;color:var(--text)}
.cv-eg th{background:var(--bg);color:var(--muted);font-weight:700;white-space:nowrap}
.cv-eg code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:11px}

/* GA4アクセステストの詳細（403時の案内） */
.ga4-test-detail{margin-top:8px}
.ga4-sa{border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:12.5px;background:var(--card);line-height:1.7}
.ga4-sa .row-inline{display:flex;gap:8px;align-items:center;margin-top:8px}
.ga4-sa input{flex:1;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font-size:12px}

/* ───────── 案件: 受注結果・伴走支援（継続案件）───────── */
.btn.xs{padding:3px 8px;font-size:11px;border-radius:7px;white-space:nowrap}
.dd-outcome{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 4px}
.dd-outcome .dd-lb{font-size:12px;color:var(--muted)}
.dd-badge{font-size:12px;font-weight:700}
.dd-badge.won{color:var(--ok)} .dd-badge.lost{color:var(--danger)}
.won-choice{display:inline-flex;gap:6px;align-items:center}

.dl-tag{font-size:10px;font-weight:700;border-radius:10px;padding:1px 7px;margin-left:6px;vertical-align:middle}
.dl-tag.eng{background:rgba(21,128,61,.16);color:var(--ok)}
.deal-list li.engaged{border-left:3px solid var(--ok)}
.dl-next.due{color:var(--danger);font-weight:700}

.dd-eng > summary b{color:var(--ok)}
#engagement-body .es-top{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
#engagement-body .es-top label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
#engagement-body .es-lb{font-size:12px;color:var(--muted);font-weight:700;margin:8px 0 4px}
.es-plan .es-chips{display:flex;gap:6px;flex-wrap:wrap}
.es-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line);
  border-radius:16px;padding:3px 10px;color:var(--text);cursor:pointer;background:var(--card)}
.es-tbl{width:100%;border-collapse:collapse;font-size:12px}
.es-tbl th,.es-tbl td{border:1px solid var(--line);padding:5px 7px;text-align:left;vertical-align:middle}
.es-tbl th{background:var(--bg);color:var(--muted);font-weight:700;white-space:nowrap}
.es-tbl .select.sm,.es-tbl input{width:100%;min-width:80px}
.es-overdue{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:var(--danger);
  border:1px solid var(--danger);border-radius:9px;padding:0 6px}

/* 素のチェックボックス/ラジオは汎用input（テキスト用の枠・padding）に巻き込まれると
   巨大な箱になり隣のラベルを崩す。ネイティブ表示に戻す（.switch は input:display:none で不干渉）。 */
input[type=checkbox],input[type=radio]{
  width:auto;min-width:0;height:auto;padding:0;margin:0;border:0;background:none;border-radius:0;
  accent-color:var(--navy);vertical-align:middle;flex:0 0 auto}
.dl-head{flex-wrap:wrap}
.dl-filter input[type=checkbox]{width:14px;height:14px}

/* ───────── 請求管理 / Stripe ───────── */
.stripe-key-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.stripe-key-row input{flex:1;min-width:220px}
#billing-body .bl-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
#billing-body .bl-top label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.bl-sub{border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin:8px 0}
.bl-subrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.bl-subrow input{flex:1;min-width:200px}
.bl-subst{font-size:11px;font-weight:700;border-radius:9px;padding:1px 9px;border:1px solid var(--line);color:var(--muted)}
.bl-subst.active{color:var(--ok);border-color:var(--ok);background:rgba(21,128,61,.12)}
.bl-subst.canceled{color:var(--muted)}
.bl-subst.past_due,.bl-subst.unpaid{color:var(--danger);border-color:var(--danger)}
.bl-tbl .bc-paid{white-space:nowrap;font-size:11.5px;color:var(--ok)}

/* ───────── 保存ボタンの統一（各セクション末尾・右寄せ・範囲明示）───────── */
.sec-save{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap;
  margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.sec-save-scope{margin-right:auto;font-size:11px;color:var(--muted)}
.sec-save .btn{white-space:nowrap}
/* 設定のフォーム保存も同じ体裁に */
.form-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap;
  margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.form-actions .sec-save-scope{margin-right:auto}

/* ───────── メール往復スレッド（受信/送信） ───────── */
.em-inbound{border:1px solid var(--line);border-radius:9px;padding:8px 11px;margin-bottom:10px;background:var(--bg)}
.em-inbound > summary{cursor:pointer;font-size:13px}
.em-in-body{margin-top:9px}
.em-in-body textarea{width:100%}
.em-dir{font-size:10.5px;font-weight:700;border-radius:9px;padding:1px 7px;margin-right:6px;white-space:nowrap}
.em-dir.in{background:rgba(240,165,0,.16);color:var(--gold-t)}
.em-dir.out{background:rgba(21,128,61,.14);color:var(--ok)}
.em-item.inbound{border-left:3px solid var(--gold)}
.em-item.outbound{border-left:3px solid var(--line)}

/* ── LP変更記録（経過観察） ────────────────────────────────
   直した箇所は一定期間そのまま観察する。ここに記録された箇所は、
   観察期間が終わるまでレポート側が提案から外す（reports/changes.py）。 */
.chg-panel{border:1px solid var(--line);border-radius:10px;background:var(--card);
  padding:14px 16px;margin-bottom:12px}
.chg-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.chg-head b{font-size:13px}
.chg-head .muted{font-size:11.5px}
.chg-list{display:grid;gap:8px;margin-bottom:12px}
.chg-list .muted{font-size:12px;margin:0}
.chg-item{border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:8px;padding:10px 12px}
.chg-item.first_check{border-left-color:var(--ok)}
.chg-item.done{border-left-color:var(--line);opacity:.6}
.chg-i-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.chg-badge{font-size:10px;font-weight:800;color:var(--gold-t);background:rgba(240,165,0,.13);
  border-radius:5px;padding:3px 8px}
.chg-item.first_check .chg-badge{color:var(--ok);background:rgba(21,128,61,.12)}
.chg-item.done .chg-badge{color:var(--muted);background:rgba(128,128,128,.12)}
.chg-area-l{font-size:11px;color:var(--muted)}
.chg-date{font-size:11px;color:var(--muted);font-weight:700}
.chg-del{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px}
.chg-del:hover{color:var(--danger)}
.chg-t{font-size:13px;font-weight:700;line-height:1.6}
.chg-bar{height:4px;border-radius:2px;background:var(--bg);margin:7px 0 5px;overflow:hidden}
.chg-bar span{display:block;height:100%;background:var(--gold);border-radius:2px}
.chg-item.first_check .chg-bar span{background:var(--ok)}
.chg-n{font-size:11.5px;color:var(--muted);line-height:1.75}
.chg-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.chg-form label,.chg-detail{display:flex;flex-direction:column;gap:3px}
.chg-form label.grow{flex:1;min-width:220px}
.chg-form span,.chg-detail span{font-size:11px;color:var(--muted);font-weight:700}
.chg-form input,.chg-form select,.chg-detail input{border:1px solid var(--line);border-radius:7px;
  padding:6px 9px;font-size:12.5px;background:var(--card);color:var(--text)}
.chg-detail{margin-top:10px}
.chg-detail input{width:100%}

/* ── 案件（Client）のサブタブ ─────────────────────────────
   設定（支援内容20項目・レポート予定表・請求）と、日々の作業（メール・面談・提案）を
   同じ縦一列に並べると、毎回スクロールで探すことになる。区分ごとに出し分ける。 */
.dtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:14px 0 14px;padding-bottom:0}
.dtab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);
  font-size:13px;font-weight:700;padding:8px 16px;cursor:pointer;border-radius:6px 6px 0 0}
.dtab:hover{color:var(--text);background:rgba(127,127,127,.07)}
.dtab.active{color:var(--ink);border-bottom-color:var(--ink);background:none}
.dd-sec.tab-off{display:none}
.dd-danger{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
/* 見出し行: 案件名・ステージ・結果バッジだけを残す */
.dd-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dd-next{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.dd-next label{font-size:11px;color:var(--muted);font-weight:700;flex:none}
.dd-next input{flex:1;min-width:220px}

/* 定例で拾ったサイト変更 → 経過観察への登録導線 */
.mt-blk.sc{border:1px solid var(--line);border-left:3px solid var(--gold,#F0A500);
  border-radius:8px;padding:10px 12px;margin:10px 0}
.mt-blk.sc ul{margin:6px 0 0;padding-left:16px}
.mt-blk.sc li{margin-bottom:6px;line-height:1.8}
.sc-a{display:inline-block;font-size:10.5px;font-weight:800;color:var(--muted);
  background:rgba(127,127,127,.13);border-radius:5px;padding:2px 7px;margin-right:5px}
.sc-d{font-size:11px;color:var(--muted);margin:0 6px}
.sc-d.none{color:var(--danger,#B91C1C)}

/* ── 次にやること（TODO リスト） ─────────────────────────
   単一入力だと「レポート提出・請求・先方への確認」が同時に走る伴走支援を扱えない。
   設定に登録した定期レポートの予定も、ここへ取り込んで実行漏れを防ぐ。 */
.todo-box{border:1px solid var(--line);border-radius:10px;background:var(--card);
  padding:12px 14px;margin-top:12px}
.todo-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.todo-h b{font-size:13px}
.todo-c{font-size:11px;font-weight:800;color:var(--ink);background:rgba(127,127,127,.14);
  border-radius:10px;padding:2px 9px}
.todo-h .spacer{flex:1}
.todo-showdone{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px}
.todo-list{list-style:none;margin:0;padding:0}
.td{display:flex;align-items:center;gap:8px;padding:7px 2px;border-top:1px solid var(--line)}
.td:first-child{border-top:0}
.td-ck{flex:none;width:15px;height:15px;cursor:pointer}
.td-t{flex:1;font-size:13px;line-height:1.6}
.td.done .td-t{text-decoration:line-through;color:var(--muted)}
.td-src{flex:none;font-size:10px;font-weight:800;color:var(--muted);
  background:rgba(127,127,127,.14);border-radius:5px;padding:2px 7px}
.td-due{flex:none;font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}
.td-due.none{opacity:.6;font-weight:400}
.td-due.soon{color:var(--gold-t)}
.td-due.over{color:var(--danger)}
.td-x{flex:none;border:0;background:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 5px}
.td-x:hover{color:var(--danger)}
.td-empty{font-size:12px;color:var(--muted);padding:6px 2px;line-height:1.8}
/* 追加フォームは最下段（既存の予定を先に見せ、追加は後） */
.todo-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.todo-add input[type=text],.todo-add input:not([type]){flex:1;min-width:200px}
.dl-more{font-size:10.5px;color:var(--muted);margin-top:2px;padding-left:2px}

/* ── ヘッダーのクライアント切替（全画面で共通） ───────────────── */
.hd-client{display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:14px}
.hd-client label{font-size:10.5px;font-weight:800;color:rgba(255,255,255,.72);
  letter-spacing:.5px;white-space:nowrap;flex:none}
.hd-client select{min-width:160px;max-width:230px;font-size:13px;padding:6px 10px}
@media(max-width:720px){.hd-client{order:3;width:100%;margin:8px 0 0}.hd-client select{flex:1;max-width:none}}
/* クライアント画面のサブタブ */
/* 上位タブ（クライアント内）は**ピル型**。下位の .dtab（下線型）と見分けがつくようにする。
   同じ下線タブが縦に2列並ぶと、どちらが上位か分からなかった。 */
.ctabs{display:flex;gap:6px;margin-bottom:16px;padding-bottom:12px;
  border-bottom:1px solid var(--line)}
.ctab{background:none;border:1px solid var(--line);color:var(--muted);
  font-size:13.5px;font-weight:700;padding:8px 18px;cursor:pointer;border-radius:999px}
.ctab:hover{color:var(--text);background:rgba(127,127,127,.07)}
.ctab.active{color:#fff;background:var(--ink);border-color:var(--ink)}
.ctab.hidden{display:none}
.view-lead{font-size:12.5px;color:var(--muted);line-height:1.85;margin:0 0 14px}
.view-lead b{color:var(--text)}
.f label.ck{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;cursor:pointer}
.f label.ck input{width:15px;height:15px}

/* ── 新規案件フォーム（prompt を置き換え） ─────────────────────
   紐づけ先クライアントと「どこから始めるか」を画面で決められるようにする。 */
.dnew{border:1px solid var(--ink);border-radius:10px;padding:12px 14px;margin-bottom:10px;
  background:var(--card)}
.dnew.hidden{display:none}
.dnew-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.dnew-h b{font-size:13.5px}
.dnew-cl{font-size:11px;color:var(--muted)}
.dnew-cl b{color:var(--text)}
.dnew-lb{display:block;font-size:11px;font-weight:800;color:var(--muted);margin:8px 0 4px}
.dnew input[type=text],.dnew #dnew-title{width:100%}
.dnew-modes{display:grid;gap:7px}
.dnew-mode{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:start;
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;cursor:pointer}
.dnew-mode:hover{background:rgba(127,127,127,.06)}
.dnew-mode input{grid-row:span 2;margin-top:3px}
.dm-t{font-size:13px;font-weight:800;line-height:1.5}
.dm-d{font-size:11px;color:var(--muted);line-height:1.7}
.dnew-mode:has(input:checked){border-color:var(--ink);background:rgba(127,127,127,.07)}
.dnew-act{display:flex;gap:8px;align-items:center;margin-top:11px}
/* 案件が無いときの案内 */
.deal-empty{border:1px dashed var(--line);border-radius:12px;padding:22px 24px;text-align:center}
.deal-empty .de-t{font-size:14px;font-weight:800;margin:0 0 8px}
.deal-empty .de-d{font-size:12.5px;color:var(--muted);line-height:1.9;margin:0 auto 14px;max-width:520px}

/* 案件管理を使っていないクライアントの案内 */
.ctab.off{color:var(--muted);opacity:.75}
.deal-off{border:1px dashed var(--line);border-radius:12px;padding:26px 24px;text-align:center;
  max-width:620px;margin:0 auto}
.deal-off .do-t{font-size:15px;font-weight:800;margin:0 0 10px}
.deal-off .do-d{font-size:12.5px;color:var(--muted);line-height:1.95;margin:0 0 16px}
.deal-off .do-n{font-size:11px;color:var(--muted);margin:12px 0 0}

/* クライアントの区分表示（支援中／商談中／スポット） */
.client-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.cs-badge{font-size:12px;font-weight:800;border-radius:14px;padding:4px 12px;
  border:1px solid var(--line)}
.cs-badge.cs-engaged{color:var(--ok);background:rgba(21,128,61,.12);border-color:rgba(21,128,61,.35)}
.cs-badge.cs-deal{color:var(--ink);background:rgba(90,130,240,.13);border-color:rgba(90,130,240,.35)}
.cs-badge.cs-spot{color:var(--muted);background:rgba(127,127,127,.1)}
.cs-d{font-size:11.5px;color:var(--muted)}

/* 新規案件フォームの注意書き */
.dnew-warn{font-size:11.5px;line-height:1.8;color:var(--gold-t);
  background:rgba(240,165,0,.12);border:1px solid rgba(240,165,0,.35);
  border-radius:8px;padding:8px 11px;margin-bottom:10px}
.dnew-warn.hidden{display:none}
.dnew-note{font-size:11px;color:var(--muted);line-height:1.85;margin:11px 0 0;
  padding-top:10px;border-top:1px dashed var(--line)}

/* ── 契約内容の確認（読み取り専用） ─────────────────────────
   何を契約しているかは日々見る側に置く。設定のチェックボックス群だけでは読み取れない。 */
.contract{border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:10px;
  background:var(--card);padding:12px 14px;margin-top:12px}
.contract.hidden{display:none}
.ct-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.ct-h b{font-size:13px}
.ct-h .spacer{flex:1}
.ct-amt{font-size:13px;font-weight:800;color:var(--ok);background:rgba(21,128,61,.12);
  border-radius:10px;padding:3px 11px}
.ct-noamt{font-size:11px;color:var(--muted);background:rgba(127,127,127,.12);
  border-radius:10px;padding:3px 10px}
.ct-meta{font-size:11px;color:var(--muted)}
.ct-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ct-list li{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;font-size:13px;
  padding:6px 0;border-top:1px solid var(--line)}
.ct-list li:first-child{border-top:0}
.ct-n{font-weight:700}
.ct-p{font-size:12px;color:var(--muted)}
.ct-c{font-size:10px;color:var(--muted);background:rgba(127,127,127,.13);border-radius:5px;padding:2px 7px}
.ct-x{color:var(--danger)}
.ct-warn{font-size:10.5px;color:var(--danger);margin-left:7px}
.ct-none,.ct-note{font-size:11.5px;color:var(--muted);line-height:1.85;margin:6px 0 0}

/* 契約時に合意した施策の実施内容 */
.ct-plan{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line)}
.cp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.cp-h b{font-size:12.5px}
.cp-h .spacer{flex:1}
.cp-src{font-size:10.5px;font-weight:800;color:var(--ink);background:rgba(127,127,127,.14);
  border-radius:5px;padding:2px 8px}
.cp-at,.cp-none{font-size:10.5px;color:var(--muted)}
.cp-d,.cp-n{font-size:11.5px;color:var(--muted);line-height:1.85;margin:4px 0 0}
.cp-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px}
.cp-file{cursor:pointer;display:inline-flex;align-items:center}
.cp-hl{font-size:12.5px;font-weight:700;line-height:1.8;margin:0 0 8px}
.cp-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.cp-list li{border-left:2px solid var(--line);padding:0 0 0 11px}
.cp-t{font-size:13px;font-weight:800;line-height:1.6}
.cp-b{font-size:12.5px;line-height:1.85;color:var(--muted);margin-top:3px}
.cp-w{font-size:11.5px;color:var(--muted);margin-top:3px;opacity:.85}
.cp-tbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:11px}
.cp-tbl th{background:rgba(127,127,127,.12);text-align:left;padding:6px 9px;font-size:11px}
.cp-tbl td{padding:6px 9px;border-bottom:1px solid var(--line);vertical-align:top}
.cp-tbl td.sm{color:var(--muted);white-space:nowrap}
.cp-note{font-size:11.5px;color:var(--gold-t);line-height:1.85;margin:9px 0 0}
.ct-plan.unconf{background:rgba(240,165,0,.06);border-radius:8px;padding:10px 11px;margin-top:12px}
.cp-req{font-size:10.5px;font-weight:800;color:var(--gold-t);background:rgba(240,165,0,.18);
  border-radius:5px;padding:2px 8px}
.cp-ok{font-size:10.5px;font-weight:800;color:var(--ok);background:rgba(21,128,61,.13);
  border-radius:5px;padding:2px 8px}
.cp-warn{font-size:11.5px;line-height:1.85;color:var(--gold-t);margin:0 0 9px}

/* 複数プランからの選択 */
.cp-pick{border:1px solid rgba(240,165,0,.4);background:rgba(240,165,0,.08);
  border-radius:9px;padding:11px 13px;margin:9px 0}
.cp-pq{font-size:12px;line-height:1.85;color:var(--gold-t);margin:0 0 9px}
.cp-opts{display:grid;gap:7px}
.cp-opt{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;align-items:start;
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;cursor:pointer;background:var(--card)}
.cp-opt:hover{background:rgba(127,127,127,.06)}
.cp-opt input{grid-row:span 3;margin-top:3px}
.cp-on{font-size:13px;font-weight:800}
.cp-op{font-size:12px;color:var(--ok);font-weight:700}
.cp-os{font-size:11.5px;color:var(--muted);line-height:1.75}
.cp-opt:has(input:checked){border-color:var(--ink);background:rgba(127,127,127,.08)}
.cp-chosen{font-size:12px;margin:0 0 8px}
.cp-chosen b{color:var(--ok)}

/* 提案書PDFのドロップゾーン */
.cp-drop{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  border:2px dashed var(--line);border-radius:10px;padding:18px 16px;margin-top:9px;
  transition:border-color .12s,background .12s}
.cp-drop.over{border-color:var(--ink);background:rgba(127,127,127,.09)}
.cp-drop .cd-i{font-size:20px}
.cp-drop .cd-t{font-size:12.5px;color:var(--muted)}
.cp-drop .cd-b{font-size:12px;font-weight:700;color:var(--ink);border:1px solid var(--line);
  border-radius:7px;padding:5px 12px;cursor:pointer;background:var(--card)}
.cp-drop .cd-b:hover{background:rgba(127,127,127,.09)}
.cp-file.over{border-color:var(--ink);background:rgba(127,127,127,.12)}

/* 実行中のロック表示（診断は数分。この間のクライアント切替が混入の入口になる） */
.busy-note{font-size:11px;color:var(--gold-t);background:rgba(240,165,0,.16);
  border-radius:10px;padding:4px 11px;margin-right:10px;max-width:340px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busy-note.hidden{display:none}
.app-busy #global-client,.app-busy .tab,.app-busy #btn-new-client{opacity:.5;cursor:not-allowed}
.ct-plan-b{font-size:11.5px;font-weight:800;color:var(--ink);background:rgba(90,130,240,.15);
  border-radius:10px;padding:3px 11px}
.ct-gap{font-size:11.5px;line-height:1.85;color:var(--gold-t);margin:8px 0 0}

/* 提供予定バッジ（今日どれを出すべきかをレポート画面で示す） */
.due-badge{font-size:11px;font-weight:800;color:var(--muted);background:rgba(127,127,127,.14);
  border-radius:10px;padding:3px 10px;white-space:nowrap}
.due-badge.over{color:var(--danger);background:rgba(185,28,28,.14)}
.due-badge.hidden{display:none}

/* フォーカスの可視化。ネイビー背景上でも分かるよう金色の実線にする。
   （outline の指定が1つも無く、ブラウザ既定はヘッダー上でほぼ見えなかった） */
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
.deal-list li{cursor:pointer}
.deal-list li:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
/* パンくず（階層が深く、URLも変わらないので現在地の手掛かりが要る） */
.crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11.5px;
  color:var(--muted);margin:0 0 8px}
.crumb .cb-now{color:var(--text);font-weight:700}
.crumb .cb-s{opacity:.5}

:root{ --chk:#EEF2FB; }
@media (prefers-color-scheme:dark){ :root{ --chk:#1F2740; } }
/* ── 改善指示書（社内）の対象・宛先・補足 ─────────────────────────
   指示書は「誰に何を頼むか」が本体なので、他レポートのLP選択とは別UIにする。 */
.dv-opts{display:flex;flex-direction:column;gap:8px;width:100%}
.dv-row{display:grid;grid-template-columns:4.5em 1fr;gap:10px;align-items:start}
.dv-row .dv-k{font-size:12px;font-weight:700;color:var(--muted);padding-top:6px}
.dv-row .dv-v{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;min-width:0}
.ckx{display:inline-flex;align-items:center;gap:5px;font-size:13px;cursor:pointer;
  border:1px solid var(--line);border-radius:7px;padding:4px 10px;background:var(--card)}
.ckx:has(input:checked){border-color:var(--navy);background:var(--chk)}
.ckx input{margin:0}
.ckx:focus-within{outline:2px solid var(--navy);outline-offset:1px}
#dv-note{width:100%;min-width:0;font:inherit;font-size:13px;padding:6px 9px;
  border:1px solid var(--line);border-radius:7px;background:var(--card);color:inherit;resize:vertical}
@media (max-width:700px){ .dv-row{grid-template-columns:1fr;gap:3px} .dv-row .dv-k{padding-top:0} }

/* ── 社内WEB担当者（改善指示書の宛先）─────────────────────────── */
.team-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.team-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);
  border-radius:8px;padding:7px 12px;background:var(--card)}
.team-row .tm-ord{width:1.6em;font-size:12px;font-weight:800;color:var(--muted);text-align:center}
.team-row .tm-nm{flex:1;font-size:14px;font-weight:600;min-width:0}
.team-row .tm-btns{display:flex;gap:5px;flex-shrink:0}
.btn.xs{font-size:11px;padding:2px 8px;line-height:1.7}
.team-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.team-add input{flex:1;min-width:12em;font-size:14px;padding:6px 10px}
#team-msg.bad{color:var(--danger);font-weight:700}

/* ── ログイン中の利用者（ヘッダ）─────────────────────────────── */
.hd-me{margin-left:10px;position:relative;flex-shrink:0}
.me-btn{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);
  color:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.me-btn:hover{background:rgba(255,255,255,.18)}
.me-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.me-nm{font-weight:700;max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-role{font-size:10.5px;font-weight:800;border-radius:4px;padding:1px 6px}
.me-role.adm{background:var(--gold);color:#1A2453}
.me-role.usr{background:rgba(255,255,255,.22);color:#fff}
.me-pop{position:absolute;right:0;top:calc(100% + 8px);background:var(--card);color:var(--text);
  border:1px solid var(--line);border-radius:10px;padding:8px;min-width:190px;z-index:60;
  box-shadow:0 12px 32px rgba(0,0,0,.22)}
.me-id{font-size:11.5px;color:var(--muted);padding:4px 10px 8px;border-bottom:1px solid var(--line);margin-bottom:6px;
  word-break:break-all}
.me-item{display:block;width:100%;text-align:left;background:none;border:0;color:inherit;font:inherit;
  font-size:13px;padding:7px 10px;border-radius:7px;cursor:pointer}
.me-item:hover{background:var(--bg)}
.me-item.danger{color:var(--danger);font-weight:700}

/* 権限で押せないボタンは「隠さず無効化」。隠すと「壊れた」と報告が来る */
.need-admin{opacity:.5;cursor:not-allowed}

/* ── 再ログイン（入力内容を消さないためのモーダル）─────────────── */
.relogin{position:fixed;inset:0;background:rgba(10,14,28,.72);display:grid;place-items:center;z-index:200;padding:20px}
.rl-card{background:var(--card);color:var(--text);border-radius:12px;padding:24px 26px;width:min(380px,100%)}
.rl-card h2{font-size:16px;margin:0 0 6px}
.rl-card label{display:block;font-size:12.5px;color:var(--muted);font-weight:700;margin:12px 0 0}
.rl-card input{width:100%;font-size:15px;padding:8px 11px;margin-top:4px;border:1px solid var(--line);
  border-radius:8px;background:var(--card);color:var(--text)}
.rl-btns{display:flex;gap:8px;margin-top:16px}
.rl-msg{font-size:12.5px;color:var(--danger);min-height:1.2em;margin:10px 0 0}

/* ── 利用者一覧 ─────────────────────────────────────────────── */
.team-row.usr{flex-wrap:wrap}
.team-row.usr.off{opacity:.55}
.usr-id{font-size:11px;color:var(--muted);font-weight:500;margin-left:8px}
.usr-badges{display:flex;gap:5px;flex-shrink:0}
.rl{font-size:10.5px;font-weight:800;border-radius:4px;padding:1px 7px}
.rl.admin{background:var(--gold);color:#1A2453}
.rl.user{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.rl.off{background:var(--danger);color:#fff}
.rl.live{background:transparent;color:var(--ok);border:1px solid var(--ok)}
.usr-meta{flex-basis:100%;font-size:11px;color:var(--muted);padding-left:2px}
.usr-add{margin:10px 0 0;border:1px dashed var(--line);border-radius:9px;padding:8px 12px}
.usr-add summary{font-size:13px;font-weight:700;cursor:pointer}
.usr-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:12px;align-items:end}
.usr-form label{font-size:12px;color:var(--muted);font-weight:700}
.usr-form input,.usr-form select{width:100%;font-size:14px;padding:6px 9px;margin-top:3px}
#users-msg.bad{color:var(--danger);font-weight:700}

/* ── 監査ログ ───────────────────────────────────────────────── */
.aud-ctl{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.aud-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:9px}
/* 列幅は em の決め打ちにしない。日時「2026-08-19 16:46:43」は 9.5em に収まらず、
   nowrap と併さって**隣のIDに重なっていた**。max-content なら中身に合わせて広がり、
   かつ全行で同じ幅になるので縦も揃う。最後の列だけ minmax(0,1fr) で残りを取る
   （1fr のままだと中身が最小幅を押し上げて、はみ出しが戻ってくる）。 */
.aud-row{display:grid;grid-template-columns:max-content max-content max-content minmax(0,1fr);
  gap:4px 12px;padding:6px 12px;font-size:12px;align-items:baseline;
  border-bottom:1px solid var(--line)}
.aud-row:last-child{border-bottom:0}
.aud-row.warn{background:rgba(185,28,28,.07)}
.aud-row .a-at{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.aud-row .a-who{font-weight:700;white-space:nowrap}
.aud-row .a-ev{white-space:nowrap}
.aud-row .a-de{color:var(--muted);word-break:break-word;min-width:0}
@media (max-width:900px){
  /* 詳細だけ次の行へ折り返す（日時・利用者・操作は1行に並べたまま） */
  .aud-row{grid-template-columns:max-content max-content minmax(0,1fr)}
  .aud-row .a-de{grid-column:1/-1;padding-left:2px}
}
@media (max-width:560px){ .aud-row{grid-template-columns:1fr;gap:2px} .aud-row .a-de{grid-column:auto} }

/* ── 変更履歴 ───────────────────────────────────────────────── */
.hist-list{display:flex;flex-direction:column;gap:8px;max-height:460px;overflow:auto}
.hist-row{border:1px solid var(--line);border-radius:9px;padding:9px 13px;background:var(--card)}
.hist-row .h-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-bottom:5px;font-size:12px}
.hist-row .h-at{color:var(--muted)}
.hist-row .h-who{font-weight:800}
.hist-row .h-kind{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 7px;color:var(--muted)}
.hist-row .h-note{color:var(--muted)}
.hist-row .h-ch{margin:0;padding-left:18px}
.hist-row .h-ch li{font-size:12.5px;line-height:1.9;word-break:break-word}
.hist-row .h-b{color:var(--muted);text-decoration:line-through}
.hist-row .h-ar{color:var(--muted);margin:0 5px}
.hist-row .h-a{font-weight:700}
.hist-row .h-more{margin:6px 0 0;font-size:11.5px;color:var(--muted)}
.hist-h{font-size:13px;margin:16px 0 8px;color:var(--muted);font-weight:800}
.hist-h:first-of-type{margin-top:4px}

/* ── 利用状況 ───────────────────────────────────────────────── */
.usg-row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;border:1px solid var(--line);
  border-radius:9px;padding:8px 13px;background:var(--card);font-size:12.5px}
.usg-row .u-nm{font-weight:800;min-width:8em}
.usg-row .u-id{font-weight:500;color:var(--muted);font-size:11px;margin-left:7px}
.usg-row .u-st{color:var(--muted)}
.usg-row .u-st b{color:var(--text);font-size:14px}
.usg-row .u-last{color:var(--muted);margin-left:auto;font-size:11.5px;white-space:nowrap}
.usg-row .u-cl{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}
.cchip{font-size:11px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 7px;color:var(--muted)}
.rl.test{background:transparent;color:var(--orange-t);border:1px dashed var(--orange-t)}

/* ── 共有運用の準備 ─────────────────────────────────────────── */
.ready-list{display:flex;flex-direction:column;gap:6px}
.ready-row{display:grid;grid-template-columns:1.6em 9em 1fr;gap:10px;align-items:start;
  border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-size:12.5px;background:var(--card)}
.ready-row.ng{border-color:var(--danger)}
.ready-row.warn{border-color:var(--gold-t)}
.ready-row.skip{opacity:.6}
.ready-row .rd-l{font-weight:800}
.ready-row .rd-d{color:var(--muted);line-height:1.8;min-width:0;word-break:break-word}
.ready-row .rd-f{color:var(--text);font-weight:600}
.svc-state.bad{color:var(--danger);font-weight:800}
.svc-state.warn{color:var(--gold-t);font-weight:800}
@media (max-width:640px){ .ready-row{grid-template-columns:1.6em 1fr} .ready-row .rd-d{grid-column:2} }

/* ── 手順の折りたたみ（接続情報パネル内）───────────────────────── */
.dd-warn{background:rgba(185,28,28,.07);border-left:3px solid var(--danger);border-radius:0 8px 8px 0;
  padding:10px 14px;margin:12px 0;font-size:13px;line-height:1.85;color:var(--text)}
.howto{border:1px solid var(--line);border-radius:9px;margin-bottom:12px;background:var(--card)}
.howto>summary{cursor:pointer;font-size:13.5px;font-weight:700;padding:10px 14px;list-style:none}
.howto>summary::-webkit-details-marker{display:none}
.howto>summary::before{content:"▸ ";color:var(--muted)}
.howto[open]>summary::before{content:"▾ "}
.howto>summary:focus-visible{outline:2px solid var(--navy);outline-offset:-2px;border-radius:9px}
.howto-b{padding:0 16px 14px}
ol.howto-steps{margin:8px 0 12px;padding-left:1.4em}
ol.howto-steps li{font-size:13px;line-height:1.9;margin-bottom:7px}
ol.howto-steps .hs-note{display:block;font-size:12px;color:var(--muted);line-height:1.75}
