:root {
  color-scheme: light;
  --ink: #111735;
  --muted: #68708f;
  --line: #e6e8f6;
  --soft: #f5f7ff;
  --primary: #4737f0;
  --primary-2: #7c42f6;
  --cyan: #33c2ff;
  --green: #26b85a;
  --orange: #ff8657;
  --shadow: 0 18px 44px rgba(59, 65, 130, 0.18);
}

* {
  box-sizing: border-box;
}

html {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  background:
    radial-gradient(circle at 16% 8%, rgba(81, 103, 255, 0.14), transparent 28%),
    radial-gradient(circle at 86% 16%, rgba(82, 205, 226, 0.14), transparent 26%),
    linear-gradient(135deg, #f7f9ff 0%, #eef3ff 100%);
}

button,
input {
  font: inherit;
}

button {
  cursor: pointer;
  border: 0;
}

#app {
  width: 100%;
  max-width: 100vw;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 20px;
  overflow-x: hidden;
}

.phone {
  width: min(100%, 430px);
  max-width: 100vw;
  min-height: 760px;
  border-radius: 28px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow);
  border: 1px solid rgba(255, 255, 255, 0.75);
  position: relative;
}

.page {
  min-height: 760px;
  padding: 18px 18px 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f7f8ff 100%);
}

.page.with-nav {
  padding-top: 68px;
}

.home-page {
  background:
    linear-gradient(180deg, rgba(238, 233, 255, 0) 0%, rgba(238, 233, 255, 0) 38%, rgba(238, 233, 255, 0.34) 70%, rgba(238, 233, 255, 0.78) 100%),
    linear-gradient(90deg, rgba(111, 101, 255, 0.9) 0%, rgba(108, 115, 255, 0.72) 46%, rgba(84, 117, 251, 0.8) 100%),
    linear-gradient(180deg, #1710f4 0%, #3450fb 190px, #5475fb 330px, #7f75ff 500px, #b8a7ff 700px, #eee9ff 100%);
}

.nav {
  position: absolute;
  inset: 0 0 auto 0;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(12px);
  z-index: 5;
  border-bottom: 1px solid rgba(229, 232, 246, 0.8);
}

.back {
  position: absolute;
  left: 14px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: transparent;
  color: #111;
  font-size: 27px;
  line-height: 1;
}

.nav-title {
  font-size: 16px;
  font-weight: 800;
}

.hero-wrap {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: 16px;
  aspect-ratio: 1536 / 1040;
  margin: -18px -18px 0;
  background: transparent;
  box-shadow: none;
}

.hero-wrap::after {
  content: none;
}

.hero {
  position: relative;
  height: 100%;
  margin: 0;
  padding: 0;
  border-radius: 0;
  overflow: visible;
  background: #2520f4;
}

.hero::after {
  content: none;
}

.hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.start-card {
  margin: 0 0 18px;
  padding: 20px 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 16px 36px rgba(61, 71, 144, 0.18);
  position: relative;
  z-index: 2;
  backdrop-filter: blur(10px);
}

.start-card > span {
  display: block;
  margin-bottom: 8px;
  color: #20284b;
  font-size: 14px;
  font-weight: 800;
}

.start-card h2,
.section-title {
  margin: 0;
  font-size: 24px;
  line-height: 1.25;
}

.start-card p {
  margin: 10px 0 18px;
  color: #303957;
  font-size: 13px;
  font-weight: 700;
}

.primary-btn,
.secondary-btn {
  width: 100%;
  height: 48px;
  border-radius: 14px;
  color: #fff;
  font-weight: 800;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  box-shadow: 0 10px 18px rgba(70, 55, 240, 0.24);
}

.secondary-btn {
  background: #eef0fb;
  color: #717897;
  box-shadow: none;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.realtime-panel {
  cursor: pointer;
}

.help-card {
  margin-top: 12px;
  padding: 14px 12px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(230, 232, 246, 0.9);
  box-shadow: 0 12px 30px rgba(63, 75, 142, 0.08);
}

.help-card h3 {
  margin: 0 0 14px;
  color: #2636d2;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 900;
}

.help-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  text-align: center;
}

.help-item {
  min-width: 0;
}

.help-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin: 0 auto 9px;
  border-radius: 50%;
  color: #6048f5;
  background: #f0edff;
  position: relative;
}

.help-icon svg {
  position: relative;
  z-index: 1;
  display: block;
  width: 40px;
  height: 40px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.help-icon-discover {
  color: #5b6cff;
  background: #eef0ff;
}

.help-icon-get {
  color: #7a48f5;
  background: #f1edff;
}

.help-item b {
  display: block;
  color: #1d2755;
  font-size: 13px;
  line-height: 1.15;
  font-weight: 900;
  white-space: nowrap;
}

.help-item p {
  margin: 6px 0 0;
  color: #6b728e;
  font-size: 10.5px;
  line-height: 1.25;
}

.panel {
  padding: 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(63, 75, 142, 0.08);
}

.stat-value {
  margin-top: 5px;
  font-size: 24px;
  font-weight: 900;
  color: var(--primary);
}

.stat-label,
.hint {
  font-size: 12px;
  color: var(--muted);
}

.stats-detail-page {
  padding-bottom: 24px;
  background: linear-gradient(180deg, #f7f8ff 0%, #ffffff 100%);
}

.stat-detail-panel + .stat-detail-panel {
  margin-top: 12px;
}

.stat-detail-panel h3 {
  margin: 0 0 12px;
  color: #1f2854;
  font-size: 15px;
}

.stat-chart,
.industry-rank {
  display: grid;
  gap: 9px;
}

.stat-chart-row,
.rank-row {
  display: grid;
  align-items: center;
  gap: 8px;
  color: #4b5472;
  font-size: 12px;
}

.stat-chart-row {
  grid-template-columns: 58px minmax(0, 1fr) 38px;
}

.rank-row {
  grid-template-columns: 18px 76px minmax(0, 1fr) 40px;
}

.rank-row em {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #f1f3ff;
  color: var(--primary);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.stat-chart-row b,
.rank-row b {
  color: #1f2854;
  text-align: right;
  font-size: 12px;
}

.stat-bar {
  height: 7px;
  border-radius: 999px;
  background: #e7eaff;
  overflow: hidden;
}

.stat-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #5b61ff, #8f75ff);
}

.trend-chart svg {
  display: block;
  width: 100%;
  height: 148px;
}

.trend-area {
  fill: rgba(91, 97, 255, 0.1);
}

.trend-line {
  fill: none;
  stroke: #7470ff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.trend-chart circle {
  fill: #7470ff;
  stroke: #fff;
  stroke-width: 2;
}

.trend-axis {
  stroke: #e1e6f5;
  stroke-width: 1;
}

.trend-labels {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-top: -10px;
  color: var(--muted);
  font-size: 10px;
  text-align: center;
}

.notice {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 12px 0;
  min-height: 74px;
  padding: 16px;
}

.notice strong {
  display: block;
  color: #2736d6;
  font-size: 15px;
  line-height: 1.1;
  font-weight: 900;
}

.notice p {
  margin: 7px 0 0;
  font-size: 11px;
  line-height: 1.2;
  color: var(--muted);
}

.notice-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  color: #5a45ff;
}

.notice-icon svg {
  display: block;
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.notice-arrow {
  margin-left: auto;
  color: #7b82a2;
  font-size: 26px;
  line-height: 1;
  font-weight: 400;
}

.search {
  width: 100%;
  height: 42px;
  border: 0;
  outline: 0;
  border-radius: 14px;
  padding: 0 16px;
  background: #f1f3fa;
  color: var(--ink);
}

.tabs {
  display: flex;
  gap: 28px;
  margin: 18px 0;
  color: var(--muted);
  font-weight: 700;
  font-size: 14px;
}

.tabs span:first-child {
  color: var(--primary);
  position: relative;
}

.tabs span:first-child::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 3px;
  border-radius: 10px;
  background: var(--primary);
}

.select-page {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 64px);
}

.career-tabs {
  display: flex;
  gap: 22px;
  margin: 18px 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
}

.career-tabs::-webkit-scrollbar {
  display: none;
}

.career-tabs button {
  flex: 0 0 auto;
  position: relative;
  padding: 0 0 9px;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.career-tabs button.active {
  color: var(--primary);
}

.career-tabs button.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: var(--primary);
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.category-card {
  min-height: 92px;
  padding: 12px 8px 10px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: #f7f8fc;
  text-align: center;
  color: var(--ink);
}

.category-card.active {
  border-color: var(--primary);
  background: #f5f3ff;
}

.cat-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  margin: 0 auto 8px;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, var(--primary), #42b8ff);
  font-weight: 900;
}

.category-card b {
  display: block;
  font-size: 12px;
  line-height: 1.25;
}

.empty-careers {
  grid-column: 1 / -1;
  padding: 28px 12px;
  color: var(--muted);
  text-align: center;
  font-size: 13px;
}

.foot-note {
  margin: 18px 0;
  color: var(--muted);
  font-size: 13px;
}

.confirm-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.confirm-card {
  padding: 22px 16px 20px;
  border-radius: 16px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(247, 247, 255, 0.92));
}

.confirm-card h3 {
  margin: 0 0 18px;
  color: #252b46;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 900;
}

.selected-job {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border-radius: 12px;
  border: 1px solid #d6d9ff;
  background: #fbfbff;
}

.selected-job strong {
  flex: 1;
  min-width: 0;
  color: #192044;
  font-size: 17px;
  line-height: 1.2;
}

.change-job {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: #737a99;
  font-size: 12px;
  font-weight: 800;
}

.job-description {
  margin: 0;
  color: #596179;
  font-size: 14px;
  line-height: 1.85;
  font-weight: 600;
}

.impact-quote-card {
  position: relative;
  margin-top: 16px;
  padding: 15px 16px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(135deg, #2f2a76 0%, #5b4cf5 100%);
  box-shadow: 0 12px 24px rgba(71, 55, 240, 0.18);
  overflow: hidden;
}

.impact-quote-card::before {
  content: "“";
  position: absolute;
  right: 14px;
  top: -8px;
  color: rgba(255, 255, 255, 0.14);
  font-size: 72px;
  line-height: 1;
  font-weight: 900;
}

.impact-quote-card b {
  position: relative;
  display: block;
  margin-bottom: 8px;
  color: #efeaff;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 900;
}

.impact-quote-card p {
  position: relative;
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  line-height: 1.7;
  font-weight: 650;
}

.job-data-card h3 {
  margin-bottom: 14px;
}

.job-data-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.job-data-item {
  min-width: 0;
  padding: 12px 10px;
  border-radius: 12px;
  background: rgba(91, 92, 255, 0.06);
  border: 1px solid rgba(91, 92, 255, 0.1);
}

.job-data-item span {
  display: block;
  margin-bottom: 7px;
  color: #68708f;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 750;
}

.job-data-item b {
  display: block;
  min-width: 0;
  color: #4d43f5;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.confirm-list {
  display: grid;
  gap: 13px;
  color: #4f5872;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 700;
}

.confirm-list div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.confirm-list span {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 18px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #a5adff, #6d70ee);
  font-size: 10px;
  font-weight: 900;
}

.confirm-list b {
  color: #5853f5;
  font-weight: 900;
}

.confirm-page > .primary-btn {
  margin-top: auto;
  border-radius: 16px;
}

.confirm-page .confirm-card {
  padding: 24px 18px 22px;
}

.confirm-page .confirm-card h3 {
  font-size: 18px;
}

.confirm-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
}

.confirm-title-icon {
  width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 20px;
  border-radius: 6px;
  color: #6d5df7;
  background: rgba(109, 93, 247, 0.12);
}

.confirm-title-icon::before {
  font-size: 13px;
  line-height: 1;
  font-weight: 950;
}

.confirm-title-icon.book::before {
  content: "▣";
}

.confirm-title-icon.bars::before {
  content: "▥";
}

.confirm-title-icon.info {
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #7d70ff, #5b4cf5);
}

.confirm-title-icon.info::before {
  content: "i";
  font-family: Georgia, serif;
  font-style: italic;
}

.confirm-page .selected-job {
  gap: 18px;
  padding: 18px;
}

.confirm-page .selected-job .cat-icon {
  width: 58px;
  height: 58px;
  flex-basis: 58px;
  border-radius: 14px;
  font-size: 24px;
}

.selected-job-main {
  flex: 1;
  min-width: 0;
}

.confirm-page .selected-job strong {
  display: block;
  font-size: 21px;
  font-weight: 950;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.selected-job-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 10px;
  color: #6b7392;
  font-size: 13px;
  line-height: 1;
  font-weight: 750;
}

.selected-job-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.selected-job-meta span::before {
  content: "";
  width: 14px;
  height: 14px;
  display: inline-block;
  flex: 0 0 14px;
  border-radius: 50%;
  border: 2px solid currentColor;
  opacity: 0.75;
}

.selected-job-meta span + span::before {
  border-radius: 3px 3px 6px 6px;
}

.confirm-page .change-job {
  color: #6d5df7;
  font-size: 13px;
  font-weight: 850;
}

.confirm-page .impact-quote-card {
  min-height: 96px;
  padding: 18px 120px 18px 18px;
  color: #1f2854;
  background:
    radial-gradient(circle at 92% 45%, rgba(109, 93, 247, 0.16), transparent 28%),
    linear-gradient(135deg, #f6f3ff 0%, #eeeaff 100%);
  border: 1px solid rgba(109, 93, 247, 0.08);
  box-shadow: none;
}

.confirm-page .impact-quote-card::before {
  content: none;
}

.impact-quote-card b span {
  margin-right: 7px;
  color: #5b4cf5;
  font-size: 28px;
  line-height: 0;
  font-weight: 950;
  vertical-align: -8px;
}

.confirm-page .impact-quote-card b {
  color: #4e42f5;
  font-size: 16px;
}

.confirm-page .impact-quote-card p {
  color: #27304f;
  font-size: 14px;
}

.impact-bot {
  position: absolute;
  right: 20px;
  bottom: 14px;
  width: 72px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff, #d8dcff);
  box-shadow: 0 10px 22px rgba(91, 92, 255, 0.16);
}

.impact-bot::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 18px;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #27326f;
}

.impact-bot::after {
  content: "";
  position: absolute;
  left: 28px;
  top: 25px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  color: #2cc7ff;
  background: currentColor;
  box-shadow: 13px 0 0 currentColor;
}

.impact-bot i {
  position: absolute;
  left: 35px;
  top: -9px;
  width: 7px;
  height: 13px;
  border-radius: 999px;
  background: #bfc4ff;
}

.impact-bot em {
  position: absolute;
  right: -7px;
  bottom: -3px;
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(135deg, #5b5cff, #8b5cff);
  font-style: normal;
  font-size: 15px;
  font-weight: 950;
}

.confirm-page .job-data-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-radius: 14px;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent calc(33.333% - 0.5px), rgba(210, 214, 244, 0.85) calc(33.333% - 0.5px), rgba(210, 214, 244, 0.85) calc(33.333% + 0.5px), transparent calc(33.333% + 0.5px)),
    linear-gradient(90deg, transparent calc(66.666% - 0.5px), rgba(210, 214, 244, 0.85) calc(66.666% - 0.5px), rgba(210, 214, 244, 0.85) calc(66.666% + 0.5px), transparent calc(66.666% + 0.5px)),
    linear-gradient(180deg, transparent calc(50% - 0.5px), rgba(210, 214, 244, 0.8) calc(50% - 0.5px), rgba(210, 214, 244, 0.8) calc(50% + 0.5px), transparent calc(50% + 0.5px));
}

.confirm-page .job-data-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 84px;
  padding: 12px 10px;
  background: transparent;
  border: 0;
}

.job-data-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  border-radius: 50%;
  font-size: 15px;
  line-height: 1;
  font-weight: 950;
}

.job-data-icon.purple {
  color: #6d5df7;
  background: rgba(109, 93, 247, 0.16);
}

.job-data-icon.red {
  color: #ef4d67;
  background: rgba(239, 77, 103, 0.13);
}

.job-data-icon.orange {
  color: #f07a20;
  background: rgba(240, 122, 32, 0.14);
}

.job-data-icon.blue {
  color: #2478ef;
  background: rgba(36, 120, 239, 0.13);
}

.job-data-icon.green {
  color: #21a963;
  background: rgba(33, 169, 99, 0.14);
}

.job-data-item div {
  min-width: 0;
}

.job-data-item div > span {
  display: block;
  margin-bottom: 6px;
  color: #252b46;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 800;
}

.confirm-page .job-data-item b {
  color: #4d43f5;
  font-size: 18px;
}

.confirm-note-card {
  position: relative;
  overflow: hidden;
}

.confirm-note-card::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 14px;
  width: 94px;
  height: 76px;
  border-radius: 14px;
  opacity: 0.34;
  background:
    linear-gradient(135deg, transparent 58%, #9b91ff 59% 70%, transparent 71%),
    linear-gradient(#c9c4ff, #c9c4ff) 26px 17px / 44px 6px no-repeat,
    linear-gradient(#c9c4ff, #c9c4ff) 26px 33px / 38px 6px no-repeat,
    linear-gradient(#c9c4ff, #c9c4ff) 26px 49px / 34px 6px no-repeat,
    linear-gradient(145deg, #f4f2ff, #dedbff);
}

.confirm-note-card .confirm-list {
  position: relative;
  z-index: 1;
  max-width: calc(100% - 95px);
}

/* Confirm page target polish */
.confirm-page .selected-job {
  gap: 14px;
}

.confirm-page .selected-job strong {
  font-size: 20px;
}

.confirm-page .change-job {
  flex: 0 0 auto;
  white-space: nowrap;
}

.confirm-page .job-data-grid {
  grid-template-rows: repeat(2, 96px);
}

.confirm-page .job-data-item {
  min-height: 96px;
  height: 96px;
  gap: 6px;
  padding: 12px 6px;
  overflow: hidden;
}

.confirm-page .job-data-icon {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
  font-size: 11px;
}

.confirm-page .job-data-item div {
  flex: 1;
  min-width: 0;
}

.confirm-page .job-data-item div > span {
  margin-bottom: 6px;
  font-size: 11px;
  white-space: nowrap;
}

.confirm-page .job-data-item b {
  display: block;
  max-width: 100%;
  font-size: 15px;
  line-height: 1.15;
  white-space: normal;
  word-break: keep-all;
}

.confirm-page .job-data-icon.green + div b {
  font-size: 12px;
}

/* Confirm page final target alignment */
.confirm-page {
  gap: 18px;
  padding-left: 22px;
  padding-right: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f7ff 100%);
}

.confirm-page .confirm-card {
  padding: 24px 20px 22px;
  border-radius: 18px;
  border: 1px solid rgba(214, 219, 247, 0.95);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(250, 250, 255, 0.94));
  box-shadow: 0 10px 26px rgba(69, 76, 140, 0.04);
}

.confirm-page .confirm-card h3,
.confirm-page .confirm-section-title {
  margin-bottom: 18px;
  color: #111735;
  font-size: 20px;
  line-height: 1.15;
  font-weight: 950;
}

.confirm-title-icon {
  width: 22px;
  height: 22px;
  flex-basis: 22px;
  border-radius: 6px;
  color: #6257f5;
  background: rgba(98, 87, 245, 0.12);
}

.confirm-title-icon::before {
  font-size: 14px;
}

.confirm-title-icon.book::before {
  content: "▤";
}

.confirm-title-icon.bars::before {
  content: "▥";
}

.confirm-title-icon.info {
  border-radius: 50%;
}

.confirm-page .selected-job {
  min-height: 112px;
  gap: 18px;
  padding: 20px 18px;
  border-radius: 16px;
  border-color: #d8dcff;
  background: rgba(255, 255, 255, 0.72);
}

.confirm-page .selected-job .cat-icon {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  border-radius: 15px;
  font-size: 28px;
  box-shadow: 0 10px 18px rgba(75, 118, 255, 0.18);
}

.confirm-page .selected-job strong {
  max-width: 100%;
  color: #111735;
  font-size: 23px;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: 0;
}

.confirm-page .selected-job-meta {
  gap: 16px;
  margin-top: 12px;
  color: #69708f;
  font-size: 14px;
  font-weight: 750;
}

.confirm-page .selected-job-meta span::before {
  width: 15px;
  height: 15px;
  flex-basis: 15px;
  border-width: 2px;
}

.confirm-page .change-job {
  color: #6655f5;
  font-size: 14px;
  font-weight: 850;
}

.confirm-page .job-description {
  color: #182040;
  font-size: 15px;
  line-height: 1.85;
  font-weight: 650;
}

.confirm-page .impact-quote-card {
  min-height: 116px;
  margin-top: 20px;
  padding: 22px 132px 20px 20px;
  border-radius: 14px;
  background:
    radial-gradient(circle at 87% 40%, rgba(151, 139, 255, 0.22), transparent 32%),
    linear-gradient(135deg, #f4f1ff 0%, #eeebff 100%);
  border: 0;
  box-shadow: none;
}

.confirm-page .impact-quote-card b {
  margin-bottom: 12px;
  color: #5647f3;
  font-size: 17px;
}

.confirm-page .impact-quote-card b span {
  margin-right: 8px;
  color: #5e50f5;
  font-size: 34px;
  vertical-align: -10px;
}

.confirm-page .impact-quote-card p {
  color: #202847;
  font-size: 15px;
  line-height: 1.75;
  font-weight: 600;
}

.confirm-page .impact-bot {
  right: 22px;
  bottom: 18px;
  width: 82px;
  height: 66px;
  opacity: 0.96;
}

.confirm-page .impact-bot::before {
  left: 20px;
  top: 20px;
  width: 42px;
  height: 23px;
}

.confirm-page .impact-bot::after {
  left: 31px;
  top: 28px;
  box-shadow: 15px 0 0 currentColor;
}

.confirm-page .impact-bot i {
  left: 40px;
}

.confirm-page .impact-bot em {
  right: -8px;
  bottom: -5px;
  width: 38px;
  height: 38px;
  font-size: 16px;
}

.confirm-page .job-data-card {
  padding-bottom: 24px;
}

.confirm-page .job-data-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, 108px);
  border-radius: 0;
  overflow: visible;
  background:
    linear-gradient(90deg, transparent calc(33.333% - 0.5px), rgba(218, 222, 246, 0.95) calc(33.333% - 0.5px), rgba(218, 222, 246, 0.95) calc(33.333% + 0.5px), transparent calc(33.333% + 0.5px)),
    linear-gradient(90deg, transparent calc(66.666% - 0.5px), rgba(218, 222, 246, 0.95) calc(66.666% - 0.5px), rgba(218, 222, 246, 0.95) calc(66.666% + 0.5px), transparent calc(66.666% + 0.5px)),
    linear-gradient(180deg, transparent calc(50% - 0.5px), rgba(218, 222, 246, 0.9) calc(50% - 0.5px), rgba(218, 222, 246, 0.9) calc(50% + 0.5px), transparent calc(50% + 0.5px));
}

.confirm-page .job-data-item {
  height: 108px;
  min-height: 108px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  column-gap: 9px;
  padding: 14px 9px;
  overflow: visible;
}

.confirm-page .job-data-icon {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
  align-self: center;
  border-radius: 50%;
  font-size: 13px;
  box-shadow: 0 8px 18px rgba(52, 61, 130, 0.05);
}

.confirm-page .job-data-icon.red,
.confirm-page .job-data-icon.green {
  font-size: 19px;
}

.confirm-page .job-data-item div > span {
  margin-bottom: 7px;
  color: #232b4f;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 850;
  white-space: normal;
}

.confirm-page .job-data-item b {
  color: #4d43f5;
  font-size: 20px;
  line-height: 1.1;
  font-weight: 950;
  white-space: normal;
  overflow-wrap: normal;
}

.confirm-page .job-data-rate b {
  color: #ef4d67;
}

.confirm-page .job-data-salary b {
  color: #f07a20;
  font-size: 17px;
}

.confirm-page .job-data-people b,
.confirm-page .job-data-education b {
  color: #2478ef;
}

.confirm-page .job-data-outlook b {
  color: #1faf66;
  font-size: 14px;
  line-height: 1.25;
}

.confirm-page .confirm-note-card {
  min-height: 160px;
  padding-bottom: 24px;
}

.confirm-page .confirm-list {
  gap: 15px;
  max-width: calc(100% - 110px);
  color: #222a49;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 650;
}

.confirm-page .confirm-list span {
  width: 22px;
  height: 22px;
  flex-basis: 22px;
  font-size: 12px;
  background: linear-gradient(145deg, #9d94ff, #6b61f4);
}

.confirm-page .confirm-list b {
  color: #5b4cf5;
}

.confirm-page .confirm-note-card::after {
  right: 18px;
  bottom: 16px;
  width: 110px;
  height: 90px;
  opacity: 0.25;
}

.confirm-page > .primary-btn {
  height: 58px;
  margin-top: 0;
  border-radius: 16px;
  font-size: 20px;
  font-weight: 900;
}

/* Confirm page narrow-width stability */
.confirm-page .selected-job {
  gap: 12px;
  padding: 16px 14px;
}

.confirm-page .selected-job .cat-icon {
  width: 60px;
  height: 60px;
  flex-basis: 60px;
  font-size: 26px;
}

.confirm-page .selected-job strong {
  font-size: 21px;
}

.confirm-page .change-job {
  font-size: 13px;
}

.confirm-page .selected-job-meta {
  gap: 12px;
  font-size: 13px;
}

.confirm-page .job-data-grid {
  overflow: hidden;
}

/* Confirm page compact correction for 430px web phone */
.confirm-page {
  gap: 16px;
  padding-left: 18px;
  padding-right: 18px;
}

.confirm-page .confirm-card {
  padding: 22px 16px 20px;
  border-radius: 16px;
}

.confirm-page .confirm-card h3,
.confirm-page .confirm-section-title {
  margin-bottom: 16px;
  font-size: 18px;
}

.confirm-title-icon {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
}

.confirm-title-icon::before {
  font-size: 13px;
}

.confirm-page .selected-job {
  min-height: 96px;
  gap: 10px;
  padding: 14px 12px;
}

.confirm-page .selected-job .cat-icon {
  width: 52px;
  height: 52px;
  flex-basis: 52px;
  border-radius: 13px;
  font-size: 22px;
}

.confirm-page .selected-job strong {
  font-size: 18px;
}

.confirm-page .selected-job-meta {
  gap: 10px;
  margin-top: 9px;
  font-size: 12px;
}

.confirm-page .selected-job-meta span::before {
  width: 13px;
  height: 13px;
  flex-basis: 13px;
}

.confirm-page .change-job {
  font-size: 12px;
}

.confirm-page .job-description {
  font-size: 14px;
}

.confirm-page .impact-quote-card {
  min-height: 104px;
  margin-top: 16px;
  padding: 18px 110px 18px 18px;
}

.confirm-page .impact-quote-card b {
  font-size: 15px;
}

.confirm-page .impact-quote-card b span {
  font-size: 28px;
}

.confirm-page .impact-quote-card p {
  font-size: 13px;
}

.confirm-page .impact-bot {
  right: 18px;
  bottom: 16px;
  width: 70px;
  height: 56px;
}

.confirm-page .impact-bot::before {
  left: 17px;
  top: 17px;
  width: 36px;
  height: 20px;
}

.confirm-page .impact-bot::after {
  left: 27px;
  top: 24px;
  box-shadow: 13px 0 0 currentColor;
}

.confirm-page .impact-bot i {
  left: 34px;
}

.confirm-page .impact-bot em {
  width: 32px;
  height: 32px;
  font-size: 14px;
}

.confirm-page .job-data-grid {
  grid-template-rows: repeat(2, 96px);
}

.confirm-page .job-data-item {
  height: 96px;
  min-height: 96px;
  grid-template-columns: 34px minmax(0, 1fr);
  column-gap: 7px;
  padding: 12px 7px;
}

.confirm-page .job-data-icon {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  font-size: 11px;
}

.confirm-page .job-data-icon.red,
.confirm-page .job-data-icon.green {
  font-size: 16px;
}

.confirm-page .job-data-item div > span {
  margin-bottom: 6px;
  font-size: 11px;
}

.confirm-page .job-data-item b {
  font-size: 17px;
}

.confirm-page .job-data-salary b {
  font-size: 15px;
}

.confirm-page .job-data-outlook b {
  font-size: 12px;
}

.confirm-page .confirm-note-card {
  min-height: 142px;
}

.confirm-page .confirm-list {
  gap: 13px;
  max-width: calc(100% - 92px);
  font-size: 13px;
}

.confirm-page .confirm-list span {
  width: 19px;
  height: 19px;
  flex-basis: 19px;
  font-size: 10px;
}

.confirm-page .confirm-note-card::after {
  width: 92px;
  height: 76px;
}

.confirm-page > .primary-btn {
  height: 56px;
  font-size: 18px;
}

/* Confirm page one-screen compact pass */
.confirm-page {
  gap: 10px;
  padding: 64px 14px 14px;
}

.confirm-page .confirm-card {
  padding: 14px 14px 13px;
  border-radius: 14px;
}

.confirm-page .confirm-card h3,
.confirm-page .confirm-section-title {
  margin-bottom: 11px;
  font-size: 15px;
  line-height: 1.2;
}

.confirm-section-title {
  gap: 7px;
}

.confirm-title-icon {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  border-radius: 5px;
}

.confirm-title-icon::before {
  font-size: 10px;
}

.confirm-page .selected-job {
  min-height: 72px;
  gap: 9px;
  padding: 11px;
  border-radius: 13px;
}

.confirm-page .selected-job .cat-icon {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  border-radius: 10px;
  font-size: 18px;
  box-shadow: 0 8px 14px rgba(75, 118, 255, 0.14);
}

.confirm-page .selected-job strong {
  font-size: 16px;
}

.confirm-page .selected-job-meta {
  gap: 8px;
  margin-top: 7px;
  font-size: 11px;
}

.confirm-page .selected-job-meta span {
  gap: 4px;
}

.confirm-page .selected-job-meta span::before {
  width: 11px;
  height: 11px;
  flex-basis: 11px;
  border-width: 1.5px;
}

.confirm-page .change-job {
  font-size: 11px;
}

.confirm-page .job-description {
  font-size: 12px;
  line-height: 1.65;
}

.confirm-page .confirm-card:has(.job-description) {
  min-height: 126px;
}

.confirm-page .job-description {
  max-width: calc(100% - 72px);
  white-space: normal;
  overflow-wrap: break-word;
}

.confirm-page .impact-icon-only {
  min-height: 0;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.confirm-page .impact-icon-only .impact-bot {
  right: 2px;
  bottom: -8px;
  opacity: 0.9;
}

.confirm-page .impact-quote-card {
  min-height: 78px;
  margin-top: 10px;
  padding: 12px 82px 12px 12px;
  border-radius: 12px;
}

.confirm-page .impact-quote-card b {
  margin-bottom: 7px;
  font-size: 12px;
}

.confirm-page .impact-quote-card b span {
  margin-right: 5px;
  font-size: 21px;
  vertical-align: -7px;
}

.confirm-page .impact-quote-card p {
  font-size: 11px;
  line-height: 1.55;
}

.confirm-page .impact-bot {
  right: 12px;
  bottom: 12px;
  width: 54px;
  height: 43px;
}

.confirm-page .impact-bot::before {
  left: 13px;
  top: 13px;
  width: 28px;
  height: 16px;
}

.confirm-page .impact-bot::after {
  left: 21px;
  top: 19px;
  width: 4px;
  height: 4px;
  box-shadow: 10px 0 0 currentColor;
}

.confirm-page .impact-bot i {
  left: 27px;
  top: -7px;
  width: 5px;
  height: 10px;
}

.confirm-page .impact-bot em {
  right: -5px;
  bottom: -4px;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  font-size: 11px;
}

.confirm-page .job-data-card {
  padding-bottom: 13px;
}

.confirm-page .job-data-card h3 {
  margin-bottom: 9px;
}

.confirm-page .job-data-grid {
  grid-template-rows: repeat(2, 66px);
}

.confirm-page .job-data-item {
  height: 66px;
  min-height: 66px;
  grid-template-columns: 27px minmax(0, 1fr);
  column-gap: 5px;
  padding: 8px 5px;
}

.confirm-page .job-data-icon {
  width: 27px;
  height: 27px;
  flex-basis: 27px;
  font-size: 9px;
}

.confirm-page .job-data-icon {
  position: relative;
  color: transparent;
  font-size: 0;
}

.confirm-page .job-data-icon::before {
  content: "";
  width: 17px;
  height: 17px;
  display: block;
  background: currentColor;
  mask: var(--job-icon) center / contain no-repeat;
  -webkit-mask: var(--job-icon) center / contain no-repeat;
}

.confirm-page .job-data-impact .job-data-icon {
  color: #735df6;
  --job-icon: url("./assets/job-data/ai.svg");
}

.confirm-page .job-data-rate .job-data-icon,
.confirm-page .job-data-outlook .job-data-icon {
  --job-icon: url("./assets/job-data/trend.svg");
}

.confirm-page .job-data-rate .job-data-icon {
  color: #ef4d67;
}

.confirm-page .job-data-salary .job-data-icon {
  color: #f07a20;
  --job-icon: url("./assets/job-data/wallet.svg");
}

.confirm-page .job-data-people .job-data-icon {
  color: #2478ef;
  --job-icon: url("./assets/job-data/people.svg");
}

.confirm-page .job-data-outlook .job-data-icon {
  color: #1faf66;
}

.confirm-page .job-data-education .job-data-icon {
  color: #2478ef;
  --job-icon: url("./assets/job-data/education.svg");
}

.confirm-page .job-data-icon.red,
.confirm-page .job-data-icon.green {
  font-size: 13px;
}

.confirm-page .job-data-item div > span {
  margin-bottom: 4px;
  font-size: 10px;
  line-height: 1.15;
}

.confirm-page .job-data-item b {
  font-size: 14px;
  line-height: 1.05;
}

.confirm-page .job-data-salary b {
  font-size: 12px;
}

.confirm-page .job-data-outlook b {
  font-size: 10px;
  line-height: 1.15;
}

/* Job data SVG icon centering */
.confirm-page .job-data-icon {
  display: grid;
  place-items: center;
  font-size: 0 !important;
  line-height: 0;
  text-indent: 0;
}

.confirm-page .job-data-icon::before {
  width: 16px;
  height: 16px;
  margin: 0;
  transform: none;
}

.confirm-page .job-data-impact .job-data-icon {
  color: #735df6;
}

.confirm-page .job-data-rate .job-data-icon {
  color: #ef4d67;
}

.confirm-page .job-data-salary .job-data-icon {
  color: #f07a20;
}

.confirm-page .job-data-people .job-data-icon {
  color: #2478ef;
}

.confirm-page .job-data-outlook .job-data-icon {
  color: #1faf66;
}

.confirm-page .job-data-education .job-data-icon {
  color: #2478ef;
}

.confirm-page .job-data-rate .job-data-icon::before,
.confirm-page .job-data-outlook .job-data-icon::before {
  width: 15px;
  height: 15px;
}

.confirm-page .confirm-note-card {
  min-height: 104px;
  padding-bottom: 13px;
}

.confirm-page .confirm-list {
  gap: 8px;
  max-width: calc(100% - 68px);
  font-size: 12px;
  line-height: 1.2;
}

.confirm-page .confirm-list div {
  gap: 6px;
}

.confirm-page .confirm-list span {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  font-size: 9px;
}

.confirm-page .confirm-note-card::after {
  right: 10px;
  bottom: 10px;
  width: 66px;
  height: 54px;
  opacity: 0.2;
}

.confirm-page > .primary-btn {
  height: 48px;
  border-radius: 14px;
  font-size: 16px;
}

/* Confirm card alignment refinements */
.confirm-page .selected-job {
  align-items: center;
}

.confirm-page .selected-job .cat-icon {
  align-self: center;
  margin-left: 0;
  transform: translateY(4px);
}

.confirm-page .selected-job-main {
  display: grid;
  align-content: center;
}

.confirm-page .selected-job-meta span::before {
  border: 0;
  background: currentColor;
  opacity: 0.72;
  mask: var(--meta-icon) center / contain no-repeat;
  -webkit-mask: var(--meta-icon) center / contain no-repeat;
}

.confirm-page .selected-job-meta span:first-child::before {
  --meta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 7.5h16v11H4zM8 7.5V5.8C8 4.8 8.8 4 9.8 4h4.4c1 0 1.8.8 1.8 1.8v1.7M4 11.5h16M10 11.5v1.3h4v-1.3' fill='black'/%3E%3C/svg%3E");
}

.confirm-page .selected-job-meta span + span::before {
  border-radius: 0;
  --meta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4 3 8.5 12 13l9-4.5L12 4Zm-6 7.4v4.7c0 .4.2.7.5.9L12 20l5.5-3c.3-.2.5-.5.5-.9v-4.7l-6 3-6-3Z' fill='black'/%3E%3C/svg%3E");
}

.confirm-page .confirm-title-icon.bars::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 2px;
  background:
    linear-gradient(#6257f5, #6257f5) 1px 7px / 2px 4px no-repeat,
    linear-gradient(#6257f5, #6257f5) 5px 4px / 2px 7px no-repeat,
    linear-gradient(#6257f5, #6257f5) 9px 1px / 2px 10px no-repeat;
}

.confirm-page .job-data-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  padding-left: 16px;
  padding-right: 8px;
}

.confirm-page .job-data-item div {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

.confirm-page .job-data-icon {
  flex: 0 0 27px;
}

.confirm-page .impact-quote-card.impact-icon-only {
  min-height: 0;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.confirm-page .impact-quote-card.impact-icon-only .impact-bot {
  right: 4px;
  bottom: -6px;
}

/* Final description wrapping guard */
.confirm-page .confirm-card:has(.job-description) {
  position: relative;
  min-height: 132px;
}

.confirm-page .confirm-card:has(.job-description) .job-description {
  width: calc(100% - 78px);
  max-width: calc(100% - 78px);
  white-space: normal;
  overflow-wrap: anywhere;
}

.confirm-page .confirm-card:has(.job-description) .impact-bot {
  right: 14px;
  bottom: 14px;
}

/* Confirm page: restore AI impact card safely */
.confirm-page .confirm-card:has(.job-description) {
  min-height: 0;
}

.confirm-page .confirm-card:has(.job-description) .job-description {
  width: 100%;
  max-width: 100%;
}

.confirm-page .impact-quote-card:not(.impact-icon-only) {
  min-height: 78px;
  height: auto;
  margin-top: 10px;
  padding: 12px 86px 12px 12px;
  border-radius: 12px;
  color: #202847;
  background:
    radial-gradient(circle at 90% 42%, rgba(126, 105, 255, 0.18), transparent 34%),
    linear-gradient(135deg, #f4f1ff 0%, #eeeaff 100%);
  box-shadow: none;
  overflow: hidden;
}

.confirm-page .impact-quote-card:not(.impact-icon-only) b {
  display: block;
  margin: 0 0 7px;
  color: #5647f3;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 900;
}

.confirm-page .impact-quote-card:not(.impact-icon-only) b span {
  margin-right: 5px;
  color: #5e50f5;
  font-size: 21px;
  line-height: 0;
  vertical-align: -7px;
}

.confirm-page .impact-quote-card:not(.impact-icon-only) p {
  max-width: 100%;
  margin: 0;
  color: #202847;
  font-size: 11px;
  line-height: 1.55;
  font-weight: 650;
  white-space: normal;
  overflow-wrap: anywhere;
}

.confirm-page .impact-quote-card:not(.impact-icon-only) .impact-bot {
  right: 12px;
  bottom: 12px;
}

/* Select page fixed top/middle/bottom layout */
.select-page {
  height: min(760px, calc(100vh - 40px));
  min-height: 0;
  overflow: hidden;
}

.select-page .search,
.select-page .career-tabs,
.select-page .foot-note,
.select-page > .primary-btn {
  flex: 0 0 auto;
}

.select-page .category-grid {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  align-content: start;
  padding: 2px 0 10px;
  scrollbar-width: none;
}

.select-page .category-grid::-webkit-scrollbar {
  display: none;
}

.select-page .foot-note {
  margin: 12px 0 12px;
}

.select-page > .primary-btn {
  margin-top: 0;
}

.soft-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.check-row {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #4d5877;
  font-size: 14px;
}

.question-progress {
  height: 4px;
  margin: -12px 0 24px;
  border-radius: 10px;
  background: #e6e8f8;
}

.question-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--primary), var(--primary-2));
}

.question-type {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 8px;
  background: #eef0ff;
  color: var(--primary);
  font-weight: 800;
  font-size: 12px;
}

.question-title {
  margin: 14px 0 20px;
  font-size: 21px;
  line-height: 1.45;
}

.option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 56px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  text-align: left;
  color: var(--ink);
}

.option.active {
  border-color: #8b86ff;
  background: #f6f5ff;
  color: var(--primary);
}

.option-label {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eff1f7;
  color: #3c4360;
  font-weight: 900;
  flex: 0 0 auto;
}

.option.active .option-label {
  color: #fff;
  background: var(--primary);
}

.option-text {
  flex: 1;
  font-size: 14px;
}

.question-actions {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 14px;
  margin-top: 20px;
}

.ghost-btn {
  height: 44px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #fff;
  color: #6a718d;
  font-weight: 800;
}

.loading-wrap {
  min-height: 690px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  text-align: center;
}

.big-check {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #62db7f, #24b95b);
  color: #fff;
  font-size: 42px;
  font-weight: 900;
}

.loader-robot {
  width: 156px;
  height: 126px;
  border-radius: 42px 42px 28px 28px;
  background:
    radial-gradient(circle at 37% 44%, #4de1ff 0 8px, transparent 9px),
    radial-gradient(circle at 63% 44%, #4de1ff 0 8px, transparent 9px),
    linear-gradient(180deg, #fff, #dfeaff);
  border: 8px solid #c9d9ff;
  box-shadow: 0 18px 32px rgba(69, 87, 170, 0.18);
}

.bar {
  width: 210px;
  height: 8px;
  overflow: hidden;
  border-radius: 20px;
  background: #e7e9f7;
}

.bar span {
  display: block;
  width: 65%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--primary), #86a8ff);
  animation: grow 1.4s ease-in-out infinite alternate;
}

@keyframes grow {
  to { width: 96%; }
}

.result-page {
  --result-radius: 12px;
  --result-gap: 10px;
  --result-shadow: 0 4px 14px rgba(91, 91, 247, 0.08);
  display: grid;
  align-content: start;
  gap: var(--result-gap);
  width: 100%;
  max-width: 100%;
  min-height: 760px;
  padding: 66px 12px 14px;
  overflow-x: hidden;
  background: #F6F7FB;
}

.result-hero-section {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  border-radius: var(--result-radius);
  overflow: visible;
  background: transparent;
  box-shadow: 0 4px 15px rgba(108, 99, 255, 0.08);
}

.result-banner {
  margin: 0;
  position: relative;
  min-width: 0;
  max-width: 100%;
  height: 150px;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  border-radius: var(--result-radius) var(--result-radius) 0 0;
  box-shadow: none;
}

.result-banner::before {
  content: none;
}

.banner-bg {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  border-radius: var(--result-radius) var(--result-radius) 0 0;
  overflow: hidden;
  background-image: var(--result-cover, none);
  background-position: center center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.banner-person {
  position: absolute;
  left: -28px;
  top: -30px;
  z-index: 1;
  width: 330px;
  height: 220px;
  pointer-events: none;
  background-image: var(--result-person, none);
  background-position: left top;
  background-size: contain;
  background-repeat: no-repeat;
}

.banner-content {
  position: absolute;
  z-index: 2;
  right: 14px;
  top: 17px;
  width: 56%;
  min-height: 0;
  padding: 0;
  text-align: center;
}

.banner-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 23px;
  padding: 0 13px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: #5B5BF7;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.95);
}

.banner-title {
  margin: 6px 0 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #3A32E8;
  font-size: 29px;
  line-height: 1.05;
  font-weight: 900;
  white-space: nowrap;
  text-shadow:
    0 2px 0 rgba(255, 255, 255, 0.9),
    0 4px 10px rgba(255, 255, 255, 0.72);
}

.banner-subtitle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  margin: 4px 0 0;
  padding: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 12.5px;
  font-weight: 600;
  color: #3B3B73;
  line-height: 1.25;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.95);
}

.banner-slogan {
  display: block;
  box-sizing: border-box;
  max-width: 100%;
  margin: 6px 0 0;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  overflow: visible;
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 700;
  color: #25255F;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.95);
}

.result-banner::after {
  content: none;
}

.result-card-grid {
  display: flex;
  gap: 0;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  border-radius: 0 0 var(--result-radius) var(--result-radius);
  overflow: hidden;
  background: #fff;
  border: 0;
  box-shadow: none;
}

.result-summary-card {
  position: relative;
  z-index: 3;
  min-height: 148px;
  max-height: none;
  padding: 18px 18px 20px;
  border-radius: 0 0 var(--result-radius) var(--result-radius);
}

.result-stats-link {
  position: absolute;
  top: 15px;
  right: 18px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;
  padding: 0 8px;
  border: 0;
  border-radius: 999px;
  color: #5B5CFF;
  background: rgba(91, 92, 255, 0.08);
  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.result-metric {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 0;
}

.rating-metric {
  padding: 0 0 0 12px;
}

.replace-card {
  flex: 0 0 42%;
}

.replace-card > b {
  display: block;
  font-size: 14px;
  line-height: 1.2;
}

.rating-metric {
  flex: 0 0 58%;
}

.rating-metric::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 10px;
  width: 1px;
  background: rgba(91, 91, 247, 0.12);
}

.big-number {
  margin-top: 12px;
  font-size: 29px;
  line-height: 1;
  font-weight: 800;
  color: #5B5BF7;
  letter-spacing: 0;
  text-shadow: 0 8px 18px rgba(91, 91, 247, 0.18);
}

.big-number small {
  margin-left: 2px;
  font-size: 14px;
  font-weight: 950;
}

.risk {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: max-content;
  max-width: none;
  margin-top: 10px;
  padding: 6px 12px;
  border-radius: 999px;
  color: #28B96F;
  background: rgba(53, 200, 122, 0.12);
  font-weight: 900;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
  box-shadow: none;
}

.risk-low {
  color: #28B96F;
  background: rgba(53, 200, 122, 0.12);
}

.risk-medium {
  color: #F59E0B;
  background: rgba(245, 158, 11, 0.14);
}

.risk-high {
  color: #EF4444;
  background: rgba(239, 68, 68, 0.13);
}

.risk-critical {
  color: #6D5DF7;
  background: rgba(109, 93, 247, 0.14);
}

.shield-icon {
  width: 16px;
  height: 16px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 16px;
  color: currentColor;
}

.shield-icon svg {
  display: block;
  width: 16px;
  height: 16px;
}

.risk-icon-fill {
  fill: currentColor;
}

.risk-icon-mark {
  fill: none;
  stroke: #fff;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.risk-critical .risk-icon-mark {
  stroke: #fff;
}

.meter {
  display: grid;
  grid-template-columns: repeat(12, 7px);
  gap: 3px;
  margin-top: 9px;
}

.meter span {
  width: 7px;
  height: 13px;
  border-radius: 4px;
  background: #E7E9FF;
}

.meter span.on {
  background: #5B5BF7;
}

.rating-metric > b {
  display: block;
  margin-bottom: 10px;
  color: #1f2854;
  font-size: 14px;
  font-weight: 950;
}

.rating-card {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 102px;
  padding: 14px 15px 16px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #5B5CFF 0%, #8B5CFF 100%);
  box-shadow: 0 8px 18px rgba(91, 92, 255, 0.22);
  overflow: hidden;
}

.rating-main {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.rating-main strong {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 1px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0;
  text-shadow: 0 6px 14px rgba(28, 24, 112, 0.22);
}

.rating-letter {
  font-size: 42px;
  line-height: 0.88;
  font-weight: 800;
}

.rating-main strong small {
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
}

.rating-main div {
  min-width: 0;
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding-left: 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.26);
}

.rating-main h3 {
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff;
  font-size: 16px;
  line-height: 1.16;
  font-weight: 800;
  white-space: nowrap;
}

.rating-main div > span {
  display: inline-flex;
  align-self: flex-start;
  margin-top: 5px;
  padding: 4px 12px;
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.94);
  background: rgba(255, 255, 255, 0.18);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
}

.rating-card p {
  margin: 9px 0 0;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  line-height: 1.1;
  font-weight: 850;
  white-space: nowrap;
}

.rating-card p em {
  color: #ffe56f;
  font-size: 24px;
  line-height: 0.8;
  font-style: normal;
  font-weight: 950;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--result-gap);
  min-width: 0;
  max-width: 100%;
}

.portrait-radar-row {
  align-items: stretch;
}

.result-page .panel,
.result-page .mini-card,
.result-page .toast {
  border-radius: var(--result-radius);
  background: #fff;
  border: 1px solid #ECECF5;
  box-shadow: var(--result-shadow);
}

.result-page .panel {
  padding: 12px;
}

.portrait-radar-row .panel {
  min-height: 226px;
  max-height: 226px;
  overflow: hidden;
}

.portrait-panel {
  position: relative;
  display: flex;
  flex-direction: column;
}

.portrait-panel p,
.portrait-preview {
  flex: 1;
  min-height: 0;
  margin: 9px 0 10px;
  overflow: hidden;
  color: #1e2754;
  font-size: 13px;
  line-height: 1.68;
  font-weight: 500;
  mask-image: linear-gradient(to bottom, #000 0%, #000 68%, rgba(0, 0, 0, 0.18) 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 68%, rgba(0, 0, 0, 0.18) 100%);
}

.portrait-preview span {
  display: block;
}

.portrait-more {
  width: 100%;
  border: 0;
  background: transparent;
  color: #4737f0;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  text-align: center;
  cursor: pointer;
}

.portrait-detail-panel p {
  margin: 12px 0 0;
  color: #1e2754;
  font-size: 14px;
  line-height: 1.75;
  font-weight: 500;
}

.portrait-detail-page {
  background: linear-gradient(180deg, #f5f6ff 0%, #ffffff 100%);
}

.portrait-profile-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 88px;
  padding: 12px 14px;
  border-radius: 14px 14px 6px 6px;
  color: #fff;
  background:
    radial-gradient(circle at 95% 18%, rgba(255, 255, 255, 0.8) 0 2px, transparent 3px),
    linear-gradient(135deg, #5c59ff 0%, #a46aff 100%);
  box-shadow: 0 14px 30px rgba(91, 91, 247, 0.24);
}

.portrait-avatar {
  width: 55px;
  height: 55px;
  flex: 0 0 55px;
  border-radius: 12px;
  background: #eef0ff center / cover no-repeat;
  border: 1px solid rgba(255, 255, 255, 0.64);
}

.portrait-profile-card h2 {
  margin: 0 0 7px;
  font-size: 18px;
  line-height: 1.1;
  font-weight: 950;
}

.portrait-profile-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 11.5px;
  line-height: 1.2;
  font-weight: 700;
}

.portrait-profile-card > span {
  position: absolute;
  top: 14px;
  right: 14px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

.portrait-content-card,
.portrait-ad-card {
  padding: 18px 16px;
  border-radius: 0 0 14px 14px;
  background: #fff;
  border: 1px solid #ECECF5;
  box-shadow: 0 14px 30px rgba(63, 75, 142, 0.09);
}

.portrait-content-card {
  margin-bottom: 14px;
}

.portrait-block {
  margin: 0 0 24px;
}

.portrait-block h3,
.portrait-summary-card h3 {
  margin: 0 0 12px;
  color: #2636d2;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 950;
}

.portrait-lines p {
  margin: 0 0 11px;
  color: #2b3458;
  font-size: 13px;
  line-height: 1.78;
  font-weight: 650;
}

.portrait-block ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0 0 0 13px;
  color: #26316a;
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 650;
}

.portrait-block li::marker {
  color: #2636d2;
  font-size: 9px;
}

.portrait-summary-card {
  margin-top: 4px;
  padding: 14px;
  border-radius: 8px;
  color: #2636d2;
  background: linear-gradient(135deg, #ffffff 0%, #f4f1ff 100%);
  border: 1px solid #dfe3ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.portrait-summary-card h3 {
  margin-bottom: 10px;
}

.portrait-summary-card p {
  margin: 0;
  color: #2636d2;
  font-size: 12.5px;
  line-height: 1.7;
  font-weight: 900;
}

.portrait-ad-card {
  border-radius: 14px;
  text-align: center;
}

.portrait-ad-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  margin: 0 auto 8px;
  border-radius: 8px;
  color: #8c91ba;
  background: #eef0fb;
  font-size: 12px;
  font-weight: 900;
}

.portrait-ad-card h3 {
  margin: 0 0 12px;
  color: #222b55;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 950;
}

.portrait-ad-card p {
  margin: 0 0 14px;
  color: #8a91ad;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
}

.portrait-ad-card button {
  width: 100%;
  height: 44px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #4f46ff, #b34df4);
  box-shadow: 0 10px 18px rgba(91, 91, 247, 0.2);
  font-size: 13px;
  font-weight: 950;
}

.radar {
  width: 170px;
  height: 170px;
  max-width: 100%;
  aspect-ratio: 1;
  display: block;
  margin: -2px auto 0;
  overflow: visible;
}

.radar-label {
  fill: #14205b;
  font-size: 10px;
  font-weight: 800;
  dominant-baseline: middle;
  white-space: nowrap;
}

.radar-score {
  fill: #2636d2;
  font-size: 12px;
  font-weight: 900;
  dominant-baseline: middle;
  white-space: nowrap;
}

.section-head {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #2636d2;
  font-weight: 950;
  line-height: 1.15;
}

.section-icon {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  color: #4f5bff;
  background: transparent;
  border-radius: 0;
  font-size: 0;
  font-weight: 900;
  box-shadow: none;
}

.section-icon svg {
  width: 23px;
  height: 23px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.radar-panel {
  display: grid;
  align-content: start;
  text-align: center;
}

.portrait-radar-row .radar-panel {
  min-height: 226px;
  max-height: 226px;
  overflow: hidden;
}

.radar-panel .section-head {
  justify-content: center;
  margin-bottom: 4px;
  font-size: 14px;
}

.score-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  align-items: start;
  text-align: center;
}

.score-panel {
  padding: 12px 12px 16px;
  min-width: 0;
  max-width: 100%;
  min-height: 152px;
  overflow: visible;
}

.score-item {
  display: grid;
  justify-items: center;
  align-content: start;
  min-width: 0;
  gap: 5px;
}

.score-dot {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin: 0 auto 2px;
  border-radius: 50%;
  color: #2430c9;
  background: #eef4ff;
  font-size: 17px;
  font-weight: 950;
  border: 1px solid #cbd9ff;
  box-shadow:
    inset 0 -8px 16px rgba(82, 100, 200, 0.1),
    0 6px 14px rgba(91, 91, 247, 0.08);
}

.score-dot img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}

.score-dot.robot {
  color: #284bd7;
  background: linear-gradient(145deg, #f0f6ff, #bfe0ff);
}

.score-dot.brain {
  color: #4b4ee6;
  background: linear-gradient(145deg, #edf2ff, #d3ddff);
}

.score-dot.book {
  color: #0e8d8a;
  background: linear-gradient(145deg, #ebfffb, #bdeee8);
}

.score-dot.idea {
  color: #ef8b00;
  background: linear-gradient(145deg, #fff7e6, #ffe2a4);
}

.score-dot.bolt {
  color: #2d6ee8;
  background: linear-gradient(145deg, #eef5ff, #c9dcff);
}

.score-name {
  display: block;
  width: 100%;
  min-height: 28px;
  margin-bottom: 0;
  color: #162051;
  font-size: 11px;
  line-height: 1.25;
  font-weight: 850;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}

.score-strip b {
  display: block;
  margin-top: -1px;
  font-size: 22px;
  line-height: 1;
  color: var(--primary);
  font-weight: 950;
  text-shadow: 0 6px 13px rgba(91, 91, 247, 0.14);
}

.score-level {
  display: block;
  box-sizing: border-box;
  width: max-content;
  max-width: 100%;
  height: 20px;
  padding: 0 9px;
  border: 0;
  border-radius: 999px;
  background: rgba(91, 92, 255, 0.10);
  color: #5B5CFF;
  cursor: pointer;
  overflow: hidden;
  font-size: 10px;
  line-height: 20px;
  font-weight: 800;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.score-level:active {
  transform: scale(0.96);
}

.dimension-level-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(28, 33, 58, 0.54);
  backdrop-filter: blur(2px);
}

.dimension-level-modal {
  position: relative;
  width: min(340px, 84vw);
  padding: 24px 22px 20px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 50% 0%, rgba(91, 92, 255, 0.10), transparent 36%),
    #fff;
  box-shadow: 0 28px 80px rgba(24, 31, 72, 0.28);
}

.dimension-level-close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: #525a7e;
  font-size: 26px;
  line-height: 22px;
  cursor: pointer;
}

.dimension-level-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(145deg, #eef4ff, #d7e1ff);
  border: 1px solid rgba(91, 92, 255, 0.15);
}

.dimension-level-icon img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.dimension-level-rows {
  display: grid;
  gap: 0;
}

.dimension-level-rows > div {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: center;
  min-height: 46px;
  border-bottom: 1px solid #edf0fb;
}

.dimension-level-rows b {
  color: #121943;
  font-size: 14px;
  font-weight: 900;
}

.dimension-level-rows strong {
  color: #121943;
  font-size: 15px;
  font-weight: 900;
  text-align: right;
}

.dimension-level-score {
  color: var(--primary) !important;
  font-size: 24px !important;
}

.dimension-level-pill {
  justify-self: end;
  max-width: 100%;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(91, 92, 255, 0.12);
  color: var(--primary);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
}

.dimension-level-rows p {
  margin: 0;
  color: #28305d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  text-align: right;
}

.dimension-level-ok {
  width: 100%;
  height: 42px;
  margin-top: 22px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #563cff, #7542f5);
  box-shadow: 0 14px 28px rgba(91, 92, 255, 0.22);
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
}

.analysis-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 158px));
  grid-auto-rows: 1fr;
  gap: var(--result-gap);
  align-items: stretch;
  justify-content: center;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.mini-card h3,
.panel h3 {
  margin: 0 0 9px;
  font-size: 15px;
}

.analysis-grid .section-head {
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  font-size: 15px;
  line-height: 1.1;
  white-space: nowrap;
}

.analysis-grid .section-icon {
  width: 24px;
  height: 24px;
  flex-basis: 24px;
  border-radius: 0;
  font-size: 0;
}

.mini-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 166px;
  min-height: 166px;
  padding: 11px 10px;
  overflow: hidden;
}

.advantage-card .section-head {
  color: var(--green);
}

.advantage-card .section-icon {
  color: var(--green);
  background: transparent;
}

.risk-card .section-head {
  color: var(--orange);
}

.risk-card .section-icon {
  color: var(--orange);
  background: transparent;
}

.grow-card .section-head {
  color: var(--primary);
}

.grow-card li {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.grow-card li span {
  min-width: 27px;
  padding: 2px 6px;
  border-radius: 999px;
  color: var(--primary);
  background: linear-gradient(135deg, #f3f1ff, #e9edff);
  border: 1px solid rgba(91, 91, 247, 0.12);
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 900;
  text-align: center;
  box-shadow: 0 3px 8px rgba(91, 91, 247, 0.08);
}

.mini-card p,
.panel p,
.mini-card li {
  margin: 0 0 5px;
  color: #3f4864;
  font-size: 11px;
  line-height: 1.42;
}

.analysis-preview {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, #000 0%, #000 66%, rgba(0, 0, 0, 0.16) 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 66%, rgba(0, 0, 0, 0.16) 100%);
}

.analysis-grid .mini-card p {
  display: block;
}

.analysis-grid .mini-card p b {
  color: #222b55;
  font-weight: 900;
}

.analysis-title-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.analysis-title-list li {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  color: #303858;
  font-size: 11px;
  line-height: 1.45;
  font-weight: 800;
}

.analysis-title-list li span {
  width: 13px;
  height: 13px;
  display: grid;
  place-items: center;
  flex: 0 0 13px;
  margin-top: 1px;
  border-radius: 50%;
  color: #fff;
  font-size: 9px;
  line-height: 1;
  font-weight: 950;
}

.analysis-title-list li span::before {
  content: "\2713";
}

.advantage-titles li span {
  background: linear-gradient(145deg, #61dbc3, #21b989);
}

.risk-titles li span {
  background: linear-gradient(145deg, #ffb36d, #ff7656);
}

.risk-titles li span::before {
  content: "!";
}

.analysis-grid .mini-card li {
  display: flex;
  overflow: hidden;
}

.grow-card ul {
  display: grid;
  gap: 4px;
}

.mini-card ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.analysis-more {
  flex: 0 0 auto;
  width: 100%;
  margin-top: 6px;
  border: 0;
  background: transparent;
  color: #4737f0;
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
  text-align: center;
  cursor: pointer;
}

.analysis-detail-panel {
  min-height: auto;
}

.analysis-detail-page {
  background: linear-gradient(180deg, #f6f7ff 0%, #ffffff 100%);
}

.analysis-detail-card,
.detail-ad-card {
  border-radius: 14px;
  background: #fff;
  border: 1px solid #ECECF5;
  box-shadow: 0 14px 30px rgba(63, 75, 142, 0.09);
}

.analysis-detail-card {
  padding: 14px;
  margin-bottom: 14px;
}

.analysis-detail-card > h2 {
  margin: 0 0 12px;
  color: #2636d2;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 950;
}

.analysis-detail-card > h2 span {
  color: #68708f;
  font-size: 12px;
  font-weight: 800;
}

.analysis-detail-list {
  display: grid;
  gap: 8px;
}

.analysis-item-card {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 9px;
  padding: 12px 12px 12px 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #ECECF5;
  box-shadow: 0 8px 20px rgba(63, 75, 142, 0.07);
}

.analysis-detail-icon {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #61dbc3, #21b989);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
}

.risk-detail-page .analysis-detail-icon {
  background: linear-gradient(145deg, #ffb36d, #ff7656);
}

.analysis-item-card h3 {
  margin: 0 0 6px;
  color: #222b55;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 950;
}

.analysis-item-card p {
  margin: 0;
  color: #68708f;
  font-size: 11.5px;
  line-height: 1.55;
  font-weight: 700;
}

.growth-route-list {
  position: relative;
  display: grid;
  gap: 8px;
}

.growth-route-list::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: #d7ddff;
}

.growth-stage-card {
  position: relative;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 8px;
}

.growth-node {
  position: relative;
  z-index: 1;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  margin-top: 10px;
  border-radius: 50%;
  background: linear-gradient(145deg, #5663ff, #7548f3);
  box-shadow: 0 5px 12px rgba(91, 91, 247, 0.22);
}

.growth-node::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
}

.growth-stage-body {
  padding: 11px 12px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #ECECF5;
  box-shadow: 0 8px 20px rgba(63, 75, 142, 0.07);
}

.growth-stage-body h3 {
  margin: 0 0 8px;
  color: #2636d2;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 950;
}

.growth-stage-body h3 span {
  color: #68708f;
  font-weight: 800;
}

.growth-stage-body ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 14px;
  color: #303858;
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 700;
}

.growth-stage-body li::marker {
  color: #2636d2;
  font-size: 9px;
}

.detail-ad-card {
  padding: 18px 14px 14px;
  text-align: center;
}

.detail-ad-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  margin: 0 auto 8px;
  border-radius: 8px;
  color: #8c91ba;
  background: #eef0fb;
  font-size: 12px;
  font-weight: 900;
}

.detail-ad-card h3 {
  margin: 0 0 10px;
  color: #222b55;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 950;
}

.detail-ad-card p {
  margin: 0 0 14px;
  color: #8a91ad;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
}

.detail-ad-card button {
  width: 100%;
  height: 44px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #4f46ff, #b34df4);
  box-shadow: 0 10px 18px rgba(91, 91, 247, 0.2);
  font-size: 13px;
  font-weight: 950;
}

.analysis-detail-content {
  margin-top: 12px;
}

.analysis-detail-content p {
  margin: 0 0 14px;
  color: #303858;
  font-size: 14px;
  line-height: 1.72;
}

.analysis-detail-content p b {
  color: #18225c;
  font-weight: 900;
}

.analysis-detail-content ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.analysis-detail-content li {
  display: flex;
  gap: 8px;
  color: #303858;
  font-size: 14px;
  line-height: 1.55;
}

.toast {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 58px;
  gap: 9px;
  padding: 10px 70px 10px 12px;
  background:
    radial-gradient(circle at 88% 65%, rgba(123, 97, 255, 0.12), transparent 24%),
    #f5efff;
  border: 1px solid #e1d5ff;
}

.toast b {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6036d8;
  font-size: 15px;
  font-weight: 950;
  white-space: nowrap;
}

.toast p {
  margin: 0;
  padding-right: 0;
  color: #222b55;
  font-size: 13.5px;
  line-height: 1.38;
  font-weight: 750;
}

.ko-badge {
  position: absolute;
  right: 14px;
  bottom: 13px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #fff;
  background: #ffd14f;
  font-size: 12px;
  font-weight: 950;
  transform: rotate(-10deg);
  box-shadow: 0 5px 10px rgba(255, 209, 79, 0.22);
}

.chart-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 34px;
  gap: 7px;
  align-items: center;
  margin: 6px 0;
  font-size: 11.5px;
}

.chart-row span:first-child {
  text-align: left;
  color: #4b5472;
}

.chart-row b {
  text-align: right;
  color: #1f2854;
  font-size: 11.5px;
}

.chart-line {
  height: 6px;
  border-radius: 20px;
  background: #eceefd;
  overflow: hidden;
}

.chart-line span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--primary), #91a6ff);
}

.keywords {
  display: grid;
  gap: 8px;
  align-items: start;
  justify-items: start;
}

.keyword-row {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.keywords span {
  min-width: 76px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid #cad2ff;
  color: var(--primary);
  background: linear-gradient(135deg, #ffffff, #f6f7ff);
  font-weight: 850;
  font-size: 12px;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 4px 10px rgba(91, 91, 247, 0.06);
}

.bottom-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: center;
  margin-top: 2px;
  padding: 0 2px 2px;
}

.result-page .bottom-actions .primary-btn,
.result-page .bottom-actions .ghost-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}

.result-page .bottom-actions .ghost-btn {
  border: 1px solid #ECECF5;
  color: #6d748c;
  background: #fff;
  box-shadow: 0 4px 12px rgba(91, 91, 247, 0.06);
}

.result-page .bottom-actions .primary-btn {
  color: #fff;
  background: linear-gradient(135deg, #5B5BF7, #7B61FF);
  box-shadow: 0 8px 18px rgba(91, 91, 247, 0.24);
}

.poster-page {
  background: #eef1ff;
  padding: 18px;
}

.poster {
  min-height: 690px;
  overflow: hidden;
  border-radius: 18px;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(33, 42, 178, 0.84), rgba(89, 53, 202, 0.96)),
    var(--result-cover, none) center top / cover no-repeat;
  padding: 34px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 20px 44px rgba(52, 57, 142, 0.24);
}

.poster h1 {
  margin: 14px 0;
  font-size: 42px;
  line-height: 1.08;
  color: #fff2ce;
  text-shadow: 0 4px 0 rgba(20, 13, 86, 0.42);
}

.poster-slogan {
  display: inline-block;
  padding: 10px 16px;
  transform: rotate(-3deg);
  background: #9a37d8;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.25;
}

.poster-result {
  padding: 20px;
  border-radius: 16px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.95);
}

.qr {
  width: 112px;
  height: 112px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
  padding: 10px;
  border-radius: 10px;
  background: #fff;
}

.qr span {
  background: #111735;
}

.poster-bottom {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.admin-link {
  margin-top: 12px;
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 460px) {
  #app {
    padding: 0;
  }

  .phone {
    width: 100vw;
    max-width: 100vw;
    min-height: 100vh;
    border-radius: 0;
  }

  .page {
    min-height: 100vh;
  }

  .analysis-grid,
  .two-col {
    grid-template-columns: 1fr;
  }

  .result-page .two-col {
    grid-template-columns: 1fr 1fr;
  }

  .result-page .analysis-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
