@import url("tokens.css");
/* フレームワーク大全 モック。読み物＝低密度。記憶点は「構造図の記号」。色は分野（目標・組織＝青緑）だけに使う。
   data-style で見た目の方向を3案切り替え：zukan（図鑑）／note（研究ノート）／tool（道具） */
:root{
  --accent:#1e6b6f; --accent-weak:#e3f0ef; --accent-fg:#fff;
  --field:#1e6b6f;            /* 分野「目標・組織」の色。分野ごとに1色 */
  --field-fg:#eef6f4;
  --bg:var(--n1); --surface:#fff; --hero-bg:var(--n2); --hero-fg:var(--n12);
  --f-head:"Noto Sans JP","Hiragino Sans",system-ui,sans-serif;
  --f-body:"Noto Sans JP","Hiragino Sans",system-ui,sans-serif;
  --h1:44px; --lede:22px; --rule:var(--n5);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--accent:#6cc3c0;--accent-weak:#16302f;--field:#2f8f8f;--field-fg:#0e1113;--surface:var(--n2)}}
:root[data-theme="dark"]{--accent:#6cc3c0;--accent-weak:#16302f;--field:#2f8f8f;--field-fg:#0e1113;--surface:var(--n2)}

/* 図鑑：色の帯の上に記号を大きく。地は少し温かい灰 */
[data-style="zukan"]{--bg:#ecebe6;--surface:#f6f5f1;--hero-bg:var(--field);--hero-fg:var(--field-fg);--h1:52px}
@media (prefers-color-scheme: dark){:root[data-style="zukan"]:not([data-theme="light"]){--bg:var(--n1);--surface:var(--n2)}}
/* 研究ノート：白地、明朝の大見出し、細い罫 */
[data-style="note"]{--bg:#fff;--surface:#fff;--hero-bg:#fff;--hero-fg:var(--n12);--f-head:"Noto Serif JP","Hiragino Mincho ProN",serif;--accent:#22406e;--accent-weak:#e8edf6;--h1:48px}
@media (prefers-color-scheme: dark){:root[data-style="note"]:not([data-theme="light"]){--bg:var(--n1);--surface:var(--n1);--hero-bg:var(--n1);--accent:#93b2e6}}
/* 道具：ニュートラル、端正、小さめの見出し */
[data-style="tool"]{--bg:var(--n1);--surface:var(--n1);--hero-bg:var(--n1);--hero-fg:var(--n12);--f-head:"Geist","Noto Sans JP",system-ui,sans-serif;--h1:36px;--lede:19px}

body{background:var(--bg);font-family:var(--f-body);font-size:16px;line-height:1.85}
.inner{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
a{color:var(--accent)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.top .inner{display:flex;align-items:center;gap:16px;min-height:56px;flex-wrap:wrap}
.brand{font-weight:700;color:var(--n12);text-decoration:none;font-feature-settings:"palt";letter-spacing:.02em}
.tag{color:var(--n9);font-size:13px}
.style-switch{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--n9)}
.style-switch button{border:1px solid var(--n6);background:var(--surface);border-radius:999px;padding:4px 10px;cursor:pointer;min-height:32px}
.style-switch button[aria-pressed="true"]{background:var(--n12);color:var(--n1);border-color:var(--n12)}

/* ---- 詳細の最初の画面：構造図 → 一文の定義 → 何に使うか → 根拠ラベル ---- */
.hero{background:var(--hero-bg);color:var(--hero-fg)}
.hero-grid{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center;padding-block:56px}
.hero-sym{display:grid;place-items:center;width:200px;height:200px;border-radius:24px;background:color-mix(in srgb,currentColor 8%,transparent)}
.sym.big{width:120px;height:120px}
[data-style="note"] .hero-sym{background:none;border:1px solid var(--rule);color:var(--accent)}
[data-style="tool"] .hero-sym{width:120px;height:120px;border-radius:16px;background:var(--n3);color:var(--accent)}
[data-style="tool"] .hero-grid{grid-template-columns:120px 1fr;padding-block:40px}
[data-style="tool"] .sym.big{width:72px;height:72px}
.kicker{margin:0 0 4px;font-size:13px;font-weight:600;letter-spacing:.04em;opacity:.85}
h1{font-family:var(--f-head);font-size:var(--h1);line-height:1.15;margin:0 0 12px;font-weight:700}
h1 .en{display:block;font-size:15px;font-weight:500;opacity:.75;margin-top:6px;letter-spacing:0;font-family:var(--f-body)}
.lede{font-size:var(--lede);line-height:1.6;margin:0 0 20px;max-width:30em;font-feature-settings:"palt"}
[data-style="note"] .lede{font-family:var(--f-head);font-weight:600}
.meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;opacity:.9;align-items:center}
.meter{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.meter .bars{display:inline-flex;gap:3px}
.meter i{width:14px;height:8px;border-radius:2px;background:color-mix(in srgb,currentColor 25%,transparent)}
.meter i.on{background:currentColor}
.reason{flex-basis:100%;font-size:13px;opacity:.85;margin:0}

/* 30秒でわかる：常に表示 */
.quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:-1px;border-bottom:1px solid var(--rule)}
.q{padding:24px 24px 28px 0}
.q + .q{padding-left:24px;border-left:1px solid var(--rule)}
.q h3{font-size:13px;margin:0 0 6px;color:var(--accent);letter-spacing:.04em}
.q p{margin:0;font-size:15px;line-height:1.75}

/* タブ：詳細への入口。スマホは横スクロール */
.tabs-wrap{padding-bottom:64px}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--rule);margin:32px 0 0;scrollbar-width:none;position:sticky;top:calc(56px + env(safe-area-inset-top,0px));background:var(--bg);z-index:4}
.tabs button{flex:none;border:0;background:none;padding:12px 16px;min-height:44px;font-size:15px;color:var(--n11);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button:hover{color:var(--n12);background:var(--n3)}
.tabs button[aria-selected="true"]{color:var(--n12);font-weight:600;border-bottom-color:var(--accent)}
.prose{max-width:40em;padding-top:28px}
.prose h3{font-size:18px;margin:28px 0 8px;font-family:var(--f-head)}
.prose li{margin:4px 0}
.prose p{margin:0 0 14px}
sup.fn a{font-size:11px;text-decoration:none;padding:0 2px;border-radius:4px;background:var(--accent-weak)}
.notes{max-width:40em;margin-top:40px;border-top:1px solid var(--rule);padding-top:16px;font-size:13px;color:var(--n11)}
.notes h2{font-size:15px;margin:0 0 8px}
.notes li{margin:2px 0;word-break:break-all}
.notes .back{text-decoration:none;margin-left:4px}
.prep{border:1px dashed var(--n7);border-radius:var(--r-m);padding:16px;color:var(--n11)}

/* ---- トップ ---- */
.home .inner{padding-block:64px 40px}
.home-h{font-size:clamp(34px,5vw,var(--h1));line-height:1.15;margin-bottom:12px}
.facts{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px}
.facts li{border:1px solid var(--rule);border-radius:999px;padding:4px 12px;font-size:14px;background:var(--surface)}
.lede-s{font-size:14px;margin:0}
.home{background:var(--bg);color:var(--n12)}
.hero a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
.meter{white-space:nowrap}
.list-wrap{padding-bottom:64px}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.search{flex:1 1 280px}
.search input{width:100%;font:inherit;font-size:15px;padding:10px 14px;border:1px solid var(--n6);border-radius:var(--r-m);background:var(--surface);color:var(--n12);min-height:44px}
.search input:focus{outline:2px solid var(--accent);outline-offset:0}
.seg{display:inline-flex;border:1px solid var(--n6);border-radius:var(--r-m);overflow:hidden;background:var(--surface)}
.seg button{border:0;background:none;padding:8px 14px;min-height:44px;cursor:pointer;font-size:14px;color:var(--n11)}
.seg button + button{border-left:1px solid var(--n6)}
.seg button[aria-pressed="true"]{background:var(--n12);color:var(--n1)}
.count{font-size:13px;color:var(--n9);margin:16px 0 4px}
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.rows li{border-bottom:1px solid var(--rule)}
.row{display:grid;grid-template-columns:40px minmax(0,14em) minmax(0,1fr) auto;gap:20px;align-items:center;padding:16px 8px;color:var(--n12);text-decoration:none}
.row:hover{background:var(--surface)}
.row .sym{color:var(--field)}
[data-style="note"] .row .sym,[data-style="tool"] .row .sym{color:var(--accent)}
.nm{font-weight:600;font-size:16px;line-height:1.4;font-feature-settings:"palt"}
.nm small{display:block;font-weight:400;font-size:12px;color:var(--n9)}
.one{font-size:14px;color:var(--n11);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;color:var(--n11)}
.use{color:var(--accent)}
.empty{color:var(--n11);padding:24px 8px}
.foot{border-top:1px solid var(--rule);color:var(--n9);font-size:13px}
.foot .inner{padding-block:24px}

@media (max-width:760px){
  :root{--h1:34px;--lede:18px}
  .hero-grid,[data-style="tool"] .hero-grid{grid-template-columns:1fr;gap:20px;padding-block:32px}
  .hero-sym{width:96px;height:96px;border-radius:18px}.sym.big{width:64px;height:64px}
  [data-style="tool"] .hero-sym{width:72px;height:72px}[data-style="tool"] .sym.big{width:44px;height:44px}
  .quick{grid-template-columns:1fr}
  .q,.q + .q{padding:16px 0;border-left:0;border-top:1px solid var(--rule)}
  .row{grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:"sym nm side" ". one one";gap:4px 12px;align-items:start}
  .row .sym{grid-area:sym}.row .nm{grid-area:nm}.row .side{grid-area:side}.row .one{grid-area:one}
  .row .sym{width:32px;height:32px}
  .style-switch span{display:none}
  .tag{display:none}
}

/* ---- 本番：About・テンプレなど、文章だけのページ ---- */
.page{max-width:44em;margin:0 auto;padding:48px max(16px,env(safe-area-inset-left,0px)) 64px}
.page h1{font-size:34px;margin-bottom:24px}
.page h2{font-size:20px;margin:32px 0 8px;font-family:var(--f-head)}
.page p,.page li{max-width:40em}
.page .meta{opacity:1;color:var(--n11)}
.tbl{overflow-x:auto;margin:12px 0}
.tbl table{border-collapse:collapse;width:100%;font-size:14px;background:var(--surface)}
.tbl th,.tbl td{border:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top}
.note{font-size:13px;color:var(--n11)}
.prep{margin-top:8px}
.tbl th:first-child,.tbl td:first-child{white-space:nowrap}
.kind{border:1px solid currentColor;border-radius:999px;padding:0 10px;font-size:12px}

/* 根拠の強さ：バーをやめ、言葉だけを固定幅の列に（段階は文字の濃さと太さ） */
.ev{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;font-size:13px;color:var(--n9);font-weight:500}
.ev-l{font-size:11.5px;color:var(--n9);font-weight:400}
.ev[data-k="3"]{color:var(--n12);font-weight:600}.ev[data-k="2"]{color:var(--n11);font-weight:600}.ev[data-k="1"]{color:var(--n9);font-weight:500}
.row{grid-template-columns:40px 15em minmax(0,1fr) 7.5em;min-height:72px}
.row .side{align-items:flex-start}
.one{display:block;-webkit-line-clamp:unset;white-space:normal}
.nm .use{display:inline-block;margin-left:8px;font-size:11.5px;font-weight:500;color:var(--accent);border:1px solid currentColor;border-radius:999px;padding:0 6px;vertical-align:2px}
@media (max-width:760px){.row{grid-template-columns:32px minmax(0,1fr) auto;min-height:0}}

/* 用途（分野）の色：記号のタイル・詳細の色帯・絞り込みで同じ体系 */
[data-field="goal"]{--field:#1e6b6f}[data-field="think"]{--field:#35589c}[data-field="strategy"]{--field:#6e4796}[data-field="market"]{--field:#a8502a}
[data-field="decide"]{--field:#7d6418}[data-field="talk"]{--field:#2c7449}[data-field="team"]{--field:#9c3a58}[data-field="learn"]{--field:#4c606c}
[data-field]{--field-fg:#f5f7f6}
.tile{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--field);color:var(--field-fg)}
.row{grid-template-columns:48px 15em minmax(0,1fr) 9.5em;min-height:80px}
.row .tile .sym{color:inherit}
.side .fld{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--n11)}
.side .fld::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--field)}
.ev{font-size:14px}.ev[data-k="1"]{color:var(--n11)}
.one{color:var(--n12)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.chips button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--n12);font:inherit;font-size:13px;cursor:pointer}
.chips button i{width:8px;height:8px;border-radius:2px;background:var(--field)}
.chips button:hover{background:var(--n3)}
.chips button[aria-pressed="true"]{background:var(--n12);color:var(--n1);border-color:var(--n12)}
.chips button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* 詳細：定義の1文を色帯の外に大きく置く */
.def{font-size:24px;line-height:1.6;font-weight:600;margin-block:0;padding-block:32px 28px;font-feature-settings:"palt";text-wrap:pretty}
.def{max-width:1080px}
.q p{font-size:14px}
@media (max-width:760px){.row{grid-template-columns:40px minmax(0,1fr) auto}.tile{width:40px;height:40px;border-radius:10px}.def{font-size:19px;padding-block:24px 20px}.side .fld{display:none}}
.hero .ev,.hero .ev[data-k]{color:var(--hero-fg);font-weight:600}.hero .ev-l{color:var(--hero-fg);opacity:.8}
[data-style="zukan"] .q h3{color:var(--field)}
.side .fld::before{display:none}
.chips{gap:6px}.chips button{padding:0 10px}
.hook{margin:0 0 6px;font-size:20px;line-height:1.5;font-weight:500;font-feature-settings:"palt";text-wrap:balance;max-width:28em}
@media (max-width:760px){.hook{font-size:16px}}

/* 書体（2026-10-23 CC×CX：比較の結果 E を採用）
   明朝（Zen Old Mincho）は「名前・問い・定義」の3か所だけ。ほかはすべて IBM Plex Sans JP */
:root{--f-body:"IBM Plex Sans JP","Hiragino Sans",system-ui,sans-serif;--f-ui:var(--f-body);--f-head:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif}
body{font-family:var(--f-body)}
.detail h1,.hook,.def{font-family:var(--f-head)}
.detail h1{font-weight:700}.hook{font-weight:600}.def{font-weight:700;line-height:1.65}
.home-h,.page h1,.page h2,.prose h3,.nm,.q h3{font-family:var(--f-body)}
@media (max-width:760px){.def{font-size:18px}}
