#projectUpdates .list-item{padding:var(--kptu-space-3)}
#projectUpdates .list-item>b{display:block;font-size:10px;font-weight:700;line-height:1.3;letter-spacing:.04em;color:var(--kptu-faint);margin:0 0 var(--kptu-space-1);text-transform:uppercase}
#projectUpdates .list-item>span{display:block;font-size:14px;font-weight:700;line-height:1.5;color:var(--kptu-ink);margin:0}
#projectUpdates .list-item>small{display:block;font-size:10px;line-height:1.3;color:var(--kptu-faint);margin-top:var(--kptu-space-2)}
#taskModal label:has(#taskAssignee),#taskModal #personalTaskNote{display:none}
#taskModal .two-col:has(#taskAssignee){grid-template-columns:minmax(0,1fr)}
.project-file-upload{flex:0 0 auto;white-space:nowrap}
.project-file-upload span{white-space:nowrap}
.a11y-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}


/* 화면 전체는 문서가 스크롤하고, 마지막 콘텐츠까지 접근할 수 있어야 함. */
html,body{min-height:100%;scroll-padding-bottom:24px}
#appView>.view-panel{min-width:0}
.modal-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

@media(max-width:760px){
  #projectUpdates .list-item>span{font-size:14px;line-height:1.55}
  .project-files-head{align-items:center}
  .project-files-head>div{min-width:0}

  html,body{scroll-padding-bottom:calc(var(--kptu-mobile-tab-height,0px) + 24px + env(safe-area-inset-bottom))!important}
  main{padding-bottom:calc(var(--kptu-mobile-tab-height,0px) + 30px + env(safe-area-inset-bottom))!important}
  #appView .view-panel{padding-bottom:calc(22px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:calc(22px + env(safe-area-inset-bottom))!important}
  /* UI-작은알림자리: 작은 알림은 화면 위쪽(base-ui.css --kptu-notice-top)이라 화면별 bottom 올리기는 없앴다. */
  /* MTG-프로젝트합치기 ①: 사업영역 관리 창(#areaWindow)은 하단바 위 전체 높이 그릇이라 이 아래 붙임·창 전체 스크롤에서 뺀다(project-system-v3.css). */
  .modal:not([id^="pm2"]):where(:not(#areaWindow)){padding:max(8px,env(safe-area-inset-top)) 0 calc(8px + env(safe-area-inset-bottom))!important;align-items:end!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch}
  .modal:not([id^="pm2"]):where(:not(#areaWindow))>.modal-card{width:100%!important;max-height:calc(100dvh - 16px - env(safe-area-inset-bottom))!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch;scroll-padding-bottom:24px!important;padding-bottom:24px!important}
  [id^="pm2"][id$="Modal"].modal{padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:calc(10px + env(safe-area-inset-bottom))!important}
  [id^="pm2"][id$="Modal"].modal .modal-card{padding-bottom:28px!important}
  #pm2DetailModal .pm2-detail-card{min-height:calc(100dvh - 12px - env(safe-area-inset-bottom))!important}
}

/* D-6b: dialog role typography owned here; explicit roots preserve list styles. */
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) .modal-head h2{font-size:var(--kptu-text-title)}
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) :is(h3,h4,h5,legend,.ps3-pg-title,.wd-aff-group>b,.so-org-box>b){font-size:var(--kptu-text-subtitle)}
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) :is(p,input,textarea,select,.mrd-text,.ps3-content-body,.ps3-content-table-wrap table,.ps3-summary,.wd-basic-grid dd,.revision-box,.result-box){font-size:var(--kptu-text-body)}
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) :is(label:not(.primary,.secondary,.mrd-upload-label,.library-picker-mobile),dt,.calendar-color-label){font-size:var(--kptu-text-meta);color:var(--kptu-muted)}
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) :is(small,time,.eyebrow,.badge,.updated,.optional,.revision-list,.meeting-round-meta,.ps3-type,.ps3-count,.ps3-pg-count,.ps3-stat-grid span,.ps3-content-heading small,.ps3-save-state,.wd-count,.wd-summary-card span,.wd-updated,.wd-aff-chip,.library-upload-state,.gt-note,.gt-meta,.gt-unlinked-badge,.gt-link-group>b,.pol-choice span,.compact-entry-meta){font-size:var(--kptu-text-meta);color:var(--kptu-muted)}
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) :is(.ps3-phase,.status,.empty,.ps3-empty,.muted,.notice,.task-workflow-note,.meeting-materials-block p,.meeting-action-head p,.mrd-section-head p,.ps3-section-head p,.gt-muted,.gt-scope-note,.gt-status,.library-file-block p,.library-multi-note,.library-picker-hint,.library-dropzone span,.pol-empty,#wfTaskRule){font-size:var(--kptu-text-meta)}
/* UI-기다림표시통일 3차: 창 안의 공용 '없음'(.wait-empty)도 창 본문 글자(p 14px)가 아니라 작은 글자. */
:is(#ps3DetailModal,#ps3CreateModal,#ps3WorkstreamModal,#ps3ProgressModal,#ps3MilestoneModal,#ps3ArchiveModal,#ps3DeleteModal,#meetingModal,#meetingRoundDetailModal,#wfMeetingAiModal,#wdModal,#wdAffModal,#wdTimeModal,#soEditModal,#soAssignModal,#documentModal,#libraryEditModal,#libraryManageModal,#eventModal,#ciGoogleModal,#taskModal,#gtTaskModal,#gtPickModal,#themeModal,#warDraftModal,#polManageModal) .wait-empty{font-size:var(--ds-text-meta,12px)}

/* FORM-시간입력: date picker + 4-digit time cell share one row; a wrong time shows one line below. */
.dt-pair{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--kptu-space-2)}
.time-input-hint{display:block;margin-top:var(--kptu-space-1);color:var(--kptu-danger);font-size:var(--kptu-text-meta);font-weight:400;line-height:1.4}
.time-input-hint[hidden]{display:none}
/* FORM-시간숫자: 화면이 만드는 시간 칸(time-input.js timeCell) = 숫자 칸 + 옆 작은 [종일](눌림은 연한 바탕). 새 크기 값 없음(토큰만). */
.time-cell{display:inline-flex;align-items:center;gap:var(--kptu-space-1);min-width:0}
.time-cell>input{flex:1 1 auto;min-width:0;width:auto}
.time-cell>input[aria-invalid="true"]{border-color:var(--kptu-danger)}
.time-cell>input[readonly]{color:var(--kptu-muted)}
.time-cell>.time-all-day{flex:0 0 auto;white-space:nowrap}
.time-cell>.time-all-day[aria-pressed="true"]{background:var(--kptu-surface-subtle);color:var(--kptu-ink);border-color:var(--kptu-primary-ink)}
