/* =========================================================================
   判断資料ナビ — shihyo.css
   デザイン言語：製図用紙 × ハイビズ配色（MDBと共通）
   外部フォント・CDN依存なし。system-uiとYu Gothicで日本語表示。
   ========================================================================= */

:root{
  --paper:#efe9db;
  --paper2:#e7dfcd;
  --card:#faf6ec;
  --card2:#f3ecdb;
  --ink:#1e2733;
  --ink2:#4f5b6a;
  --ink3:#8b9099;
  --line:#d8cdb6;
  --line2:#cabfa6;

  --hv:#ef5a25;      /* ハイビズ・オレンジ（1色目） */
  --hv2:#ff7038;
  --blue:#2c6f8c;
  --blueink:#1f5067;
  --blue-bg:#e6f1f6;

  --ok:#2f8a55;
  --ok-bg:#e3f1e9;
  --warn:#bb8516;
  --warn-bg:#faf1d6;
  --bad:#cf4536;
  --bad-bg:#fbe5e0;

  --jp: -apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic UI",
        "Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
  --mono: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,
          "Yu Gothic UI",monospace;
}

*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body{ margin:0; min-height:100%; }
body{
  font-family:var(--jp);
  color:var(--ink);
  background:
    repeating-linear-gradient(0deg,transparent 0 27px,rgba(44,111,140,.05) 27px 28px),
    repeating-linear-gradient(90deg,transparent 0 27px,rgba(44,111,140,.05) 27px 28px),
    radial-gradient(120% 120% at 0% 0%,#f1ebde,#e3d9c4);
  min-height:100vh;
  font-size:14px;
  line-height:1.55;
}

/* ==================== レイアウト ==================== */
.wrap{ max-width:1440px; margin:0 auto; padding:22px 22px 60px; }

/* ==================== ヘッダ ==================== */
header.top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:6px 4px 18px;
  border-bottom:1.6px solid var(--ink);
  margin-bottom:20px;
  flex-wrap:wrap;
}
.brand{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.brand .mark{
  font-size:26px; font-weight:900; letter-spacing:.04em; line-height:1;
  color:var(--ink);
}
.brand .mark b{ color:var(--hv); }
.brand .tagline{
  font-size:11px; letter-spacing:.20em; color:var(--ink2); font-weight:700;
}
.brand .desc{ font-size:12px; color:var(--ink3); }

/* 辞書リファレンス（用途モードが常時ホーム、辞書はトグル式で開閉） */
.mode-nav{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.ref-label{
  font-size:10px; letter-spacing:.14em; color:var(--ink3); font-weight:800;
  padding-right:4px;
}
.ref-btn{
  display:inline-flex; align-items:center; gap:5px;
  padding:6px 12px;
  border:1.4px solid var(--ink3);
  background:transparent;
  color:var(--ink2);
  border-radius:6px;
  font-family:var(--jp); font-size:12px; font-weight:700;
  cursor:pointer;
}
.ref-btn:hover{ background:var(--card2); color:var(--ink); border-color:var(--ink); }
.ref-btn.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.ref-btn.on::after{
  content:' ×'; font-weight:900; margin-left:2px; opacity:.85;
}
.ref-btn svg{ flex:none; }

/* ==================== 業種セレクタ ==================== */
.industry-bar{
  background:var(--card);
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:12px 16px;
  margin-bottom:20px;
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.industry-bar .field-label{
  font-size:12px; font-weight:800; color:var(--ink2); letter-spacing:.14em;
}
.industry-bar select{
  border:1.6px solid var(--ink);
  background:#fffdf6;
  border-radius:8px;
  padding:8px 30px 8px 12px;
  font-family:var(--jp); font-size:14px; font-weight:700;
  color:var(--ink);
  box-shadow:1.5px 1.5px 0 var(--ink);
  cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path fill='none' stroke='%231e2733' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M2 4l3 3 3-3'/></svg>");
  background-repeat:no-repeat; background-position:right 10px center;
  min-width:220px;
}
.industry-bar select:focus{ outline:2px solid var(--hv); outline-offset:1px; }
.industry-bar .note{
  font-size:12px; color:var(--ink3);
}

/* ==================== 順方向ビュー ==================== */
.view{ display:block; }

.panel{
  background:var(--card);
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:16px 18px;
  margin-bottom:20px;
}
.panel-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:12px; flex-wrap:wrap;
  padding-bottom:12px; margin-bottom:14px;
  border-bottom:1.4px dashed var(--line2);
}
.panel-title{
  font-size:15px; font-weight:900; letter-spacing:.06em; color:var(--ink);
  display:flex; align-items:center; gap:10px;
}
.panel-title .num{
  display:inline-block; min-width:26px; text-align:center;
  padding:2px 8px; border:1.4px solid var(--ink);
  background:var(--hv); color:#fff; border-radius:6px;
  font-size:12px; font-weight:900;
}
.panel-sub{ font-size:12px; color:var(--ink2); }
.panel-sub em{ color:var(--hv); font-style:normal; font-weight:900; }

/* データ項目チップ */
.group{ margin-bottom:14px; }
.group:last-child{ margin-bottom:0; }
.group-label{
  font-size:11px; font-weight:800; letter-spacing:.14em; color:var(--ink2);
  padding:0 0 6px; border-bottom:1px solid var(--line);
  margin-bottom:10px;
}
.chip-list{ display:flex; flex-wrap:wrap; gap:8px; }

.chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 12px 7px 10px;
  border:1.4px solid var(--ink);
  background:#fffdf6;
  color:var(--ink);
  border-radius:999px;
  font-family:var(--jp); font-size:13px; font-weight:700;
  cursor:pointer; user-select:none;
  box-shadow:1.5px 1.5px 0 var(--ink);
  transition:transform .04s ease;
}
.chip:hover{ background:var(--card2); }
.chip:active{ transform:translate(1px,1px); box-shadow:0.5px 0.5px 0 var(--ink); }
.chip .chip-mark{ display:inline-flex; color:var(--ink3); }
.chip.on{
  background:var(--blue-bg);
  border-color:var(--blueink);
  color:var(--blueink);
  box-shadow:1.5px 1.5px 0 var(--blueink);
}
.chip.on .chip-mark{ color:var(--blueink); }
.chip.hint{
  background:var(--ok-bg);
  border-color:var(--ok);
  color:var(--ok);
  box-shadow:1.5px 1.5px 0 var(--ok);
  animation:pulse 1.4s ease-in-out infinite;
}
.chip.hint .chip-mark{ color:var(--ok); }
@keyframes pulse{
  0%,100%{ box-shadow:1.5px 1.5px 0 var(--ok); }
  50%    { box-shadow:1.5px 1.5px 0 var(--ok), 0 0 0 3px rgba(47,138,85,.15); }
}

/* 操作ボタン */
.actions{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  padding-top:14px; margin-top:14px;
  border-top:1.4px dashed var(--line2);
}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  border:1.6px solid var(--ink);
  background:#fffdf6;
  color:var(--ink);
  border-radius:8px;
  padding:8px 14px;
  font-family:var(--jp); font-size:13px; font-weight:800; letter-spacing:.04em;
  cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);
  transition:transform .04s ease;
}
.btn:hover{ background:var(--card2); }
.btn:active{ transform:translate(1px,1px); box-shadow:1px 1px 0 var(--ink); }
.btn-primary{
  background:var(--hv); color:#fff; border-color:var(--ink);
  box-shadow:2px 2px 0 var(--ink);
}
.btn-primary:hover{ background:var(--hv2); }
.btn-ghost{
  border:1.4px solid var(--ink2); color:var(--ink2); background:transparent;
  box-shadow:none; padding:6px 12px; font-size:12px;
}
.btn-ghost:hover{ background:var(--card2); color:var(--ink); }
.sel-count{
  margin-left:auto;
  font-size:12px; color:var(--ink2); font-weight:700; letter-spacing:.08em;
}
.sel-count b{ color:var(--hv); font-size:15px; margin:0 3px; }

/* ==================== サマリバー ==================== */
.summary{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  margin-bottom:14px;
}
.summary .stat{
  display:inline-flex; align-items:center; gap:8px;
  border:1.6px solid var(--ink); background:#fffdf6;
  border-radius:8px; padding:6px 12px;
  box-shadow:2px 2px 0 var(--ink);
}
.summary .stat .n{
  font-size:20px; font-weight:900; line-height:1;
  min-width:18px; text-align:center;
}
.summary .stat .l{
  font-size:11px; color:var(--ink2); letter-spacing:.10em; font-weight:800;
}
.summary .stat.ready  .n{ color:var(--ok); }
.summary .stat.almost .n{ color:var(--blue); }
.summary .stat.lack   .n{ color:var(--ink3); }

/* ==================== カードグリッド ==================== */
.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:16px;
}

.card{
  background:var(--card);
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:14px 16px;
  display:flex; flex-direction:column; gap:10px;
  transition:transform .12s ease;
}
.card.ready{
  background:var(--ok-bg);
  border-color:var(--ok);
  box-shadow:3px 3px 0 var(--ok);
}
.card.almost{
  background:var(--blue-bg);
  border-color:var(--blueink);
  box-shadow:3px 3px 0 var(--blueink);
}
.card.lack{ opacity:.55; }
.card:hover{ transform:translateY(-1px); }

.card-head{ display:flex; flex-direction:column; gap:6px; }
.card-title-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.card-title{
  margin:0; font-size:16px; font-weight:900; letter-spacing:.03em;
  color:var(--ink);
}
.cat{
  display:inline-block;
  padding:2px 9px; border-radius:999px;
  font-size:10px; font-weight:900; letter-spacing:.12em;
  border:1.4px solid var(--ink);
  background:#fffdf6; color:var(--ink);
}
.cat-収益性{ background:#fce9dd; color:#8a3d15; border-color:#8a3d15; }
.cat-安全性{ background:#e0e9f2; color:#1f4267; border-color:#1f4267; }
.cat-効率性{ background:#e8ecf1; color:#3d4d61; border-color:#3d4d61; }
.cat-生産性{ background:#e6efe6; color:#2b5f38; border-color:#2b5f38; }
.cat-成長性{ background:#f1e6ef; color:#5f2b5a; border-color:#5f2b5a; }
.cat-品質  { background:#f9eadb; color:#6f4416; border-color:#6f4416; }

.ind-row{ display:flex; gap:4px; flex-wrap:wrap; }
.ind{
  font-size:10px; font-weight:800; letter-spacing:.06em;
  padding:2px 7px; border-radius:4px;
  background:var(--card2); color:var(--ink2);
  border:1px solid var(--line2);
}
.ind-general{ background:transparent; color:var(--ink3); border-style:dashed; }

.formula{
  font-family:var(--mono);
  font-size:13px; font-weight:600;
  padding:8px 10px;
  background:#fffdf6;
  border:1.4px dashed var(--ink2);
  border-radius:6px;
  color:var(--ink);
  overflow-wrap:break-word;
}
.desc{
  margin:0;
  font-size:12.5px; color:var(--ink2); line-height:1.7;
}

.bench{
  display:flex; gap:8px; align-items:flex-start;
  padding:6px 10px;
  background:var(--warn-bg);
  border:1px solid #d7b566;
  border-radius:6px;
  font-size:11.5px;
}
.bench-label{
  font-weight:900; color:#7a5613; letter-spacing:.08em; flex:none;
}
.bench-body{ color:#7a5613; }

.req{
  padding-top:8px;
  border-top:1px dashed var(--line2);
}
.req-label{
  font-size:10px; font-weight:800; letter-spacing:.14em; color:var(--ink2);
  display:block; margin-bottom:6px;
}
.pills{ display:flex; flex-wrap:wrap; gap:5px; }
.pill{
  display:inline-flex; align-items:center; gap:3px;
  padding:3px 8px;
  font-size:11px; font-weight:700;
  border-radius:999px;
  border:1.2px solid transparent;
}
.pill.have{
  background:var(--blue-bg); color:var(--blueink); border-color:var(--blueink);
}
.pill.need{
  background:#fbe5e0; color:#8a2c22; border-color:#8a2c22;
}
.pill svg{ flex:none; }

.empty{
  padding:40px;
  text-align:center;
  color:var(--ink3);
  border:1.4px dashed var(--line2);
  border-radius:12px;
}

/* ==================== 逆引きビュー ==================== */
.rev-search-box{
  display:flex; align-items:center; gap:10px;
  border:1.6px solid var(--ink);
  background:#fffdf6;
  border-radius:10px;
  padding:8px 12px;
  box-shadow:2px 2px 0 var(--ink);
  margin-bottom:16px;
}
.rev-search-box svg{ color:var(--ink2); flex:none; }
.rev-search-box input{
  flex:1;
  border:none; outline:none; background:transparent;
  font-family:var(--jp); font-size:15px; color:var(--ink);
  padding:6px 0;
}
.rev-search-box input::placeholder{ color:var(--ink3); }

.rev-meta{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; flex-wrap:wrap;
  padding:8px 4px 12px;
  border-bottom:1.4px dashed var(--line2);
  margin-bottom:14px;
}
.rev-meta .echo{ font-size:12px; color:var(--ink2); }
.rev-meta .count-badge{
  font-size:12px; color:var(--ink2); font-weight:700; letter-spacing:.08em;
}
.rev-meta .count-badge b{ color:var(--hv); font-size:15px; margin:0 3px; }

.rev-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(360px,1fr));
  gap:16px;
}
.rev-card{
  background:var(--card);
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:14px 16px;
  display:flex; flex-direction:column; gap:10px;
}
.rev-actions{
  display:flex; gap:10px; padding-top:8px; border-top:1px dashed var(--line2);
}

.rev-empty{
  padding:34px;
  text-align:center;
  border:1.4px dashed var(--ink2);
  border-radius:12px;
  background:#fffdf6;
}
.rev-empty-title{
  font-size:14px; font-weight:900; color:var(--ink); margin-bottom:6px;
}
.rev-empty-body{
  font-size:12px; color:var(--ink2);
}

/* ==================== 用途モード ==================== */
.uc-list{ display:flex; flex-direction:column; gap:18px; }

.uc-section{ display:flex; flex-direction:column; gap:12px; }
.uc-section-head{
  padding:6px 4px 6px;
  border-top:1.6px solid var(--ink);
  padding-top:10px;
  margin-top:8px;
}
.uc-section-entry .uc-section-head{
  border-top:none;
  margin-top:0;
}
.uc-section-title{
  font-size:13px; font-weight:900; letter-spacing:.10em; color:var(--ink);
  display:flex; align-items:center; gap:8px;
}
.uc-section-title::before{
  content:''; display:inline-block; width:6px; height:16px;
  background:var(--hv); border-radius:2px;
}
.uc-section-sub{
  font-size:11.5px; color:var(--ink2); margin-top:2px;
}

/* 入口カード：曖昧語を受け止める */
.uc-entry-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(360px,1fr));
  gap:14px;
}
.uc-card.uc-entry{
  background:#fff6ee;
  border:2px solid var(--hv);
  box-shadow:4px 4px 0 var(--hv);
}
.uc-entry-title{
  font-size:16px; font-weight:900; color:var(--ink);
  line-height:1.4;
}
.uc-cat-entry{
  background:var(--hv); color:#fff; border-color:var(--hv);
}
.uc-entry .uc-goal{
  border-left-color:var(--ink);
  background:#fffdf6;
  font-size:12px;
}
.uc-children{
  display:flex; flex-direction:column; gap:8px;
  padding-top:8px; border-top:1.4px dashed var(--hv2);
}
.uc-child-label{
  font-size:10px; font-weight:900; letter-spacing:.14em; color:var(--hv);
}
.uc-child-list{ display:flex; flex-direction:column; gap:6px; }
.uc-child-link{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:9px 12px;
  border:1.4px solid var(--ink);
  background:#fffdf6; color:var(--ink);
  border-radius:8px;
  font-family:var(--jp); font-size:13px; font-weight:800; text-align:left;
  cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);
  transition:transform .04s ease;
}
.uc-child-link:hover{ background:var(--card2); border-color:var(--hv); color:var(--hv); box-shadow:2px 2px 0 var(--hv); }
.uc-child-link:active{ transform:translate(1px,1px); box-shadow:1px 1px 0 var(--hv); }
.uc-child-link svg{ flex:none; color:var(--hv); }

/* 判断カードの3ゾーン（収入／接続点／支出） */
.uc-axis-zones{
  display:grid;
  grid-template-columns:1fr 1.2fr 1fr;
  gap:14px;
}
@media (max-width:1100px){
  .uc-axis-zones{ grid-template-columns:1fr; }
}
.uc-axis-zone{
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:14px 14px 16px;
  display:flex; flex-direction:column; gap:12px;
  min-height:200px;
}
.uc-axis-zone.axis-income{
  background:#eaf2f8;
  border-color:var(--blueink);
  box-shadow:3px 3px 0 var(--blueink);
}
.uc-axis-zone.axis-expense{
  background:#fbeee9;
  border-color:#8a3d15;
  box-shadow:3px 3px 0 #8a3d15;
}
.uc-axis-zone.axis-joint{
  background:#f2ede1;
  border-color:var(--ink);
  border-width:2px;
  box-shadow:5px 5px 0 var(--ink);
  transform:translateY(-4px);   /* 接続点ゾーンは中央強調 */
}
.uc-axis-head{
  padding-bottom:10px;
  border-bottom:1.4px dashed var(--ink);
  display:flex; flex-direction:column; gap:2px;
  position:relative;
}
.uc-axis-label{
  font-size:15px; font-weight:900; letter-spacing:.04em; color:var(--ink);
}
.axis-income .uc-axis-label{ color:var(--blueink); }
.axis-expense .uc-axis-label{ color:#8a3d15; }
.axis-joint .uc-axis-label{ color:var(--ink); font-size:16px; }
.uc-axis-sub{
  font-size:11px; color:var(--ink2); letter-spacing:.02em;
}
.uc-axis-count{
  position:absolute; top:-2px; right:0;
  font-size:11px; color:var(--ink2); font-weight:800; letter-spacing:.08em;
}
.uc-axis-n{
  display:inline-block; min-width:22px; text-align:center;
  padding:1px 6px; border-radius:4px;
  background:var(--ink); color:var(--hv2);
  font-size:13px; font-weight:900; margin-right:2px;
}
.uc-axis-body{
  display:flex; flex-direction:column; gap:12px;
}
.uc-axis-body .uc-card{
  background:var(--card);
  box-shadow:2px 2px 0 var(--ink);
}
.uc-axis-body .uc-card.uc-hub{
  background:#fffdf6;
  box-shadow:5px 5px 0 var(--ink);
}
.uc-axis-empty{
  padding:24px 14px;
  text-align:center; color:var(--ink3);
  border:1.4px dashed var(--line2); border-radius:8px;
  font-size:12px;
}

/* ハブカード（損益分岐点＝両方の接続点）：一段大きく強調（ブラック基調） */
.uc-card.uc-hub{
  background:#fffdf6;
  border:2.6px solid var(--ink);
  box-shadow:5px 5px 0 var(--ink);
}
.uc-card.uc-hub .uc-title{
  font-size:17px; color:var(--ink);
}

/* 3レバーブロック */
.lever-block{
  padding:10px 12px;
  background:#efe9db;
  border:1.4px dashed var(--ink);
  border-radius:8px;
  display:flex; flex-direction:column; gap:8px;
}
.lever-title{
  font-size:12px; font-weight:900; letter-spacing:.06em; color:var(--ink);
}
.lever-row{
  display:flex; flex-direction:column; gap:4px;
  padding:6px 0;
  border-top:1px dotted var(--line2);
}
.lever-row:first-of-type{ border-top:none; }
.lever-name{
  font-size:12px; font-weight:900; color:var(--ink);
}
.lever-targets{
  display:flex; flex-wrap:wrap; gap:4px;
}
.lever-target{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 9px;
  font-size:11px; font-weight:800;
  background:#fffdf6; color:var(--ink);
  border:1.2px solid var(--ink); border-radius:999px;
  cursor:pointer;
  box-shadow:1.5px 1.5px 0 var(--ink);
}
.lever-target:hover{ background:var(--card2); border-color:var(--ink); color:var(--ink); }
.lever-target svg{ flex:none; color:var(--ink); }
.lever-note{
  font-size:11px; color:var(--ink3); font-style:italic;
}
.uc-card{
  background:var(--card);
  border:1.6px solid var(--ink);
  border-radius:12px;
  box-shadow:3px 3px 0 var(--ink);
  padding:16px 18px;
  display:flex; flex-direction:column; gap:12px;
  transition:box-shadow .3s ease, transform .12s ease;
}
.uc-card.uc-focus{
  box-shadow:5px 5px 0 var(--hv);
  border-color:var(--hv);
}
.uc-head{ display:flex; flex-direction:column; gap:6px; }
.uc-card.collapsible .uc-head{
  cursor:pointer; user-select:none;
  padding:2px 0;
  border-radius:6px;
  transition:background .12s ease;
}
.uc-card.collapsible .uc-head:hover{ background:rgba(30,39,51,.04); }
.uc-title-row{ display:flex; align-items:center; gap:10px; }
.uc-title{
  margin:0; font-size:17px; font-weight:900; letter-spacing:.02em; color:var(--ink);
  flex:1;
}

/* 開閉トグル */
.uc-toggle{
  flex:none;
  width:22px; height:22px;
  border:1.4px solid var(--ink);
  background:#fffdf6;
  border-radius:5px;
  cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0;
  box-shadow:1px 1px 0 var(--ink);
  transition:transform .04s ease;
}
.uc-toggle:hover{ background:var(--card2); }
.uc-toggle-icon{
  font-size:10px; color:var(--ink2);
  transition:transform .2s ease;
  display:inline-block;
}
.uc-card.expanded .uc-toggle-icon{ transform:rotate(90deg); color:var(--hv); }
.uc-card.uc-hub .uc-toggle{ background:var(--ink); border-color:var(--ink); }
.uc-card.uc-hub .uc-toggle-icon{ color:#fff; }

/* 開閉ボディ（詳細部分） */
.uc-body{
  display:none;
  flex-direction:column; gap:12px;
  padding-top:12px;
  margin-top:8px;
  border-top:1.4px dashed var(--line2);
}
.uc-card.expanded .uc-body{ display:flex; }

/* ★選択中カードのフォーカス強調★
   判断カードのみディム対象。入口カード（uc-entry）はディムしない（常に問い返し地図として見せる）
   ※他ルールとの衝突を避けるため opacity は !important。dim/highlightは他のCSSの副作用対象外にする */
.uc-card{ transition:opacity .2s ease; }
.uc-list.has-focus .uc-axis-body .uc-card:not(.expanded){ opacity:.32 !important; }
.uc-list.has-focus .uc-axis-body .uc-card:not(.expanded):hover{ opacity:.75 !important; }
.uc-list.has-focus .uc-card.expanded{ position:relative; z-index:2; opacity:1 !important; }

/* ★常時表示サマリ★ 折りたたんでも「見る指標／集めるデータ」が見える */
.uc-summary{
  display:flex; flex-direction:column; gap:6px;
  padding:8px 10px; margin-top:8px;
  background:#fffdf6;
  border:1.4px solid var(--line2);
  border-radius:6px;
}
.uc-summary-line{
  display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap;
}
.uc-summary-label{
  flex:none;
  font-size:10px; font-weight:900; letter-spacing:.14em; color:var(--ink2);
  padding-top:3px;
  min-width:60px;
}
.uc-summary-pills{ display:flex; flex-wrap:wrap; gap:4px; }

.pill-kpi{
  display:inline-block;
  padding:2px 8px;
  font-size:11px; font-weight:800;
  background:var(--card2); color:var(--ink);
  border:1.2px solid var(--ink); border-radius:999px;
}
.pill-data{
  display:inline-block;
  padding:2px 8px;
  font-size:11px; font-weight:700;
  border-radius:999px;
  border:1.2px solid transparent;
}
.pill-data.need{
  background:#fbe5e0; color:#8a2c22; border-color:#8a2c22;
}
.pill-data.have{
  background:var(--blue-bg); color:var(--blueink); border-color:var(--blueink);
}
.uc-cat{
  display:inline-block;
  padding:3px 10px; border-radius:6px;
  border:1.4px solid var(--ink); background:#fffdf6; color:var(--ink);
  font-size:11px; font-weight:900; letter-spacing:.08em;
  flex:none;
}
.uc-goal{
  margin:0; font-size:12.5px; color:var(--ink2); line-height:1.65;
  padding:8px 10px;
  background:#fffdf6;
  border-left:3px solid var(--hv);
  border-radius:0 6px 6px 0;
}

.uc-kpi-list{
  display:flex; flex-direction:column; gap:8px;
  padding-top:4px;
  border-top:1px dashed var(--line2);
}
.uc-kpi-row{
  display:flex; flex-direction:column; gap:3px;
  padding:8px 10px;
  background:var(--card2);
  border:1px solid var(--line2);
  border-radius:8px;
}
.uc-kpi-head{ display:flex; align-items:center; gap:8px; }
.uc-kpi-name{
  font-size:13px; font-weight:900; color:var(--ink);
}
.uc-kpi-why{
  font-size:11.5px; color:var(--ink2); line-height:1.55;
}

.uc-cond{
  display:flex; align-items:flex-start; gap:8px;
  padding:6px 10px; border-radius:6px;
  font-size:11.5px; line-height:1.55;
}
.uc-cond-label{
  flex:none; font-weight:900; letter-spacing:.10em; font-size:10px;
  padding:1px 7px; border-radius:4px; color:#fff;
}
.uc-cond.ok{ background:var(--ok-bg); color:#1a4a2f; }
.uc-cond.ok .uc-cond-label{ background:var(--ok); }
.uc-cond.bad{ background:var(--bad-bg); color:#7a2519; }
.uc-cond.bad .uc-cond-label{ background:var(--bad); }

.uc-actions{
  display:flex; gap:8px; flex-wrap:wrap;
  padding-top:8px; border-top:1px dashed var(--line2);
}
.uc-actions .btn{ font-size:12px; padding:7px 12px; }
.uc-actions svg{ margin-right:2px; }

/* ==================== 締めブロック（会話の閉じ方） ==================== */
.uc-close{
  padding:10px 12px;
  background:#faf6ec;
  border:1.4px solid var(--ink);
  border-left:4px solid var(--ink);
  border-radius:6px;
  display:flex; flex-direction:column; gap:6px;
}
.uc-close-title{
  font-size:12px; font-weight:900; letter-spacing:.08em; color:var(--ink);
  padding-bottom:4px;
  border-bottom:1px dashed var(--line2);
}
.uc-close-list{
  margin:0; padding:0 0 0 4px; list-style:none;
  display:flex; flex-direction:column; gap:6px;
  font-size:12px; line-height:1.55; color:var(--ink);
}
.uc-close-list li{
  padding-left:6px;
  display:flex; align-items:flex-start; gap:6px; flex-wrap:wrap;
}
.uc-close-list li b{ font-weight:800; }
.uc-close-tag{
  flex:none;
  display:inline-block;
  padding:1px 8px; border-radius:4px;
  font-size:10px; font-weight:900; letter-spacing:.10em; color:#fff;
}
.uc-close-tag.ok  { background:var(--ok); }
.uc-close-tag.bad { background:var(--bad); }
.uc-close-tag.mid { background:var(--warn); }

/* ==================== KPIカード上の「使う場面」バッジ ==================== */
.related-uc{
  padding-top:8px;
  border-top:1px dashed var(--line2);
  display:flex; flex-direction:column; gap:4px;
}
.related-uc-label{
  font-size:10px; font-weight:800; letter-spacing:.14em; color:var(--ink2);
}
.related-uc-list{
  display:flex; flex-wrap:wrap; gap:4px;
}
.uc-badge{
  display:inline-block;
  padding:3px 8px;
  font-size:11px; font-weight:700;
  background:#fce9dd; color:#8a3d15;
  border:1.2px solid #8a3d15; border-radius:999px;
  cursor:pointer;
  transition:transform .04s ease;
}
.uc-badge:hover{ background:#f9d9c2; }
.uc-badge:active{ transform:translate(1px,1px); }

/* ==================== やりたいこと追加バー ==================== */
.uc-add-bar{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:12px 14px;
  background:var(--card);
  border:1.4px dashed var(--ink);
  border-radius:10px;
  margin-bottom:16px;
}
.uc-add-note{
  font-size:12px; color:var(--ink2); flex:1;
}

/* ==================== モーダル（やりたいこと追加） ==================== */
.modal{
  position:fixed; inset:0;
  background:rgba(30,39,51,.55);
  display:none;
  align-items:center; justify-content:center;
  z-index:9998;
  padding:20px;
}
.modal[style*="flex"]{ display:flex !important; }

.modal-inner{
  background:var(--card);
  border:2px solid var(--ink);
  border-radius:12px;
  box-shadow:6px 6px 0 var(--ink);
  padding:20px 22px;
  max-width:760px; width:100%; max-height:88vh;
  overflow-y:auto;
  display:flex; flex-direction:column; gap:14px;
}
.modal-head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:10px;
  border-bottom:1.6px solid var(--ink);
}
.modal-title{
  margin:0;
  font-size:17px; font-weight:900; letter-spacing:.06em; color:var(--ink);
}
.modal-close{
  background:transparent; border:none;
  font-size:22px; font-weight:900; color:var(--ink);
  cursor:pointer; line-height:1;
  padding:2px 10px; border-radius:6px;
}
.modal-close:hover{ background:var(--card2); }

.modal-body{ display:flex; flex-direction:column; gap:14px; }
.modal-field{ display:flex; flex-direction:column; gap:5px; }
.modal-field label{
  font-size:11px; font-weight:800; letter-spacing:.10em; color:var(--ink2);
}
.modal-field textarea{
  width:100%;
  padding:10px 12px;
  border:1.4px solid var(--ink);
  border-radius:6px;
  background:#fffdf6;
  font-family:var(--jp); font-size:13px;
  color:var(--ink);
  resize:vertical;
  min-height:90px;
  box-shadow:1.5px 1.5px 0 var(--ink);
}
.modal-field textarea:focus{ outline:2px solid var(--hv); outline-offset:1px; }
#add-prompt-output{
  min-height:200px;
  font-family:var(--mono); font-size:11.5px; line-height:1.55;
  background:#fffef2;
}

.modal-actions{
  display:flex; gap:8px; flex-wrap:wrap;
}
.modal-note{
  padding:8px 10px;
  background:#faf6ec;
  border:1px solid var(--line2);
  border-radius:6px;
  font-size:11.5px; color:var(--ink2); line-height:1.55;
}
.modal-note code{
  background:#fffdf6; padding:1px 5px; border-radius:3px;
  font-family:var(--mono); font-size:11px; border:1px solid var(--line2);
}

/* モーダル内・業種チップ */
.industry-chips{
  display:flex; flex-wrap:wrap; gap:5px;
}
.ind-chip{
  padding:5px 12px;
  border:1.4px solid var(--ink); background:#fffdf6; color:var(--ink);
  border-radius:999px;
  font-family:var(--jp); font-size:12px; font-weight:700;
  cursor:pointer;
  box-shadow:1.5px 1.5px 0 var(--ink);
}
.ind-chip:hover{ background:var(--card2); }
.ind-chip.on{
  background:var(--blue-bg); color:var(--blueink); border-color:var(--blueink);
  box-shadow:1.5px 1.5px 0 var(--blueink);
}

/* ==================== トースト ==================== */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(60px);
  background:var(--ink); color:#fffdf6;
  padding:10px 18px;
  border-radius:8px;
  font-size:13px; font-weight:700;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  z-index:9999;
}
.toast.show{
  opacity:1; transform:translateX(-50%) translateY(0);
}

/* ==================== レスポンシブ ==================== */
@media (max-width:768px){
  .wrap{ padding:14px; }
  header.top{ gap:12px; }
  .brand .mark{ font-size:22px; }
  .mode-btn{ padding:8px 14px; font-size:12px; }
  .cards-grid, .rev-list{ grid-template-columns:1fr; }
  .uc-entry-grid, .uc-decision-grid{ grid-template-columns:1fr; }
  .industry-bar select{ min-width:180px; width:100%; }
}
