*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#243445;font-size:14px}a{color:#157b71;text-decoration:none}button{font:inherit}button:not(:disabled){cursor:pointer}h1,h2,h3,p{margin-top:0}h2{font-size:22px;font-weight:650;letter-spacing:-.4px}h3{font-size:16px;margin-top:22px}.app-layout{display:flex;min-height:100vh}.sidebar{width:226px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid #e6eaee;padding:30px 15px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;padding:0 12px;margin-bottom:34px;color:#1c3a3a}.brand-icon{width:38px;height:40px;background:#157b71;color:#fff;display:grid;place-items:center;border-radius:10px;font-size:23px}.brand strong{display:block;font-size:26px;letter-spacing:4px;line-height:1.2}.brand small{font-size:10px;color:#8b979e;letter-spacing:1px}.workspace-label{font-size:10px;letter-spacing:1.6px;color:#98a2ad;padding:0 12px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.workspace-label span{font-size:9px;letter-spacing:0;border:1px solid #e0e6e8;padding:3px 5px;border-radius:4px}.section-label{font-size:11px;color:#9aa4ae;margin:27px 13px 10px}.nav-item{color:#65717f;padding:12px 14px;display:flex;align-items:center;gap:12px;border-radius:7px;margin-bottom:3px;font-size:13px}.nav-item .anticon{font-size:17px}.nav-item:hover{background:#f7f9f9;color:#157b71}.nav-item.active{background:#eaf4f1;color:#157b71;font-weight:600;position:relative}.nav-item.active:before{content:"";width:3px;height:18px;background:#157b71;position:absolute;left:-15px;border-radius:0 3px 3px 0}.sidebar-footer{margin-top:auto;border-top:1px solid #edf0f3;padding:20px 10px 0;display:flex;gap:9px;color:#84938e;font-size:10px;line-height:1.8}.sidebar-footer .anticon{font-size:15px}.sidebar-footer small{display:block;font-size:9px;color:#a1a8b0}.main-column{margin-left:226px;min-width:0;flex:1}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid #e9edf0;background:#fff;font-size:12px;color:#75818d}.topbar-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#298779;margin-right:10px}.topbar .ant-tag{margin-left:14px;font-size:10px;color:#7f8b95;background:#f5f6f7}.today{font-size:11px;color:#a1a8b0}.user-menu{border:none;background:none;display:flex;gap:9px;align-items:center;color:#435360;font-size:12px}.footer{display:flex;justify-content:space-between;padding:25px 36px;color:#a9b1b9;font-size:10px}.ant-pro-page-container-children-container{padding:20px 36px!important}.ant-page-header{padding:30px 36px 10px!important}.page-padding{padding:36px}.full-loading{min-height:70vh;display:flex;align-items:center;justify-content:center}.ant-card{border-color:#e7ebef;box-shadow:0 2px 4px #20323d02}.ant-card .ant-card-head{font-size:14px;min-height:58px;padding:0 22px}.ant-card .ant-card-body{padding:22px}.ant-table-wrapper .ant-table-thead>tr>th{background:#f8f9fb!important;font-size:12px;font-weight:500;color:#87919d}.ant-table-wrapper .ant-table-tbody>tr>td{font-size:12px;border-color:#eff1f4}.ant-btn{box-shadow:none}.ant-tag{font-size:10px;border-radius:4px}.ant-table .ant-btn-link{padding-left:0;height:auto;text-align:left;white-space:normal}.subtle{color:#98a2ad;font-size:11px}.block{display:block;margin-top:4px}.mono{font-family:ui-monospace,SFMono-Regular,monospace}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.error-details{font-size:10px;white-space:pre-wrap;max-height:190px;overflow:auto}.portfolio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.portfolio-stat{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #e7ebee;border-radius:9px;padding:24px}.portfolio-stat span{color:#8a96a1;font-size:12px}.portfolio-stat strong{display:block;font-size:30px;color:#263d48;font-weight:600;margin-top:4px;line-height:1.1}.stat-icon{display:grid;place-items:center;background:#eef5f3;color:#218573;border-radius:10px;height:48px;width:48px;font-size:21px}.stat-1{background:#fff0ed;color:#d66a5c}.stat-2{background:#fff7e7;color:#ce9b3d}.stat-3{background:#eef2f8;color:#6585a7}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.project-name{display:flex;gap:12px;align-items:center}.project-avatar{width:38px;height:40px;background:#eef5f3;display:grid;place-items:center;font-size:19px;color:#288474;border-radius:8px;flex-shrink:0}.project-name strong{font-size:13px;font-weight:600}.project-name small{display:block;font-size:10px;color:#9ba4ad;margin-top:5px}.project-name .ant-tag{margin-left:6px}.project-header{background:#fff;padding:24px 36px 27px;border-bottom:1px solid #e8ecf0;display:flex;justify-content:space-between;align-items:center;gap:20px}.breadcrumb{font-size:10px;color:#9aa6b0;margin-bottom:13px}.breadcrumb a{color:#7d8994;margin-right:10px}.project-header h1{font-size:21px;letter-spacing:-.5px;font-weight:650;margin-bottom:12px}.project-header h1 .ant-tag{vertical-align:middle;font-weight:400;margin-left:8px}.project-header .ant-space{font-size:11px;color:#97a2ad}.project-header .ant-space i{font-style:normal;color:#c1c8cd}.header-tools{display:flex;flex-direction:column;align-items:flex-end;gap:14px}.header-tools label{display:flex;align-items:center;gap:10px;font-size:11px;color:#8c99a5;white-space:nowrap}.header-tools input{width:145px;font-size:12px}.workspace-page{padding:30px 36px}.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-title-row h2{font-size:20px;margin-bottom:8px}.page-title-row p{font-size:12px;color:#929da7;margin:0}.overview-intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.eyebrow{font-size:9px;letter-spacing:2px;color:#80a59c;font-weight:600}.overview-intro h2{margin:10px 0;font-size:23px}.overview-intro p{font-size:11px;color:#9ba5af;margin:0}.health-block{text-align:right}.health-block small{display:block;color:#a6afb8;font-size:10px;margin-top:5px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:20px}.metric-card{padding:20px 22px;background:#fff;border:1px solid #e5eaee;border-radius:8px;text-align:left;min-height:155px;transition:box-shadow .2s}.metric-card:hover{box-shadow:0 3px 10px #273c4c0d}.metric-card>span{color:#83909b;display:flex;justify-content:space-between;font-size:11px}.metric-card strong{display:block;font-size:32px;font-weight:600;color:#233c46;letter-spacing:-.5px;margin:16px 0 7px}.metric-card strong em{font-style:normal;font-size:20px;font-weight:400;color:#adb5bd;margin-left:7px}.metric-card small{font-size:10px;color:#a0aab4}.metric-card .ant-progress{margin-top:5px}.warning-number{color:#d19038!important}.quality-alert{margin-bottom:20px}.quality-alert .ant-alert-message{font-size:11px}.milestone-strip{display:flex;justify-content:space-around;min-height:168px;padding-top:18px}.milestone-strip button{background:none;border:none;text-align:center;display:flex;align-items:center;flex-direction:column;flex:1;position:relative;padding:0 5px;min-width:0}.milestone-strip button:not(:last-child):before{content:"";height:1px;background:#e1ebe7;position:absolute;left:60%;right:-40%;top:13px}.milestone-dot{font-size:22px;color:#3a9484;background:#fff;z-index:1}.milestone-dot.delayed{color:#d87966}.milestone-dot.warning{color:#d3a249}.milestone-strip small{font-size:10px;color:#a3adb6;margin:10px 0}.milestone-strip strong{font-size:11px;font-weight:500;line-height:1.6;margin-bottom:12px}.coordination{border-bottom:1px solid #f0f2f4;padding-bottom:12px}.coordination strong{font-size:11px;font-weight:500;line-height:1.8;display:block;margin-top:7px}.coordination p{font-size:11px;color:#929da6;margin:9px 0}.coordination small{font-size:10px;color:#a5aeb7}.calm-empty{text-align:center;padding:20px;color:#a2afa9}.calm-empty .anticon{font-size:28px}.calm-empty p{margin:12px 0 6px;font-size:12px}.calm-empty small{font-size:10px}.health-chart{padding:5px 0}.health-chart-row{display:flex;align-items:center;gap:15px;margin:20px 0}.health-chart-row>span{width:105px;color:#7c8995;font-size:11px}.health-chart-row>small{color:#a3aeb7;font-size:10px;min-width:32px}.health-chart-bar{display:flex;flex:1;height:13px;gap:2px;border-radius:3px;overflow:hidden}.health-chart-bar button{border:0;padding:0;font-size:9px;color:#fff;background:#70b2a3}.health-chart-bar .warning{background:#e3ba6e}.health-chart-bar .delayed{background:#df9687}.health-chart-bar .unknown{background:#bcc5cc}.chart-legend{display:flex;gap:10px;align-items:center;justify-content:center;font-size:10px;color:#96a1aa;margin-top:24px}.chart-legend i{width:7px;height:7px;border-radius:2px;display:inline-block;margin-left:8px;background:#70b2a3}.chart-legend .warning{background:#e3ba6e}.chart-legend .delayed{background:#df9687}.chart-legend .unknown{background:#bcc5cc}.weekly-counts{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:12px 0 25px}.weekly-counts button{text-align:left;background:#f7f9fa;border:0;border-radius:5px;padding:15px}.weekly-counts strong{font-size:23px;color:#49656b;display:block;font-weight:500}.weekly-counts span{font-size:10px;color:#9ca6af;display:block;margin-top:6px}.task-title{border:0;background:transparent;text-align:left;padding:0;color:#3c5261;line-height:1.5}.task-title small{font-size:10px;color:#9ba6b0;display:block;margin-bottom:3px}.task-title span{font-size:12px}.context-row{opacity:.65}.drawer-section{margin-top:24px}.dependency-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #eff2f4}.file-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid #eff1f3;margin-bottom:15px}.file-row strong{font-size:12px}.file-row small{display:block;color:#98a4ad;font-size:10px;margin-top:6px}.gantt-scroll{overflow:auto;max-height:65vh;position:relative;border:1px solid #e8edf0;border-radius:6px}.gantt-heading{display:flex;height:48px;position:sticky;top:0;background:#f7f9fa;z-index:4;font-size:10px;color:#97a3ad}.gantt-heading>div:not(.gantt-name){border-right:1px solid #e8edf0;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px}.gantt-heading small{font-size:9px}.gantt-heading .current{background:#e8f4ef;color:#3c8c7c}.gantt-name{position:sticky;left:0;flex-shrink:0;width:320px;background:#fff;z-index:3;border-right:1px solid #e8edf0;display:flex;align-items:center;overflow:hidden;padding:5px 12px;font-size:11px;color:#7c8a96}.gantt-heading .gantt-name{background:#f7f9fa}.gantt-row{display:flex;height:52px;border-top:1px solid #eef1f3}.gantt-name button{background:transparent;border:0;text-align:left;color:#526774;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.gantt-name small{display:block;font-size:9px;color:#a3acb5;margin-bottom:3px}.gantt-collapse{width:18px;padding:0!important;flex-shrink:0}.gantt-track{position:relative;flex-shrink:0;overflow:hidden;background-image:linear-gradient(to right,#eaf0f2 1px,transparent 1px)}.gantt-bar{position:absolute;top:14px;height:13px;border:0;border-radius:3px;background:#69a99d;z-index:1}.gantt-bar.warning{background:#ddba77}.gantt-bar.delayed{background:#dc9786}.gantt-bar.completed{background:#619786}.gantt-bar.summary{background:#6d8292;height:7px;top:18px;border-radius:0}.gantt-bar.forecast{top:30px;height:6px;background:transparent;border:1px dashed #a39c73}.gantt-bar.baseline{top:40px;height:3px;background:#aeb9c3}.gantt-milestone{position:absolute;top:7px;border:0;background:transparent;color:#2b8b77;font-size:22px;padding:0;z-index:2}.gantt-milestone.forecast{top:25px;color:#bda45d;font-size:12px}.gantt-milestone.baseline{top:34px;color:#aeb9c3;font-size:10px}.today-line{width:1px;position:absolute;top:0;bottom:0;background:#c98374;z-index:0;opacity:.6}.gantt-legend{display:flex;gap:7px;align-items:center;font-size:10px;color:#95a1ab;margin-left:auto}.gantt-legend i{height:5px;width:12px;background:#69a99d}.gantt-legend i.forecast{background:transparent;border:1px dashed #b2a77b}.gantt-legend i.baseline{background:#adb9c3;height:3px}.import-zone{padding:35px;border:1px dashed #c9dcd6;border-radius:8px;background:#f7fbf9;text-align:center;margin:24px 0}.import-zone p{font-size:11px;color:#9aaba4;margin-top:15px;margin-bottom:0}.preview-counts{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:15px}.owner-mapping{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.owner-mapping label{display:flex;align-items:center;justify-content:space-between;font-size:12px}.report h3{margin-top:28px;color:#395d62}.report ul{padding-left:20px;font-size:13px;line-height:2;color:#667c86}.report>p{color:#7e8c97}.login{display:flex;min-height:100vh;background:#fff}.login-story{width:48%;background:#173d3c;color:#e6f2ee;padding:46px 66px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-story:after{content:"";width:500px;height:500px;border:1px solid #ffffff07;position:absolute;right:-180px;bottom:-120px;transform:rotate(45deg);box-shadow:0 0 0 80px #ffffff02,0 0 0 160px #ffffff01}.login-brand{font-size:25px;letter-spacing:5px;display:flex;align-items:center;gap:14px}.login-story h1{font-size:43px;line-height:1.7;font-weight:500;letter-spacing:1px;margin:25px 0}.login-story p{font-size:14px;color:#8fafaa;line-height:2}.login-story .eyebrow{color:#7bada3}.login-story>small{font-size:9px;letter-spacing:2px;color:#6d9790}.process{display:flex;align-items:center;gap:12px;color:#9bbfb5;font-size:11px;margin-top:45px}.process i{width:35px;height:1px;background:#4a7168}.login-panel{flex:1;display:grid;place-items:center}.login-form{width:350px}.login-form h2{font-size:27px;margin:15px 0}.login-form>p{font-size:12px;color:#9ca5af;margin-bottom:38px}.login-form .ant-form-item-label label{font-size:12px;color:#72828c}.login-form .ant-input,.login-form .ant-input-affix-wrapper{border-color:#e1e7e9}.login-form .ant-alert{margin-bottom:18px}.login-note{text-align:center;font-size:11px;color:#9caaa5;margin-top:36px;line-height:2}.login-note small{font-size:10px;color:#aab4ba}@media(max-width:1200px){.sidebar{width:194px;padding-left:12px;padding-right:12px}.main-column{margin-left:194px}.workspace-page,.project-header{padding:24px}.portfolio-stat{padding:17px}.portfolio-stats,.metric-grid{gap:12px}.metric-card{padding:18px}.topbar{padding:0 24px}.header-tools,.project-header{align-items:flex-start}.login-story{padding:40px}.login-story h1{font-size:32px}}@media(max-width:800px){.sidebar{width:65px;padding:20px 8px}.brand{padding:0;margin-bottom:30px}.brand>div:last-child,.workspace-label,.section-label,.sidebar-footer{display:none}.nav-item{font-size:0;justify-content:center;padding:15px 0}.nav-item .anticon{font-size:20px}.main-column{margin-left:65px}.topbar{padding:0 16px}.topbar>div:first-child{font-size:10px}.topbar .today{display:none}.project-header{display:block}.header-tools{margin-top:20px;flex-direction:row;align-items:center}.portfolio-stats,.metric-grid{grid-template-columns:1fr 1fr}.portfolio-stat .stat-icon{display:none}.overview-intro h2{font-size:18px}.workspace-page{padding:18px}.page-title-row{align-items:flex-start}.page-title-row p{font-size:10px}.login-story{display:none}.login-form{width:min(350px,85vw)}.owner-mapping{grid-template-columns:1fr}.footer{padding:20px;font-size:9px}.footer span{display:none}.milestone-strip{flex-wrap:wrap}.milestone-strip button{min-width:110px;margin-bottom:20px}.project-header h1{font-size:18px}}.deployment-label{position:fixed;bottom:10px;right:12px;z-index:1000;padding:5px 12px;border:1px solid #c8d4dc;border-radius:5px;background:#f5f8fa;color:#637481;font-size:11px;pointer-events:none}.deployment-label.staging{background:#fff3dc;border-color:#e9bb60;color:#8c5900}.deployment-label.production{background:#eaf4f1;border-color:#a5cfc1;color:#157b71}.table-hint{font-size:12px;color:#7c8a96;margin:0 0 14px}.detail-link{color:#157b71!important}.detail-link:hover{text-decoration:underline}.detail-link:focus-visible{outline:2px solid #157b71;outline-offset:3px;border-radius:3px}.record-title{display:block;border:0;background:none;text-align:left;padding:4px 0;line-height:1.7;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.line-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.related-items{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.related-items .ant-btn-link{height:auto;max-width:100%;padding:0;white-space:normal;text-align:left;font-size:12px}.field-changes{margin:12px 0 20px}.field-changes summary{color:#157b71;font-size:12px;cursor:pointer;margin-bottom:10px}.field-changes table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.field-changes th,.field-changes td{border:1px solid #e8edf0;padding:10px;vertical-align:top;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.field-changes thead th{background:#f7f9fa;font-weight:500;color:#7c8a96}.field-changes th:first-child{width:24%}.field-changes tbody th{font-weight:500;color:#526774}.field-changes td:last-child{background:#f4faf7}.task-table-intro{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px}.task-table-intro .table-hint{margin:0}.task-type-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:#64748b}.task-type-legend>span{display:inline-flex;align-items:center;gap:5px}.task-type-legend .anticon{font-size:14px}.task-type-legend>span:first-child .anticon{color:#345d9d}.task-type-legend>span:last-child .anticon{color:#ad6800}.tasks-table .task-code-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:5px}.tasks-table .task-code-line small{margin:0;font-size:11px;color:#758495}.tasks-table .task-kind.ant-tag{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:11px;font-weight:600;line-height:20px;padding:0 7px;border-radius:4px}.tasks-table .task-kind-summary{color:#284f88;background:#e5eefb;border-color:#c4d7f2}.tasks-table .task-kind-milestone{color:#985b00;background:#fff0cb;border-color:#e9cb82}.tasks-table .task-name-text{display:block;line-height:1.7;white-space:normal;overflow-wrap:anywhere}.tasks-table .task-row-summary .task-name-text,.tasks-table .task-row-milestone .task-name-text{font-weight:600}.tasks-table .ant-table-tbody>tr.task-row-summary>td{background:#f2f6fc;border-bottom-color:#e0e9f5}.tasks-table .ant-table-tbody>tr.task-row-milestone>td{background:#fffbf2;border-bottom-color:#f2e7cb}.tasks-table .ant-table-tbody>tr.task-row-summary:hover>td{background:#e9f0fa}.tasks-table .ant-table-tbody>tr.task-row-milestone:hover>td{background:#fff4da}.tasks-table .ant-table-tbody>tr.task-row-summary>td:first-child{box-shadow:inset 3px 0 #547db6}.tasks-table .ant-table-tbody>tr.task-row-milestone>td:first-child{box-shadow:inset 3px 0 #c5902d}.deployment-with-filing .app-layout,.deployment-with-filing .login{min-height:calc(100vh - 36px)}.filing-footer{position:relative;z-index:1;min-height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border-top:1px solid #e7ecef;font-size:12px}.filing-footer a{color:#637481;padding:8px 12px}.filing-footer a:hover{color:#157b71;text-decoration:underline}
