/*
 * design-standard-overrides.css — 디자인기획팀 Workdesk 표준 병행 override
 *
 * Block 1: --dp-* 토큰 브릿지 (변수만, 시각 속성 직접 지정 없음)
 * Block 2: wd-* class 병행 충돌 무력화 (공통 CSS가 덮는 속성만 reset)
 * Block 3: Text color — team styles win over wd-*
 * Block 4: .edit-modal 팝업 override 훅 (--dp-modal-*)
 * Block 5: 간격 + 카드 타이포 하드 px (팀/bak 24·20·18, dual-class)
 * Block 6: workdesk-page.css !important 상쇄 (wd-page__project-title/meta)
 *
 * Doc: _local/design-planning/maps/03-workdesk-css-mapping.md
 */

/* --- Block 1: Token bridge --- */

body.team-design-planning {
  --dp-font-body: var(--wd-font-size-body);
  --dp-font-title: var(--wd-font-size-title);
  --dp-font-label: var(--wd-font-size-label);
  --dp-font-caption: var(--wd-font-size-caption);
  --dp-space-xs: var(--wd-space-1);
  --dp-space-sm: var(--wd-space-2);
  --dp-space-md: var(--wd-space-3);
  --dp-space-lg: var(--wd-space-4);
  --dp-space-xl: var(--wd-space-5);
  --dp-font-semibold: 600;
  --dp-font-bold: 700;
}

/* --- Block 2: Workdesk wd-* class 병행 충돌 무력화 (team namespace) --- */

body.team-design-planning .app.wd-dashboard {
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  min-width: var(--wd-min-w);
  height: 100%;
  min-height: 0;
  background: transparent;
  color: inherit;
}

body.team-design-planning .main.wd-dashboard__body {
  padding: 0;
  gap: unset;
  background: var(--bg-beige);
}

body.team-design-planning .dashboard.wd-dashboard__body {
  padding: 16px;
  gap: unset;
  background: var(--bg-beige);
}

body.team-design-planning .right.wd-page__panel {
  border-color: transparent;
}

body.team-design-planning .cards.wd-card-grid {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 20px;
}

body.team-design-planning .dept-task-scroller.wd-card-grid {
  display: flex;
  flex-direction: column;
  grid-template-columns: unset;
}

body.team-design-planning .compact-project-card.wd-card {
  box-shadow: none;
  border-color: transparent !important;
  background: transparent;
  color: inherit;
}

body.team-design-planning .compact-project-card.wd-card--project {
  border-left: none;
  flex-direction: unset;
}

body.team-design-planning .loading.wd-state,
body.team-design-planning .data-error.wd-state {
  min-height: auto;
  border: none;
  background: transparent;
  place-items: unset;
  padding: var(--dp-space-xl);
  text-align: center;
}

body.team-design-planning .edit-modal-backdrop.wd-modal {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(0, 0, 0, 0.45);
  padding: 0;
  align-items: center;
  justify-content: center;
}

body.team-design-planning .edit-modal.wd-modal__panel {
  display: flex;
  position: static;
  width: 96%;
  max-width: 1000px;
  max-height: 90vh;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
}

body.team-design-planning .filter-badge.wd-filter {
  width: auto;
  min-height: 0;
  padding: 0;
  border: none;
  background: transparent;
  font-size: inherit;
}

body.team-design-planning .filter-badge.wd-filter:not(.active) {
  color: #7c7a75;
}

body.team-design-planning .header-view-btn-new.wd-icon-button,
body.team-design-planning .team-status-btn-new.wd-icon-button {
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
}

body.team-design-planning .poly-click-stat.wd-button {
  min-height: 0;
  padding: 2px 6px;
  border: none;
  background: transparent;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

body.team-design-planning .toast-container.wd-toast-region {
  position: fixed;
  width: auto;
  right: var(--dp-space-lg);
  bottom: var(--dp-space-lg);
}

body.team-design-planning .toast-item.wd-toast {
  border-left: none;
  box-shadow: none;
  padding: 0;
  background: transparent;
  color: inherit;
}

body.team-design-planning .edit-modal-body.wd-form,
body.team-design-planning .panel-body.wd-form {
  display: block;
  gap: unset;
}

body.team-design-planning .form-group.wd-field {
  display: flex;
  flex-direction: column;
  margin: inherit;
  padding: 8px 0;
  gap: 4px;
}

body.team-design-planning .form-group.wd-field label {
  display: block;
  font-size: 14px;
  color: inherit;
 
}
body.team-design-planning .form-group.wd-field label:not(.checkbox-label) {
  display: flex;
  align-items: center;
  min-height: 28px;
}

/* 멤버 선택 드롭다운 항목은 위 block 규칙의 예외 — 체크박스와 이름을 한 줄에 정렬한다 */
body.team-design-planning .form-group.wd-field label.ms-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.team-design-planning .form-group.wd-field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.team-design-planning .form-group.wd-field select,
body.team-design-planning .form-group.wd-field textarea {
  width: 100%;
  box-sizing: border-box;
}

body.team-design-planning .app.calendar-child.wd-page,
body.team-design-planning .app.wd-page.wd-page--detail {
  display: block;
  min-height: 100%;
  background: inherit;
  color: inherit;
}

body.team-design-planning .app.wd-page.wd-page--dashboard {
  display: flex;
  flex-direction: inherit;
  min-height: 100%;
  background: inherit;
}

/* --- Block 3: Text color — team styles win over wd-* --- */

body.team-design-planning .task-title {
  font-size: 24px;
}

body.team-design-planning .task-title-text.wd-card__title,
body.team-design-planning .task-date.wd-card__meta {
  color: inherit;
}

body.team-design-planning .task-title .task-title-text.wd-card__title {
  font-size: inherit;
}

body.team-design-planning .task-progress-badge.wd-badge,
body.team-design-planning .task-progress-badge.wd-badge--status {
  color: #168044;
  background: unset;
  border-color: unset;
}

body.team-design-planning .task-delay-badge.wd-badge {
  color: #e5484d;
  background: rgba(229, 72, 77, 0.12);
  border-color: unset;
}

body.team-design-planning .core-project-badge.wd-badge,
body.team-design-planning .core-project-badge.wd-badge--priority {
  color: #ffffff;
  border-color: transparent;
}

/* --- Block 4: 업무 수정·업무 정보 수정 팝업 (.edit-modal 공유) override 훅 --- */
/*
 * 팝업(editModal 「업무 수정」 · projectEditModal 「업무 정보 수정」) 시각 조정은 이 블록에서만 한다.
 * - 마크업의 wd-modal / wd-modal__panel / wd-form / wd-field 병행 클래스는 표준 계약 — 제거하지 않는다.
 * - 이 파일은 index.html에서 마지막에 로드되므로, namespace(body.team-design-planning) 셀렉터는
 *   중앙 wd-* 기본값과 팀 modal.css 모두에 우선한다.
 * - 아래 --dp-modal-* 변수 값만 바꾸면 두 팝업이 함께 조정된다 (기본값 = 기존 modal.css 값, 시각 변화 없음).
 */

body.team-design-planning {
  --dp-modal-surface: #fff;
  --dp-modal-border: #e1e4e8;
  --dp-modal-heading: #333;
  --dp-modal-radius: 6px;
  --dp-modal-pad-x: 28px;
}

body.team-design-planning .edit-modal.wd-modal__panel {
  background: var(--dp-modal-surface);
  border-radius: var(--dp-modal-radius);
}

body.team-design-planning .edit-modal .edit-modal-header {
  background: var(--dp-modal-surface);
  border-bottom-color: var(--dp-modal-border);
}

body.team-design-planning .edit-modal .edit-modal-header h3 {
  color: var(--dp-modal-heading);
}

body.team-design-planning .edit-modal .edit-modal-body.wd-form {
  padding: 24px var(--dp-modal-pad-x);
}

body.team-design-planning .edit-modal .edit-modal-footer {
  background: var(--dp-modal-surface);
  border-top-color: var(--dp-modal-border);
}

/* --- Block 5: Spacing + hard-px typography (team/bak match, dual-class) --- */
/*
 * gap/padding/radius/font-family 유지.
 * font-size는 clamp 토큰 대신 팀·bak 하드 px (modal.css와 동일).
 * 상세·이슈·폼·캘린더 font-size는 팀 CSS에 맡김(재선언하지 않음).
 * 제외: .pf-*, edit-modal padding-inline (Block 4 우선).
 */

body.team-design-planning,
body.team-design-planning input,
body.team-design-planning textarea,
body.team-design-planning select,
body.team-design-planning button {
  font-family: var(--wd-font-sans);
  letter-spacing: 0;
}

body.team-design-planning .dashboard,
body.team-design-planning .right,
body.team-design-planning .edit-modal,
body.team-design-planning .tcal,
body.team-design-planning .tcal-popup,
body.team-design-planning .dtt-root,
body.team-design-planning .detail-add-task-panel {
  font-family: var(--wd-font-sans);
  line-height: 1.45;
}

body.team-design-planning .dept-card-new {
  border-radius: var(--wd-radius-card);
}

body.team-design-planning .cards.wd-card-grid {
  gap: var(--wd-dashboard-gap);
}

body.team-design-planning .dept-scroll-shell.compact-list-container {
  padding-block: var(--dp-space-md) var(--dp-space-lg);
}

body.team-design-planning .dept-task-scroller.wd-card-grid {
  gap: var(--wd-card-gap);
}

body.team-design-planning .compact-project-card.wd-card,
body.team-design-planning .compact-project-card.wd-card--project {
  min-height: 68px !important;
  gap: var(--dp-space-sm);
  padding: var(--wd-card-pad-y) var(--dp-space-sm) !important;
  border-radius: var(--wd-radius-md) !important;
}

/* 카드 타이포 — modal.css 하드 px (wd-* 특이도 대비) */
body.team-design-planning .task-title {
  font-size: 24px;
  font-weight: 600;
  line-height: 26px;
}

body.team-design-planning .task-title-text.wd-card__title {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

body.team-design-planning .task-progress-badge.wd-badge,
body.team-design-planning .task-progress-badge.wd-badge--status {
  font-size: 18px;
  font-weight: 800;
}

body.team-design-planning .compact-project-card .core-project-badge.wd-badge,
body.team-design-planning .compact-project-card .core-project-badge.wd-badge--priority {
  font-size: 14px;
  font-weight: 600;
}

body.team-design-planning .task-delay-badge.wd-badge {
  font-size: 16px;
  font-weight: 700;
}

body.team-design-planning .task-date.wd-card__meta,
body.team-design-planning .task-date,
body.team-design-planning .task-workers,
body.team-design-planning .task-issue-text {
  font-size: 20px;
  font-weight: 500;
}

body.team-design-planning .issue-list,
body.team-design-planning .issue-visible-items,
body.team-design-planning .issue-tag-list {
  gap: var(--dp-space-sm);
}

body.team-design-planning .issue-row,
body.team-design-planning .issue-tag-list .tag.issue-tag {
  padding: var(--dp-space-md) var(--dp-space-lg);
}

body.team-design-planning .related-link-btn {
  gap: var(--dp-space-xs);
  padding: var(--dp-space-xs) var(--dp-space-md);
}

body.team-design-planning .detail-top,
body.team-design-planning .dtt-root .detail-top {
  min-height: var(--wd-control-size);
  gap: var(--dp-space-lg);
  padding-inline: var(--dp-space-xl);
}

body.team-design-planning .detail-top-left,
body.team-design-planning .detail-top .side-left-group,
body.team-design-planning .detail-main-title,
body.team-design-planning .detail-top-right {
  gap: var(--dp-space-md);
}

body.team-design-planning .detail-issue-inline {
  padding: var(--dp-space-xs) var(--dp-space-sm);
}

body.team-design-planning .detail-tasks-title-row,
body.team-design-planning .detail-timeline-header,
body.team-design-planning .detail-task-row {
  gap: var(--dp-space-md);
  padding-inline: var(--dp-space-lg);
}

body.team-design-planning .detail-task-row {
  padding-block: var(--dp-space-md);
}

/* edit-modal padding-inline은 Block 4(--dp-modal-pad-x)에 맡김; gap만 복원 */
body.team-design-planning .edit-modal-body.wd-form,
body.team-design-planning .edit-modal-body,
body.team-design-planning .form-left-panel,
body.team-design-planning .form-right-panel,
body.team-design-planning .schedule-assignee-group {
  gap: var(--dp-space-lg);
}

body.team-design-planning .form-grid,
body.team-design-planning .form-grid-2col,
body.team-design-planning .form-grid-3col,
body.team-design-planning .form-schedule-dates-row,
body.team-design-planning .form-schedule-people-row,
body.team-design-planning .form-row-flex {
  gap: var(--dp-space-lg) var(--dp-space-xl);
}

body.team-design-planning .form-group.wd-field,
body.team-design-planning .form-group {
  gap: var(--dp-space-sm);
}

body.team-design-planning .tcal {
  margin: var(--dp-space-md) var(--dp-space-xl) var(--dp-space-xl);
}

body.team-design-planning .tcal-header,
body.team-design-planning .tcal-header-right,
body.team-design-planning .tcal-nav,
body.team-design-planning .tcal-legend,
body.team-design-planning .tcal-legend-cells,
body.team-design-planning .tcal-popup,
body.team-design-planning .tcal-popup-list,
body.team-design-planning .tcal-popup-item,
body.team-design-planning .tcal-popup-item-row,
body.team-design-planning .tcal-cat-chips,
body.team-design-planning .tcal-member-chips,
body.team-design-planning .tcal-popup-form {
  gap: var(--dp-space-md);
}

body.team-design-planning .tcal-popup {
  padding: var(--dp-space-xl);
}

/* --- Block 6: workdesk-page.css !important 상쇄 --- */
/*
 * 공통 workdesk-page.css가 .wd-page__project-title / .wd-page__project-meta에
 * 색·타이포를 !important로 강제 (strong #071a55 / soft #71809a / clamp size / 700).
 * 팀 팔레트(블랙·브라운베이지)와 하드 px 타이포가 무효화되므로,
 * 팀 namespace 특이도 + !important로 상쇄한다 (workdesk-css-standard §7 허용 범위).
 * 대상은 design-planning 카드에 병행 부착된 dual-class 4곳만.
 */

/* 리스트 카드 타이틀 — 부모 .task-title(24px/600/26px, Block 5) 상속 복원 */
body.team-design-planning .task-title-text.wd-page__project-title {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

/* 리스트 카드 작업기간 메타 — 팀 20px/500 (Block 5와 동치) */
body.team-design-planning .task-date.wd-page__project-meta {
  color: inherit !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: inherit !important;
}

/* 썸네일 카드 타이틀 — dashboard.css .card-title-text 원값 (26px/800/#000) */
body.team-design-planning .card-title-text.wd-page__project-title {
  color: #000000 !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  line-height: inherit !important;
}

/* 썸네일 카드 기간 — dashboard.css .card-duration-text 원값 (20px/500/#8a8175) */
body.team-design-planning .card-duration-text.wd-page__project-meta {
  color: #8a8175 !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: inherit !important;
}

/* 팀 썸네일 흰색 변형 보존 — dashboard.css .dashboard-team-thumb 규칙이
   위 상쇄 규칙(특이도 0,3,0)에 지지 않도록 재선언 */
body.team-design-planning .dashboard-team-thumb .card-title-text.wd-page__project-title,
body.team-design-planning .dashboard-team-thumb .card-duration-text.wd-page__project-meta {
  color: var(--card-white) !important;
}

/* --- Block 7: Issue #707 프로젝트명·구분 텍스트 타이포 통일 --- */
body.team-design-planning .task-title,
body.team-design-planning .task-title-text.wd-page__project-title {
  font-family: var(--wd-font-sans) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

body.team-design-planning .task-title-text.wd-page__project-title > span:first-child {
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

body.team-design-planning .task-title-text.wd-page__project-title > span:nth-child(n+3) {
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
}

body.team-design-planning .task-title-text.wd-page__project-title > span:nth-child(3):not(:last-child) {
  font-size: 20px !important;
  line-height: 1.08 !important;
}

body.team-design-planning .card-title-text.wd-page__project-title {
  font-family: var(--wd-font-sans) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}
