body[data-ui-generation="2"].member-authed {
  background: var(--dv-bg-page);
  color: var(--dv-text);
  font-family: var(--dv-font-ui);
}

body[data-ui-generation="2"].member-authed main,
body[data-ui-generation="2"].member-authed > main {
  width: calc(100% - var(--dv-sidebar-width));
  margin-left: var(--dv-sidebar-width);
  transition: none;
}

body[data-ui-generation="2"].member-authed.app-collapsed main,
body[data-ui-generation="2"].member-authed.app-collapsed > main {
  width: calc(100% - var(--dv-sidebar-collapsed));
  margin-left: var(--dv-sidebar-collapsed);
}

body[data-ui-generation="2"].member-authed main.member-main {
  padding: 28px 32px 64px;
}

body[data-ui-generation="2"] .app-sidebar {
  width: var(--dv-sidebar-width);
  gap: 0;
  padding: 16px 14px 12px;
  border-right: 1px solid var(--dv-border);
  background: var(--dv-bg-subtle);
  box-shadow: none;
  transition: transform var(--dv-duration) var(--dv-ease-out);
}

body[data-ui-generation="2"].app-collapsed .app-sidebar {
  width: var(--dv-sidebar-collapsed);
}

body[data-ui-generation="2"] .app-sidebar .app-brand {
  min-height: 52px;
  height: auto;
  margin: 0 0 12px;
  padding: 4px 8px;
  gap: 10px;
}

body[data-ui-generation="2"] .app-sidebar .app-brand .mark {
  width: 36px;
  height: 36px;
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface) url("images/the-dream-ventures-logo-ui.png") center / cover no-repeat;
  color: transparent;
  font-size: 0;
  box-shadow: none;
}

body[data-ui-generation="2"] .app-sidebar .app-brand .word {
  gap: 1px;
}

body[data-ui-generation="2"] .app-sidebar .app-brand .word strong {
  font-size: 14px;
  font-weight: 750;
  letter-spacing: -0.015em;
}

body[data-ui-generation="2"] .app-sidebar .app-brand .word small {
  font-size: 11px;
  font-weight: 550;
}

/* 정체성 박스(.app-identity)는 2026-08-20 대표 지시로 사이드바에서 사라졌다.
   같은 표면 문법은 아래 .is-vault-item(자료실)이 이어받는다. */

body[data-ui-generation="2"] .app-navgroup {
  gap: 2px;
  padding: 8px 0 4px;
}

body[data-ui-generation="2"] .app-navgroup + .app-navgroup {
  margin-top: 4px;
  border-top: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .app-navgroup > .grp-label {
  padding: 7px 10px 4px;
  color: var(--dv-text-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

body[data-ui-generation="2"] .app-navgroup .grp-hint {
  margin: -2px 10px 4px;
  color: var(--dv-text-muted);
  font-size: 11px;
  font-weight: 500;
}

body[data-ui-generation="2"] .app-navgroup.is-network-group,
body[data-ui-generation="2"] .app-navgroup + .app-navgroup.is-network-group {
  margin-top: 4px;
  padding: 6px 0 4px;
  border: 0;
  border-top: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body[data-ui-generation="2"] .app-navitem,
body[data-ui-generation="2"] .app-navgroup.is-exec-group .app-navitem,
body[data-ui-generation="2"] .app-navgroup.is-management-group .app-navitem,
body[data-ui-generation="2"] .app-navitem.is-network-item {
  min-height: 44px;
  height: 44px;
  gap: 11px;
  padding: 0 11px;
  border-radius: var(--dv-radius);
  color: var(--dv-text);
  font-size: 13.5px;
  font-weight: 600;
  transition: background-color var(--dv-duration-fast) var(--dv-ease-out), color var(--dv-duration-fast) var(--dv-ease-out);
}

body[data-ui-generation="2"] .app-navitem:hover,
body[data-ui-generation="2"] .app-navitem.is-network-item:hover {
  background: color-mix(in srgb, var(--dv-bg-surface, #ffffff) 72%, transparent);
  color: var(--dv-text-strong);
}

body[data-ui-generation="2"] .app-navitem.active,
body[data-ui-generation="2"] .app-navitem.is-home,
body[data-ui-generation="2"] .app-navitem.is-home.active,
body[data-ui-generation="2"] .app-navitem.is-network-item.active {
  background: var(--dv-bg-selected);
  color: var(--dv-primary);
  box-shadow: none;
}

body[data-ui-generation="2"] .app-navitem.active::before,
body[data-ui-generation="2"] .app-navitem.is-home.active::before,
body[data-ui-generation="2"] .app-navitem.is-network-item.active::before {
  left: 0;
  top: 11px;
  bottom: 11px;
  width: 2px;
  border-radius: 2px;
  background: var(--dv-primary);
}

body[data-ui-generation="2"] .app-navitem svg {
  width: 18px;
  height: 18px;
  stroke-width: 2;
}

/* 자료실: 사라진 정체성 박스와 같은 카드 표면(1px 경계 + 은은한 면)을 쓰되
   높이·아이콘·글자는 다른 메뉴 그대로다. 한 줄에 나란히 서면서 성격만 구분된다. */
body[data-ui-generation="2"] .app-navitem.is-vault-item {
  box-sizing: border-box;
  margin: 2px 0 3px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  color: var(--dv-text-strong);
}

body[data-ui-generation="2"] .app-navitem.is-vault-item:hover {
  border-color: color-mix(in srgb, var(--dv-primary) 40%, var(--dv-border));
  background: var(--dv-bg-selected);
  color: var(--dv-primary);
}

body[data-ui-generation="2"] .app-navitem.is-vault-item.active {
  border-color: color-mix(in srgb, var(--dv-primary) 40%, var(--dv-border));
  background: var(--dv-bg-selected);
  color: var(--dv-primary);
}

body[data-ui-generation="2"] .app-navitem.is-vault-item.active::before {
  left: -1px;
  top: 11px;
  bottom: 11px;
  width: 2px;
  border-radius: 2px;
  background: var(--dv-primary);
}

body[data-ui-generation="2"] .app-nav-more summary {
  min-height: 44px;
  border-radius: var(--dv-radius);
  font-size: 13px;
  font-weight: 600;
}

body[data-ui-generation="2"] .app-sidebar .app-bottom {
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .app-account {
  min-height: 64px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
}

body[data-ui-generation="2"] .app-account.is-logged-in {
  border-color: color-mix(in srgb, var(--dv-primary) 30%, var(--dv-border));
  background: var(--dv-bg-surface);
}

body[data-ui-generation="2"] .app-account .av,
body[data-ui-generation="2"] .app-account.is-logged-in .av {
  border-radius: var(--dv-radius);
  box-shadow: none;
}

body[data-ui-generation="2"] .app-toggle {
  top: 14px;
  left: calc(var(--app-sidebar-w) - 52px);
  width: 44px;
  height: 44px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
  transition: none;
}

body[data-ui-generation="2"].app-collapsed .app-toggle {
  left: calc(var(--app-sidebar-collapsed) - 52px);
}

body[data-ui-generation="2"] .member-dash {
  width: 100%;
  max-width: var(--app-content-max, min(max(1760px, 78vw), 2400px));
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

body[data-ui-generation="2"] .member-dash > * {
  order: 0 !important;
}

body[data-ui-generation="2"] .dv-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 2px 0 0;
}

body[data-ui-generation="2"] .dv-page-header-copy {
  min-width: 0;
}

body[data-ui-generation="2"] .dv-page-header h1 {
  margin: 0;
  color: var(--dv-text-strong);
  font-size: 28px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: -0.025em;
}

body[data-ui-generation="2"] .dv-page-header p {
  max-width: 68ch;
  margin: 5px 0 0;
  color: var(--dv-text-muted);
  font-size: 14px;
}

body[data-ui-generation="2"] .dv-new-work {
  position: relative;
  flex: 0 0 auto;
}

body[data-ui-generation="2"] .dv-new-work > summary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  color: var(--dv-primary);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

body[data-ui-generation="2"] .dv-new-work > summary::-webkit-details-marker {
  display: none;
}

body[data-ui-generation="2"] .dv-new-work-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: var(--dv-z-overlay);
  width: min(320px, calc(100vw - 32px));
  padding: 8px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: var(--dv-shadow-overlay);
}

body[data-ui-generation="2"] .dv-new-work-menu a {
  display: grid;
  gap: 1px;
  min-height: 48px;
  padding: 9px 10px;
  border-radius: 6px;
  color: var(--dv-text);
  text-decoration: none;
}

body[data-ui-generation="2"] .dv-new-work-menu a:hover {
  background: var(--dv-bg-subtle);
}

body[data-ui-generation="2"] .dv-new-work-menu strong {
  font-size: 14px;
}

body[data-ui-generation="2"] .dv-new-work-menu small {
  color: var(--dv-text-muted);
  font-size: 12px;
}

body[data-ui-generation="2"] .member-dash > .dash-hero,
body[data-ui-generation="2"] .member-dash > .dash-page-head {
  display: none !important;
}

body[data-ui-generation="2"] .member-dash .label,
body[data-ui-generation="2"] .member-dash .focus-label,
body[data-ui-generation="2"] .member-dash .hero-eyebrow {
  display: none;
}

body[data-ui-generation="2"] #todayFocus {
  margin: 0;
}

body[data-ui-generation="2"] [data-v2-action-suppressed] {
  display: none !important;
}

body[data-ui-generation="2"] #todayFocus .dash-focus-card {
  border: 1px solid color-mix(in srgb, var(--dv-border-strong) 35%, var(--dv-border));
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] #todayFocus .dash-focus-card {
  padding: 24px;
}

body[data-ui-generation="2"] #todayFocus .dash-path-strip {
  display: none;
}

body[data-ui-generation="2"] #todayFocus h2 {
  max-width: 28ch;
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: -0.02em;
}

body[data-ui-generation="2"] #todayFocus p {
  max-width: 68ch;
  margin: 0;
  color: var(--dv-text-muted);
  font-size: 15px;
}

body[data-ui-generation="2"] #todayFocus .focus-actions {
  margin-top: 20px;
}

/* "지금 이어갈 한 가지" 큐는 해체됐다(2026-08-12) — 카운터·완료 기록·완료 취소는
   케이스 인박스로 이관. 피드백 배너(.growth-action-feedback)의 스타일은 gen1 셸이 담당. */

body[data-ui-generation="2"] #savedWork {
  scroll-margin-top: 72px;
  display: grid;
  gap: 16px;
}

body[data-ui-generation="2"] #savedWork > .dash-secthead {
  align-items: end;
  padding: 0;
}

body[data-ui-generation="2"] #savedWork > .dash-secthead h2 {
  font-size: 19px;
  font-weight: 750;
}

body[data-ui-generation="2"] #savedWork > .dash-secthead .sub {
  max-width: 52ch;
  color: var(--dv-text-muted);
  font-size: 13px;
  text-align: right;
}

body[data-ui-generation="2"] .case-inbox {
  padding: 0;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] .case-inbox-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .case-inbox-head h3 {
  margin: 0 0 3px;
  font-size: 18px;
  font-weight: 750;
}

body[data-ui-generation="2"] .case-inbox-head p {
  margin: 0;
  color: var(--dv-text-muted);
  font-size: 13px;
}

/* 진행 업무는 전폭 행이 아니라 카드 그리드로 — 한 줄에 한 건씩 늘어놓으면 화면 절반이
   공백으로 남는다(2026-08-09 대표 지적). 정보 3계층: 꼭 봐야(막힌 사유·완료 가능 액센트) /
   보여줄(제목·서비스·단계) / 단순(메타 소형). 렌더러 DOM·클릭 계약은 그대로 두고 CSS만 바꾼다. */
body[data-ui-generation="2"] .case-inbox-list {
  margin: 0;
  padding: 4px 20px 20px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 12px;
}

/* 헤더와 카드만 갖고 있던 패널 안쪽 여백을 막힘 요약에도 동일하게 적용한다. */
body[data-ui-generation="2"] .case-inbox-blockers {
  width: min(560px, calc(100% - 40px));
  margin-inline: 20px;
}

body[data-ui-generation="2"] .case-inbox-item,
body[data-ui-generation="2"] .case-inbox-list > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px 12px;
  padding: 14px 16px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] .case-inbox-item-dot { display: none; }

body[data-ui-generation="2"] .case-inbox-item-main {
  grid-column: 1 / -1;
  grid-row: 1;
  align-content: start;
}

/* 상태 배지와 다음 행동은 카드 하단에 함께 둔다 — 우상단에 떨어져 있으면 "얼마나
   남았는지"와 "그래서 뭘 누르는지"를 눈이 두 번 왕복해야 한다.
   state 래퍼를 투명화해 그리드에 직접 배치한다.
   2026-08-22: 배지가 "남은 것 2 · 50%"(짧음)에서 "산출물 없음 · 실행 전"(김)으로 바뀌자
   같은 줄에서 버튼과 31px 겹쳤다(실렌더 실측). 한 줄에 억지로 붙이지 말고 배지를 그 아래
   줄로 내린다 — 눈의 왕복은 여전히 짧고(바로 아래), 겹침은 사라진다. */
body[data-ui-generation="2"] .case-inbox-item-state { display: contents; }

body[data-ui-generation="2"] .case-inbox-item .case-inbox-badge {
  /* 버튼 줄 아래 제 줄에 선다(겹침 방지). 왼쪽 정렬이라 카드의 다른 글과 시선이 맞는다. */
  grid-column: 1 / -1;
  grid-row: 3;
  justify-self: start;
  align-self: center;
  min-width: 0;
  max-width: 100%;
}

body[data-ui-generation="2"] .case-inbox-item .case-inbox-item-actions {
  grid-column: 1;
  grid-row: 2;
  justify-content: flex-start;
  padding-top: 2px;
  /* 버튼 줄이 먼저 제 폭을 갖고, 배지는 남는 자리를 쓴다. 반대로 두면 긴 배지가
     "완료 기록"·"보관" 을 밀어 찌그러뜨린다(2026-08-22 실렌더 실측). */
  min-width: max-content;
}

body[data-ui-generation="2"] .case-inbox-item.is-ready {
  border-color: color-mix(in srgb, var(--dv-warning-accent) 55%, var(--dv-border));
  background: var(--dv-warning-surface);
}

body[data-ui-generation="2"] .case-inbox-item.is-done {
  border-color: color-mix(in srgb, var(--dv-primary) 30%, var(--dv-border));
  background: var(--dv-success-surface);
}

/* 꼭 봐야 할 정보(막힌 사유)는 카드 안에서 가장 진하게 읽힌다. */
body[data-ui-generation="2"] .case-inbox-item-note {
  font-size: 12.5px;
  color: var(--dv-warning-text);
}

body[data-ui-generation="2"] .case-inbox-item-note.is-done { color: var(--dv-success-text); }

body[data-ui-generation="2"] .saved-history-details,
body[data-ui-generation="2"] .company-memory-details,
body[data-ui-generation="2"] .dash-section-details {
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] :where(.saved-history-summary, .company-memory-details-summary, .dash-section-summary) {
  min-height: 58px;
  padding: 12px 16px;
  border-radius: var(--dv-radius);
}

/* 레이아웃 감사 L7(2026-08-09): 경로 스트립을 우측 세로 컬럼이 아니라 카드 아래
   가로 3분할 밴드로 — 본문 카드가 전폭을 쓰고, 경로는 보조 정보 계층으로 내려간다. */
body[data-ui-generation="2"] #companyPlanWorkspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  overflow: hidden;
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-focus-card {
  padding: 22px;
  border: 0;
  border-bottom: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-focus-card h2 {
  margin: 8px 0 5px;
  font-size: 19px;
  font-weight: 750;
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 0;
  border-radius: 0;
  background: var(--dv-bg-subtle);
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a {
  min-height: 64px;
  border: 0;
  border-right: 1px solid var(--dv-border);
  background: transparent;
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a:last-child {
  border-right: 0;
}

body[data-ui-generation="2"] .dash-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--dv-border);
  border-bottom: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .dash-stat,
body[data-ui-generation="2"] .dash-stat.green,
body[data-ui-generation="2"] .dash-stat.amber,
body[data-ui-generation="2"] .dash-stat.coral,
body[data-ui-generation="2"] .dash-stat.navy {
  min-height: 94px;
  padding: 16px;
  border: 0;
  border-right: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body[data-ui-generation="2"] .dash-stat:last-child {
  border-right: 0;
}

body[data-ui-generation="2"] .dash-stat .stat-ic {
  display: none;
}

body[data-ui-generation="2"] .dash-stat .stat-num {
  color: var(--dv-text-strong);
  font-size: 24px;
  font-variant-numeric: tabular-nums;
}

body[data-ui-generation="2"] .dash-cols,
body[data-ui-generation="2"] .dash-prog-grid {
  gap: 16px;
}

body[data-ui-generation="2"] .dash-card,
body[data-ui-generation="2"] .prog-card,
body[data-ui-generation="2"] .quick-card {
  border-color: var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
  transform: none;
}

body[data-ui-generation="2"] .quick-card:hover,
body[data-ui-generation="2"] .prog-card:hover {
  border-color: color-mix(in srgb, var(--dv-primary) 30%, var(--dv-border));
  box-shadow: none;
  transform: none;
}

/* 로그인 게이트 — 시스템 대화상자가 아니라 업무 공간의 문이다.
   왼쪽은 레일과 같은 네이비 브랜드 면(이 제품의 고유 어휘), 오른쪽은 행동면.
   Google 로그인은 우리 코발트가 아니라 구글 관례(흰 바탕 + 공식 G 마크)를 따른다 —
   연합 로그인 버튼은 구글을 대표하는 것이지 우리 주 행동이 아니다(2026-08-11 대표 지적). */
body[data-ui-generation="2"] .app-login-gate {
  width: min(720px, calc(100% - 32px));
  margin: max(64px, 10vh) auto 0;
  padding: 0;
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
  overflow: hidden;
}

body[data-ui-generation="2"] .app-login-gate-brand {
  grid-row: 1 / span 3;
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 28px 24px;
  background: var(--dv-rail-bg);
  color: var(--dv-rail-ink);
}

body[data-ui-generation="2"] .app-login-gate-brand-mark {
  width: 40px;
  height: 40px;
  margin-bottom: 10px;
  border-radius: var(--dv-radius);
  background: url("images/the-dream-ventures-logo-ui.png") center / cover no-repeat;
}

body[data-ui-generation="2"] .app-login-gate-brand strong {
  color: #ffffff;
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -0.01em;
}

body[data-ui-generation="2"] .app-login-gate-brand-sub {
  padding-bottom: 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--dv-rail-accent) 42%, transparent);
  color: var(--dv-rail-muted);
  font-size: 12px;
  font-weight: 650;
}

body[data-ui-generation="2"] .app-login-gate-brand p {
  margin: 12px 0 0;
  color: var(--dv-rail-muted);
  font-size: 12px;
  line-height: 1.65;
  word-break: keep-all;
}

body[data-ui-generation="2"] .app-login-gate-copy {
  gap: 8px;
  padding: 28px 28px 0;
}

body[data-ui-generation="2"] .app-login-gate-copy strong {
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

body[data-ui-generation="2"] .app-login-gate-copy h1 {
  margin: 0;
  color: var(--dv-text-strong);
  font-size: 24px;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

body[data-ui-generation="2"] .app-login-gate-copy span {
  max-width: 44ch;
  color: var(--dv-text-muted);
  line-height: 1.65;
  word-break: keep-all;
}

body[data-ui-generation="2"] .app-login-gate > .app-login-gate-button {
  margin: 18px 28px 0;
}

body[data-ui-generation="2"] .app-login-gate-secondary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 28px 24px;
  padding: 9px 6px;
  border: 0;
  border-radius: var(--dv-radius);
  background: transparent;
  color: var(--dv-text-muted);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  text-underline-offset: 3px;
}

body[data-ui-generation="2"] .app-login-gate-secondary:hover {
  color: var(--dv-text-strong);
  text-decoration: underline;
}

/* 로딩·오류 상태는 버튼이 없거나 재시도 하나뿐이라 아랫여백을 copy 가 감당한다. */
body[data-ui-generation="2"] .app-login-gate-copy:last-child {
  padding-bottom: 28px;
}

@media (max-width: 720px) {
  body[data-ui-generation="2"] .app-login-gate {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-ui-generation="2"] .app-login-gate-brand {
    grid-row: auto;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 2px 12px;
    align-items: center;
    padding: 18px 20px;
  }

  body[data-ui-generation="2"] .app-login-gate-brand-mark {
    grid-row: 1 / span 2;
    width: 36px;
    height: 36px;
    margin: 0;
  }

  body[data-ui-generation="2"] .app-login-gate-brand-sub {
    padding-bottom: 0;
    border-bottom: 0;
  }

  body[data-ui-generation="2"] .app-login-gate-brand p {
    display: none;
  }

  body[data-ui-generation="2"] .app-login-gate-copy {
    padding: 22px 20px 0;
  }

  body[data-ui-generation="2"] .app-login-gate > .app-login-gate-button {
    /* gen1 모바일 규칙이 버튼을 width:100% 로 만든다 — margin 과 겹치면 카드를 넘친다(실측 19px). */
    width: auto;
    margin: 18px 20px 0;
  }

  body[data-ui-generation="2"] .app-login-gate-secondary {
    margin: 0 20px 20px;
  }
}

body[data-ui-generation="2"].app-auth-required main,
body[data-ui-generation="2"].app-auth-loading main,
body[data-ui-generation="2"].app-auth-error main {
  width: 100% !important;
  min-height: 100dvh;
  margin-left: 0 !important;
  padding: 24px 16px 64px !important;
}

body[data-ui-generation="2"].app-auth-required .app-sidebar,
body[data-ui-generation="2"].app-auth-required .app-toggle,
body[data-ui-generation="2"].app-auth-required .app-scrim,
body[data-ui-generation="2"].app-auth-loading .app-sidebar,
body[data-ui-generation="2"].app-auth-loading .app-toggle,
body[data-ui-generation="2"].app-auth-loading .app-scrim,
body[data-ui-generation="2"].app-auth-error .app-sidebar,
body[data-ui-generation="2"].app-auth-error .app-toggle,
body[data-ui-generation="2"].app-auth-error .app-scrim {
  display: none !important;
}

body[data-ui-generation="2"]:is(.app-auth-required, .app-auth-loading, .app-auth-error) .topbar :is(.main-nav, .nav-links, .top-actions, .auth-slot, .mobile-toggle),
body[data-ui-generation="2"]:is(.app-auth-required, .app-auth-loading, .app-auth-error) .mobile-menu,
body[data-ui-generation="2"]:is(.app-auth-required, .app-auth-loading, .app-auth-error) .dream-channel-widget {
  display: none !important;
}

/* 로그인이 필요하면 로그인만 받는다 — 게이트 아래로 작업 화면이 그대로 보이면
   눌러도 안 되는 것들이 사용자를 헷갈리게 한다(2026-08-11 대표 지적).
   게이트는 main 의 첫 자식으로 삽입되므로 나머지 형제를 전부 감춘다. */
body[data-ui-generation="2"]:is(.app-auth-required, .app-auth-loading, .app-auth-error) main > :not(#appLoginGate, #appAuthPending) {
  display: none !important;
}

/* 인증 확정 전 중립 상태(2026-08-20): 확인 중에는 게이트도 본화면도 그리지 않고
   이 조용한 로딩만 남긴다. 확정된 뒤 게이트든 본화면이든 한 번만 그린다. */
body[data-ui-generation="2"] .app-auth-pending {
  min-height: 46vh;
  color: var(--dv-text-muted);
  font-size: 15px;
}

body[data-ui-generation="2"].app-auth-loading .topbar,
body[data-ui-generation="2"].app-auth-loading .mobile-menu {
  display: none !important;
}

body[data-ui-generation="2"] .app-auth-pending-spinner {
  width: 18px;
  height: 18px;
  border-color: var(--dv-border);
  border-top-color: var(--dv-text-muted);
}

body[data-ui-generation="2"]:is(.app-auth-required, .app-auth-loading, .app-auth-error) .topbar-inner {
  justify-content: flex-start;
}

@media (max-width: 1180px) {
  body[data-ui-generation="2"].member-authed main.member-main {
    padding: 24px 24px 56px;
  }

  body[data-ui-generation="2"] .member-dash {
    gap: 24px;
  }

  /* The legacy stylesheet preserves the base information order. Generation 2
     keeps the active ResumeWorkPanel first at every responsive breakpoint. */
  body[data-ui-generation="2"] .member-dash #todayFocus { order: 1; }
  body[data-ui-generation="2"] .member-dash #savedWork { order: 2; }
  body[data-ui-generation="2"] .member-dash #companyMemorySection { order: 3; }
  body[data-ui-generation="2"] .member-dash #companyPlanWorkspace { order: 4; }

  body[data-ui-generation="2"] #companyPlanWorkspace {
    grid-template-columns: 1fr;
  }

  body[data-ui-generation="2"] #companyPlanWorkspace .dash-focus-card {
    border-right: 0;
    border-bottom: 1px solid var(--dv-border);
  }

  body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a {
    border-right: 1px solid var(--dv-border);
    border-bottom: 0;
  }
}

@media (max-width: 1024px) {
  body[data-ui-generation="2"].member-authed main,
  body[data-ui-generation="2"].member-authed > main,
  body[data-ui-generation="2"].member-authed.app-collapsed main,
  body[data-ui-generation="2"].member-authed.app-collapsed > main {
    box-sizing: border-box;
    width: 100% !important;
    margin-left: 0 !important;
  }

  body[data-ui-generation="2"].member-authed main.member-main {
    padding: 72px 20px 52px;
  }

  body[data-ui-generation="2"] .app-mobile-title {
    height: 56px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--dv-border);
    background: color-mix(in srgb, var(--dv-bg-page, #faf9f6) 96%, transparent);
    color: var(--dv-text-strong);
    font-family: var(--dv-font-ui);
    font-size: 15px;
    font-weight: 700;
    backdrop-filter: blur(10px);
  }

  body[data-ui-generation="2"] .app-toggle {
    top: 8px;
    left: 12px !important;
    width: 44px;
    height: 44px;
  }

  body[data-ui-generation="2"] .app-sidebar {
    box-shadow: var(--dv-shadow-overlay);
  }
}

@media (max-width: 780px) {
  body[data-ui-generation="2"].member-authed main.member-main {
    padding: 68px 16px 44px;
  }

  body[data-ui-generation="2"] .member-dash {
    gap: 20px;
  }

  body[data-ui-generation="2"] .dv-page-header {
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
  }

  body[data-ui-generation="2"] .dv-page-header-copy {
    display: none;
  }

  body[data-ui-generation="2"] .dv-new-work > summary {
    min-height: 44px;
  }

  body[data-ui-generation="2"] #todayFocus .dash-focus-card {
    padding: 20px;
  }

  body[data-ui-generation="2"] #todayFocus h2 {
    font-size: 22px;
  }

  body[data-ui-generation="2"] #savedWork > .dash-secthead {
    display: block;
  }

  body[data-ui-generation="2"] #savedWork > .dash-secthead .sub {
    display: block;
    margin-top: 4px;
    text-align: left;
  }

  body[data-ui-generation="2"] .case-inbox-head {
    display: grid;
    gap: 12px;
  }

  body[data-ui-generation="2"] .case-inbox-list {
    padding: 4px 16px 16px;
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-ui-generation="2"] .case-inbox-blockers {
    width: calc(100% - 32px);
    margin-inline: 16px;
  }

  body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip {
    display: grid;
    grid-template-columns: 1fr;
  }

  body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a {
    border-right: 0;
    border-bottom: 1px solid var(--dv-border);
  }

  body[data-ui-generation="2"] .dash-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  body[data-ui-generation="2"] .dash-cols {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 360px) {
  body[data-ui-generation="2"] .dv-new-work > summary span {
    display: none;
  }

  body[data-ui-generation="2"] .dv-new-work > summary {
    width: 44px;
    justify-content: center;
    padding: 0;
  }

  body[data-ui-generation="2"] .dash-stats {
    grid-template-columns: 1fr;
  }
}

body[data-ui-generation="2"] .company-agent-work-status {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 15px 24px;
  padding: 20px 22px;
  border: 1px solid var(--dv-border-strong, #767d89);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface, #fff);
  box-shadow: none;
}

body[data-ui-generation="2"] .company-agent-work-status[hidden] {
  display: none;
}

body[data-ui-generation="2"] .company-agent-work-copy {
  min-width: 0;
}

body[data-ui-generation="2"] .company-agent-work-state {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--dv-bg-selected, #e9edf9);
  color: var(--dv-primary, #2c55e0);
  font-size: 11px;
  font-weight: 800;
}

body[data-ui-generation="2"] .company-agent-work-copy h2 {
  margin: 9px 0 3px;
  color: var(--dv-trust, #13294b);
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -.018em;
}

body[data-ui-generation="2"] .company-agent-work-copy p {
  margin: 0;
  color: var(--dv-text-muted, #636b79);
  font-size: 13px;
  line-height: 1.5;
}

body[data-ui-generation="2"] .company-agent-work-progress {
  grid-column: 1 / -1;
  height: 5px;
  overflow: hidden;
  border-radius: 4px;
  background: var(--dv-bg-subtle, #f2f0ec);
}

body[data-ui-generation="2"] .company-agent-work-progress > span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--dv-primary, #2c55e0);
  /* 진행 채움은 width가 아니라 transform으로 움직인다 — 레이아웃 재계산 없이 합성만 일어난다.
     진행률이 폴링마다 실시간 갱신되기 시작해(2026-08-09) 이 전환 비용이 실제로 의미가 생겼다. */
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s cubic-bezier(.16, 1, .3, 1);
}

body[data-ui-generation="2"] .company-agent-work-facts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
}

body[data-ui-generation="2"] .company-agent-work-facts > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding-right: 16px;
}

body[data-ui-generation="2"] .company-agent-work-facts > div + div {
  padding-left: 16px;
  border-left: 1px solid var(--dv-border, #c9c5bb);
}

body[data-ui-generation="2"] .company-agent-work-facts dt {
  color: var(--dv-text-muted, #636b79);
  font-size: 11px;
  font-weight: 750;
}

body[data-ui-generation="2"] .company-agent-work-facts dd {
  margin: 0;
  color: var(--dv-text, #2e3440);
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

body[data-ui-generation="2"] .company-agent-work-actions {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  justify-items: end;
  align-content: center;
  gap: 7px;
}

body[data-ui-generation="2"] .company-agent-work-actions > span {
  color: var(--dv-primary, #2c55e0);
  font-size: 12px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

body[data-ui-generation="2"] .company-agent-work-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  white-space: nowrap;
}

body[data-ui-generation="2"] .company-agent-work-actions .btn.primary {
  border-color: var(--dv-primary, #2c55e0);
  background: var(--dv-primary, #2c55e0);
  color: var(--dv-on-primary, #fff);
}

@container member-dashboard (max-width: 760px) {
  body[data-ui-generation="2"] .company-agent-work-status {
    grid-template-columns: minmax(0, 1fr);
    padding: 18px;
  }

  body[data-ui-generation="2"] .company-agent-work-actions {
    grid-column: 1;
    grid-row: auto;
    justify-items: stretch;
  }

  body[data-ui-generation="2"] .company-agent-work-actions .btn {
    justify-content: center;
    white-space: normal;
    text-align: center;
  }

  body[data-ui-generation="2"] .company-agent-work-facts {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  body[data-ui-generation="2"] .company-agent-work-facts > div,
  body[data-ui-generation="2"] .company-agent-work-facts > div + div {
    padding: 0;
    border-left: 0;
  }
}

@container member-dashboard (min-width: 781px) and (max-width: 1049px) {
  body[data-ui-generation="2"] .dash-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-ui-generation="2"] .company-agent-work-progress > span {
    transition: none;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   업무현황 판독성 (gen2)
   고친 것: (1) 빈 화면이 "0"을 열 번 넘게 반복, (2) 카드 안의 카드가 4겹,
   (3) 모든 블록이 같은 흰 배경 + 같은 1px 테두리라 시선이 갈 곳이 없음,
   (4) 반복되는 테두리가 화면을 격자로 만듦, (5) 상태를 색으로 읽을 수 없음.
   원칙: 지금 할 하나 > 진행 중 > 참고 의 3단 위계, 카드 평탄화, 여백 분할,
   상태색은 라벨 문구와 함께만 쓴다.
   ───────────────────────────────────────────────────────────────────────── */

/* 1) 위계 1단 — 지금 해야 할 한 가지만 카드로 떠 있는다.
   큐 해체(2026-08-12) 후 이어갈 업무의 액션 표면은 케이스 인박스가 승계한다. */
body[data-ui-generation="2"] #caseInbox[data-action-owner],
body[data-ui-generation="2"] #todayFocus[data-action-owner] .dash-focus-card {
  border-color: color-mix(in srgb, var(--dv-primary) 34%, var(--dv-border));
  border-top: 3px solid var(--dv-primary);
}

body[data-ui-generation="2"] #caseInbox[data-action-owner] .case-inbox-head h3 {
  color: var(--dv-primary);
}

/* 2) 위계 2·3단 — 회사 메모리는 카드가 아니라 여백과 제목으로 나뉜 섹션이다. */
body[data-ui-generation="2"] .company-memory-panel {
  margin: 0;
  padding: 0;
  gap: 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body[data-ui-generation="2"] .company-memory-head {
  align-items: end;
  gap: 16px 24px;
  padding-top: 4px;
}

body[data-ui-generation="2"] .company-memory-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.015em;
}

body[data-ui-generation="2"] .company-memory-head p {
  max-width: 68ch;
  margin: 4px 0 0;
  color: var(--dv-text-muted);
  font-size: 13px;
}

/* 3) 선 줄이기 — 지표 타일의 개별 테두리를 없애고 세로 구분선 하나로 묶는다. */
body[data-ui-generation="2"] .company-memory-metrics {
  display: flex;
  gap: 0;
  min-width: 0;
  justify-self: end;
}

body[data-ui-generation="2"] .company-memory-metrics span {
  min-width: 84px;
  padding: 2px 14px;
  border: 0;
  border-left: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
  text-align: right;
}

body[data-ui-generation="2"] .company-memory-metrics span:first-child {
  border-left: 0;
}

body[data-ui-generation="2"] .company-memory-metrics b {
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

/* 4) 상태 분포 타일(.memory-pulse-item)은 케이스 인박스와 중복이라 제거됐다(2026-08-17). */

/* 실행 경로 3단은 번호를 왼쪽에 붙인 목록이다 (칸 안이 비어 보이지 않게). */
body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a {
  grid-template-columns: 25px minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: 2px 12px;
  padding: 14px 18px;
}

body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip a > span {
  grid-row: span 2;
}

@media (min-width: 1181px) {
  /* L7(2026-08-09): 우측 세로 컬럼 시절의 1열 강제였다 — 카드 아래 가로 밴드로
     바뀌면서 데스크톱도 3분할을 유지한다. */
  body[data-ui-generation="2"] #companyPlanWorkspace .dash-path-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-content: start;
  }
}

/* 5) 회사 전담 AI 카드 평탄화 — 그라디언트와 중첩 카드를 없애고 두 면으로 나눈다. */
body[data-ui-generation="2"] .company-agent-card {
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
}

body[data-ui-generation="2"] .company-agent-main {
  gap: 10px;
  padding: 20px 22px;
}

body[data-ui-generation="2"] .company-agent-main strong {
  font-size: 17px;
  font-weight: 750;
  letter-spacing: -0.015em;
}

body[data-ui-generation="2"] .company-agent-main p {
  max-width: 62ch;
  font-size: 13px;
}

body[data-ui-generation="2"] .company-agent-plan {
  padding: 20px 22px;
  border: 0;
  border-left: 1px solid var(--dv-border);
  border-radius: 0;
  background: var(--dv-bg-subtle);
}

/* 근거 3칸은 상자가 아니라 구분선으로 나뉜 한 줄이다. */
body[data-ui-generation="2"] .company-agent-evidence {
  gap: 0;
  margin-top: 6px;
}

body[data-ui-generation="2"] .agent-evidence {
  padding: 0 14px;
  border: 0;
  border-left: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
}

body[data-ui-generation="2"] .agent-evidence:first-child {
  padding-left: 0;
  border-left: 0;
}

body[data-ui-generation="2"] .agent-evidence.missing strong {
  color: var(--dv-warning-text);
}

body[data-ui-generation="2"] .agent-evidence.ready strong,
body[data-ui-generation="2"] .agent-evidence.active strong {
  color: var(--dv-success-text);
}

/* 6) 참고 단계 — 접힌 기록은 상자가 아니라 조용한 한 줄이다. */
body[data-ui-generation="2"] .saved-history-details,
body[data-ui-generation="2"] .company-memory-details {
  border: 0;
  border-top: 1px solid var(--dv-border);
  border-radius: 0;
  background: transparent;
}

body[data-ui-generation="2"] :where(.saved-history-summary, .company-memory-details-summary) {
  min-height: 52px;
  padding: 12px 2px;
  border-radius: 0;
  color: var(--dv-text-muted);
}

body[data-ui-generation="2"] :where(.saved-history-summary, .company-memory-details-summary) strong {
  color: var(--dv-text);
  font-size: 14px;
  font-weight: 650;
}

/* 7) 요약 통계는 참고 단계 — 위계를 낮춘다. */
body[data-ui-generation="2"] .dash-stat .stat-label {
  color: var(--dv-text-muted);
  font-size: 12px;
  font-weight: 650;
}

body[data-ui-generation="2"] .dash-stat .stat-sub {
  color: var(--dv-text-muted);
  font-size: 11.5px;
}

/* 9) 0인 지표는 뒤로 물러난다 — 상태 색은 실제로 그 상태에 무언가 있을 때만 켜지고,
      0은 보조 잉크로 낮춰 숫자가 있는 칸이 먼저 읽히게 한다. */
body[data-ui-generation="2"] .company-memory-metrics span[data-dv-zero] b,
body[data-ui-generation="2"] .case-inbox-metric[data-dv-zero] b,
body[data-ui-generation="2"] .dash-stat[data-dv-zero] .stat-num {
  color: var(--dv-text-muted);
  font-weight: 600;
}

/* ── 빈 상태: 0을 세지 않고 한 번만 말한다 ───────────────────────────────
   실제 업무량이 0인 동안에만 켜지고, 데이터가 생기면 자동으로 꺼진다. */
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .company-memory-metrics,
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .case-inbox-metrics,
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .company-agent-evidence,
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .saved-history-summary em,
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] #companyMemoryDetailsCount,
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .dash-stat[data-dv-zero],
body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .chip-row > .tag[data-dv-zero] {
  display: none;
}

body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .company-agent-card {
  grid-template-columns: minmax(0, 1fr);
}

body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .company-agent-plan {
  border-left: 0;
  border-top: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .member-dash[data-dv-workload="idle"] .dash-stats {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

@media (max-width: 1180px) {
  body[data-ui-generation="2"] .company-agent-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-ui-generation="2"] .company-agent-plan {
    border-left: 0;
    border-top: 1px solid var(--dv-border);
  }
}

@media (max-width: 780px) {
  body[data-ui-generation="2"] .company-memory-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-ui-generation="2"] .company-memory-metrics {
    justify-self: start;
    min-width: 0;
  }

  body[data-ui-generation="2"] .company-memory-metrics span {
    min-width: 0;
    padding: 2px 12px;
    text-align: left;
  }

  body[data-ui-generation="2"] .company-memory-metrics span:first-child {
    padding-left: 0;
  }

  body[data-ui-generation="2"] .company-memory-pulse {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-ui-generation="2"] .memory-pulse-item:nth-child(-n + 2) {
    border-bottom: 1px solid var(--dv-border);
  }

  body[data-ui-generation="2"] .memory-pulse-item:nth-child(odd) {
    border-left: 0;
  }

  body[data-ui-generation="2"] .company-agent-main,
  body[data-ui-generation="2"] .company-agent-plan {
    padding: 18px 16px;
  }

  body[data-ui-generation="2"] .company-agent-evidence {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-ui-generation="2"] .agent-evidence {
    padding: 8px 0;
    border-left: 0;
    border-top: 1px solid var(--dv-border);
  }

  body[data-ui-generation="2"] .agent-evidence:first-child {
    border-top: 0;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   회원 홈 하단부 (gen2) — 상단만 V2로 바뀌고 케어 알림·브리핑·지원사업·실행
   메뉴는 레거시 문법(16px 라운드, 부양 그림자, 무지개 칩, 그라디언트 바)이
   남아 화면이 반쪽짜리였다. 원칙: 8px + 1px 경계의 평평한 카드, 카테고리 칩은
   조용한 중립 하나, 상태색은 실제 상태(긴급·권장)에만, 빈 상태는 허공 텍스트가
   아니라 면 위에 앉힌다.
   ───────────────────────────────────────────────────────────────────────── */

body[data-ui-generation="2"] .member-dash .dash-secthead {
  align-items: end;
  padding: 0;
}

body[data-ui-generation="2"] .member-dash .dash-secthead h2 {
  color: var(--dv-text-strong);
  font-size: 19px;
  font-weight: 750;
  letter-spacing: -0.02em;
}

body[data-ui-generation="2"] .member-dash .dash-secthead .sub {
  color: var(--dv-text-muted);
  font-size: 13px;
}

body[data-ui-generation="2"] .member-dash .dash-secthead .head-link,
body[data-ui-generation="2"] .dash-card > .card-head .head-link {
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  color: var(--dv-primary);
  font-size: 13px;
  font-weight: 700;
  transition: background-color var(--dv-duration-fast) var(--dv-ease-out), border-color var(--dv-duration-fast) var(--dv-ease-out);
}

body[data-ui-generation="2"] .member-dash .dash-secthead .head-link:hover,
body[data-ui-generation="2"] .dash-card > .card-head .head-link:hover {
  border-color: color-mix(in srgb, var(--dv-primary) 30%, var(--dv-border));
  background: var(--dv-bg-selected);
  text-decoration: none;
}

/* 빈 상태: 허공에 뜬 한 줄이 아니라 면 위에 앉은 안내다. */
body[data-ui-generation="2"] .member-dash .dash-empty {
  grid-column: 1 / -1;
  padding: 22px 20px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
}

/* 케어 알림: 상태색은 긴급·권장에만, 행동 버튼은 하나만 채운다. */
body[data-ui-generation="2"] .care-card {
  gap: 8px;
  padding: 16px 18px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] .care-card .cc-sev {
  padding: 3px 9px;
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}

body[data-ui-generation="2"] .care-card[data-sev="high"] .cc-sev {
  background: var(--dv-danger-surface);
  color: var(--dv-danger);
}

body[data-ui-generation="2"] .care-card[data-sev="medium"] .cc-sev {
  background: var(--dv-warning-surface);
  color: var(--dv-warning-text);
}

body[data-ui-generation="2"] .care-card .cc-title {
  color: var(--dv-text-strong);
  font-size: 14px;
  font-weight: 700;
}

body[data-ui-generation="2"] .care-card .cc-body {
  color: var(--dv-text-muted);
  font-size: 12.5px;
}

body[data-ui-generation="2"] .care-card .cc-actions a,
body[data-ui-generation="2"] .care-card .cc-actions button {
  min-height: 36px;
  border-radius: var(--dv-radius);
  font-weight: 700;
}

body[data-ui-generation="2"] .care-card .cc-go {
  background: var(--dv-primary);
  color: var(--dv-on-primary);
}

body[data-ui-generation="2"] .care-card .cc-go:hover {
  background: var(--dv-primary-hover);
}

body[data-ui-generation="2"] .care-card .cc-seen {
  border-color: var(--dv-border);
  background: var(--dv-bg-surface);
  color: var(--dv-text);
}

/* 브리핑·인사이트: 카드 그림자를 걷고, 항목은 헤어라인 행으로 나눈다. */
body[data-ui-generation="2"] .dash-card {
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] .dash-card > .card-head {
  padding: 18px 20px 6px;
}

body[data-ui-generation="2"] .dash-card > .card-head h2 {
  color: var(--dv-text-strong);
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.015em;
}

body[data-ui-generation="2"] .dash-card .card-body {
  padding: 4px 20px 16px;
  gap: 0;
}

body[data-ui-generation="2"] .feed-item {
  gap: 3px;
  padding: 12px 0;
  border-radius: 0;
}

body[data-ui-generation="2"] .feed-item + .feed-item {
  border-top: 1px solid var(--dv-border);
}

body[data-ui-generation="2"] .feed-item:hover {
  background: transparent;
}

body[data-ui-generation="2"] .feed-item.linked:hover .fi-title,
body[data-ui-generation="2"] a.feed-item:hover .fi-title {
  color: var(--dv-primary);
}

body[data-ui-generation="2"] .feed-item .fi-title {
  color: var(--dv-text-strong);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

body[data-ui-generation="2"] .feed-item .fi-sum {
  color: var(--dv-text-muted);
  font-size: 12.5px;
  line-height: 1.5;
}

/* 카테고리 칩은 상태가 아니다 — 무지개 대신 조용한 중립 하나. */
body[data-ui-generation="2"] .feed-item .fi-pill,
body[data-ui-generation="2"] .fi-pill.gold,
body[data-ui-generation="2"] .fi-pill.blue,
body[data-ui-generation="2"] .fi-pill.violet,
body[data-ui-generation="2"] .fi-pill.red {
  padding: 3px 8px;
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}

/* 추천 지원사업: 평평한 카드, 매칭 바는 단색 실행 그린. */
body[data-ui-generation="2"] .prog-card {
  gap: 8px;
  padding: 16px 18px;
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
  transform: none;
}

body[data-ui-generation="2"] .prog-card:hover {
  border-color: color-mix(in srgb, var(--dv-primary) 30%, var(--dv-border));
  box-shadow: none;
  transform: none;
}

body[data-ui-generation="2"] .prog-card .pc-cat {
  padding: 3px 8px;
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
}

body[data-ui-generation="2"] .prog-card .pc-title {
  color: var(--dv-text-strong);
  font-size: 14px;
  font-weight: 650;
}

body[data-ui-generation="2"] .prog-card .pc-score {
  color: var(--dv-text-strong);
  font-weight: 700;
}

body[data-ui-generation="2"] .prog-card .pc-score .dot {
  background: var(--dv-primary);
}

body[data-ui-generation="2"] .prog-card .pc-score.pending .dot {
  background: var(--dv-warning-accent);
}

body[data-ui-generation="2"] .prog-card .pc-bar {
  height: 4px;
  background: var(--dv-bg-subtle);
}

body[data-ui-generation="2"] .prog-card .pc-bar > span {
  background: var(--dv-primary);
}

/* 실행 메뉴·작업 도구 장부 행: 토큰 색으로 정렬한다. */
body[data-ui-generation="2"] .dash-section-summary strong {
  color: var(--dv-text-strong);
  font-size: 15px;
  font-weight: 700;
}

body[data-ui-generation="2"] .dash-section-summary small {
  color: var(--dv-text-muted);
  font-size: 12.5px;
}

body[data-ui-generation="2"] .dash-section-summary em {
  border-radius: 999px;
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 12px;
  font-weight: 700;
  font-style: normal;
}

body[data-ui-generation="2"] .quick-card .qc-title {
  color: var(--dv-text-strong);
  font-weight: 700;
}

body[data-ui-generation="2"] .quick-card .qc-sub {
  color: var(--dv-text-muted);
}

body[data-ui-generation="2"] .quick-card .qc-ic {
  color: var(--dv-primary);
}

body[data-ui-generation="2"] .quick-card .qc-where {
  color: var(--dv-primary);
}

/* 요약 지표: 떠 있는 숫자가 아니라 한 컨테이너에 앉은 밴드다. */
body[data-ui-generation="2"] .dash-stats {
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  overflow: hidden;
}

body[data-ui-generation="2"] .dash-stat,
body[data-ui-generation="2"] .dash-stat:last-child {
  border: 0;
  box-shadow: -1px -1px 0 0 var(--dv-border);
}

/* 히어로 빈 상태: 주 행동은 실행 그린, 세로 중심을 맞춘다. */
body[data-ui-generation="2"] .growth-action-primary.is-empty {
  align-items: center;
  padding: 22px 0 8px;
}

body[data-ui-generation="2"] .growth-action-primary.is-empty .growth-action-copy > strong {
  margin-top: 0;
}

body[data-ui-generation="2"] .growth-action-primary.is-empty .growth-action-copy > p {
  margin-bottom: 0;
}

body[data-ui-generation="2"] .growth-action-actions .btn.primary {
  background: var(--dv-primary);
  border-color: var(--dv-primary);
  color: var(--dv-on-primary);
}

body[data-ui-generation="2"] .growth-action-actions .btn.primary:hover {
  background: var(--dv-primary-hover);
  border-color: var(--dv-primary-hover);
}

/* 기준정보 마스터 본문: 설명은 보조 잉크, 칩은 조용한 중립 + 실제 상태만 골드. */
body[data-ui-generation="2"] #companyPlanWorkspace .dash-focus-card p {
  max-width: 68ch;
  color: var(--dv-text-muted);
  font-size: 13px;
}

body[data-ui-generation="2"] #companyPlanWorkspace .chip-row > .tag {
  border: 1px solid var(--dv-border);
  border-radius: 999px;
  background: var(--dv-bg-surface);
  color: var(--dv-text);
  font-weight: 650;
  letter-spacing: 0;
}

@media (max-width: 780px) {
  body[data-ui-generation="2"] .dash-card > .card-head {
    padding: 16px 16px 4px;
  }

  body[data-ui-generation="2"] .dash-card .card-body {
    padding: 4px 16px 14px;
  }

  body[data-ui-generation="2"] .care-card {
    padding: 14px 16px;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   앱 스타일 월드 전환 — H2 (2026-08-10 대표 승인)
   네이비 레일 + 골드 위치 포인트 + 코발트 주 행동 + 웜 페이퍼 캔버스.
   인증 후 앱(gen2)에만 적용한다. 공개 랜딩은 기존 그린 월드와 --public-* 계약을
   별도 승인 전까지 유지하므로 canonical 토큰 파일은 건드리지 않고 여기서
   스코프 재정의한다. 상태색(warning·danger·success)은 기존 값 그대로다.
   ───────────────────────────────────────────────────────────────────────── */

/* 토큰 값은 canonical(dream-tokens.css)이 소유한다 — 2026-08-10 H2 승격으로
   스코프 재정의를 걷어냈다. 아래는 레일 컴포넌트 규칙만 남는다. */

/* 레일: 밝은 보조 표면에서 짙은 네이비 캔버스로. 잉크는 2단, 현재 위치는 골드. */
body[data-ui-generation="2"] .app-sidebar {
  background: var(--dv-rail-bg);
  border-right-color: var(--dv-rail-bg);
}

body[data-ui-generation="2"] .app-sidebar .app-brand .word strong {
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-sidebar .app-brand .word small {
  color: var(--dv-rail-muted);
}

/* 자료실 카드: 계정 카드와 같은 반투명 면 + 레일 경계선. 네이비 레일 위에서
   "면이 있는 한 칸"으로 읽히되, 현재 위치(골드 선 + rail-selected)와는 겹치지 않는다. */
body[data-ui-generation="2"] .app-navitem.is-vault-item {
  border-color: var(--dv-rail-line);
  background: rgba(255, 255, 255, .06);
  color: var(--dv-rail-ink-strong);
}

/* 호버 경계는 골드가 아니라 밝은 중성선이다 — 레일에서 골드는 "지금 여기" 표시라,
   마우스만 올려도 금테가 뜨면 다른 화면을 보는 중에 자료실이 현재 위치처럼 읽힌다. */
body[data-ui-generation="2"] .app-navitem.is-vault-item:hover {
  border-color: rgba(255, 255, 255, .3);
  background: var(--dv-rail-hover);
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-navitem.is-vault-item.active {
  border-color: color-mix(in srgb, var(--dv-rail-accent) 40%, var(--dv-rail-line));
  background: var(--dv-rail-selected);
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-navitem.is-vault-item.active::before {
  background: var(--dv-rail-accent);
}

body[data-ui-generation="2"] .app-navgroup + .app-navgroup,
body[data-ui-generation="2"] .app-navgroup.is-network-group,
body[data-ui-generation="2"] .app-navgroup + .app-navgroup.is-network-group {
  border-top-color: var(--dv-rail-line);
}

body[data-ui-generation="2"] .app-navgroup > .grp-label,
body[data-ui-generation="2"] .app-navgroup .grp-hint {
  color: var(--dv-rail-muted);
}

body[data-ui-generation="2"] .app-navitem,
body[data-ui-generation="2"] .app-navgroup.is-exec-group .app-navitem,
body[data-ui-generation="2"] .app-navgroup.is-management-group .app-navitem,
body[data-ui-generation="2"] .app-navitem.is-network-item,
body[data-ui-generation="2"] .app-nav-more summary {
  color: var(--dv-rail-ink);
}

body[data-ui-generation="2"] .app-navitem:hover,
body[data-ui-generation="2"] .app-navitem.is-network-item:hover,
body[data-ui-generation="2"] .app-nav-more summary:hover {
  background: var(--dv-rail-hover);
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-navitem.active,
body[data-ui-generation="2"] .app-navitem.is-home,
body[data-ui-generation="2"] .app-navitem.is-home.active,
body[data-ui-generation="2"] .app-navitem.is-network-item.active {
  background: var(--dv-rail-selected);
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-navitem.active::before,
body[data-ui-generation="2"] .app-navitem.is-home.active::before,
body[data-ui-generation="2"] .app-navitem.is-network-item.active::before {
  background: var(--dv-rail-accent);
}

body[data-ui-generation="2"] .app-sidebar .app-bottom {
  border-top-color: var(--dv-rail-line);
}

body[data-ui-generation="2"] .app-account {
  border-color: var(--dv-rail-line);
  background: rgba(255, 255, 255, .06);
}

body[data-ui-generation="2"] .app-account.is-logged-in {
  border-color: color-mix(in srgb, var(--dv-rail-accent) 40%, var(--dv-rail-line));
  background: rgba(255, 255, 255, .06);
}

body[data-ui-generation="2"] .app-account strong {
  color: var(--dv-rail-ink-strong);
}

body[data-ui-generation="2"] .app-account small,
body[data-ui-generation="2"] .app-account span {
  color: var(--dv-rail-muted);
}

/* 레일 위 접이식 그룹(전문 업무 더보기 등)도 같은 잉크 문법을 따른다. */
body[data-ui-generation="2"] .app-sidebar .app-navgroup.is-exec-group > .grp-label,
body[data-ui-generation="2"] .app-sidebar summary,
body[data-ui-generation="2"] .app-sidebar details {
  color: var(--dv-rail-ink);
}

/* 모바일 상단 타이틀 바: 웜 페이퍼 계열로. */
@media (max-width: 1024px) {
  body[data-ui-generation="2"] .app-mobile-title {
    background: color-mix(in srgb, var(--dv-bg-page, #faf9f6) 96%, transparent);
  }
}

/* 세로로 쌓인 2열 밴드의 중앙 경계를 한 축으로 맞춘다(2026-08-10 대표 지적).
   브리핑/인사이트 1.05fr 비대칭, 케어 minmax(280)+gap12, 지원사업 minmax(244)+gap14가
   단마다 다른 중앙값을 만들었다 — 전부 같은 gap과 같은 최소폭의 균등 분할로 통일. */
body[data-ui-generation="2"] .dash-cols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body[data-ui-generation="2"] .dash-care-grid,
body[data-ui-generation="2"] .dash-prog-grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
}

/* 레일 스크롤바: OS 기본(흰 트랙+화살표)이 다크 레일 위에 흰 띠를 만들었다
   (2026-08-10 대표 지적) — 트랙·버튼을 없애고 반투명 막대만 남긴다. */
body[data-ui-generation="2"] .app-nav-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .26) transparent;
}

body[data-ui-generation="2"] .app-nav-scroll::-webkit-scrollbar {
  width: 6px;
  background: transparent;
}

body[data-ui-generation="2"] .app-nav-scroll::-webkit-scrollbar-track {
  background: transparent;
}

body[data-ui-generation="2"] .app-nav-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, .26);
}

body[data-ui-generation="2"] .app-nav-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, .4);
}

body[data-ui-generation="2"] .app-nav-scroll::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}

/* 섹션 액션 문법 통일(2026-08-10 대표 지적: "지금 스캔·지원사업 실행 버튼 위치가
   제각각"). 페이지 섹션과 카드가 서로 다른 테두리 버튼을 쓰던 것을, 제목 행 오른쪽의
   조용한 텍스트 액션 하나로 합친다 — 제목 기준선에 붙어 어디서나 같은 자리로 읽힌다. */
body[data-ui-generation="2"] .member-dash .dash-secthead {
  align-items: center;
}

body[data-ui-generation="2"] .member-dash .dash-secthead .head-link,
body[data-ui-generation="2"] .dash-card > .card-head .head-link {
  min-height: 44px;
  padding: 10px 4px;
  border: 0;
  background: transparent;
  color: var(--dv-primary);
  font-size: 13px;
  font-weight: 700;
}

body[data-ui-generation="2"] .member-dash .dash-secthead .head-link:hover,
body[data-ui-generation="2"] .dash-card > .card-head .head-link:hover {
  border: 0;
  background: transparent;
  color: var(--dv-primary-hover);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 섹션 제목과 내용 사이 간격을 카드 헤더와 같은 리듬으로 묶는다. */
body[data-ui-generation="2"] .dash-care-section,
body[data-ui-generation="2"] .dash-program-section {
  display: grid;
  gap: 10px;
}

/* 회원 홈은 boot에서 섹션 순서를 재배치한다(dream-member-home-v2.js). 재배치 전 화면을
   먼저 그리면 본문이 한 번 밀렸다가 자리를 찾는 것처럼 보인다(2026-08-10 실측: 재배치
   구간에서만 CLS 0.21). 재배치가 끝날 때까지 본문을 감춰 최종 위치에서 한 번에 나오게 한다.
   스크립트가 실패해도 화면이 비지 않도록 1.2초 뒤 강제로 드러내는 안전장치를 함께 둔다.

   🔴 대상은 `.member-dash` 가 아니라 `[data-member-home]` 이다. 회계센터도 레이아웃을
   재사용하려고 `.member-dash` 를 쓰는데, 그 화면에는 순서를 되돌릴 boot 스크립트가
   실리지 않는다(work 자산 묶음에 dream-member-home-v2.js 가 없다). 클래스로 잡았더니
   회계센터가 매번 1.2초 동안 빈 화면이 됐다 — 감추는 규칙은 그것을 드러낼 스크립트가
   확실히 도는 화면에만 건다. */
@keyframes dv-dash-failsafe-reveal { to { visibility: visible; } }

body[data-ui-generation="2"] .member-dash[data-member-home]:not([data-member-home-generation="2"]) {
  visibility: hidden;
  animation: dv-dash-failsafe-reveal 0s linear 1200ms forwards;
}

@media (prefers-reduced-motion: reduce) {
  body[data-ui-generation="2"] .member-dash[data-member-home]:not([data-member-home-generation="2"]) {
    animation-delay: 600ms;
  }
}

/* 다크 레일 위 계정 상태 배지. 라이트 표면 기준 색이 그대로 얹혀 2.41:1 이었다
   (2026-08-10 실측). 레일 잉크 계열로 되돌린다. */
body[data-ui-generation="2"] .app-account .app-auth-state {
  color: var(--dv-rail-muted);
}

body[data-ui-generation="2"] .app-account.is-logged-in .app-auth-state {
  color: var(--dv-rail-success);
}

body[data-ui-generation="2"] .app-account.is-logged-in .app-auth-state > span {
  background: var(--dv-rail-success);
  box-shadow: none;
}

body[data-ui-generation="2"] .app-account.is-auth-error .app-auth-state {
  color: var(--dv-rail-danger);
}

/* 레거시 대시보드 팔레트 승계(2026-08-10 대표 지적 "AI 상담쪽 디자인 안 맞췄다").
   dream-open.css 의 body.styled-dashboard-page 가 --green/--navy/--blue 를 자체 값으로
   재정의해 :root 의 H2 토큰을 이긴다 — 그래서 이 영역만 구 그린 버튼·무지개 칩으로 남았다.
   같은 스코프에서 H2 토큰으로 다시 연결한다. */
body[data-ui-generation="2"].styled-dashboard-page {
  --green: var(--dv-primary);
  --green-dark: var(--dv-primary-hover);
  --green-soft: var(--dv-bg-selected);
  --navy: var(--dv-trust);
  --navy-2: var(--dv-trust);
  --blue: var(--dv-trust);
  --blue-soft: var(--dv-trust-soft);
  --violet: var(--dv-trust);
  --violet-soft: var(--dv-trust-soft);
  --ink: var(--dv-text-strong);
  --ink-soft: var(--dv-text);
  --muted: var(--dv-text-muted);
  --line: var(--dv-border);
  --line-strong: var(--dv-border-strong);
}

/* 카테고리 칩은 상태가 아니다 — 상담 카드의 무지개 태그를 조용한 중립 하나로. */
body[data-ui-generation="2"] .consultation-support-card :where(.tag, .tag.blue, .tag.violet, .tag.gold, .tag.red) {
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
}

/* 카드 안 보조 행동은 모두 같은 조용한 문법으로, 카드 높이는 그리드로 맞춘다. */
body[data-ui-generation="2"] .consultation-support-grid {
  align-items: stretch;
}

body[data-ui-generation="2"] .consultation-support-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-color: var(--dv-border);
  border-radius: var(--dv-radius);
  background: var(--dv-bg-surface);
  box-shadow: none;
}

body[data-ui-generation="2"] .consultation-support-card :where(.btn, a.btn, button.btn) {
  margin-top: auto;
  align-self: flex-start;
  min-height: 40px;
}

/* 레거시 대시보드는 주 행동을 그라디언트 버튼으로 그린다(H2 는 단색 코발트).
   앞선 :where 안전망은 특정도가 낮아 .tag.gold 같은 2단 선택자에 졌다 — 명시적으로 이긴다. */
body[data-ui-generation="2"].styled-dashboard-page .btn.primary {
  border-color: var(--dv-primary);
  background: var(--dv-primary);
  color: var(--dv-on-primary);
  box-shadow: none;
}

body[data-ui-generation="2"].styled-dashboard-page .btn.primary:hover {
  border-color: var(--dv-primary-hover);
  background: var(--dv-primary-hover);
  box-shadow: none;
}

body[data-ui-generation="2"].styled-dashboard-page .btn.subtle {
  border-color: var(--dv-border);
  background: var(--dv-bg-surface);
  color: var(--dv-text);
}

body[data-ui-generation="2"] .consultation-support-card .tag,
body[data-ui-generation="2"] .consultation-support-card .tag.blue,
body[data-ui-generation="2"] .consultation-support-card .tag.violet,
body[data-ui-generation="2"] .consultation-support-card .tag.gold,
body[data-ui-generation="2"] .consultation-support-card .tag.red {
  background: var(--dv-bg-subtle);
  color: var(--dv-text);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
}

/* ?≪뀡 移대뱶 ?먮━ ?덉빟 ???먭? ?꾩갑?섍린 ?꾧퉴吏留? ?대갚(218px)???ㅼ젣 移대뱶(365px)濡?   諛붾뚮ŉ ?꾨옒 蹂몃Ц??147px ?대젮?됰뜕 寃껋쓣 以꾩씤??2026-08-10 ?ㅼ륫). ?먭? ??踰덉씠?쇰룄
   洹몃젮吏硫?dream-member-home-v2.js 媛 ???띿꽦???쇰?濡?鍮?移대뱶媛 ?⑥? ?딅뒗?? */
body[data-ui-generation="2"] #todayFocus[data-queue-pending] .dash-focus-card {
  min-height: 340px;
  align-content: start;
}
