@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@400;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@400;600;700;800&display=swap";.confirmOverlay[data-v-f159d7f2]{z-index:2500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a6b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirmCard[data-v-f159d7f2]{border:1px solid var(--border);text-align:center;background:#fff;border-radius:20px;width:100%;max-width:min(520px,92vw);padding:26px 26px 22px;box-shadow:0 24px 48px -24px #0f172a73,inset 0 0 0 1px #fff9}.confirmIcon[data-v-f159d7f2]{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 14px;display:inline-flex}.confirmIcon--default[data-v-f159d7f2]{color:var(--brand);background:var(--brand-soft)}.confirmIcon--danger[data-v-f159d7f2]{color:#b91c1c;background:var(--status-bad-soft)}.confirmTitle[data-v-f159d7f2]{color:var(--fg);margin:0 0 10px;font-size:clamp(1.2rem,4vw,1.5rem);font-weight:700;line-height:1.35}.confirmMessage[data-v-f159d7f2]{color:var(--fg);margin:0;font-size:16px;line-height:1.55}.confirmDetail[data-v-f159d7f2]{color:var(--muted);margin:10px 0 0;font-size:15px;line-height:1.5}.confirmActions[data-v-f159d7f2]{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.confirmActions .btn[data-v-f159d7f2]{justify-content:center;min-width:7.5rem;min-height:46px;font-size:15px}.confirmBtnCancel[data-v-f159d7f2]{border:1px solid var(--border);color:var(--fg);background:#fff}.confirmBtnCancel[data-v-f159d7f2]:hover{background:#f8fafc}.btnDangerSolid[data-v-f159d7f2]{color:#fff;background:#dc2626;border:1px solid #b91c1c}.btnDangerSolid[data-v-f159d7f2]:hover{background:#b91c1c}.confirmFade-enter-active[data-v-f159d7f2],.confirmFade-leave-active[data-v-f159d7f2]{transition:opacity .18s}.confirmFade-enter-active .confirmCard[data-v-f159d7f2],.confirmFade-leave-active .confirmCard[data-v-f159d7f2]{transition:transform .2s,opacity .2s}.confirmFade-enter-from[data-v-f159d7f2],.confirmFade-leave-to[data-v-f159d7f2]{opacity:0}.confirmFade-enter-from .confirmCard[data-v-f159d7f2],.confirmFade-leave-to .confirmCard[data-v-f159d7f2]{opacity:0;transform:scale(.96)translateY(6px)}.appToast[data-v-64119ab0]{z-index:2800;pointer-events:none;border-radius:16px;align-items:center;gap:10px;max-width:min(92vw,520px);padding:14px 22px;font-size:16px;font-weight:600;line-height:1.35;display:inline-flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 20px 50px -16px #0f172a59,0 8px 24px -8px #0f172a33}.appToast--success[data-v-64119ab0]{color:#065f46;background:linear-gradient(135deg,#ecfdf5 0%,#d1fae5 100%);border:1px solid #10b98173}.appToast--error[data-v-64119ab0]{color:#991b1b;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #ef444466}.appToastIcon[data-v-64119ab0]{border-radius:999px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:15px;font-weight:800;display:grid}.appToast--success .appToastIcon[data-v-64119ab0]{color:#fff;background:#10b981}.appToast--error .appToastIcon[data-v-64119ab0]{color:#fff;background:#ef4444}.appToastText[data-v-64119ab0]{text-align:left}.appToast-enter-active[data-v-64119ab0]{animation:.38s cubic-bezier(.22,1,.36,1) appToastIn-64119ab0}.appToast-leave-active[data-v-64119ab0]{animation:.28s ease-in forwards appToastOut-64119ab0}@keyframes appToastIn-64119ab0{0%{opacity:0;transform:translate(-50%,24px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes appToastOut-64119ab0{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,12px)scale(.96)}}.appToast-enter-active[data-v-64119ab0],.appToast-leave-active[data-v-64119ab0]{left:50%}@media (prefers-reduced-motion:reduce){.appToast-enter-active[data-v-64119ab0],.appToast-leave-active[data-v-64119ab0]{animation:none}}.siteFooter[data-v-13cec97b]{border-top:1px solid var(--border);background:var(--card);margin-top:auto;padding:clamp(28px,4vw,40px) 20px clamp(24px,3vw,32px)}.siteFooterInner[data-v-13cec97b]{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:1180px;margin:0 auto;display:flex}.siteFooterLogos[data-v-13cec97b]{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 28px;display:flex}.siteFooterLogo[data-v-13cec97b]{object-fit:contain;display:block}.siteFooterLogo--ubu[data-v-13cec97b]{width:auto;height:64px}.siteFooterLogo--odl[data-v-13cec97b]{width:auto;max-width:min(280px,70vw);height:52px}.siteFooterLogoSep[data-v-13cec97b]{background:var(--border);width:1px;height:48px;display:none}@media (width>=520px){.siteFooterLogoSep[data-v-13cec97b]{display:block}}.siteFooterDev[data-v-13cec97b]{color:var(--muted);max-width:none;margin:0;padding:0 12px;font-size:clamp(11px,1.05vw,13px);line-height:1.5}.siteFooterCopy[data-v-13cec97b]{color:var(--fg);max-width:40rem;margin:0;font-size:12px;line-height:1.65}.siteFooterMeta[data-v-13cec97b]{color:var(--muted);margin:4px 0 0;font-size:11px}.hrPicker[data-v-008de1f3]{position:relative}.lbl[data-v-008de1f3]{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.fieldHint[data-v-008de1f3]{color:var(--muted);margin:0 0 8px;font-size:12px;line-height:1.45}.inp[data-v-008de1f3]{border:1px solid var(--border);box-sizing:border-box;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.hrPickerPicked[data-v-008de1f3]{color:var(--muted);margin:8px 0 0;font-size:13px}.hrPickerPicked strong[data-v-008de1f3]{color:var(--fg);font-weight:500}.hrPickerClear[data-v-008de1f3]{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:12px;text-decoration:underline}.hrPickerList[data-v-008de1f3]{border:1px solid var(--border);z-index:2;background:#fff;border-radius:12px;max-height:220px;margin:6px 0 0;padding:4px;list-style:none;position:relative;overflow-y:auto;box-shadow:0 12px 32px -16px #0f172a59}.hrPickerOption[data-v-008de1f3]{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.hrPickerOption[data-v-008de1f3]:hover{background:#eef2ff}.hrPickerName[data-v-008de1f3]{color:var(--fg);font-size:14px;font-weight:500}.hrPickerMeta[data-v-008de1f3]{color:var(--muted);font-size:12px}.hrPickerEmpty[data-v-008de1f3]{color:var(--muted);margin:6px 0 0;padding:8px 10px;font-size:12px}.hrPickerDetails[data-v-008de1f3]{border:1px solid var(--border);background:#f8fafc;border-radius:10px;gap:8px;margin-top:12px;padding:12px 14px;display:grid}.hrPickerDetailRow[data-v-008de1f3]{grid-template-columns:72px 1fr;align-items:baseline;gap:8px;font-size:13px;display:grid}.hrPickerDetailLbl[data-v-008de1f3]{color:var(--muted)}.hrPickerDetailVal[data-v-008de1f3]{color:var(--fg);word-break:break-word}.hrPickerDetailVal a[data-v-008de1f3]{color:var(--brand)}.taskLinks[data-v-9528ef9b]{flex-direction:column;gap:8px;display:flex}.lbl[data-v-9528ef9b]{color:var(--muted);margin:0;font-size:12px;display:block}.taskLinksRow[data-v-9528ef9b]{align-items:center;gap:8px;display:flex}.taskLinksInp[data-v-9528ef9b]{flex:1;min-width:0}.taskLinksOpen[data-v-9528ef9b]{color:var(--brand);background:#eef2ff;border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:12px;text-decoration:none}.taskLinksOpen[data-v-9528ef9b]:hover{background:#e0e7ff;text-decoration:underline}.taskLinksRemove[data-v-9528ef9b]{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 6px;font-size:12px}.taskLinksRemove[data-v-9528ef9b]:hover{color:#dc2626}.taskLinksAdd[data-v-9528ef9b]{color:var(--brand);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px}.taskLinksAdd[data-v-9528ef9b]:hover{text-decoration:underline}.inp[data-v-9528ef9b]{border:1px solid var(--border);box-sizing:border-box;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.progressImages[data-v-0e04b71d]{gap:8px;display:grid}.progressImagesToolbar[data-v-0e04b71d]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progressImagesPasteHint[data-v-0e04b71d]{color:#64748b;font-size:12px}.progressImagesDrop[data-v-0e04b71d]{text-align:center;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:14px;justify-items:center;gap:4px;padding:12px;font-family:inherit;transition:border-color .15s,background .15s;display:grid}.progressImagesDrop[data-v-0e04b71d]:hover:not(.progressImagesDropDisabled){background:#eef2ff;border-color:#818cf8}.progressImagesDrop[data-v-0e04b71d]:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 3px #4f46e526}.progressImagesDropActive[data-v-0e04b71d]{background:#eef2ff;border-color:#4f46e5}.progressImagesDropDisabled[data-v-0e04b71d]{opacity:.55;cursor:not-allowed}.progressImagesFileInput[data-v-0e04b71d]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.progressImagesPasteBox[data-v-0e04b71d]{gap:4px;display:grid}.progressImagesPasteBoxFocused .progressImagesPasteInput[data-v-0e04b71d]{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526}.progressImagesPasteBoxDisabled[data-v-0e04b71d]{opacity:.55}.progressImagesPasteInput[data-v-0e04b71d]{resize:vertical;cursor:text;background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;min-height:52px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.45}.progressImagesPasteInput[data-v-0e04b71d]:focus{outline:none}.progressImagesPasteInput[data-v-0e04b71d]:disabled{cursor:not-allowed;background:#f1f5f9}.progressImagesDropIcon[data-v-0e04b71d]{font-size:1.25rem;line-height:1}.progressImagesDropTitle[data-v-0e04b71d]{color:#64748b;font-size:13px;font-weight:500}.progressImagesGrid[data-v-0e04b71d]{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.progressImagesItem[data-v-0e04b71d]{aspect-ratio:1;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;position:relative;overflow:hidden}.progressImagesThumb[data-v-0e04b71d]{object-fit:cover;width:100%;height:100%;display:block}.progressImagesThumb--busy[data-v-0e04b71d]{animation:1.2s ease-in-out infinite progressImgPulse-0e04b71d}.progressImagesRemove[data-v-0e04b71d]{color:#fff;cursor:pointer;background:#0f172ab8;border:none;border-radius:999px;width:24px;height:24px;font-size:16px;line-height:1;position:absolute;top:4px;right:4px}.progressImagesBusy[data-v-0e04b71d]{text-align:center;color:#fff;background:#0f172a8c;padding:4px;font-size:10px;position:absolute;inset:auto 0 0}.fieldError[data-v-0e04b71d]{color:#b91c1c;margin:0;font-size:12px}.fieldHint[data-v-0e04b71d]{color:var(--muted,#64748b);margin:0;font-size:12px;line-height:1.4}.lbl[data-v-0e04b71d]{color:var(--muted,#64748b);font-size:12px}@keyframes progressImgPulse-0e04b71d{0%,to{opacity:.45}50%{opacity:.9}}.imagePreviewOverlay[data-v-bcb53bb5]{padding:16px}.imagePreviewDialog[data-v-bcb53bb5]{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(96vw,1100px);max-height:min(92vh,900px);display:flex;overflow:hidden;box-shadow:0 28px 70px -40px #0f172a59}.imagePreviewToolbar[data-v-bcb53bb5]{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.imagePreviewBody[data-v-bcb53bb5]{background:#f8fafc;flex:auto;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex}.imagePreviewImg[data-v-bcb53bb5]{object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:auto;max-width:100%;height:auto;max-height:min(78vh,780px);box-shadow:0 4px 24px -8px #0f172a1f}.dmsShareBtn[data-v-74d27a09]{--dms-blue-deep:#0d1878;--dms-blue:#142196;--dms-blue-light:#1e3ab8;--dms-lime:#86ef21;background:linear-gradient(135deg, var(--dms-blue-deep) 0%, var(--dms-blue) 42%, var(--dms-blue-light) 100%);color:#fff;letter-spacing:.01em;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:14px 32px;font-size:15px;font-weight:700;transition:transform .22s,box-shadow .22s,filter .22s;animation:3.2s ease-in-out infinite dmsShareBtnFloat-74d27a09;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 14px 36px -10px #1421968c,0 4px 14px -6px #86ef211f}.dmsShareBtn--compact[data-v-74d27a09]{gap:6px;height:38px;min-height:38px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1;animation:none;box-shadow:0 6px 16px -8px #14219673,0 1px 4px -2px #0f172a1a}.dmsShareBtn[data-v-74d27a09]:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-3px)scale(1.04);box-shadow:0 20px 44px -12px #142196a6,0 6px 20px -6px #86ef2140}.dmsShareBtn--compact[data-v-74d27a09]:hover:not(:disabled){filter:brightness(1.05);transform:none;box-shadow:0 8px 20px -8px #1421968c,0 2px 8px -3px #86ef2133}.dmsShareBtn[data-v-74d27a09]:active:not(:disabled){animation:none;transform:translateY(0)scale(.98)}.dmsShareBtn[data-v-74d27a09]:disabled{cursor:wait;opacity:.88;animation:none}.dmsShareBtn--loading .dmsShareBtnIcon[data-v-74d27a09]{animation:.9s ease-in-out infinite dmsShareIconPulse-74d27a09}.dmsShareBtnIcon[data-v-74d27a09]{background:#86ef2138;border:1px solid #86ef2159;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:transform .25s;display:grid}.dmsShareBtn--compact .dmsShareBtnIcon[data-v-74d27a09]{border-radius:6px;width:22px;height:22px}.dmsShareBtnLogo[data-v-74d27a09]{object-fit:contain;border-radius:4px;width:100%;height:100%;display:block}.dmsShareBtn--compact .dmsShareBtnLogo[data-v-74d27a09]{width:18px;height:18px}.dmsShareBtn--compact:hover:not(:disabled) .dmsShareBtnIcon[data-v-74d27a09]{transform:none}.dmsShareBtn:hover:not(:disabled) .dmsShareBtnIcon[data-v-74d27a09]{transform:scale(1.1)}.dmsShareBtn--compact .dmsShareBtnShine[data-v-74d27a09]{animation:none}.dmsShareBtnText[data-v-74d27a09]{z-index:1;white-space:nowrap;text-shadow:0 1px #0d187859;position:relative}.dmsShareBtnShine[data-v-74d27a09]{pointer-events:none;background:linear-gradient(105deg,#0000 38%,#86ef2147 50%,#0000 62%);animation:4.5s ease-in-out infinite dmsShareShine-74d27a09;position:absolute;inset:0;transform:translate(-130%)}@keyframes dmsShareBtnFloat-74d27a09{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes dmsShareShine-74d27a09{0%,68%,to{transform:translate(-130%)}82%{transform:translate(130%)}}@keyframes dmsShareIconPulse-74d27a09{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.92)}}@media (width<=640px){.dmsShareBtn--compact[data-v-74d27a09]{width:100%;min-width:0;max-width:100%;height:auto;min-height:40px;padding:8px 10px}.dmsShareBtnText[data-v-74d27a09]{white-space:normal;text-align:center;line-height:1.25}}@media (prefers-reduced-motion:reduce){.dmsShareBtn[data-v-74d27a09],.dmsShareBtnShine[data-v-74d27a09],.dmsShareBtn--loading .dmsShareBtnIcon[data-v-74d27a09]{animation:none}}.taskPdfOverlay[data-v-03c2ffe2]{padding:16px}.taskPdfDialog[data-v-03c2ffe2]{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(96vw,960px);max-height:min(92vh,900px);display:flex;overflow:hidden;box-shadow:0 28px 70px -40px #0f172a59}.taskPdfToolbar[data-v-03c2ffe2]{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.taskPdfTitle[data-v-03c2ffe2]{margin:0;font-size:clamp(1.15rem,3vw,1.4rem);font-weight:700}.taskPdfSubtitle[data-v-03c2ffe2]{color:var(--muted,#64748b);margin:4px 0 0;font-size:15px}.taskPdfAssignee[data-v-03c2ffe2]{color:#334155;margin:4px 0 0;font-size:12px}.taskPdfToolbarActions[data-v-03c2ffe2]{flex-shrink:0;gap:8px;display:flex}.taskPdfToolbarActions[data-v-03c2ffe2] .btn{min-height:44px;font-size:15px}.taskPdfShareError[data-v-03c2ffe2]{color:#b91c1c;text-align:right;flex:100%;margin:8px 0 0;font-size:12px}.taskPdfLoading[data-v-03c2ffe2],.taskPdfError[data-v-03c2ffe2]{text-align:center;padding:32px 18px;font-size:14px}.taskPdfError[data-v-03c2ffe2]{color:#b91c1c}.taskPdfPreviewWrap[data-v-03c2ffe2]{background:#e8edf5;flex:1;padding:18px;overflow:auto}.taskPdfPreview[data-v-03c2ffe2]{background:#fff;border-radius:8px;max-width:794px;margin:0 auto;font-family:Sarabun,Kanit,Noto Sans Thai,sans-serif;overflow:hidden;box-shadow:0 8px 28px #0f172a1f}@media (width<=640px){.taskPdfOverlay[data-v-03c2ffe2]{padding:8px}.taskPdfDialog[data-v-03c2ffe2]{width:100%;max-height:min(94vh,100%)}.taskPdfToolbar[data-v-03c2ffe2]{flex-direction:column;align-items:stretch;padding:12px 14px}.taskPdfToolbarActions[data-v-03c2ffe2]{flex-wrap:wrap;flex-shrink:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.taskPdfToolbarActions[data-v-03c2ffe2] .btn,.taskPdfToolbarActions[data-v-03c2ffe2] .dmsShareBtn,.taskPdfToolbarActions[data-v-03c2ffe2] .pdfReportBtn{justify-content:center;width:100%;min-width:0;max-width:100%}.taskPdfShareError[data-v-03c2ffe2]{text-align:left}.taskPdfPreviewWrap[data-v-03c2ffe2]{padding:12px}}.pdfReportBtn[data-v-dea4f3f9]{color:#fff;letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#b91c1c 0%,#dc2626 42%,#ef4444 100%);border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:14px 32px;font-size:15px;font-weight:700;transition:transform .22s,box-shadow .22s,filter .22s;animation:3.2s ease-in-out infinite pdfReportBtnFloat-dea4f3f9;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 14px 36px -10px #dc26268c,0 4px 14px -6px #0f172a24}.pdfReportBtn--compact[data-v-dea4f3f9]{gap:6px;height:38px;min-height:38px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1;animation:none;box-shadow:0 6px 16px -8px #dc262673,0 1px 4px -2px #0f172a1a}.pdfReportBtn[data-v-dea4f3f9]:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-3px)scale(1.04);box-shadow:0 20px 44px -12px #dc2626a6,0 6px 16px -6px #0f172a29}.pdfReportBtn--compact[data-v-dea4f3f9]:hover:not(:disabled){filter:brightness(1.05);transform:none;box-shadow:0 8px 20px -8px #dc26268c,0 2px 6px -3px #0f172a1f}.pdfReportBtn[data-v-dea4f3f9]:active:not(:disabled){animation:none;transform:translateY(0)scale(.98)}.pdfReportBtn[data-v-dea4f3f9]:disabled{cursor:wait;opacity:.88;animation:none}.pdfReportBtn--loading .pdfReportBtnIcon[data-v-dea4f3f9]{animation:.9s linear infinite pdfReportIconSpin-dea4f3f9}.pdfReportBtnIcon[data-v-dea4f3f9]{background:#ffffff2e;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:transform .25s;display:grid}.pdfReportBtn--compact .pdfReportBtnIcon[data-v-dea4f3f9]{background:#fff3;border-radius:4px;width:18px;height:18px}.pdfReportBtn--compact .pdfReportBtnIcon svg[data-v-dea4f3f9]{width:14px;height:14px}.pdfReportBtn--compact:hover:not(:disabled) .pdfReportBtnIcon[data-v-dea4f3f9]{transform:none}.pdfReportBtn:hover:not(:disabled) .pdfReportBtnIcon[data-v-dea4f3f9]{transform:scale(1.12)rotate(-6deg)}.pdfReportBtn--compact .pdfReportBtnShine[data-v-dea4f3f9]{animation:none}.pdfReportBtnText[data-v-dea4f3f9]{z-index:1;white-space:nowrap;position:relative}.pdfReportBtnShine[data-v-dea4f3f9]{pointer-events:none;background:linear-gradient(105deg,#0000 38%,#ffffff52 50%,#0000 62%);animation:4.5s ease-in-out infinite pdfReportShine-dea4f3f9;position:absolute;inset:0;transform:translate(-130%)}@keyframes pdfReportBtnFloat-dea4f3f9{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pdfReportShine-dea4f3f9{0%,68%,to{transform:translate(-130%)}82%{transform:translate(130%)}}@keyframes pdfReportIconSpin-dea4f3f9{to{transform:rotate(360deg)}}@media (width<=640px){.pdfReportBtn--compact[data-v-dea4f3f9]{width:100%;min-width:0;max-width:100%;height:auto;min-height:40px;padding:8px 10px}.pdfReportBtnText[data-v-dea4f3f9]{white-space:normal;text-align:center;line-height:1.25}}@media (prefers-reduced-motion:reduce){.pdfReportBtn[data-v-dea4f3f9],.pdfReportBtnShine[data-v-dea4f3f9],.pdfReportBtn--loading .pdfReportBtnIcon[data-v-dea4f3f9]{animation:none}}.taskLinkList[data-v-4a770ff9]{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.taskLinkList--compact[data-v-4a770ff9]{gap:4px;margin-top:4px}.taskLinkListAnchor[data-v-4a770ff9]{color:#4f46e5;word-break:break-all;text-underline-offset:2px;cursor:pointer;pointer-events:auto;padding:2px 0;font-size:13px;font-weight:500;text-decoration:underline;display:inline-block}.taskLinkListAnchor[data-v-4a770ff9]:hover{color:#4338ca}.textWithLinks[data-v-49917100]{white-space:pre-wrap;word-break:break-word}.textWithLinksAnchor[data-v-49917100]{color:#4f46e5;text-underline-offset:2px;cursor:pointer;pointer-events:auto;font-weight:500;text-decoration:underline}.textWithLinksAnchor[data-v-49917100]:hover{color:#4338ca}.editTaskTabs[data-v-a4f43529]{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;gap:6px;min-width:0;padding:10px 18px 0;display:flex}.editTaskModalSubtitle[data-v-a4f43529]{color:var(--muted);margin-top:4px;font-size:15px;line-height:1.45}.editTaskTab[data-v-a4f43529]{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:12px 12px 0 0;flex:1;padding:12px 14px;font-family:inherit;font-size:16px;font-weight:500;transition:background .15s,color .15s}.editTaskTab[data-v-a4f43529]:hover{color:#334155;background:#f8fafc}.editTaskTabActive[data-v-a4f43529]{color:#4f46e5;background:#eef2ff;box-shadow:inset 0 -2px #4f46e5}.editTaskTabPanel[data-v-a4f43529]{flex-direction:column;gap:14px;display:flex}.editTaskModalTitle[data-v-a4f43529]{word-break:break-word;font-size:clamp(1.25rem,4vw,1.65rem);font-weight:700;line-height:1.3}.modalCard--editTask[data-v-a4f43529] .btn{font-size:15px}.editTaskHeadClose[data-v-a4f43529]{color:#64748b;background:#f8fafc;border-color:#e2e8f0;flex-shrink:0;min-height:36px;padding:6px 12px;font-size:14px}.editTaskReportToolbar[data-v-a4f43529]{background:#f8fafc;border-bottom:1px solid #e8edf3;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;display:flex}.editTaskReportToolbar[data-v-a4f43529] .dmsShareBtn--compact,.editTaskReportToolbar[data-v-a4f43529] .pdfReportBtn--compact{max-width:100%}.progressHistoryTitle[data-v-a4f43529]{margin:0}.editTaskModalFoot[data-v-a4f43529]{padding:10px 14px max(12px, env(safe-area-inset-bottom,12px));background:#f8fafc;border-top-color:#e8edf3;flex-direction:column;align-items:stretch;gap:6px}.editTaskModalFootMain[data-v-a4f43529]{align-items:center;gap:8px;width:100%;display:flex}.editTaskFootCancel[data-v-a4f43529],.editTaskFootSave[data-v-a4f43529]{border-radius:12px;flex:1 1 0;min-width:0;min-height:40px;padding:8px 12px;font-size:14px;font-weight:600}.editTaskFootCancel[data-v-a4f43529]{color:#64748b;background:#fff;border:1px solid #e2e8f0}.editTaskFootCancel[data-v-a4f43529]:hover{background:#f8fafc;border-color:#cbd5e1}.editTaskFootSave[data-v-a4f43529]{box-shadow:none;flex:1.15 1 0}.editTaskFootDestructive[data-v-a4f43529]{color:#94a3b8;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;align-self:center;min-height:0;margin:0;padding:4px 10px;font-size:13px;font-weight:500;text-decoration:underline}.editTaskFootDestructive[data-v-a4f43529]:hover:not(:disabled){color:#b91c1c}.editTaskFootDestructive[data-v-a4f43529]:disabled{opacity:.45;cursor:not-allowed}@media (width>=641px){.editTaskModalFoot[data-v-a4f43529]{background:#fff;flex-flow:wrap;justify-content:space-between;align-items:center;padding:12px 20px 16px}.editTaskModalFootMain[data-v-a4f43529]{width:auto;margin-left:auto}.editTaskFootCancel[data-v-a4f43529],.editTaskFootSave[data-v-a4f43529]{flex:0 auto;min-width:96px}.editTaskFootDestructive[data-v-a4f43529]{order:-1;align-self:center;margin-right:auto}}.formField[data-v-a4f43529]{gap:4px;display:grid}.formFieldError .lbl[data-v-a4f43529]{color:#b91c1c}.inpError[data-v-a4f43529]{background:#fef2f2;border-color:#ef4444;box-shadow:0 0 0 3px #ef44441f}.inpError[data-v-a4f43529]:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px #ef444433}.progressRange.inpError[data-v-a4f43529]{box-shadow:none;accent-color:#ef4444}.fieldError[data-v-a4f43529]{color:#b91c1c;margin:0;font-size:14px}.formDates[data-v-a4f43529]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.progressField[data-v-a4f43529]{align-items:center;gap:12px;display:flex}.progressRange[data-v-a4f43529]{accent-color:#4f46e5;flex:1}.progressNum[data-v-a4f43529]{text-align:center;max-width:72px}.progressPreview[data-v-a4f43529]{color:#475569;align-items:center;gap:10px;font-size:15px;display:flex}.progressPreviewTrack[data-v-a4f43529]{background:#e2e8f0;border-radius:999px;flex:1;height:8px;overflow:hidden}.progressPreviewFill[data-v-a4f43529]{background:linear-gradient(90deg,#4f46e5,#6366f1);border-radius:999px;height:100%;display:block}.progressPreviewLabel[data-v-a4f43529]{flex-shrink:0;font-weight:600}.lbl[data-v-a4f43529]{color:var(--muted);font-size:12px}.inp[data-v-a4f43529]{border:1px solid #cbd5e1;border-radius:14px;width:100%;padding:10px 12px;font-size:14px}.editTaskForm .progressNum[data-v-a4f43529]{max-width:80px;font-size:17px;font-weight:600}.inpArea[data-v-a4f43529]{resize:vertical;min-height:72px;font-family:inherit;line-height:1.45}.gantt-scaler[data-v-a4f43529]{position:relative}.fieldHint[data-v-a4f43529]{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.editTaskForm .collabTag[data-v-a4f43529]{padding:6px 12px;font-size:14px}.editTaskForm .progressHistoryBlock .lbl[data-v-a4f43529]{color:#334155;font-size:16px;font-weight:700}.collabReadonly[data-v-a4f43529]{flex-wrap:wrap;gap:6px;display:flex}.collabTag[data-v-a4f43529]{color:#3730a3;background:#eef2ff;border-radius:999px;padding:4px 10px;font-size:12px}.collabTagStatus[data-v-a4f43529]{opacity:.85;font-weight:500}.progressHistoryBlock[data-v-a4f43529]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:4px;padding:10px 12px}.progressHistoryMeta[data-v-a4f43529]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.progressHistoryMetaMain[data-v-a4f43529]{flex:1;min-width:0}.progressHistoryHead[data-v-a4f43529]{min-width:0;margin-bottom:8px}.progressHistoryBlock .progressHistoryList[data-v-a4f43529]{max-height:260px}.progressHistoryImageBtn[data-v-a4f43529]:hover{border-color:#818cf8;box-shadow:0 0 0 3px #6366f126}.toast[data-v-a4f43529]{color:#047857;z-index:60;background:#10b9811f;border:1px solid #10b98140;border-radius:999px;padding:10px 14px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}@media (width<=640px){.editTaskReportToolbar[data-v-a4f43529]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 12px;display:grid}.editTaskReportToolbar>.btn[data-v-a4f43529],.editTaskReportToolbar[data-v-a4f43529] .dmsShareBtn,.editTaskReportToolbar[data-v-a4f43529] .pdfReportBtn{justify-content:center;width:100%;min-width:0;max-width:100%}.editTaskReportToolbar[data-v-a4f43529] .dmsShareBtnText,.editTaskReportToolbar[data-v-a4f43529] .pdfReportBtnText{white-space:normal;text-align:center}.progressHistoryBlock[data-v-a4f43529]{overflow-x:hidden}}@media (width<=480px){.modalCard[data-v-a4f43529]{border-radius:18px;padding:14px}.formDates[data-v-a4f43529]{grid-template-columns:1fr}}.collabInvitesPanel[data-v-689967bb]{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 45%,#fff7ed 100%);border:2px solid #f59e0b;border-left:6px solid #d97706;padding:14px 16px 14px 18px;box-shadow:0 4px 14px #d977062e,inset 0 0 0 1px #fbbf2459}.collabInvitesHead[data-v-689967bb]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.collabInvitesIcon[data-v-689967bb]{color:#fff;background:#f59e0b;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex;box-shadow:0 2px 6px #d9770659}.collabInvitesTitle[data-v-689967bb]{color:#92400e;letter-spacing:.01em;font-size:15px}.collabInvitesHint[data-v-689967bb]{text-transform:uppercase;letter-spacing:.04em;color:#b45309;background:#ffffffb3;border:1px solid #fcd34d;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:600}.collabInvitesCount[data-v-689967bb]{color:#fff;background:#ea580c;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 0 0 2px #fff,0 2px 8px #ea580c73}.collabInvitesList[data-v-689967bb]{gap:10px;margin:0;padding:0;list-style:none;display:grid}.collabInviteItem[data-v-689967bb]{background:#fff;border:1px solid #fde68a;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 2px 8px #b4530914}.collabInviteTitle[data-v-689967bb]{color:#78350f;font-size:15px;font-weight:700}.collabInviteMeta[data-v-689967bb]{color:#92400e;margin:4px 0 0;font-size:12px}.collabInviteMeta strong[data-v-689967bb]{color:#c2410c}.collabInviteActions[data-v-689967bb]{gap:8px;display:flex}.collabInviteActions .btnPrimary[data-v-689967bb]{background:#ea580c;border-color:#c2410c}.collabInviteActions .btnPrimary[data-v-689967bb]:hover:not(:disabled){background:#c2410c}.collabInviteActions .btn[data-v-689967bb]:not(.btnPrimary){color:#57534e;background:#fff;border-color:#d6d3d1}.collabLeavePanel[data-v-4abf47b6]{background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 45%,#fff1f2 100%);border:2px solid #ef4444;border-left:6px solid #dc2626;padding:14px 16px 14px 18px;box-shadow:0 4px 14px #dc262624,inset 0 0 0 1px #fca5a559}.collabLeaveHead[data-v-4abf47b6]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.collabLeaveIcon[data-v-4abf47b6]{color:#fff;background:#ef4444;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex;box-shadow:0 2px 6px #dc262659}.collabLeaveTitle[data-v-4abf47b6]{color:#991b1b;letter-spacing:.01em;font-size:15px}.collabLeaveHint[data-v-4abf47b6]{text-transform:uppercase;letter-spacing:.04em;color:#b91c1c;background:#ffffffb3;border:1px solid #fca5a5;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:600}.collabLeaveCount[data-v-4abf47b6]{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 0 0 2px #fff,0 2px 8px #dc262666}.collabLeaveList[data-v-4abf47b6]{gap:10px;margin:0;padding:0;list-style:none;display:grid}.collabLeaveItem[data-v-4abf47b6]{background:#fff;border:1px solid #fecaca;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 2px 8px #b91c1c14}.collabLeaveTask[data-v-4abf47b6]{color:#7f1d1d;font-size:15px;font-weight:700}.collabLeaveMeta[data-v-4abf47b6]{color:#991b1b;margin:4px 0 0;font-size:12px}.collabLeaveMeta strong[data-v-4abf47b6]{color:#b91c1c}.collabLeaveActions[data-v-4abf47b6]{gap:8px;display:flex}.collabLeaveActions .btnPrimary[data-v-4abf47b6]{background:#dc2626;border-color:#b91c1c}.collabLeaveActions .btnPrimary[data-v-4abf47b6]:hover:not(:disabled){background:#b91c1c}.resourceAvatar[data-v-eae4c2f6]{object-fit:cover;object-position:center top;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:32px;height:32px;box-shadow:0 0 0 1px #0f172a14}.resourceAvatar--fallback[data-v-eae4c2f6]{color:#fff;letter-spacing:.02em;justify-content:center;align-items:center;font-size:8px;font-weight:700;display:inline-flex}.ganttState[data-v-5e0f52d9]{text-align:center;color:var(--muted);padding:32px 16px;font-size:14px}.ganttStateErr[data-v-5e0f52d9]{color:#b91c1c}.ganttToolbarActions[data-v-5e0f52d9]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pillMetaMuted[data-v-5e0f52d9]{opacity:.85;font-weight:400}.ganttDeptSwitch[data-v-5e0f52d9]{flex-direction:column;flex:200px;gap:4px;min-width:min(100%,280px);display:flex}.ganttDeptSwitchLbl[data-v-5e0f52d9]{color:var(--muted);font-size:11px}.ganttDeptSelect[data-v-5e0f52d9]{max-width:100%;padding:8px 10px;font-size:13px}.resourcePill[data-v-5e0f52d9]{align-items:center;gap:8px;display:inline-flex}.resourcePillName[data-v-5e0f52d9]{min-width:0;line-height:1.3}.formDates[data-v-5e0f52d9]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.inpReadonly[data-v-5e0f52d9]:read-only{color:var(--muted);cursor:default;pointer-events:none;background:#f8fafc}.formField[data-v-5e0f52d9]{gap:6px;display:grid}.formFieldError .lbl[data-v-5e0f52d9]{color:#b91c1c}.inpError[data-v-5e0f52d9]{background:#fef2f2;border-color:#ef4444;box-shadow:0 0 0 3px #ef44441f}.inpError[data-v-5e0f52d9]:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px #ef444433}.addTaskModal[data-v-5e0f52d9]{max-height:min(94dvh,100%)}.addTaskModalHead[data-v-5e0f52d9]{padding-bottom:10px}.addTaskModalTitle[data-v-5e0f52d9]{margin:0}.addTaskModalFoot[data-v-5e0f52d9]{flex-shrink:0;box-shadow:0 -4px 16px #0f172a0f}.addTaskForm[data-v-5e0f52d9]{gap:10px}.addTaskCollabSection[data-v-5e0f52d9]{gap:4px;min-width:0;display:grid}.addTaskCollabSection[data-v-5e0f52d9] .collabPicker{min-height:72px;max-height:min(120px,22vh)}@media (width<=640px){.addTaskModal[data-v-5e0f52d9]{width:100%;max-height:min(96dvh,100%)}.addTaskModalHead[data-v-5e0f52d9]{padding:12px 14px 8px}.addTaskModalTitle[data-v-5e0f52d9]{font-size:1.2rem}.addTaskForm[data-v-5e0f52d9]{gap:8px}.addTaskForm .lbl[data-v-5e0f52d9]{font-size:14px}.addTaskForm .fieldHint[data-v-5e0f52d9]{font-size:12px;line-height:1.35}.addTaskForm .inp[data-v-5e0f52d9]{padding:10px 12px;font-size:15px}.addTaskForm .inpArea[data-v-5e0f52d9]{min-height:48px}.addTaskCollabHint[data-v-5e0f52d9]{display:none}.addTaskCollabSection[data-v-5e0f52d9] .collabPicker{gap:4px;min-height:64px;max-height:min(88px,18vh)}.addTaskCollabSection[data-v-5e0f52d9] .collabOption{min-height:40px;padding:6px 10px;font-size:14px}.addTaskModalFoot[data-v-5e0f52d9]{padding:10px 14px 12px}.addTaskModalFoot .modalCardFootActions[data-v-5e0f52d9]{flex-direction:row;gap:8px}.addTaskModalFoot .modalCardFootActions .btn[data-v-5e0f52d9]{flex:1 1 0;min-width:0}}@media (width<=480px){.formDates[data-v-5e0f52d9]{grid-template-columns:1fr 1fr;gap:8px}}.brandLogo[data-v-519a228b]{align-items:center;gap:10px;line-height:1;display:inline-flex}.brandLogoIcon[data-v-519a228b]{object-fit:contain;flex-shrink:0;width:auto;display:block}.brandLogoName[data-v-519a228b]{letter-spacing:-.02em;color:var(--fg);white-space:nowrap;font-weight:500}.brandLogo--dark .brandLogoName[data-v-519a228b]{color:oklch(99% .01 265)}.brandLogoImg--lockup[data-v-519a228b]{object-fit:contain;width:auto;max-width:min(280px,90vw);display:block}.brandLogo--mark[data-v-519a228b]{gap:0}.brandLogo--mark .brandLogoIcon[data-v-519a228b]{max-width:44px}.brandLogo--full .brandLogoName[data-v-519a228b]{font-size:clamp(1.05rem,2.2vw,1.3rem)}.appNavWrap[data-v-a38e7bdd]{padding-top:14px}.appNavWrap--workspace[data-v-a38e7bdd]{padding-top:8px}.pageHeaderTop[data-v-a38e7bdd]{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.navUser[data-v-a38e7bdd]{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.navActions[data-v-a38e7bdd]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.navUserPill[data-v-a38e7bdd]{color:#fff;background:#0f172a;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:13px;text-decoration:none;display:inline-flex}.navUserPill[data-v-a38e7bdd]:hover{opacity:.92}.navAvatar[data-v-a38e7bdd]{object-fit:cover;object-position:center top;border-radius:50%;flex-shrink:0;width:40px;height:40px}.navAvatarFallback[data-v-a38e7bdd]{color:#fff;letter-spacing:.02em;background:#4f46e5;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.backLink[data-v-a38e7bdd]{align-items:center;line-height:0;text-decoration:none;display:inline-flex}.navUserName[data-v-a38e7bdd]{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}@media (width<=639px){.appNavWrap--workspace .pageHeaderTitle[data-v-a38e7bdd]{display:none}.navUser[data-v-a38e7bdd]{flex-direction:column;align-items:stretch;width:100%}.navUserPill[data-v-a38e7bdd]{justify-content:flex-start;max-width:100%}.navActions[data-v-a38e7bdd]{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.navActions .btnCompact[data-v-a38e7bdd]{flex-shrink:0}}.authPage[data-v-44fd587d]{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex;position:relative}.authWrap[data-v-44fd587d]{z-index:2;width:100%;max-width:420px;position:relative}.authCard[data-v-44fd587d]{text-align:center}.authLogo[data-v-44fd587d]{justify-content:center;margin:0 0 20px;display:flex}.authTitle[data-v-44fd587d]{color:var(--fg);margin:0 0 8px;font-size:1.5rem;font-weight:500}.authSub[data-v-44fd587d]{color:var(--muted);margin:0 0 20px;font-size:14px}.authBtn[data-v-44fd587d]{width:100%;padding:14px 20px;font-size:15px}.authHint[data-v-44fd587d]{color:var(--muted);margin:16px 0 0;font-size:12px}.authSpinner[data-v-44fd587d]{border:3px solid #4f46e533;border-top-color:#4f46e5;border-radius:50%;width:48px;height:48px;margin:0 auto 16px;animation:.9s linear infinite spin-44fd587d}@keyframes spin-44fd587d{to{transform:rotate(360deg)}}.authPage[data-v-6f11243d]{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex;position:relative}.authWrap[data-v-6f11243d]{z-index:2;width:100%;max-width:420px;position:relative}.authCard[data-v-6f11243d]{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:220px;display:flex}.authTitle[data-v-6f11243d]{background:linear-gradient(90deg,#4f46e5,#06b6d4);color:#0000;-webkit-background-clip:text;background-clip:text;margin:12px 0 8px;font-size:1.35rem}.authSub[data-v-6f11243d]{color:var(--muted);max-width:28rem;margin:0;font-size:14px;line-height:1.5}.authActions[data-v-6f11243d]{margin-top:16px}.authIcon[data-v-6f11243d]{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:36px;font-weight:600;display:flex}.authIcon.success[data-v-6f11243d]{color:#fff;background:linear-gradient(135deg,#4f46e5,#06b6d4);animation:.45s ease-out scaleIn-6f11243d}.authSpinner[data-v-6f11243d]{border:4px solid #4f46e533;border-top-color:#4f46e5;border-radius:50%;width:56px;height:56px;animation:.9s linear infinite spin-6f11243d}.loadingDots[data-v-6f11243d]{gap:8px;margin-top:20px;display:flex}.loadingDots span[data-v-6f11243d]{background:linear-gradient(90deg,#4f46e5,#06b6d4);border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite both bounce-6f11243d}.loadingDots span[data-v-6f11243d]:first-child{animation-delay:-.32s}.loadingDots span[data-v-6f11243d]:nth-child(2){animation-delay:-.16s}@keyframes spin-6f11243d{to{transform:rotate(360deg)}}@keyframes scaleIn-6f11243d{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes bounce-6f11243d{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.profileCard[data-v-6d65f080]{max-width:520px}.profileTitle[data-v-6d65f080]{margin:0 0 8px;font-size:1.25rem;font-weight:500}.profileIntro[data-v-6d65f080]{color:var(--muted);margin:0 0 20px;font-size:13px;line-height:1.55}.profileSection[data-v-6d65f080]{margin-bottom:20px}.profileSectionTitle[data-v-6d65f080]{color:var(--fg);margin:0 0 12px;font-size:13px;font-weight:500}.profileSection--readonly[data-v-6d65f080]{border:1px solid var(--border);background:#f8fafc;border-radius:12px;padding:14px 16px}.avatarBlock[data-v-6d65f080]{align-items:flex-start;gap:16px;display:flex}.profileAvatar[data-v-6d65f080]{object-fit:cover;border-radius:16px;flex-shrink:0;width:88px;height:88px}.profileAvatarFb[data-v-6d65f080]{color:#fff;letter-spacing:.04em;background:linear-gradient(135deg,#4f46e5,#06b6d4);justify-content:center;align-items:center;font-size:1.25rem;font-weight:600;display:flex}.profileFields[data-v-6d65f080]{flex-direction:column;gap:12px;margin:0;display:flex}.profileField dt[data-v-6d65f080]{color:var(--muted);margin-bottom:2px;font-size:11px}.profileField dd[data-v-6d65f080]{color:var(--fg);word-break:break-word;margin:0;font-size:14px}.lbl[data-v-6d65f080]{color:var(--muted);margin:0 0 6px;font-size:12px;display:block}.inp[data-v-6d65f080]{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:10px 12px}.hint[data-v-6d65f080]{color:var(--muted);margin:6px 0 0;font-size:11px}.profileActions[data-v-6d65f080]{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.msg[data-v-6d65f080]{color:#047857;margin-top:12px;font-size:13px}.msg.err[data-v-6d65f080]{color:#b91c1c}.userSearchPicker[data-v-0a2caf8f]{max-width:480px;position:relative}.lbl[data-v-0a2caf8f]{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.inp[data-v-0a2caf8f]{border:1px solid var(--border);box-sizing:border-box;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.userSearchPicked[data-v-0a2caf8f]{color:var(--muted);margin:8px 0 0;font-size:13px}.userSearchPicked strong[data-v-0a2caf8f]{color:var(--fg);font-weight:500}.userSearchClear[data-v-0a2caf8f]{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:12px;text-decoration:underline}.userSearchList[data-v-0a2caf8f]{border:1px solid var(--border);background:#fff;border-radius:12px;max-height:240px;margin:6px 0 0;padding:4px;list-style:none;overflow-y:auto;box-shadow:0 12px 32px -16px #0f172a59}.userSearchOption[data-v-0a2caf8f]{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.userSearchOption[data-v-0a2caf8f]:hover{background:#eef2ff}.userSearchName[data-v-0a2caf8f]{color:var(--fg);font-size:14px;font-weight:500}.userSearchMeta[data-v-0a2caf8f]{color:var(--muted);font-size:12px}.userSearchEmpty[data-v-0a2caf8f],.userSearchHint[data-v-0a2caf8f]{color:var(--muted);margin:6px 0 0;padding:8px 10px;font-size:12px}.deptAccess[data-v-5526a916]{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.deptAccessTitle[data-v-5526a916]{margin:0 0 4px;font-size:1.15rem}.deptAccessSub[data-v-5526a916]{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.deptRoleBlock[data-v-5526a916]{margin-bottom:20px}.hint[data-v-5526a916]{color:var(--muted);margin:0 0 10px;font-size:12px}.deptCheckGrid[data-v-5526a916]{border:1px solid var(--border);background:#f8fafc;border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:8px;max-height:280px;padding:10px;display:grid;overflow-y:auto}.deptCheck[data-v-5526a916]{cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;display:flex}.deptCheck input[data-v-5526a916]{flex-shrink:0;margin-top:3px}.deptCheckText[data-v-5526a916]{flex-direction:column;gap:2px;min-width:0;display:flex}.deptCheckLabel[data-v-5526a916]{color:var(--fg);font-weight:500}.deptCheckSub[data-v-5526a916]{color:var(--muted);font-size:11px;line-height:1.35}.deptAccessActions[data-v-5526a916]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.okMsg[data-v-5526a916]{color:#047857;font-size:13px}.err[data-v-5526a916]{color:#b91c1c;font-size:13px}.adminHead[data-v-b7b6dd3e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.userTableFilter[data-v-b7b6dd3e]{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.userFilterInp[data-v-b7b6dd3e]{flex:220px;max-width:420px;margin:0}.userFilterCount[data-v-b7b6dd3e]{color:var(--muted);white-space:nowrap;font-size:12px}.tableEmpty[data-v-b7b6dd3e]{text-align:center;color:var(--muted);padding:20px;font-size:14px}.addForm[data-v-b7b6dd3e]{border:1px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;display:flex}.hrSearchWrap[data-v-b7b6dd3e]{flex-direction:column;gap:8px;min-width:0;display:flex}.hrSearchInp[data-v-b7b6dd3e]{box-sizing:border-box;width:100%}.hrDropdown[data-v-b7b6dd3e]{border:1px solid var(--border);background:#fff;border-radius:12px;max-height:220px;margin:0;padding:4px;list-style:none;overflow-y:auto;box-shadow:0 4px 16px #0000000f}.addFormActions[data-v-b7b6dd3e]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tableLoading[data-v-b7b6dd3e]{color:var(--muted);padding:24px}.hrOption[data-v-b7b6dd3e]{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:flex-start;padding:8px 10px;display:flex}.hrOption[data-v-b7b6dd3e]:hover{background:#6366f114}.hrOptionUser[data-v-b7b6dd3e]{color:var(--accent,#4f46e5);font-size:13px;font-weight:600}.hrOptionName[data-v-b7b6dd3e]{font-size:14px}.hrOptionMeta[data-v-b7b6dd3e]{color:var(--muted);font-size:12px}.hrHint[data-v-b7b6dd3e]{color:var(--muted);margin:0;font-size:12px}.hrToolbar[data-v-b7b6dd3e]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.hrGroup[data-v-b7b6dd3e]{margin-bottom:12px}.hrGroupHead[data-v-b7b6dd3e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:0 4px;display:flex}.hrGroupLabel[data-v-b7b6dd3e]{color:var(--text,#1e293b);flex:1;min-width:140px;font-size:13px;font-weight:600}.hrGroupActions[data-v-b7b6dd3e]{flex-wrap:wrap;gap:6px;display:flex}.btnAccent[data-v-b7b6dd3e]{color:var(--accent,#4f46e5);border-color:#6366f159}.hrDropdownGrouped[data-v-b7b6dd3e]{max-height:200px}.hrOptionCheck[data-v-b7b6dd3e]{cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.hrOptionCheck[data-v-b7b6dd3e]:hover{background:#6366f114}.hrOptionCheck input[data-v-b7b6dd3e]{flex-shrink:0;margin-top:4px}.hrOptionBody[data-v-b7b6dd3e]{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.hrOptionExists[data-v-b7b6dd3e]{opacity:.85}.hrBadge[data-v-b7b6dd3e]{color:var(--muted);margin-left:6px;font-size:11px;font-weight:500}.addResult[data-v-b7b6dd3e]{color:#047857;margin:0;font-size:13px}.addFormNote[data-v-b7b6dd3e]{margin:0}.inp[data-v-b7b6dd3e]{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.inpSm[data-v-b7b6dd3e]{padding:4px 8px;font-size:13px}.userTable[data-v-b7b6dd3e]{border-collapse:collapse;width:100%;font-size:14px}.userTable th[data-v-b7b6dd3e],.userTable td[data-v-b7b6dd3e]{text-align:left;border-bottom:1px solid var(--border);padding:10px 8px}.userRowActions[data-v-b7b6dd3e]{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.btnMail[data-v-b7b6dd3e]{color:var(--accent,#4f46e5);border-color:#6366f159}.btnDanger[data-v-b7b6dd3e]{color:#b91c1c;border-color:#fecaca}.err[data-v-b7b6dd3e]{color:#b91c1c;font-size:13px}.emailReminderCard[data-v-b7b6dd3e]{border:1px solid var(--border);background:linear-gradient(#fafbff 0%,#fff 100%);border-radius:14px;margin-bottom:24px;padding:18px 20px}.emailReminderHead[data-v-b7b6dd3e]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.emailReminderTitle[data-v-b7b6dd3e]{margin:0 0 6px;font-size:1.05rem}.emailReminderDesc[data-v-b7b6dd3e]{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.inactiveBadge[data-v-b7b6dd3e]{color:#b45309;white-space:nowrap;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.emailReminderForm[data-v-b7b6dd3e]{flex-wrap:wrap;align-items:flex-end;gap:16px 24px;margin-bottom:14px;display:flex}.emailFieldWide[data-v-b7b6dd3e]{flex:280px;min-width:220px}.emailTaskSelect[data-v-b7b6dd3e]{width:100%;max-width:520px}.emailField[data-v-b7b6dd3e]{align-items:center;gap:10px;font-size:14px;display:flex}.emailDaysInp[data-v-b7b6dd3e]{width:72px;margin:0}.emailToggle[data-v-b7b6dd3e]{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.emailReminderActions[data-v-b7b6dd3e]{flex-wrap:wrap;gap:8px;display:flex}.btnResetBaseline[data-v-b7b6dd3e]{color:#92400e;background:#fffbeb;border-color:#fcd34d}.btnResetBaseline[data-v-b7b6dd3e]:hover:not(:disabled){background:#fef3c7}.reminderMsg[data-v-b7b6dd3e]{color:#047857;margin:12px 0 0;font-size:13px}.reminderMeta[data-v-b7b6dd3e]{color:var(--muted);margin:8px 0 0;font-size:12px}.inactiveList[data-v-b7b6dd3e]{margin-top:16px;font-size:13px}.inactiveList summary[data-v-b7b6dd3e]{cursor:pointer;color:var(--accent,#4f46e5);padding:4px 0;font-weight:600}.inactiveTable[data-v-b7b6dd3e]{border-collapse:collapse;width:100%;margin-top:10px;font-size:13px}.inactiveTable th[data-v-b7b6dd3e],.inactiveTable td[data-v-b7b6dd3e]{text-align:left;border-bottom:1px solid var(--border);padding:8px 6px}.reportPage[data-v-d7eed080]{flex-direction:column;gap:12px;padding-top:14px;padding-bottom:28px;display:flex}.reportState[data-v-d7eed080]{text-align:center;color:var(--muted)}.reportStateErr[data-v-d7eed080]{color:#b91c1c}.reportHeadTop[data-v-d7eed080]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reportSubject[data-v-d7eed080]{align-items:center;gap:12px;min-width:0;display:flex}.reportDeptIcon[data-v-d7eed080]{color:#fff;background:linear-gradient(135deg,#4f46e5,#06b6d4);border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:11px;font-weight:600;display:grid}.reportTitle[data-v-d7eed080]{margin:0;font-size:clamp(1.2rem,4vw,1.6rem);line-height:1.2}.reportMeta[data-v-d7eed080]{color:var(--muted);margin:4px 0 0;font-size:13px}.reportHeadActions[data-v-d7eed080]{flex-wrap:wrap;gap:8px;display:flex}.reportPdfHero[data-v-d7eed080]{flex-direction:column;align-items:center;gap:8px;padding:6px 0 2px;animation:.55s ease-out both reportPdfHeroIn-d7eed080;display:flex}.reportPdfDeptHint[data-v-d7eed080]{color:#7f1d1d;text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin:0;padding:10px 14px;font-size:13px;line-height:1.45}.reportPdfHint[data-v-d7eed080]{color:var(--muted);text-align:center;margin:0;font-size:12px;animation:.55s ease-out .12s both reportPdfHeroIn-d7eed080}@keyframes reportPdfHeroIn-d7eed080{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.reportPdfHero[data-v-d7eed080],.reportPdfHint[data-v-d7eed080]{animation:none}}.reportControls[data-v-d7eed080]{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.reportControl[data-v-d7eed080]{flex-direction:column;flex:180px;gap:6px;min-width:min(100%,180px);max-width:240px;display:flex}.reportControl--wide[data-v-d7eed080]{flex:2 260px;max-width:min(100%,420px)}.reportControlLbl[data-v-d7eed080]{color:var(--muted);letter-spacing:.01em;font-size:12px;font-weight:600}.reportSelectWrap[data-v-d7eed080]{position:relative}.reportSelectWrap[data-v-d7eed080]:after{content:"";pointer-events:none;opacity:.85;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%2364748b' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;width:18px;height:18px;transition:transform .15s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.reportSelectWrap[data-v-d7eed080]:focus-within:after{transform:translateY(-50%)rotate(180deg)}.reportSelect[data-v-d7eed080]{color:#0f172a;cursor:pointer;appearance:none;background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #e2e8f0;border-radius:12px;width:100%;min-height:44px;padding:10px 42px 10px 14px;font-size:14px;line-height:1.35;transition:border-color .15s,box-shadow .15s,background .15s}.reportSelect[data-v-d7eed080]:hover{background:#fff;border-color:#cbd5e1}.reportSelect[data-v-d7eed080]:focus{background:#fff;border-color:#818cf8;outline:none;box-shadow:0 0 0 3px #4f46e51f}.reportSelect[data-v-d7eed080]:disabled{opacity:.65;cursor:not-allowed;background:#f1f5f9}.reportStats[data-v-d7eed080]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.reportStat[data-v-d7eed080]{flex-direction:column;gap:4px;display:flex}.reportStatLabel[data-v-d7eed080]{color:var(--muted);font-size:12px}.reportStatValue[data-v-d7eed080]{color:#0f172a;font-size:1.5rem;line-height:1.1}.reportStatValue--ok[data-v-d7eed080]{color:#047857}.reportStatValue--active[data-v-d7eed080]{color:#4f46e5}.reportStatValue--warn[data-v-d7eed080]{color:#b45309}.reportSectionTitle[data-v-d7eed080]{margin:0 0 12px;font-size:1.05rem}.reportMemberGrid[data-v-d7eed080]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.reportMemberCard[data-v-d7eed080]{text-align:left;cursor:pointer;border:1px solid var(--border);background:var(--card);align-items:center;gap:10px;transition:border-color .15s,box-shadow .15s;display:flex}.reportMemberCard[data-v-d7eed080]:hover{box-shadow:var(--shadow);border-color:#a5b4fc}.reportMemberCardBody[data-v-d7eed080]{min-width:0}.reportMemberName[data-v-d7eed080]{color:#0f172a;font-size:14px;display:block}.reportMemberMeta[data-v-d7eed080]{color:var(--muted);font-size:12px}.reportOverviewGrid[data-v-d7eed080]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.reportOverviewCard[data-v-d7eed080]{text-align:left;cursor:pointer;border:1px solid var(--border);background:var(--card);transition:border-color .15s,box-shadow .15s}.reportOverviewCard[data-v-d7eed080]:hover{box-shadow:var(--shadow);border-color:#a5b4fc}.reportOverviewName[data-v-d7eed080]{color:#0f172a;margin:0 0 4px;font-size:15px}.reportOverviewFac[data-v-d7eed080]{color:var(--muted);margin:0 0 6px;font-size:12px}.reportOverviewMeta[data-v-d7eed080],.reportOverviewStats[data-v-d7eed080]{color:#475569;margin:0;font-size:12px;line-height:1.45}.reportEmpty[data-v-d7eed080]{color:var(--muted);margin:0;font-size:14px}.reportTaskList[data-v-d7eed080]{flex-direction:column;gap:10px;display:flex}.reportTaskHead[data-v-d7eed080]{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.reportTaskName[data-v-d7eed080]{margin:0;font-size:15px;line-height:1.35}.reportPhase[data-v-d7eed080]{color:#4f46e5;margin-left:6px;font-size:11px;font-weight:600}.reportTaskDates[data-v-d7eed080]{color:var(--muted);margin:4px 0 0;font-size:12px}.reportStatus[data-v-d7eed080]{color:#475569;background:#f1f5f9;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.reportStatus--completed[data-v-d7eed080]{color:#047857;background:#d1fae5}.reportStatus--in_progress[data-v-d7eed080]{color:#4338ca;background:#e0e7ff}.reportStatus--overdue[data-v-d7eed080]{color:#c2410c;background:#ffedd5}.reportStatus--not_started[data-v-d7eed080]{color:#64748b;background:#f1f5f9}.reportProgressRow[data-v-d7eed080]{align-items:center;gap:10px;margin-top:10px;display:flex}.reportProgressTrack[data-v-d7eed080]{background:#e2e8f0;border-radius:999px;flex:1;height:8px;overflow:hidden}.reportProgressFill[data-v-d7eed080]{background:linear-gradient(90deg,#4f46e5,#6366f1);border-radius:999px;height:100%;display:block}.reportProgressPct[data-v-d7eed080]{text-align:right;color:#334155;min-width:2.5rem;font-size:12px;font-weight:600}.reportTaskNote[data-v-d7eed080],.reportTaskDesc[data-v-d7eed080],.reportTaskResource[data-v-d7eed080]{color:#475569;margin:8px 0 0;font-size:13px;line-height:1.45}.reportTaskNote[data-v-d7eed080]{color:#334155}.reportTaskLinks[data-v-d7eed080]{flex-wrap:wrap;align-items:flex-start;gap:6px 10px;margin:8px 0 0;display:flex}.reportTaskLinksLbl[data-v-d7eed080]{color:#475569;flex-shrink:0;padding-top:2px;font-size:13px}.reportTaskActions[data-v-d7eed080]{border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:8px;display:flex}.reportHistoryCount[data-v-d7eed080]{color:var(--muted);font-weight:500}.reportHistoryTaskLinks[data-v-d7eed080]{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;align-items:flex-start;gap:6px 10px;padding:0 22px 14px;display:flex}.reportHistoryTaskLinksLbl[data-v-d7eed080]{color:#475569;flex-shrink:0;padding-top:2px}.reportHistoryNoLinks[data-v-d7eed080]{color:var(--muted);margin:0;line-height:1.5}.reportHistoryNoLinks strong[data-v-d7eed080]{color:#334155;font-weight:600}.progressHistoryDetail[data-v-d7eed080] .textWithLinksAnchor,.progressHistoryDetail[data-v-d7eed080] a{pointer-events:auto;z-index:1;position:relative}.reportHistoryModalHead[data-v-d7eed080]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reportHistoryModalActions[data-v-d7eed080]{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}@media (width>=720px){.reportStats[data-v-d7eed080]{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width<=639px){.reportHeadActions[data-v-d7eed080]{width:100%}.reportHeadActions .btn[data-v-d7eed080]{flex:1;justify-content:center}}.shareReportPage[data-v-5fe9b4bc]{background:#e8edf5;flex-direction:column;min-height:100vh;display:flex}.shareReportToolbar[data-v-5fe9b4bc]{z-index:10;background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px;display:flex;position:sticky;top:0}.shareReportTitle[data-v-5fe9b4bc]{margin:0;font-size:1.05rem}.shareReportSubtitle[data-v-5fe9b4bc]{color:var(--muted,#64748b);margin:4px 0 0;font-size:13px}.shareReportActions[data-v-5fe9b4bc]{flex-shrink:0;gap:8px;display:flex}.shareReportState[data-v-5fe9b4bc]{text-align:center;padding:48px 18px;font-size:14px}.shareReportState--error[data-v-5fe9b4bc]{color:#b91c1c}.shareReportPreviewWrap[data-v-5fe9b4bc]{flex:1;padding:18px;overflow:auto}.shareReportPreview[data-v-5fe9b4bc]{background:#fff;border-radius:8px;max-width:794px;margin:0 auto;font-family:Sarabun,Kanit,Noto Sans Thai,sans-serif;overflow:hidden;box-shadow:0 8px 28px #0f172a1f}:root{--g-arrow-color:#1f2937;--g-bar-color:#fff;--g-bar-border:#fff;--g-tick-color-thick:#ededed;--g-tick-color:#f3f3f3;--g-actions-background:#f3f3f3;--g-border-color:#ebeff2;--g-text-muted:#7c7c7c;--g-text-light:#fff;--g-text-dark:#171717;--g-progress-color:#dbdbdb;--g-handle-color:#37352f;--g-weekend-label-color:#dcdce4;--g-expected-progress:#c4c4e9;--g-header-background:#fff;--g-row-color:#fdfdfd;--g-row-border-color:#c7c7c7;--g-today-highlight:#37352f;--g-popup-actions:#ebeff2;--g-weekend-highlight-color:#f7f7f7}html[data-theme=dark]{--g-arrow-color:#e5e5e5;--g-bar-color:#2a2a2a;--g-bar-border:#3a3a3a;--g-tick-color-thick:#1a1a1a;--g-tick-color:#0a0a0a;--g-actions-background:#1a1a1a;--g-border-color:#2a2a2a;--g-text-muted:#999;--g-text-light:#fff;--g-text-dark:#f5f5f5;--g-progress-color:#4a4a4a;--g-handle-color:#d0d0d0;--g-weekend-label-color:#3a3a3a;--g-expected-progress:#5a5a5a;--g-header-background:#0a0a0a;--g-row-color:#141414;--g-row-border-color:#2a2a2a;--g-today-highlight:#999;--g-popup-actions:#1a1a1a;--g-weekend-highlight-color:#0f0f0f}.gantt-container{height:var(--gv-grid-height);isolation:isolate;border-radius:8px;width:100%;font-size:12px;line-height:14.5px;position:relative;overflow:auto}.gantt-container .popup-wrapper{background:var(--g-header-background);z-index:1000;border-radius:5px;width:max-content;padding:10px;position:absolute;top:0;left:0;box-shadow:0 10px 24px -3px #0003}.gantt-container .popup-wrapper .title{color:var(--g-text-dark);margin-bottom:2px;font-size:.85rem;font-weight:650;line-height:15px}.gantt-container .popup-wrapper .subtitle{color:var(--g-text-dark);margin-bottom:5px;font-size:.8rem}.gantt-container .popup-wrapper .details{color:var(--g-text-muted);font-size:.7rem}.gantt-container .popup-wrapper .actions{margin-top:10px;margin-left:3px}.gantt-container .popup-wrapper .action-btn{background-color:var(--g-popup-actions);border:none;border-right:1px solid var(--g-border-color);padding:5px 8px}.gantt-container .popup-wrapper .action-btn:hover{filter:brightness(97%)}.gantt-container .popup-wrapper .action-btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt-container .popup-wrapper .action-btn:last-child{border-right:none;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt-container .grid-header{height:calc(var(--gv-lower-header-height) + var(--gv-upper-header-height) + 10px);background-color:var(--g-header-background);border-bottom:1px solid var(--g-row-border-color);z-index:1000;position:sticky;top:0;left:0}.gantt-container .lower-text,.gantt-container .upper-text{text-anchor:middle}.gantt-container .upper-header{height:var(--gv-upper-header-height)}.gantt-container .lower-header{height:var(--gv-lower-header-height)}.gantt-container .lower-text{width:calc(var(--gv-column-width) * .8);height:calc(var(--gv-lower-header-height) * .8);margin:0 calc(var(--gv-column-width) * .1);text-align:center;color:var(--g-text-muted);align-content:center;font-size:12px;position:absolute}.gantt-container .upper-text{width:fit-content;color:var(--g-text-dark);height:calc(var(--gv-lower-header-height) * .66);font-size:14px;font-weight:500;position:absolute}.gantt-container .current-upper{background:var(--g-header-background);padding-left:17px;position:sticky;left:0!important}.gantt-container .side-header{float:right;z-index:1000;background:var(--g-header-background);width:max-content;margin-left:auto;padding-top:10px;padding-right:10px;font-weight:400;line-height:20px;display:flex;position:sticky;top:0;right:0}.gantt-container .side-header *{background-color:var(--g-actions-background);color:var(--g-text-dark);letter-spacing:.02em;box-sizing:content-box;border:none;border-radius:.5rem;margin-right:5px;padding:5px 8px;font-size:14px;font-weight:420;transition-property:background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.gantt-container .side-header :last-child{margin-right:0}.gantt-container .side-header :hover{filter:brightness(97.5%)}.gantt-container .side-header select{width:60px;padding-top:2px;padding-bottom:2px}.gantt-container .side-header select:focus{outline:none}.gantt-container .date-range-highlight{background-color:var(--g-progress-color);height:calc(var(--gv-lower-header-height) - 6px);top:calc(var(--gv-upper-header-height) + 5px);border-radius:12px;position:absolute}.gantt-container .current-highlight{background:var(--g-today-highlight);z-index:999;width:1px;position:absolute}.gantt-container .current-ball-highlight{background:var(--g-today-highlight);z-index:1001;border-radius:50%;position:absolute}.gantt-container .current-date-highlight{background:var(--g-today-highlight);color:var(--g-text-light);border-radius:5px}.gantt-container .holiday-label{opacity:0;z-index:1000;background:var(--g-weekend-label-color);border-radius:5px;padding:2px 5px;position:absolute;top:0;left:0}.gantt-container .holiday-label.show{opacity:100}.gantt-container .extras{position:sticky;left:0}.gantt-container .extras .adjust{left:8px;top:calc(var(--gv-grid-height) - 60px);background-color:var(--g-actions-background);color:var(--g-text-light);border:none;border-radius:3px;padding:8px;position:absolute}.gantt-container .hide{display:none}.gantt{-webkit-user-select:none;user-select:none;position:absolute}.gantt .grid-background{fill:none}.gantt .grid-row{fill:var(--g-row-color)}.gantt .row-line{stroke:var(--g-border-color)}.gantt .tick{stroke:var(--g-tick-color);stroke-width:.4px}.gantt .tick.thick{stroke:var(--g-tick-color-thick);stroke-width:.7px}.gantt .arrow{fill:none;stroke:var(--g-arrow-color);stroke-width:1.5px}.gantt .bar-wrapper .bar{fill:var(--g-bar-color);stroke:var(--g-bar-border);stroke-width:0;transition:stroke-width .3s}.gantt .bar-progress{fill:var(--g-progress-color);border-radius:4px}.gantt .bar-expected-progress{fill:var(--g-expected-progress)}.gantt .bar-invalid{fill:#0000;stroke:var(--g-bar-border);stroke-width:1px;stroke-dasharray:5}:is(.gantt .bar-invalid)~.bar-label{fill:var(--g-text-light)}.gantt .bar-label{fill:var(--g-text-dark);dominant-baseline:central;font-family:Helvetica;font-size:13px;font-weight:400}.gantt .bar-label.big{fill:var(--g-text-dark);text-anchor:start}.gantt .handle{fill:var(--g-handle-color);opacity:0;transition:opacity .3s}.gantt .handle.active,.gantt .handle.visible{cursor:ew-resize;opacity:1}.gantt .handle.progress{fill:var(--g-text-muted)}.gantt .bar-wrapper{cursor:pointer}.gantt .bar-wrapper .bar{outline:1px solid var(--g-row-border-color);border-radius:3px}.gantt .bar-wrapper:hover .bar{transition:transform .3s}.gantt .bar-wrapper:hover .date-range-highlight{display:block}.gantt .grid-column{fill:#0000;pointer-events:all}.gantt .grid-column:hover{fill:var(--g-weekend-highlight-color);transition:fill .1s}:root{--bg:#f8fafc;--fg:#0f172a;--muted:#64748b;--card:#fff;--border:#e2e8f0;--shadow:0 1px 2px #0f172a0d, 0 12px 32px #0f172a14;--brand:#4f46e5;--brand-hover:#4338ca;--brand-soft:#eef2ff;--accent:#06b6d4;--accent-soft:#ecfeff;--indigo:#4f46e5;--violet:#6366f1;--violet-soft:#ede9fe;--cyan:#06b6d4;--cyan-soft:#cffafe;--status-done:#059669;--status-done-soft:#d1fae5;--status-warn:#d97706;--status-warn-soft:#fef3c7;--status-bad:#dc2626;--status-bad-soft:#fee2e2;--radius:10px;--radius-lg:14px;font-family:Kanit,system-ui,sans-serif;font-weight:300}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{max-width:100%;height:100%;font-family:Kanit,sans-serif;font-weight:300;overflow-x:hidden}.btnLanding{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:42px;padding:10px 18px;font-size:14px;font-weight:400;text-decoration:none;transition:filter .15s,background .15s;display:inline-flex}.btnLanding:hover{filter:brightness(1.02)}.btnLandingPrimary{background:var(--brand);color:#fff;box-shadow:0 1px 2px #4f46e540}.btnLandingPrimary:hover{background:var(--brand-hover)}.btnLandingGhost{background:var(--card);border-color:var(--border);color:var(--brand)}body{background:var(--bg);color:var(--fg);margin:0}img,svg,video{max-width:100%;height:auto}.gantt-wrap .gantt-container svg{max-width:none!important}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.appShell{flex-direction:column;min-height:100%;display:flex}.appShell:has(.pageShell--gantt){min-height:100dvh}.appShell:has(.pageShell--gantt)>.pageShell--gantt{flex-direction:column;flex:auto;min-height:0;display:flex}.appShell:has(.pageShell--gantt) .appFooter{flex-shrink:0}.appFooter{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);background:#ffffffb3;justify-content:center;align-items:center;gap:8px;margin-top:auto;padding:10px 16px;font-size:12px;display:flex}.appFooter .brand{color:var(--fg)}.footerBrand{color:var(--fg);align-items:center;gap:8px;line-height:1;display:inline-flex}.footerBrand:hover{color:var(--brand)}.appFooter .muted{color:#334155}.appFooter .sep{opacity:.5}.shellBgGlow{pointer-events:none;position:absolute;inset:0;overflow:hidden}.glow1,.glow2{filter:blur(72px);opacity:.35;border-radius:9999px;position:absolute}.glow1{background:#6366f166;width:320px;height:320px;top:80px;left:-120px}.glow2{background:#06b6d447;width:360px;height:360px;top:120px;right:-140px}.container{z-index:1;width:100%;max-width:1120px;margin:0 auto;padding:18px 16px 28px;position:relative}.card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow);min-width:0}.cardPad{padding:14px 16px}.cardPadLg{padding:22px}.pageShell{min-height:100vh;position:relative;overflow-x:clip}.pageShell--gantt{background:var(--bg);flex-direction:column;flex:auto;min-height:0;display:flex}.pageShell--gantt>.appNavWrap{flex-shrink:0}.pageShell--gantt .appNavWrap.container,.pageShell--gantt .container--gantt{width:100%;max-width:none}.container--gantt{flex-direction:column;flex:1;min-height:0;padding:8px 12px 14px;display:flex}.pageShell--gantt .ganttStack{flex:auto;min-height:0;overflow:visible}.pageShell--gantt .ganttStack>.ganttPanel--toolbar,.pageShell--gantt .ganttStack>.ganttPanel:not(.ganttPanel--chart){flex-shrink:0}.pageShell--gantt .ganttPanel--resources{flex-direction:column;flex-shrink:0;display:flex;overflow:visible}.pageShell--gantt .ganttPanel--resources .resourceRow{flex:none;overflow:visible}.pageShell--gantt .ganttPanel--chart{flex-direction:column;flex:none;align-self:stretch;width:100%;min-height:320px;display:flex;overflow:visible}.pageShell--gantt .gantt-viewport{flex:none;align-self:stretch;width:100%;min-height:280px;overflow:auto}.pageShell--gantt .gantt-scaler{width:100%;min-width:0}@media (width>=900px){.container--gantt{padding:10px 20px 18px}}.pageHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pageHeaderMain{flex-wrap:wrap;flex:12rem;align-items:center;gap:10px 14px;min-width:0;display:flex}.pageHeaderTitle{word-break:break-word;font-size:clamp(.85rem,2.5vw,1rem);line-height:1.4}.backLink{color:var(--brand);white-space:nowrap;font-size:13px}.heroGrid{grid-template-columns:1fr;gap:18px;display:grid}.heroTitle{letter-spacing:-.04em;margin:12px 0 10px;font-size:clamp(1.75rem,6vw,2.75rem);line-height:1.1}.howGrid{grid-template-columns:1fr;gap:10px;display:grid}.ganttStack{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:0;display:flex}.ganttPanel{background:#ffffffe6;min-width:0;padding:14px}.ganttPanel--toolbar{flex-shrink:0;padding:10px 12px}.ganttPanel--chart{flex-direction:column;flex:none;min-height:320px;padding:10px 12px;display:flex;overflow:visible}.ganttPanel--chart .ganttChartHead{flex-shrink:0}.ganttToolbar{flex-direction:column;gap:8px;display:flex}.ganttToolbarRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.ganttToolbarRow--controls{justify-content:flex-end}.ganttToolbarRow--controls .viewModeGroup{flex:1;min-width:0}.ganttToolbarRow--controls .viewModeGroup .btn{flex:1;justify-content:center}.fieldHint{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.collabPicker{box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;gap:8px;width:100%;min-height:88px;max-height:160px;padding:10px;display:flex;overflow-y:auto}.collabPicker.collabPicker--list,.modalCardBody .collabPicker{flex-flow:column;flex-shrink:0;align-items:stretch;gap:8px;min-height:160px;max-height:min(280px,38vh);display:flex}.collabPicker.collabPicker--list .collabOption,.modalCardBody .collabPicker .collabOption{box-sizing:border-box;flex-shrink:0;width:100%;min-height:48px;padding:10px 14px;font-size:16px;display:flex}.collabOption{cursor:pointer;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:16px;font-weight:400;display:inline-flex}.collabOption input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);flex-shrink:0}.collabOptionText{color:#0f172a;-webkit-text-fill-color:#0f172a;font-weight:400;line-height:1.35}.collabReadonly{flex-wrap:wrap;gap:6px;display:flex}.collabTag{color:#3730a3;background:#eef2ff;border-radius:999px;padding:4px 10px;font-size:12px}.addTaskActions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.progressHistoryBlock{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:4px;padding:10px 12px}.progressHistoryHead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.progressHistoryHeadActions{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0;max-width:100%;display:flex}.modalCardHeadRow{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.modalCardHeadRow>div:first-child{flex:auto;min-width:0}.modalCardBody{min-width:0}.progressHistoryBlock{min-width:0;overflow-x:hidden}.progressHistoryDetail{overflow-wrap:anywhere;word-break:break-word}.progressHistoryDetail :deep(a){overflow-wrap:anywhere;word-break:break-word}.progressHistoryList{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.progressHistoryList--modal{margin-top:12px}.progressHistoryDate,.progressHistoryBy{color:var(--muted);font-size:12px}.progressHistoryDetail a,.taskLinkList a{pointer-events:auto;cursor:pointer}.progressHistoryImageBtn{cursor:zoom-in;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;width:56px;height:56px;padding:0;transition:border-color .15s,box-shadow .15s;display:block;overflow:hidden}.progressHistoryImageBtn:hover{border-color:#818cf8;box-shadow:0 0 0 3px #6366f126}.modalOverlay{z-index:2000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modalOverlay--persistent{z-index:2000}.modalCard{background:#fff;border:1px solid #e2e8f0e6;border-radius:24px;width:100%;max-width:min(920px,96vw);max-height:min(92vh,100%);padding:22px;font-size:16px;overflow-y:auto;box-shadow:0 28px 70px -40px #0f172a8c}.modalCard--flex{flex-direction:column;min-width:0;padding:0;display:flex;overflow:hidden}.modalCardTitle{color:var(--fg);margin:0 0 14px;font-size:clamp(1.3rem,4vw,1.75rem);font-weight:700;line-height:1.3}.modalCardSubtitle{color:var(--muted);margin:4px 0 0;font-size:16px;line-height:1.45}.modalCardHead{border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:18px 22px 14px}.modalCardBody{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:16px 22px;overflow:hidden auto}.modalCard .lbl,.modalCardBody .lbl,.addTaskForm .lbl{color:#475569;font-size:15px;font-weight:600}.modalCard .fieldHint,.modalCardBody .fieldHint,.addTaskForm .fieldHint{font-size:14px;line-height:1.5}.modalCard .fieldError,.modalCardBody .fieldError,.addTaskForm .fieldError{font-size:14px}.modalCard .inp,.modalCardBody .inp,.addTaskForm .inp{border-radius:14px;padding:12px 14px;font-size:16px}.modalCard .inpArea,.modalCardBody .inpArea,.addTaskForm .inpArea{min-height:88px;font-size:16px;line-height:1.55}.modalCard .btn,.modalCardFoot .btn,.addTaskActions .btn{min-height:46px;padding:11px 18px;font-size:15px}.modalCard .btnCompact{min-height:40px;font-size:14px}.modalCheckboxRow{color:#334155;cursor:pointer;align-items:center;gap:10px;font-size:16px;display:flex}.modalCheckboxRow input{flex-shrink:0;width:18px;height:18px}.modalCard .taskLinks .lbl,.modalCard .taskLinks .inp,.modalCard .taskLinksAdd{font-size:15px}.modalCard .taskLinks .inp,.modalCard .hrPickerInp,.modalCard .hrPickerPicked,.modalCard .hrPickerOption,.modalCard .hrPickerName{font-size:16px}.modalCard .hrPickerMeta,.modalCard .hrPickerDetailLbl,.modalCard .progressImages .lbl,.modalCard .progressImages .fieldHint,.modalCard .progressImagesDropTitle,.modalCard .progressImagesPasteInput{font-size:14px}.modalCard .progressImagesPasteInput{font-size:15px}.editTaskForm{flex-direction:column;align-items:stretch;gap:14px;display:flex}.addTaskForm{gap:14px;display:grid}.editCollabSection{flex-direction:column;flex-shrink:0;gap:6px;min-height:0;display:flex}.modalCardFoot{background:#fff;border-top:1px solid #e2e8f0;border-radius:0 0 24px 24px;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px 18px;display:flex}.modalCardFootActions{flex-wrap:wrap;gap:10px;margin-left:auto;display:flex}.reportHistoryTitle{margin:0;font-size:clamp(1.3rem,4vw,1.65rem);font-weight:700;line-height:1.3}.reportHistorySubtitle{color:#334155;margin:4px 0 0;font-size:16px;font-weight:500}.progressHistoryBlock .lbl{color:#334155;font-size:16px;font-weight:700}.progressHistoryList{flex-direction:column;gap:12px;max-height:min(32vh,280px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.progressHistoryList--modal{max-height:min(65vh,560px)}.progressHistoryItem{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px}.progressHistoryMeta{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:16px;display:flex}.progressHistoryMeta strong{font-size:18px}.progressHistoryDate,.progressHistoryBy{color:var(--muted);font-size:15px}.progressHistoryDetail{color:#334155;white-space:pre-wrap;margin:8px 0 0;font-size:16px;line-height:1.55}.progressHistoryDetail--muted{color:var(--muted);font-style:italic}.progressHistoryImages{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.progressHistoryImageBtn{cursor:zoom-in;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;width:68px;height:68px;padding:0;display:block;overflow:hidden}.progressHistoryImage{object-fit:cover;width:100%;height:100%;display:block}.reportHistoryModal .fieldHint{font-size:15px}.reportHistoryTaskLinksLbl{font-size:15px;font-weight:600}.reportHistoryNoLinks{font-size:14px}body:has(.modalOverlay--persistent){overflow:hidden}@media (width<=640px){.modalOverlay{align-items:center;padding:8px}.modalCard{border-radius:18px;max-width:100%}.modalCardHead{padding:14px 14px 12px}.modalCardHeadRow{flex-wrap:wrap}.modalCardBody{padding:12px 14px}.modalCardFoot:not(.editTaskModalFoot){flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px 14px}.modalCardFoot:not(.editTaskModalFoot)>.btn{justify-content:center;width:100%}.modalCardFootActions{flex-direction:column;width:100%;margin-left:0}.modalCardFoot:not(.editTaskModalFoot) .modalCardFootActions{flex-direction:column}.modalCardFoot:not(.editTaskModalFoot) .modalCardFootActions .btn{justify-content:center;width:100%}.modalCard--editTask .editTaskModalFootMain .btn{justify-content:center;width:auto}.editTaskTabs{padding:8px 10px 0}.editTaskTab{padding:10px 8px;font-size:15px}.formDates{grid-template-columns:1fr}.addTaskModal .modalCardFootActions{flex-direction:row}.addTaskModal .modalCardFootActions .btn{flex:1 1 0;min-width:0}.reportHistoryModalHead{flex-wrap:wrap}}.ganttToolbarRow--meta{align-items:stretch}.ganttProjectPill{flex:auto;min-width:0}.ganttTasksPill{flex-shrink:0}.ganttToolbarMain{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.viewModeGroup{background:#f1f5f9;border-radius:14px;flex-shrink:0;gap:6px;padding:6px;display:inline-flex}.pillMeta{cursor:default;min-width:0;max-width:100%}.pillMeta strong{font-weight:inherit}.pillMetaText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.resourceToolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.resourceRow{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.resourcePill{flex-shrink:0;max-width:100%}.resourcePill .resourcePillName,.resourcePill span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.avatarDot{border:1px solid #ffffffe6;border-radius:999px;flex-shrink:0;width:12px;height:12px;box-shadow:0 0 0 1px #0f172a1a}.ganttChartHead{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:8px;display:flex}.ganttChartHead .viewModeGroup{flex-shrink:0}.ganttZoomBar{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.ganttZoomLabel{text-align:center;min-width:3.25rem;color:var(--muted);font-size:12px;font-weight:500}.ganttTip{color:var(--muted);margin-bottom:8px;font-size:12px;line-height:1.5}.gantt-viewport{cursor:grab;scrollbar-width:thin;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;flex:1;justify-content:flex-start;align-items:flex-start;min-width:0;min-height:0;display:flex;overflow:hidden auto}.gantt-viewport.gantt-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-scaler{flex-shrink:0;width:100%;min-width:0;position:relative}.gantt-day-ui-layer{pointer-events:none;z-index:1000;transform-origin:0 0;position:absolute;top:0;left:0}.gantt-wrap{width:max-content;min-width:0;max-width:none;overflow:visible}.gantt-wrap--fit .gantt-container{overflow:hidden auto!important}.gantt-wrap--fit.gantt-wrap--scroll .gantt-container{scrollbar-width:thin;cursor:grab;touch-action:pan-x pan-y;width:100%;max-width:100%;overflow:auto!important}.gantt-viewport--show-all-rows .gantt-wrap--scroll .gantt-container{overflow:auto visible!important}.gantt-wrap .gantt .bar-wrapper .handle,.gantt-wrap .gantt .bar-wrapper .bar-progress{pointer-events:none!important}.gantt-wrap .gantt .bar-wrapper.gantt-bar-main .bar,.gantt-wrap .gantt .bar-wrapper.gantt-bar-sub .bar{cursor:pointer}.gantt-wrap--fit.gantt-wrap--scroll .gantt-container.gantt-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-wrap--fit.gantt-wrap--scroll .gantt-container.gantt-panning *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.gantt-wrap .gantt .bar-wrapper{cursor:pointer}.gantt-wrap .gantt .bar-wrapper .handle{cursor:ew-resize}.gantt-wrap .gantt-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;min-width:0;max-width:100%;box-shadow:0 4px 24px -8px #4f46e51f}.gantt-wrap--fit.gantt-wrap--scroll{width:100%;max-width:100%}.gantt-wrap .gantt,.gantt-wrap .gantt .bar-label,.gantt-wrap .gantt .upper-text,.gantt-wrap .gantt .lower-text{font-family:Kanit,sans-serif;font-weight:300}.gantt-wrap .gantt .bar-label{dominant-baseline:central;alignment-baseline:central;text-anchor:start;pointer-events:none;visibility:visible;stroke:none;paint-order:normal;font-size:12px;font-weight:500;fill:#fff!important}.gantt-wrap .gantt .bar-wrapper{overflow:visible}.gantt-wrap .gantt-container>svg.gantt{position:absolute;top:0;left:0}.gantt-wrap .gantt .bar-label.big{text-anchor:start;fill:#fff!important}.gantt-wrap .gantt .bar-img,.gantt-wrap .gantt .img_mask{pointer-events:none}.gantt-wrap .gantt .bar-img{isolation:isolate}.gantt-wrap .gantt .img_mask{fill:#fff;stroke:#fff;stroke-width:2px}.gantt-wrap .gantt .lower-text{fill:#475569;font-size:11px;font-weight:500}.gantt-wrap .gantt .upper-text{fill:#1e293b;font-size:13px;font-weight:600}.gantt-wrap .gantt-container{position:relative}.gantt-wrap .gantt .bar-wrapper.gantt-day-anchor,.gantt-wrap .gantt .bar-wrapper.gantt-day-anchor .bar,.gantt-wrap .gantt .bar-wrapper.gantt-day-anchor .bar-progress{visibility:hidden!important;pointer-events:none!important}.gantt-day-labels{pointer-events:none;z-index:9999;position:absolute;top:0;left:0}.gantt-day-label-tag{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;color:#fff;text-shadow:0 1px 2px #0f172ab3;pointer-events:none;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:flex;position:absolute;overflow:hidden}.gantt-today-marker{z-index:9998;pointer-events:none;background:#0f172a;width:3px;position:absolute;box-shadow:0 0 0 1px #ffffffd9}.gantt-viewport--day .gantt-wrap--fit.gantt-wrap--scroll .gantt-container{overflow-x:auto!important}.gantt-viewport--day .gantt-wrap .gantt .bar-label{font-size:12px;font-weight:600;opacity:1!important;fill:#fff!important}.gantt-wrap .lower-text.gantt-today-head{background:#0f172a;border-radius:6px;padding:2px 6px;color:#fff!important;font-weight:700!important}.gantt-wrap .gantt-container .current-highlight{pointer-events:none;margin-left:-1px;z-index:8!important;background:#0f172a0f!important;border-left:2px solid #0f172a!important}.gantt-wrap .current-ball-highlight{z-index:1010;border-radius:50%;background:#0f172a!important}.gantt-wrap .lower-text.gantt-today-head,.gantt-wrap .current-date-highlight{fill:#0f172a!important;font-weight:700!important}.gantt-wrap .gantt .bar-progress{opacity:1}.gantt-wrap .gantt .bar-wrapper.gantt-bar-main .bar,.gantt-wrap .gantt .bar-wrapper.gantt-bar-sub .bar{opacity:1;cursor:pointer}.gantt-wrap .gantt .bar-wrapper.gantt-bar-main .handle,.gantt-wrap .gantt .bar-wrapper.gantt-bar-sub .handle{display:none}.gantt-viewport--calendar .gantt .bar-wrapper.gantt-calendar-spacer,.gantt-viewport--calendar .gantt .bar-wrapper.gantt-calendar-spacer .bar,.gantt-viewport--calendar .gantt .bar-wrapper.gantt-calendar-spacer .bar-progress,.gantt-viewport--calendar .gantt .bar-wrapper.gantt-calendar-spacer .handle{visibility:hidden!important;pointer-events:none!important}.gantt-viewport--calendar .gantt .grid-row{fill:#fff}.gantt-viewport--calendar .gantt .grid-row:nth-child(2n){fill:#fafbfc}.gantt-viewport--calendar .gantt .row-line,.gantt-viewport--calendar .gantt .tick{stroke:#e2e8f0}.gantt-viewport--calendar .gantt .grid-header{fill:#f8fafc}.btnDanger{color:#b91c1c;background:#fef2f2;border-color:#ef444459}.btnDanger:hover{background:#fee2e2}#app{min-width:0;min-height:100%}.btn{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;min-height:44px;padding:10px 14px;font-size:13px;transition:all .15s}.btn:hover{border-color:#cbd5e1}.btnPrimary{background:var(--brand);color:#fff;border-color:#0000}.btnPrimary:hover{background:var(--brand-hover)}.btnCompact{min-height:38px;padding:8px 12px;font-size:12px}.pill{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fffc;border-radius:999px;align-items:center;gap:10px;max-width:100%;min-height:44px;padding:6px 10px;font-size:12px;display:inline-flex}.pill.active{outline:2px solid #4f46e559}.pillStatic{cursor:default}.avatar{background-position:50%;background-size:cover;border:1px solid #ffffffbf;border-radius:999px;flex-shrink:0;width:28px;height:28px}@media (width>=640px){.howGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.resourcePill .resourcePillName,.resourcePill span:last-child{max-width:none}}@media (width>=900px){.container{padding:18px 20px 28px}.heroGrid{grid-template-columns:1.6fr 1fr}}@media (width<=639px){.container{padding:10px 10px 16px}.container--gantt{padding:6px 10px 12px}.card{border-radius:14px}.cardPad{padding:10px 12px}.cardPadLg{padding:14px}.pageHeader{flex-direction:column;align-items:stretch;gap:8px}.pageHeader .pill{justify-content:flex-start}.ganttPanel--toolbar,.ganttPanel--chart{padding:8px 10px}.ganttToolbarRow--meta{flex-direction:column}.ganttTasksPill{align-self:flex-start}.ganttTip{margin-bottom:6px;font-size:11px;line-height:1.4}.ganttStack{gap:6px}.pageShell--gantt .gantt-viewport{border-radius:10px;flex:1 1 0;min-height:200px;overflow-y:auto}.pageShell--gantt .ganttPanel--chart{flex:1 1 0;min-height:0}.gantt-viewport--narrow .gantt-wrap--fit.gantt-wrap--scroll .gantt-container{-webkit-overflow-scrolling:touch}.ganttChartHead{margin-bottom:4px}.ganttZoomBar{flex-shrink:0;justify-content:flex-end}.ganttZoomBar .btnCompact{min-height:32px;padding:4px 8px;font-size:12px}.ganttZoomLabel{min-width:2.5rem;font-size:11px}.viewModeGroup{gap:4px;width:100%;padding:4px}.ganttToolbar{gap:6px}.ganttPanel,.ganttPanel--toolbar{padding:8px 10px}.resourceToolbar{gap:6px;margin-bottom:4px}.resourceToolbar .pillStatic{justify-content:flex-start;width:100%}.resourceToolbar .btn{min-height:34px;padding:5px 10px;font-size:12px}.resourceRow{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 -2px;padding-bottom:4px;overflow-x:auto}.resourcePill{flex-shrink:0;width:auto;max-width:none}.resourcePill .resourcePillName,.resourcePill span:last-child{max-width:none}.resourcePill :deep(.resourceAvatar){width:30px;height:30px}.pill{min-height:34px;padding:6px 10px;font-size:11px}.appFooter{flex-wrap:wrap;padding:10px 12px;font-size:11px}}@media (orientation:landscape) and (height<=520px){.pageShell--gantt .container--gantt{padding:4px 8px 6px}.pageShell--gantt .ganttStack{gap:4px}.pageShell--gantt .ganttPanel--toolbar,.pageShell--gantt .ganttPanel--resources{padding:4px 8px}.pageShell--gantt .ganttPanel--resources .resourceRow{flex-wrap:wrap;overflow:visible}.pageShell--gantt .ganttPanel--chart{min-height:200px;padding:4px 8px}.pageShell--gantt .gantt-viewport{min-height:160px}}
