/* ============================================================
   Menta!
   色は「意味」にだけ使う。操作できるものはインク色。
   ============================================================ */
:root{
  --ink:#16202B; --ink-2:#3A4A5C; --dim:#71829A; --faint:#9CAABC;
  --paper:#FFFFFF; --ground:#EEF1F5; --ground-2:#E4E9EF; --line:#D7DEE7;
  --t-str:#B23A2E; --t-dre:#C97A05; --t-ana:#2C6A8C; --t-fre:#33805B;
  --nav-h:64px; --logo:'Vampiro One';
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;padding:0;background:var(--ground);color:var(--ink);
  font-family:"Sawarabi Gothic",system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  touch-action:manipulation;overscroll-behavior-y:none}
/* 文字の長押し選択もアプリらしくしない。入力欄だけ許可する */
body{-webkit-user-select:none;user-select:none}
input,textarea,select,.doc-b{-webkit-user-select:text;user-select:text}
body.lock{overflow:hidden}
svg{display:block}
a{color:inherit;text-decoration:none}

.app{max-width:460px;margin:0 auto;min-height:100vh;padding:0 15px calc(var(--nav-h) + 28px)}
.wm{font-family:var(--logo),cursive;color:var(--ink);line-height:1;white-space:nowrap;
  font-size:25px;letter-spacing:.01em}
.hdr{position:sticky;top:0;z-index:6;display:flex;align-items:center;padding:15px 0 11px;
  background:var(--ground)}
/* 下に少しだけぼかしを置いて、文字が切れる線をやわらげる */
.hdr::after{content:'';position:absolute;left:-15px;right:-15px;top:100%;height:12px;
  background:linear-gradient(180deg,var(--ground),rgba(238,241,245,0));pointer-events:none}

/* Vampiro One の M は左に張り出すので、少しだけ内へ寄せる */
.hdr .wm{padding-left:3px}

h2.pt{font-size:19px;margin:2px 0 15px;letter-spacing:.09em;font-weight:400}
h2.pt em{font-style:normal;font-family:"Roboto Mono",monospace;font-size:14px;color:var(--dim);
  letter-spacing:0;margin-left:7px}
.blank{padding:56px 0;text-align:center;font-size:12.5px;color:var(--faint);letter-spacing:.1em}
.blank.tall{padding:34vh 0}
main > .prof:first-child,
main > .sec:first-child,
main > .search:first-child,
main > .rows:first-child,
main > .go:first-child,
main > .dgrid:first-child{margin-top:6px}

.go{width:100%;border:0;border-radius:3px;background:var(--ink);color:#fff;font-family:inherit;
  font-size:13px;padding:12px;cursor:pointer;letter-spacing:.1em;display:flex;
  align-items:center;justify-content:center;gap:8px}
.go:active{background:#000}
.go.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);padding:11px}
.go[disabled]{opacity:.45;pointer-events:none}
.go:focus-visible{outline:2px solid var(--t-str);outline-offset:2px}

.rows{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper);
  margin-bottom:12px}
.row{display:flex;align-items:center;gap:11px;width:100%;background:var(--paper);border:0;
  border-bottom:1px solid var(--line);padding:14px 15px;font-family:inherit;text-align:left;
  color:var(--ink)}
.row:last-child{border-bottom:0}
button.row{cursor:pointer}
button.row:active{background:var(--ground-2)}
.row .nm{font-size:14.5px;letter-spacing:.03em}
.row .mt{font-size:11.5px;color:var(--dim);margin-top:4px;letter-spacing:.02em}
.row .rt{margin-left:auto;display:flex;align-items:center;gap:9px}
.chev{color:var(--faint);flex:none}

.chip{font-size:10px;letter-spacing:.06em;padding:4px 7px;border-radius:2px;
  border:1px solid currentColor;flex:none;white-space:nowrap}
.chip.str{color:var(--t-str)} .chip.dre{color:var(--t-dre)}
.chip.ana{color:var(--t-ana)} .chip.fre{color:var(--t-fre)}
.chip.non{color:var(--faint);border-style:dashed}
.chip.mo{color:var(--ink-2)}

/* ── 小見出し ── */
.sec{font-size:10.5px;letter-spacing:.2em;color:var(--dim);margin:0 2px 9px;
  display:flex;align-items:center;gap:10px}
.sec::after{content:'';flex:1;height:1px;background:var(--line)}
.lead{font-size:12.5px;color:var(--dim);line-height:1.9;letter-spacing:.02em;margin:-6px 2px 18px}
.hdr .back{margin-right:9px;color:var(--dim);display:grid;place-items:center;
  width:28px;height:28px;margin-left:-6px}
.hdr .back:active{color:var(--ink)}

/* ── 検索 ── */
.search{display:flex;align-items:center;gap:9px;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:0 12px;margin-bottom:10px;
  color:var(--faint)}
.search:focus-within{border-color:var(--ink);color:var(--dim)}
.search input{flex:1;border:0;background:none;font-family:inherit;font-size:16px;
  color:var(--ink);padding:13px 0;letter-spacing:.03em;-webkit-appearance:none;appearance:none}
.search input::placeholder{color:var(--faint)}
.search input:focus{outline:0}
.search input::-webkit-search-cancel-button{display:none}
.search .clr{border:0;background:none;color:var(--faint);cursor:pointer;padding:6px;
  margin-right:-6px;display:grid;place-items:center}

/* ── 診断の記録 ── */
.sec .n{font-family:"Roboto Mono",monospace;font-size:10.5px;letter-spacing:0;color:var(--faint)}
.rec{margin-bottom:22px}
.rec.old{opacity:.62}
.rec-h{display:flex;align-items:center;gap:9px;margin:0 2px 8px}
.rec-d{font-family:"Roboto Mono",monospace;font-size:11.5px;color:var(--dim);letter-spacing:.06em}
.rec-tag{font-size:9.5px;letter-spacing:.1em;color:var(--paper);background:var(--ink);
  border-radius:2px;padding:3px 6px}
.rec .verdict{margin-bottom:9px}
.rec .verdict .ty{margin-top:0}
.rec .card{margin-bottom:0}

/* リンクとして使うボタン */
a.go{text-decoration:none}

/* ── マイページ ── */
.prof{margin:0 0 22px;border:1px solid var(--line);border-radius:4px;background:var(--paper);
  overflow:hidden}
.prof-r{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;
  padding:14px 15px;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;
  position:relative}
.prof-r:last-child{border-bottom:0}
.prof-r:active{background:var(--ground-2)}
.prof-r dt{grid-column:1;font-size:10.5px;letter-spacing:.16em;color:var(--dim);margin:0}
.prof-r dd{grid-column:1;margin:0;font-size:15px;letter-spacing:.03em;line-height:1.7;
  padding-top:5px;word-break:break-word}
.prof-r .none{color:var(--faint);font-size:13px;letter-spacing:.06em}
.prof-r .how{display:inline-block;font-size:11.5px;color:var(--dim);letter-spacing:.03em;
  margin-left:10px}
/* プロフィールの行では、コアバリューと同じ大きさに揃える */
.prof-r .chip{font-size:12.5px;padding:5px 9px;letter-spacing:.04em;border-radius:3px}
.prof-r .prof-go{grid-column:2;grid-row:1 / span 2;width:8px;height:8px;flex:none;
  border-right:1.6px solid var(--faint);border-bottom:1.6px solid var(--faint);
  transform:rotate(-45deg)}
.prof-r.wide dd{white-space:pre-wrap}
.prof-r:not(.wide) dd{white-space:normal}
a.prof-r{text-decoration:none}
.prof-r.static{cursor:default}
.prof-r.static:active{background:var(--paper)}
.prof-r dd.mask{font-family:"Roboto Mono",monospace;letter-spacing:.14em;color:var(--dim);
  font-size:14px}
.logout{margin:22px 0 0}
.logout .go{color:var(--t-str);border-color:var(--line)}
.logout .go:active{background:var(--ground-2)}

.linkish{border:0;background:none;font-family:inherit;font-size:14.5px;letter-spacing:.03em;
  color:var(--t-str);cursor:pointer;padding:0;text-align:left}
.row.as-row{padding:14px 15px}
.ver{font-family:"Roboto Mono",monospace;font-size:10px;letter-spacing:.14em;color:var(--faint);
  text-align:center;margin:26px 0 6px}

/* ══ ホーム ══ */
.sc-en{font-family:"Roboto Mono",monospace;font-size:10px;letter-spacing:.24em;color:var(--dim);
  display:flex;align-items:center;gap:11px;margin:0 2px 10px}
.sc-en::after{content:'';flex:1;height:1px;background:var(--line)}

.goal{display:block;position:relative;background:var(--ink);color:#fff;border-radius:5px;
  padding:18px 40px 17px 17px;margin-bottom:2px}
.goal:active{background:#0d1620}
.goal .k{display:block;font-family:"Roboto Mono",monospace;font-size:9.5px;letter-spacing:.24em;
  color:rgba(255,255,255,.5)}
.goal .t{display:block;font-size:17px;line-height:1.75;letter-spacing:.03em;margin-top:11px}
.goal .s{display:block;font-size:11.5px;letter-spacing:.04em;margin-top:9px;
  color:rgba(255,255,255,.6)}
.goal.none .t{font-size:15px;color:rgba(255,255,255,.72)}
.goal .arw{position:absolute;right:17px;top:20px;width:8px;height:8px;
  border-right:1.6px solid rgba(255,255,255,.45);border-bottom:1.6px solid rgba(255,255,255,.45);
  transform:rotate(-45deg)}

.blank.sm{padding:30px 0;font-size:12px}
.blank-btn{width:100%;border:1px dashed var(--line);background:var(--paper);border-radius:4px;
  font-family:inherit;font-size:13px;color:var(--dim);padding:20px;cursor:pointer;letter-spacing:.06em}
.blank-btn:active{background:var(--ground-2)}
.act-row.card-row{background:var(--paper);padding:14px 15px;border-bottom:1px solid var(--line)}
.act-row.card-row:last-child{border-bottom:0}
.act-from{font-family:"Roboto Mono",monospace;font-size:10px;color:var(--faint);
  letter-spacing:.1em;margin:10px 3px 0}
.linkrow2{display:block;width:100%;margin-top:10px;border:1px solid var(--line);border-radius:3px;
  background:var(--paper);font-size:12.5px;letter-spacing:.06em;padding:13px;text-align:center;
  color:var(--ink)}
.linkrow2:active{background:var(--ground-2)}

.ch{display:flex;align-items:center;gap:14px;width:100%;background:var(--paper);
  border-bottom:1px solid var(--line);padding:15px;color:var(--ink)}
.ch:last-child{border-bottom:0}
.ch:active{background:var(--ground-2)}
.ch .no{font-family:"Roboto Mono",monospace;font-size:12px;color:var(--faint);flex:none;width:1.7em}
.ch .ti{flex:1;font-size:14px;line-height:1.6;letter-spacing:.03em}
.ch .arw{width:7px;height:7px;flex:none;border-right:1.5px solid var(--faint);
  border-bottom:1.5px solid var(--faint);transform:rotate(-45deg)}

/* ══ 教材の章 ══ */
/* ヘッダのすぐ下に貼り付く */
.tocwrap{position:sticky;top:51px;z-index:7;margin:0 -15px 18px;padding:2px 15px 9px;
  background:var(--ground)}
.tocwrap::after{content:'';position:absolute;left:0;right:0;top:100%;height:10px;
  background:linear-gradient(180deg,var(--ground),rgba(238,241,245,0));pointer-events:none}
.toc{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:12px;
  letter-spacing:.08em;color:var(--dim);padding:7px 11px 7px 9px;
  border:1px solid var(--line);border-radius:3px;background:var(--paper)}
.toc svg{width:13px;height:13px}
.toc:active{color:var(--ink);background:var(--ground-2)}

.chsec{display:flex;align-items:center;gap:9px;margin:34px 0 14px;color:var(--ink)}
.chsec svg{flex:none}
.chsec .en{font-family:"Roboto Mono",monospace;font-size:9.5px;letter-spacing:.22em;color:var(--faint)}
.chsec .ja{font-size:12.5px;letter-spacing:.12em}
.chsec::after{content:'';flex:1;height:1px;background:var(--line)}

.theme{font-size:15.5px;line-height:1.95;letter-spacing:.04em;margin:0;
  padding-left:13px;border-left:2px solid var(--ink)}

.learn-item{display:grid;grid-template-columns:2em 1fr;gap:0 12px;margin-bottom:26px}
.learn-item:last-of-type{margin-bottom:6px}
.learn-item .n{font-family:"Roboto Mono",monospace;font-size:10.5px;color:var(--faint);
  letter-spacing:.06em;padding-top:6px}
.learn-item h3{grid-column:2;margin:0;font-size:15px;font-weight:400;letter-spacing:.05em;
  line-height:1.65}
.learn-item p{grid-column:2;margin:9px 0 0;font-size:13.5px;line-height:2.05;letter-spacing:.03em;
  color:var(--ink-2)}

.case-item{font-size:13.5px;line-height:2.05;letter-spacing:.03em;color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:14px 15px;
  margin-bottom:8px}
.case-item:last-of-type{margin-bottom:0}

.todo{display:flex;flex-direction:column;gap:8px}
.todo button{display:flex;align-items:flex-start;gap:13px;width:100%;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:15px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--ink)}
.todo button:active{background:var(--ground-2)}
.todo .box{width:20px;height:20px;border:1.7px solid var(--line);border-radius:50%;flex:none;
  display:grid;place-items:center;color:transparent}
.todo button.on{border-color:var(--ink)}
.todo button.on .box{background:var(--ink);border-color:var(--ink);color:#fff}
.todo .tx{font-size:14px;line-height:1.75;letter-spacing:.03em}
.todo button.on .tx{color:var(--dim)}

.checks{border-top:1px solid var(--line)}
.checks button{display:flex;align-items:flex-start;gap:12px;width:100%;background:none;border:0;
  border-bottom:1px solid var(--line);padding:14px 3px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--ink)}
.checks button:active{background:var(--ground-2)}
.checks .box{width:16px;height:16px;border:1.5px solid var(--faint);border-radius:2px;flex:none;
  margin-top:2px;display:grid;place-items:center;color:transparent}
.checks button.on .box{background:var(--ink);border-color:var(--ink);color:#fff}
.checks .tx{font-size:13px;line-height:1.85;letter-spacing:.03em;color:var(--ink-2)}
.checks button.on .tx{color:var(--faint)}

.prog{font-family:"Roboto Mono",monospace;font-size:10.5px;color:var(--faint);
  letter-spacing:.06em;margin:11px 3px 0}

/* ── ボトムナビ ── */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:9;background:rgba(255,255,255,.97);
  border-top:1px solid var(--line);backdrop-filter:blur(10px);
  padding-bottom:env(safe-area-inset-bottom)}
.nav .in{max-width:460px;margin:0 auto;width:100%;height:var(--nav-h);
  display:grid;grid-template-columns:repeat(5,1fr)}
.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  color:var(--faint);padding:6px 0 8px;position:relative}
.nav a .t{font-size:9.5px;letter-spacing:.05em}
.nav a.on{color:var(--ink)}
.nav a.on::before{content:'';position:absolute;top:0;left:50%;translate:-50% 0;
  width:24px;height:2px;background:var(--ink)}
.nav a:focus-visible{outline:2px solid var(--t-str);outline-offset:-2px}

/* ── モーダル ── */
.ovl{position:fixed;inset:0;z-index:20;background:rgba(22,32,43,.45);
  display:flex;align-items:flex-end;justify-content:center}
.ovl[hidden]{display:none}
.sheet{width:100%;max-width:460px;max-height:94vh;background:var(--ground);
  border-radius:10px 10px 0 0;display:flex;flex-direction:column;overflow:hidden;
  animation:sheetUp .22s ease-out}
@keyframes sheetUp{from{transform:translateY(14px);opacity:.4}to{transform:none;opacity:1}}
.sh-h{display:flex;align-items:center;gap:10px;padding:15px 16px 13px;background:var(--paper);
  border-bottom:1px solid var(--line);flex:none}
.sh-h .ti{font-size:14.5px;letter-spacing:.05em}
.sh-h .sub{font-size:11px;color:var(--dim);margin-top:3px;letter-spacing:.02em;display:block}
.sh-h .x,.sh-h .bk{border:0;background:none;cursor:pointer;color:var(--dim);padding:4px;
  font-family:inherit}
.sh-h .x{margin-left:auto}
.sh-h .bk{margin-left:-4px}
.sh-b{padding:18px 16px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;
  -webkit-overflow-scrolling:touch}
.pbar{height:2px;background:var(--ground-2);flex:none}
.pbar i{display:block;height:100%;background:var(--ink);transition:width .2s}

.pick{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:16px;text-align:left;font-family:inherit;color:var(--ink);cursor:pointer;
  margin-bottom:10px;display:flex;align-items:center;gap:12px}
.pick:active{background:var(--ground-2)}
.pick .qn{font-family:"Roboto Mono",monospace;font-size:10px;color:var(--faint);letter-spacing:.04em}
.pick .t2{font-size:15px;margin-top:7px;letter-spacing:.03em;display:block}
.pick[disabled]{opacity:.42;pointer-events:none}
.pick .pick-go{margin-left:auto;width:8px;height:8px;flex:none;
  border-right:1.6px solid var(--faint);border-bottom:1.6px solid var(--faint);
  transform:rotate(-45deg)}
.pick .soon{margin-left:auto;font-family:"Roboto Mono",monospace;font-size:9.5px;color:var(--faint);
  border:1px solid var(--line);border-radius:2px;padding:3px 6px;flex:none}

/* ── フォーム ── */
.fld{background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:11px 13px 12px;margin-bottom:8px}
.fld>label{display:block;font-size:10.5px;color:var(--dim);letter-spacing:.08em;margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;border:0;background:none;font-family:inherit;
  font-size:16px;color:var(--ink);padding:2px 0;letter-spacing:.03em;border-radius:0;
  -webkit-appearance:none;appearance:none}
.fld textarea{resize:vertical;line-height:1.85;min-height:5em}
.fld input::placeholder,.fld textarea::placeholder{color:var(--faint)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0}
.fld:focus-within{border-color:var(--ink)}
.fld.bad{border-color:var(--t-str)}
.fld input:disabled{color:var(--faint)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.two .fld{margin-bottom:0}
.dob{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:8px}
.dob-i{display:flex;align-items:center;gap:5px;background:var(--ground);
  border:1px solid var(--line);border-radius:3px;padding:11px 11px}
.dob-i:focus-within{border-color:var(--ink);background:var(--paper)}
.dob-i input{flex:1;min-width:0;width:100%;border:0;background:none;font-family:"Roboto Mono",monospace;
  font-size:17px;letter-spacing:.06em;color:var(--ink);padding:0;
  -webkit-appearance:none;appearance:none;border-radius:0}
.dob-i input:focus{outline:0}
.dob-i input::placeholder{color:var(--faint);font-family:"Sawarabi Gothic",sans-serif;
  font-size:15px;letter-spacing:0}
.dob-i i{font-style:normal;font-size:11.5px;color:var(--dim);flex:none;letter-spacing:.04em}
.hint{font-size:11.5px;color:var(--dim);line-height:1.8;letter-spacing:.02em;margin:9px 3px 0}
.err{font-size:12px;color:var(--t-str);letter-spacing:.02em;line-height:1.7;
  margin:2px 3px 12px;display:flex;gap:7px;align-items:flex-start}
.err svg{flex:none;margin-top:3px}

/* ── 設問 ── */
.qn-big{font-family:"Roboto Mono",monospace;font-size:11px;color:var(--faint);letter-spacing:.1em}
.qtxt{font-size:17px;line-height:1.85;letter-spacing:.03em;margin:6px 0 22px;min-height:5.2em}
.scale{display:flex;flex-direction:column;gap:7px}
.sc{display:flex;align-items:center;gap:13px;width:100%;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:14px 15px;cursor:pointer;
  font-family:inherit;text-align:left;color:var(--ink)}
.sc:active{background:var(--ground-2)}
/* 選んだものは枠を太く濃く。塗りつぶさないので、下の「進む」ボタンと見分けがつく */
.sc.on{border:2px solid var(--ink);padding:13px 14px;background:var(--paper)}
.sc .v{font-family:"Roboto Mono",monospace;font-size:16px;color:var(--faint);flex:none;width:13px}
.sc.on .v{color:var(--ink)}
.sc .lb{font-size:13.5px;letter-spacing:.03em}
.sc.on .lb{letter-spacing:.04em}
/* 0〜10点の目盛り。両端の言葉と位置を合わせるため1行に並べる */
.scale10{display:grid;grid-template-columns:repeat(11,1fr);gap:3px}
.sc10{background:var(--paper);border:1px solid var(--line);border-radius:3px;
  height:52px;display:grid;place-items:center;padding:0;cursor:pointer;
  font-family:"Roboto Mono",monospace;font-size:14px;color:var(--ink);letter-spacing:0}
.sc10:active{background:var(--ground-2)}
.sc10.on{border:2px solid var(--ink);color:var(--ink)}
.scale10-lb{display:flex;justify-content:space-between;margin:9px 1px 0;font-size:11px;
  color:var(--dim);letter-spacing:.02em}

.qnav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.qnav.one{grid-template-columns:1fr}
.qnav .go{margin:0;font-size:12.5px;letter-spacing:.06em;padding:14px 10px}
.qnav .go.ghost{padding:13px 10px;color:var(--dim);border-color:var(--line)}
.qnav .go.ghost:active{background:var(--ground-2)}

/* ── もう一度やるときの確認 ── */
.cf-lead{font-size:14.5px;line-height:1.95;letter-spacing:.03em;margin:0 2px 16px}
.cf-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.cf-h{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid var(--line)}
.cf-h .d{font-family:"Roboto Mono",monospace;font-size:11px;color:var(--dim);letter-spacing:.06em}
.cf-h .tag{font-size:9.5px;letter-spacing:.1em;color:var(--dim);border:1px solid var(--line);
  border-radius:2px;padding:3px 6px}
.cf-b{padding:13px 14px}
.cf-v{font-size:14px;line-height:1.85;letter-spacing:.03em}
.cf-g{margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}
.cf-g .g{display:flex;align-items:baseline;gap:10px;padding:6px 0}
.cf-g .gk{font-size:10px;letter-spacing:.12em;color:var(--dim);flex:none;width:4.6em}
.cf-g .gb{flex:1;font-size:13px;line-height:1.8}
.cf-g .gd{font-family:"Roboto Mono",monospace;font-size:10.5px;color:var(--faint);flex:none}
.cf-ty{font-size:22px;letter-spacing:.06em;line-height:1.3}
.cf-mind{font-size:12px;color:var(--dim);margin-top:7px;letter-spacing:.04em}
.cf-cores{display:flex;flex-wrap:wrap;gap:7px}
.cf-core{font-size:13.5px;letter-spacing:.05em;border:1px solid var(--ink);border-radius:3px;
  padding:7px 11px}
.cf-btns{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.cf-btns .go.quiet{background:none;border:0;color:var(--dim);font-size:12.5px;padding:10px}
.cf-note{font-size:11.5px;color:var(--faint);line-height:1.85;letter-spacing:.02em;
  margin:9px 3px 0;text-align:center}

/* ── いま目指しているもの ── */
.nowwrap{margin-top:26px}
.now{border:1px solid var(--line);border-radius:4px;background:var(--paper);overflow:hidden}
.now .k{display:block;font-family:"Roboto Mono",monospace;font-size:9.5px;letter-spacing:.2em;
  color:var(--faint)}
.now .k em{font-style:normal;margin-left:9px;letter-spacing:.1em}
.now-v{padding:14px 15px;border-bottom:1px solid var(--line)}
.now-v .t{display:block;font-size:14.5px;line-height:1.85;letter-spacing:.03em;margin-top:8px}
.now-g{padding:6px 15px;border-bottom:1px solid var(--line)}
.now-g .g{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.now-g .g:last-child{border-bottom:0}
.now-g .gk{font-size:10px;letter-spacing:.12em;color:var(--dim);flex:none;width:4.6em}
.now-g .gb{flex:1;font-size:13px;line-height:1.8;letter-spacing:.02em}
.now-g .gd{font-family:"Roboto Mono",monospace;font-size:10.5px;color:var(--faint);flex:none}
.now-s{padding:14px 15px;background:var(--ground)}
.now-s .t2{display:block;font-size:14px;line-height:1.8;letter-spacing:.03em;margin-top:8px}
.now-a{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.now-a .a{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.75;
  letter-spacing:.02em;color:var(--ink-2)}
.now-a .a i{width:13px;height:13px;border:1.4px solid var(--faint);border-radius:50%;flex:none;
  margin-top:4px}
.now-a .a.on{color:var(--faint);text-decoration:line-through}
.now-a .a.on i{background:var(--ink);border-color:var(--ink)}

/* ── 気づき ── */
.notewrap{margin-top:26px}
.nz-in{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:13px 14px}
.nz-in.on{border-color:var(--ink)}
.nz-in textarea{width:100%;border:0;background:none;font-family:inherit;font-size:16px;
  color:var(--ink);line-height:1.85;letter-spacing:.03em;resize:none;padding:0;
  min-height:2.6em;-webkit-appearance:none;border-radius:0}
.nz-in textarea:focus{outline:0}
.nz-in textarea::placeholder{color:var(--faint)}
.nz-btns{display:flex;margin-top:13px}
.nz-btns[hidden]{display:none}
.nz-save{width:100%;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff;
  font-family:inherit;font-size:12.5px;letter-spacing:.06em;padding:12px 8px;cursor:pointer}
.nz-save:active{background:#0d1620}
.nz-save[disabled]{opacity:.45;pointer-events:none}
.nz-hint{font-size:11px;color:var(--faint);letter-spacing:.04em;margin:9px 3px 0;line-height:1.8}

.nz-list{margin-top:20px}
.nz-day{font-family:"Roboto Mono",monospace;font-size:10.5px;letter-spacing:.12em;
  color:var(--dim);margin:18px 3px 8px;display:flex;align-items:center;gap:10px}
.nz-day:first-child{margin-top:0}
.nz-day::after{content:'';flex:1;height:1px;background:var(--line)}
.nz{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:13px 40px 13px 14px;margin-bottom:7px}
.nz .tx{font-size:13.5px;line-height:1.95;letter-spacing:.02em;white-space:pre-wrap}
.nz .x{position:absolute;right:6px;top:7px;border:0;background:none;color:var(--faint);
  cursor:pointer;padding:7px;display:grid;place-items:center}
.nz .x svg{width:12px;height:12px}
.nz-empty{font-size:12px;color:var(--faint);text-align:center;padding:26px 0;letter-spacing:.06em}

/* ── カレンダー ── */
.cal{border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:4px 10px 10px}
.cal-h{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 10px}
.cal-t{font-family:"Roboto Mono",monospace;font-size:15px;letter-spacing:.1em;color:var(--ink)}
.cal-t .cal-s{color:var(--faint);margin:0 1px}
.cal-nav{width:34px;height:34px;border:0;background:none;cursor:pointer;color:var(--dim);
  display:grid;place-items:center;border-radius:3px;padding:0}
.cal-nav svg{width:17px;height:17px}
.cal-nav:active{background:var(--ground-2)}
.cal-w{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}
.cal-w span{text-align:center;font-size:10px;letter-spacing:.06em;color:var(--faint);padding:4px 0}
.cal-w .sun{color:var(--t-str)}
.cal-w .sat{color:var(--t-ana)}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr)}
.cd{aspect-ratio:1/1;min-width:0;border:0;background:none;cursor:pointer;font-family:inherit;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:0;border-radius:3px;position:relative;overflow:hidden}
.cd .dn{font-family:"Roboto Mono",monospace;font-size:12.5px;color:var(--ink);line-height:1}
.cd.out .dn{color:var(--faint);opacity:.55}
.cd.today .dn{color:var(--ink)}
.cd.today::after{content:'';position:absolute;bottom:6px;left:50%;translate:-50% 0;
  width:3px;height:3px;border-radius:50%;background:var(--ink)}
.cd.sel{background:var(--ink)}
.cd.sel .dn{color:#fff}
.cd.sel .dot{opacity:.9}
.cd.sel.today::after{background:#fff}
.cd:active{background:var(--ground-2)}
.cd.sel:active{background:var(--ink)}
.dots{display:flex;gap:2px;height:4px;align-items:center}
.dot{width:4px;height:4px;border-radius:50%;display:block;flex:none}
.dot.k-session{background:var(--ink)}
.dot.k-action{background:var(--t-ana)}
.dot.k-goal{background:var(--t-dre)}
.dot.k-event{background:var(--t-fre)}

.cal-day{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}
.cal-day-h{font-family:"Roboto Mono",monospace;font-size:11px;letter-spacing:.12em;
  color:var(--dim);margin:0 2px 10px}
.cal-list{display:flex;flex-direction:column;gap:7px}
.ce{position:relative;border:1px solid var(--line);border-radius:3px;padding:11px 34px 11px 12px}
.ce .ck{display:inline-block;font-size:9.5px;letter-spacing:.1em;color:var(--dim);
  border:1px solid var(--line);border-radius:2px;padding:2px 5px;margin-bottom:7px}
.ce.k-session .ck{color:var(--ink);border-color:var(--ink)}
.ce.k-action .ck{color:var(--t-ana);border-color:var(--t-ana)}
.ce.k-goal .ck{color:var(--t-dre);border-color:var(--t-dre)}
.ce.k-event .ck{color:var(--t-fre);border-color:var(--t-fre)}
.ce .ct{display:block;font-size:13.5px;line-height:1.7;letter-spacing:.02em}
.ce .cw{display:inline-block;font-size:11px;color:var(--dim);margin-top:6px}
.ce .cs{display:block;font-size:11.5px;color:var(--faint);line-height:1.8;margin-top:5px}
.ce-x{position:absolute;right:6px;top:8px;border:0;background:none;color:var(--faint);
  cursor:pointer;padding:6px;display:grid;place-items:center}
.ce-x:active{color:var(--ink)}
.cal-empty{font-size:12px;color:var(--faint);text-align:center;padding:18px 0;letter-spacing:.06em}

/* ── セッション記録 ── */
.scorebox{display:flex;align-items:baseline;gap:8px}
.scorebox input{flex:none;width:4em;font-family:"Roboto Mono",monospace;font-size:20px;
  border:0;background:none;color:var(--ink);padding:2px 0}
.scorebox input:focus{outline:0}
.scorebox span{font-size:12px;color:var(--dim)}
.score{display:flex;align-items:center;gap:10px;margin-top:12px}
.score .sv{font-family:"Roboto Mono",monospace;font-size:26px;color:var(--ink);line-height:1}
.score .su{font-size:11px;color:var(--dim)}
.score .tr{flex:1;height:6px;background:var(--ground);border-radius:3px;overflow:hidden}
.score .tr i{display:block;height:100%;background:var(--ink)}
.note-b{font-size:13.5px;line-height:2.05;letter-spacing:.02em;color:var(--ink-2);
  margin:12px 0 0;white-space:pre-wrap}

.acts{margin-top:10px}
.act-row{display:flex;align-items:flex-start;gap:11px;width:100%;background:none;border:0;
  border-bottom:1px solid var(--line);padding:12px 2px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--ink)}
.act-row:last-child{border-bottom:0}
.act-row:active{background:var(--ground-2)}
.act-row .box{width:17px;height:17px;border:1.5px solid var(--line);border-radius:50%;flex:none;
  margin-top:2px;display:grid;place-items:center;color:transparent}
.act-row.on .box{background:var(--ink);border-color:var(--ink);color:#fff}
.act-row .tx{flex:1;font-size:13.5px;line-height:1.85;letter-spacing:.02em}
.act-row.on .tx{color:var(--faint);text-decoration:line-through}
.act-row .due{font-family:"Roboto Mono",monospace;font-size:11px;color:var(--dim);flex:none;
  margin-top:3px}

/* ── ゴールセット ── */
.gsec{margin-top:18px}
.gsec:first-of-type{margin-top:14px}
.gsec-h{display:block;font-size:12.5px;letter-spacing:.1em;color:var(--ink);margin:0 3px 9px}
.gsec-s{display:block;font-size:11px;color:var(--dim);letter-spacing:.02em;margin-top:5px}
.grow{margin-bottom:8px}
.grow .fld{margin-bottom:6px}
.gdue{display:flex;gap:7px;align-items:center}
.gdue .dob-i{flex:1}
.grow-x{border:1px solid var(--line);background:var(--paper);border-radius:3px;color:var(--faint);
  cursor:pointer;padding:9px;display:grid;place-items:center;flex:none}
.grow-x:active{background:var(--ground-2)}
.gadd{width:100%;border:1px dashed var(--line);background:none;border-radius:3px;
  font-family:inherit;font-size:12.5px;color:var(--dim);padding:11px;cursor:pointer;letter-spacing:.06em}
.gadd:active{background:var(--ground-2)}

.fit-pick.smart.on{border-color:var(--ink)}
.fit-pick.smart.on .box{background:var(--ink);border-color:var(--ink)}
.fit-item.smart.on .box{background:var(--ink);border-color:var(--ink)}
.fit-item.smart.on .adv{color:var(--dim)}
.fit-item.smart .adv{color:var(--faint)}

.rec-style{font-size:9.5px;letter-spacing:.1em;color:var(--dim);border:1px solid var(--line);
  border-radius:2px;padding:3px 6px}
.vision{font-size:16px;line-height:1.9;letter-spacing:.03em;margin-top:10px;white-space:pre-wrap}
.why-k{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--dim);margin-bottom:6px}
.goals{margin-top:10px}
.goals .gk{padding:13px 0;border-bottom:1px solid var(--line)}
.goals .gk:last-child{border-bottom:0}
.goals .gk-h{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--dim);margin-bottom:9px}
.goals .gi{display:flex;align-items:baseline;gap:10px;padding:5px 0}
.goals .gi-b{flex:1;font-size:13.5px;line-height:1.85;letter-spacing:.02em}
.goals .gi-d{font-family:"Roboto Mono",monospace;font-size:11px;color:var(--dim);flex:none}
.goals .gk .none{font-size:12px;color:var(--faint)}

/* ── コーチング不適合者チェック ── */
.fits{margin-top:12px}
.fit-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;
  border-bottom:1px solid var(--line)}
.fit-item:last-child{border-bottom:0}
.fit-item .box{width:17px;height:17px;border:1.5px solid var(--line);border-radius:2px;flex:none;
  margin-top:2px;display:grid;place-items:center;color:transparent}
.fit-item.on .box{background:var(--t-str);border-color:var(--t-str);color:#fff}
.fit-item .tx{font-size:13px;line-height:1.85;letter-spacing:.03em;color:var(--faint)}
.fit-item.on .tx{color:var(--ink)}
.fit-item .adv{display:block;font-size:12px;line-height:1.9;color:var(--t-str);margin-top:7px}

.fits-pick{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.fit-pick{display:flex;align-items:flex-start;gap:13px;width:100%;background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:15px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--ink)}
.fit-pick:active{background:var(--ground-2)}
.fit-pick .box{width:20px;height:20px;border:1.7px solid var(--line);border-radius:3px;flex:none;
  margin-top:1px;display:grid;place-items:center;color:transparent}
.fit-pick.on{border-color:var(--t-str)}
.fit-pick.on .box{background:var(--t-str);border-color:var(--t-str);color:#fff}
.fit-pick .tx{font-size:14px;line-height:1.75;letter-spacing:.03em}
.fit-pick .adv{display:block;font-size:12px;line-height:1.9;letter-spacing:.02em;
  color:var(--dim);margin-top:6px}

.verdict .ty.fit-ok{color:var(--t-fre)}
.verdict .ty.fit-warn{color:var(--t-dre)}
.verdict .ty.fit-ng{color:var(--t-str)}

/* ── 自己理解セッション ── */
.search.sm{margin-bottom:12px}
.search.sm input{padding:11px 0;font-size:16px}
.picked{font-size:11px;letter-spacing:.1em;color:var(--dim);margin:0 3px 10px}
.picked b{font-family:"Roboto Mono",monospace;font-size:13px;font-weight:400;color:var(--ink)}
.vgrp{margin-bottom:18px}
.vgrp:last-child{margin-bottom:0}
.vgrp-h{font-size:11px;letter-spacing:.16em;color:var(--dim);margin:0 3px 9px;
  display:flex;align-items:center;gap:10px}
.vgrp-h::after{content:'';flex:1;height:1px;background:var(--line)}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.vchip{background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:11px 4px;cursor:pointer;font-family:inherit;font-size:12.5px;letter-spacing:.01em;
  color:var(--ink-2);text-align:center;line-height:1.5;min-width:0;word-break:keep-all}
.vchip:active{background:var(--ground-2)}
.vchip.on{border:2px solid var(--ink);padding:10px 3px;color:var(--ink)}

.cores{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.core{font-size:15px;letter-spacing:.06em;color:var(--ink);border:1px solid var(--ink);
  border-radius:3px;padding:8px 13px}
.cores.sm{gap:6px;margin-top:6px}
.cores.sm .core{font-size:12.5px;padding:5px 9px;letter-spacing:.04em}

.phases{margin-top:12px}
.phase{padding:12px 0;border-bottom:1px solid var(--line)}
.phase:last-child{border-bottom:0}
.phase .ph{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--dim);margin-bottom:8px}
.phase .tags{display:flex;flex-wrap:wrap;gap:6px}
.phase .tag{font-size:12px;letter-spacing:.03em;color:var(--ink-2);background:var(--ground);
  border-radius:3px;padding:5px 9px}
.phase .none{font-size:12px;color:var(--faint)}

/* ── 結果 ── */
.verdict{background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:17px 16px;margin-bottom:11px}
.verdict .who{font-size:11.5px;color:var(--dim);letter-spacing:.04em}
.verdict .ty{font-size:25px;margin-top:9px;letter-spacing:.06em;line-height:1.3;white-space:nowrap}
.verdict .mind{font-size:12px;color:var(--dim);margin-top:7px;letter-spacing:.06em}
.verdict .cav{font-size:12px;line-height:1.85;margin-top:13px;padding-top:12px;
  border-top:1px solid var(--line);color:var(--ink-2);letter-spacing:.02em}
.card{background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:14px 15px 15px;margin-bottom:11px}
.card .lbl{font-size:10.5px;letter-spacing:.18em;color:var(--dim);display:flex;
  align-items:center;gap:7px}
.card .lbl .n{margin-left:auto;font-family:"Roboto Mono",monospace;font-size:11px;
  letter-spacing:0;color:var(--faint)}
.bars{margin-top:14px}
.bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.bar:last-child{margin-bottom:0}
.bar .bn{font-size:11.5px;width:6.5em;flex:none;letter-spacing:.02em;white-space:nowrap}
.bar .tr{flex:1;height:7px;background:var(--ground-2);border-radius:4px;overflow:hidden}
.bar .tr i{display:block;height:100%;border-radius:4px}
.bar .bv{font-family:"Roboto Mono",monospace;font-size:12px;color:var(--dim);width:2.4em;
  text-align:right;flex:none}
.bar.top .bv{color:var(--ink)}

/* 診断結果の下に出すタイプの特徴 */
.trait{padding-bottom:6px}
.trait-lead{font-size:14.5px;line-height:1.9;letter-spacing:.03em;margin:14px 0 2px}
.trait-note{font-size:12px;line-height:1.85;letter-spacing:.02em;color:var(--ink-2);
  background:var(--ground);border-radius:3px;padding:10px 12px;margin:13px 0 0}
.kvs{margin-top:6px}
.kvs .kv{display:block;padding:13px 0;border-bottom:1px solid var(--line)}
.kvs .kv:last-child{border-bottom:0}
.kvs .kv .k{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--dim);margin-bottom:6px}
.kvs .kv .v{display:block;font-size:13px;line-height:1.95;letter-spacing:.02em}

.done{text-align:center;padding:16px 4px 6px}
.done .mk{width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;margin:0 auto 15px}
.done .t3{font-size:17px;letter-spacing:.05em}
.stack>.go{margin-top:10px}

/* ── ログイン ── */
body.login .wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;
  padding:32px 15px calc(32px + env(safe-area-inset-bottom))}
body.login .box{width:100%;max-width:360px}
body.login form{margin:0}
body.login .brand{text-align:center;margin-bottom:34px}
body.login .brand .wm{font-size:44px}
body.login .brand .sub{font-family:"Roboto Mono",monospace;font-size:10px;color:var(--faint);
  letter-spacing:.26em;margin-top:12px}
body.login .fld{margin-bottom:9px}
body.login .go{margin-top:11px;padding:14px;letter-spacing:.14em}
body.login .alt{display:block;text-align:center;font-size:12.5px;letter-spacing:.06em;
  color:var(--dim);margin-top:16px;padding:8px}
body.login .alt:active{color:var(--ink)}
body.login .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.login .foot{font-family:"Roboto Mono",monospace;font-size:9.5px;color:var(--faint);
  letter-spacing:.1em;text-align:center;margin-top:26px}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ============================================================
   画面幅ごとの調整
   〜767px   iPhone。1カラム＋下ナビ
   768〜1023 iPad。本文を広げ、下ナビのまま
   1024px〜  PC。ナビを左に出し、下ナビは消す
   ============================================================ */

/* ── iPad ── */
@media (min-width: 768px) {
  :root{ --nav-h:70px }
  .app{ max-width:680px; padding:0 24px calc(var(--nav-h) + 40px) }
  .hdr{ padding:24px 0 16px }
  .hdr::after{ left:-24px; right:-24px }
  .tocwrap{ top:66px; margin:0 -24px 18px; padding:2px 24px 9px }
  .wm{ font-size:28px }
  h2.pt{ font-size:22px; margin:6px 0 20px }
  .nav .in{ max-width:680px }
  .nav a .t{ font-size:10.5px }
  .row{ padding:16px 18px }
  .row .nm{ font-size:15px }
  .prof-r{ grid-template-columns:150px 1fr auto; align-items:baseline; padding:16px 18px }
  .prof-r dt{ grid-column:1; padding-top:2px }
  .prof-r dd{ grid-column:2; padding-top:0 }
  .prof-r .prof-go{ grid-column:3; grid-row:1; align-self:center }
  .sheet{ max-width:560px; border-radius:10px; margin-bottom:calc(var(--nav-h) + 24px) }
  .ovl{ align-items:center }
  .dgrid{ gap:12px }
  body.login .box{ max-width:400px }
}

/* ── PC ── */
@media (min-width: 1024px) {
  .nav{ top:0; right:auto; bottom:0; width:232px; height:100%;
        border-top:0; border-right:1px solid var(--line); background:var(--paper);
        backdrop-filter:none; padding-bottom:0 }
  .nav .in{ display:flex; flex-direction:column; height:auto; max-width:none;
            padding:30px 14px 0; gap:2px }
  .nav a{ flex-direction:row; justify-content:flex-start; gap:13px; padding:13px 14px;
          border-radius:4px }
  .nav a .t{ font-size:13px; letter-spacing:.08em }
  .nav a.on{ background:var(--ground) }
  .nav a.on::before{ top:50%; left:0; translate:0 -50%; width:2px; height:20px }
  .nav a:hover{ color:var(--ink-2) }
  .nav a.on:hover{ color:var(--ink) }

  .app{ max-width:none; margin:0; padding:0 40px 64px 272px }
  .app > main, .app > .hdr{ max-width:760px; margin-left:0 }
  .hdr{ padding:30px 0 20px }
  .tocwrap{ top:78px }
  h2.pt{ font-size:24px }

  .hdr .back{ margin-left:0 }

  .ovl{ align-items:center; padding-left:232px }
  .sheet{ max-width:520px; border-radius:6px; max-height:86vh; margin:0 }

  .row:hover{ background:var(--ground-2) }
  .prof-r:not(.static):hover{ background:var(--ground-2) }
  .logout .go:hover{ background:var(--ground-2) }
  .ch:hover{ background:var(--ground-2) }
  .todo button:hover{ background:var(--ground-2) }
  .sc10:hover{ background:var(--ground-2) }
  .vchip:hover{ background:var(--ground-2) }
  .fit-pick:hover{ background:var(--ground-2) }
  .gadd:hover{ background:var(--ground-2) }
  .act-row:hover{ background:var(--ground-2) }
  .nz .x:hover{ color:var(--ink) }
  .blank-btn:hover{ background:var(--ground-2) }
  .cd:hover{ background:var(--ground-2) }
  .cd.sel:hover{ background:var(--ink) }
  .linkrow2:hover{ background:var(--ground-2) }
  .checks button:hover{ background:var(--ground-2) }
  .go{ transition:background .12s }
  .go:hover{ background:#0d1620 }
  .go.ghost:hover{ background:var(--ground-2) }

  .dgrid{ grid-template-columns:1fr 1fr; gap:14px }
  .prof-r{ grid-template-columns:170px 1fr auto }

  body.login .app{ padding:0 }
}

/* ── 大きな画面 ── */
@media (min-width: 1400px) {
  .app{ padding-left:300px }
  .app > main, .app > .hdr{ max-width:820px }
}

/* ── マウスが使える環境 ── */
@media (hover: hover) and (pointer: fine) {
  .chev, .prof-go{ transition:color .12s }
}
