:root { --fg:#1b2430; --muted:#63707f; --line:#d9e0e8; --accent:#1f6feb; --bg:#f6f8fa; }
* { box-sizing: border-box; }
body { margin:0; font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
       color:var(--fg); background:var(--bg); }
header { padding:14px 20px; background:#fff; border-bottom:1px solid var(--line); }
header h1 { font-size:18px; margin:0 0 4px; }
.badge { font-size:11px; background:var(--accent); color:#fff; padding:2px 8px; border-radius:10px; vertical-align:middle; }
#ctx { font-size:12px; color:var(--muted); }
nav { display:flex; gap:4px; padding:8px 16px; background:#fff; border-bottom:1px solid var(--line); flex-wrap:wrap; }
nav button { border:1px solid var(--line); background:#fff; padding:6px 12px; border-radius:6px; cursor:pointer; font-size:13px; }
nav button.active { background:var(--accent); color:#fff; border-color:var(--accent); }
main { padding:18px 20px 60px; }
h2 { font-size:15px; margin:18px 0 8px; }
.hint { color:var(--muted); font-size:12px; }
.hidden { display:none !important; }
.inline { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:8px 0; }
input, select, textarea { padding:6px 8px; border:1px solid var(--line); border-radius:5px; font-size:13px; font-family:inherit; }
input[type=text], input:not([type]) { min-width:240px; }
button { padding:6px 12px; border:1px solid var(--line); background:#fff; border-radius:5px; cursor:pointer; font-size:13px; }
button:hover { background:#eef3f9; }
table { width:100%; border-collapse:collapse; background:#fff; font-size:13px; }
th, td { border:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
th { background:#eef2f6; font-weight:600; }
tr.selected { background:#e8f1ff; }
.card, .gap-card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:12px; margin:10px 0; }
.gap-card h3 { font-size:14px; margin:0 0 6px; }
.gap-type { font-size:11px; color:#fff; background:var(--muted); padding:2px 6px; border-radius:8px; }
#chat { background:#fff; border:1px solid var(--line); border-radius:6px; padding:12px; min-height:160px; max-height:420px; overflow:auto; }
.msg { margin:8px 0; display:flex; gap:8px; }
.msg .who { font-size:11px; color:var(--muted); width:52px; flex:none; padding-top:3px; }
.msg .txt { background:#eef2f6; padding:7px 10px; border-radius:8px; white-space:pre-wrap; }
.msg.expert .txt { background:#e3f0e3; }
pre { background:#0f172a; color:#e2e8f0; padding:10px; border-radius:6px; overflow:auto; font-size:12px; }
textarea.json { width:100%; min-height:220px; font-family:ui-monospace,monospace; font-size:12px; }
#toast { position:fixed; right:16px; bottom:16px; background:#1b2430; color:#fff; padding:10px 14px;
         border-radius:6px; font-size:13px; max-width:420px; white-space:pre-wrap; }
.status { font-size:11px; padding:2px 6px; border-radius:8px; background:#eef2f6; }
.status.approved { background:#d6f5d6; }
.status.rejected { background:#f5d6d6; }
.status.human_review { background:#fff3c4; }
#whoami { float:right; margin-top:-32px; font-size:12px; color:var(--muted); }
#whoami button { padding:3px 8px; font-size:12px; }
#login-box { max-width:480px; }
.focus { font-size:11px; color:#fff; background:#5b6b7f; padding:2px 6px; border-radius:8px; }
.focus-doc_reality_mismatch { background:#c2410c; }
.focus-multiple_variations { background:#7c3aed; }
.mismatch { display:flex; gap:10px; margin:8px 0; font-size:12px; }
.mismatch > div { flex:1; background:#fff7ed; border:1px solid #fed7aa; border-radius:5px; padding:8px; }

/* レビュー画面（VXAX-152）。JSONを読めない人が中身を読んで判断できるように、
   項目ごとに見出しを付けて並べる。JSONは details の中に残す。 */
.k-card h3 { margin-bottom: .2rem; }
.k-fields { margin: .6rem 0; }
.k-row { display: grid; grid-template-columns: 11rem 1fr; gap: .5rem 1rem;
         padding: .35rem 0; border-top: 1px solid #eee; }
.k-row dt { font-size: .85rem; color: #555; }
.k-row dd { margin: 0; }
.k-row dd ul { margin: 0; padding-left: 1.1rem; }
.k-row input[type="text"], .k-row textarea { width: 100%; box-sizing: border-box; }
/* 未記入は薄く。空欄と「項目が無い」を見分けられるようにするため。 */
.k-empty dd { color: #999; }
.k-json { margin: .5rem 0; }
.k-json summary { cursor: pointer; font-size: .85rem; color: #555; }
.k-json pre { background: #f6f6f6; padding: .6rem; overflow-x: auto;
              font-size: .78rem; max-height: 22rem; }
.k-editing { border-left: 3px solid #2a6; }

/* 幅の狭い画面では、見出しと中身を縦に積む。 */
@media (max-width: 640px) {
  .k-row { grid-template-columns: 1fr; gap: .2rem; }
}

/* Knowledge一覧の絞り込み（VXAX-153）。 */
.filter-bar { flex-wrap: wrap; gap: .4rem; margin-bottom: .4rem; }
.filter-bar input[type="search"] { min-width: 14rem; }

/* 棚上げ・クライアント相談（VXAX-180）。回答欄と並べると押し間違えるので、
   行を分けて控えめに出す。 */
.park-bar { margin-top: .4rem; font-size: .85rem; }
.park-bar button { font-size: .85rem; }

/* Gap の優先度と割り振り（VXAX-179）。 */
.assign-bar { gap: .8rem; font-size: .85rem; margin: .3rem 0; }
.prio { font-size: .75rem; padding: .05rem .4rem; border-radius: .6rem;
        border: 1px solid #ccc; margin-left: .3rem; }
/* 高いものだけ目立たせる。全部に色を付けると、どれが急ぎか分からなくなる。 */
.prio-high { background: #fde8e8; border-color: #e88; color: #a22; }
.prio-low { color: #999; }

/* インタビュー由来のナレッジ（VXAX-181）。Export の【新規】と同じ色にする。 */
.badge-new {
  background: #b40000;
  color: #fff;
  border-radius: 3px;
  padding: 1px 6px;
  font-size: 0.75em;
  vertical-align: middle;
}

/* クローズドクエスチョンの選択肢（VXAX-178）。押すだけで答えられる。 */
.choices { margin: 6px 0; flex-wrap: wrap; }
.choices button { background: #0b5; color: #fff; border: none; }
.rule-off { color: #999; }

/* 人の目で確かめたほうがよいマスク結果（VXAX-156）。 */
.pii-review { color: #b40000; font-weight: 600; }

/* 回答した熟練者・承認したSV（VXAX-153）。 */
.k-people { margin-top: -4px; }
.k-none { color: #999; }

/* VXAX-229 */
.pii-check { display:flex; gap:4px; align-items:center; font-size:.9em; background:#fff8e1;
             border:1px solid #f0c36d; padding:4px 8px; border-radius:4px; }
.user-off td { color:#999; }
/* ログイン画面（Google ログインのボタン） */
.login-method { margin:8px 0 4px; }
.login-or { margin:14px 0 6px; }
.google-btn { display:inline-block; padding:9px 18px; border:1px solid var(--line); border-radius:5px;
              background:#fff; color:var(--fg); text-decoration:none; font-size:14px; font-weight:600; }
.google-btn::before { content:"G"; display:inline-block; margin-right:10px; color:#4285f4; font-weight:700; }
.google-btn:hover { background:#eef3f9; }
