.favorite-menu-label{display:inline-flex;width:100%;min-width:0;align-items:center;gap:4px;vertical-align:middle}.favorite-menu-label__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.favorite-menu-star{display:inline-flex;flex:0 0 26px;width:26px;height:28px;padding:0;align-items:center;justify-content:center;border:0;border-radius:5px;background:transparent;color:inherit;opacity:.6;cursor:pointer;font:inherit}.favorite-menu-star.is-favorite{color:#f5c451;opacity:1}.favorite-menu-star:hover{background:#94a3b82e;opacity:1}.favorite-menu-star:disabled{cursor:wait;opacity:.4}.favorite-menu-star:focus-visible{outline:2px solid #4096ff;outline-offset:-2px;opacity:1}.favorite-menu-label .favorite-menu-star .anticon{margin:0;font-size:14px}.sidebar-favorites{--favorite-text: #dbe4f1;--favorite-muted: #99a7bb;--favorite-line: rgba(148, 163, 184, .18);margin:0 10px 8px;padding:10px 0 12px;border-bottom:1px solid var(--favorite-line);color:var(--favorite-text);font-size:13px}.sidebar-favorites--light{--favorite-text: #334155;--favorite-muted: #64748b;--favorite-line: #e8edf3}.sidebar-favorites--popup{width:min(300px,calc(100vw - 112px));margin:0;padding:0;border:0}.sidebar-favorites__heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 6px;min-height:30px}.sidebar-favorites__heading>span{display:inline-flex;align-items:center;gap:7px;font-weight:600}.sidebar-favorites__heading>span>.anticon{color:#f5c451}.sidebar-favorites__heading small{color:var(--favorite-muted);font-size:11px;font-weight:400}.sidebar-favorites__edit{border:0;border-radius:4px;background:transparent;color:var(--favorite-muted);padding:4px;font-size:12px;cursor:pointer}.sidebar-favorites__edit:hover{color:var(--favorite-text);background:var(--favorite-line)}.sidebar-favorites__edit:disabled{cursor:wait;opacity:.5}.sidebar-favorites__list{list-style:none;margin:0;padding:0;max-height:min(36vh,360px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.sidebar-favorites__row{display:flex;align-items:center;min-height:36px;gap:2px;border-radius:5px;padding:0 3px}.sidebar-favorites__row:hover{background:var(--favorite-line)}.sidebar-favorites__row.is-dragging{opacity:.5}.sidebar-favorites__row.is-drop-target{box-shadow:inset 0 2px #4096ff}.sidebar-favorites__drag{cursor:grab;color:var(--favorite-muted);flex:0 0 12px}.sidebar-favorites__link{display:flex;align-items:center;flex:1;min-width:0;gap:7px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:8px 5px}.sidebar-favorites__link>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-favorites__icon{flex:0 0 auto;color:var(--favorite-muted)}.sidebar-favorites__order{display:flex;flex:0 0 auto;gap:1px}.sidebar-favorites__order button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:4px;background:transparent;color:inherit;width:23px;height:28px;cursor:pointer}.sidebar-favorites__order button:hover{background:var(--favorite-line)}.sidebar-favorites__order button:disabled{opacity:.25;cursor:default}.sidebar-favorites__empty,.sidebar-favorites__hint{display:flex;align-items:center;gap:8px;padding:7px 8px;color:var(--favorite-muted);font-size:12px;line-height:1.5}.sidebar-favorites__hint{font-size:11px}.sidebar-favorites__error{margin:0 4px 5px;padding:8px;background:#ff4d4f1a;color:#ff7875;font-size:12px;line-height:1.5;border-radius:5px}.sidebar-favorites--light .sidebar-favorites__error{color:#cf1322}.sidebar-favorites__error button{display:block;margin-top:4px;border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.sidebar-favorites__error button:disabled{opacity:.5;cursor:wait}.sidebar-favorites button:focus-visible{outline:2px solid #4096ff;outline-offset:-2px;border-radius:4px}.sidebar-favorites-collapsed{margin:0 12px 8px;padding:6px 0 10px;border-bottom:1px solid rgba(148,163,184,.18);text-align:center}.sidebar-favorites-collapsed__button{position:relative;width:40px;height:36px;border:0;border-radius:6px;color:#f5c451;background:transparent;cursor:pointer;font-size:17px}.sidebar-favorites-collapsed__button:hover{background:#94a3b82e}.sidebar-favorites-collapsed__button:focus-visible{outline:2px solid #4096ff}.sidebar-favorites-collapsed__button.has-error:after{content:"";position:absolute;right:6px;top:5px;width:6px;height:6px;border-radius:50%;background:#ff4d4f}@media(max-width:767px){.favorite-menu-star{flex-basis:34px;width:34px;height:36px}.sidebar-favorites__row{min-height:44px}.sidebar-favorites__order button{width:32px;height:36px}.sidebar-favorites__list{max-height:30vh}}.calendar-recurrence-options{margin-top:12px;padding:14px;border:1px solid #e5e7eb;border-radius:10px;background:#fafbfc;display:flex;flex-direction:column;gap:14px}.calendar-repeat-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:16px;height:16px;flex:0 0 16px}.calendar-repeat-icon svg{display:block;width:100%;height:100%}.calendar-event-label-overlay-item .calendar-repeat-icon{margin-left:4px;width:14px;height:14px;flex-basis:14px}.calendar-series-notice{margin-bottom:16px}.calendar-recurrence-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.calendar-recurrence-caption{display:block;margin-bottom:8px}.calendar-recurrence-weekdays{display:flex;flex-wrap:wrap;gap:10px 12px}.calendar-recurrence-weekdays .ant-checkbox-wrapper{margin-inline-start:0;margin-inline-end:0}.calendar-recurrence-end{margin-top:10px}.calendar-schedule-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.calendar-schedule-drawer .ant-drawer-header{flex-wrap:wrap;gap:12px}.calendar-schedule-drawer .ant-drawer-header-title{flex:1 0 120px}.responsive-drawer.calendar-schedule-drawer .ant-drawer-extra{width:auto;max-width:100%;margin-inline-start:auto}.responsive-drawer.calendar-schedule-drawer .ant-drawer-extra .ant-btn{width:auto}@media(max-width:575px){.calendar-schedule-drawer .calendar-schedule-actions{gap:6px}.calendar-schedule-drawer .calendar-schedule-actions .ant-btn{padding-inline:8px}}*{box-sizing:border-box}body{margin:0;min-width:0;background:#f4f6f9;color:#1f2937;letter-spacing:0}html,body,#root{width:100%;min-height:100%;overflow-x:hidden}:root{--page-padding: 24px;--card-gap: 14px}.portal-shell{min-height:100vh;min-width:0}.portal-sider{box-shadow:4px 0 18px #0f172a1f}.portal-collapsed-menu-popup{padding-left:8px}.portal-collapsed-menu-popup .ant-menu{min-width:236px!important;max-width:min(320px,calc(100vw - 104px));padding:6px!important;border:1px solid #e8edf3!important;border-radius:9px!important;background:#fff!important;box-shadow:0 12px 32px #0f172a33}.portal-collapsed-menu-popup .ant-menu-item{width:100%;height:40px;margin:1px 0;padding-inline:10px!important;border-radius:6px;color:#334155!important;line-height:40px}.portal-collapsed-menu-popup .ant-menu-item-group-title{margin:0 4px 4px;padding:8px 6px 9px;border-bottom:1px solid #e8edf3;color:#0f172a!important;font-size:13px;font-weight:700;line-height:20px}.portal-collapsed-menu-popup .ant-menu-item-group-list{margin:0}.portal-collapsed-menu-popup .ant-menu-item:hover{background:#f1f5f9!important;color:#1677ff!important}.portal-collapsed-menu-popup .ant-menu-item-selected{background:#eaf3ff!important;color:#1677ff!important}.portal-collapsed-menu-popup .favorite-menu-label__text{white-space:nowrap}.portal-collapsed-menu-icon{display:inline-flex;align-items:center;justify-content:center}.portal-brand{height:64px;display:flex;align-items:center;justify-content:center;padding:0 14px;background:#172033;border-bottom:1px solid rgba(255,255,255,.1)}.portal-brand-link,.portal-brand-link:hover,.portal-brand-link:visited{color:inherit;text-decoration:none}.portal-brand-link:focus-visible{outline:2px solid #60a5fa;outline-offset:-3px}.portal-brand-mark{width:32px;height:32px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:#2fb344;color:#fff;font-weight:800}.brand-lockup{display:inline-flex;align-items:center;justify-content:center;gap:12px;max-width:100%;min-width:0;vertical-align:middle}.brand-lockup__logo{display:block;width:104px;height:auto;max-width:100%;object-fit:contain;flex:0 0 auto}.brand-lockup__title{display:block;padding-left:12px;border-left:1px solid #dce3ec;color:#153859;font-size:18px;font-weight:700;line-height:1.2;letter-spacing:-.6px;white-space:nowrap}.brand-lockup--sidebar .brand-lockup__title{color:#f1f5f9;border-left-color:#ffffff2e}.super-admin-sider .portal-brand{background:#111827}.ant-layout-sider-collapsed .portal-brand{padding-inline:8px}.brand-lockup--compact .brand-lockup__logo{width:64px}.brand-lockup--login{margin:12px auto 20px;gap:16px}.brand-lockup--login .brand-lockup__logo{width:120px}.brand-lockup--login .brand-lockup__title{font-size:26px;padding-left:16px;letter-spacing:-1px}.brand-lockup--mobile{gap:8px}.brand-lockup--mobile .brand-lockup__logo{width:92px}.brand-lockup--mobile .brand-lockup__title{padding-left:10px;font-size:16px}.portal-header{height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e7eb;background:#fff}.portal-user{margin-left:auto}.portal-user-text{display:flex;align-items:center;gap:8px;min-width:160px}.portal-content{position:relative;min-height:calc(100vh - 64px);padding:var(--page-padding);background:#f4f6f9;min-width:0}.global-excel-download{position:static}.portal-mobile-title{margin-left:8px}.portal-drawer-user{display:flex;flex-direction:column;gap:14px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-header h3{margin:0}.page-header-extra{display:flex;align-items:center;gap:8px}.page-header-global-actions{display:flex;align-items:center}.page-header-global-actions:empty{display:none}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px;margin-bottom:14px;background:#fff;border:1px solid #e5e7eb;border-radius:6px}.responsive-filter>.ant-input-search,.responsive-filter>.ant-select,.responsive-filter>.ant-picker{min-width:180px;flex:1 1 180px}.customer-issue-filter{flex-wrap:nowrap}.customer-issue-filter>.ant-input-search{min-width:300px;flex:2 1 420px}.customer-issue-filter>.ant-select,.customer-issue-filter>.ant-input{min-width:140px;flex:1 1 180px}.customer-issue-filter>.ant-btn{flex:0 0 auto}.table-surface{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:12px;overflow-x:auto}.project-gantt-surface{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:14px;overflow-x:auto}.project-gantt-header,.project-gantt-row{display:grid;grid-template-columns:240px minmax(520px,1fr);gap:14px;align-items:center}.project-gantt-header{margin-bottom:10px;color:#64748b;font-size:12px}.project-gantt-timeline{display:flex;justify-content:space-between;min-width:520px;border-bottom:1px solid #e5e7eb;padding-bottom:6px}.project-gantt-row{min-height:54px;border-bottom:1px solid #f1f5f9}.project-gantt-row:last-child{border-bottom:0}.project-gantt-label{display:flex;flex-direction:column;min-width:0}.project-gantt-track{position:relative;min-width:520px;height:30px;border-radius:4px;background:#f1f5f9;overflow:hidden}.project-gantt-bar{position:absolute;top:4px;bottom:4px;min-width:44px;border-radius:4px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.dashboard-action-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.dashboard-card{min-height:118px}.dashboard-action-card{border-color:#bfdbfe;background:#eff6ff}.dashboard-card.dashboard-action-card .ant-statistic-title{color:#1d4ed8;font-weight:700}.dashboard-card.dashboard-action-card .ant-statistic-content{color:#0f172a}.dashboard-card .ant-statistic-title{color:#64748b}.dashboard-link-card{cursor:pointer}.dashboard-schedule-date-cell{white-space:nowrap}.dashboard-lower-grid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:14px}.report-week-bar{min-height:64px}.report-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}.report-main-pane,.report-side-pane,.detail-surface,.summary-editor,.calendar-surface{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:16px}.report-main-pane{display:flex;flex-direction:column;gap:16px}.work-section{padding-bottom:16px;border-bottom:1px solid #eef2f7}.work-section:last-child{padding-bottom:0;border-bottom:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title-row h4,.table-surface h4,.summary-editor h4{margin:0}.report-item-row{display:grid;grid-template-columns:220px 240px minmax(320px,1fr) 120px 42px;gap:10px;align-items:start}.vacation-editor-row{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #eef2f7;border-radius:6px}.detail-surface{margin-bottom:14px}.report-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.wide-stat-card{grid-column:span 2}.department-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px;margin-bottom:14px}.customer-summary-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.customer-summary-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;align-items:start}.customer-summary-list{max-height:calc(100vh - 310px);overflow-y:auto}.customer-summary-list-item{cursor:pointer;padding:14px 10px!important;border-radius:6px}.customer-summary-list-item.active,.selected-table-row>td{background:#edf7ef!important}.customer-summary-detail{display:flex;flex-direction:column;gap:14px;min-width:0}.customer-source-section{margin-top:14px}.customer-summary-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-summary-editor-grid .ant-input-affix-wrapper,.customer-summary-editor-grid textarea:last-child{grid-column:span 2}.summary-editor{margin-top:14px}.summary-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-surface .ant-picker-calendar-date{min-height:136px;overflow:visible!important}.calendar-surface{position:relative}.calendar-surface .ant-picker-cell,.calendar-surface .ant-picker-cell-inner{overflow:visible!important}.calendar-surface .ant-picker-calendar-date-content{height:106px;overflow:visible!important}.calendar-cell-inner{height:106px;padding:2px 0;overflow:visible}.calendar-day-number{height:22px;display:flex;align-items:center;gap:6px;font-weight:600;color:#334155}.calendar-surface .ant-picker-date-panel .ant-picker-content th:first-child,.calendar-surface .ant-picker-date-panel .ant-picker-content td:first-child .ant-picker-calendar-date-value{color:#e5484d}.calendar-surface .ant-picker-date-panel .ant-picker-content th:last-child,.calendar-surface .ant-picker-date-panel .ant-picker-content td:last-child .ant-picker-calendar-date-value{color:#1677ff}.calendar-holiday-name{min-width:0;color:#e5484d;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-cell-inner .ant-tag{width:100%;margin-inline-end:0;overflow:hidden}.calendar-event-stack{display:flex;flex-direction:column;gap:3px;width:100%}.calendar-event-bar{display:block;position:relative;z-index:1;height:20px;line-height:20px;padding:0 10px;color:#1f2937;font-size:12px;font-weight:500;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;box-shadow:inset 0 0 0 1px #0f172a0f}.calendar-event-bar-single{border-radius:999px}.calendar-event-bar-start{border-radius:999px 0 0 999px;margin-right:-18px;padding-right:18px}.calendar-event-bar-middle{border-radius:0;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.calendar-event-bar-end{border-radius:0 999px 999px 0;margin-left:-18px;padding-left:18px}.calendar-event-bar-vacation,.calendar-event-bar-annual{background:#dff3e5}.calendar-event-bar-half-day-am{background:#fff1c2}.calendar-event-bar-half-day-pm{background:#ffe0c7}.calendar-event-bar-quarter-day-am{background:#d9f7f2}.calendar-event-bar-quarter-day-pm{background:#eadcff}.calendar-event-bar-business-trip{background:#dbeafe}.calendar-event-bar-field-work{background:#fce7f3}.calendar-event-bar-project{background:#e0e7ff}.calendar-event-bar-other{background:#e5e7eb}.calendar-event-bar-slot{color:transparent!important;background:transparent!important;box-shadow:none!important}.calendar-event-label-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;overflow:hidden;pointer-events:none}.calendar-event-label-overlay-item{position:absolute;display:flex;align-items:center;justify-content:center;min-width:0;padding:0 12px;border-radius:999px;color:#1f2937;font-size:12px;font-weight:500;line-height:20px;box-shadow:inset 0 0 0 1px #0f172a0f}.calendar-event-label-overlay-text{display:block;min-width:0;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.customer-contact-list{margin-bottom:18px}.responsive-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.content-card{padding:14px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 2px #0f172a0a}.form-grid-full{grid-column:1 / -1}.meeting-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.meeting-room-card{min-height:172px}.meeting-room-reservation-pill{min-height:30px;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;background:#eef6ff;color:#1f2937;overflow:hidden}.meeting-room-reservation-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-reservation-calendar-card .ant-card-body{padding-top:12px}.meeting-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:8px;color:#4b5563}.meeting-calendar-legend span{display:inline-flex;align-items:center;gap:6px}.meeting-calendar-legend i{width:9px;height:9px;border-radius:50%}.meeting-reservation-calendar{overflow-x:auto}.meeting-reservation-calendar>.ant-picker-calendar{min-width:860px}.meeting-calendar-cell{display:flex;flex-direction:column;gap:4px;padding-top:4px}.meeting-calendar-event{display:flex;align-items:center;gap:5px;width:100%;min-width:0;padding:3px 5px;border:0;border-left:4px solid #1677ff;border-radius:4px;background:#f3f7ff;color:#1f2937;font:inherit;font-size:12px;line-height:1.35;text-align:left;cursor:pointer}.meeting-calendar-event strong{flex:0 0 auto}.meeting-calendar-event span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remaining-leave-summary{margin-bottom:14px}.remaining-leave-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.remaining-leave-meta{display:flex;justify-content:space-between;margin-top:4px;color:#6b7280;font-size:13px}.customer-contact-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) minmax(110px,.8fr) minmax(130px,1fr);gap:10px;align-items:start;padding:12px;margin-bottom:10px;border:1px solid #eef2f7;border-radius:6px}.customer-project-member-list{margin-bottom:18px}.customer-project-member-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) minmax(140px,1fr) minmax(140px,1fr);gap:10px;align-items:start;padding:12px;margin-bottom:10px;border:1px solid #eef2f7;border-radius:6px}.customer-project-member-row .ant-btn{align-self:center;margin-top:30px}.customer-engagement-list{display:flex;flex-direction:column;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid #eef2f7}.mobile-card-list{display:none}.asset-mobile-card-list{max-height:60vh;overflow-y:auto;padding-right:4px;overscroll-behavior:contain}.mobile-list-card{border-radius:6px}.mobile-card-meta{display:flex;flex-direction:column;gap:4px;margin-top:10px;color:#64748b;word-break:keep-all;overflow-wrap:anywhere}.report-action-buttons{justify-content:flex-end}.mobile-action-bar{position:sticky;bottom:0;z-index:10;display:flex;justify-content:stretch;padding:10px 0 0;margin-top:14px;background:linear-gradient(180deg,#f4f6f900,#f4f6f9 24%)}.mobile-action-bar .report-action-buttons,.mobile-action-bar .report-action-buttons .ant-space-item{width:100%}.mobile-action-bar .ant-btn{width:100%;min-height:40px}.customer-contact-row .ant-btn{align-self:center;margin-top:30px}.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,#1720330f,#2fb3440f),#f4f6f9}.login-panel{width:min(420px,calc(100vw - 32px));border-radius:8px;box-shadow:0 18px 48px #0f172a24}.super-login-panel{border-top:4px solid #6d5dfc}.super-admin-sider{background:#111827!important}.login-title{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:24px}.login-title h2{margin-bottom:6px}@media(max-width:380px){.brand-lockup--login{gap:12px}.brand-lockup--login .brand-lockup__logo{width:104px}.brand-lockup--login .brand-lockup__title{padding-left:12px;font-size:22px}}.login-remember{margin-bottom:16px}.drawer-footer{display:flex;justify-content:flex-end;gap:8px}.readonly-field{min-height:32px;display:flex;align-items:center;color:#111827}.approval-write-drawer .ant-drawer-body{background:#fff;padding:24px}.approval-write-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}.approval-side-panel,.approval-document-panel,.approval-attachment-panel{background:transparent;border:0;border-radius:0;padding:0}.approval-side-panel{position:static;max-height:none;overflow:visible}.approval-document-panel{min-width:0}.approval-document-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.approval-line-row{display:grid;grid-template-columns:120px minmax(140px,1fr) minmax(140px,1fr) minmax(220px,1.5fr) 38px;gap:8px;align-items:start}.rich-editor{border:1px solid #d9d9d9;border-radius:6px;background:#fff;overflow:hidden}.rich-editor-toolbar{padding:8px;border-bottom:1px solid #e5e7eb;background:#fafafa}.rich-editor-block-select{width:92px}.rich-editor-font-size{width:72px}.rich-editor-color-control{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 8px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;color:#000000e0;font-size:13px;cursor:pointer}.rich-editor-color-control:hover{border-color:#4096ff}.rich-editor-color-control input{width:20px;height:20px;padding:0;border:0;background:transparent;cursor:pointer}.rich-editor-table-toolbar{display:flex;margin-top:8px;padding-top:8px;border-top:1px dashed #d9d9d9}.rich-editor-content{overflow-y:auto;background:#fff}.rich-editor-content .tiptap{min-height:inherit;padding:24px;outline:none;line-height:1.7}.rich-editor-content .tiptap p{margin:0 0 10px}.rich-editor-content .tiptap h1,.rich-editor-content .tiptap h2,.rich-editor-content .tiptap h3{margin:16px 0 10px;line-height:1.35}.rich-editor-content .tiptap h1{font-size:28px}.rich-editor-content .tiptap h2{font-size:23px}.rich-editor-content .tiptap h3{font-size:19px}.rich-editor-content .tableWrapper{margin:14px 0;overflow-x:auto}.rich-editor-content .tiptap table{width:100%;table-layout:fixed;border-collapse:collapse;margin:0}.rich-editor-content .tiptap th,.rich-editor-content .tiptap td{position:relative;min-width:96px;height:42px;padding:8px 10px;border:1px solid #aeb7c4;vertical-align:top;background:#fff}.rich-editor-content .tiptap th{background:#f1f4f8;font-weight:700;text-align:center}.rich-editor-content .tiptap th p,.rich-editor-content .tiptap td p{min-height:22px;margin:0}.rich-editor-content .selectedCell:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:#1677ff1a;content:"";pointer-events:none}.rich-editor-content .column-resize-handle{position:absolute;top:0;right:-2px;bottom:-2px;width:4px;background:#1677ff;pointer-events:none}.rich-editor-content .resize-cursor{cursor:col-resize}.rich-editor-body{padding:24px;outline:none;line-height:1.7;overflow-y:auto;background:#fff}.rich-editor-body h2{margin:16px 0 10px;font-size:20px}.rich-editor-body table,.approval-editor-table{width:100%;border-collapse:collapse;margin:14px 0}.rich-editor-body th,.rich-editor-body td,.approval-editor-table th,.approval-editor-table td{min-width:96px;min-height:36px;padding:10px;border:1px solid #d9d9d9;vertical-align:top}.rich-editor-body th,.approval-editor-table th{background:#f5f7fb;font-weight:700;text-align:center}.approval-attachment-panel{margin-top:14px;padding-top:16px;border-top:1px solid #f0f0f0}.approval-attachment-list{margin-top:8px}.approval-detail-content{min-height:120px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa;line-height:1.7;white-space:pre-wrap}.approval-progress-flow{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.approval-progress-node{display:inline-flex;align-items:center;gap:6px}.approval-progress-node .ant-tag{margin:0;padding:4px 10px;font-size:13px}.approval-progress-arrow{color:#94a3b8;font-size:11px}.leave-request-drawer .ant-drawer-body{background:#fff;padding:28px}.leave-request-sheet{border-top:2px solid #d1d5db;border-bottom:1px solid #e5e7eb;margin-bottom:18px}.leave-request-row{display:grid;grid-template-columns:220px minmax(0,1fr) 160px minmax(0,1fr);min-height:56px;border-bottom:1px solid #edf0f3}.leave-request-row:last-child{border-bottom:0}.leave-request-row.highlighted{background:#eef7ff}.leave-request-label{display:flex;align-items:center;padding:12px 16px;background:#fafafa;color:#64748b;font-weight:600;border-right:1px solid #edf0f3}.leave-request-label.required:before{content:"*";color:#ff4d4f;margin-right:4px}.leave-request-value{display:flex;align-items:center;padding:10px 14px;min-width:0}.leave-request-value[data-span="3"]{grid-column:span 3}.leave-request-value .ant-select,.leave-request-value .ant-picker,.leave-request-value textarea{max-width:100%}.leave-request-value .rich-editor{width:100%;flex:1 1 auto}.weekly-simple-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.weekly-editor-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.weekly-editor-split section{min-width:0}.weekly-editor-split .rich-editor{width:100%}.weekly-team-summary-list{display:grid;gap:12px}.weekly-readonly{gap:16px}.weekly-readonly section{padding:12px;border-radius:8px;background:#f7f9fc}.weekly-detail-meta{margin-bottom:20px}.weekly-member-detail .ant-card{min-width:0}.weekly-member-detail .ant-card-body{min-height:430px}.weekly-report-html{line-height:1.7;overflow-wrap:anywhere}.weekly-report-html table{width:100%;border-collapse:collapse}.weekly-report-html th,.weekly-report-html td{border:1px solid #d9d9d9;padding:8px}.dashboard-weekly-summary-html{max-height:260px;overflow:auto;line-height:1.6;overflow-wrap:anywhere}.dashboard-weekly-summary-html table{width:100%!important;border-collapse:collapse}.dashboard-weekly-summary-html th,.dashboard-weekly-summary-html td{border:1px solid #d9d9d9;padding:6px 8px}.dashboard-weekly-summary-html p{margin:0 0 6px}@media(max-width:900px){.weekly-editor-split{grid-template-columns:1fr}}@media(max-width:1360px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-action-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-lower-grid,.report-editor-layout{grid-template-columns:1fr}.report-item-row{grid-template-columns:200px 220px minmax(260px,1fr) 110px 42px}.department-dashboard-grid,.customer-summary-layout,.approval-write-layout{grid-template-columns:1fr}.approval-side-panel{position:static;max-height:none}.customer-summary-list{max-height:none}}@media(max-width:1199px){:root{--page-padding: 18px}.responsive-filter>.ant-input-search,.responsive-filter>.ant-select,.responsive-filter>.ant-picker{flex-basis:calc(50% - 8px)}.customer-contact-row,.customer-project-member-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){:root{--page-padding: 12px;--card-gap: 10px}.portal-header{padding:0 12px;gap:8px}.portal-user{display:none}.page-header{align-items:stretch;flex-direction:column;gap:10px;margin-bottom:12px}.page-header h3{font-size:20px}.page-header-extra,.page-header-extra .ant-space,.page-header-extra .ant-space-item,.page-header-extra .ant-btn{width:100%}.filter-bar{display:grid;grid-template-columns:1fr;align-items:stretch;padding:12px}.customer-issue-filter{flex-wrap:wrap}.customer-issue-filter>.ant-input{width:100%!important;min-width:0}.filter-bar>.ant-input-search,.filter-bar>.ant-select,.filter-bar>.ant-picker,.filter-bar>.ant-btn,.responsive-filter>.ant-input-search,.responsive-filter>.ant-select,.responsive-filter>.ant-picker{width:100%!important;min-width:0}.table-surface,.report-main-pane,.report-side-pane,.detail-surface,.summary-editor,.calendar-surface{padding:12px}.mobile-card-list{display:flex;flex-direction:column;gap:var(--card-gap)}.dashboard-grid,.dashboard-action-strip,.report-status-grid,.customer-summary-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-card{min-height:96px}.department-dashboard-grid,.dashboard-lower-grid,.report-editor-layout,.customer-summary-layout{grid-template-columns:1fr}.report-item-row{grid-template-columns:1fr;padding:12px;border:1px solid #eef2f7;border-radius:6px}.report-item-row .ant-select,.report-item-row .ant-input-number,.report-item-row .ant-btn,.vacation-editor-row .ant-picker,.vacation-editor-row .ant-btn,.vacation-editor-row .ant-space,.vacation-editor-row .ant-space-item,.vacation-editor-row .ant-space-compact{width:100%}.section-title-row{align-items:stretch;flex-direction:column}.section-title-row .ant-btn{width:100%}.responsive-form-grid,.customer-contact-row,.customer-project-member-row,.summary-editor-grid,.customer-summary-editor-grid{grid-template-columns:1fr}.form-grid-full{grid-column:auto}.meeting-room-grid,.remaining-leave-grid{grid-template-columns:1fr}.customer-summary-editor-grid .ant-input-affix-wrapper,.customer-summary-editor-grid textarea:last-child{grid-column:auto}.customer-contact-row,.customer-project-member-row{padding:12px}.customer-contact-row .ant-btn,.customer-project-member-row .ant-btn{width:100%;margin-top:0}.responsive-drawer .ant-drawer-body{padding:12px 12px 72px}.ant-drawer-right>.ant-drawer-content-wrapper{width:100%!important}.responsive-drawer .ant-drawer-extra,.responsive-drawer .ant-drawer-extra .ant-space,.responsive-drawer .ant-drawer-extra .ant-space-item,.responsive-drawer .ant-drawer-extra .ant-btn{width:100%}.customer-summary-list{max-height:none}.ant-tabs-nav{margin-bottom:10px!important}.calendar-surface{overflow-x:auto}.approval-write-drawer .ant-drawer-body,.approval-side-panel,.approval-document-panel,.approval-attachment-panel{padding:12px}.approval-line-row,.leave-request-row{grid-template-columns:1fr}.leave-request-label{border-right:0;border-bottom:1px solid #edf0f3}.leave-request-value,.leave-request-value[data-span="3"]{grid-column:auto}.leave-request-value .ant-select,.leave-request-value .ant-picker,.leave-request-value .ant-input,.leave-request-value textarea{width:100%!important}.rich-editor-body{padding:14px}.calendar-surface .ant-picker-calendar-date{min-height:58px}.calendar-surface .ant-picker-calendar-date-content{height:44px;overflow:hidden!important}.calendar-cell-inner{height:44px}.calendar-cell-mobile{display:flex;flex-direction:column;gap:2px}.calendar-day-number{height:18px}.responsive-modal{max-width:calc(100vw - 16px);top:8px;padding-bottom:8px}.ant-typography,.ant-card,.ant-table,.ant-form{overflow-wrap:anywhere;word-break:keep-all}}@media(max-width:420px){.dashboard-grid,.report-status-grid,.customer-summary-stat-grid{grid-template-columns:1fr}}.organization-team-card{margin-top:12px}.organization-member{padding:8px 4px;border-bottom:1px solid #f0f0f0}.weekly-member-table-actions{display:flex;justify-content:flex-end;margin:0 0 12px}.weekly-all-summary .ant-card-body{display:flex;justify-content:space-between;gap:16px}.weekly-all-reports{display:flex;flex-direction:column;gap:20px;margin-top:16px}.weekly-report-selected{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.weekly-all-reports .weekly-editor-split>section{min-width:0;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.department-report-card .ant-card-body{padding:22px}.department-report-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.department-report-title-input{margin-bottom:8px;font-size:20px;font-weight:700}.department-report-meta{display:block;margin-bottom:16px}.department-report-table-wrap{overflow-x:auto}.department-report-table{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(360px,2fr) minmax(360px,2fr) 84px;min-width:1000px;border-top:1px solid #d9d9d9;border-left:1px solid #d9d9d9}.department-report-row{display:contents}.department-report-table-header{padding:12px;background:#f5f7fb;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;font-weight:700;text-align:center}.department-report-category-cell,.department-report-actions-cell,.department-report-content-cell{min-height:180px;border:0;border-right:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#fff}.department-report-category-cell,.department-report-actions-cell{display:flex;align-items:flex-start;justify-content:center;padding:12px}.department-report-category-cell .ant-input{font-weight:700;text-align:center}.department-report-actions-cell{align-items:center;justify-content:center}.department-report-category-cell{align-items:flex-start;justify-content:center}.department-report-actions-cell>.ant-space-vertical{align-items:center}.department-report-content-cell{width:100%;display:flex;align-items:stretch;padding:0;cursor:text;overflow:visible}.department-report-content-cell:focus-within{box-shadow:inset 0 0 0 2px #91caff}.department-report-content-cell.is-readonly{background:#fafafa;cursor:default}.department-report-content-cell.is-readonly:focus-within{box-shadow:none}.department-report-content-cell .rich-editor{width:100%;border:0;border-radius:0;background:transparent;overflow:visible}.department-report-content-cell .rich-editor-content{width:100%;overflow:visible;background:transparent}.department-report-content-cell .rich-editor-content .tiptap{min-height:220px;padding:20px 22px;overflow-wrap:anywhere}.department-report-content-cell .rich-editor-toolbar{position:sticky;top:0;z-index:2;padding:6px;background:#f7faff}.department-report-content-cell .rich-editor-toolbar .ant-btn{width:30px;height:30px;padding:0}.department-report-content-cell.is-editing{height:440px;min-height:440px;overflow:hidden}.department-report-content-cell.is-editing .rich-editor{display:flex;flex-direction:column;height:100%;overflow:hidden}.department-report-content-cell.is-editing .rich-editor-toolbar{position:relative;top:auto;flex:0 0 auto}.department-report-content-cell.is-editing .rich-editor-content{flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:scroll}.department-report-content-cell.is-editing .rich-editor-content .tiptap{min-height:100%}.department-report-content-cell .rich-editor-readonly .rich-editor-content,.department-report-content-cell .rich-editor-readonly .tiptap{background:transparent}.department-report-add-row{margin-top:12px}.department-report-preview-scroll{max-height:calc(100vh - 250px);overflow:auto}.department-report-preview-table{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(420px,2fr) minmax(420px,2fr);min-width:1050px;border-top:1px solid #d9e2ef;border-left:1px solid #d9e2ef}.department-report-preview-row{display:contents}.department-report-preview-header,.department-report-preview-category,.department-report-preview-content{padding:18px 22px;border-right:1px solid #d9e2ef;border-bottom:1px solid #d9e2ef}.department-report-preview-header{position:sticky;top:0;z-index:1;background:#edf4fd;font-size:16px;font-weight:700;text-align:center}.department-report-preview-category{background:#fafcff;font-weight:700;text-align:center}.department-report-preview-content{min-height:180px;background:#fff;font-size:15px}.department-report-preview-content>:first-child{margin-top:0}.department-report-preview-content>:last-child{margin-bottom:0}@media(max-width:768px){.department-report-card .ant-card-body{padding:14px}.department-report-controls>.ant-select{width:100%!important}}
