/* ── Google Fonts: Noto Sans JP + Noto Sans KR + Noto Sans ── */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Noto+Sans+KR:wght@300;400;500;700&family=Noto+Sans:wght@400;500;600;700&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:           #ffffff;
  --bg2:          #f3f1ec;
  --bg3:          #e8e4db;
  --border:       #e0dbd2;
  --border2:      #c8c2b8;
  --text:         #1a1a10;
  --text2:        #5e5c54;
  --text3:        #a09c94;
  --accent:       #2d6a4f;
  --accent2:      #1b4332;
  --accent-bg:    #eef6f1;
  --accent-border:#b7d9c6;
  --amber:        #92400e;
  --amber-bg:     #fffbeb;
  --amber-border: #f6d677;
  --blue:         #1e40af;
  --blue-bg:      #eff6ff;
  --blue-border:  #bfdbfe;
  --red:          #991b1b;
  --red-bg:       #fff1f2;
  --red-border:   #fecdd3;
  /* pastel pill colors */
  --hard-bg:      #dbeeff;
  --hard-text:    #1e4e8c;
  --hard-border:  #93c5fd;
  --soft-bg:      #fce7f8;
  --soft-text:    #7c2d8e;
  --soft-border:  #e9a8f5;
  --r:            14px;
  --r-lg:         20px;
  --r-xl:         28px;
  --shadow:       0 1px 4px rgba(0,0,0,0.06);
  --shadow-md:    0 4px 20px rgba(0,0,0,0.08);
  /* fonts */
  --fb: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
  --fb-ja: 'Noto Sans JP', 'Hiragino Kaku Gothic Pro', 'Hiragino Sans', Meiryo, sans-serif;
  --fe: 'Noto Sans', system-ui, sans-serif;
}

/* Language-specific font overrides */
html[lang="ja"] {
  --fb: 'Noto Sans JP', 'Hiragino Kaku Gothic Pro', 'Hiragino Sans', Meiryo, sans-serif;
}
html[lang="ko"] {
  --fb: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
}

html { scroll-behavior: smooth; }
body {
  background: #ffffff;
  color: var(--text);
  font-family: var(--fb);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

/* Language-aware font application */
body { font-family: var(--fb); }

/* ════════════ LANGUAGE SWITCHER ════════════ */
.lang-switcher {
  position: fixed;
  top: 14px;
  right: 20px;
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 5px 12px;
  box-shadow: var(--shadow-md);
}
.lang-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  color: var(--text3);
  padding: 2px 4px;
  border-radius: 4px;
  transition: color 0.15s;
  font-family: var(--fb);
}
.lang-btn.active { color: var(--accent); }
.lang-btn:hover { color: var(--text); }
.lang-divider { color: var(--border2); font-size: 12px; }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }

/* ════════════ LAYOUT ════════════ */
.shell-wrap {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  background: #ffffff;
}
.shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 900px);
  min-height: 100vh;
  width: 100%;
  max-width: 1260px;
  box-shadow: 0 0 0 1px var(--border);
  background: var(--bg2);
}

/* ── SIDEBAR ── */
.sidebar {
  background: #ffffff;
  border-right: 1px solid var(--border);
  padding: 44px 28px 36px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.sidebar-logo {
  font-family: var(--fe);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 32px;
}
.sidebar-title {
  font-family: var(--fe);
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.35;
  margin-bottom: 8px;
}
.sidebar-sub {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.65;
  margin-bottom: 36px;
}
.step-nav-list { list-style: none; flex: 1; }
.step-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: var(--r);
  cursor: pointer;
  transition: background 0.15s;
  margin-bottom: 3px;
}
.step-nav-item:hover { background: var(--bg2); }
.step-nav-item.active { background: var(--accent-bg); }
.step-nav-item.done { opacity: 0.6; }
.step-nav-item.done:hover { opacity: 0.85; }
.nav-dot {
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1.5px solid var(--border2);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  color: var(--text3);
  flex-shrink: 0;
  font-family: var(--fe);
  transition: all 0.2s;
}
.step-nav-item.active .nav-dot { background: var(--accent); border-color: var(--accent); color: #fff; }
.step-nav-item.done .nav-dot   { background: var(--accent-bg); border-color: var(--accent-border); color: var(--accent); }
.nav-step-num  { font-size: 10px; color: var(--text3); letter-spacing: 0.08em; text-transform: uppercase; font-family: var(--fe); }
.nav-step-title { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.3; margin-top: 1px; }
.step-nav-item.active .nav-step-title { color: var(--accent); }
.sidebar-footer {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  font-size: 11px;
  color: var(--text3);
  line-height: 1.65;
}

/* ── MAIN ── */
.main { padding: 56px 68px 88px; background: var(--bg2); }
@media (max-width: 1080px) {
  .shell { grid-template-columns: 240px minmax(0, 1fr); }
  .main { padding: 44px 44px 72px; }
}
@media (max-width: 800px) {
  .shell-wrap { display: block; }
  .shell { display: block; max-width: 100%; box-shadow: none; }
  .sidebar { position: static; height: auto; padding: 18px 18px 12px; flex-direction: row; flex-wrap: wrap; gap: 8px; align-items: center; border-right: none; border-bottom: 1px solid var(--border); }
  .sidebar-logo { margin-bottom: 0; }
  .sidebar-title, .sidebar-sub, .sidebar-footer { display: none; }
  .step-nav-list { display: flex; flex: 1; gap: 4px; overflow-x: auto; }
  .step-nav-item { padding: 8px 10px; margin-bottom: 0; flex-shrink: 0; }
  .nav-step-num { display: none; }
  .main { padding: 32px 20px 60px; }
}

/* ── STEP PANELS ── */
.step-panel { display: none; }
.step-panel.active { display: block; animation: stepIn 0.3s ease both; }
@keyframes stepIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

/* ── STEP HEADER ── */
.step-tag {
  display: inline-flex; align-items: center;
  background: var(--accent-bg); border: 1px solid var(--accent-border);
  border-radius: 50px; padding: 5px 14px;
  font-size: 11px; font-weight: 700; color: var(--accent);
  letter-spacing: 0.1em; text-transform: uppercase;
  font-family: var(--fe); margin-bottom: 16px;
}
.step-heading {
  font-family: var(--fe);
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 700; color: var(--text);
  line-height: 1.2; margin-bottom: 14px;
}
.step-desc {
  font-size: 15px; color: var(--text2);
  max-width: 100%; line-height: 1.85; margin-bottom: 40px;
}

/* ── CONTEXT BANNER ── */
.ctx-banner {
  background: var(--accent-bg); border: 1px solid var(--accent-border);
  border-radius: var(--r-lg); padding: 16px 20px; margin-bottom: 28px;
}
.ctx-banner-label {
  font-size: 10px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--accent);
  font-family: var(--fe); margin-bottom: 8px;
}
.ctx-banner-body { font-size: 14px; color: var(--text2); line-height: 1.75; }
.ctx-banner-body strong { color: var(--accent2); font-weight: 600; }

/* ── CARDS ── */
.card {
  background: #ffffff; border: 1px solid var(--border);
  border-radius: var(--r-xl); padding: 30px;
  margin-bottom: 16px; box-shadow: var(--shadow);
}
.card-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--text3);
  font-family: var(--fe); margin-bottom: 5px;
}
.card-title {
  font-size: 16px; font-weight: 700; color: var(--text);
  font-family: var(--fe); margin-bottom: 5px; line-height: 1.3;
}
.card-hint { font-size: 13px; color: var(--text2); line-height: 1.75; margin-bottom: 22px; }
.divider { height: 1px; background: var(--border); margin: 22px 0; }

/* ── CHIPS ── */
.chips-label {
  font-size: 11px; font-weight: 700; color: var(--text2);
  margin-bottom: 10px; font-family: var(--fe);
  text-transform: uppercase; letter-spacing: 0.08em;
}
.chips-wrap { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.chip {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  padding: 0 16px; height: 36px; border-radius: 50px;
  border: 1.5px solid var(--border); background: #ffffff;
  color: var(--text2); font-size: 13.5px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s; user-select: none;
  line-height: 1; white-space: nowrap;
}
.chip:hover { border-color: var(--accent-border); background: var(--accent-bg); color: var(--accent); }
.chip.on { border-color: var(--accent); background: var(--accent-bg); color: var(--accent); font-weight: 500; }
.chip.on::before { content: '✓'; font-size: 10px; font-weight: 700; }
.chip.disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }

/* ── RADIO CARDS ── */
.radio-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px; margin-bottom: 18px;
}
.radio-card {
  border: 1.5px solid var(--border); border-radius: var(--r-lg);
  padding: 16px 14px; cursor: pointer; transition: all 0.15s; background: #ffffff;
}
.radio-card:hover { border-color: var(--accent-border); background: var(--accent-bg); }
.radio-card.on { border-color: var(--accent); background: var(--accent-bg); }
.rc-icon { font-size: 20px; margin-bottom: 7px; }
.rc-title { font-size: 13px; font-weight: 700; color: var(--text); font-family: var(--fe); margin-bottom: 4px; }
.radio-card.on .rc-title { color: var(--accent2); }
.rc-desc { font-size: 11px; color: var(--text3); line-height: 1.5; }

/* ── FORM FIELDS ── */
.field { margin-bottom: 18px; }
.field:last-child { margin-bottom: 0; }
.field-label {
  display: block; font-size: 12px; font-weight: 600; color: var(--text2);
  margin-bottom: 7px; font-family: var(--fe);
  text-transform: uppercase; letter-spacing: 0.08em;
}
textarea, input[type="text"], input[type="password"] {
  width: 100%; background: var(--bg2); border: 1.5px solid var(--border);
  border-radius: var(--r); padding: 12px 15px;
  font-size: 14.5px; font-family: var(--fb); color: var(--text);
  outline: none; transition: border-color 0.15s, background 0.15s; line-height: 1.65;
}
textarea { resize: vertical; }
input[type="text"], input[type="password"] { height: 46px; padding: 0 15px; resize: none; }
textarea::placeholder, input::placeholder { color: var(--text3); }
textarea:focus, input:focus {
  border-color: var(--accent); background: #ffffff;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.09);
}
.field-note { font-size: 12px; color: var(--text3); margin-top: 7px; line-height: 1.55; }

/* 추가질문 섹션 */
.expand-section {
  margin-top: 8px; border-top: 1px dashed var(--border2); padding-top: 18px;
}
.expand-toggle {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; border-radius: 50px;
  border: 1.5px solid var(--border2); background: var(--bg2);
  color: var(--text2); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s; margin-bottom: 16px;
}
.expand-toggle:hover { border-color: var(--accent-border); color: var(--accent); background: var(--accent-bg); }
.expand-toggle .arrow { font-size: 10px; transition: transform 0.2s; }
.expand-toggle.open .arrow { transform: rotate(180deg); }

/* 사용자 커스텀 질문 추가 */
.custom-q-area { margin-top: 14px; }
.custom-q-row {
  display: flex; gap: 8px; align-items: center; margin-bottom: 10px;
}
.custom-q-row input { flex: 1; }
.icon-btn {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1.5px solid var(--border); background: var(--bg2);
  color: var(--text3); cursor: pointer; display: flex;
  align-items: center; justify-content: center; font-size: 17px;
  transition: all 0.15s; flex-shrink: 0;
}
.icon-btn:hover { border-color: var(--red-border); color: var(--red); background: var(--red-bg); }
.add-q-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 50px;
  border: 1.5px dashed var(--border2); background: transparent;
  color: var(--text3); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s;
}
.add-q-btn:hover { border-color: var(--accent-border); color: var(--accent); }

/* ── 例文ボタン (가치관/이상의모습 예시) ── */
.example-btn-wrap { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.example-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 15px; border-radius: 50px;
  border: 1.5px solid var(--accent-border); background: var(--accent-bg);
  color: var(--accent); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s; font-weight: 500;
}
.example-btn:hover { background: var(--accent); color: #fff; }
.example-popup {
  background: #ffffff; border: 1.5px solid var(--border);
  border-radius: var(--r-lg); padding: 18px 20px;
  font-size: 14px; color: var(--text2); line-height: 1.75;
  margin-bottom: 12px; animation: popIn 0.2s ease both;
  position: relative;
}
.example-popup .ex-label {
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--text3); font-family: var(--fe);
  margin-bottom: 8px;
}
.example-popup .ex-text { color: var(--text); font-size: 14px; line-height: 1.8; }
.example-popup .ex-use-btn {
  display: inline-flex; align-items: center; gap: 5px;
  margin-top: 12px; padding: 6px 14px; border-radius: 50px;
  border: 1.5px solid var(--accent-border); background: transparent;
  color: var(--accent); font-size: 12px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s;
}
.example-popup .ex-use-btn:hover { background: var(--accent-bg); }
@keyframes popIn { from { opacity:0; transform:scale(0.97); } to { opacity:1; transform:scale(1); } }

/* Priority 3개 제한 */
.chip.priority-max { opacity: 0.45; cursor: not-allowed; pointer-events: none; }

/* ════════════ SKILL TABLE ════════════ */
.skill-head {
  display: grid;
  grid-template-columns: 32px minmax(140px,1fr) 72px 1fr 1fr;
  gap: 10px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border); margin-bottom: 2px; align-items: center;
}
.skill-head span {
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--text3);
  font-family: var(--fe); display: flex; align-items: center;
}
@media (max-width: 720px) { .skill-head { display: none; } }

.skill-row {
  display: grid;
  grid-template-columns: 32px minmax(140px,1fr) 72px 1fr 1fr;
  gap: 10px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid var(--border);
  animation: fadeUp 0.2s ease both; min-height: 66px;
}
@keyframes fadeUp { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (max-width: 720px) {
  .skill-row { grid-template-columns: 32px 1fr 72px; grid-template-rows: auto auto; gap: 8px; }
  .skill-row .score-btns { grid-column: 1/-1; }
}

/* type pill — pastel */
.type-pill {
  font-size: 11px; font-weight: 700; padding: 0 8px;
  border-radius: 50px; cursor: pointer;
  border: 1.5px solid var(--border); color: var(--text2);
  background: var(--bg2); transition: all 0.15s;
  font-family: var(--fe); letter-spacing: 0.04em;
  text-align: center; display: flex; align-items: center;
  justify-content: center; width: 100%; height: 42px; white-space: nowrap;
}
.type-pill.hard { border-color: var(--hard-border); background: var(--hard-bg); color: var(--hard-text); }
.type-pill.soft { border-color: var(--soft-border); background: var(--soft-bg); color: var(--soft-text); }

/* score buttons — perfect circle */
.score-btns { display: flex; gap: 4px; align-items: center; }
.score-btn {
  width: 32px; height: 32px;
  border-radius: 50%;           /* 완전 원형 */
  border: 1.5px solid var(--border);
  background: var(--bg2); color: var(--text3);
  font-size: 12px; font-weight: 700;
  font-family: var(--fe); cursor: pointer; transition: all 0.12s;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; line-height: 1;
}
.score-btn:hover { border-color: var(--accent-border); background: var(--accent-bg); color: var(--accent); }
.score-btn.on { background: var(--accent); border-color: var(--accent); color: #fff; }

/* del btn */
.del-btn {
  width: 28px; height: 28px; border-radius: 50%;
  border: 1.5px solid var(--border); background: transparent;
  color: var(--text3); cursor: pointer; display: flex;
  align-items: center; justify-content: center;
  font-size: 15px; line-height: 1; transition: all 0.15s; flex-shrink: 0;
}
.del-btn:hover { border-color: var(--red-border); color: var(--red); background: var(--red-bg); }
.plan-del-btn {
  width: 32px; height: 32px; border-radius: 50%;
  border: 1.5px solid var(--border); background: transparent;
  color: var(--text3); cursor: pointer; display: flex;
  align-items: center; justify-content: center;
  font-size: 16px; line-height: 1; transition: all 0.15s; flex-shrink: 0;
}
.plan-del-btn:hover { border-color: var(--red-border); color: var(--red); background: var(--red-bg); }

.add-btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 0; background: transparent; border: none;
  color: var(--text2); font-size: 13.5px; font-family: var(--fb);
  cursor: pointer; transition: color 0.15s; margin-top: 8px; line-height: 1;
}
.add-btn:hover { color: var(--accent); }
.add-btn-circle {
  width: 26px; height: 26px;
  border: 1.5px dashed var(--border2); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; transition: border-color 0.15s; flex-shrink: 0; line-height: 1;
}
.add-btn:hover .add-btn-circle { border-color: var(--accent); }

/* ── スキル例示チップ ── */
.skill-suggestions {
  margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--border2);
}
.skill-sug-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--text3);
  font-family: var(--fe); margin-bottom: 10px;
}
.skill-sug-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.sug-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 13px; border-radius: 50px;
  border: 1.5px dashed var(--border2); background: var(--bg2);
  color: var(--text2); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s;
}
.sug-chip:hover { border-color: var(--accent); border-style: solid; background: var(--accent-bg); color: var(--accent); }
.sug-chip-plus { font-size: 14px; font-weight: 700; color: var(--text3); }
.sug-chip:hover .sug-chip-plus { color: var(--accent); }

/* ════════════ 2×2 MATRIX — 十字線 ════════════ */
.matrix-outer { margin-top: 16px; }
.matrix-layout {
  --matrix-y-width: 28px;
  --matrix-gap: 12px;
}
.matrix-main {
  display: flex;
  gap: var(--matrix-gap);
  align-items: stretch;
}

/* Y軸ラベル列 */
.matrix-y-labels {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
  width: var(--matrix-y-width);
  padding: 10px 0 8px;
}
/*
  writing-mode: vertical-rl → 右から左へ列が並ぶ、テキストは上→下
  writing-mode: vertical-lr → 左から右へ列が並ぶ、テキストは上→下

  「好き(5)→」 を画面上部に、矢印が下を向くように表示:
    vertical-rl + rotate(180deg) で上下左右を反転 → 下から上に読む形 → ラベルが上側
  「← 嫌い(1)」 を画面下部に、矢印が上を向くように表示:
    vertical-rl のみ → 上から下に読む形 → ラベルが下側
*/
.matrix-y-label-top {
  font-size: 10px; font-weight: 700; color: var(--text3);
  font-family: var(--fe); letter-spacing: 0.06em;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  user-select: none;
}
.matrix-y-label-bottom {
  font-size: 10px; font-weight: 700; color: var(--text3);
  font-family: var(--fe); letter-spacing: 0.06em;
  white-space: nowrap;
  writing-mode: vertical-rl;
  user-select: none;
}

/* マトリックス本体 */
.matrix-wrap {
  position: relative;
  flex: 1;
  border: 2px solid var(--border2);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.matrix-axis-row-offset {
  margin-left: calc(var(--matrix-y-width) + var(--matrix-gap));
  width: calc(100% - (var(--matrix-y-width) + var(--matrix-gap)));
}
/* 十字線は JS で動的に配置する .matrix-hline / .matrix-vline */
.matrix-hline {
  position: absolute; left: 0; right: 0;
  height: 2px; background: var(--border2); z-index: 3;
  pointer-events: none;
}
.matrix-vline {
  position: absolute; top: 0; bottom: 0;
  left: 50%; width: 2px; background: var(--border2); z-index: 3;
  pointer-events: none;
}
/* グリッド: 列は1:1、行はコンテンツに応じて均等に伸長 */
.matrix-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  position: relative; z-index: 1;
}
/* 各セルを align-items: stretch で親の高さいっぱいに */
.m-cell {
  padding: 18px 16px;
  min-height: 130px;
  transition: box-shadow 0.2s;
  display: flex;
  flex-direction: column;
}
.m-cell:hover { box-shadow: inset 0 0 0 2px rgba(45,106,79,0.15); }

.m-hobby  { background: rgba(239,246,255,0.85); }
.m-job    { background: rgba(238,246,241,0.85); }
.m-cut    { background: rgba(255,241,242,0.85); }
.m-endure { background: rgba(255,251,235,0.85); }

.mc-top { display: flex; align-items: center; gap: 7px; margin-bottom: 5px; }
.mc-badge {
  font-size: 10px; font-weight: 700; padding: 2px 9px;
  border-radius: 50px; font-family: var(--fe);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.m-hobby  .mc-badge { background: var(--blue);   color: #fff; }
.m-job    .mc-badge { background: var(--accent);  color: #fff; }
.m-cut    .mc-badge { background: var(--red);     color: #fff; }
.m-endure .mc-badge { background: var(--amber);   color: #fff; }
.mc-title { font-size: 12px; font-weight: 700; font-family: var(--fe); }
.m-hobby  .mc-title { color: var(--blue); }
.m-job    .mc-title { color: var(--accent2); }
.m-cut    .mc-title { color: var(--red); }
.m-endure .mc-title { color: var(--amber); }
.mc-sub { font-size: 11px; color: var(--text3); line-height: 1.5; margin-bottom: 10px; }
.mc-chips { display: flex; flex-wrap: wrap; gap: 5px; min-height: 24px; }

.cd {
  display: inline-block; font-size: 12px; font-weight: 500;
  padding: 3px 10px; border-radius: 50px; margin: 2px;
  animation: popIn 0.2s ease both;
}
.cd-green { background: rgba(45,106,79,0.12); color: var(--accent2); }
.cd-blue  { background: rgba(30,64,175,0.1);  color: var(--blue); }
.cd-amber { background: rgba(146,64,14,0.1);  color: var(--amber); }
.cd-red   { background: rgba(153,27,27,0.1);  color: var(--red); }
.cd-empty { font-size: 12px; color: var(--text3); font-style: italic; }

/* 軸ラベル X */
.matrix-axis-row {
  display: flex; justify-content: space-between;
  padding: 6px 4px 0;
  font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
  color: var(--text3); font-family: var(--fe);
}

/* ════════════ SCORE LEGEND ════════════ */
.score-legend {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px; margin-top: 20px;
}
.legend-box {
  background: var(--bg2); border-radius: var(--r); padding: 16px 18px;
  border: 1px solid var(--border);
}
.legend-title {
  font-size: 13px; font-weight: 700; font-family: var(--fe);
  color: var(--text); margin-bottom: 10px;
  padding-bottom: 8px; border-bottom: 1px solid var(--border);
}
.legend-table { width: 100%; border-collapse: collapse; }
.legend-table td { padding: 4px 0; font-size: 12.5px; color: var(--text2); line-height: 1.5; }
.legend-table td:first-child {
  font-weight: 700; color: var(--accent); font-family: var(--fe);
  width: 22px; padding-right: 8px;
}
.legend-table tr:last-child td { color: var(--text3); }

/* ════════════ PLAN ITEMS ════════════ */
.plan-item {
  background: var(--bg2); border: 1.5px solid var(--border);
  border-radius: var(--r-lg); padding: 20px;
  margin-bottom: 12px; animation: fadeUp 0.2s ease both;
}
.plan-top {
  display: grid; grid-template-columns: 1fr auto 32px;
  gap: 10px; margin-bottom: 16px; align-items: center;
}
@media (max-width: 600px) { .plan-top { grid-template-columns: 1fr 32px; } }

/* term dropdown — no emoji, styled badge */
.term-sel {
  appearance: none; height: 38px;
  background: #ffffff; border: 1.5px solid var(--border);
  border-radius: 50px; padding: 0 30px 0 14px;
  font-size: 13px; font-family: var(--fb); color: var(--text);
  cursor: pointer; outline: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23a09c94'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center;
  white-space: nowrap; min-width: 130px;
}
.term-sel:focus { border-color: var(--accent); outline: none; }
/* term color indicators via JS class */
.term-short { border-color: var(--accent-border)!important; color: var(--accent)!important; }
.term-mid   { border-color: var(--amber-border)!important;  color: var(--amber)!important; }
.term-long  { border-color: var(--blue-border)!important;   color: var(--blue)!important; }

.smart-row-label {
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--text3);
  font-family: var(--fe); margin-bottom: 10px;
}
.smart-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.smart-box {
  background: #ffffff; border: 1.5px solid var(--border);
  border-radius: 12px; padding: 12px 8px 10px;
  text-align: center; transition: all 0.15s;
  display: flex; flex-direction: column; align-items: center;
}
.smart-box.ok      { border-color: var(--accent-border); background: var(--accent-bg); }
.smart-box.partial { border-color: var(--amber-border);  background: var(--amber-bg); }
.smart-box.no      { border-color: var(--red-border);    background: var(--red-bg); }
.smart-L {
  font-family: var(--fe); font-size: 20px; font-weight: 800;
  color: var(--text3); line-height: 1; margin-bottom: 2px;
}
.smart-box.ok .smart-L      { color: var(--accent); }
.smart-box.partial .smart-L { color: var(--amber); }
.smart-box.no .smart-L      { color: var(--red); }
.smart-word { font-size: 9px; color: var(--text3); line-height: 1.3; margin-bottom: 7px; font-family: var(--fe); }
.smart-btns { display: flex; gap: 3px; justify-content: center; margin-bottom: 8px; }
.smart-btn {
  padding: 0; width: 24px; height: 22px; border-radius: 5px;
  border: 1px solid var(--border); background: transparent;
  font-size: 10px; cursor: pointer; color: var(--text3);
  transition: all 0.12s; display: flex; align-items: center;
  justify-content: center; line-height: 1;
}
.smart-btn:hover { background: var(--bg2); }
.smart-btn.s-ok      { background: var(--accent); border-color: var(--accent); color: #fff; }
.smart-btn.s-partial { background: var(--amber);  border-color: var(--amber);  color: #fff; }
.smart-btn.s-no      { background: var(--red);    border-color: var(--red);    color: #fff; }

/* SMART メモ欄 */
.smart-memo {
  width: 100%; font-size: 10px; font-family: var(--fb);
  color: var(--text2); background: rgba(255,255,255,0.7);
  border: 1px solid var(--border); border-radius: 6px;
  padding: 4px 6px; resize: none; outline: none;
  transition: border-color 0.15s; line-height: 1.5;
  min-height: 42px;
}
.smart-memo::placeholder { color: var(--text3); font-size: 10px; }
.smart-memo:focus { border-color: var(--accent); background: #fff; }
.smart-box.ok .smart-memo      { border-color: var(--accent-border); }
.smart-box.partial .smart-memo { border-color: var(--amber-border); }
.smart-box.no .smart-memo      { border-color: var(--red-border); }

/* SMART 凡例 */
.smart-legend {
  display: flex; gap: 14px; flex-wrap: wrap;
  padding: 10px 14px; background: var(--bg2);
  border-radius: var(--r); margin-bottom: 12px; border: 1px solid var(--border);
}
.smart-legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text2); }
.smart-legend-icon {
  width: 20px; height: 20px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
}
.sl-ok      { background: var(--accent); color: #fff; }
.sl-partial { background: var(--amber);  color: #fff; }
.sl-no      { background: var(--red);    color: #fff; }

/* ════════════ NAV FOOTER ════════════ */
.step-footer {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--border);
}
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 0 26px; height: 46px; border-radius: 50px;
  font-size: 14px; font-family: var(--fb); cursor: pointer;
  transition: all 0.18s; font-weight: 500; border: none; line-height: 1;
}
.btn-outline {
  background: transparent; border: 1.5px solid var(--border2); color: var(--text2);
}
.btn-outline:hover { background: var(--bg3); color: var(--text); }
.btn-primary {
  background: var(--accent); color: #fff;
  box-shadow: 0 2px 10px rgba(45,106,79,0.28);
}
.btn-primary:hover { background: var(--accent2); transform: translateY(-1px); box-shadow: 0 4px 18px rgba(45,106,79,0.33); }
.btn-primary:active { transform: none; }

/* ════════════ AI PANEL ════════════ */
.ai-panel {
  background: #ffffff; border: 1.5px solid var(--accent-border);
  border-radius: var(--r-xl); padding: 26px 30px;
  margin-top: 24px; box-shadow: var(--shadow);
}
.ai-header { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; }
.ai-icon {
  width: 32px; height: 32px; background: var(--accent); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; flex-shrink: 0; color: white;
}
.ai-label { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); font-family: var(--fe); }
.ai-body { font-size: 14px; color: var(--text2); line-height: 1.85; }
.ai-body p + p { margin-top: 10px; }
.ai-body strong { color: var(--accent2); font-weight: 600; }
.ai-body ul { padding-left: 18px; margin-top: 8px; }
.ai-body li { margin-bottom: 7px; }
.ai-actions { display: flex; align-items: center; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.ai-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 0 18px; height: 38px; border-radius: 50px;
  border: 1.5px solid var(--accent-border); background: var(--accent-bg);
  color: var(--accent); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s; font-weight: 500; line-height: 1;
}
.ai-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.ai-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.ai-key-note { font-size: 12px; color: var(--text3); }
.ai-key-note a { color: var(--accent); cursor: pointer; text-decoration: underline; }
.ai-dots { display: inline-flex; gap: 4px; align-items: center; }
.ai-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); animation: dotBlink 1.2s ease infinite; }
.ai-dot:nth-child(2) { animation-delay: 0.2s; }
.ai-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes dotBlink { 0%,80%,100%{opacity:0.3;transform:scale(0.75);}40%{opacity:1;transform:scale(1);} }

/* ════════════ MODAL ════════════ */
.modal-bg {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,0.45); z-index: 900;
  align-items: center; justify-content: center; padding: 24px;
}
.modal-bg.show { display: flex; }
.modal {
  background: #ffffff; border-radius: var(--r-xl);
  padding: 34px 34px 30px; max-width: 500px; width: 100%;
  box-shadow: var(--shadow-md); animation: modalIn 0.25s ease both;
}
@keyframes modalIn { from{opacity:0;transform:scale(0.95);}to{opacity:1;transform:scale(1);} }
.modal-title { font-family: var(--fe); font-size: 19px; font-weight: 800; margin-bottom: 8px; }
.modal-desc { font-size: 13px; color: var(--text2); line-height: 1.75; margin-bottom: 20px; }
.modal-desc a { color: var(--accent); text-decoration: underline; }
.modal-actions { display: flex; gap: 9px; justify-content: flex-end; margin-top: 18px; }
.modal-save {
  height: 40px; padding: 0 22px; border-radius: 50px; border: none;
  background: var(--accent); color: #fff; font-size: 13px; font-family: var(--fb);
  cursor: pointer; font-weight: 500; transition: background 0.15s;
  display: inline-flex; align-items: center;
}
.modal-save:hover { background: var(--accent2); }
.modal-cancel {
  height: 40px; padding: 0 22px; border-radius: 50px;
  border: 1.5px solid var(--border2); background: transparent;
  color: var(--text2); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: background 0.15s; display: inline-flex; align-items: center;
}
.modal-cancel:hover { background: var(--bg2); }
.key-status {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  font-size: 11px; padding: 0 12px; height: 28px; border-radius: 50px;
  background: var(--accent-bg); color: var(--accent);
  border: 1px solid var(--accent-border); cursor: pointer;
  font-family: var(--fe); font-weight: 600; letter-spacing: 0.06em;
  transition: all 0.15s; margin-left: auto; white-space: nowrap;
}
.key-status:hover { background: var(--accent); color: #fff; }
.key-status.no-key { background: var(--bg3); color: var(--text3); border-color: var(--border); }
.key-status.no-key:hover { background: var(--bg2); color: var(--text2); }
.provider-tabs { display: flex; gap: 7px; margin-bottom: 18px; }
.ptab {
  flex: 1; padding: 10px 8px; border-radius: var(--r);
  border: 1.5px solid var(--border); background: var(--bg2);
  cursor: pointer; text-align: center; transition: all 0.15s;
}
.ptab:hover { border-color: var(--accent-border); background: var(--accent-bg); }
.ptab.on { border-color: var(--accent); background: var(--accent-bg); }
.ptab-logo { font-size: 18px; margin-bottom: 3px; }
.ptab-name { font-size: 12px; font-weight: 700; font-family: var(--fe); color: var(--text); }
.ptab.on .ptab-name { color: var(--accent2); }
.ptab-model { font-size: 10px; color: var(--text3); margin-top: 2px; }
.provider-field { display: none; }
.provider-field.show { display: block; }

/* ════════════ SUMMARY / STEP 5 ════════════ */
.sum-hero {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%);
  border-radius: var(--r-xl); padding: 34px; margin-bottom: 20px; color: #fff;
}
.sum-hero-label { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.6; font-family: var(--fe); margin-bottom: 9px; }
.sum-hero-quote { font-family: var(--fe); font-size: clamp(15px,2.2vw,21px); font-weight: 700; line-height: 1.5; opacity: 0.95; }
.sum-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 600px) { .sum-grid { grid-template-columns: 1fr; } }
.sum-card { background: #ffffff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow); }
.sum-card.full { grid-column: 1/-1; }
.sum-lbl { font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text3); font-family: var(--fe); margin-bottom: 9px; }
.sum-val { font-size: 14px; color: var(--text); line-height: 1.75; }

/* 実行プラン: 表形式 SMART */
.plan-sum-table { width: 100%; border-collapse: collapse; margin-top: 6px; }
.plan-sum-table th {
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--text3); font-family: var(--fe);
  text-align: center; padding: 6px 8px; border-bottom: 2px solid var(--border);
}
.plan-sum-table th:first-child { text-align: left; padding-left: 0; }
.plan-sum-table td {
  font-size: 13px; color: var(--text); padding: 10px 8px;
  border-bottom: 1px solid var(--border); vertical-align: middle;
}
.plan-sum-table td:first-child { padding-left: 0; }
.plan-sum-table tr:last-child td { border-bottom: none; }
.plan-sum-table .term-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 700; font-family: var(--fe);
  padding: 2px 8px; border-radius: 50px; white-space: nowrap;
}
.tb-short { background: var(--accent-bg); color: var(--accent); }
.tb-mid   { background: var(--amber-bg);  color: var(--amber); }
.tb-long  { background: var(--blue-bg);   color: var(--blue); }
.smart-dot-ok      { color: var(--accent); font-size: 14px; display: block; text-align: center; }
.smart-dot-partial { color: var(--amber);  font-size: 14px; display: block; text-align: center; }
.smart-dot-no      { color: var(--red);    font-size: 14px; display: block; text-align: center; }
.smart-dot-empty   { color: var(--text3);  font-size: 12px; display: block; text-align: center; }

.plan-legend {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 8px 12px; background: var(--bg2);
  border-radius: var(--r); margin-bottom: 10px;
  border: 1px solid var(--border); font-size: 11px; color: var(--text2);
}
.plan-legend-item { display: flex; align-items: center; gap: 4px; }

.copy-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 0 22px; height: 46px; border-radius: 50px;
  border: 1.5px solid var(--border2); background: #ffffff;
  color: var(--text2); font-size: 13px; font-family: var(--fb);
  cursor: pointer; transition: all 0.15s; line-height: 1;
}
.copy-btn:hover { border-color: var(--accent); color: var(--accent); }

/* ── TOAST ── */
#toast {
  position: fixed; bottom: 28px; left: 50%;
  transform: translateX(-50%) translateY(16px);
  background: var(--text); color: var(--bg);
  padding: 10px 22px; border-radius: 50px; font-size: 13px;
  opacity: 0; transition: all 0.25s; pointer-events: none;
  z-index: 9999; white-space: nowrap; box-shadow: var(--shadow-md);
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── NOTICE ── */
.notice {
  background: var(--amber-bg); border: 1px solid var(--amber-border);
  border-radius: var(--r); padding: 13px 17px;
  font-size: 13px; color: var(--amber); line-height: 1.7; margin: 14px 0;
}
.notice strong { font-weight: 600; }


/* === v13 modular QA overrides === */
body { background:#ffffff; }
.shell { box-shadow:none; background:#ffffff; max-width:1360px; }
.sidebar { border-right:none; }
.main { background:#f7f7f7; }
textarea, input[type="text"], input[type="password"], .legend-box, .plan-item, .smart-legend, .term-sel, .type-pill:not(.hard):not(.soft), .sug-chip, .icon-btn { background:#f7f7f7; }
.step-nav-list { padding: 0 6px; }
.step-nav-item { margin: 0 0 4px; padding: 11px 12px; background: transparent; }
.step-nav-item:hover { background: transparent; }
.step-nav-item.active { background: var(--accent-bg); }
.step-nav-item.done { opacity: 1; background: transparent; }
.step-nav-item.done .nav-step-title, .step-nav-item.done .nav-step-num { color: var(--text2); }
.step-nav-item.done .nav-dot { background: #fff; }
.sidebar-progress-card { margin: 14px 6px 18px; padding: 16px; border:1px solid var(--border); background:#fff; border-radius:18px; box-shadow: var(--shadow); }
.sidebar-progress-label { font-size: 11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color: var(--text3); font-family: var(--fe); margin-bottom:10px; }
.sidebar-progress-track { height:10px; background:#eef0eb; border-radius:999px; overflow:hidden; }
.sidebar-progress-bar { height:100%; width:20%; background: linear-gradient(90deg,var(--accent),var(--accent2)); border-radius:999px; transition:width .25s ease; }
.sidebar-progress-text { margin-top:10px; font-size:12px; color:var(--text2); line-height:1.6; }
.flow-review-card { margin-top: 24px; }
.flow-review-head { font-size: 11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); font-family: var(--fe); margin-bottom:10px; }
.flow-review-score { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:0 12px; border-radius:999px; font-size:12px; font-weight:700; margin-bottom:12px; }
.flow-review-score.score-good { background: var(--accent-bg); color: var(--accent2); border:1px solid var(--accent-border); }
.flow-review-score.score-mid { background: #fff8eb; color: #8a5a00; border:1px solid #eed39a; }
.flow-review-score.score-bad { background: #fff1f2; color: var(--red); border:1px solid var(--red-border); }
.flow-review-body { font-size:14px; color:var(--text2); line-height:1.8; margin-bottom:10px; }
.flow-review-list { padding-left:18px; color:var(--text2); }
.flow-review-list li { margin-bottom:8px; line-height:1.75; }
.matrix-outer { margin-top:20px; }
.matrix-layout { display:grid; grid-template-columns: 56px 1fr; gap:16px; align-items:stretch; }
.matrix-y-meta { display:flex; flex-direction:column; justify-content:space-between; align-items:center; }
.matrix-axis-title-v, .matrix-axis-title-h { font-size:13px; font-weight:700; color:var(--text2); font-family:var(--fe); letter-spacing:.04em; }
.matrix-axis-title-v { writing-mode: vertical-rl; transform: rotate(180deg); }
.matrix-y-labels { width:56px; padding:0; }
.matrix-y-label-top, .matrix-y-label-bottom { font-size:12px; font-weight:700; color:var(--text2); writing-mode: vertical-rl; white-space:nowrap; letter-spacing:.04em; }
.matrix-y-label-top { transform:none; }
.matrix-y-label-bottom { transform: rotate(180deg); }
.matrix-wrap { background:#fff; border:1.5px solid var(--border2); border-radius:20px; }
.matrix-hline, .matrix-vline { background:#d8d5cd; }
.m-cell { min-height:160px; padding:22px 18px; }
.matrix-axis-row { padding:10px 6px 0; font-size:12px; color:var(--text2); font-weight:700; font-family:var(--fe); letter-spacing:.04em; }
.matrix-axis-row.with-title { display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:10px; }
.matrix-axis-row.with-title .left, .matrix-axis-row.with-title .right { display:flex; }
.matrix-axis-row.with-title .right { justify-content:flex-end; }
.smart-box.partial { border-color:#d7c28a; background:#fff9ef; }
.smart-box.partial .smart-L { color:#9b6c00; }
.smart-btn.s-partial, .sl-partial { background:#b88516; color:#fff; border-color:#b88516; }
.smart-dot-partial { color:#b88516; }
.plan-sum-table td { vertical-align: middle; }
.plan-sum-cell { text-align:center; }
.plan-sum-memo { margin-top:6px; font-size:11px; color:var(--text2); line-height:1.55; text-align:center; white-space:pre-wrap; }
.sum-grid { align-items:stretch; }
.sum-card { display:flex; flex-direction:column; }
.sum-val, #sum-job, #sum-hobby, #sum-plans { flex:1; }
@media (max-width: 980px) { .matrix-layout { grid-template-columns: 1fr; } .matrix-y-meta { flex-direction:row; justify-content:space-between; } .matrix-axis-title-v { writing-mode: horizontal-tb; transform:none; } .matrix-y-labels { width:auto; display:flex; justify-content:space-between; } .matrix-y-label-top, .matrix-y-label-bottom { writing-mode: horizontal-tb; transform:none; } }


/* v14 refinements */
.custom-actions-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.add-q-btn.secondary{border-style:solid;background:#fff;color:var(--accent)}
.add-q-btn.secondary:hover{background:var(--accent-bg)}
.purpose-card .card-hint strong{color:var(--accent2);font-weight:700}
.card{margin-bottom:20px}
.step-footer{margin-top:48px}
.smart-memo{min-height:76px;padding:8px 8px}
.smart-box{align-items:stretch}
.smart-word{text-align:center}
.matrix-layout{grid-template-columns:72px 1fr;gap:18px}
.matrix-y-meta{position:relative;justify-content:stretch;align-items:center;padding:6px 0}
.matrix-axis-title-v{writing-mode:vertical-rl;transform:none;font-size:14px;color:#29405c;display:flex;align-items:center;justify-content:center;min-height:120px}
.matrix-y-labels{display:flex;flex-direction:column;justify-content:space-between;align-items:center;min-height:360px;width:72px}
.matrix-y-label-top,.matrix-y-label-bottom{writing-mode:horizontal-tb;transform:none;font-size:14px;line-height:1.2;color:#29405c}
.matrix-y-label-top{margin-top:4px}
.matrix-y-label-bottom{margin-bottom:4px}
.matrix-wrap{position:relative;background:#fff;border:1.5px solid #cfd7df;border-radius:26px;overflow:visible;padding:0}
.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
.matrix-hline,.matrix-vline{background:#d5dde4}
.matrix-vline{left:50%;top:0;bottom:0;width:1.5px}
.matrix-hline{left:0;right:0;height:1.5px}
.m-cell{min-height:190px;padding:22px 20px;border-radius:0}
.m-cell:nth-child(1){border-top-left-radius:24px}
.m-cell:nth-child(2){border-top-right-radius:24px}
.m-cell:nth-child(3){border-bottom-left-radius:24px}
.m-cell:nth-child(4){border-bottom-right-radius:24px}
.mc-top{align-items:flex-start;gap:8px}
.mc-title{font-size:14px;line-height:1.4}
.mc-sub{font-size:12px;line-height:1.6;min-height:38px}
.matrix-axis-row.with-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 8px 0}
.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right{font-size:14px;color:#29405c;font-weight:700}
.matrix-axis-title-h{font-size:14px;color:#29405c}
.matrix-axis-baseline{position:relative;height:20px;margin-top:8px}
.matrix-axis-baseline::before{content:'';position:absolute;left:0;right:0;top:8px;border-top:2px solid #29405c}
@media (max-width:980px){
  .matrix-layout{grid-template-columns:1fr;gap:12px}
  .matrix-y-meta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}
  .matrix-axis-title-v{writing-mode:horizontal-tb;min-height:auto}
  .matrix-y-labels{min-height:auto;width:auto;flex-direction:row}
}


/* === v15 layout and QA fixes === */
:root{--bg2:#f7f7f7;--amber:#b56a1e;--amber-bg:#fff6ea;--amber-border:#f2c58f}
.shell{grid-template-columns:320px minmax(0,1fr);max-width:1580px;box-shadow:none;background:#fff}
.sidebar{border-right:none;padding:44px 20px 36px;background:#fff}
.step-nav-list{list-style:none;flex:0 0 auto;margin:0 6px}
.step-nav-item{padding:11px 14px;margin-bottom:6px;background:transparent}
.step-nav-item:hover{background:transparent}
.step-nav-item.done{opacity:1;background:transparent}
.step-nav-item.done .nav-step-title{color:var(--text)}
.step-nav-item.done .nav-dot{background:#fff;border-color:var(--accent-border);color:var(--accent)}
.step-nav-item.active{background:var(--accent-bg)}
.sidebar-progress-card{margin:80px 6px 18px;padding:18px 18px 16px;border:1px solid var(--border);background:#fff;border-radius:20px;box-shadow:var(--shadow)}
.main{padding:56px 72px 96px;background:#f7f7f7;min-width:0}
.card{margin-bottom:22px}
textarea,input[type="text"],input[type="password"],.legend-box,.plan-item,.modal,.term-sel,.smart-memo,.smart-legend,.plan-legend{background:#f7f7f7}
.add-btn-circle,.icon-btn,.del-btn,.plan-del-btn,.smart-btn,.score-btn,.nav-dot,.sug-chip-plus,.lang-btn,.term-badge,.smart-legend-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.sug-chip-plus{width:16px;height:16px}
.step-nav-item>div:last-child{min-width:0}
.plan-sum-table{width:100%;table-layout:fixed;border-collapse:collapse}
.plan-sum-table th,.plan-sum-table td{word-break:break-word;overflow-wrap:anywhere}
.plan-sum-table th:first-child,.plan-sum-table td:first-child{width:30%;min-width:320px}
.plan-sum-table th:not(:first-child),.plan-sum-table td:not(:first-child){width:14%}
.plan-sum-table td{padding:12px 10px;vertical-align:top}
.plan-sum-cell{text-align:center}
.plan-sum-memo{margin:8px auto 0;max-width:10ch;white-space:normal;line-height:1.5;text-align:center;font-size:11px;color:var(--text2)}
.smart-memo{min-height:104px;padding:10px 10px}
.matrix-outer{margin-top:22px}
.matrix-layout{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:stretch}
.matrix-layout>div:last-child{min-width:0}
.matrix-y-meta{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:100%}
.matrix-axis-title-v{writing-mode:vertical-rl;transform:none;font-size:16px;font-weight:700;color:#29405c;display:flex;align-items:center;justify-content:center;letter-spacing:.04em}
.matrix-y-labels{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:88px;min-height:380px}
.matrix-y-label-top,.matrix-y-label-bottom{writing-mode:horizontal-tb;transform:none;font-size:15px;font-weight:700;line-height:1.2;color:#29405c}
.matrix-wrap{position:relative;border:1.5px solid #cad5df;border-radius:28px;background:#fff;overflow:hidden}
.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
.matrix-hline,.matrix-vline{background:#d5dde4}
.matrix-vline{left:50%;top:0;bottom:0;width:1.5px}
.matrix-hline{left:0;right:0;height:1.5px}
.m-cell{padding:20px 18px;min-height:165px}
.matrix-axis-row.with-title{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 8px 0}
.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right,.matrix-axis-title-h{font-size:15px;font-weight:700;color:#29405c}
.matrix-axis-row.with-title .right{text-align:right}
.smart-box.partial{border-color:var(--amber-border);background:var(--amber-bg)}
.smart-box.partial .smart-L{color:var(--amber)}
.smart-btn.s-partial{background:var(--amber);border-color:var(--amber);color:#fff}
@media (max-width:1280px){.shell{grid-template-columns:300px minmax(0,1fr);max-width:1440px}.main{padding:48px 40px 80px}.plan-sum-table th:first-child,.plan-sum-table td:first-child{width:34%}}
@media (max-width:980px){.matrix-layout{grid-template-columns:1fr;gap:12px}.matrix-y-meta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.matrix-axis-title-v{writing-mode:horizontal-tb}.matrix-y-labels{width:auto;min-height:auto;flex-direction:row}.plan-sum-table{display:block;overflow-x:auto;white-space:normal}}


/* v16 refinement overrides */
.shell{grid-template-columns:280px minmax(0,820px);max-width:1160px;background:#f7f7f7}
.main{padding:56px 56px 88px;background:#f7f7f7}
@media (max-width:1080px){.shell{grid-template-columns:240px minmax(0,1fr);max-width:1080px}.main{padding:44px 36px 72px}}

.matrix-layout{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;align-items:stretch}
.matrix-y-meta{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:380px;padding:8px 0}
.matrix-axis-title-v{writing-mode:vertical-rl;transform:none;font-size:16px;font-weight:700;color:#29405c;letter-spacing:.04em;display:flex;align-items:center;justify-content:center}
.matrix-y-label-top,.matrix-y-label-bottom{writing-mode:horizontal-tb;transform:none;font-size:15px;font-weight:700;line-height:1.2;color:#29405c;text-align:center}
.matrix-y-label-top{order:1}
.matrix-axis-title-v{order:2;flex:1}
.matrix-y-label-bottom{order:3}
.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right,.matrix-axis-title-h{font-size:15px;font-weight:700;color:#29405c}
@media (max-width:980px){.matrix-layout{grid-template-columns:1fr;gap:12px}.matrix-y-meta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:auto;padding:0}.matrix-axis-title-v{writing-mode:horizontal-tb}.matrix-y-label-top,.matrix-y-label-bottom{font-size:14px}}


/* added features without layout reset */
.ideal-extra-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.ideal-extra-row textarea{flex:1}
.ai-inline-note{width:100%;font-size:12px;color:var(--text3);line-height:1.6;margin-top:2px}
.vision-line + .vision-line{margin-top:6px}
.plan-progress-box{margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#fff}
.plan-progress-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:var(--text2)}
.plan-progress-head strong{font-family:var(--fe);font-size:13px;color:var(--accent2)}
.plan-progress-range{width:100%;accent-color:var(--accent);margin:0 0 10px}
.plan-progress-note-input{width:100%;height:38px;background:var(--bg2);border:1.5px solid var(--border);border-radius:10px;padding:0 12px;font-size:12px;font-family:var(--fb);color:var(--text)}
.plan-progress-note-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(45,106,79,0.09);outline:none}


/* workspace rail + modern progress + print */
.shell{grid-template-columns:280px minmax(0,820px) 78px;max-width:1248px;background:#f7f7f7}
@media (max-width:1080px){.shell{grid-template-columns:240px minmax(0,1fr) 68px;max-width:1148px}}
@media (max-width:900px){.shell{grid-template-columns:1fr}.workspace-rail{display:none}}
.workspace-rail{background:transparent;display:flex;align-items:flex-start;justify-content:flex-start;padding:56px 0 0 0}
.workspace-rail-inner{position:sticky;top:56px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.workspace-add{width:40px;height:40px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-size:24px;font-family:var(--fe);cursor:pointer;box-shadow:0 8px 18px rgba(45,106,79,.18);transition:transform .15s,box-shadow .15s}
.workspace-add:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(45,106,79,.22)}
.workspace-tabs{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.workspace-tab{writing-mode:vertical-rl;transform:rotate(180deg);min-height:120px;padding:16px 10px;border-radius:0 18px 18px 0;border:1px solid var(--border);border-left:none;background:#eef1ec;color:var(--text2);font-size:12px;letter-spacing:.06em;font-family:var(--fe);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.workspace-tab:hover{background:#f3f5f1;color:var(--accent2)}
.workspace-tab.active{background:#fff;color:var(--accent2);font-weight:700;box-shadow:var(--shadow)}
.ai-panel-bottom{margin-top:18px}
.step-footer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:640px){.step-footer{align-items:flex-start;gap:12px;flex-direction:column}.step-footer-actions{width:100%;justify-content:flex-start}}
.plan-progress-box.modern{margin-top:14px;padding:14px;border:1px solid #dfe4db;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fafbf9 100%)}
.plan-progress-row{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:12px;align-items:center}
.plan-progress-control{min-width:0}
.plan-progress-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;color:var(--text2)}
.plan-progress-head strong{font-family:var(--fe);font-size:15px;color:var(--accent2)}
.plan-progress-slider{--progress:0%;position:relative;height:14px;border-radius:999px;padding:0 2px;display:flex;align-items:center;background:linear-gradient(90deg,var(--accent) 0%,var(--accent2) var(--progress),#e7ece6 var(--progress),#e7ece6 100%);box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.plan-progress-range{-webkit-appearance:none;appearance:none;width:100%;background:transparent;margin:0}
.plan-progress-range::-webkit-slider-runnable-track{height:14px;background:transparent;border:none}
.plan-progress-range::-moz-range-track{height:14px;background:transparent;border:none}
.plan-progress-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin-top:-2px;border-radius:50%;border:2px solid #fff;background:var(--accent2);box-shadow:0 2px 8px rgba(27,67,50,.28);cursor:pointer}
.plan-progress-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:2px solid #fff;background:var(--accent2);box-shadow:0 2px 8px rgba(27,67,50,.28);cursor:pointer}
.plan-progress-note{min-width:0}
.plan-progress-note-input{width:100%;height:46px;background:#f4f6f2;border:1.5px solid #dbe2d7;border-radius:12px;padding:0 14px;font-size:12px;font-family:var(--fb);color:var(--text)}
.plan-progress-note-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(45,106,79,.09);outline:none}
@media (max-width:900px){.plan-progress-row{grid-template-columns:1fr}.plan-progress-note-input{height:42px}}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body.print-summary .lang-switcher,
  body.print-summary .workspace-rail,
  body.print-summary .sidebar,
  body.print-summary #toast,
  body.print-summary .modal-bg,
  body.print-summary .step-footer,
  body.print-summary .flow-review-card,
  body.print-summary .copy-btn{display:none !important}
  body.print-summary .shell,
  body.print-summary .shell-wrap,
  body.print-summary .main{display:block !important;max-width:none !important;width:auto !important;padding:0 !important;background:#fff !important;box-shadow:none !important}
  body.print-summary .step-panel{display:none !important}
  body.print-summary #step5{display:block !important}
  body.print-summary .card,
  body.print-summary .sum-card,
  body.print-summary .sum-hero{break-inside:avoid;box-shadow:none !important}
}


/* === user requested fine-tuning === */
.shell{grid-template-columns:280px minmax(0,1fr) 78px;width:calc(100vw - 120px);max-width:calc(100vw - 120px)}
.main{padding:56px 60px 96px}
.plan-sum-table{width:100%;table-layout:fixed;border-collapse:collapse}
.plan-sum-table th,.plan-sum-table td{word-break:break-word;overflow-wrap:anywhere}
.plan-sum-table th:first-child,.plan-sum-table td:first-child{width:42%;min-width:420px}
.plan-sum-table th:not(:first-child),.plan-sum-table td:not(:first-child){width:11.6%}
.plan-sum-main-row td{vertical-align:middle}
.plan-sum-progress-row td{padding-top:0;padding-bottom:14px;background:transparent;border-top:none}
.summary-progress-box{margin-top:0;padding:12px 14px}
.summary-progress-box .plan-progress-row{grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:center}
.matrix-y-label-top,.matrix-y-label-bottom{font-size:12px}
.matrix-axis-title-v,.matrix-axis-title-h,.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right{font-size:13px}
.mc-badge{font-size:8px}
.mc-title{font-size:12px}
@media (max-width:1440px){.shell{width:calc(100vw - 120px);max-width:calc(100vw - 120px)}}
@media (max-width:1080px){.shell{grid-template-columns:240px minmax(0,1fr) 68px;width:calc(100vw - 48px);max-width:calc(100vw - 48px)}.main{padding:48px 32px 80px}.plan-sum-table th:first-child,.plan-sum-table td:first-child{width:46%;min-width:360px}}
@media (max-width:980px){.matrix-y-label-top,.matrix-y-label-bottom{font-size:12px}.summary-progress-box .plan-progress-row{grid-template-columns:1fr}.plan-sum-table{display:block;overflow-x:auto;white-space:normal;min-width:0}.plan-sum-table th:first-child,.plan-sum-table td:first-child{min-width:320px}}
@media print{
  @page{size:A4 portrait;margin:10mm}
  body.print-summary{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.print-summary #step5>.step-tag,
  body.print-summary #step5>.step-desc,
  body.print-summary #step5>.card,
  body.print-summary #step5>.step-footer{display:none !important}
  body.print-summary #step5{padding:0 !important;margin:0 !important}
  body.print-summary .sum-grid{display:grid !important;grid-template-columns:1fr 1fr !important;gap:10px !important}
  body.print-summary .sum-card.full{grid-column:1 / -1 !important}
  body.print-summary .plan-sum-table th:first-child,
  body.print-summary .plan-sum-table td:first-child{width:40% !important;min-width:0 !important}
  body.print-summary .plan-sum-progress-row td{padding-top:0 !important;padding-bottom:10px !important}
  body.print-summary .summary-progress-box{padding:10px 12px !important}
  body.print-summary .plan-progress-row{grid-template-columns:220px minmax(0,1fr) !important;gap:10px !important}
}


/* === user requested adjustments v3 === */
.shell{grid-template-columns:280px minmax(0,920px) 96px;max-width:1296px;width:100%;background:#f7f7f7}
.main{padding:56px 52px 96px;background:#f7f7f7}
.workspace-rail{background:#f7f7f7;padding:56px 0 0 10px}
.workspace-rail-inner{position:sticky;top:56px;display:block;width:100%}
.workspace-add{display:none !important}
.workspace-tabs{display:flex;flex-direction:column;gap:8px;align-items:stretch;width:100%}
.workspace-tab{writing-mode:horizontal-tb;transform:none;min-height:auto;height:44px;padding:0 14px;border-radius:14px;border:1px solid var(--border);background:#fff;color:var(--text2);font-size:13px;letter-spacing:.01em;font-family:var(--fb);text-align:left;justify-content:flex-start;display:flex;align-items:center;box-shadow:none}
.workspace-tab:hover{background:#f4f6f2;color:var(--accent2)}
.workspace-tab.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent2);font-weight:700;box-shadow:none}
.workspace-add-inline{background:#f7f7f7;border-style:dashed;color:var(--accent);font-weight:700}
.workspace-add-inline:hover{background:#eef6f1}
.matrix-y-label-top,.matrix-y-label-bottom{font-size:12px}
.matrix-axis-title-v,.matrix-axis-title-h,.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right{font-size:13px}
.mc-badge{font-size:8px}
.mc-title{font-size:12px}
.plan-progress-slider{user-select:none}
.plan-progress-range{cursor:grab}
.plan-progress-range:active{cursor:grabbing}
.plan-progress-note-input{position:relative;z-index:2}
.strict-review-card{margin-top:24px}
.strict-review-top{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;margin-bottom:16px}
.strict-overall-score{display:flex;flex-direction:column;align-items:center;justify-content:center;height:108px;border-radius:20px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%);color:#fff}
.strict-overall-score span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.strict-overall-score strong{font-family:var(--fe);font-size:34px;line-height:1.1;margin-top:4px}
.strict-overall-note{font-size:13px;color:var(--text2);line-height:1.8}
.strict-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.strict-score-card{border:1px solid var(--border);border-radius:18px;padding:16px;background:#fff}
.strict-score-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}
.strict-score-head span{font-size:13px;font-weight:700;color:var(--text)}
.strict-score-head strong{font-family:var(--fe);font-size:24px;line-height:1;color:var(--accent2)}
.strict-score-sub{font-size:11px;color:var(--text3);margin-bottom:10px}
.strict-score-bar{height:8px;border-radius:999px;background:#edf1ea;overflow:hidden}
.strict-score-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px}
.strict-score-grade{margin-top:8px;font-size:12px;font-weight:700;color:var(--text2)}
.strict-score-card.warn .strict-score-bar span{background:linear-gradient(90deg,#d79b34,#b56a1e)}
.strict-score-card.bad .strict-score-bar span{background:linear-gradient(90deg,#d97786,#991b1b)}
.strict-review-suggestions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.strict-suggestion-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-family:var(--fe);margin-bottom:10px}
@media (max-width:1280px){.shell{grid-template-columns:280px minmax(0,860px) 92px;max-width:1232px}.main{padding:52px 40px 88px}.strict-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.shell{grid-template-columns:1fr;max-width:100%}.workspace-rail{display:none}.strict-review-top{grid-template-columns:1fr}.strict-review-grid{grid-template-columns:1fr}}
@media print{
  @page{size:A4 portrait;margin:10mm}
  body.print-summary .workspace-rail,
  body.print-summary .flow-review-card,
  body.print-summary .strict-review-card{display:none !important}
  body.print-summary #step5>.step-heading{margin:0 0 12px !important;font-size:24px !important;line-height:1.2 !important}
  body.print-summary .sum-hero{padding:18px !important;margin-bottom:12px !important}
  body.print-summary .sum-grid{display:grid !important;grid-template-columns:1fr 1fr !important;gap:10px !important}
  body.print-summary .sum-card{padding:14px !important}
  body.print-summary .plan-progress-head{margin-bottom:6px !important}
  body.print-summary .plan-progress-row{grid-template-columns:220px minmax(0,1fr) !important;gap:10px !important}
  body.print-summary .plan-progress-note-input{border:none !important;background:transparent !important;padding:0 !important;height:auto !important;box-shadow:none !important}
}


/* === targeted stability patch based on fix_3 === */
.main{padding:56px 60px 96px}
.workspace-rail{background:#fff;padding:56px 14px 0 8px}
.workspace-rail-inner{width:168px;align-items:stretch}
.workspace-add{display:none !important}
.workspace-tabs{width:100%;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.workspace-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.workspace-tab,.workspace-add-inline{writing-mode:horizontal-tb;transform:none;height:44px;min-height:44px;padding:0 14px;border-radius:14px;border:1px solid var(--border);background:#fff;color:var(--text2);font-size:13px;letter-spacing:.01em;font-family:var(--fb);text-align:left;display:flex;align-items:center;justify-content:flex-start;box-shadow:none;white-space:nowrap;overflow:hidden}
.workspace-tab-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-item.active .workspace-tab{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent2);font-weight:700}
.workspace-tab:hover,.workspace-add-inline:hover{background:#f4f6f2;color:var(--accent2)}
.workspace-add-inline{background:#fff;border-style:dashed;color:var(--accent);font-weight:700;justify-content:center}
.workspace-actions{display:flex;align-items:center;gap:4px}
.workspace-icon-btn{width:30px;height:30px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;line-height:1}
.workspace-icon-btn:hover{border-color:var(--accent-border);color:var(--accent2);background:#f5f8f5}
.workspace-icon-btn.danger:hover{border-color:var(--red-border);color:var(--red);background:var(--red-bg)}
.workspace-name-input{width:100%;height:42px;border:1px solid var(--accent-border);border-radius:12px;padding:0 12px;font-size:13px;font-family:var(--fb);background:#fff;outline:none}

.plan-progress-slider{--progress:0%;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent) var(--progress),#e3e9e4 var(--progress),#e3e9e4 100%);position:relative;overflow:visible}
.plan-progress-range{width:100%;height:10px;appearance:none;background:transparent;cursor:grab}
.plan-progress-range:active{cursor:grabbing}
.plan-progress-range::-webkit-slider-runnable-track{height:10px;background:transparent}
.plan-progress-range::-moz-range-track{height:10px;background:transparent}
.plan-progress-range::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-5px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 2px 8px rgba(45,106,79,.18)}
.plan-progress-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 2px 8px rgba(45,106,79,.18)}
.plan-progress-note-input{position:relative;z-index:2}

.strict-review-footnote{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text3);line-height:1.7}
.mid-review-card{margin-top:24px}
.mid-review-top{display:grid;grid-template-columns:1fr;gap:12px;align-items:start;margin-bottom:14px}
.mid-review-note{font-size:13px;color:var(--text2);line-height:1.8}
.mid-review-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:700;background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-border);margin-bottom:10px}
.mid-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mid-review-box{padding:16px 18px;border:1px solid var(--border);border-radius:18px;background:#fff}
.mid-review-box.good{background:var(--accent-bg);border-color:var(--accent-border)}
.mid-review-box.warn{background:#fff8eb;border-color:#eed39a}
.mid-review-box.neutral{background:#f8faf8}
.mid-review-box-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-family:var(--fe);margin-bottom:8px}
.mid-review-box strong{display:block;font-size:15px;color:var(--text);font-family:var(--fe);margin-bottom:8px;line-height:1.4}
.mid-review-list{padding-left:18px;color:var(--text2)}
.mid-review-list li{margin-bottom:7px;line-height:1.7}
.mid-review-empty{font-size:13px;color:var(--text3);line-height:1.7}

@media (max-width:1280px){.main{padding:52px 40px 88px}.workspace-rail-inner{width:156px}}
@media (max-width:980px){.workspace-rail{display:none}.mid-review-grid{grid-template-columns:1fr}}


/* === final workspace + mid review text fix === */
.workspace-rail{background:#fff;padding:56px 18px 0 12px;min-width:220px}
.workspace-rail-inner{width:220px;display:flex;flex-direction:column;align-items:stretch}
.workspace-tabs{width:100%;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.workspace-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.workspace-tab,.workspace-add-inline{width:100%;min-width:0;box-sizing:border-box}
.workspace-tab-name{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.mid-review-box-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-family:var(--fe);margin-bottom:8px}


/* === step3 repair final === */
.skill-row.modern-skill-row{
  display:block !important;
  min-height:0 !important;
  padding:14px 0 16px !important;
  border-bottom:1px solid var(--border) !important;
}
.skill-row.modern-skill-row .skill-row-main{
  display:grid !important;
  grid-template-columns:32px minmax(0,1fr) 88px 178px 178px !important;
  gap:10px !important;
  align-items:center !important;
  min-width:0 !important;
}
.skill-row.modern-skill-row .skill-name-block,
.skill-row.modern-skill-row .skill-type-block,
.skill-row.modern-skill-row .skill-score-block{min-width:0 !important;}
.skill-row.modern-skill-row .skill-name-block input{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  background:var(--bg2) !important;
  border:1.5px solid var(--border) !important;
  border-radius:14px !important;
}
.skill-row.modern-skill-row .skill-name-block input:focus{background:#fff !important;border-color:var(--accent) !important;}
.skill-row.modern-skill-row .skill-type-block .type-pill{width:100% !important;height:42px !important;border-radius:50px !important;}
.skill-row.modern-skill-row .score-btns.modern{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:4px !important;
  min-width:0 !important;
}
.skill-row.modern-skill-row .score-btns.modern .score-btn{
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  min-height:30px !important;
  border-radius:50% !important;
}
.skill-row.modern-skill-row .skill-metric-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-top:12px !important;
  padding-left:42px !important;
}
.skill-row.modern-skill-row .skill-metric-field{min-width:0 !important;}
.skill-row.modern-skill-row .skill-mini-label{
  display:block !important;
  margin-bottom:8px !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:var(--text3) !important;
  font-family:var(--fe) !important;
}
.skill-row.modern-skill-row .skill-metric-select{
  width:100% !important;
  height:42px !important;
  appearance:none !important;
  border:1.5px solid var(--border) !important;
  border-radius:14px !important;
  background:var(--bg2) !important;
  padding:0 38px 0 14px !important;
  font-size:13px !important;
  font-family:var(--fb) !important;
  color:var(--text) !important;
  outline:none !important;
  cursor:pointer !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23778074' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
}
.skill-row.modern-skill-row .skill-metric-select:focus{border-color:var(--accent) !important;background-color:#fff !important;box-shadow:0 0 0 3px rgba(45,106,79,.09) !important;}
.skill-signal-strip{margin-top:14px !important;}
.review-loop-grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:14px !important;margin-bottom:2px !important;}
.review-loop-grid.review-loop-grid-quad{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
#reviewLoopCard .field{margin-bottom:16px !important;}
#reviewLoopCard .field:last-child{margin-bottom:0 !important;}
.review-date-picker{position:relative !important;}
.review-date-trigger{width:100% !important;height:46px !important;display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;padding:0 14px !important;border:1.5px solid var(--border) !important;border-radius:14px !important;background:var(--bg2) !important;color:var(--text) !important;font-family:var(--fb) !important;font-size:14px !important;cursor:pointer !important;transition:border-color .15s,background .15s,box-shadow .15s !important;}
.review-date-trigger:hover,.review-date-trigger.open{background:#fff !important;border-color:var(--accent) !important;box-shadow:0 0 0 3px rgba(45,106,79,.09) !important;}
.review-date-trigger-value{flex:1 !important;text-align:left !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.review-date-trigger-icon{width:18px !important;height:18px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;flex:0 0 18px !important;color:var(--text3) !important;line-height:1 !important;transform:none !important;}
.review-date-trigger-icon-svg{display:block !important;width:14px !important;height:14px !important;overflow:visible !important;}
.review-date-trigger.open .review-date-trigger-icon{color:var(--accent) !important;}
.review-date-panel{position:absolute !important;top:calc(100% + 10px) !important;left:0 !important;z-index:30 !important;width:min(320px,100%) !important;padding:16px !important;border:1px solid rgba(26,26,16,.08) !important;border-radius:20px !important;background:#fff !important;box-shadow:0 18px 36px rgba(22,31,24,.14) !important;}
.review-calendar-head{display:flex !important;align-items:center !important;justify-content:space-between !important;margin-bottom:14px !important;}
.review-calendar-head strong{font-family:var(--fe) !important;font-size:15px !important;color:var(--text) !important;}
.review-calendar-nav{width:34px !important;height:34px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;border:none !important;border-radius:50% !important;background:var(--bg2) !important;color:var(--text2) !important;font-size:20px !important;cursor:pointer !important;transition:background .15s,color .15s !important;}
.review-calendar-nav:hover{background:var(--accent-bg) !important;color:var(--accent) !important;}
.review-calendar-week{display:grid !important;grid-template-columns:repeat(7,1fr) !important;gap:6px !important;margin-bottom:8px !important;}
.review-calendar-week span{font-size:11px !important;font-weight:700 !important;color:var(--text3) !important;text-align:center !important;}
.review-calendar-grid{display:grid !important;grid-template-columns:repeat(7,1fr) !important;gap:6px !important;}
.review-calendar-day{height:38px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;border:none !important;border-radius:12px !important;background:transparent !important;color:var(--text) !important;font-family:var(--fb) !important;font-size:13px !important;cursor:pointer !important;transition:background .15s,color .15s,transform .15s !important;}
.review-calendar-day:hover{background:var(--bg2) !important;}
.review-calendar-day.is-outside{color:var(--text3) !important;}
.review-calendar-day.is-today{background:var(--accent-bg) !important;color:var(--accent2) !important;font-weight:700 !important;}
.review-calendar-day.is-selected{background:var(--accent) !important;color:#fff !important;font-weight:700 !important;}
.review-calendar-foot{display:flex !important;justify-content:flex-end !important;gap:8px !important;margin-top:14px !important;}
.review-calendar-chip{height:32px !important;padding:0 12px !important;border:none !important;border-radius:999px !important;background:var(--accent-bg) !important;color:var(--accent2) !important;font-size:12px !important;font-weight:700 !important;font-family:var(--fb) !important;cursor:pointer !important;}
.review-calendar-chip.ghost{background:var(--bg2) !important;color:var(--text2) !important;}
.review-calendar-chip:hover{filter:brightness(.98) !important;}
.strict-overall-note{font-size:13px !important;line-height:1.75 !important;}
.strict-review-footnote{font-size:11px !important;color:var(--text3) !important;line-height:1.6 !important;margin-top:10px !important;}
@media (max-width:1100px){
  .skill-head{grid-template-columns:32px minmax(0,1fr) 72px 162px 162px !important;}
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1fr) 72px 162px 162px !important;}
}
@media (max-width:980px){
  .skill-head{grid-template-columns:32px minmax(0,1fr) 72px 1fr 1fr !important;}
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1fr) 72px !important;align-items:start !important;}
  .skill-row.modern-skill-row .skill-score-block{grid-column:1 / -1 !important;}
  .skill-row.modern-skill-row .skill-metric-grid{padding-left:0 !important;grid-template-columns:1fr !important;}
  .review-loop-grid,.review-loop-grid.review-loop-grid-quad{grid-template-columns:1fr !important;}
  .review-date-panel{width:100% !important;max-width:none !important;}
}
@media (max-width:640px){
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px 1fr !important;}
  .skill-row.modern-skill-row .skill-type-block{grid-column:1 / -1 !important;}
}


/* === v35 targeted layout & wording refinement === */
.skill-head{grid-template-columns:32px minmax(0,1.7fr) 78px 164px 164px !important;}
.skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1.7fr) 78px 164px 164px !important;}
.skill-row.modern-skill-row .skill-name-block{min-width:0 !important;max-width:100% !important;}
.skill-row.modern-skill-row .skill-name-block input{min-width:0 !important;max-width:100% !important;}
.skill-row.modern-skill-row .skill-score-block{min-width:164px !important;}
.skill-row.modern-skill-row .score-btns.modern{justify-content:flex-start !important;overflow:hidden !important;}
.skill-row.modern-skill-row .score-btns.modern .score-btn{width:28px !important;height:28px !important;min-width:28px !important;min-height:28px !important;font-size:11px !important;}

.skill-signal-strip{margin-top:16px !important;padding:18px 18px 16px !important;border:1px solid var(--border) !important;border-radius:22px !important;background:linear-gradient(180deg,#ffffff 0%,#fafbf9 100%) !important;box-shadow:0 8px 24px rgba(26,26,16,.04) !important;}
.skill-signal-head{display:flex !important;align-items:flex-end !important;justify-content:space-between !important;gap:12px !important;margin-bottom:14px !important;}
.skill-signal-title{font-size:13px !important;font-weight:700 !important;color:var(--text) !important;font-family:var(--fe) !important;letter-spacing:.02em !important;}
.skill-signal-sub{font-size:12px !important;color:var(--text3) !important;line-height:1.6 !important;}
.skill-signal-list{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;}
.skill-signal-item{position:relative !important;padding:14px 14px 13px !important;border-radius:18px !important;border:1px solid var(--border) !important;background:#fff !important;min-width:0 !important;}
.skill-signal-item::before{content:'' !important;position:absolute !important;left:14px !important;top:14px !important;width:8px !important;height:8px !important;border-radius:50% !important;background:var(--border2) !important;}
.skill-signal-item.good{background:var(--accent-bg) !important;border-color:var(--accent-border) !important;}
.skill-signal-item.good::before{background:var(--accent) !important;}
.skill-signal-item.info{background:var(--blue-bg) !important;border-color:var(--blue-border) !important;}
.skill-signal-item.info::before{background:var(--blue) !important;}
.skill-signal-item.warn{background:#fff8eb !important;border-color:#eed39a !important;}
.skill-signal-item.warn::before{background:#c98100 !important;}
.skill-signal-item.muted{background:#f8faf8 !important;border-color:var(--border) !important;}
.skill-signal-label{padding-left:18px !important;font-size:11px !important;font-weight:700 !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:var(--text3) !important;margin-bottom:8px !important;}
.skill-signal-names{font-size:14px !important;font-weight:700 !important;color:var(--text) !important;line-height:1.45 !important;margin-bottom:6px !important;}
.skill-signal-desc{font-size:12px !important;line-height:1.65 !important;color:var(--text2) !important;}

.matrix-axis-title-v,.matrix-axis-title-h,.matrix-axis-row.with-title .left,.matrix-axis-row.with-title .right,.matrix-y-label-top,.matrix-y-label-bottom{font-size:13px !important;}
.matrix-y-labels{width:84px !important;min-height:392px !important;}
.matrix-y-label-bottom{transform:translateY(22px) !important;}
.matrix-axis-row.with-title{padding-top:10px !important;}

.plan-sum-table{border-collapse:separate !important;border-spacing:0 14px !important;}
.plan-sum-table thead th{padding-bottom:4px !important;}
.plan-sum-main-row td,.plan-sum-progress-row td{border:none !important;background:#fff !important;}
.plan-sum-main-row td{padding-top:16px !important;padding-bottom:12px !important;}
.plan-sum-progress-row td{padding:0 12px 14px !important;background:transparent !important;}
.plan-sum-main-row td:first-child{border-radius:20px 0 0 0 !important;}
.plan-sum-main-row td:last-child{border-radius:0 20px 0 0 !important;}
.plan-sum-progress-row td{border-radius:0 0 20px 20px !important;}
.plan-sum-cell{background:#fff !important;}
.plan-sum-memo{max-width:12ch !important;}
.review-loop-grid.review-loop-grid-quad select#review_cycle,
.review-loop-grid.review-loop-grid-quad select#review_method{background-color:#f7f7f7 !important;}

@media (max-width:1180px){
  .skill-head{grid-template-columns:32px minmax(0,1.25fr) 74px 156px 156px !important;}
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1.25fr) 74px 156px 156px !important;}
  .skill-row.modern-skill-row .skill-score-block{min-width:156px !important;}
}
@media (max-width:980px){
  .skill-signal-list{grid-template-columns:1fr !important;}
  .matrix-y-label-bottom{transform:none !important;}
}

/* keep current workspace rail untouched; only repair step3 */
.skill-head{grid-template-columns:32px minmax(0,1.7fr) 78px 164px 164px !important;gap:10px !important;align-items:center !important;}
.skill-head span:nth-child(4), .skill-head span:nth-child(5){justify-content:flex-start !important;}
.skill-row.modern-skill-row{padding:14px 0 12px !important;border-bottom:1px solid var(--border) !important;display:block !important;}
.skill-row.modern-skill-row .skill-row-main{display:grid !important;grid-template-columns:32px minmax(0,1.7fr) 78px 164px 164px !important;gap:10px !important;align-items:center !important;}
.skill-row.modern-skill-row .skill-score-block{min-width:164px !important;}
.skill-row.modern-skill-row .score-btns.modern{display:flex !important;gap:4px !important;align-items:center !important;justify-content:flex-start !important;overflow:hidden !important;}
.skill-row.modern-skill-row .score-btns.modern .score-btn{width:28px !important;height:28px !important;min-width:28px !important;font-size:11px !important;border-radius:999px !important;}
.skill-row.modern-skill-row .skill-metric-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:10px !important;padding:10px 0 0 42px !important;}
.skill-row.modern-skill-row .skill-mini-label{font-size:10px !important;line-height:1.2 !important;letter-spacing:.06em !important;}
.skill-row.modern-skill-row .skill-metric-select{width:100% !important;min-width:0 !important;height:40px !important;}
@media (max-width:900px){
  .skill-head{grid-template-columns:32px minmax(0,1fr) 72px 150px 150px !important;}
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1fr) 72px 150px 150px !important;}
  .skill-row.modern-skill-row .skill-score-block{min-width:150px !important;}
}
@media (max-width:760px){
  .skill-head{display:none !important;}
  .skill-row.modern-skill-row .skill-row-main{grid-template-columns:32px minmax(0,1fr) 72px !important;align-items:start !important;}
  .skill-row.modern-skill-row .skill-type-block{grid-column:auto !important;}
  .skill-row.modern-skill-row .skill-score-block{grid-column:1 / -1 !important;min-width:0 !important;}
  .skill-row.modern-skill-row .skill-metric-grid{padding:8px 0 0 0 !important;grid-template-columns:1fr !important;}
}


/* === v36 UI polish: mid-review density + custom review calendar === */
.flow-review-card{margin-top:22px !important;padding:26px 28px !important;}
.flow-review-head{font-size:10px !important;letter-spacing:.14em !important;margin-bottom:9px !important;}
.flow-review-score{min-height:30px !important;padding:0 11px !important;font-size:11px !important;margin-bottom:10px !important;}
.flow-review-body{font-size:13px !important;line-height:1.72 !important;margin-bottom:9px !important;}
.flow-review-list{padding-left:16px !important;}
.flow-review-list li{margin-bottom:6px !important;font-size:13px !important;line-height:1.68 !important;}

.mid-review-card{margin-top:22px !important;padding:26px 28px !important;}
.mid-review-top{margin-bottom:12px !important;}
.mid-review-badge{min-height:30px !important;padding:0 11px !important;font-size:11px !important;margin-bottom:8px !important;}
.mid-review-note{font-size:12px !important;line-height:1.72 !important;}
.mid-review-grid{gap:10px !important;}
.mid-review-box{padding:15px 16px !important;border-radius:16px !important;}
.mid-review-box-title{font-size:10px !important;letter-spacing:.1em !important;margin-bottom:7px !important;}
.mid-review-box strong{font-size:14px !important;margin-bottom:7px !important;line-height:1.32 !important;}
.mid-review-list{padding-left:16px !important;}
.mid-review-list li{margin-bottom:6px !important;font-size:13px !important;line-height:1.62 !important;}
.mid-review-empty{font-size:12px !important;line-height:1.62 !important;}
.mid-review-trend-wrap{margin-top:6px !important;}
.mid-review-stats-grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;margin-bottom:10px !important;}
.mid-review-stat{padding:10px 11px !important;border-radius:14px !important;background:#fff !important;border:1px solid var(--border) !important;display:flex !important;flex-direction:column !important;gap:3px !important;min-width:0 !important;}
.mid-review-stat strong{display:block !important;margin:0 !important;font-size:11px !important;line-height:1.35 !important;font-family:var(--fb) !important;font-weight:700 !important;}
.mid-review-stat span{font-size:13px !important;line-height:1.3 !important;color:var(--text) !important;font-weight:600 !important;}
.mid-review-stat-job strong{color:var(--accent) !important;}
.mid-review-stat-hobby strong{color:var(--blue) !important;}
.mid-review-stat-endure strong{color:var(--amber) !important;}
.mid-review-stat-cut strong{color:var(--red) !important;}
.mid-review-trend-comment{font-size:12px !important;line-height:1.68 !important;color:var(--text2) !important;}
.mid-review-skill-line{margin-top:9px !important;padding-top:9px !important;border-top:1px dashed rgba(26,26,16,.09) !important;display:grid !important;gap:4px !important;}
.mid-review-skill-line strong{display:block !important;margin:0 !important;font-size:11px !important;color:var(--text) !important;font-family:var(--fb) !important;}
.mid-review-skill-line span{font-size:12px !important;line-height:1.62 !important;color:var(--text2) !important;}
.mid-review-skill-line.weak strong,
.mid-review-skill-line.weak span{color:var(--text3) !important;}

.review-loop-card{padding:28px 30px !important;}
.review-loop-grid{gap:12px !important;}
.review-loop-field input,
.review-loop-field textarea{background:#fbfbf8 !important;}
.review-date-picker{position:relative !important;}
.review-date-trigger{height:48px !important;padding:0 15px !important;border-radius:15px !important;background:#fbfbf8 !important;font-size:13px !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9) !important;}
.review-date-trigger:hover,
.review-date-trigger.open{background:#fff !important;}
.review-date-trigger-value{font-size:13px !important;color:var(--text) !important;}
.review-date-trigger-icon{width:18px !important;height:18px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;flex:0 0 18px !important;color:var(--text3) !important;transform:none !important;transition:transform .16s ease,color .16s ease !important;}
.review-date-trigger-icon-svg{display:block !important;width:14px !important;height:14px !important;overflow:visible !important;}
.review-date-trigger.open .review-date-trigger-icon{transform:rotate(180deg) !important;}
.review-date-panel{width:min(336px,100%) !important;padding:14px !important;border-radius:22px !important;border:1px solid rgba(26,26,16,.06) !important;box-shadow:0 24px 46px rgba(18,28,21,.14) !important;backdrop-filter:blur(8px) !important;}
.review-calendar-head{margin-bottom:12px !important;}
.review-calendar-head strong{font-size:14px !important;letter-spacing:-.01em !important;}
.review-calendar-nav{width:30px !important;height:30px !important;font-size:18px !important;background:#f6f4ee !important;}
.review-calendar-week{gap:4px !important;margin-bottom:6px !important;}
.review-calendar-week span{font-size:10px !important;letter-spacing:.02em !important;}
.review-calendar-grid{gap:4px !important;}
.review-calendar-day{width:36px !important;height:36px !important;justify-self:center !important;align-self:center !important;border-radius:50% !important;font-size:12px !important;}
.review-calendar-day:hover{background:#f3f1ec !important;transform:translateY(-1px) !important;}
.review-calendar-day.is-outside{opacity:.48 !important;}
.review-calendar-day.is-today{box-shadow:inset 0 0 0 1px var(--accent-border) !important;}
.review-calendar-day.is-selected{box-shadow:0 10px 18px rgba(45,106,79,.22) !important;}
.review-calendar-foot{margin-top:12px !important;}
.review-calendar-chip{height:30px !important;padding:0 11px !important;font-size:11px !important;}
.review-loop-field.full textarea{min-height:102px !important;}

@media (max-width:980px){
  .flow-review-card,.mid-review-card,.review-loop-card{padding:24px 22px !important;}
  .mid-review-stats-grid{grid-template-columns:1fr 1fr !important;gap:8px !important;}
}
@media (max-width:640px){
  .mid-review-stats-grid{grid-template-columns:1fr !important;}
  .review-date-panel{padding:12px !important;}
}


/* === v37 strict scoring + SMART summary alignment === */
.strict-overall-score{position:relative;gap:4px !important;padding:16px 12px !important;}
.strict-overall-score em{display:block;font-style:normal;font-size:11px;line-height:1.3;opacity:.92;letter-spacing:.02em;}
.strict-overall-note{font-size:12px !important;line-height:1.7 !important;}
.strict-score-card{padding:15px 15px 14px !important;}
.strict-score-head span{font-size:12px !important;line-height:1.35 !important;}
.strict-score-head strong{font-size:24px !important;line-height:1 !important;}
.strict-score-sub{font-size:11px !important;line-height:1.5 !important;}
.strict-score-grade{font-size:11px !important;letter-spacing:.04em !important;}
.strict-score-bar{margin:10px 0 8px !important;}
.strict-review-footnote{font-size:11px !important;line-height:1.65 !important;}

.plan-sum-table td{vertical-align:top !important;}
.plan-sum-cell-inner{display:grid !important;grid-template-rows:22px auto !important;align-content:start !important;align-items:start !important;gap:8px !important;min-height:100% !important;}
.plan-sum-symbol-row{height:22px !important;min-height:22px !important;display:flex !important;align-items:center !important;justify-content:center !important;line-height:1 !important;margin:0 !important;}
.plan-sum-symbol-row .smart-dot-ok,
.plan-sum-symbol-row .smart-dot-partial,
.plan-sum-symbol-row .smart-dot-no,
.plan-sum-symbol-row .smart-dot-empty{display:inline-flex !important;align-items:center !important;justify-content:center !important;min-width:16px !important;height:16px !important;line-height:1 !important;margin:0 auto !important;}
.plan-sum-memo{width:100% !important;max-width:none !important;margin:0 !important;padding:0 2px !important;text-align:left !important;line-height:1.6 !important;white-space:pre-wrap !important;overflow-wrap:anywhere !important;}
@media (max-width:760px){
  .strict-overall-score strong{font-size:30px !important;}
  .strict-overall-score em{font-size:10px !important;}
  .plan-sum-cell-inner{grid-template-rows:20px auto !important;gap:6px !important;}
}

@media (max-width: 760px) {
  .matrix-layout { --matrix-y-width: 24px; --matrix-gap: 10px; }
  .matrix-axis-row-offset {
    margin-left: calc(var(--matrix-y-width) + var(--matrix-gap));
    width: calc(100% - (var(--matrix-y-width) + var(--matrix-gap)));
  }
}


/* === bug fix: restore step3 matrix and keep only bottom label aligned to matrix bottom === */
.matrix-layout{display:block !important;}
.matrix-main{display:flex !important;gap:18px !important;align-items:stretch !important;min-width:0 !important;}
.matrix-main .matrix-y-labels{width:92px !important;min-height:auto !important;height:auto !important;padding:0 !important;display:flex !important;flex-direction:column !important;justify-content:space-between !important;align-items:center !important;align-self:stretch !important;}
.matrix-main .matrix-wrap{flex:1 1 auto !important;min-width:0 !important;}
.matrix-y-label-top,.matrix-y-label-bottom{writing-mode:horizontal-tb !important;transform:none !important;text-align:center !important;}
.matrix-y-label-top{margin:0 !important;}
.matrix-y-label-bottom{margin:0 !important;transform:none !important;}
.matrix-axis-row-offset{margin-left:110px !important;width:calc(100% - 110px) !important;}
@media (max-width:980px){
  .matrix-main{flex-direction:column !important;gap:12px !important;}
  .matrix-main .matrix-y-labels{width:auto !important;align-self:auto !important;flex-direction:row !important;}
  .matrix-axis-row-offset{margin-left:0 !important;width:100% !important;}
}

/* === bug fix: keep summary progress slider fill visible while dragging === */
.summary-progress-box .plan-progress-slider{height:12px !important;padding:0 !important;background:transparent !important;box-shadow:none !important;}
.summary-progress-box .plan-progress-range{-webkit-appearance:none !important;appearance:none !important;width:100% !important;height:12px !important;margin:0 !important;background:transparent !important;}
.summary-progress-box .plan-progress-range::-webkit-slider-runnable-track{height:12px !important;border-radius:999px !important;background:linear-gradient(90deg,var(--accent) 0%,var(--accent) var(--progress),#e3e9e4 var(--progress),#e3e9e4 100%) !important;}
.summary-progress-box .plan-progress-range::-moz-range-track{height:12px !important;border-radius:999px !important;background:#e3e9e4 !important;}
.summary-progress-box .plan-progress-range::-moz-range-progress{height:12px !important;border-radius:999px !important;background:var(--accent) !important;}
.summary-progress-box .plan-progress-range::-webkit-slider-thumb{-webkit-appearance:none !important;appearance:none !important;width:20px !important;height:20px !important;margin-top:-4px !important;border-radius:50% !important;background:#fff !important;border:2px solid var(--accent) !important;box-shadow:0 2px 8px rgba(45,106,79,.18) !important;}
.summary-progress-box .plan-progress-range::-moz-range-thumb{width:20px !important;height:20px !important;border-radius:50% !important;background:#fff !important;border:2px solid var(--accent) !important;box-shadow:0 2px 8px rgba(45,106,79,.18) !important;}

#providerFormHost { margin-top: 4px; }
.provider-field-inline { display: block; }
.provider-field-inline .field { margin-bottom: 2px; }
.provider-field-inline input[type="password"] {
  width: 100%;
  height: 48px;
  border-radius: 14px;
  border: 1.5px solid var(--border);
  background: #fff;
  color: var(--text);
  padding: 0 14px;
  font-size: 14px;
  font-family: var(--fb);
  margin-top: 8px;
}
.provider-field-inline input[type="password"]:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(45,106,79,0.12);
}
.provider-inline-help { margin-top: 6px; }
