/* Prep dashboard v2 — design mockup layout */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

.prep-dash--v2 {
  --pd-v2-green: #1a5f4a;
  --pd-v2-green-dark: #134e3a;
  --pd-v2-green-deep: #0f3d30;
  --pd-v2-teal: #0d5c56;
  --pd-v2-lime: #4ade80;
  --pd-v2-lime-dark: #22c55e;
  --pd-v2-bg: #f3f6f4;
  --pd-v2-card: #ffffff;
  --pd-v2-muted: #64748b;
  --pd-v2-text: #1e293b;
  --pd-v2-border: #e2ebe6;
  --pd-v2-radius: 16px;
  --pd-v2-shadow: 0 4px 20px rgba(15, 61, 48, 0.06);
  font-family: 'Inter', var(--ui-font, system-ui, sans-serif);
}

.prep-dash--v2 .prep-dash__main {
  padding: 20px 24px 48px !important;
  background: var(--pd-v2-bg);
}

.prep-dash--v2 .prep-dash__page-title {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--pd-v2-text);
}

/* —— Icons —— */
.hub-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.hub-ico svg {
  width: 1.25em;
  height: 1.25em;
  display: block;
}

.hub-ico--topic svg {
  width: 22px;
  height: 22px;
  color: var(--pd-v2-green);
}

.prep-dash--v2 .prep-dash__nav-icon.hub-ico svg {
  width: 20px;
  height: 20px;
}

/* —— Sidebar nav v2 —— */
.prep-dash--v2 .site-global-sidebar .prep-dash__nav a {
  gap: 12px;
  padding: 11px 14px;
  border-radius: 12px;
  font-weight: 500;
  font-size: 0.9rem;
}

.prep-dash--v2 .site-global-sidebar .prep-dash__nav a.is-active {
  background: #ecfdf5;
  color: var(--pd-v2-green);
  font-weight: 600;
}

.prep-dash--v2 .site-global-sidebar .prep-dash__brand-icon {
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: var(--pd-v2-green);
}

.prep-dash--v2 .site-global-sidebar .prep-dash__brand-icon svg {
  width: 22px;
  height: 22px;
}

.prep-dash--v2 .nav-badge {
  margin-left: auto;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* —— Layout —— */
.pd-v2__layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 24px;
  align-items: start;
}

.pd-v2__main {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

.pd-v2__aside {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 16px;
}

/* —— Stats bar —— */
.pd-v2__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: linear-gradient(135deg, var(--pd-v2-green-deep) 0%, var(--pd-v2-green) 55%, #1e7a5c 100%);
  border-radius: var(--pd-v2-radius);
  padding: 20px 24px;
  color: #fff;
  box-shadow: var(--pd-v2-shadow);
}

.pd-v2__stat {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 0 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.pd-v2__stat:last-child {
  border-right: none;
}

.pd-v2__stat:first-child {
  padding-left: 0;
}

.pd-v2__stat-ico {
  color: #fde047;
}

.pd-v2__stat-ico--fire svg {
  width: 28px;
  height: 28px;
  color: #fb923c;
}

.pd-v2__stat-val {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.3;
}

.pd-v2__stat-sub {
  display: block;
  font-size: 0.78rem;
  opacity: 0.75;
  margin-top: 4px;
}

.pd-v2__stat-xpbar {
  height: 8px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  margin: 8px 0 4px;
  overflow: hidden;
}

.pd-v2__stat-xpfill {
  height: 100%;
  background: linear-gradient(90deg, #fde047, #facc15);
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* —— Progress card —— */
.pd-v2__progress-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  background: linear-gradient(135deg, var(--pd-v2-teal) 0%, var(--pd-v2-green-dark) 100%);
  border-radius: var(--pd-v2-radius);
  padding: 24px 28px;
  color: #fff;
  box-shadow: var(--pd-v2-shadow);
}

.pd-v2__progress-title {
  margin: 0 0 14px;
  font-size: 1.15rem;
  font-weight: 700;
}

.pd-v2__progress-bar {
  height: 12px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 10px;
}

.pd-v2__progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--pd-v2-lime-dark), var(--pd-v2-lime));
  border-radius: 999px;
  transition: width 0.5s ease;
}

.pd-v2__progress-current {
  margin: 0;
  font-size: 0.88rem;
  opacity: 0.85;
}

.pd-v2__progress-forecast {
  text-align: right;
  min-width: 140px;
}

.pd-v2__forecast-score {
  margin: 0;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  color: var(--pd-v2-lime);
}

.pd-v2__forecast-hint {
  margin: 4px 0 8px;
  font-size: 0.72rem;
  opacity: 0.8;
  max-width: 120px;
  margin-left: auto;
}

.pd-v2__forecast-chart svg {
  width: 100px;
  height: 44px;
  display: block;
  margin-left: auto;
}

/* —— Mission —— */
.pd-v2__mission-wrap {
  background: var(--pd-v2-card);
  border-radius: var(--pd-v2-radius);
  border: 2px solid #bbf7d0;
  box-shadow: var(--pd-v2-shadow);
  overflow: hidden;
}

.pd-v2__secondary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 20px;
}

.pd-v2__secondary-cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
  min-height: 44px;
}

.pd-v2__secondary-sub {
  font-size: 0.78rem;
  font-weight: 500;
  opacity: 0.75;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pd-v2__mission-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 22px 0;
  font-weight: 700;
  font-size: 1rem;
  color: var(--pd-v2-green);
}

.pd-v2__mission-head-ico svg {
  width: 20px;
  height: 20px;
  color: var(--pd-v2-green);
}

.pd-v2__mission-wrap .hub-mission__kicker {
  display: none;
}

.pd-v2__mission-wrap .hub-mission__card {
  border: none;
  box-shadow: none;
  padding: 8px 22px 16px;
}

.pd-v2__mission-wrap .hub-mission {
  margin: 0;
}

.pd-v2__mission-wrap .hub-mission__title {
  font-size: 1.35rem;
}

.pd-v2__mission-wrap .hub-mission__cta {
  width: 100%;
  padding: 14px 24px;
  font-size: 1.05rem;
  border-radius: 12px;
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  border: none;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(22, 163, 74, 0.35);
  transition: transform 0.15s, box-shadow 0.15s;
}

.pd-v2__mission-wrap .hub-mission__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(22, 163, 74, 0.4);
}

.pd-v2__mission-wrap .hub-mission__cta::after {
  content: '→';
  font-size: 1.2em;
}

.pd-v2__mission-stepper {
  border-top: 1px solid var(--pd-v2-border);
  padding: 16px 22px 20px;
  background: #fafcfb;
}

.pd-v2__stepper {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.pd-v2__stepper-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  position: relative;
}

.pd-v2__stepper-item:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 14px;
  left: calc(50% + 18px);
  right: calc(-50% + 18px);
  height: 2px;
  background: #e2ebe6;
  z-index: 0;
}

.pd-v2__stepper-item.is-done:not(:last-child)::after,
.pd-v2__stepper-item.is-active:not(:last-child)::after {
  background: var(--pd-v2-lime-dark);
}

.pd-v2__stepper-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #d1d5db;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pd-v2-muted);
  position: relative;
  z-index: 1;
}

.pd-v2__stepper-item.is-active .pd-v2__stepper-dot {
  border-color: var(--pd-v2-green);
  background: var(--pd-v2-green);
  color: #fff;
}

.pd-v2__stepper-item.is-done .pd-v2__stepper-dot {
  border-color: var(--pd-v2-lime-dark);
  background: #dcfce7;
  color: var(--pd-v2-green);
}

.pd-v2__stepper-item.is-locked .pd-v2__stepper-dot {
  opacity: 0.5;
  font-size: 0.65rem;
}

.pd-v2__stepper-label {
  font-size: 0.68rem;
  color: var(--pd-v2-muted);
  font-weight: 500;
  line-height: 1.2;
}

.pd-v2__stepper-item.is-active .pd-v2__stepper-label {
  color: var(--pd-v2-green);
  font-weight: 600;
}

/* —— Route list —— */
.pd-v2__route {
  background: var(--pd-v2-card);
  border-radius: var(--pd-v2-radius);
  padding: 20px 22px;
  box-shadow: var(--pd-v2-shadow);
}

.pd-v2__route-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.pd-v2__route-title-main {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pd-v2-text);
}

.pd-v2__route-all {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--pd-v2-green);
  text-decoration: none;
}

.pd-v2__route-all:hover {
  text-decoration: underline;
}

.pd-v2__route-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pd-v2__route-item {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--pd-v2-border);
  background: #fafcfb;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}

a.pd-v2__route-item:hover {
  border-color: #86efac;
  box-shadow: 0 2px 12px rgba(22, 163, 74, 0.1);
}

.pd-v2__route-item.is-locked {
  opacity: 0.72;
  cursor: default;
}

.pd-v2__route-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #ecfdf5;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pd-v2__route-body {
  min-width: 0;
}

.pd-v2__route-title {
  display: block;
  font-weight: 600;
  font-size: 0.92rem;
  margin-bottom: 8px;
  line-height: 1.25;
}

.pd-v2__route-bar {
  height: 6px;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
}

.pd-v2__route-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--pd-v2-lime-dark), var(--pd-v2-lime));
  border-radius: 999px;
}

.pd-v2__route-state {
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  color: #4b5563;
  background: #f3f4f6;
  white-space: nowrap;
}

.pd-v2__route-state.is-progress {
  color: #0f766e;
  background: #ecfeff;
}

.pd-v2__route-state.is-done {
  color: #166534;
  background: #dcfce7;
}

.pd-v2__route-state.is-locked {
  color: #6b7280;
  background: #f3f4f6;
}

.pd-v2__route-chevron svg,
.pd-v2__route-lock svg {
  width: 18px;
  height: 18px;
  color: var(--pd-v2-muted);
}

/* —— Right widgets —— */
.pd-v2__widget {
  background: var(--pd-v2-card);
  border-radius: var(--pd-v2-radius);
  padding: 18px 20px;
  box-shadow: var(--pd-v2-shadow);
  border: 1px solid var(--pd-v2-border);
}

.pd-v2__widget-kicker {
  margin: 0 0 6px;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pd-v2-muted);
}

.pd-v2__widget-title {
  margin: 0 0 4px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pd-v2-text);
}

.pd-v2__widget-sub {
  margin: 0 0 14px;
  font-size: 0.82rem;
  color: var(--pd-v2-muted);
}

.pd-v2__widget-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.pd-v2__widget-head-title {
  font-weight: 700;
  font-size: 0.95rem;
}

.pd-v2__badge {
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pd-v2__ring {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto;
}

.pd-v2__ring-svg {
  width: 100%;
  height: 100%;
}

.pd-v2__ring-val {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--pd-v2-green);
}

.pd-v2__mistake-chips {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.pd-v2__mistake-chip {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pd-v2__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 11px 16px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  border: none;
  font-family: inherit;
}

.pd-v2__btn--outline {
  background: #fff;
  border: 2px solid var(--pd-v2-green);
  color: var(--pd-v2-green);
  transition: background 0.15s;
}

.pd-v2__btn--outline:hover {
  background: #ecfdf5;
}

.pd-v2__ach-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.pd-v2__ach-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #f8faf9;
}

.pd-v2__ach-icon {
  font-size: 1.35rem;
}

.pd-v2__ach-title {
  font-size: 0.88rem;
  font-weight: 600;
}

.pd-v2__link-all {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--pd-v2-green);
  text-decoration: none;
}

.pd-v2__link-all:hover {
  text-decoration: underline;
}

/* —— Topbar v2 —— */
.prep-dash--v2 .prep-dash__topbar {
  margin-bottom: 20px;
}

.prep-dash--v2 .prep-dash__topbar-right {
  gap: 10px;
}

.prep-dash--v2 .prep-dash__badge--notify {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  justify-content: center;
  border: 1px solid var(--pd-v2-border);
}

.prep-dash--v2 .prep-dash__badge--notify .hub-ico svg {
  width: 20px;
  height: 20px;
}

.prep-dash--v2 .prep-dash__user {
  border-radius: 999px;
  padding: 4px 14px 4px 4px;
}

.prep-dash--v2 .prep-dash__avatar {
  background: var(--pd-v2-green);
}

/* Sidebar widgets (streak card) */
.prep-dash--v2 #siteAppShellExtras .prep-dash__widget--streak {
  background: linear-gradient(145deg, #ecfdf5, #d1fae5);
  border-color: #a7f3d0;
}

.prep-dash--v2 #siteAppShellExtras .prep-dash__btn--sm {
  padding: 8px 12px;
  font-size: 0.82rem;
  margin-top: 8px;
}

/* Collapsed map section */
.prep-dash--v2 .prep-dash__col-main--hub {
  max-width: none;
  margin: 0;
  padding: 0;
}

.prep-dash--v2 .prep-dash__themes-wrap {
  background: var(--pd-v2-card);
  border-radius: var(--pd-v2-radius);
  border: 1px solid var(--pd-v2-border);
  box-shadow: var(--pd-v2-shadow);
}

.prep-dash--v2 .prep-dash__themes-wrap > .hub-section-title {
  margin: 0;
  padding: 16px 18px;
  color: var(--pd-v2-text);
}

/* —— Responsive —— */
@media (max-width: 1100px) {
  .pd-v2__layout {
    grid-template-columns: 1fr;
  }

  .pd-v2__aside {
    position: static;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
  }
}

@media (max-width: 768px) {
  .pd-v2__stats {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .pd-v2__stat {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding: 0 0 16px;
  }

  .pd-v2__stat:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .pd-v2__progress-card {
    grid-template-columns: 1fr;
  }

  .pd-v2__progress-forecast {
    text-align: left;
  }

  .pd-v2__forecast-hint,
  .pd-v2__forecast-chart svg {
    margin-left: 0;
  }

  .pd-v2__stepper-label {
    font-size: 0.6rem;
  }

  .pd-v2__route-item {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
  }

  .pd-v2__route-state {
    grid-column: 2;
    justify-self: start;
  }

  .pd-v2__route-chevron,
  .pd-v2__route-lock {
    grid-row: 1 / 3;
    grid-column: 3;
    align-self: center;
  }
}

@media (max-width: 640px) {
  .prep-dash--v2 .prep-dash__main {
    padding: 12px 14px 80px !important;
  }

  .pd-v2__aside {
    grid-template-columns: 1fr;
  }
}

/* Dashboard composition aligned with the student-home reference. */
.prep-dash--v2 {
  --pd-v2-green: #087a42;
  --pd-v2-lime-dark: #0bb85d;
  --pd-v2-bg: #fbfcfd;
  --pd-v2-border: #e3e8ef;
  --pd-v2-text: #14213a;
  --pd-v2-muted: #6b778c;
  --pd-v2-shadow: 0 5px 18px rgba(23, 34, 52, 0.035);
}

.prep-dash--v2 .prep-dash__main {
  background: var(--pd-v2-bg);
  padding: 26px 38px 56px !important;
}

.pd-v2 {
  max-width: 1320px;
  margin: 0 auto;
}

.pd-v2__welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 2px 2px 24px;
}

.pd-v2__welcome h1 {
  margin: 0 0 6px;
  color: var(--pd-v2-text);
  font-size: clamp(1.55rem, 2.2vw, 2rem);
  letter-spacing: -0.025em;
}

.pd-v2__welcome p {
  margin: 0;
  color: var(--pd-v2-muted);
  font-size: 0.94rem;
}

.pd-v2__welcome-stats {
  display: flex;
  align-items: center;
  gap: 26px;
  color: #28344a;
  white-space: nowrap;
  font-size: 0.9rem;
}

.pd-v2__layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 24px;
}

.pd-v2__main { gap: 16px; }
.pd-v2__aside { gap: 16px; top: 20px; }

.pd-v2__mission-wrap,
.pd-v2__progress-card,
.pd-v2__widget,
.prep-dash--v2 .prep-dash__themes-wrap {
  border: 1px solid var(--pd-v2-border);
  border-radius: 14px;
  box-shadow: var(--pd-v2-shadow);
}

.pd-v2__mission-wrap {
  position: relative;
  overflow: hidden;
  border-color: var(--pd-v2-border);
}

.pd-v2__mission-head {
  color: var(--pd-v2-text);
  padding: 20px 24px 0;
}

.pd-v2__mission-wrap .hub-mission__card {
  position: relative;
  z-index: 1;
  padding: 10px 190px 20px 24px;
}

.pd-v2__mission-wrap .hub-mission__icon {
  width: 74px;
  height: 74px;
  background: #e8f8ed;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
}

.pd-v2__mission-wrap .hub-mission__title {
  color: var(--pd-v2-text);
  font-size: 1.25rem;
}

.pd-v2__mission-wrap .hub-mission__cta {
  box-shadow: 0 5px 14px rgba(11, 184, 93, 0.2);
  background: #08b85a;
}

.pd-v2__mission-art {
  position: absolute;
  z-index: 0;
  right: 28px;
  top: 58px;
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 3.3rem;
  opacity: 0.72;
  filter: saturate(.8);
}

.pd-v2__mission-stepper {
  background: #fcfdfc;
  padding: 14px 24px 18px;
}

.pd-v2__progress-card {
  grid-template-columns: minmax(0, 1fr) 190px;
  background: #fff;
  color: var(--pd-v2-text);
  padding: 22px 24px;
}

.pd-v2__progress-title {
  margin-bottom: 12px;
  font-size: 1rem;
}

.pd-v2__progress-bar {
  height: 8px;
  background: #edf0f4;
}

.pd-v2__progress-fill { background: #0bb85d; }
.pd-v2__progress-current { color: var(--pd-v2-muted); }
.pd-v2__forecast-score { color: #08a94f; font-size: 1.7rem; }
.pd-v2__forecast-hint { color: var(--pd-v2-muted); opacity: 1; }
.pd-v2__forecast-chart { color: #08a94f; }

.pd-v2__secondary {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pd-v2__secondary-cta {
  width: 100%;
  box-sizing: border-box;
  padding: 15px 16px;
  background: #fff;
  border-color: var(--pd-v2-border);
  border-radius: 12px;
}

.pd-v2__widget {
  background: #fff;
  padding: 20px 22px;
}

.pd-v2__widget--today {
  min-height: 154px;
  display: grid;
  grid-template-columns: 1fr 86px;
  align-content: center;
  column-gap: 14px;
}

.pd-v2__widget--today .pd-v2__widget-kicker,
.pd-v2__widget--today .pd-v2__widget-title,
.pd-v2__widget--today .pd-v2__widget-sub { grid-column: 1; }
.pd-v2__widget--today .pd-v2__ring { grid-column: 2; grid-row: 1 / 4; align-self: center; }

@media (max-width: 1180px) {
  .pd-v2__layout { grid-template-columns: 1fr; }
  .pd-v2__aside { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .prep-dash--v2 .prep-dash__main { padding: 18px 16px 86px !important; }
  .pd-v2__welcome { align-items: flex-start; flex-direction: column; margin-bottom: 18px; }
  .pd-v2__welcome-stats { width: 100%; justify-content: space-between; gap: 12px; }
  .pd-v2__aside { grid-template-columns: 1fr; }
  .pd-v2__mission-art { display: none; }
  .pd-v2__mission-wrap .hub-mission__card { padding-right: 20px; }
  .pd-v2__progress-card { grid-template-columns: 1fr; }
  .pd-v2__secondary { grid-template-columns: 1fr; }
}

/* Student home 2026 — reference-driven composition. */
.prep-dash--v2 {
  --home-bg: #f8faf9;
  --home-card: #fff;
  --home-text: #132238;
  --home-muted: #667085;
  --home-green: #08b958;
  --home-green-dark: #087a43;
  --home-green-soft: #eaf9f0;
  --home-border: #e3e9e6;
  --home-radius: 14px;
}

.prep-dash--v2 .prep-dash__main {
  padding: 30px clamp(30px, 3vw, 42px) 60px !important;
  background: var(--home-bg);
}

.student-home { max-width: 1280px; margin: 0 auto; color: var(--home-text); }
.prep-dash--v2 .prep-dash__topbar { display:none!important; }
.student-home__welcome { display:flex; align-items:center; justify-content:space-between; min-height:62px; margin-bottom:20px; gap:24px; }
.student-home__welcome h1 { margin:0 0 6px; font-size:30px; line-height:1.15; letter-spacing:-.025em; color:var(--home-text); }
.student-home__welcome p { margin:0; color:var(--home-muted); font-size:15px; }
.student-home__status { display:flex; align-items:center; gap:26px; white-space:nowrap; font-size:14px; }
.student-home__status > span { display:flex; align-items:center; gap:7px; }
.student-home__status .hub-ico { color:#f3a800; width:20px; height:20px; }
.student-home__avatar { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:#eff3f2; border:1px solid var(--home-border); color:var(--home-green-dark); text-decoration:none; font-weight:800; }
.student-home__avatar:hover { background:var(--home-green-soft); }

.student-home__exam-chip { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; min-height:36px; border-radius:999px; border:1px solid var(--home-border); background:#fff; color:var(--home-text, #1f2a37); font:inherit; font-size:13px; cursor:pointer; white-space:nowrap; }
.student-home__exam-chip:hover { background:var(--home-green-soft); }
.student-home__exam-chip .hub-ico { color:var(--home-green-dark, #15803d); width:17px; height:17px; }
.student-home__exam-chip--soon { border-color:#f0b429; background:#fff7e6; color:#8a5a00; }
.student-home__exam-chip--soon .hub-ico { color:#c47f00; }
.student-home__exam-chip--past { opacity:.65; }
.student-home__exam-input { font:inherit; font-size:13px; padding:6px 10px; min-height:36px; border-radius:999px; border:1px solid var(--home-border); }

.student-home__grid { display:grid; grid-template-columns:minmax(680px,1fr) 380px; gap:24px; align-items:start; }
.student-home__main, .student-home__aside { display:flex; flex-direction:column; gap:16px; min-width:0; }
.student-home__aside { position:sticky; top:20px; }
.student-home-card { box-sizing:border-box; background:var(--home-card); border:1px solid var(--home-border); border-radius:var(--home-radius); box-shadow:0 3px 12px rgba(19,34,56,.025); }
.student-home-card__title, .student-home-card h2 { color:var(--home-text); }
.student-home-card__title { margin:0; font-size:16px; font-weight:750; }
.student-home-card__head { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.student-home-card__head > div { display:flex; align-items:baseline; gap:14px; }
.student-home-card__head h2 { margin:0; font-size:16px; }
.student-home-card__head span { color:var(--home-muted); font-size:14px; }
.student-home-card__head a, .student-home-side header a { color:var(--home-green-dark); text-decoration:none; font-size:14px; }
.student-home-card a:focus-visible, .student-home-card button:focus-visible, .student-home__avatar:focus-visible { outline:3px solid rgba(8,185,88,.22); outline-offset:2px; }

.student-home-mission { height:304px; padding:22px 24px 17px; position:relative; overflow:hidden; }
.student-home-mission__content { display:grid; grid-template-columns:112px minmax(0,1fr) 150px; align-items:center; min-height:130px; gap:20px; }
.student-home-mission__icon { display:grid; place-items:center; width:108px; height:108px; border-radius:50%; background:var(--home-green-soft); color:var(--home-green); }
.student-home-mission__icon .hub-ico { width:48px; height:48px; }
.student-home-mission__icon .hub-ico svg,
.student-home-mission__art .hub-ico svg,
.student-home-forecast__chart > .hub-ico svg { width:100%; height:100%; }
.student-home-mission__name { margin:0 0 4px; font-size:19px; color:var(--home-text); }
.student-home-mission__topic { margin:0; font-size:22px; line-height:1.2; font-weight:800; color:var(--home-text); }
.student-home-mission__meta { display:flex; flex-wrap:wrap; gap:18px; list-style:none; padding:0; margin:15px 0 0; color:var(--home-muted); font-size:13px; }
.student-home-mission__meta li { display:flex; align-items:center; gap:6px; }
.student-home-mission__meta .hub-ico { width:17px; height:17px; color:#8190a5; }
.student-home-mission__meta li:nth-child(2) .hub-ico { color:#f4ae00; }
.student-home-mission__art { display:flex; align-items:center; justify-content:center; gap:0; color:#67cf82; opacity:.75; }
.student-home-mission__art .hub-ico:first-child { width:64px; height:64px; }
.student-home-mission__art .hub-ico:last-child { width:88px; height:88px; margin-left:-9px; color:#a4df9c; }
.student-home-mission__cta { display:flex; width:100%; min-height:46px; align-items:center; justify-content:center; border:0; border-radius:9px; color:#fff; background:var(--home-green); font:700 16px/1 inherit; cursor:pointer; box-shadow:0 4px 10px rgba(8,185,88,.16); transition:background .15s, transform .15s; }
.student-home-mission__cta:hover { background:#079e4d; transform:translateY(-1px); }
.student-home-mission__cta:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.student-home-mission__alternate { display:flex; align-items:center; justify-content:center; gap:4px; width:max-content; margin:12px auto 0; color:var(--home-green-dark); text-decoration:none; font-size:13px; }
.student-home-mission__alternate .hub-ico { width:15px; height:15px; }

.student-home-forecast { height:174px; padding:20px 22px; display:grid; grid-template-columns:minmax(0,1fr) 185px; gap:24px; }
.student-home-forecast__heading { display:flex; align-items:center; gap:8px; }
.student-home-forecast__heading h2 { margin:0; font-size:16px; }
.student-home-forecast__heading > span { display:grid; place-items:center; width:15px; height:15px; border:1px solid #98a2b3; border-radius:50%; color:#667085; font-size:10px; }
.student-home-forecast__score-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:7px; }
.student-home-forecast__score-row > strong { color:#08aa50; font-size:36px; line-height:1; }
.student-home-forecast__score-row small { font-size:23px; }
.student-home-forecast__delta { padding:5px 10px; border-radius:999px; background:var(--home-green-soft); color:var(--home-green-dark); font-size:12px; font-weight:700; }
.student-home-forecast__delta.is-behind { background:#fff5e5; color:#9a6700; }
.student-home-forecast__main > p { margin:7px 0 9px; color:var(--home-muted); font-size:13px; }
.student-home-forecast__main > p span { color:var(--home-green); font-weight:800; }
.student-home-forecast__bar { height:7px; background:#edf0ef; border-radius:99px; overflow:hidden; }
.student-home-forecast__bar span { display:block; height:100%; border-radius:inherit; background:var(--home-green); }
.student-home-forecast__scale { display:flex; justify-content:space-between; margin-top:4px; color:var(--home-muted); font-size:11px; }
.student-home-forecast__chart { border-left:1px solid var(--home-border); padding-left:24px; display:flex; flex-direction:column; justify-content:center; }
.student-home-forecast__chart p { margin:0 0 8px; color:var(--home-muted); font-size:12px; line-height:1.5; }
.student-home-forecast__chart p strong { color:var(--home-text); }
.student-home-forecast__chart > .hub-ico { width:145px; height:52px; color:var(--home-green); }

.student-home-route { height:184px; padding:20px 22px; }
.student-home-route__stages { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:18px; }
.student-home-route__stage { position:relative; display:flex; flex-direction:column; align-items:center; min-width:0; text-align:center; }
.student-home-route__stage:not(:last-child)::after { content:""; position:absolute; top:21px; left:calc(50% + 26px); right:calc(-50% + 26px); border-top:2px dashed #aeb9c7; }
.student-home-route__node { position:relative; z-index:1; display:grid; place-items:center; width:42px; height:42px; box-sizing:border-box; border:2px solid #77b8fa; border-radius:50%; background:#fff; color:#207bc2; font-weight:800; }
.student-home-route__node .hub-ico { width:17px; height:17px; }
.student-home-route__stage.is-done .student-home-route__node { border-color:var(--home-green); background:var(--home-green-soft); color:var(--home-green-dark); }
.student-home-route__stage.is-active .student-home-route__node { border-color:var(--home-green); color:var(--home-green-dark); }
.student-home-route__stage.is-locked .student-home-route__node { border-color:#d4d9df; color:#7d8794; background:#f8f9fa; }
.student-home-route__stage strong { display:block; width:100%; margin-top:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:600; }
.student-home-route__stage > span { color:var(--home-muted); font-size:11px; margin-top:3px; }
.student-home-route__mini { width:52px; height:4px; margin-top:6px; border-radius:99px; background:#e9edec; overflow:hidden; }
.student-home-route__mini i { display:block; height:100%; background:var(--home-green); }

.student-home-recs { min-height:142px; padding:18px; }
.student-home-recs > h2 { margin:0 0 14px; font-size:16px; }
.student-home-recs__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.student-home-rec { min-width:0; min-height:76px; border:1px solid var(--home-border); border-radius:11px; background:#fbfdfc; padding:11px 12px; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; cursor:pointer; color:var(--home-text); }
.student-home-rec:hover { transform:translateY(-1px); box-shadow:0 5px 12px rgba(19,34,56,.06); }
.student-home-rec > span { min-width:0; display:flex; flex-direction:column; }
.student-home-rec small, .student-home-rec em { color:var(--home-muted); font-size:11px; font-style:normal; }
.student-home-rec strong { margin:3px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.student-home-rec > i { flex:0 0 auto; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--home-green-soft); color:var(--home-green-dark); }
.student-home-rec > i .hub-ico { width:21px; height:21px; }
.student-home-rec.is-red { border-color:#f5dada; background:#fffafa; }.student-home-rec.is-red > i{background:#feecec;color:#e5484d}
.student-home-rec.is-blue { border-color:#dbeafb; background:#f9fcff; }.student-home-rec.is-blue > i{background:#e8f4ff;color:#257cc4}

.student-home-side { padding:20px 22px; }
.student-home-side h2, .student-home-side header h2 { margin:0; font-size:16px; }
.student-home-side header { display:flex; justify-content:space-between; align-items:center; }
.student-home-plan { height:202px; }
.student-home-plan__body { display:grid; grid-template-columns:100px 1fr; gap:18px; align-items:center; margin-top:18px; }
.student-home-ring { position:relative; width:92px; height:92px; }
.student-home-ring svg { width:92px; height:92px; transform:rotate(-90deg); }
.student-home-ring circle { fill:none; stroke:#e2f2e8; stroke-width:8; }
.student-home-ring circle.value { stroke:var(--home-green); stroke-linecap:round; }
.student-home-ring strong { position:absolute; inset:0; display:grid; place-items:center; font-size:21px; }
.student-home-plan__body h3 { margin:0 0 5px; font-size:17px; }.student-home-plan__body p{margin:0 0 12px;color:var(--home-muted);font-size:13px}
.student-home-plan__body button { min-height:38px; padding:6px 16px; border:1px solid #bde4cc; border-radius:8px; background:#f0faf4; color:var(--home-green-dark); font-weight:700; cursor:pointer; }
.student-home-plan__body button:hover { background:var(--home-green-soft); }
.student-home-focus { height:264px; }.student-home-focus > h2{margin-bottom:14px}
.student-home-focus__row { display:grid; grid-template-columns:42px 1fr 20px; align-items:center; gap:12px; min-height:62px; color:var(--home-text); text-decoration:none; border-radius:9px; }
.student-home-focus__row:hover { background:#fafcfb; }
.student-home-focus__row > i { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--home-green-soft); color:var(--home-green-dark); }
.student-home-focus__row > i.is-red{background:#feecec;color:#e5484d}.student-home-focus__row > i.is-blue{background:#e9f5ff;color:#297ec2}
.student-home-focus__row > i .hub-ico { width:20px;height:20px }.student-home-focus__row > .hub-ico{width:18px;height:18px;color:#8994a3}
.student-home-focus__row span { display:flex; flex-direction:column; }.student-home-focus__row span strong{font-size:17px}.student-home-focus__row span small{color:var(--home-muted);font-size:12px;margin-top:2px}
.student-home-ach { min-height:276px; }.student-home-ach header{margin-bottom:12px}
.student-home-ach__row { display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:12px; min-height:68px; }
.student-home-ach__row > i { display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--home-green-soft);color:var(--home-green-dark)}
.student-home-ach__row > i.is-1{background:#f1edff;color:#6547cc}.student-home-ach__row > i.is-2{background:#fff4dd;color:#cc8200}.student-home-ach__row > i .hub-ico{width:24px;height:24px}
.student-home-ach__row span{display:flex;flex-direction:column;min-width:0}.student-home-ach__row strong{font-size:14px}.student-home-ach__row small{margin-top:4px;color:var(--home-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.student-home-ach__row em{font-style:normal;color:var(--home-green-dark);font-size:12px;white-space:nowrap}.student-home-empty{color:var(--home-muted);font-size:13px;margin:26px 0}
.student-home .hub-alerts--empty:empty, .student-home .hub-alerts--empty:not(:has(*:not(:empty))) { display:none; }

.prep-dash__map-page { max-width:1200px!important; margin:0 auto!important; padding:28px!important; }
.prep-dash__map-back { display:inline-flex; margin-bottom:16px; color:var(--home-green-dark); text-decoration:none; font-weight:700; }

@media (max-width:1279px) {
  .student-home__grid { grid-template-columns:1fr; }
  .student-home__aside { position:static; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .student-home-plan,.student-home-focus,.student-home-ach { height:auto; min-height:220px; }
}
@media (max-width:900px) {
  .prep-dash--v2 .prep-dash__main { padding:22px 20px 54px!important; }
  .student-home__status { gap:14px; }
  .student-home__aside { grid-template-columns:1fr; }
  .student-home-mission__content { grid-template-columns:94px minmax(0,1fr); }
  .student-home-mission__icon { width:88px;height:88px }.student-home-mission__art{display:none}
}
@media (max-width:640px) {
  .prep-dash--v2 .prep-dash__main { padding:16px 12px 82px!important; }
  .student-home__welcome { align-items:flex-start; flex-direction:column; margin-bottom:16px; }
  .student-home__welcome h1 { font-size:25px; }.student-home__status{width:100%;justify-content:space-between}.student-home__status span:first-child{display:none}
  .student-home-mission { height:auto; min-height:300px; padding:18px 16px; }.student-home-mission__content{grid-template-columns:68px 1fr;gap:12px;min-height:132px}.student-home-mission__icon{width:64px;height:64px}.student-home-mission__icon .hub-ico{width:30px;height:30px}.student-home-mission__topic{font-size:18px}.student-home-mission__meta{gap:9px;font-size:11px}
  .student-home-forecast { height:auto; grid-template-columns:1fr; }.student-home-forecast__chart{border-left:0;border-top:1px solid var(--home-border);padding:12px 0 0;flex-direction:row;justify-content:space-between;align-items:center}
  .student-home-route { height:auto; overflow:hidden; }.student-home-route__stages{display:flex;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.student-home-route__stage{flex:0 0 120px;scroll-snap-align:start}.student-home-card__head>a{font-size:12px}
  .student-home-recs__grid { grid-template-columns:1fr; }.student-home-recs{min-height:0}
}
