/* =========================================================
   トク退｜退職日計算ナビ - スタイルシート（外部依存ゼロ）
   旧 Tailwind CDN + Google Fonts を、実際に使用しているクラスだけを
   手書きで再現した自前CSSに置き換えたもの。
   カラーパレットは旧 tailwind.config の extend.colors を踏襲。
   ========================================================= */

:root{
  --navy:#1E293B;       --navy-50:#F1F5F9;
  --gold:#D97706;       --gold-light:#FEF3C7; --gold-dark:#92400E;
  --caution:#F59E0B;    --caution-light:#FFFBEB; --caution-dark:#92400E;
  --crimson:#DC2626;    --crimson-light:#FEE2E2; --crimson-dark:#991B1B;
  --emerald:#059669;    --emerald-light:#D1FAE5; --emerald-dark:#065F46;

  --slate-50:#f8fafc;  --slate-100:#f1f5f9; --slate-200:#e2e8f0; --slate-300:#cbd5e1;
  --slate-400:#94a3b8; --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155;

  --shadow-card: 0 2px 12px rgba(30,41,59,.08);
  --shadow-sheet: 0 -8px 30px rgba(30,41,59,.18);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;width:100%;}
body{
  margin:0;
  font-family:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo",sans-serif;
  background:var(--slate-100);
  color:var(--navy);
  line-height:1.6;
  overflow-wrap:break-word;
  overflow-x:hidden;
  width:100%;
}
button,input,select{font-family:inherit;}
img{max-width:100%;display:block;}

/* ---------- レイアウト ---------- */
.flex{display:flex;} .grid{display:grid;} .block{display:block;} .hidden{display:none!important;}
.inline-flex{display:inline-flex;}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.flex-1{flex:1 1 0%;}
.items-center{align-items:center;} .items-start{align-items:flex-start;}
.justify-between{justify-content:space-between;} .justify-center{justify-content:center;}
.shrink-0{flex-shrink:0;}
.gap-1{gap:.25rem;} .gap-2{gap:.5rem;} .gap-2\.5{gap:.625rem;} .gap-3{gap:.75rem;}
.space-y-2>*+*{margin-top:.5rem;} .space-y-3>*+*{margin-top:.75rem;}
.space-y-5>*+*{margin-top:1.25rem;}

.relative{position:relative;} .absolute{position:absolute;}
.fixed{position:fixed;} .sticky{position:sticky;}
.inset-0{top:0;right:0;bottom:0;left:0;}
.top-0{top:0;} .top-0\.5{top:.125rem;} .bottom-0{bottom:0;} .left-0{left:0;} .left-0\.5{left:.125rem;} .right-0{right:0;}
.z-10{z-index:10;} .z-40{z-index:40;} .z-50{z-index:50;}

.max-w-lg{max-width:32rem;} .mx-auto{margin-left:auto;margin-right:auto;}
.max-h-\[75vh\]{max-height:75vh;}
.overflow-hidden{overflow:hidden;} .overflow-y-auto{overflow-y:auto;-webkit-overflow-scrolling:touch;}

/* ---------- サイズ ---------- */
.w-4{width:1rem;} .w-5{width:1.25rem;} .w-8{width:2rem;} .w-10{width:2.5rem;} .w-11{width:2.75rem;} .w-full{width:100%;}
.h-1\.5{height:.375rem;} .h-4{height:1rem;} .h-5{height:1.25rem;} .h-6{height:1.5rem;} .h-8{height:2rem;} .h-full{height:100%;}

/* ---------- 余白 ---------- */
.p-4{padding:1rem;} .p-5{padding:1.25rem;}
.px-1\.5{padding-left:.375rem;padding-right:.375rem;}
.px-3{padding-left:.75rem;padding-right:.75rem;}
.px-4{padding-left:1rem;padding-right:1rem;}
.px-5{padding-left:1.25rem;padding-right:1.25rem;}
.py-0\.5{padding-top:.125rem;padding-bottom:.125rem;}
.py-2{padding-top:.5rem;padding-bottom:.5rem;}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem;}
.py-3{padding-top:.75rem;padding-bottom:.75rem;}
.py-3\.5{padding-top:.875rem;padding-bottom:.875rem;}
.py-4{padding-top:1rem;padding-bottom:1rem;}
.pt-2{padding-top:.5rem;} .pt-3{padding-top:.75rem;} .pt-4{padding-top:1rem;} .pt-6{padding-top:1.5rem;}
.pb-2{padding-bottom:.5rem;} .pb-6{padding-bottom:1.5rem;} .pb-28{padding-bottom:7rem;}
.mb-0\.5{margin-bottom:.125rem;} .mb-1{margin-bottom:.25rem;} .mb-1\.5{margin-bottom:.375rem;}
.mb-2{margin-bottom:.5rem;} .mb-3{margin-bottom:.75rem;} .mb-4{margin-bottom:1rem;}
.mb-5{margin-bottom:1.25rem;} .mb-6{margin-bottom:1.5rem;}
.mt-0\.5{margin-top:.125rem;} .mt-1{margin-top:.25rem;} .mt-1\.5{margin-top:.375rem;}
.mt-2{margin-top:.5rem;} .mt-5{margin-top:1.25rem;}
.-my-3{margin-top:-.75rem;margin-bottom:-.75rem;}

/* ---------- タイポグラフィ ---------- */
.text-\[10px\]{font-size:10px;} .text-\[11px\]{font-size:11px;}
.text-xs{font-size:.75rem;line-height:1rem;}
.text-sm{font-size:.875rem;line-height:1.25rem;}
.text-base{font-size:1rem;line-height:1.5rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-3xl{font-size:1.875rem;line-height:2.25rem;}
.font-normal{font-weight:400;} .font-bold{font-weight:700;} .font-black{font-weight:900;}
.leading-snug{line-height:1.375;} .leading-relaxed{line-height:1.625;}
.tracking-wider{letter-spacing:.05em;} .tracking-widest{letter-spacing:.1em;}
.text-center{text-align:center;} .text-left{text-align:left;}
.underline{text-decoration:underline;}

/* ---------- 角丸・境界線・影 ---------- */
.rounded{border-radius:.25rem;} .rounded-lg{border-radius:.5rem;} .rounded-xl{border-radius:.75rem;}
.rounded-2xl{border-radius:1rem;} .rounded-full{border-radius:9999px;}
.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;}
.border{border-width:1px;border-style:solid;} .border-2{border-width:2px;border-style:solid;}
.border-t{border-top-width:1px;border-top-style:solid;}
.border-b{border-bottom-width:1px;border-bottom-style:solid;}
.shadow{box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);}
.shadow-card{box-shadow:var(--shadow-card);}
.shadow-sheet{box-shadow:var(--shadow-sheet);}
.shadow-\[0_-4px_16px_rgba\(30\2c 41\2c 59\2c \.06\)\]{box-shadow:0 -4px 16px rgba(30,41,59,.06);}

/* ---------- 色（背景・文字・境界線） ---------- */
.bg-white{background-color:#fff;} .bg-navy{background-color:var(--navy);}
.bg-navy-50\/90{background-color:rgba(241,245,249,.9);}
.bg-navy\/50{background-color:rgba(30,41,59,.5);}
.bg-white\/15{background-color:rgba(255,255,255,.15);}
.bg-slate-50{background-color:var(--slate-50);} .bg-slate-200{background-color:var(--slate-200);}
.bg-slate-300{background-color:var(--slate-300);}
.bg-emerald{background-color:var(--emerald);} .bg-emerald-light{background-color:var(--emerald-light);}
.bg-crimson{background-color:var(--crimson);} .bg-crimson-light{background-color:var(--crimson-light);}
.bg-caution-light{background-color:var(--caution-light);}

.text-navy{color:var(--navy);} .text-navy\/60{color:rgba(30,41,59,.6);}
.text-white{color:#fff;}
.text-slate-400{color:var(--slate-400);} .text-slate-500{color:var(--slate-500);}
.text-slate-600{color:var(--slate-600);} .text-slate-700{color:var(--slate-700);}
.text-emerald{color:var(--emerald);} .text-emerald-dark{color:var(--emerald-dark);}
.text-emerald-dark\/80{color:rgba(6,95,70,.8);}
.text-crimson{color:var(--crimson);} .text-crimson-dark{color:var(--crimson-dark);}
.text-crimson-dark\/80{color:rgba(153,27,27,.8);}
.text-caution-dark{color:var(--caution-dark);}
.text-gold{color:var(--gold);}

.border-slate-100{border-color:var(--slate-100);} .border-slate-200{border-color:var(--slate-200);}
.border-slate-300{border-color:var(--slate-300);}
.border-emerald{border-color:var(--emerald);}
.border-crimson{border-color:var(--crimson);} .border-crimson\/20{border-color:rgba(220,38,38,.2);}
.border-caution{border-color:var(--caution);}

/* ---------- 効果 ---------- */
.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.opacity-80{opacity:.8;} .opacity-90{opacity:.9;}
.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;}
.duration-500{transition-duration:.5s;}

/* ---------- フォーム ---------- */
input[type="date"],input[type="number"],input[type="text"],select{
  min-height:44px;
}
.focus\:outline-none:focus{outline:none;}
.focus\:ring-2:focus{box-shadow:0 0 0 2px rgba(5,150,105,.35);}
.focus\:ring-emerald:focus{box-shadow:0 0 0 2px rgba(5,150,105,.35);}
.focus\:border-emerald:focus{border-color:var(--emerald);}
button:disabled,.disabled\:opacity-40:disabled{opacity:.4;cursor:not-allowed;}
.accent-emerald{accent-color:var(--emerald);}
button{cursor:pointer;}

/* =========================================================
   コンポーネント固有スタイル（旧 <style> ブロックを移設）
   ========================================================= */
input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(20%);}

@keyframes fadeUp{from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:translateY(0);}}
.core-form,.result-screen{animation:fadeUp .35s ease both;}

.snippet-fuel{font-weight:900;}

.branch-btn{background:#fff;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;}
.branch-btn[aria-pressed="true"]{border-color:var(--emerald);background:var(--emerald-light);}

/* ---------- 結果画面：接続されたアクションタイムライン ---------- */
.tl-list{display:flex;flex-direction:column;}
.tl-item{position:relative;display:flex;gap:12px;align-items:flex-start;padding-bottom:16px;}
.tl-item:last-child{padding-bottom:0;}
.tl-node{flex:none;display:flex;flex-direction:column;align-items:center;width:32px;}
.tl-num{
  width:32px;height:32px;border-radius:50%;flex:none;
  background:linear-gradient(150deg,var(--emerald),var(--emerald-dark));color:#fff;
  font-weight:900;font-size:.92rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(5,150,105,.4);
}
.tl-line{flex:1;width:2px;background:var(--slate-200);margin-top:4px;min-height:14px;}
/* tl-cardは<details>要素。日付・見出しは常に見えるsummary側、詳細説明は開閉可能な本文側 */
.tl-card{flex:1;min-width:0;border-radius:1rem;box-shadow:var(--shadow-card);border:1.5px solid var(--slate-200);background:#fff;overflow:hidden;}
.tl-card.crimson{border-color:#fca5a5;background:var(--crimson-light);}
.tl-card.caution{border-color:#fde68a;background:var(--caution-light);}
.tl-card.gold{border-color:#fcd34d;background:var(--gold-light);}
.tl-summary{
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;
  padding:13px 15px;cursor:pointer;list-style:none;min-height:44px;
}
.tl-summary::-webkit-details-marker{display:none;}
.tl-card .cd-chev{flex:none;margin-top:2px;}
.tl-summary-text{flex:1;min-width:0;}
.tl-date{
  display:inline-block;font-size:.7rem;font-weight:900;letter-spacing:.02em;
  color:var(--emerald-dark);background:var(--emerald-light);border-radius:.4rem;
  padding:2px 8px;margin-bottom:6px;
}
.tl-card.crimson .tl-date{color:var(--crimson-dark);background:#fff;}
.tl-card.caution .tl-date{color:var(--caution-dark);background:#fff;}
.tl-card.gold .tl-date{color:var(--gold-dark);background:#fff;}
.tl-heading{font-size:.92rem;font-weight:800;color:var(--navy);margin:0;line-height:1.5;}
.tl-body{font-size:.78rem;line-height:1.8;color:var(--slate-500);padding:0 15px 13px;margin:0;border-top:1px solid rgba(0,0,0,.05);padding-top:.6rem;}
.tl-card.crimson .tl-body{color:var(--crimson-dark);opacity:.85;}
.tl-card.caution .tl-body{color:var(--caution-dark);opacity:.85;}
.tl-card.gold .tl-body{color:var(--gold-dark);opacity:.85;}

/* 番号を持たない補足カード（アラート/PR導線）：直前のカードに従属する形で字下げ表示 */
.tl-aside{margin-left:44px;margin-top:-4px;padding-bottom:16px;}

/* ---------- AIOアンサーファースト・ブロック ---------- */
.aio-answer{
  font-size:.78rem;line-height:1.85;color:var(--slate-600);
  background:var(--navy-50);border:1px solid var(--slate-200);border-radius:.7rem;
  padding:.75rem .9rem;margin:0;
}

/* ---------- クイック日付チップ ---------- */
.quick-chip-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.qc-chip{
  font-family:inherit;font-weight:800;font-size:.76rem;
  padding:7px 12px;border-radius:999px;
  border:1.5px solid var(--emerald);background:var(--emerald-light);color:var(--emerald-dark);
  cursor:pointer;transition:transform .12s ease,background-color .12s ease;
}
.qc-chip:active{transform:scale(.94);background:var(--emerald);color:#fff;}

/* ---------- 法務：免責事項 ---------- */
.legal-disclaimer{
  background:var(--slate-50);border:1px solid var(--slate-200);border-radius:.75rem;
  padding:14px 15px;margin-top:8px;
}
.legal-disclaimer p{font-size:.7rem;line-height:1.9;color:var(--slate-500);margin:0 0 8px;}
.legal-disclaimer p:last-child{margin-bottom:0;}
.legal-disclaimer .ld-title{font-size:.72rem;font-weight:800;color:var(--navy);margin-bottom:6px;}
.legal-disclaimer .ld-pr{color:var(--slate-400);}

/* ---------- 祝日の扱い（明示的な2択ボタン） ---------- */
.holiday-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ht-btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  font-family:inherit;font-weight:800;font-size:.82rem;
  padding:12px 8px;min-height:60px;
  border:1.5px solid var(--slate-300);border-radius:.7rem;
  background:#fcfdff;color:var(--slate-500);
  cursor:pointer;transition:transform .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease;
}
.ht-btn:active{transform:scale(.97);}
.ht-btn[aria-pressed="true"]{background:var(--emerald);border-color:var(--emerald);color:#fff;}
.ht-btn .ht-sub{font-weight:400;font-size:.68rem;color:inherit;opacity:.75;}

/* ---------- 毎週の定休日（曜日グリッド） ---------- */
.weekday-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.wd-btn{
  font-family:inherit;font-weight:800;font-size:.85rem;
  padding:10px 0;min-height:44px;
  border:1.5px solid var(--slate-300);border-radius:.6rem;
  background:#fcfdff;color:var(--slate-500);
  cursor:pointer;
  transition:transform .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease;
}
.wd-btn:active{transform:scale(.92);}
.wd-btn[aria-pressed="true"]{background:var(--emerald);border-color:var(--emerald);color:#fff;}

/* ---------- 祝日カレンダー（可視化リスト） ---------- */
.holiday-cal-list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:.4rem;
  max-height:280px;overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.holiday-cal-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
  font-size:.8rem;background:var(--slate-50);border:1px solid var(--slate-200);border-radius:.5rem;
  padding:.45rem .65rem;
}
.holiday-cal-row .hc-date{font-weight:800;color:var(--navy);white-space:nowrap;}
.holiday-cal-row .hc-name{color:var(--slate-600);text-align:right;}

/* ---------- 会社独自の休日・出勤日（アコーディオン） ---------- */
.cd-accordion{border:1px solid var(--slate-200);border-radius:.75rem;background:#fff;overflow:hidden;}
.cd-summary{
  display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;cursor:pointer;list-style:none;
  font-size:.875rem;font-weight:700;color:var(--navy);
}
.cd-summary::-webkit-details-marker{display:none;}
.cd-summary .cd-title{flex:1 1 auto;min-width:0;}
.cd-summary .cd-tagopt{
  display:inline-block;font-weight:800;font-size:.65rem;color:var(--slate-500);
  background:var(--slate-100);border:1px solid var(--slate-200);border-radius:.3rem;
  padding:.1rem .4rem;margin-left:.4rem;
}
.cd-badge{
  flex:none;font-size:.65rem;font-weight:800;color:#fff;background:var(--emerald);
  border-radius:999px;padding:.2rem .55rem;white-space:nowrap;
}
.cd-chev{
  flex:0 0 20px;width:20px;height:20px;border-radius:50%;
  background:var(--slate-100) center/12px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.6 4.6L6 8L9.4 4.6' fill='none' stroke='%23059669' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  transition:transform .2s ease;
}
details[open] .cd-chev{transform:rotate(180deg);}
.cd-body{padding:0 1rem 1rem;border-top:1px solid var(--slate-100);padding-top:.75rem;}
.cd-note{font-size:.7rem;color:var(--slate-400);line-height:1.7;margin:0 0 .875rem;}
.cd-block{margin-bottom:1rem;}
.cd-block:last-of-type{margin-bottom:0;}
.cd-block-h{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:800;margin-bottom:.5rem;}
.cd-tag{flex:none;width:20px;height:20px;border-radius:.4rem;display:grid;place-items:center;font-size:.65rem;font-weight:800;color:#fff;}
.cd-tag.off{background:var(--crimson);} .cd-tag.work{background:var(--emerald);}
.cd-add{display:flex;gap:.5rem;}
.cd-add input[type="date"]{flex:1 1 auto;min-width:0;border:1px solid var(--slate-300);border-radius:.6rem;padding:.5rem .6rem;font-size:.85rem;}
.cd-add button{flex:none;padding:0 .9rem;border-radius:.6rem;border:1px solid var(--slate-300);background:#fff;font-size:.8rem;font-weight:800;color:var(--navy);}
.cd-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;}
.cd-empty{font-size:.7rem;color:var(--slate-400);background:var(--slate-50);border-radius:.5rem;padding:.4rem .6rem;width:100%;}
.cd-chip{display:inline-flex;align-items:center;gap:.1rem;font-size:.75rem;font-weight:700;border-radius:999px;padding:.3rem .3rem .3rem .65rem;border:1px solid;}
.cd-chip.off{background:var(--crimson-light);border-color:#fecaca;color:var(--crimson-dark);}
.cd-chip.work{background:var(--emerald-light);border-color:#a7f3d0;color:var(--emerald-dark);}
.cd-del{flex:none;width:20px;height:20px;border-radius:50%;border:none;background:transparent;color:inherit;font-weight:800;line-height:1;opacity:.7;}
.cd-del:active{opacity:1;}
.cd-pri{font-size:.7rem;line-height:1.75;color:var(--slate-600);background:var(--navy-50);border:1px solid var(--slate-200);border-radius:.6rem;padding:.6rem .7rem;margin:.25rem 0 0;}
.cd-pri b{color:var(--emerald-dark);}

/* ---------- テキストアドバイスカード（外部PR/アフィリエイトなし） ---------- */
.tl-advice{
  border-radius:1rem;padding:13px 15px;box-shadow:var(--shadow-card);
  border:1.5px solid var(--emerald-light);background:var(--emerald-light);
}
.tl-advice .ta-label{
  display:inline-block;font-size:.68rem;font-weight:900;letter-spacing:.03em;
  color:var(--emerald-dark);background:#fff;border-radius:.4rem;padding:2px 8px;margin-bottom:6px;
}
.tl-advice .ta-heading{font-size:.9rem;font-weight:800;color:var(--emerald-dark);margin-bottom:4px;line-height:1.5;}
.tl-advice .ta-body{font-size:.78rem;line-height:1.85;color:var(--emerald-dark);opacity:.9;}

/* 定年退職・DC・退職金など、条件付きの独立した情報カード（ゴールド系） */
.info-card{
  border-radius:1rem;padding:15px 16px;margin-bottom:14px;
  border:1.5px solid #fde68a;background:var(--gold-light);box-shadow:var(--shadow-card);
}
.info-card .ic-title{font-size:.88rem;font-weight:800;color:var(--gold-dark);margin-bottom:6px;line-height:1.6;}
.info-card .ic-body{font-size:.79rem;line-height:1.9;color:#78350f;}

/* =========================================================
   v17.2 追加コンポーネント
   ========================================================= */

/* ---------- スキップリンク ---------- */
/* left:-999pxのような画面外配置は、ページ全体を横スクロール可能にしてしまう
   （スマホでタップ・ドラッグした際に横へずれる不具合の原因になる）。
   transformでの視覚的な隠蔽に置き換え、水平方向のオーバーフローを一切発生させない。 */
.skip-link{
  position:absolute;top:0;left:0;z-index:100;
  transform:translateY(-150%);
  background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:0 0 .5rem 0;font-size:.85rem;font-weight:700;
  transition:transform .15s ease;
}
.skip-link:focus{transform:translateY(0);}

/* ---------- フェーズ1：コア入力フォーム ---------- */
.core-form{padding-bottom:1rem;}

/* ---------- 結果画面：暫定値の注記 ---------- */
.precision-note{
  font-size:.75rem;font-weight:700;color:var(--gold-dark);
  background:var(--gold-light);border:1px solid #fde68a;border-radius:.6rem;
  padding:.5rem .75rem;display:inline-block;
}
.precision-note.is-final{color:var(--emerald-dark);background:var(--emerald-light);border-color:#a7f3d0;}

/* ---------- 見出しカードの結論行（「結局いつ辞めればいいか」への一言回答） ---------- */
.impact-conclusion{
  font-size:1.15rem;font-weight:900;color:#fff;line-height:1.5;
  margin:0 0 .5rem;
}

/* ---------- 転職・空白期間ゼロ推奨の理由リスト ---------- */
.gap-reason-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem;}
.gap-reason-list li{
  font-size:.78rem;line-height:1.75;color:#fff;opacity:.95;
  background:rgba(255,255,255,.12);border-radius:.6rem;padding:.6rem .75rem;
}
.gap-reason-list li b{font-weight:900;}

/* ---------- 見出しカードの損得表現（4段階：危険/注意/情報/有利） ---------- */
.verdict-line{
  display:flex;align-items:flex-start;gap:8px;
  font-size:.85rem;font-weight:700;line-height:1.8;color:#fff;
  border-radius:.7rem;padding:10px 13px;margin:0 0 12px;border:1.5px solid transparent;
}
.verdict-line .vl-icon{flex:none;font-size:1rem;line-height:1.6;}
.verdict-line b{font-weight:900;}
.verdict-danger{background:rgba(153,27,27,.32);border-color:rgba(254,202,202,.6);}
.verdict-caution{background:rgba(146,64,6,.32);border-color:rgba(253,230,138,.6);}
.verdict-info{background:rgba(2,132,199,.32);border-color:rgba(186,230,253,.6);}
.verdict-favorable{background:rgba(6,95,70,.32);border-color:rgba(167,243,208,.6);}

/* 汎用の警告レベルバッジ（アイコン+ラベル+色。色だけに依存しない） */
.level-badge{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:900;letter-spacing:.02em;border-radius:.4rem;padding:2px 8px;}
.level-badge.level-danger{color:var(--crimson-dark);background:#fff;}
.level-badge.level-caution{color:var(--caution-dark);background:#fff;}
.level-badge.level-info{color:#075985;background:#fff;}
.level-badge.level-favorable{color:var(--emerald-dark);background:#fff;}

/* ---------- 体調不調フラグ時の相談窓口ボックス（第6.2節・必須表示） ---------- */
.support-box{
  border:1.5px solid #93c5fd;background:#eff6ff;border-radius:1rem;
  padding:14px 16px;margin-bottom:14px;
}
.support-box p{font-size:.8rem;line-height:1.8;color:#1e3a8a;margin:0 0 .5rem;}
.support-box ul{margin:0;padding-left:1.1rem;}
.support-box li{font-size:.78rem;line-height:1.9;color:#1e3a8a;}

/* ---------- 精度向上カード ---------- */
.precision-upgrade{
  border:1.5px solid var(--slate-200);background:#fff;border-radius:1rem;
  padding:14px 15px;box-shadow:var(--shadow-card);
}
.pu-title{font-size:.8rem;font-weight:800;color:var(--navy);margin:0 0 .6rem;}
.pu-btn{
  display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  text-align:left;font-family:inherit;font-size:.82rem;font-weight:700;color:var(--navy);
  background:var(--slate-50);border:1.5px solid var(--slate-200);border-radius:.7rem;
  padding:.7rem .9rem;margin-bottom:.5rem;min-height:44px;
}
.pu-btn:last-child{margin-bottom:0;}
.pu-btn .pu-sub{flex:none;font-size:.68rem;font-weight:800;color:var(--emerald-dark);background:var(--emerald-light);border-radius:.4rem;padding:2px 7px;}
/* 入力済みのグループは枠線・チェック済みバッジで一目で分かるようにする */
.pu-btn.pu-btn-done{border-color:var(--emerald);background:var(--emerald-light);}
.pu-btn.pu-btn-done .pu-sub{background:var(--emerald);color:#fff;}

/* ---------- 文脈連動FAQ / 全件FAQ ---------- */
.contextual-faq{display:flex;flex-direction:column;gap:.6rem;}
.faq-item{border:1px solid var(--slate-200);border-radius:.75rem;background:#fff;box-shadow:var(--shadow-card);overflow:hidden;}
.faq-item + .faq-item{margin-top:.6rem;}
.faq-summary{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.85rem 1rem;cursor:pointer;list-style:none;min-height:44px;
}
.faq-summary::-webkit-details-marker{display:none;}
.faq-item .cd-chev{flex:none;}
.faq-q{font-size:.85rem;font-weight:800;color:var(--navy);}
.faq-body{padding:0 1rem .9rem;border-top:1px solid var(--slate-100);padding-top:.75rem;}
.faq-a1{font-size:.8rem;font-weight:800;color:var(--emerald-dark);margin:0 0 .4rem;line-height:1.7;}
.faq-a2{font-size:.78rem;color:var(--slate-600);line-height:1.8;margin:0 0 .5rem;}
.faq-a3{font-size:.76rem;color:var(--slate-600);line-height:1.8;background:var(--navy-50);border-radius:.5rem;padding:.5rem .65rem;margin:0;}
.faq-a3-label{font-weight:800;color:var(--navy);}
.all-faq-link{display:inline-block;font-size:.8rem;font-weight:700;color:var(--emerald-dark);margin:0 0 1rem;}
.all-faq-category{font-size:.9rem;font-weight:800;color:var(--navy);margin:1.2rem 0 .6rem;}
.all-faq-category:first-child{margin-top:0;}

/* ---------- FAQ・警告カード単位の理解度フィードバック（入口B） ---------- */
.faq-feedback{display:flex;align-items:center;gap:8px;margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--slate-200);}
.faq-feedback span{font-size:.7rem;color:var(--slate-400);}
.faq-feedback button{
  font-size:.85rem;line-height:1;padding:.3rem .5rem;border-radius:.4rem;border:1px solid var(--slate-200);
  background:#fff;min-height:32px;
}
.faq-feedback button[aria-pressed="true"]{background:var(--emerald-light);border-color:var(--emerald);}

/* ---------- 結果画面のマイクロフィードバック（入口A・最重要） ---------- */
.feedback-micro{
  border:1.5px solid var(--slate-200);background:#fff;border-radius:1rem;
  padding:16px;margin-bottom:1.5rem;text-align:center;box-shadow:var(--shadow-card);
}
.feedback-q{font-size:.85rem;font-weight:800;color:var(--navy);margin:0 0 .8rem;}
.feedback-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.feedback-btns button{
  font-family:inherit;font-size:.8rem;font-weight:700;color:var(--navy);
  background:var(--slate-50);border:1.5px solid var(--slate-200);border-radius:.6rem;
  padding:.6rem .8rem;min-height:44px;
}
.feedback-btns button[aria-pressed="true"]{background:var(--emerald-light);border-color:var(--emerald);color:var(--emerald-dark);}
.feedback-thanks{margin-top:.7rem;font-size:.8rem;font-weight:700;color:var(--emerald-dark);}

/* ---------- フッター（常設・入口C） ---------- */
.site-footer{
  max-width:32rem;margin:0 auto;padding:1.5rem 1rem 2rem;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  font-size:.75rem;color:var(--slate-400);
}
.site-footer a{color:var(--slate-500);text-decoration:underline;min-height:44px;display:inline-flex;align-items:center;}
.rate-fiscal-year{font-size:.7rem;color:var(--slate-400);}

/* ---------- 精度向上・上司連絡テンプレート・フィードバック用モーダル ---------- */
dialog.precision-modal{
  border:none;border-radius:1.25rem 1.25rem 0 0;padding:0;width:100%;max-width:32rem;
  margin:auto auto 0;box-shadow:var(--shadow-sheet);max-height:90vh;
}
@media (min-width:560px){
  dialog.precision-modal{border-radius:1.25rem;margin:auto;max-height:85vh;}
}
dialog.precision-modal::backdrop{background:rgba(30,41,59,.5);}
dialog.precision-modal[open]{animation:fadeUp .25s ease both;}
.modal-form{padding:1.25rem 1.25rem 1.5rem;overflow-y:auto;max-height:90vh;-webkit-overflow-scrolling:touch;}
.modal-title{font-size:1.05rem;font-weight:900;color:var(--navy);margin:0 0 .3rem;}
.modal-sub{font-size:.8rem;color:var(--slate-500);margin:0 0 1rem;}
.modal-field{margin-bottom:1rem;}
.modal-field label{display:block;font-size:.78rem;font-weight:700;color:var(--slate-500);margin-bottom:.4rem;}
.modal-field select,.modal-field input,.modal-field textarea{
  width:100%;border:1px solid var(--slate-300);border-radius:.7rem;padding:.7rem .8rem;
  font-size:1rem;font-family:inherit;background:#fff;min-height:44px;
}
.modal-field textarea{min-height:88px;resize:vertical;}
.modal-note{font-size:.7rem;color:var(--slate-400);line-height:1.7;margin:.4rem 0 0;}
.modal-actions{display:flex;gap:.6rem;margin-top:.5rem;}
.modal-btn-secondary,.modal-btn-primary{
  flex:1;font-family:inherit;font-size:.85rem;font-weight:800;border-radius:.7rem;padding:.75rem;min-height:44px;
}
.modal-btn-secondary{background:#fff;border:1.5px solid var(--slate-300);color:var(--slate-600);}
.modal-btn-primary{background:var(--emerald);border:1.5px solid var(--emerald);color:#fff;}
.template-textarea{width:100%;border:1px solid var(--slate-300);border-radius:.7rem;padding:.8rem;font-size:.85rem;line-height:1.8;font-family:inherit;color:var(--navy);background:var(--slate-50);}
.copy-toast{margin-top:.6rem;font-size:.8rem;font-weight:700;color:var(--emerald-dark);text-align:center;}

/* ---------- フィードバック送信前の透明性表示 ---------- */
.fb-transparency{background:var(--navy-50);border:1px solid var(--slate-200);border-radius:.7rem;padding:.7rem .8rem;margin-bottom:1rem;}
.fb-transparency-label{font-size:.7rem;font-weight:800;color:var(--navy);margin:0 0 .3rem;}
.fb-context-summary{font-size:.68rem;color:var(--slate-500);word-break:break-all;margin:0 0 .4rem;font-family:monospace;}
.fb-transparency-note{font-size:.68rem;color:var(--slate-400);margin:0;}

/* ---------- 用語ミニ解説ポップオーバー（第3層） ---------- */
.term-trigger{
  background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;
  border-bottom:1px dashed var(--slate-400);
}
.term-popover{
  position:fixed;z-index:60;max-width:300px;
  background:#fff;border:1.5px solid var(--slate-200);border-radius:.9rem;
  box-shadow:var(--shadow-sheet);padding:.9rem 1rem;
}
.term-title-el{font-size:.85rem;font-weight:900;color:var(--navy);margin:0 0 .4rem;}
.term-short{font-size:.78rem;font-weight:700;color:var(--emerald-dark);line-height:1.7;margin:0 0 .4rem;}
.term-detail{font-size:.74rem;color:var(--slate-500);line-height:1.7;margin:0 0 .5rem;}
.term-link{font-size:.74rem;font-weight:700;color:var(--emerald-dark);}
.term-close{
  position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;
  border:none;background:var(--slate-100);color:var(--slate-500);font-weight:800;
}

/* ---------- 更新履歴ページ（changelog.html） ---------- */
.changelog-entry{margin-bottom:2rem;}
.changelog-date{font-size:.95rem;font-weight:900;color:var(--navy);border-bottom:2px solid var(--slate-200);padding-bottom:.5rem;margin:0 0 .8rem;}
.changelog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem;}
.changelog-list li{font-size:.82rem;line-height:1.8;color:var(--slate-600);}
.cl-tag{display:inline-block;font-size:.7rem;font-weight:800;border-radius:.4rem;padding:2px 7px;margin-right:.4rem;white-space:nowrap;}
.cl-tag.cl-fix{background:var(--gold-light);color:var(--gold-dark);}
.cl-tag.cl-new{background:var(--emerald-light);color:var(--emerald-dark);}

/* ---------- 印刷時のみ：用語のミニ辞典 ---------- */
#glossary-appendix{display:none;}
#glossary-appendix ul{list-style:none;margin:0;padding:0;}
#glossary-appendix li{font-size:.78rem;line-height:1.8;margin-bottom:.5rem;}

/* ---------- 印刷 / PDF保存レイアウト ---------- */
@media print{
  @page{ size:A4 portrait; margin:10mm 12mm; }
  .no-print,
  #coreForm,
  .quick-chip-row,
  dialog,
  details.cd-accordion{ display:none!important; }
  body{ background:#fff!important; padding-bottom:0!important; }
  .max-w-lg{ max-width:100%!important; }
  .shadow-card,.shadow-sheet{ box-shadow:none!important; }
  #resultScreen{ display:block!important; }
  #impactCard{ color:#000!important; background:#fff!important; border:2px solid #000!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #impactCard *{ color:#000!important; }
  .tl-item,.tl-card,.tl-advice,.info-card,.legal-disclaimer,.faq-item{ break-inside:avoid; page-break-inside:avoid; border-color:#94a3b8!important; }
  .tl-num{ background:#334155!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  /* FAQ・タイムラインのアコーディオンは開閉状態にかかわらず全開表示にする */
  .faq-item > *,
  .tl-card > *{ display:block!important; }
  .faq-summary,.tl-summary{ cursor:default; }
  .faq-item .cd-chev,
  .tl-card .cd-chev{ display:none!important; }
  .term-trigger{ border-bottom:none; color:inherit; }
  #glossary-appendix{ display:block!important; }
  .rate-fiscal-year{ display:block!important; }
  a[href]::after{ content:""; }
}

/* ---------- アクセシビリティ（シニア層配慮：文字サイズ・タップ領域・コントラスト） ---------- */
html{font-size:16px;}
button,select,input,.branch-btn,.wd-btn,.ht-btn,.qc-chip,.pu-btn,.term-trigger{ min-height:44px; }
.tl-heading,.tl-body,.info-card .ic-body,.tl-advice .ta-body,.faq-q,.faq-a2,.faq-a3{ font-size:max(.78rem, 14px); }
:focus-visible{ outline:2.5px solid #2563eb; outline-offset:2px; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}
