/* キッチンカー検定 - 本体テーマのCSSは読み込まない（自己完結） */
:root{
	--kt-bg:#1a2744;
	--kt-bg2:#2c3e5c;
	--kt-accent:#f0923b;
	--kt-text:#ffffff;
	--kt-muted:rgba(255,255,255,.72);
	--kt-card:rgba(255,255,255,.08);
	--kt-line:rgba(255,255,255,.18);
	--kt-ink:#1a2744;
	--kt-ink-sub:#5a6a85;
	--kt-radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body.kentei-body{
	font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
	background:linear-gradient(160deg,var(--kt-bg) 0%,var(--kt-bg2) 100%);
	background-attachment:fixed;
	color:var(--kt-text);
	line-height:1.7;
	-webkit-text-size-adjust:100%;
}
#kentei-app{max-width:560px;margin:0 auto;padding:20px 16px 56px;min-height:100vh}

/* 起動 */
.kt-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;gap:12px;text-align:center}
.kt-boot__logo{font-size:1.35rem;font-weight:900;letter-spacing:.04em}
.kt-boot__msg{font-size:.9rem;color:var(--kt-muted)}

/* 共通パーツ */
.kt-h1{font-size:1.5rem;font-weight:900;margin:0 0 8px;line-height:1.4}
.kt-lead{font-size:.95rem;color:var(--kt-muted);margin:0 0 24px}
.kt-card{background:var(--kt-card);border:1px solid var(--kt-line);border-radius:var(--kt-radius);padding:18px 16px;margin-bottom:16px}
.kt-btn{
	display:block;width:100%;padding:15px 16px;border:0;border-radius:12px;
	background:var(--kt-accent);color:#1a2744;font-family:inherit;font-size:1rem;font-weight:700;
	cursor:pointer;text-align:center;text-decoration:none;line-height:1.4;
}
.kt-btn:disabled{opacity:.4;cursor:not-allowed}
.kt-btn--ghost{background:transparent;color:var(--kt-text);border:1px solid var(--kt-line)}
.kt-btn+.kt-btn{margin-top:10px}
.kt-err{background:rgba(220,70,70,.16);border:1px solid rgba(255,140,140,.4);border-radius:12px;padding:14px;margin-bottom:16px;font-size:.92rem}

/* 進捗 */
.kt-progress{margin-bottom:18px}
.kt-progress__bar{height:6px;background:rgba(255,255,255,.14);border-radius:99px;overflow:hidden}
.kt-progress__fill{height:100%;background:var(--kt-accent);border-radius:99px;transition:width .25s ease}
.kt-progress__label{font-size:.78rem;color:var(--kt-muted);margin-top:6px;display:flex;justify-content:space-between}

/* 設問 */
.kt-q__cat{display:inline-block;font-size:.72rem;font-weight:700;color:var(--kt-accent);border:1px solid var(--kt-accent);border-radius:99px;padding:2px 10px;margin-bottom:10px}
.kt-q__text{font-size:1.12rem;font-weight:700;margin:0 0 16px;line-height:1.55}
.kt-opts{display:flex;flex-direction:column;gap:10px}
.kt-opt{
	display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;
	background:rgba(255,255,255,.06);border:1px solid var(--kt-line);border-radius:12px;
	padding:14px;color:var(--kt-text);font-family:inherit;font-size:.95rem;line-height:1.5;cursor:pointer;
}
/* タッチ端末では :hover を当てない。
   innerHTML で設問を差し替えると、直前にタップした位置の新しいボタンに
   hover が残り（sticky hover）、回答前なのに印が付いて見える。
   正解の91%が2番目の選択肢のため「正解に印が付いている」ように見えていた。 */
@media (hover: hover) and (pointer: fine){
	.kt-opt:hover{border-color:var(--kt-accent)}
}
.kt-opt:focus-visible{border-color:var(--kt-accent);outline:2px solid var(--kt-accent);outline-offset:2px}
.kt-opt__key{flex:0 0 auto;font-weight:900;color:var(--kt-accent)}
.kt-back{background:none;border:0;color:var(--kt-muted);font-family:inherit;font-size:.85rem;padding:10px 0;cursor:pointer;text-decoration:underline}

/* プロフィール */
.kt-field{margin-bottom:18px}
.kt-field__label{display:block;font-size:.9rem;font-weight:700;margin-bottom:8px}
.kt-select{
	width:100%;padding:13px 12px;border-radius:10px;border:1px solid var(--kt-line);
	background:rgba(255,255,255,.94);color:#1a2744;font-family:inherit;font-size:1rem;
}
.kt-chips{display:flex;flex-wrap:wrap;gap:8px}
.kt-chip{
	background:rgba(255,255,255,.06);border:1px solid var(--kt-line);border-radius:99px;
	padding:9px 14px;color:var(--kt-text);font-family:inherit;font-size:.9rem;cursor:pointer;
}
.kt-chip[aria-pressed="true"]{background:var(--kt-accent);color:#1a2744;border-color:var(--kt-accent);font-weight:700}

/* =========================================================
   結果画面（kt-result-mode）: ヒーローは濃紺、以降は白地
   ========================================================= */
body.kt-result-mode{background:#f4f5f8;color:var(--kt-ink)}
body.kt-result-mode #kentei-app{max-width:none;padding:0;min-height:100vh}

.kt-notice{
	background:#fff4e6;border-bottom:1px solid #f3d5ae;color:#7a4a12;
	padding:12px 16px;font-size:.9rem;text-align:center;
}

/* 1. ヒーロー */
.kt-hero{
	background:var(--kt-bg);color:#fff;min-height:50vh;
	display:flex;flex-direction:column;align-items:center;justify-content:center;
	text-align:center;padding:26px 16px 22px;
}
.kt-hero__eyebrow{font-size:12px;letter-spacing:.16em;color:rgba(255,255,255,.72);margin:0 0 6px}
.kt-hero__score{margin:0;line-height:1;display:flex;align-items:baseline;justify-content:center;gap:6px}
.kt-hero__score>span:first-child{font-size:104px;font-weight:700;color:var(--kt-accent);font-variant-numeric:tabular-nums}
.kt-hero__unit{font-size:20px;font-weight:700;color:#fff}
.kt-hero__rank{font-size:18px;color:#fff;margin:14px 0 0;font-weight:700}
.kt-hero__stars{color:var(--kt-accent);letter-spacing:.08em}
.kt-hero__type{font-size:16px;color:#fff;margin:10px 0 0;line-height:1.5}

/* 2. シェア行 */
.kt-sharebar{
	background:#fff;border-bottom:1px solid #e3e6ec;
	display:flex;gap:8px;padding:12px 12px;justify-content:center;
}
.kt-sbtn{
	flex:1 1 0;min-width:0;padding:11px 6px;border-radius:10px;
	font-family:inherit;font-size:.85rem;font-weight:700;line-height:1.3;
	text-align:center;text-decoration:none;cursor:pointer;
	/* 幅が足りないときは省略せず折り返す（ラベルを欠けさせない）。 */
	display:flex;align-items:center;justify-content:center;
	white-space:normal;word-break:keep-all;overflow-wrap:anywhere;
}
.kt-sbtn--dark{background:#111;color:#fff;border:1px solid #111}
.kt-sbtn--outline{background:#fff;color:#b96a15;border:2px solid var(--kt-accent)}

/* 3〜6 の本文 */
.kt-body{max-width:560px;margin:0 auto;padding:18px 16px 56px}
body.kt-result-mode .kt-card{
	background:#fff;border:1px solid #e3e6ec;border-radius:var(--kt-radius);
	padding:18px 16px;margin-bottom:16px;color:var(--kt-ink);
}
body.kt-result-mode .kt-btn{background:var(--kt-accent);color:#1a2744}
/* enno-kentei-fc-v1 — career=none のときだけ出る FC 開示カード。
   .kt-btn--ghost は body.kt-result-mode .kt-btn に詳細度で負けて
   登録ボタンと同じ塗りになるため、専用クラスを後ろに置く。 */
.kt-fc{font-size:.95rem;color:var(--kt-ink-sub);line-height:1.7;margin:0 0 14px}
body.kt-result-mode .kt-btn--fc{background:#fff;color:#b96a15;border:1px solid #f0cfa5}
.kt-h2{font-size:1.02rem;font-weight:900;margin:0 0 12px;padding-left:10px;border-left:3px solid var(--kt-accent)}
.kt-radar{display:block;width:100%;height:auto;max-width:340px;margin:0 auto}
.kt-fb{font-size:.95rem;color:var(--kt-ink-sub);margin:14px 0 0}
.kt-fb strong{color:var(--kt-ink)}
.kt-type__phrase{font-size:1.5rem;font-weight:900;color:#b96a15;margin:0 0 6px}
.kt-type__label{font-size:.85rem;color:var(--kt-ink-sub);margin:0 0 12px}
.kt-type__products{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.kt-type__products li{background:#fdf1e3;border:1px solid #f0cfa5;color:#7a4a12;border-radius:99px;padding:6px 13px;font-size:.9rem;font-weight:700}

/* 5. ランキング */
.kt-rank{font-size:.95rem;color:var(--kt-ink)}
.kt-rank__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 8px;padding-bottom:8px;border-bottom:1px dashed #e3e6ec}
.kt-rank__label{color:var(--kt-ink-sub);font-size:.9rem}
.kt-rank__val strong{font-size:1.3rem;font-weight:900;color:#b96a15}
.kt-rank__blur{filter:blur(4px);user-select:none;font-size:1.3rem;font-weight:900}
.kt-rank__note{font-size:.88rem;color:var(--kt-ink-sub);margin:10px 0 14px}
.kt-rank__sub{font-size:.9rem;font-weight:700;margin:16px 0 8px}
.kt-avg{list-style:none;margin:0;padding:0;font-size:.9rem}
.kt-avg li{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:8px}
.kt-avg li+li{margin-top:4px}
.kt-avg li:nth-child(odd){background:#f7f8fa}
.kt-avg li.is-mine{background:#fdf1e3;font-weight:700;color:#7a4a12}

/* 解説（受験後にだけ表示） */
.kt-review{padding:0}
.kt-review__sum{cursor:pointer;padding:18px 16px;font-weight:900;color:var(--kt-ink);list-style:none}
.kt-review__sum::-webkit-details-marker{display:none}
.kt-review__sum::before{content:"b6";display:inline-block;margin-right:8px;color:var(--kt-accent);transition:transform .15s}
.kt-review[open] .kt-review__sum::before{transform:rotate(90deg)}
.kt-review__note{font-size:.85rem;color:var(--kt-ink-sub);margin:0 16px 8px}
.kt-rv{border-top:1px solid #e3e6ec;padding:14px 16px}
.kt-rv__head{margin:0 0 6px;font-size:.8rem}
.kt-rv__cat{display:inline-block;border:1px solid #d7dbe3;border-radius:99px;padding:1px 9px;color:var(--kt-ink-sub)}
.kt-rv__ok{color:#1a7f37;font-weight:700;margin-left:6px}
.kt-rv__ng{color:#b32d2e;font-weight:700;margin-left:6px}
.kt-rv__na{color:var(--kt-ink-sub);margin-left:6px}
.kt-rv__q{margin:0 0 8px;font-weight:700;font-size:.95rem;line-height:1.5}
.kt-rv__opts{list-style:none;margin:0 0 8px;padding:0;font-size:.9rem}
.kt-rv__opts li{padding:6px 10px;border-radius:8px;line-height:1.5}
.kt-rv__opts li+li{margin-top:3px}
.kt-rv__opts li.is-correct{background:#e8f5ec;border:1px solid #b7ddc4}
.kt-rv__opts li.is-mine{font-weight:700}
.kt-rv__opts li.is-mine:not(.is-correct){background:#fdecec;border:1px solid #f0bcbc}
.kt-rv__key{font-weight:900;color:var(--kt-accent);margin-right:8px}
.kt-rv__tag{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:700;border-radius:99px;padding:1px 8px;background:#e3e6ec;color:#3c4655}
.kt-rv__tag--c{background:#1a7f37;color:#fff}
.kt-rv__exp{margin:0;font-size:.88rem;color:var(--kt-ink-sub);line-height:1.7}

.kt-retake{font-size:.92rem;color:var(--kt-ink-sub);margin:0}
.kt-retake strong{color:var(--kt-ink)}

/* 画像サイズ選択シート */
.kt-sheet{position:fixed;inset:0;background:rgba(10,16,30,.72);z-index:9998;display:flex;align-items:flex-end}
.kt-sheet__inner{background:#fff;width:100%;border-radius:16px 16px 0 0;padding:18px 16px 24px}
.kt-sheet__title{margin:0 0 12px;font-weight:900;color:var(--kt-ink);text-align:center}
.kt-sheet .kt-btn--ghost{background:transparent;color:var(--kt-ink-sub);border:1px solid #d7dbe3}

.kt-foot{text-align:center;font-size:.78rem;color:var(--kt-muted);margin-top:28px}
body.kt-result-mode .kt-foot{color:var(--kt-ink-sub)}
.kt-foot a{color:inherit}

@media (max-width:380px){
	.kt-q__text{font-size:1.04rem}
	.kt-hero__score>span:first-child{font-size:92px}
	.kt-sbtn{font-size:.78rem;padding:11px 4px}
}
@media (prefers-reduced-motion: reduce){
	.kt-progress__fill{transition:none}
}
