/* ui-current.css — consolidated current UI layer (v74-v76). Legacy ui-v2~v12 remain frozen for compatibility. */
/* v74 — 입력창 UX 통합 개편 */
:root{
  --form-accent:#4f46e5;
  --form-accent-soft:#eef2ff;
  --form-border:#dfe3ea;
  --form-text:#252833;
  --form-muted:#7b8290;
  --form-error:#b42318;
  --form-error-soft:#fef3f2;
}

/* 1. 공통 입력 디자인 시스템 */
.formCard{
  max-width:620px;
  padding:28px;
  border:1px solid #eceef2;
  border-radius:16px;
  background:#fff;
  box-shadow:0 2px 8px rgba(16,24,40,.04);
}
.formCardWide{max-width:920px;}
.formCard label{
  display:block;
  margin:16px 0 7px;
  color:#4f5664;
  font-size:12.5px;
  line-height:1.35;
  font-weight:700;
}
.formCard input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.formCard select,
.formCard textarea,
.modalBox input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.modalBox select,
.modalBox textarea,
#simpleModalBox input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
#simpleModalBox select,
#simpleModalBox textarea{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--form-border);
  border-radius:10px;
  background:#fff;
  color:var(--form-text);
  font:inherit;
  font-size:13.5px;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.formCard textarea,.modalBox textarea,#simpleModalBox textarea{min-height:92px;resize:vertical;}
.formCard input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
.formCard select:focus,.formCard textarea:focus,
.modalBox input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
.modalBox select:focus,.modalBox textarea:focus,
#simpleModalBox input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
#simpleModalBox select:focus,#simpleModalBox textarea:focus{
  outline:none;
  border-color:var(--form-accent);
  box-shadow:0 0 0 3px rgba(79,70,229,.11);
}
.formCard input::placeholder,.formCard textarea::placeholder{color:#a4aab5;}
.formCard .row{gap:14px;align-items:flex-start;}
.formHint{margin:5px 0 0;color:#8a91a0;font-size:11.5px;line-height:1.5;}
.formRequired{color:#d92d20;margin-left:2px;}
.formOptional{color:#98a0ad;font-weight:500;font-size:11px;margin-left:4px;}
.formFieldError{display:none;margin-top:6px;color:var(--form-error);font-size:11.5px;font-weight:650;line-height:1.4;}
.formFieldError.visible{display:block;}
.formInvalid{border-color:#f04438!important;background:#fffafa!important;box-shadow:0 0 0 3px rgba(240,68,56,.08)!important;}
.moneyPreview{min-height:17px;margin-top:4px;text-align:right;color:#777f8d;font-size:11.5px;font-variant-numeric:tabular-nums;}

.formCard button[type="submit"],.formPrimaryBtn{
  min-height:42px;
  padding:0 18px;
  border:0;
  border-radius:10px;
  background:var(--form-accent)!important;
  color:#fff!important;
  font-weight:750;
  cursor:pointer;
}
.formCard button[type="submit"]:hover,.formPrimaryBtn:hover{background:#4338ca!important;}
.formActions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid #eff1f4;}
.formActions button{margin-top:0!important;}
.cancelBtn{min-height:42px;border-radius:10px!important;}

/* 입력 정보의 위계 */
.formIntro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #eef0f3;}
.formIntro h3{margin:0 0 5px!important;font-size:18px!important;letter-spacing:-.3px;}
.formIntro p{margin:0;color:#818896;font-size:12px;line-height:1.5;}
.formSection{padding:18px 0;border-top:1px solid #eef0f3;}
.formSection:first-of-type{border-top:0;padding-top:0;}
.formSectionTitle,.formSectionHeader{display:flex;align-items:center;gap:8px;margin:4px 0 12px;color:#2c3240;font-size:13px;font-weight:800;letter-spacing:-.1px;}
.formSectionTitle .stepNo{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--form-accent-soft);color:var(--form-accent);font-size:11px;font-weight:850;}
.formSectionDesc{margin:-5px 0 12px;color:#8b929f;font-size:11.5px;line-height:1.5;}
.formDisclosure{margin-top:14px;border:1px solid #e8eaf0;border-radius:12px;background:#fafbfc;overflow:hidden;}
.formDisclosure>summary{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;cursor:pointer;list-style:none;color:#555d69;font-size:12px;font-weight:750;}
.formDisclosure>summary::-webkit-details-marker{display:none;}
.formDisclosure>summary::after{content:'＋';color:#858c99;font-size:15px;}
.formDisclosure[open]>summary::after{content:'－';}
.formDisclosureBody{padding:0 15px 16px;border-top:1px solid #eceef2;background:#fff;}
.formCompactGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;}
.formCompactGrid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.formWDate{max-width:190px;}.formWMoney{max-width:250px;}.formWPercent{max-width:130px;}.formWSelect{max-width:210px;}

/* 2. Modal 크기 체계 */
.modalBox{width:560px;max-width:calc(100vw - 32px);padding:24px;border-radius:16px;}
.modalBox.modalSmall{width:480px;}.modalBox.modalWide{width:760px;}.modalBox.modalLarge{width:920px;}
#simpleModalBox{width:560px;max-width:calc(100vw - 32px)!important;border:1px solid #eceef2!important;border-radius:16px!important;padding:24px!important;box-shadow:0 24px 64px rgba(16,24,40,.20)!important;}
#simpleModalBox.workPlanModal{width:760px!important;}

/* 3. 계약 프로젝트 등록 */
#projectForm{max-width:980px;}
#projectForm .pmFormSectionTitle{display:none;}
.projectCoreGrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:0 14px;}
.paymentPair{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.paymentCard{padding:14px;border:1px solid #e8eaf0;border-radius:12px;background:#fbfbfd;}
.paymentCard h4{margin:0 0 4px;font-size:12.5px;color:#444b58;}
.paymentInline{display:grid;grid-template-columns:105px 1fr 150px;gap:8px;align-items:end;}
#pjParticipantsWrap .row,#pjOutsourcingWrap .row{padding:8px 0;border-bottom:1px dashed #eceef2;}

/* 4. 업무 추가 간소화 */
#taskAddForm{max-width:860px;}
.taskCoreGrid{display:grid;grid-template-columns:minmax(260px,1.7fr) minmax(170px,.8fr) 190px;gap:14px;align-items:end;}
.taskAdvancedBody{padding-top:2px;}
.taskOptionGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}

/* 5. 문서 작성 */
#docApplyForm.docComposeForm{max-width:980px;padding:30px;}
#docApplyForm .docSpecificSection{margin:18px 0;padding:18px;border:1px solid #eceef2;border-radius:13px;background:#fbfbfd;}
#docApplyForm .formSectionHeader{margin-top:24px;padding-top:20px;border-top:1px solid #eceef2;font-size:13.5px;}
#docApplyForm .richEditor{min-height:300px;background:#fff;}
#docApplyForm #docTitle{font-size:15px;font-weight:650;}

/* 6. 사용자 등록/수정 */
#userForm,#userEditForm{max-width:760px;}
.userBasicGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.userAdvancedGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}

/* 7. 후속조치 조건부 */
.followUpChoice{margin-top:16px;padding:12px 14px;border:1px solid #e8eaf0;border-radius:12px;background:#fafbfc;}
.followUpChoice .checkboxLabel{margin:0!important;color:#4b5260;font-weight:750;}
#csFollowUpFields{padding-top:8px;}

/* 8. 소형 모달 공통 */
#simpleModalBox h3,.modalBox h3{margin-top:0;color:#252833;letter-spacing:-.2px;}
#simpleModalBox .formCard,.modalBox .formCard{padding:0;border:0;box-shadow:none;max-width:none;}
#simpleModalBox button,.modalBox button{border-radius:10px;}

@media(max-width:800px){
  .formCard,.formCardWide,#projectForm,#docApplyForm.docComposeForm,#userForm,#userEditForm{max-width:none;padding:18px;}
  .formCompactGrid,.formCompactGrid.three,.projectCoreGrid,.paymentPair,.taskCoreGrid,.taskOptionGrid,.userBasicGrid,.userAdvancedGrid{grid-template-columns:1fr;}
  .paymentInline{grid-template-columns:1fr;}
  .formWDate,.formWMoney,.formWPercent,.formWSelect{max-width:none;}
  .formActions{position:sticky;bottom:0;margin-left:-18px;margin-right:-18px;padding:12px 18px;background:rgba(255,255,255,.96);z-index:4;}
}

/* v75 — 관리자 설정 / 계정 안전성 개편 */
.adminSettingsPage{max-width:1280px}
.adminPageHeader{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.adminPageHeader h2{margin:3px 0 5px}.adminPageHeader p{margin:0;color:#7d8490;font-size:12.5px}
.adminSettingsTabs{display:flex;gap:4px;width:max-content;max-width:100%;padding:5px;margin-bottom:20px;border:1px solid #e8eaf0;border-radius:12px;background:#f7f8fa;overflow-x:auto}.adminSettingsTab{min-height:36px;padding:7px 14px;border:0;border-radius:8px;background:transparent;color:#6f7682;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}.adminSettingsTab.active{background:#fff;color:#4338ca;box-shadow:0 1px 5px rgba(20,24,40,.08)}.adminSettingsTab span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 6px;border-radius:10px;background:#eef0f4;color:#666e7b;font-size:10px}.adminSettingsTab.active span{background:#eef2ff;color:#4f46e5}
.adminSettingsPane{padding:22px;border:1px solid #e8eaf0;border-radius:16px;background:#fff;box-shadow:0 2px 8px rgba(16,24,40,.035)}
.adminPaneHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.adminPaneHeader h3{margin:0 0 5px;font-size:17px;color:#252833}.adminPaneHeader p{margin:0;color:#858c98;font-size:12px;line-height:1.5}.primaryActionBtn{min-height:40px;padding:0 15px;border:0;border-radius:10px;background:#4f46e5;color:#fff;font-size:12px;font-weight:800;cursor:pointer}.primaryActionBtn:hover{background:#4338ca}
.adminUserToolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.adminSearchField{display:flex;align-items:center;gap:8px;min-width:280px;max-width:440px;flex:1;height:42px;padding:0 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff}.adminSearchField span{color:#969da8}.adminSearchField input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:12.5px}.adminUserToolbar select{height:42px;min-width:155px;padding:0 10px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#4d5562;font-size:12px}
.adminTableWrap{overflow:auto;border:1px solid #eceef2;border-radius:12px}.adminDataTable{width:100%;border-collapse:collapse;min-width:760px;background:#fff}.adminDataTable th{padding:11px 13px;border-bottom:1px solid #e9ebef;background:#fafbfc;color:#737b87;font-size:10.5px;font-weight:800;text-align:left;white-space:nowrap}.adminDataTable td{padding:12px 13px;border-bottom:1px solid #f0f1f3;color:#414854;font-size:12px;vertical-align:middle}.adminDataTable tbody tr:last-child td{border-bottom:0}.adminDataTable tbody tr:hover{background:#fbfbfe}.adminUserName{display:flex;align-items:center;gap:7px}.adminUserName strong{color:#262b34}.adminUserName span{padding:2px 6px;border-radius:8px;background:#f0f1f5;color:#777f8a;font-size:9.5px}.adminStatusBadge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:10px;font-size:10px;font-weight:800}.adminStatusBadge:before{content:'';width:6px;height:6px;border-radius:50%}.adminStatusBadge.enabled{background:#edf8ef;color:#257a3e}.adminStatusBadge.enabled:before{background:#39a65b}.adminStatusBadge.disabled{background:#fff6e9;color:#9a641b}.adminStatusBadge.disabled:before{background:#d49432}.adminStatusBadge.retired{background:#f3f4f6;color:#737984}.adminStatusBadge.retired:before{background:#9ba1aa}.adminTableAction{text-align:right!important}.rowActionBtn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 10px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;color:#565e6b;font-size:10.5px;font-weight:750;text-decoration:none;cursor:pointer}.rowActionBtn:hover{border-color:#c8cbd9;color:#4338ca;background:#fafaff}
.adminInfoBanner{margin-bottom:16px;padding:12px 14px;border:1px solid #dddffc;border-radius:11px;background:#f7f7ff;color:#596071;font-size:11.5px;line-height:1.55}.adminInfoBanner.neutral{border-color:#e6e8ec;background:#fafbfc}.adminInfoBanner strong{color:#3f38b5}
.permissionMatrixWrap .adminDataTable{min-width:980px}.permissionTable th:not(:first-child),.permissionTable td:not(:first-child){text-align:center}.permissionUser strong{display:block;color:#303640}.permissionUser small{display:block;margin-top:3px;color:#9299a4;font-size:10px}.permissionCheck{display:inline-flex;align-items:center;justify-content:center;margin:0!important;cursor:pointer}.permissionCheck input{position:absolute;opacity:0;pointer-events:none}.permissionCheck span{display:block;width:20px;height:20px;border:1px solid #d5d9e0;border-radius:6px;background:#fff;position:relative}.permissionCheck input:checked+span{border-color:#6d67e8;background:#5b55df}.permissionCheck input:checked+span:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:900}.permissionCheck input:disabled+span{background:#f0f1f3;border-color:#e1e3e7}.autoPermission{display:inline-block;padding:3px 7px;border-radius:8px;background:#eef2ff;color:#4f46e5;font-size:9.5px;font-weight:850}.retiredRow{opacity:.62}
.adminDrawerScrim{position:fixed;inset:0;z-index:2100;background:rgba(17,24,39,.28);backdrop-filter:blur(1px)}.adminDrawer{position:fixed;top:0;right:0;bottom:0;z-index:2110;width:min(620px,calc(100vw - 24px));overflow:auto;background:#fff;box-shadow:-20px 0 60px rgba(16,24,40,.18);animation:adminDrawerIn .18s ease-out}@keyframes adminDrawerIn{from{transform:translateX(24px);opacity:.75}to{transform:translateX(0);opacity:1}}.adminDrawerForm{min-height:100%;padding:28px 30px 92px}.adminDrawerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #eceef2}.adminDrawerHead h3{margin:3px 0 5px;font-size:19px;color:#262b34}.adminDrawerHead p{margin:0;color:#858c98;font-size:12px}.adminDrawerClose{width:34px;height:34px;border:1px solid #e1e4e8;border-radius:9px;background:#fff;color:#7d8490;font-size:20px;cursor:pointer}
.adminDrawerForm label{display:block;margin:15px 0 7px;color:#4f5664;font-size:12.5px;font-weight:700}.adminDrawerForm input:not([type=checkbox]):not([type=radio]),.adminDrawerForm select,.adminDrawerForm textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#252833;font:inherit;font-size:13.5px}.adminDrawerForm input:focus,.adminDrawerForm select:focus,.adminDrawerForm textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.11)}.adminDrawerForm .formSection{padding:18px 0;border-top:1px solid #eef0f3}.adminDrawerForm .formSection:first-of-type{border-top:0;padding-top:0}.adminDrawerForm .formSectionTitle{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:13px;font-weight:800}.adminDrawerForm .stepNo{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#eef2ff;color:#4f46e5;font-size:11px}.adminDrawerForm .formDisclosure{margin-top:14px}.adminDrawerForm .formDisclosureBody{padding-bottom:15px}.passwordFieldRow{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center}.inputIconBtn,.secondaryMiniBtn{min-height:40px;padding:0 11px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;color:#626a76;font-size:10.5px;font-weight:750;white-space:nowrap;cursor:pointer}.secondaryMiniBtn:hover,.inputIconBtn:hover{background:#f8f9fb}.adminDrawerActions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;margin:28px -30px -92px;padding:14px 30px;border-top:1px solid #e8eaf0;background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
.accountStatePanel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.accountStatePanel>div{padding:12px 14px;border:1px solid #e8eaf0;border-radius:11px;background:#fafbfc}.accountStatePanel span{display:block;margin-bottom:4px;color:#8c939e;font-size:10px}.accountStatePanel strong{font-size:12px}.statusText.enabled,.statusText.employed{color:#248044}.statusText.disabled{color:#a36619}.statusText.retired{color:#747b86}.switchSettingRow{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eef0f3;margin:0!important}.switchSettingRow span{display:block}.switchSettingRow strong{display:block;color:#444b57;font-size:12px}.switchSettingRow small{display:block;margin-top:3px;color:#9198a3;font-size:10.5px;font-weight:500}.switchSettingRow input{width:18px;height:18px;accent-color:#4f46e5}.employmentActionPanel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding:14px;border:1px solid #ece4e2;border-radius:12px;background:#fffafa}.employmentActionPanel strong{display:block;color:#4f5055;font-size:12px}.employmentActionPanel p{margin:4px 0 0;color:#8d8584;font-size:10.5px;line-height:1.45}.dangerOutlineBtn{min-height:38px;padding:0 11px;border:1px solid #e9b9b2;border-radius:9px;background:#fff;color:#b42318;font-size:10.5px;font-weight:800;white-space:nowrap;cursor:pointer}.dangerDisclosure{margin-top:12px;border:1px solid #f0d8d4;border-radius:10px;background:#fffafa}.dangerDisclosure summary{padding:11px 13px;color:#a1493f;font-size:10.5px;font-weight:750;cursor:pointer}.dangerDisclosure>div{padding:0 13px 13px}.dangerDisclosure p{color:#8d7773;font-size:10.5px;line-height:1.5}
.backupSummaryCard{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;margin-bottom:14px}.backupSummaryCard>div{padding:14px;border:1px solid #e8eaf0;border-radius:12px;background:#fafbfc}.backupSummaryCard span{display:block;color:#8a919c;font-size:10px}.backupSummaryCard strong{display:block;margin-top:5px;color:#343a45;font-size:13px}.backupStatusOk{color:#248044!important}.backupStatusWait{color:#a36619!important}.backupList{border:1px solid #eceef2;border-radius:12px;overflow:hidden}.backupRow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #eef0f3}.backupRow:last-child{border-bottom:0}.backupRowMain strong{display:flex;align-items:center;gap:6px;color:#3b424e;font-size:11.5px}.backupRowMain span{display:block;margin-top:3px;color:#959ca6;font-size:10px}.latestBadge{display:inline-flex!important;margin:0!important;padding:2px 5px;border-radius:7px;background:#eef2ff;color:#4f46e5!important;font-size:8.5px!important}.backupList+.linklikeBtn{margin-top:10px}
@media(max-width:800px){.adminSettingsPane{padding:16px}.adminPaneHeader{flex-direction:column}.adminUserToolbar{align-items:stretch;flex-direction:column}.adminSearchField{min-width:0;max-width:none;width:100%}.adminUserToolbar select{width:100%}.adminDrawer{width:100vw;max-width:none}.adminDrawerForm{padding:20px 18px 80px}.adminDrawerActions{margin:24px -18px -80px;padding:12px 18px}.passwordFieldRow{grid-template-columns:1fr auto}.passwordFieldRow .secondaryMiniBtn{grid-column:1/-1}.accountStatePanel,.backupSummaryCard{grid-template-columns:1fr}.employmentActionPanel{align-items:flex-start;flex-direction:column}}
.passwordFieldRow .formFieldError{grid-column:1/-1;order:4;margin-top:0}

/* ============================================================
   v76 A단계 — 역할별 대시보드 + 회사 일정 + 최신 UI 단일 우선순위
   ============================================================ */
:root{
  --ui-primary:#4f46e5;
  --ui-primary-soft:#eef2ff;
  --ui-border:#e5e7eb;
  --ui-panel-radius:12px;
  --ui-modal-radius:16px;
  --ui-control-radius:10px;
}
.dashboardIntroV76{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.dashboardAlertChip{border:1px solid #f3d5a5;background:#fff8eb;color:#9a5a0a;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.dashboardAlertChip:hover{background:#fff1d6;border-color:#e8bd79}
.dashboardRoleGrid .dashboardMiniCard{border-radius:16px}
.dashboardActionCard{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%;border:1px solid var(--border);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.dashboardActionCard:hover{border-color:#cbd3ff;box-shadow:0 12px 30px rgba(79,70,229,.08);transform:translateY(-1px)}
.dashboardActionCard:focus-visible{outline:3px solid rgba(79,70,229,.16);outline-offset:2px}
.dashboardNextScheduleDate{font-size:34px;font-weight:900;letter-spacing:-.04em;color:#312e81;margin:18px 0 8px;line-height:1.1}
.dashboardNextScheduleTitle{line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dashboardExecSummary{margin:4px 0 22px;padding:18px 20px 20px;border:1px solid #e7e9f4;border-radius:16px;background:linear-gradient(135deg,#fbfbff 0%,#f7f8ff 100%)}
.dashboardSectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.dashboardSectionHead h3{margin:0;font-size:16px;color:#111827}
.dashboardSectionHead p{margin:5px 0 0;color:#7a8190;font-size:12px}
.dashboardExecGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.execSummaryCard{appearance:none;background:#fff;border:1px solid #e6e9f2;border-radius:12px;padding:15px 16px;text-align:left;cursor:pointer;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}
.execSummaryCard:hover{border-color:#cfd4ff;box-shadow:0 7px 20px rgba(49,46,129,.06)}
.execSummaryCard span{display:block;color:#6b7280;font-size:11.5px;font-weight:750}
.execSummaryCard strong{display:block;color:#1f2937;font-size:23px;letter-spacing:-.035em;margin:7px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.execSummaryCard small{display:block;color:#9298a6;font-size:10.5px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboardCalendarSection{margin:0 0 26px;padding:20px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.035)}
.dashboardCalendarHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.dashboardCalendarHead h3{margin:0;font-size:17px;color:#111827}
.dashboardCalendarHead p{margin:6px 0 0;color:#747b88;font-size:12px}
.mainCalActionRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.mainCalGoogleStatus{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:11px;font-weight:700}
.mainCalGoogleStatus.connected{background:#ecfdf5;border-color:#bbf7d0;color:#166534}
.mainCalGoogleStatus.warning{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.mainCalGoogleStatus.offline{background:#f8fafc;border-color:#e2e8f0;color:#64748b}
.integrationCard{display:flex;flex-direction:column;gap:14px}
.integrationStatusGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.integrationStatusItem{padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}
.integrationStatusItem strong{display:block;font-size:16px;color:#111827;margin-top:6px}
.integrationHelp{margin:0;padding-left:18px;color:#667085;font-size:12px;line-height:1.55}
.integrationFormGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.integrationFormGrid .wide{grid-column:1 / -1}
.integrationField{display:flex;flex-direction:column;gap:6px}
.integrationField input,.integrationField select{width:100%}
.integrationCalendarList{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto;padding-right:4px}
.integrationCalendarOption{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;background:#fff}
.integrationCalendarOption small{display:block;color:#6b7280;margin-top:4px}
.integrationActions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.integrationSubActions{display:flex;gap:8px;flex-wrap:wrap}
.integrationFieldHint{font-size:11px;color:#6b7280}
.integrationCheck{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151;font-weight:600}
.integrationResult{margin-top:4px}
.mainCalendarLegend{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:13px 0 4px}
.mainCalendarLegend span{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10.5px;font-weight:800}
.mainCalendarLegend .project{background:#eef2ff;color:#4338ca}.mainCalendarLegend .meeting{background:#ecfdf5;color:#047857}.mainCalendarLegend .field{background:#fff7ed;color:#c2410c}.mainCalendarLegend .education{background:#fdf2f8;color:#be185d}.mainCalendarLegend .company{background:#f1f5f9;color:#475569}
.mainCalendarNav{margin:12px 0 2px;justify-content:flex-start}
.mainCalendarNav #mainCalMonthLabel{min-width:118px;text-align:center;font-weight:850;color:#1f2937}
.mainCompanyCalendar{gap:7px;margin-top:10px}
.mainCompanyCalendar .ledgerCalCell{min-height:112px;border:1px solid #edf0f5;box-shadow:none;border-radius:10px;padding:7px;background:#fff}
.mainCompanyCalendar .ledgerCalCell.today{outline:none;border:2px solid #818cf8;background:#fafaff}
.mainCompanyCalendar .ledgerCalCell.otherMonth{background:#f8fafc;border-color:#f1f5f9}
.mainCompanyCalendar .ledgerCalDateNum{font-weight:800;color:#6b7280;margin-bottom:5px}
.mainCompanyCalendar .mainCalItem{appearance:none;width:100%;display:flex;align-items:center;gap:4px;border:0;text-align:left;font:inherit;font-size:10px;line-height:1.25;border-radius:6px;padding:4px 5px;margin:3px 0 0;cursor:pointer;white-space:nowrap;overflow:hidden;color:#334155;background:#f8fafc}
.mainCompanyCalendar .mainCalItem>span:last-child{overflow:hidden;text-overflow:ellipsis}
.mainCompanyCalendar .mainCalItem:hover{filter:brightness(.97);color:inherit}
.mainCalTypeDot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:currentColor}
.mainCalTime{font-size:9px;font-weight:850;flex:0 0 auto;opacity:.8}
.mainCalItem.event-project{background:#eef2ff;color:#4338ca}.mainCalItem.event-meeting{background:#ecfdf5;color:#047857}.mainCalItem.event-field{background:#fff7ed;color:#c2410c}.mainCalItem.event-education{background:#fdf2f8;color:#be185d}.mainCalItem.event-company,.mainCalItem.event-etc{background:#f1f5f9;color:#475569}
.mainCalMore{font-size:9.5px;color:#7c83a2;padding:4px 3px 0;font-weight:750}
.calendarLoadError{grid-column:1/-1}
.companyEventModalBox{width:min(760px,calc(100vw - 32px))!important;max-width:760px!important;max-height:90vh;overflow:auto;border-radius:16px!important;padding:0!important}
.companyEventModalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 16px;border-bottom:1px solid #edf0f5}
.companyEventModalHead h3{margin:3px 0 4px;font-size:21px;color:#111827}.companyEventModalHead p{margin:0;color:#7b8190;font-size:12px}.companyEventModalHead .eyebrow{font-size:9.5px;letter-spacing:.12em;color:#6366f1;font-weight:850}
.modalCloseBtn{border:0;background:transparent;color:#9ca3af;font-size:24px;line-height:1;cursor:pointer;padding:2px 5px}.modalCloseBtn:hover{color:#374151}
.companyEventForm{margin:0!important;padding:20px 24px 24px!important;border:0!important;box-shadow:none!important;max-width:none!important}
.companyEventCoreGrid{display:grid;grid-template-columns:1.15fr 1fr .85fr .85fr;gap:10px;align-items:end}
.companyEventCoreGrid>div{min-width:0}.companyEventDetails{margin-top:16px}.companyEventPeople{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:6px 0 14px}
.companyEventPerson{display:flex!important;align-items:center;gap:7px!important;margin:0!important;padding:8px 9px;border:1px solid #e7eaf0;border-radius:9px;background:#fff;font-size:12px!important;cursor:pointer}
.companyEventPerson input{width:auto!important;margin:0!important}.companyEventPerson small{color:#9ca3af;font-size:10px;margin-left:3px}
.companyEventActions{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-top:18px!important}.companyEventActions>div{display:flex;gap:8px}.dangerGhostBtn{border:1px solid #fecaca!important;background:#fff!important;color:#dc2626!important;border-radius:10px!important;padding:10px 13px!important;font-weight:750!important;cursor:pointer}

/* v76 단일 우선순위: 현대 폼에는 구 v2/v3가 중복 섹션을 만들지 않으며, current layer가 최종 모양을 결정합니다. */
.formCard input:focus,.formCard select:focus,.formCard textarea:focus,.richEditor:focus{border-color:var(--ui-primary)!important;box-shadow:0 0 0 3px rgba(79,70,229,.10)!important;outline:none!important}
.formSection,.formDisclosure,.dashboardExecSummary,.dashboardCalendarSection{border-radius:var(--ui-modal-radius)}
.formActions button,.primaryActionBtn,.secondaryActionBtn,.cancelBtn{border-radius:var(--ui-control-radius)}

@media(max-width:1180px){
  .dashboardExecGrid{grid-template-columns:repeat(2,1fr)}
  .companyEventCoreGrid{grid-template-columns:1fr 1fr}.companyEventPeople{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .dashboardIntroV76,.dashboardCalendarHead{align-items:stretch;flex-direction:column}
  .mainCalActionRow{width:100%;justify-content:flex-start}
  .integrationFormGrid{grid-template-columns:1fr}
  .integrationActions{flex-direction:column}
  .integrationSubActions{width:100%}
  .integrationSubActions .uiBtn,.integrationActions .uiBtn{width:100%;justify-content:center}
  .dashboardAlertChip{align-self:flex-start}
  .dashboardExecGrid{grid-template-columns:1fr 1fr}.execSummaryCard{padding:13px}.execSummaryCard strong{font-size:19px}
  .dashboardCalendarSection{padding:14px;margin-left:-2px;margin-right:-2px}
  .mainCompanyCalendar{min-width:760px}.dashboardCalendarSection{overflow-x:auto}.dashboardCalendarHead,.mainCalendarLegend,.mainCalendarNav{position:sticky;left:0;max-width:calc(100vw - 48px)}
  .companyEventCoreGrid,.companyEventPeople{grid-template-columns:1fr}.companyEventModalBox{width:calc(100vw - 18px)!important}.companyEventModalHead{padding:18px}.companyEventForm{padding:16px 18px 20px!important}
}
.companyEventReadOnly{padding:20px 24px 24px}
.companyEventReadOnly dl{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #e7eaf0;border-radius:12px;overflow:hidden;margin:0 0 14px}
.companyEventReadOnly dl>div{padding:13px 15px;border-bottom:1px solid #eef1f5;background:#fff}.companyEventReadOnly dl>div:nth-child(odd){border-right:1px solid #eef1f5}.companyEventReadOnly dl>div.wide{grid-column:1/-1;border-right:0}.companyEventReadOnly dl>div:nth-last-child(-n+2){border-bottom:0}
.companyEventReadOnly dt{font-size:10.5px;color:#8b92a0;font-weight:800;margin-bottom:5px}.companyEventReadOnly dd{margin:0;font-size:13px;color:#1f2937;line-height:1.5}
@media(max-width:760px){.companyEventReadOnly{padding:16px 18px 20px}.companyEventReadOnly dl{grid-template-columns:1fr}.companyEventReadOnly dl>div,.companyEventReadOnly dl>div:nth-child(odd){border-right:0;border-bottom:1px solid #eef1f5}.companyEventReadOnly dl>div.wide{grid-column:auto}.companyEventReadOnly dl>div:last-child{border-bottom:0}}
.mainCalMore{appearance:none;border:0;background:transparent;cursor:pointer;text-align:left;width:100%}.mainCalMore:hover{color:#4f46e5;text-decoration:underline}
.dayScheduleList{padding:16px 20px 22px;display:flex;flex-direction:column;gap:8px}.dayScheduleRow{appearance:none;border:1px solid #e7eaf0;background:#fff;border-radius:10px;padding:11px 12px;display:grid;grid-template-columns:72px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.dayScheduleRow:hover{border-color:#cfd4ff;background:#fbfbff}.dayScheduleType{font-size:10px;font-weight:800;color:#6366f1}.dayScheduleRow strong{font-size:13px;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dayScheduleRow small{font-size:10.5px;color:#8b92a0}.dayScheduleList>.primaryActionBtn{align-self:flex-end;margin-top:5px}
@media(max-width:760px){.dayScheduleRow{grid-template-columns:1fr;gap:4px}.dayScheduleList{padding:14px 16px 18px}.dayScheduleList>.primaryActionBtn{align-self:stretch}}


/* ============================================================
   v77 B단계 정보구조 개선
   ============================================================ */
.financePrimaryTabs{margin-bottom:12px;}
.financeOverviewSwitch{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:14px;}
.financeOverviewSwitch button{border:0;background:transparent;color:#64748b;font-weight:700;font-size:12px;padding:7px 12px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.financeOverviewSwitch button.active{background:#fff;color:#4338ca;box-shadow:0 1px 3px rgba(15,23,42,.08);}
.financeManageDetails{margin-top:20px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;}
.financeManageDetails>summary{cursor:pointer;padding:12px 15px;font-weight:700;color:#475569;font-size:12px;list-style:none;}
.financeManageDetails>summary::-webkit-details-marker{display:none;}
.financeManageDetails>summary::after{content:'▾';float:right;color:#94a3b8;}
.financeManageDetails[open]>summary::after{content:'▴';}
.financeManageDetailsBody{padding:0 15px 15px;}

.wsWeekSummaryPanel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:14px 18px;}
.wsWeekSummaryText{margin-top:5px;font-size:14px;font-weight:700;color:#334155;line-height:1.5;}
.wsWeekSummaryNote{font-size:11px;color:#94a3b8;text-align:right;white-space:nowrap;}

.projectActivityHead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:16px 0 10px;}
.projectActivityHead h3{margin:0;font-size:14px;color:#172033;}
.projectActivityHead p{margin:4px 0 0;font-size:11px;color:#94a3b8;}

.feedResourceBox{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;font-size:12px;}
.feedResourceBox>span{font-weight:800;color:#475569;}
.feedResourceBox a{color:#4f46e5;text-decoration:none;max-width:100%;overflow-wrap:anywhere;}
.feedResourceBox a:hover{text-decoration:underline;}
.feedResourceBox code{font-family:inherit;color:#334155;overflow-wrap:anywhere;}

@media (max-width:760px){
  .wsWeekSummaryPanel{align-items:flex-start;flex-direction:column;gap:5px;}
  .wsWeekSummaryNote{text-align:left;white-space:normal;}
  .projectActivityHead{align-items:flex-start;}
}


/* ============================================================
   v78 C단계 디자인 시스템 통합
   기능은 유지하고 Button / Radius / Icon 표현을 단일 규칙으로 정리합니다.
   ============================================================ */
:root{
  --ui-radius-control:10px;
  --ui-radius-panel:12px;
  --ui-radius-modal:16px;
  --ui-btn-primary:#4f46e5;
  --ui-btn-primary-hover:#4338ca;
  --ui-btn-danger:#dc2626;
  --ui-btn-danger-soft:#fff7f7;
  --ui-btn-border:#dfe3ea;
  --ui-btn-text:#4b5563;
}

/* C1. 네 가지 Action Button 역할: Primary / Secondary / Ghost / Danger */
.uiBtn{font:inherit;font-weight:750;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease;border-radius:var(--ui-radius-control)!important;display:inline-flex;align-items:center;justify-content:center;gap:6px;vertical-align:middle;}
.uiBtn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(79,70,229,.14)!important;}
.uiBtn:active{transform:translateY(1px);}
.uiBtn svg,.approveBtn svg,.cancelBtn svg,.linklikeBtn svg,.rejectBtn svg{width:15px;height:15px;flex:0 0 auto;}
.uiBtnPrimary,.approveBtn,.primaryActionBtn,.formPrimaryBtn,.docPrimaryBtn,.dashboardCheckBtn,.dailySaveBtn,.calAddBtn{
  min-height:40px;padding:0 15px;border:1px solid var(--ui-btn-primary)!important;background:var(--ui-btn-primary)!important;color:#fff!important;box-shadow:none!important;border-radius:var(--ui-radius-control)!important;
}
.uiBtnPrimary:hover,.approveBtn:hover,.primaryActionBtn:hover,.formPrimaryBtn:hover,.docPrimaryBtn:hover,.dashboardCheckBtn:hover,.dailySaveBtn:hover,.calAddBtn:hover{background:var(--ui-btn-primary-hover)!important;border-color:var(--ui-btn-primary-hover)!important;color:#fff!important;}
.uiBtnSecondary,.secondaryActionBtn,.secondaryMiniBtn,.docBackBtn,.cancelBtn:not(.uiBtnDanger){
  min-height:40px;padding:0 14px;border:1px solid var(--ui-btn-border)!important;background:#fff!important;color:var(--ui-btn-text)!important;box-shadow:none!important;border-radius:var(--ui-radius-control)!important;
}
.uiBtnSecondary:hover,.secondaryActionBtn:hover,.secondaryMiniBtn:hover,.docBackBtn:hover,.cancelBtn:not(.uiBtnDanger):hover{background:#f8fafc!important;border-color:#cbd5e1!important;color:#334155!important;}
.uiBtnGhost,.linklikeBtn,.modalCloseBtn,.inputIconBtn,.ellipsisBtn,.docMoreBtn,.adminDrawerClose,.workModalClose{
  border-radius:var(--ui-radius-control)!important;color:#64748b;box-shadow:none!important;
}
.uiBtnGhost:hover,.linklikeBtn:hover,.modalCloseBtn:hover,.inputIconBtn:hover,.ellipsisBtn:hover,.docMoreBtn:hover,.adminDrawerClose:hover,.workModalClose:hover{color:#4338ca;background:#f5f3ff;}
.uiBtnDanger,.rejectBtn,.dangerOutlineBtn,.dangerGhostBtn,.removeItemBtn,.cancelBtn.uiBtnDanger{
  min-height:40px;padding:0 14px;border:1px solid #fecaca!important;background:#fff!important;color:var(--ui-btn-danger)!important;box-shadow:none!important;border-radius:var(--ui-radius-control)!important;
}
.uiBtnDanger:hover,.rejectBtn:hover,.dangerOutlineBtn:hover,.dangerGhostBtn:hover,.removeItemBtn:hover,.cancelBtn.uiBtnDanger:hover{background:var(--ui-btn-danger-soft)!important;border-color:#fca5a5!important;color:#b91c1c!important;}
/* 표/인라인의 작은 Ghost 버튼은 공간을 과도하게 차지하지 않게 유지 */
.linklikeBtn.uiBtn,.inputIconBtn.uiBtn,.modalCloseBtn.uiBtn,.adminDrawerClose.uiBtn,.workModalClose.uiBtn{min-height:30px;padding:4px 8px;}
.modalCloseBtn.uiBtn,.adminDrawerClose.uiBtn,.workModalClose.uiBtn{width:34px;height:34px;padding:0;}

/* C2. Radius는 control 10 / panel 12 / modal 16 세 단계만 사용 */
input:not([type="checkbox"]):not([type="radio"]),select,textarea,
.filterBar input,.filterBar select,.searchInput,.adminSearchField,.passwordFieldRow,.financeOverviewSwitch button,.mainCompanyCalendar .ledgerCalCell,.mainCompanyCalendar .mainCalItem,.dayScheduleRow,.companyEventPerson,
.folderPathChip,.feedResourceBox{border-radius:var(--ui-radius-control)!important;}
.card,.summaryCard,.metricCard,.wsMetricCard,.wsPanel,.formSection,.formDisclosure,.paymentCard,.followUpChoice,.adminSettingsTabs,.adminTableWrap,.financeManageDetails,.projectActivityCard,.feedCard,.listItem,.projectRow,.docHubTableWrap,.tableWrap{border-radius:var(--ui-radius-panel)!important;}
.formCard,.formCardWide,.modalBox,#simpleModalBox,.companyEventModalBox,.adminSettingsPane,.adminDrawer,.dashboardExecSummary,.dashboardCalendarSection,.companyEventReadOnly dl{border-radius:var(--ui-radius-modal)!important;}

/* C3. SVG 라인 아이콘의 크기/정렬을 공통화 */
.icon{display:inline-block;width:18px;height:18px;vertical-align:-3px;flex:0 0 auto;}
.icon-inline{width:15px;height:15px;vertical-align:-2px;}
.wsMetricIcon{display:grid;place-items:center;}
.wsMetricIcon .icon{width:20px;height:20px;}
.v6DateTimeArrow .icon{width:17px;height:17px;}
.staleWarning .icon,.financeDataAlert .icon{margin-right:5px;}
.attendMatrixMark .icon{width:17px;height:17px;vertical-align:-4px;}

@media(max-width:760px){
  .uiBtnPrimary,.uiBtnSecondary,.uiBtnDanger,.approveBtn,.primaryActionBtn,.formPrimaryBtn,.docPrimaryBtn,.cancelBtn:not(.uiBtnGhost){min-height:42px;}
}


/* V81 관리자 결재선 관리 */
.approvalAdminSection{margin-top:18px;padding-top:18px;border-top:1px solid #eceef2}.approvalAdminSection:first-of-type{margin-top:8px;padding-top:8px;border-top:0}.approvalAdminSectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.approvalAdminSectionHead h4{margin:0;color:#202632;font-size:14px}.approvalAdminSectionHead p{margin:5px 0 0;color:#7b8390;font-size:11px}.approvalRuleActions{display:flex;gap:8px;flex-wrap:wrap}.approvalRuleCategoryTabs{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 8px}.approvalRuleCategoryBtn{min-height:36px;padding:7px 12px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#5f6672;font-weight:750;cursor:pointer}.approvalRuleCategoryBtn.active{border-color:#c7d2fe;background:#eef2ff;color:#4338ca}.approvalRuleTable{min-width:720px}.approvalRuleTable select{min-width:150px;height:38px}.approvalPendingList{display:flex;flex-direction:column;gap:8px}.approvalPendingCard{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:1px solid #e7eaf0;border-radius:12px;background:#fff}.approvalPendingInfo{min-width:0}.approvalPendingInfo strong{display:block;margin-top:5px;color:#252b36;font-size:12.5px}.approvalPendingInfo small{display:block;margin-top:5px;color:#747c88;font-size:10.5px}.approvalPendingMeta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#8b929d;font-size:9.5px}.approvalReadOnlyRoute{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e7eaf0;border-radius:12px;background:#f8fafc}.approvalReadOnlyRoute span{color:#78808c;font-size:11px}.approvalReadOnlyRoute strong{font-size:12px;color:#303743}.approvalRouteHistory{display:flex;flex-direction:column;gap:8px}.approvalRouteHistory>div{padding:9px 10px;border:1px solid #eceef2;border-radius:10px;background:#fafbfc;font-size:11px}.approvalRouteHistory small{display:block;margin-top:4px;color:#7a828e}.approvalReassignForm{max-width:none!important;padding:18px 22px 22px!important}.approvalHistoryDetail>div{display:flex;flex-direction:column;gap:6px}.approvalHistoryLine{padding:7px 9px;border:1px solid #eceef2;border-radius:10px;background:#fafbfc;font-size:10.5px}.approvalHistoryLine small{display:block;margin-top:3px;color:#7c8490;line-height:1.45}
@media(max-width:800px){.approvalAdminSectionHead,.approvalPendingCard{align-items:stretch;flex-direction:column}.approvalRuleActions{width:100%}.approvalRuleActions .uiBtn{flex:1}.approvalPendingCard>.uiBtn{width:100%;justify-content:center}}

/* ===== V85 근태현황 / 외부인 지급관리 ===== */
.attendanceManageHead,.externalPayHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.attendanceManageHead h2,.externalPayHead h2{margin:0 0 6px}.attendanceMonthNav{margin:0}.attendanceSummaryGrid,.externalPaySummaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 18px}.attendanceSummaryCard,.externalPaySummaryCard{background:#fff;border:1px solid #e6e9f0;border-radius:12px;padding:16px;box-shadow:0 6px 18px rgba(15,23,42,.04)}.attendanceSummaryCard span,.externalPaySummaryCard span{display:block;font-size:12px;color:#667085;font-weight:700}.attendanceSummaryCard strong,.externalPaySummaryCard strong{display:block;margin-top:8px;font-size:23px;color:#111827}.attendanceSummaryCard small,.externalPaySummaryCard small{display:block;margin-top:5px;color:#8a94a6;font-size:11px}.attendanceViewTabs{display:inline-flex;gap:4px;padding:4px;background:#eef1f7;border-radius:12px;margin-bottom:12px}.attendanceViewTabs button{border:0;background:transparent;border-radius:9px;padding:8px 14px;font-weight:700;color:#667085;cursor:pointer}.attendanceViewTabs button.active{background:#fff;color:#4338ca;box-shadow:0 1px 4px rgba(15,23,42,.08)}.attendanceSummaryTable .nameCell strong{display:block}.attendanceSummaryTable .nameCell small{display:block;color:#8a94a6;font-weight:500;margin-top:3px}.attendancePendingBadge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:11px;font-weight:800}.externalPayFilters{display:grid;grid-template-columns:160px 1fr 180px 160px minmax(220px,1.4fr) auto;gap:8px;align-items:center;margin-bottom:14px}.externalPaymentsTable td small{display:block;color:#8a94a6;font-size:11px;margin-top:4px;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.externalPaymentsTable .moneyCell{text-align:right;white-space:nowrap}.externalPayStatus{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.externalPayStatus.draft{background:#f1f5f9;color:#475569}.externalPayStatus.progress{background:#eef2ff;color:#4338ca}.externalPayStatus.ready{background:#fff7ed;color:#c2410c}.externalPayStatus.ok{background:#ecfdf5;color:#047857}.externalPaymentModalBox{width:min(920px,calc(100vw - 28px));max-width:920px}.externalPaymentModal .formSection{border:1px solid #e8eaf0;border-radius:12px;padding:14px;margin-bottom:12px;background:#fff}.externalPaymentModal .formSection h4{margin:0 0 12px;font-size:13px;color:#344054}.externalPayNet{height:44px;display:flex;align-items:center;padding:0 12px;border-radius:10px;background:#eef2ff;color:#3730a3;font-weight:800}.externalPaymentActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.personnelExpenseLinkBox{margin:14px 0;padding:14px;border:1px solid #e3e6ee;border-radius:12px;background:#fafbff}.personnelExpenseLinkBox .formHint{margin:7px 0 0}.externalPayHead .notice,.attendanceManageHead .notice{margin:0}
@media(max-width:900px){.attendanceSummaryGrid,.externalPaySummaryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.externalPayFilters{grid-template-columns:1fr 1fr}.attendanceManageHead,.externalPayHead{flex-direction:column}.externalPaymentActions{flex-direction:column}.externalPaymentActions .uiBtn{width:100%;justify-content:center}}
@media(max-width:560px){.attendanceSummaryGrid,.externalPaySummaryGrid{grid-template-columns:1fr}.externalPayFilters{grid-template-columns:1fr}}
