:root{--erp-navy: #1F3A5F;--erp-blue: #2E5C8A;--erp-blue-light: #D6E4F0;--erp-blue-lighter: #EEF4FA;--erp-success: #1A7F37;--erp-success-bg: #D4EDDA;--erp-warning: #BD5D38;--erp-warning-bg: #FFF3CD;--erp-danger: #CF222E;--erp-danger-bg: #F8D7DA;--erp-info: #0969DA;--erp-info-bg: #DDF4FF;--erp-gray-50: #F8F9FA;--erp-gray-100: #F1F3F5;--erp-gray-200: #E9ECEF;--erp-gray-300: #DEE2E6;--erp-gray-400: #ADB5BD;--erp-gray-500: #6C757D;--erp-gray-600: #495057;--erp-gray-700: #343A40;--erp-gray-800: #212529;--erp-gray-900: #16191D;--erp-font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--erp-font-mono: "JetBrains Mono", "Consolas", monospace;--erp-font-size-xs: 11px;--erp-font-size-sm: 12px;--erp-font-size-base: 14px;--erp-font-size-lg: 16px;--erp-font-size-xl: 18px;--erp-font-size-2xl: 22px;--erp-font-size-3xl: 28px;--erp-line-height-tight: 1.25;--erp-line-height-normal: 1.5;--erp-line-height-relaxed: 1.75;--erp-space-1: 4px;--erp-space-2: 8px;--erp-space-3: 12px;--erp-space-4: 16px;--erp-space-5: 20px;--erp-space-6: 24px;--erp-space-8: 32px;--erp-space-10: 40px;--erp-space-12: 48px;--erp-radius-sm: 4px;--erp-radius-md: 6px;--erp-radius-lg: 8px;--erp-radius-xl: 12px;--erp-radius-full: 9999px;--erp-shadow-sm: 0 1px 2px rgba(31, 58, 95, .05);--erp-shadow-md: 0 2px 8px rgba(31, 58, 95, .08);--erp-shadow-lg: 0 8px 24px rgba(31, 58, 95, .12);--erp-shadow-xl: 0 16px 48px rgba(31, 58, 95, .16);--erp-transition-fast: .15s ease;--erp-transition-normal: .25s ease;--erp-transition-slow: .4s ease;--erp-sidebar-width: 260px;--erp-sidebar-collapsed: 64px;--erp-topbar-height: 64px;--erp-content-max-width: 1600px;--erp-z-dropdown: 100;--erp-z-sticky: 200;--erp-z-overlay: 900;--erp-z-modal: 1000;--erp-z-toast: 1100}html,body,#root{height:100%}:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--erp-gray-50, #F8F9FA);color:var(--erp-gray-800, #212529)}*{box-sizing:border-box}body{margin:0;min-width:0;overflow:auto;background:var(--erp-gray-50, #F8F9FA)}button,input,select,textarea{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,rgba(245,158,11,.08),transparent 42%),#07101f}.login-panel{width:420px;padding:32px;border:1px solid #DEE2E6;border-radius:8px;background:#fff}.brand-mark{width:48px;height:48px;display:grid;place-items:center;color:#02529c;background:transparent;border:0;border-radius:8px}.login-panel h1{margin:18px 0 6px;font-size:26px}.login-panel p{margin:0 0 24px;color:#6c757d}.login-panel label,.record-form label{display:grid;gap:7px;color:#6c757d;font-size:13px;font-weight:600}input,select,textarea{width:100%;border:1px solid #DEE2E6;border-radius:7px;padding:10px 12px;color:#212529;background:#f8f9fa;outline:none}.inline-input{min-width:120px;border-radius:6px;padding:7px 8px;font-size:12px}.text-cell .inline-input{min-width:240px}input{direction:ltr}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#bd5d38}.login-panel button,.record-form button{width:100%;border:0;border-radius:7px;padding:11px 16px;color:#08111f;background:#f59e0b;font-weight:800;cursor:pointer}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh;min-width:0;overflow:visible}.sidebar{position:relative;height:100vh;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:18px 14px;border-right:1px solid #22344d;background:#f8f9fa}.brand{display:flex;align-items:center;gap:12px;padding:4px 4px 14px;border-bottom:1px solid #1f3047}.brand strong,.brand span{display:block}.brand span{margin-top:2px;color:#adb5bd;font-size:12px}nav{display:grid;gap:4px;min-height:0;overflow-y:auto}nav button,.logout{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:7px;padding:10px 12px;color:#adb5bd;background:transparent;text-align:left;cursor:pointer}nav button.active,nav button:hover{color:#bd5d38;background:#fff3cd}.logout{margin-top:auto;border:1px solid #DEE2E6}.app-main{display:flex;min-width:0;min-height:100vh;flex-direction:column;overflow:visible}.content{flex:1;min-height:0;overflow:auto;padding:28px}.topbar{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 28px 22px;border-bottom:1px solid #DEE2E6}.topbar h1{margin:0;font-size:24px}.topbar p{max-width:780px;margin:6px 0 0;color:#6c757d}.topbar select{max-width:320px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi,.panel,.workflow{border:1px solid #DEE2E6;border-radius:8px;background:#fff}.kpi{padding:18px}.kpi span{display:block;color:#6c757d;font-size:13px}.kpi strong{display:block;margin-top:8px;color:#bd5d38;font-size:21px}.kpi em{display:block;margin-top:8px;color:#6c757d;font-size:12px;font-style:normal}.exec-grid{display:grid;grid-template-columns:360px 1fr;gap:18px;margin:18px 0}.workflow{margin:0;padding:18px}.workflow h2{margin:0 0 14px;font-size:16px}.workflow-steps{display:flex;flex-wrap:wrap;gap:8px}.workflow-steps span{border:1px solid #ADB5BD;border-radius:7px;padding:7px 10px;color:#495057;background:#fff;font-size:12px}.risk-list{display:grid;gap:10px}.overview-stack{display:grid;gap:18px;margin:18px 0}.risk-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.mix-share{position:relative;display:flex;align-items:center;min-width:140px;height:18px;border-radius:4px;background:#eef4fa;overflow:hidden}.mix-share i{position:absolute;inset:0 auto 0 0;background:#1f3a5f;opacity:.18}.mix-share span{position:relative;padding:0 8px;color:#1f3a5f;font-size:12px;font-weight:700}.exposure-rows{display:grid;gap:0}.exposure-rows>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #E9ECEF;padding:9px 2px}.exposure-rows>div:last-child{border-bottom:0}.exposure-rows span{color:#6c757d}.exposure-rows strong{color:#1f3a5f}.schedule-week-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}@media(max-width:1100px){.schedule-week-grid{grid-template-columns:minmax(0,1fr)}}.week-plan-table{max-height:520px;overflow-y:auto}.week-flag{display:inline-flex;margin-right:4px;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800;white-space:nowrap}.week-late{color:#b91c1c;background:#ef44441a;border:1px solid rgba(220,38,38,.3)}.week-critical{color:#b5761a;background:#f59e0b1f;border:1px solid rgba(181,118,26,.3)}tr.row-danger td{background:#ef44440f}.risk{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #DEE2E6;border-radius:7px;padding:10px 12px;background:#f8f9fa}.risk strong{font-size:13px}.risk span{color:#6c757d;font-size:12px}.risk.low strong{color:#10b981}.risk.medium strong{color:#bd5d38}.risk.high strong{color:#ef4444}.panel-head.tight{margin:-18px -18px 12px}.project-hero{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px 24px;border:1px solid #DEE2E6;border-radius:8px;padding:16px 20px;margin-bottom:16px;background:#fff}.project-hero span{color:#6c757d;font-size:13px}.project-hero h2{margin:6px 0;color:#1f3a5f;font-size:24px}.project-hero p{margin:0;color:#6c757d}.project-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 36px;min-width:0;text-align:right}.project-meta-seat{display:grid;gap:2px}.project-meta strong{color:#1f3a5f}.project-meta span{color:#6c757d;font-size:12px}.project-meta .project-meta-unassigned{color:#adb5bd;font-weight:600}.register-item-flag{color:#b5761a;font-size:11px;font-style:normal;font-weight:700}.project-kpis{margin-bottom:18px}.project-dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.module-layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:18px;align-items:start}.module-layout.wide-left{grid-template-columns:360px minmax(0,1fr)}.module-layout.procurement-layout{grid-template-columns:minmax(0,1fr)}.module-layout.procurement-layout.with-po-form{grid-template-columns:420px minmax(0,1fr)}.panel{overflow:visible}.data-grid-theme .ag-header-cell-text{word-break:normal;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.panel>header{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:12px 16px 0}.panel>header strong{color:#1f3a5f}.panel>header span{color:#6c757d;font-size:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #DEE2E6;background:#f8f9fa}.panel-head h2{margin:0;font-size:16px;color:#1f3a5f}.panel-head span{color:#6c757d;font-size:12px}.record-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px}.record-form .wide,.record-form button,.record-form .error{grid-column:1 / -1}.labour-log{display:flex;flex-direction:column;gap:12px}.labour-log input[type=date]{width:auto}.labour-page>.panel{min-width:0;max-width:100%}.labour-page .panel>header{flex-wrap:wrap}.labour-alarm-row td{background:#fdecec}@media print{.labour-page .panel:not(.labour-ratios),.labour-page .module-tabs,.labour-page .no-print{display:none!important}}.labour-log button.primary{color:#08111f;background:#f59e0b;border:1px solid #BD5D38;border-radius:7px;padding:9px 14px;font-weight:800;cursor:pointer}.search{max-width:240px}.data-grid-shell{width:100%;min-width:0}.data-grid-theme{width:100%;height:min(520px,70vh);min-height:320px;border:1px solid #DEE2E6;border-radius:8px;overflow-x:auto;overflow-y:hidden}.ag-theme-quartz.data-grid-theme{--ag-background-color: #ffffff;--ag-foreground-color: #212529;--ag-header-background-color: #1F3A5F;--ag-header-foreground-color: #ffffff;--ag-odd-row-background-color: #F8F9FA;--ag-row-hover-color: #EEF4FA;--ag-border-color: #DEE2E6;--ag-secondary-border-color: #E9ECEF;--ag-input-border-color: #ADB5BD;--ag-accent-color: #2E5C8A;--ag-selected-row-background-color: #D6E4F0;--ag-font-size: 13px;--ag-font-family: Inter, system-ui, sans-serif}.data-grid-theme .ag-root-wrapper{border:0;background:transparent}.data-grid-theme .ag-header-cell-label{white-space:normal;line-height:1.2}.data-grid-theme .ag-cell{display:flex;align-items:center}.data-grid-theme .ag-cell-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.data-grid-theme .ag-cell.wrap-cell{align-items:flex-start;padding-top:8px;padding-bottom:8px}.data-grid-theme .ag-cell.wrap-cell .ag-cell-value{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}.data-grid-theme .ag-paging-panel,.data-grid-theme .ag-header,.data-grid-theme .ag-row{border-color:#dee2e6}.data-grid-theme .action-row{justify-content:flex-start}.package-workflow .data-grid-theme .ag-cell.wrap-cell{align-items:flex-start;padding-top:7px;padding-bottom:7px}.package-workflow .data-grid-theme .ag-cell.wrap-cell .ag-cell-value,.package-workflow .data-grid-theme .ag-cell.wrap-cell .ag-cell-wrapper{white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word;text-overflow:clip;line-height:1.35}.package-workflow .data-grid-theme .ag-cell.compact-cell,.package-workflow .data-grid-theme .ag-cell.compact-cell .ag-cell-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.package-workflow .data-grid-theme .ag-header-cell-label,.package-workflow .data-grid-theme .ag-header-cell-text{white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.2}.package-workflow .data-grid-theme .ag-cell input,.package-workflow .data-grid-theme .ag-cell select,.package-workflow .data-grid-theme .ag-cell textarea{width:100%;min-width:0;max-width:100%}.main-contract-grid{height:min(640px,76vh)}.main-contract-grid .ag-cell-wrap-text .ag-cell-value{white-space:pre-wrap;overflow:visible;text-overflow:unset;line-height:1.35}.inventory-grid{min-height:420px}.inventory-grid .ag-cell-wrap-text .ag-cell-value{white-space:pre-wrap;overflow:visible;text-overflow:unset;line-height:1.35}.boq-main-grid{min-height:520px}.boq-main-grid .ag-cell-wrap-text .ag-cell-value,.procurement-support-grid .ag-cell-wrap-text .ag-cell-value{white-space:pre-wrap;overflow:visible;text-overflow:unset;line-height:1.35}.boq-selected-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-bottom:12px;border:1px solid #DEE2E6;border-radius:14px;background:#eef4fa}.boq-selected-summary{display:grid;gap:4px;min-width:0}.boq-selected-summary strong,.boq-selected-summary span{overflow-wrap:anywhere}.boq-selected-summary-card{margin-bottom:12px;padding:14px 16px;border:1px solid #DEE2E6;border-radius:14px;background:#f8f9fa}.boq-subitems-view{margin-top:12px}.boq-grid-row-selected{background:#f59e0b24!important}.boq-subitems-only>table>thead{display:none}.boq-subitems-only>table>tbody>tr.boq-main-row{display:none}.boq-subitems-only>table>tbody>tr:not(.boq-main-row)>td{padding:0 0 16px;border-bottom:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 14px;border-bottom:1px solid #DEE2E6;text-align:left;white-space:nowrap}td input,td select,td textarea{min-width:0;max-width:100%}.action-row{flex-wrap:wrap}.table-wrap{overflow-x:auto}th{color:#fff;background:#1f3a5f;font-size:12px;font-weight:700;text-transform:uppercase;padding:11px 14px;border-bottom:2px solid #1F3A5F}td{color:#212529;font-size:13px;background:#fff}tbody tr:nth-child(2n) td{background:#f8f9fa}tbody tr:hover td{background:#eef4fa}.table-selected-row td{background:#d6e4f0!important}.table-selected-row{background:#fff3cd}.quote-lines tbody tr{cursor:pointer}.empty{padding:42px;color:#6c757d;background:#f8f9fa;text-align:center}.error{margin:12px 0;border:1px solid #F1AEB5;border-radius:7px;padding:10px;color:#cf222e;background:#f8d7da;font-size:13px}.notice{margin:12px 18px;border:1px solid #A3D9A5;border-radius:7px;padding:10px;color:#1a7f37;background:#d4edda;font-size:13px}.file-action{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;padding:9px 12px;color:#08111f;background:#f59e0b;font-size:13px;font-weight:800;cursor:pointer}.file-action input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.workflow-panel{min-height:460px}.text-cell{min-width:250px;max-width:450px;white-space:normal;overflow-wrap:break-word;word-break:break-word}.mini,.pill{border:1px solid #ADB5BD;border-radius:7px;padding:7px 10px;color:#2e5c8a;background:#fff;cursor:pointer}.mini.danger{border-color:#ef444473;color:#cf222e;background:#f8d7da}.action-row{display:flex;gap:8px;align-items:center}.pill.on{border-color:#f59e0b8c;color:#bd5d38;background:#fff3cd}.breakdown-grid,.package-list{display:grid;gap:10px}.breakdown,.package-card{display:grid;gap:10px;border:1px solid #DEE2E6;border-radius:7px;padding:12px;background:#f8f9fa}.breakdown span,.package-card span{display:block;margin-top:4px;color:#6c757d;font-size:12px}.breakdown-editor{display:grid;grid-template-columns:minmax(260px,1fr) 180px 120px 140px;gap:8px}.subtable{border:1px solid #DEE2E6;background:#f8f9fa}.subtable th,.subtable td{padding:8px}.subtable input,.subtable select{min-width:110px;padding:7px 8px}.subtable .text-cell input{min-width:180px;max-width:100%;white-space:normal}.subitem-balance{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.subitem-balance span{border:1px solid #DEE2E6;border-radius:7px;padding:8px 10px;color:#6c757d;background:#f8f9fa;font-size:12px}.subitem-balance strong{color:#1f3a5f}.subitem-balance .balanced strong{color:#10b981}.subitem-balance .unbalanced strong{color:#bd5d38}.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.terms-grid textarea{min-height:72px}.procurement-stack{padding:14px;display:grid;grid-template-columns:minmax(0,1fr)}.rfq-box{display:grid;gap:10px;border:1px solid #DEE2E6;border-radius:7px;padding:12px;background:#f8f9fa}.quote-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}.quote-lines{border:1px solid #DEE2E6;border-radius:8px;overflow-x:auto}.file-action.compact{min-height:38px}.comparison-stack{display:grid;gap:18px;padding:14px}.comparison-sheet{border:1px solid #DEE2E6;border-radius:8px;overflow-x:auto;background:#fff}.comparison-title{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid #DEE2E6;background:#fff}.comparison-title strong,.comparison-title span{display:block}.comparison-title strong{color:#1f3a5f}.comparison-title span{margin-top:4px;color:#6c757d;font-size:12px}.comparison-table{min-width:1300px}.comparison-table th{text-align:center;vertical-align:middle}.comparison-table td{vertical-align:top}.comparison-header-strip span{white-space:normal}.comparison-scroll{max-height:70vh}.procurement-comparison-table{min-width:max-content;table-layout:auto}.procurement-comparison-table th,.procurement-comparison-table td{max-width:220px;min-width:120px;white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top;line-height:1.35}.procurement-comparison-table th{background:#fff}.procurement-comparison-table td{background:#f8f9fa}.procurement-comparison-table .text-cell{min-width:240px;max-width:320px}.procurement-comparison-table .numeric-cell,.procurement-comparison-table td:not(.text-cell){min-width:104px;max-width:145px}.procurement-comparison-table .sticky-col{position:sticky;z-index:3;background:#f8f9fa;box-shadow:1px 0 #dee2e6}.procurement-comparison-table th.sticky-col{z-index:4;background:#1f3a5f}.procurement-comparison-table .sticky-item{left:0;min-width:280px;max-width:360px}.procurement-comparison-table .sticky-unit{left:280px;min-width:80px;max-width:80px}.procurement-comparison-table .sticky-qty{left:360px;min-width:96px;max-width:96px}.comparison-total td{color:#bd5d38;font-weight:800;background:#fff3cd}.procurement-comparison-table .comparison-total .sticky-col{background:#eef4fa}.award-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 16px;border-top:1px solid #DEE2E6}.award-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.award-card{display:grid;gap:8px;border:1px solid #DEE2E6;border-radius:7px;padding:10px;background:#fff}.award-card span{color:#6c757d;font-size:12px}.award-card textarea{min-height:70px}.link-mini{text-decoration:none}.schedule-strip{display:flex;flex-wrap:wrap;gap:8px}.schedule-strip span,td small{border:1px solid #ADB5BD;border-radius:6px;padding:4px 7px;color:#2e5c8a;background:#ddf4ff;font-size:11px}.boq-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px 18px;border-bottom:1px solid #DEE2E6}.boq-summary article{border:1px solid #DEE2E6;border-radius:7px;padding:12px;background:#f8f9fa}.boq-summary span{display:block;color:#6c757d;font-size:12px}.boq-summary strong{display:block;margin-top:6px;color:#bd5d38;font-size:18px}.boq-add-item{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(260px,2fr) repeat(5,minmax(110px,1fr)) auto;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid #DEE2E6;background:#f8f9fa}.boq-add-item .wide{min-width:240px}@media(max-width:1100px){.boq-add-item{grid-template-columns:repeat(2,minmax(0,1fr))}}.boq-toolbar,.table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid #DEE2E6;background:#f8f9fa}.boq-toolbar span,.muted{color:#6c757d;font-size:12px}.linked-pill{display:inline-flex;border:1px solid rgba(16,185,129,.4);border-radius:7px;padding:5px 8px;color:#1a7f37;background:#d4edda;font-size:12px;font-weight:700}.table-footer{justify-content:center;border-top:1px solid #DEE2E6;border-bottom:0}.upload-row{display:flex;gap:10px;align-items:center}.upload-row select{width:220px}.inline-check{width:auto;margin-right:8px}.subhead{margin:18px 18px 8px;color:#1f3a5f;font-size:14px}.pts-panel{min-height:620px}.module-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;border-bottom:1px solid #DEE2E6;background:#f8f9fa}.module-tabs button{border:1px solid #ADB5BD;border-radius:7px;padding:8px 11px;color:#495057;background:#fff;cursor:pointer}.module-tabs button.active,.module-tabs button:hover{border-color:#f59e0b8c;color:#bd5d38;background:#fff3cd}.pts-tab-body{padding:18px}.pts-entry-form{display:grid;grid-template-columns:150px minmax(260px,1fr) 110px 150px 150px 170px 130px 90px;gap:10px;padding:14px 18px;border-bottom:1px solid #DEE2E6;background:#f8f9fa}.pts-entry-form button{border:0;border-radius:7px;padding:10px 12px;color:#08111f;background:#f59e0b;font-weight:800;cursor:pointer}.pts-entry-form .mini{border:1px solid #ADB5BD;color:#2e5c8a;background:#fff}.pts-table table{min-width:2050px;border-collapse:separate;border-spacing:0}.pts-table th{position:sticky;top:0;z-index:4;vertical-align:bottom;white-space:normal;font-size:11px;padding:7px 8px;background:#f8f9fa}.pts-table td{vertical-align:middle;font-size:12px;padding:6px 7px}.pts-table td small{display:inline-block;margin-top:4px}.pts-table th:nth-child(1),.pts-table .pts-planned-row td:nth-child(1){position:sticky;left:0;z-index:3;background:#f8f9fa}.pts-table th:nth-child(2),.pts-table .pts-planned-row td:nth-child(2){position:sticky;left:58px;z-index:3;max-width:260px;background:#f8f9fa}.pts-table th:nth-child(9),.pts-table .pts-planned-row td:nth-child(9),.pts-table .pts-outlook-row td:nth-child(1),.pts-table .pts-actual-row td:nth-child(1){min-width:118px;color:#212529;background:#0f1d30}.pts-planned-row td{background:#3b82f609}.pts-outlook-row td{background:#f59e0b09}.pts-actual-row td{background:#10b98107}.pts-date-cell{display:grid;gap:4px;min-width:92px}.pts-date-cell span{font-weight:700;color:#212529}.pts-date-cell small{width:fit-content;margin-top:0;border:1px solid rgba(59,130,246,.45);border-radius:6px;padding:2px 6px;color:#2e5c8a;background:#3b82f61a}.pts-date-outlook small{border-color:#f59e0b73;color:#bd5d38;background:#fff3cd}.pts-actual-row input.inline-input{min-width:132px;padding:6px 8px}.status-badge,.lli-badge{display:inline-flex;min-width:72px;justify-content:center;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:800}.status-badge.within-plan,.status-badge.delivered{border:1px solid rgba(16,185,129,.4);color:#1a7f37;background:#10b9811a}.status-badge.delayed,.lli-a{border:1px solid #F1AEB5;color:#cf222e;background:#f8d7da}.lli-b,.lli-c{border:1px solid rgba(245,158,11,.45);color:#bd5d38;background:#fff3cd}.lli-n{border:1px solid #ADB5BD;color:#2e5c8a;background:#ddf4ff}.pts-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid #DEE2E6;border-radius:7px;background:#f8f9fa}.pts-detail div,.pts-editor label{display:grid;gap:6px}.pts-detail strong,.pts-editor label{color:#6c757d;font-size:12px}.pts-detail span{color:#212529;font-size:13px}.pts-detail .wide,.pts-editor .wide{grid-column:1 / -1}.pts-editor{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:8px;padding:12px;border:1px solid #DEE2E6;border-radius:7px;background:#f8f9fa}.pts-editor input{padding:6px 8px}.pts-editor textarea{min-height:70px}.disabled-reason{display:inline-block;margin-left:6px;font-style:italic;align-self:center}.muted-line{display:block;margin-top:4px;color:#6c757d;white-space:pre-line}.notice.subtle{white-space:pre-line}.boq-main-row.coverage-complete td{background:#10b98114}.boq-main-row.coverage-none td{background:#f8d7da}.boq-main-row.coverage-low td{background:#ef44440d}.boq-main-row.coverage-medium td{background:#f59e0b12}.boq-main-row.coverage-high td{background:#84cc1612}.boq-main-row.coverage-neutral td{background:transparent}.coverage-text{display:block;margin-top:3px;color:#6c757d;font-size:11px;font-weight:600}.draft-basic-table table th{writing-mode:horizontal-tb;transform:none;white-space:normal;height:auto;min-width:92px;max-width:150px;line-height:1.2;text-align:left;vertical-align:top}.draft-basic-table table td{white-space:normal;font-size:11px;padding:5px}.draft-basic-table table td input,.draft-basic-table table td select{min-width:68px;max-width:90px;font-size:11px;padding:4px 5px}.draft-basic-table table td.text-cell{min-width:150px;max-width:220px}.schedule-ag-grid{width:100%;height:640px;min-height:420px}.schedule-ag-grid .ag-long-text{white-space:normal;line-height:1.35}.schedule-ag-grid .ag-date-input{width:145px;min-width:130px;height:28px;padding:2px 6px}.inventory-tab-body{display:grid;gap:16px}.inventory-file-list{display:grid;gap:6px;min-width:180px}.inventory-file-chip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px;border:1px solid #DEE2E6;border-radius:8px;background:#081424bf}.inventory-file-chip span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#495057;font-size:12px}.inventory-grid{min-height:460px}.po-editor-layout{display:grid;grid-template-columns:minmax(320px,430px) 1fr;gap:18px;align-items:start}.po-editor-form{align-self:start}.po-flow-note{margin:12px 0 14px;color:#6c757d;font-size:13px}.selected-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:14px 0;padding:14px;border:1px solid #DEE2E6;border-radius:12px;background:#ffffff05}.selected-summary{display:grid;gap:4px}.selected-summary span{color:#6c757d;font-size:13px}.po-toolbar,.po-signed-panel{flex-wrap:wrap}.po-signed-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;width:min(720px,100%)}.po-empty-workspace{border-style:dashed}.po-workspace{display:grid;gap:16px}.po-workspace-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:16px;border:1px solid rgba(245,158,11,.2);border-radius:12px;background:linear-gradient(180deg,#f59e0b14,#ffffff05)}.po-workspace-header h2{margin:4px 0;font-size:22px}.po-workspace-header p,.po-status-stack span{margin:0;color:#6c757d;font-size:13px}.po-eyebrow{color:#bd5d38;font-size:12px;font-weight:800;text-transform:uppercase}.po-status-stack{min-width:190px;display:grid;gap:4px;text-align:right}.po-status-stack strong{color:#bd5d38;font-size:22px}.subcontract-workspace-header{border-color:#22c55e38;background:linear-gradient(180deg,#22c55e12,#ffffff05)}.po-workspace-actions{display:flex;flex-wrap:wrap;gap:8px}.po-subtabs{margin:0}.po-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.po-detail-grid article{display:grid;gap:6px;padding:14px;border:1px solid #DEE2E6;border-radius:10px;background:#f8f9fa}.po-detail-grid span{color:#6c757d;font-size:12px}.po-detail-grid strong{overflow-wrap:anywhere;color:#212529;font-size:14px}.quote-lines tbody tr.table-selected-row td{background:#fff3cd}.subcontract-preview{display:grid;gap:10px;padding:18px;border:1px solid rgba(34,52,77,.85);border-radius:12px;background:#f8f9fa;color:#d9e5f2;line-height:1.65}.subcontract-preview h3{margin:0 0 4px;color:#bd5d38}.subcontract-preview p{margin:0;white-space:normal}.po-preview-shell{background:#ffffff08;border:1px solid rgba(245,158,11,.18);border-radius:14px;padding:14px}.po-preview-frame{width:100%;min-height:1000px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#fff}.boq-linked-row{background:#22c55e29!important}.boq-grid-row-selected{background:#3b82f633!important}@media(max-width:1200px){.po-editor-layout{grid-template-columns:1fr}.po-preview-frame{min-height:900px}}.module-page{display:grid;gap:16px;min-width:0}.module-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.module-toolbar h2{margin:0;font-size:18px}.module-toolbar span{display:block;margin-top:4px;color:#6c757d;font-size:13px}.module-toolbar button,.module-tabs button{border:1px solid #2b4260;border-radius:7px;padding:9px 13px;color:#212529;background:#f8f9fa;cursor:pointer}.module-toolbar button{color:#08111f;background:#f59e0b;border-color:#bd5d38;font-weight:800}.module-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid #DEE2E6;border-radius:8px;background:#f8f9fa}.module-tabs button.active{color:#bd5d38;border-color:#f59e0ba6;background:#fff3cd}.inventory-tab-body{min-width:0}.compact-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.compact-kpis article{padding:14px;border:1px solid #DEE2E6;border-radius:8px;background:#f8f9fa}.compact-kpis span{display:block;color:#6c757d;font-size:12px}.compact-kpis strong{display:block;margin-top:6px;color:#bd5d38;font-size:22px}.app-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#030812b8}.app-dialog{width:min(980px,96vw);max-height:90vh;display:flex;flex-direction:column;border:1px solid #2b4260;border-radius:10px;background:#f8f9fa;box-shadow:0 24px 80px #00000073;overflow:hidden}.app-dialog-header{display:flex;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #DEE2E6}.app-dialog-header h3{margin:0;font-size:18px}.app-dialog-header p{margin:4px 0 0;color:#6c757d;font-size:13px}.app-dialog-close{width:34px;height:34px;border:1px solid #2b4260;border-radius:7px;color:#212529;background:#f8f9fa;cursor:pointer}.app-dialog-body{min-height:0;overflow:auto;padding:16px 18px 18px}.record-form.compact-form{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.record-form.compact-form input,.record-form.compact-form select,.record-form.compact-form textarea{padding:8px 10px}.record-form.compact-form button[type=submit]{align-self:end}.master-detail{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:14px;min-height:520px;min-width:0}.master-list,.master-detail-panel{min-width:0;border:1px solid #DEE2E6;border-radius:8px;background:#f8f9fa}.panel-scroll{min-height:0;max-height:calc(100vh - 260px);overflow:auto}.compact-register{display:grid;gap:8px;padding:12px}.register-head{display:grid;gap:8px;padding-bottom:8px;border-bottom:1px solid #1f3047}.register-item{display:grid;gap:5px;width:100%;border:1px solid #DEE2E6;border-radius:8px;padding:10px;color:#212529;background:#f8f9fa;text-align:left;cursor:pointer}.register-item:hover,.register-item-active{border-color:#f59e0bb3;background:#fff3cd}.register-item-title{font-weight:800;color:#212529}.register-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6c757d;font-size:12px}.detail-panel-content{display:grid;gap:16px;padding:16px}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #1f3047}.detail-title-row span{color:#6c757d;font-size:12px}.detail-title-row h3{margin:4px 0 0;font-size:20px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.contract-position-card{display:grid;gap:12px;border:1px solid #DEE2E6;border-radius:10px;padding:14px;background:#fff}.contract-position-card h4{margin:0 0 8px;color:#6c757d;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.document-category-groups{display:grid;gap:10px}.document-category-group{border:1px solid #DEE2E6;border-radius:10px;overflow:hidden;background:#fff}.document-category-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;background:#f8f9fa;color:#212529;cursor:pointer;text-align:left;font-size:14px}.document-category-head strong{flex:1;font-weight:800}.document-category-head span{color:#6c757d;font-size:12px}.document-category-table table td,.document-category-table table th{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.document-category-table tr.selected-row td{background:#fff3cd}.detail-field{min-width:0;padding:11px;border:1px solid #DEE2E6;border-radius:8px;background:#f8f9fa}.detail-field span{display:block;margin-bottom:6px;color:#6c757d;font-size:12px}.detail-field strong{display:block;color:#212529;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-actions{display:flex;flex-wrap:wrap;gap:10px}.detail-actions button,.empty-detail button{border:1px solid #2b4260;border-radius:7px;padding:9px 13px;color:#212529;background:#f8f9fa;cursor:pointer}.detail-actions button:first-child,.empty-detail button{color:#08111f;border-color:#bd5d38;background:#f59e0b;font-weight:800}.detail-actions button.danger{color:#fecaca;border-color:#ef4444;background:#7f1d1d59}.empty-detail{min-height:360px;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center;color:#6c757d}.empty-detail strong{color:#212529;font-size:18px}@media(max-width:980px){.master-detail{grid-template-columns:1fr}.panel-scroll{max-height:none}}.procurement-shell{min-height:0;overflow:hidden}.procurement-toolbar{align-items:flex-start}.procurement-toolbar small{display:block;color:var(--muted);margin-top:4px}.procurement-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.procurement-section-tabs{position:sticky;top:0;z-index:5;background:var(--panel);padding-top:8px;padding-bottom:8px}.procurement-detail{min-height:0;max-height:calc(100vh - 290px);overflow:auto;padding-right:4px}.procurement-register,.procurement-detail-panel{min-width:0}.procurement-action-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.procurement-redesign-shell .supply-request-register th:nth-child(2),.procurement-redesign-shell .supply-request-register td:nth-child(2),.procurement-redesign-shell .rfq-register th:nth-child(2),.procurement-redesign-shell .rfq-register td:nth-child(2){min-width:190px;max-width:280px;white-space:normal;overflow-wrap:break-word;word-break:normal}.procurement-redesign-shell .supply-request-register th:nth-child(5),.procurement-redesign-shell .supply-request-register td:nth-child(5){width:130px;min-width:130px}.procurement-redesign-shell .supply-request-register th:nth-child(6),.procurement-redesign-shell .supply-request-register td:nth-child(6),.procurement-redesign-shell .rfq-register th:nth-child(5),.procurement-redesign-shell .rfq-register td:nth-child(5){width:180px;min-width:180px}.procurement-table-scroll,.procurement-comparison-scroll{overflow:auto;max-width:100%}.procurement-status-badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:11px;line-height:1.2;color:var(--text);background:#22508238;white-space:nowrap}.procurement-status-badge.draft,.procurement-status-badge.returned{color:#bd5d38;border-color:#fbbf2473;background:#fbbf241f}.procurement-status-badge.approved,.procurement-status-badge.issued,.procurement-status-badge.acknowledged,.procurement-status-badge.closed{color:#34d399;border-color:#34d39973;background:#34d3991f}.procurement-status-badge.cancelled,.procurement-status-badge.rejected{color:#fb7185;border-color:#fb718573;background:#fb71851f}.approval-timeline{display:flex;flex-wrap:wrap;gap:8px}.approval-step,.vendor-summary-card{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#0814268c}.cost-control-layout{min-height:0;overflow:hidden}.cost-control-toolbar{align-items:flex-start}.cost-control-toolbar small,.cost-control-toolbar span{color:var(--muted)}.cost-control-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.cost-control-division-register,.cost-control-division-detail,.cost-control-workspace,.cost-control-adjustment-panel,.cost-control-task-code-panel,.cost-control-submission-panel{min-width:0}.panel-body>.panel-head.tight,.cost-control-workspace>.panel-head.tight,.cost-control-adjustment-panel>.panel-head.tight,.cost-control-submission-panel>.panel-head.tight,.cost-control-task-code-panel>.panel-head.tight{margin-left:0;margin-right:0}.cost-control-items-grid{max-width:100%;overflow:hidden}.cost-control-grid{height:min(58vh,620px)}.cost-control-selected-division,.cost-control-progress-badge{display:inline-flex;align-items:center;border:1px solid rgba(52,211,153,.4);border-radius:999px;padding:3px 8px;color:#34d399;background:#34d3991a;font-size:11px}.cost-control-adjustment-panel label{display:grid;gap:6px;margin-top:12px}@media(max-width:980px){.cost-control-grid{height:520px}}.client-boq-layout,.owner-ipc-layout{min-height:0;overflow:hidden}.client-boq-toolbar{align-items:flex-start}.client-boq-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.client-boq-file-register,.client-boq-sheet-register,.mapping-workspace,.mapping-client-detail,.mapping-internal-register,.mapping-coverage,.owner-ipc-register,.owner-ipc-detail,.owner-ipc-certification,.owner-ipc-attachments,.owner-ipc-package-impact{min-width:0}.client-boq-row-grid{height:min(60vh,650px);max-width:100%;overflow:hidden}.owner-ipc-operations-grid,.owner-ipc-impact-grid{overflow:auto;max-width:100%}@media(max-width:980px){.client-boq-row-grid{height:520px}}.dashboard-layout,.project-dashboard-layout,.variation-layout,.site-execution-layout,.quality-layout,.accounting-layout{min-height:0;overflow:hidden}.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashboard-grid,.dashboard-risk-list,.generic-register,.generic-detail,.project-dashboard-tabs{min-width:0}.package-workflow .table-wrap table th,.package-workflow .table-wrap table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top;line-height:1.35}.package-workflow .table-wrap table th{min-width:82px;max-width:170px}.package-workflow .table-wrap table td{min-width:82px}.package-workflow .table-wrap table td.text-cell{min-width:230px;max-width:460px}.package-workflow .table-wrap table td input,.package-workflow .table-wrap table td select,.package-workflow .table-wrap table td textarea{width:100%;min-width:0;max-width:100%}.content>*{min-width:0}.topbar,.panel-head,.boq-selected-toolbar,.comparison-title,.selected-summary,.procurement-toolbar,.client-boq-toolbar{flex-wrap:wrap;min-width:0}.topbar>div,.panel-head>div,.comparison-title>div,.selected-summary>div{min-width:0}.topbar select{max-width:100%}.module-tabs,.procurement-section-tabs,.po-subtabs{max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}.module-tabs button,.procurement-section-tabs button,.po-subtabs button{flex:0 0 auto}.panel,.table-wrap,.workflow-panel,.pts-panel,.master-detail,.procurement-shell,.owner-ipc-layout,.dashboard-layout,.project-dashboard-layout,.variation-layout,.site-execution-layout,.quality-layout,.accounting-layout{max-width:100%}.composition-workspace{display:grid;gap:10px;min-width:0;min-height:680px;padding:12px}.schedule-snapshot-workflow{min-width:0}.schedule-page-head{align-items:flex-end;gap:16px}.schedule-header-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.schedule-header-actions label,.schedule-compare-controls label{display:grid;gap:5px;color:#6c757d;font-size:12px}.schedule-header-actions select{min-width:220px}.schedule-message{margin:12px 16px 0}.schedule-tab-content{display:grid;gap:14px;padding:16px;min-width:0}.schedule-kpis{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.schedule-kpis>div{min-height:88px}.schedule-kpis small{display:block;margin-top:5px;color:#6c757d;font-size:11px}.schedule-import-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:14px;align-items:start}.schedule-card{min-width:0;border:1px solid #DEE2E6;border-radius:8px;background:#fff;overflow:hidden}.schedule-card>header{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #DEE2E6}.schedule-card>header h3{margin:0 0 3px;font-size:15px}.schedule-card>header span{color:#6c757d;font-size:12px}.schedule-card>.primary,.schedule-card>.upload-box,.schedule-card>.schedule-preview-grid,.schedule-card>details{margin:12px}.schedule-step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #DEE2E6}.schedule-step>strong{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#08111e;background:#f59e0b}.schedule-step label,.schedule-step>div{display:grid;gap:4px;min-width:0}.schedule-step small{color:#6c757d;white-space:normal;overflow-wrap:anywhere}.schedule-file-line{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;color:#6c757d}.schedule-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.schedule-preview-grid>div{display:grid;gap:4px;min-width:0;padding:9px 10px;border:1px solid #DEE2E6;border-radius:6px;background:#07111f}.schedule-preview-grid span{color:#6c757d;font-size:11px}.schedule-preview-grid strong{white-space:normal;overflow-wrap:anywhere;font-size:13px}.schedule-warning-check{display:flex;align-items:flex-start;gap:8px;margin:12px;padding:10px;border:1px solid #a16207;border-radius:6px;color:#fcd34d;background:#a162071f;white-space:normal}.schedule-warning-list{max-height:220px;overflow:auto;color:#fcd34d}.schedule-revision-list{display:grid;gap:6px;padding:12px}.schedule-revision-list>div{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:8px;padding:7px 8px;border:1px solid #DEE2E6;border-radius:6px}.schedule-revision-list span{white-space:normal;overflow-wrap:anywhere}.schedule-revision-list small{color:#6c757d}.schedule-apply-mapping{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 12px 12px;padding:11px 12px;border:1px solid #28517d;border-radius:7px;background:#0c1e32}.schedule-apply-mapping>div{display:grid;gap:3px;min-width:0}.schedule-apply-mapping span{color:#9fb3ca;font-size:12px;white-space:normal;overflow-wrap:anywhere}.schedule-mapping-advanced{padding:10px 12px;border:1px solid #DEE2E6;border-radius:7px}.schedule-mapping-advanced>summary{cursor:pointer;font-weight:700}.schedule-mapping-advanced>p{color:#6c757d;font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.schedule-mapping-advanced .upload-box{margin:10px 0}.schedule-mapping-advanced .schedule-revision-list{padding:10px 0 0}.schedule-legacy,.schedule-exceptions{border:1px solid #DEE2E6;border-radius:7px;padding:10px 12px}.schedule-legacy summary,.schedule-exceptions summary{cursor:pointer;font-weight:700}.schedule-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.schedule-filterbar .search{min-width:min(420px,100%)}.schedule-filterbar>span{margin-left:auto;color:#6c757d}.schedule-readonly-note{padding:9px 11px;border:1px solid #2563eb;border-radius:6px;color:#bfdbfe;background:#2563eb1a;white-space:normal;overflow-wrap:anywhere}.schedule-snapshot-grid{width:100%;min-width:0;border:1px solid #DEE2E6;border-radius:8px;overflow:hidden}.schedule-snapshot-grid .schedule-wrap-cell,.schedule-snapshot-grid .schedule-wrap-cell .ag-cell-wrapper,.schedule-snapshot-grid .schedule-wrap-cell .ag-cell-value{white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word;text-overflow:clip;line-height:1.35;align-items:flex-start}.schedule-snapshot-grid .schedule-wrap-cell{padding-top:7px;padding-bottom:7px}.schedule-snapshot-grid .schedule-compact-cell,.schedule-snapshot-grid .schedule-compact-cell .ag-cell-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-snapshot-grid .ag-header-cell-label,.schedule-snapshot-grid .ag-header-cell-text{white-space:normal;overflow-wrap:anywhere;line-height:1.2}.schedule-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#000000b3}.schedule-dialog{width:min(900px,96vw);max-height:88vh;overflow:auto;border:1px solid #334a68;border-radius:8px;background:#fff;box-shadow:0 24px 70px #0000008c}.schedule-dialog>header{display:flex;justify-content:space-between;gap:12px;padding:15px;border-bottom:1px solid #DEE2E6}.schedule-dialog>header h3{margin:0 0 4px}.schedule-dialog>header span{white-space:normal;overflow-wrap:anywhere;color:#495057}.schedule-dialog>header button{width:34px;height:34px;padding:0;font-size:23px}.schedule-dialog .schedule-preview-grid{padding:14px}.schedule-link-list{display:grid;gap:7px;padding:0 14px 14px}.schedule-link-list>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;padding:8px;border:1px solid #DEE2E6;border-radius:6px}.schedule-link-list span{white-space:normal;overflow-wrap:anywhere}.schedule-report-title{display:flex;justify-content:space-between;gap:18px;padding:16px;border:1px solid #DEE2E6;border-left:4px solid #f59e0b;background:#fff}.schedule-report-title h2{margin:3px 0}.schedule-report-title p{margin:0;color:#6c757d}.schedule-report-title>div:last-child{display:grid;align-content:start;justify-items:end;gap:4px}.schedule-dashboard-primary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.schedule-primary-kpi{display:grid;align-content:start;gap:7px;min-height:126px;padding:15px;border:1px solid #29405d;border-top:3px solid #f59e0b;border-radius:7px;background:#fff}.schedule-primary-kpi>span{color:#9fb3ca;font-size:12px;font-weight:700}.schedule-primary-kpi>strong{color:#1f3a5f;font-size:24px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.schedule-primary-kpi>small{color:#6c757d;font-size:12px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}.schedule-status-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #DEE2E6;border-radius:7px;background:#081421;overflow:hidden}.schedule-status-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:11px 14px;border-right:1px solid #22344d}.schedule-status-summary>div:last-child{border-right:0}.schedule-status-summary span{color:#6c757d;font-size:12px}.schedule-status-summary strong{font-size:16px}.schedule-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.schedule-dashboard-grid .wide{grid-column:1 / -1}.schedule-dashboard-core{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);align-items:start}.schedule-core-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-core-charts>div+div{border-left:1px solid #22344d}.schedule-core-charts h4{margin:0;padding:12px 14px 0;color:#495057;font-size:12px}.schedule-health-list{display:grid}.schedule-health-list>div{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #1b2d43}.schedule-health-list>div:last-child{border-bottom:0}.schedule-health-list span{color:#6c757d;font-size:12px}.schedule-health-list strong{text-align:right;font-size:13px}.schedule-bar-chart{display:grid;gap:8px;padding:14px}.schedule-bar-row{display:grid;grid-template-columns:minmax(120px,210px) minmax(100px,1fr) 75px;gap:9px;align-items:center}.schedule-bar-row>span{white-space:normal;overflow-wrap:anywhere;font-size:12px}.schedule-bar-row>div{height:12px;border-radius:3px;background:#12243a;overflow:hidden}.schedule-bar-row i{display:block;height:100%;background:#f59e0b}.schedule-bar-row strong{text-align:right;font-size:12px}.schedule-evm-card{margin-top:14px}.schedule-evm-card .schedule-kpis{padding:12px}.schedule-wbs-progress{max-height:620px}.schedule-wbs-progress table{min-width:980px;table-layout:fixed}.schedule-wbs-progress th:nth-child(1){width:28%}.schedule-wbs-progress th:nth-child(2){width:47%}.schedule-wbs-progress th:nth-child(3){width:10%}.schedule-wbs-progress th:nth-child(4){width:15%}.schedule-wbs-progress th,.schedule-wbs-progress td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.schedule-progress-meter{display:grid;grid-template-columns:minmax(90px,1fr) 52px;gap:8px;align-items:center}.schedule-progress-meter>span{height:10px;overflow:hidden;border-radius:3px;background:#12243a}.schedule-progress-meter i{display:block;height:100%;background:#f59e0b}.schedule-progress-meter strong{text-align:right;font-size:12px}.schedule-quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;padding:14px}.schedule-quality-grid>div{display:flex;justify-content:space-between;gap:8px;padding:8px;border:1px solid #DEE2E6;border-radius:5px}.schedule-data-note{margin:0;padding:0 14px 14px;color:#6c757d}.schedule-quality-details{padding:0}.schedule-quality-details>summary{cursor:pointer;padding:13px 14px;font-weight:700}.schedule-compare-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.schedule-compare-controls select{min-width:210px}.schedule-tab-content table th,.schedule-tab-content table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.schedule-tab-content table td:not(.text-cell){word-break:normal}.schedule-tab-content .mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.schedule-tab-content .success{color:#4ade80}.schedule-tab-content .warning{color:#bd5d38}.schedule-tab-content .danger{color:#f87171}.schedule-tab-content .muted{color:#6c757d}@media(max-width:1000px){.schedule-import-layout,.schedule-dashboard-grid{grid-template-columns:1fr}.schedule-dashboard-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-core-charts{grid-template-columns:1fr}.schedule-core-charts>div+div{border-left:0;border-top:1px solid #DEE2E6}.schedule-dashboard-grid .wide{grid-column:auto}.schedule-report-title{flex-direction:column}.schedule-report-title>div:last-child{justify-items:start}}@media(max-width:650px){.schedule-dashboard-primary,.schedule-status-summary{grid-template-columns:1fr}.schedule-status-summary>div{border-right:0;border-bottom:1px solid #DEE2E6}.schedule-status-summary>div:last-child{border-bottom:0}.schedule-apply-mapping{align-items:stretch;flex-direction:column}}@media print{body{background:#fff!important;color:#111!important}.sidebar,.menubar,.topbar,.module-tabs,.schedule-page-head,.schedule-message,.schedule-filterbar,.schedule-compare-controls,button{display:none!important}.main,.content,.panel,.schedule-tab-content,.schedule-card{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border-color:#bbb!important;background:#fff!important;color:#111!important;box-shadow:none!important}.schedule-snapshot-workflow>.schedule-tab-content:not(.schedule-print-view){display:none!important}.schedule-print-view{display:grid!important}.schedule-kpis>div,.schedule-report-title,.schedule-card,.schedule-dashboard-grid{break-inside:avoid;background:#fff!important;color:#111!important}.schedule-bar-row>div{background:#e5e7eb!important}.schedule-bar-row i{background:#555!important}table{width:100%;border-collapse:collapse}thead{display:table-header-group}th,td{color:#111!important;border:1px solid #bbb!important}@page{size:A3 landscape;margin:12mm}}.internal-execution-page{display:grid;gap:12px;min-width:0}.internal-page-head button,.internal-section-actions button,.internal-detail-head button{display:inline-flex;align-items:center;gap:6px}.internal-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#8aa0bd;font-size:12px}.internal-breadcrumb button{padding:0;border:0;background:transparent;color:#bd5d38;display:inline;width:auto;flex:0 0 auto}.internal-master-detail{display:grid;grid-template-columns:var(--internal-list-width, 340px) minmax(0,1fr);gap:10px;min-height:640px}.internal-package-list,.internal-detail{min-width:0;overflow:hidden}.internal-package-list{display:flex;flex-direction:column}.internal-list-tools{display:grid;gap:7px;padding:10px;border-bottom:1px solid #DEE2E6}.internal-list-tools label{display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid #DEE2E6;background:#0a1728}.internal-list-tools input{flex:1;min-width:0;border:0;background:transparent}.internal-list-tools select{width:100%}.internal-resize-control{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:5px 10px;color:#8aa0bd;font-size:11px;border-bottom:1px solid #DEE2E6}.internal-resize-control input{width:100%;padding:0}.internal-package-rows{overflow:auto;max-height:650px}.internal-package-rows>button{width:100%;display:grid;gap:5px;padding:11px 12px;text-align:left;border:0;border-bottom:1px solid #DEE2E6;border-left:3px solid transparent;border-radius:0;background:transparent;transition:background .15s ease,border-color .15s ease}.internal-package-rows>button:hover{background:#0a1728}.internal-package-rows>button.selected{background:#2d7dd224;border-left-color:#bd5d38}.internal-package-rows>button.active-execution{border-left-color:#4c9aff}.internal-package-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.internal-package-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#212529}.internal-package-rows small{color:#8aa0bd;white-space:normal;overflow-wrap:anywhere}.internal-status{display:inline-flex;align-items:center;gap:4px}.internal-status .procurement-status-badge{white-space:nowrap}.internal-status.not_started .procurement-status-badge{border-color:#57606a;color:#b1bac4;background:#57606a29}.internal-status.active .procurement-status-badge{border-color:#388bfd;color:#79c0ff;background:#388bfd24}.internal-status.completed .procurement-status-badge{border-color:#2da44e;color:#7ee787;background:#2ea04324}.internal-status.closed .procurement-status-badge{border-color:#30363d;color:#8c959f;background:#30363d80}.internal-status-dot{width:7px;height:7px;border-radius:50%;background:#8c959f}.internal-status.active .internal-status-dot{background:#4c9aff;animation:internal-status-pulse 1.8s ease-in-out infinite}.internal-status.completed .internal-status-dot{background:#2da44e}.internal-status.closed .internal-status-dot{background:#57606a}@keyframes internal-status-pulse{0%,to{opacity:.45}50%{opacity:1;box-shadow:0 0 0 3px #4c9aff29}}.internal-detail{padding:12px}.internal-detail-head{padding:0 0 10px}.internal-detail-head h3{margin:6px 0 2px;letter-spacing:0;overflow-wrap:anywhere}.internal-back-list{display:none!important}.internal-tabs{margin:0 -12px 12px;padding-inline:12px}.internal-tabs button{display:inline-flex;align-items:center;gap:6px}.tab-count{min-width:20px;padding:1px 6px;border-radius:10px;background:#ffffff14;font-size:11px}.internal-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.internal-kpis article{min-width:0}.internal-kpis em{color:#8aa0bd;font-size:11px;font-style:normal;white-space:normal}.comparison-title{margin:14px 0 8px;letter-spacing:0;font-size:13px;color:#212529}.variance-positive{color:#3fb950!important}.variance-negative{color:#f85149!important}.variance-neutral{color:#8c959f!important}.internal-info-label{display:inline-flex;align-items:center;gap:4px}.icon-help{display:inline-flex;padding:0;border:0;background:transparent;color:#8aa0bd}.internal-info-callout{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;margin:8px 0;border:1px solid rgba(56,139,253,.35);background:#388bfd17;color:#9ecbff}.internal-cost-table th,.internal-cost-table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}.internal-cost-table .total-row>*{border-top:2px solid #f59e0b;font-weight:700}.internal-last-updated{display:block;margin-top:8px;color:#8aa0bd;text-align:right}.internal-print-header{display:none}.internal-section-actions{justify-content:flex-end;margin-bottom:6px}.internal-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:#8aa0bd}.internal-empty strong{color:#212529;font-size:15px}.internal-empty button{margin-top:5px}.internal-toast{position:sticky;top:8px;z-index:25;display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid;background:#fff;box-shadow:0 8px 24px #0000003d}.internal-toast span{flex:1;white-space:normal;overflow-wrap:anywhere}.internal-toast.success{border-color:#2ea04399;color:#7ee787}.internal-toast.error{border-color:#f85149a6;color:#ff7b72}.internal-list-skeleton{display:grid;gap:1px}.internal-list-skeleton div{height:76px;background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08);background-size:200% 100%;animation:internal-skeleton 1.2s linear infinite}.internal-kpi-skeleton{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.internal-kpi-skeleton div{height:94px;border:1px solid #DEE2E6;background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08);background-size:200% 100%;animation:internal-skeleton 1.2s linear infinite}.internal-detail-loading>span{display:block;padding:15px;text-align:center;color:#8aa0bd}@keyframes internal-skeleton{to{background-position:-200% 0}}.internal-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.internal-entry-form label{min-width:0}.internal-entry-form .required,.field-error-text{color:#f85149}.internal-entry-form .field-error{border-color:#f85149;box-shadow:0 0 0 1px #f85149}.field-error-text{display:block;margin-top:3px;font-size:11px}.internal-entry-total{display:flex;align-items:center;justify-content:space-between;padding:11px;border:1px solid #DEE2E6;background:#0a1728}.internal-entry-total strong{color:#bd5d38;font-size:18px}.internal-entries-grid,.internal-issues-grid{height:min(620px,66vh)}.internal-entries-grid .ag-cell,.internal-issues-grid .ag-cell{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.internal-entries-grid .ag-header-cell-text,.internal-issues-grid .ag-header-cell-text{white-space:normal;overflow-wrap:anywhere}.internal-issue-kpis{margin-bottom:10px}.internal-issue-kpis article{min-width:180px}.internal-module-skeleton{min-height:500px}.internal-execution-page button:focus-visible,.internal-execution-page input:focus-visible,.internal-execution-page select:focus-visible,.internal-execution-page textarea:focus-visible{outline:2px solid #4c9aff;outline-offset:2px}@media(max-width:1399px){.internal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1023px){.internal-master-detail{grid-template-columns:1fr}.internal-package-list{max-height:420px}.internal-master-detail.show-detail .internal-package-list{display:none}.internal-master-detail:not(.show-detail) .internal-detail{display:none}.internal-back-list{display:inline-flex!important}.internal-resize-control{display:none}.internal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.internal-kpis,.internal-kpi-skeleton,.internal-entry-form{grid-template-columns:1fr}.internal-entry-form .wide{grid-column:auto}.internal-detail{padding:9px}.internal-tabs{overflow-x:auto;flex-wrap:nowrap}.internal-entries-grid,.internal-issues-grid{height:68vh;min-width:720px}}@media print{.sidebar,.topbar,.site-execution-module>.module-tabs,.internal-page-head,.internal-breadcrumb,.internal-package-list,.internal-tabs,.internal-section-actions,.internal-toast,.internal-detail-head{display:none!important}.app-shell,.app-main,.content,.internal-master-detail,.internal-detail{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important;border:0!important}.internal-summary-print{display:block!important;color:#000!important}.internal-print-header{display:grid;gap:3px;margin-bottom:12px;color:#000}.internal-kpis{grid-template-columns:repeat(4,1fr)}.internal-kpis article,.internal-cost-table table{break-inside:avoid;background:#fff!important;color:#000!important;border-color:#888!important}.internal-cost-table tr{break-inside:avoid}@page{margin:14mm;@bottom-center{content:"Page " counter(page) " of " counter(pages)}}}.boq-cleanup-table th,.boq-cleanup-table td,.boq-cleanup-preview .error,.boq-cleanup-preview li,.composition-stale-warning{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}.composition-stale-warning{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.composition-reconciliation{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 11px;border:1px solid #2a3f5d;background:#0a1728}.composition-reconciliation.complete{border-color:#34d3998c}.composition-reconciliation.incomplete{border-color:#fbbf248c}.composition-reconciliation span{color:#6c757d}.composition-reconciliation b{color:#212529}.link-button{width:auto;padding:0;border:0;background:transparent;color:#2e5c8a}.composition-toolbar,.composition-global-search,.composition-actions,.composition-search-footer,.composition-package-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.composition-toolbar{justify-content:space-between}.composition-global-search{flex:1;min-width:min(100%,480px)}.composition-global-search input{flex:1;min-width:220px}.composition-global-search select{width:auto;min-width:185px}.composition-actions{justify-content:flex-end}.composition-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 11px;border:1px solid #f59e0b;background:#fff3cd;cursor:grab}.composition-selection-bar.blocked{border-color:#fb7185;cursor:not-allowed}.composition-selection-bar>div:first-child{display:grid;gap:2px}.composition-selection-bar span,.composition-selection-bar small{color:#6c757d}.composition-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px;min-width:0;min-height:590px}.composition-main,.composition-sidebar{min-width:0;border:1px solid #DEE2E6;background:#f8f9fa}.composition-main{display:grid;grid-template-rows:auto minmax(0,1fr)}.composition-package-header{justify-content:space-between;padding:11px;border-bottom:1px solid #DEE2E6}.composition-package-header h3{margin:3px 0;white-space:normal;overflow-wrap:anywhere}.composition-package-header span,.composition-package-header small{color:#6c757d}.composition-resource-grid .data-grid-theme{width:100%}.composition-sidebar{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;max-height:660px}.composition-sidebar>header{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #DEE2E6}.composition-sidebar>header small{color:#6c757d}.composition-sidebar-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border-bottom:1px solid #DEE2E6}.composition-sidebar-filters input{grid-column:1 / -1}.composition-sidebar-filters input,.composition-sidebar-filters select{padding:7px 8px}.composition-package-list{display:grid;align-content:start;gap:5px;overflow:auto;padding:7px}.composition-package-list>button{display:block;align-self:start;width:100%;min-height:74px;height:auto;padding:9px;border:1px solid #DEE2E6;background:#fff;color:#212529;text-align:left;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word;line-height:1.25}.composition-package-list>button>.composition-card-body{display:grid;gap:4px;width:100%;min-width:0}.composition-package-list>button strong,.composition-package-list>button>.composition-card-body>span,.composition-package-list>button small{display:block;min-width:0;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word}.composition-package-list>button strong{color:#212529;line-height:1.25}.composition-package-list>button span,.composition-package-list>button small{color:#6c757d;line-height:1.25}.composition-package-list>button:hover{border-color:#adb5bd;background:#f8f9fa}.composition-package-list>button.active{border-color:#bd5d38;background:#f59e0b17}.composition-package-list>button.drop-target{border-color:#34d399;background:#34d3991f}.composition-package-list>button.used{border-left:3px solid #fbbf24}.composition-package-list>button.awarded{border-left:3px solid #15803D;background:#f3faf5}.composition-package-list>button.awarded:hover{background:#e8f5ec}.composition-package-list>button.awarded.active{background:#f59e0b17}.composition-package-list>button .awarded-flag{color:#15803d;font-weight:600}.composition-package-list>button em{display:inline-block;font-style:normal;font-size:10px;font-weight:700;padding:0 5px;border-radius:9px;letter-spacing:.02em;margin-right:5px;background:#e8f0fe;color:#1e3a5f}.composition-package-list>button em.route-PAYROLL{background:#fce8e6;color:#b3261e}.composition-package-list>button em.route-OVERHEAD{background:#fef3c7;color:#92400e}.composition-package-list>button em.route-INTERNAL{background:#e6f4ea;color:#15803d}.composition-create-drop{margin:7px;border:1px dashed #ADB5BD;background:#f8f9fa;color:#495057}.composition-create-drop.active{border-color:#34d399;color:#15803d;background:#34d3991a}.composition-search-workspace{display:grid;gap:10px;min-width:0}.app-dialog:has(.composition-search-workspace){width:min(96vw,1550px);max-width:1550px;height:min(92vh,900px)}.composition-search-footer{justify-content:space-between}.composition-move-summary{display:grid;grid-template-columns:150px minmax(200px,1fr);gap:7px 12px;padding:10px;border:1px solid #DEE2E6}.composition-move-summary span{color:#6c757d}.composition-move-summary strong{white-space:normal;overflow-wrap:anywhere}.composition-validation-details li{margin:6px 0;white-space:normal;overflow-wrap:anywhere}@media(max-width:1080px){.composition-layout{grid-template-columns:1fr}.composition-sidebar{max-height:420px}}@media(max-width:700px){.composition-sidebar-filters{grid-template-columns:1fr}.composition-sidebar-filters input{grid-column:auto}.composition-move-summary{grid-template-columns:1fr}}:focus-visible{outline:2px solid var(--erp-info);outline-offset:2px}button,input,select,textarea{min-height:36px}.app-shell{grid-template-columns:var(--erp-sidebar-width) minmax(0,1fr);background:var(--erp-gray-50);color:var(--erp-gray-800);transition:grid-template-columns var(--erp-transition-normal)}.app-shell.sidebar-collapsed{grid-template-columns:var(--erp-sidebar-collapsed) minmax(0,1fr)}.sidebar{gap:var(--erp-space-4);width:auto;overflow-x:hidden;padding:0;border-right:0;background:var(--erp-navy);color:#fff;box-shadow:var(--erp-shadow-md)}.brand{min-height:var(--erp-topbar-height);padding:var(--erp-space-3) var(--erp-space-4);border-bottom:1px solid rgba(255,255,255,.1)}.brand strong{color:#fff;font-size:var(--erp-font-size-base);line-height:var(--erp-line-height-tight)}.brand span{color:#ffffffb8;font-size:var(--erp-font-size-sm)}.app-shell.sidebar-collapsed .brand>div:not(.brand-mark),.app-shell.sidebar-collapsed nav button span,.app-shell.sidebar-collapsed .logout span,.app-shell.sidebar-collapsed .sidebar-department summary{display:none}.sidebar nav,.sidebar-department,.sidebar-department-pages,.sidebar-department-pages button{min-width:0;max-width:100%}.sidebar-department-pages button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.procurement-overview-packages{border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-lg);background:#fff}.procurement-overview-packages>summary{padding:var(--erp-space-4);color:var(--erp-navy);font-weight:800;cursor:pointer}.procurement-overview-packages[open]>summary{border-bottom:1px solid var(--erp-gray-200)}.procurement-overview-packages>.table-wrap{border:0;border-radius:0 0 var(--erp-radius-lg) var(--erp-radius-lg)}.procurement-commitment-selector .actions-row .active{color:#fff;border-color:var(--erp-navy);background:var(--erp-navy)}.app-shell.sidebar-collapsed .brand,.app-shell.sidebar-collapsed nav button,.app-shell.sidebar-collapsed .logout{justify-content:center}nav{gap:var(--erp-space-1);padding:0 var(--erp-space-2) var(--erp-space-2)}.sidebar-department{margin-bottom:var(--erp-space-2)}.sidebar-department summary{padding:var(--erp-space-2) var(--erp-space-3);color:#ffffff94;font-size:var(--erp-font-size-xs);font-weight:800;letter-spacing:0;line-height:var(--erp-line-height-tight);text-transform:uppercase;cursor:pointer;list-style-position:inside}.sidebar-department summary:hover{color:#fff}.sidebar-department-pages{display:grid;gap:var(--erp-space-1)}.app-shell.sidebar-collapsed .sidebar-department{margin-bottom:0}.app-shell.sidebar-collapsed .sidebar-department-pages{display:grid!important}nav:before,.logout:before{content:"";display:block;height:1px;margin:var(--erp-space-2) var(--erp-space-2);background:#ffffff1a}nav button,.logout{position:relative;min-height:40px;border-radius:var(--erp-radius-md);padding:var(--erp-space-2) var(--erp-space-3);color:#ffffffd1;font-size:13px;transition:color var(--erp-transition-fast),background var(--erp-transition-fast),border-color var(--erp-transition-fast)}nav button svg,.logout svg{width:18px;height:18px;flex:0 0 18px}nav button:hover{color:#fff;background:#243f66}nav button.active{color:#fff;background:#2a4a75}nav button.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:var(--erp-radius-full);background:#fff}.logout{margin:auto var(--erp-space-2) var(--erp-space-4);border:1px solid rgba(255,255,255,.16)}.logout:hover{color:var(--erp-danger);background:#ffffff14}.app-main{background:var(--erp-gray-50)}.topbar{position:sticky;top:0;z-index:var(--erp-z-sticky);min-height:var(--erp-topbar-height);align-items:center;padding:0 var(--erp-space-6);border-bottom:0;background:#fff;box-shadow:var(--erp-shadow-sm)}.topbar-left,.topbar-center,.topbar-right{display:flex;align-items:center;gap:var(--erp-space-3);min-width:0}.topbar-center{flex:1;flex-direction:column;align-items:flex-start;gap:0}.shell-icon-button.my-tasks-button{width:auto;display:inline-flex;align-items:center;gap:6px;padding:0 12px 0 10px;font-weight:700;font-size:13px}.my-tasks-word{white-space:nowrap}@media(max-width:1100px){.my-tasks-word{display:none}.shell-icon-button.my-tasks-button{width:40px;padding:0}}.shell-icon-button{width:40px;min-width:40px;height:40px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-lg);color:var(--erp-gray-700);background:#fff;cursor:pointer;transition:background var(--erp-transition-fast),border-color var(--erp-transition-fast),color var(--erp-transition-fast)}.shell-icon-button:hover{color:var(--erp-navy);border-color:var(--erp-blue-light);background:var(--erp-blue-lighter)}.topbar h1{color:var(--erp-gray-800);font-size:var(--erp-font-size-xl);line-height:var(--erp-line-height-tight)}.topbar p{max-width:860px;color:var(--erp-gray-500);font-size:var(--erp-font-size-sm)}.topbar select{max-width:360px;border-color:var(--erp-gray-300);border-radius:var(--erp-radius-lg);color:var(--erp-gray-800);background:#fff}.user-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:var(--erp-radius-full);color:#fff;background:var(--erp-navy);font-size:var(--erp-font-size-sm);font-weight:800}.app-shell.topnav{display:flex;flex-direction:column;grid-template-columns:none}.topbar-brand{display:flex;align-items:center;gap:var(--erp-space-3);min-width:0}.topbar-brand-text strong{display:block;color:var(--erp-gray-800);font-size:var(--erp-font-size-base);line-height:var(--erp-line-height-tight);white-space:nowrap}.topbar-brand-text span{display:block;color:var(--erp-gray-500);font-size:var(--erp-font-size-xs);white-space:nowrap}.menubar{position:sticky;top:var(--erp-topbar-height);z-index:var(--erp-z-sticky);display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--erp-space-1);padding:0 var(--erp-space-4);background:var(--erp-navy);box-shadow:var(--erp-shadow-sm)}.menubar-item{position:relative}.menubar-title{display:flex;align-items:center;gap:6px;height:100%;border:0;border-bottom:2px solid transparent;padding:11px 12px 9px;color:#ffffffc7;background:transparent;font-size:var(--erp-font-size-sm);font-weight:700;white-space:nowrap;cursor:pointer}.menubar-title:hover,.menubar-item.open .menubar-title{color:#fff;background:#ffffff14}.menubar-item.current .menubar-title{color:#fff;border-bottom-color:#f5b971}.menubar-dropdown{position:absolute;top:100%;left:0;z-index:calc(var(--erp-z-sticky) + 1);display:grid;gap:2px;min-width:250px;max-width:min(340px,calc(100vw - 24px));padding:var(--erp-space-2);border:1px solid var(--erp-gray-200);border-radius:0 0 var(--erp-radius-lg) var(--erp-radius-lg);background:#fff;box-shadow:var(--erp-shadow-md)}.menubar-item:nth-last-child(-n+2) .menubar-dropdown{left:auto;right:0;border-radius:0 0 var(--erp-radius-lg) var(--erp-radius-lg)}.menubar-dropdown button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:var(--erp-radius-md);padding:9px 10px;color:var(--erp-gray-700);background:transparent;text-align:left;white-space:nowrap;cursor:pointer}.menubar-dropdown button:hover{color:var(--erp-navy);background:var(--erp-blue-lighter)}.menubar-dropdown button.active{color:#fff;background:var(--erp-navy)}.content{padding:var(--erp-space-6);background:var(--erp-gray-50);scroll-behavior:smooth}.content>*{max-width:var(--erp-content-max-width);margin-inline:auto}.erp-page-context-header{margin-bottom:var(--erp-space-5);padding-bottom:var(--erp-space-4);border-bottom:1px solid var(--erp-gray-200)}.erp-page-context-header span{display:block;margin-bottom:var(--erp-space-1);color:var(--erp-blue);font-size:var(--erp-font-size-xs);font-weight:800;text-transform:uppercase}.erp-page-context-header h1{margin:0;color:var(--erp-gray-900);font-size:var(--erp-font-size-2xl);line-height:var(--erp-line-height-tight)}.erp-page-context-header p{max-width:900px;margin:var(--erp-space-1) 0 0;color:var(--erp-gray-500);font-size:var(--erp-font-size-sm)}.erp-page-context-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--erp-space-4)}.erp-page-context-header-main{min-width:0}.erp-page-help-button{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-top:var(--erp-space-1);padding:6px 12px;border:1px solid var(--erp-gray-200);border-radius:8px;background:transparent;color:var(--erp-blue);font-size:var(--erp-font-size-xs);font-weight:700;cursor:pointer}.erp-page-help-button:hover{background:var(--erp-gray-100)}.erp-page-help-button span{display:inline;margin:0;color:inherit;font-size:inherit;font-weight:inherit;text-transform:none}.erp-page-help-content{display:grid;gap:var(--erp-space-4);max-width:640px}.erp-page-help-content h3{margin:0 0 var(--erp-space-1);color:var(--erp-gray-900);font-size:var(--erp-font-size-sm)}.erp-page-help-content p{margin:0;color:var(--erp-gray-600, var(--erp-gray-500));font-size:var(--erp-font-size-sm);line-height:1.55}.erp-page-help-content ul,.erp-page-help-content ol{margin:0;padding-inline-start:20px;display:grid;gap:4px;color:var(--erp-gray-600, var(--erp-gray-500));font-size:var(--erp-font-size-sm);line-height:1.55}.my-tasks-anchor{position:relative}.my-tasks-badge{position:absolute;top:-4px;right:-6px;min-width:18px;padding:1px 5px;border-radius:999px;background:var(--erp-red, #dc2626);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center}.my-tasks-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:380px;max-height:70vh;overflow-y:auto;padding:var(--erp-space-3);border:1px solid var(--erp-gray-200);border-radius:12px;background:var(--erp-surface, #fff);box-shadow:0 18px 40px #0f172a29}.my-tasks-panel>header{display:flex;align-items:center;gap:var(--erp-space-2);margin-bottom:var(--erp-space-2)}.my-tasks-panel>header span{flex:1;color:var(--erp-gray-500);font-size:var(--erp-font-size-xs)}.global-search{position:relative;display:flex;align-items:center;gap:6px;padding:0 8px;border:1px solid #DEE2E6;border-radius:8px;background:#fff;color:#6c757d}.global-search input{border:0;outline:none;background:transparent;width:190px;min-width:0;padding:6px 0;font-size:13px}.global-search-results{position:absolute;top:calc(100% + 6px);inset-inline-end:0;width:380px;max-width:82vw;max-height:60vh;overflow-y:auto;background:#fff;border:1px solid #DEE2E6;border-radius:10px;box-shadow:0 14px 34px #00000029;padding:8px;z-index:60;text-align:start}.global-search-results h5{margin:8px 6px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#6c757d}.global-search-results ul{list-style:none;margin:0;padding:0}.global-search-results li button{display:flex;align-items:baseline;gap:8px;width:100%;border:0;background:transparent;padding:6px;border-radius:6px;cursor:pointer;text-align:start;font-size:13px}.global-search-results li button:hover{background:#f1f3f5}.global-search-project{color:#2e5c8a;font-weight:700;white-space:nowrap}.global-search-label{min-width:0;overflow-wrap:anywhere}.my-tasks-section-head{display:flex;align-items:center;justify-content:space-between;margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid #DEE2E6;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.4px}.my-tasks-section-head span{color:#6c757d;font-weight:700}.my-tasks-group .chip{margin-inline-start:auto;white-space:nowrap}.my-tasks-group h4{display:flex;align-items:center;justify-content:space-between;margin:var(--erp-space-3) 0 var(--erp-space-1);font-size:var(--erp-font-size-sm);color:var(--erp-gray-900)}.my-tasks-group h4 span{color:var(--erp-blue)}.my-tasks-step-action{display:flex;justify-content:space-between;color:var(--erp-gray-500);font-size:var(--erp-font-size-xs);font-weight:700;text-transform:uppercase;margin:var(--erp-space-2) 0 4px}.my-tasks-step ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.my-tasks-step li button{display:flex;gap:8px;width:100%;padding:6px 8px;border:1px solid var(--erp-gray-200);border-radius:8px;background:transparent;cursor:pointer;text-align:left;font-size:var(--erp-font-size-sm)}.my-tasks-step li button:hover{background:var(--erp-gray-100)}.my-tasks-project{flex-shrink:0;color:var(--erp-blue);font-weight:700}.my-tasks-label{color:var(--erp-gray-700, var(--erp-gray-900));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-home-stepper{display:flex;gap:6px;margin:var(--erp-space-4) 0;overflow-x:auto}.project-home-step{flex:1;min-width:110px;display:grid;gap:2px;padding:8px 10px;border:1px solid var(--erp-gray-200);border-radius:10px;background:var(--erp-surface, #fff)}.project-home-step.complete{border-color:var(--erp-green, #16a34a)}.project-home-step.current{border-color:var(--erp-blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--erp-blue) 25%,transparent)}.project-home-step-index{color:var(--erp-gray-500);font-size:10px;font-weight:800}.project-home-step-title{font-size:var(--erp-font-size-xs);font-weight:700;color:var(--erp-gray-900)}.project-home-step-progress{font-size:10px;color:var(--erp-gray-500)}.project-home-stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--erp-space-3)}.project-home-checks{margin:0;padding:0;list-style:none;display:grid;gap:6px}.project-home-checks li{display:flex;align-items:center;gap:8px}.project-home-checks li button{border:none;background:none;padding:0;cursor:pointer;color:var(--erp-gray-700, var(--erp-gray-900));font-size:var(--erp-font-size-sm);text-align:left}.project-home-checks li button:hover{color:var(--erp-blue);text-decoration:underline}.project-home-checks .check-ok{color:var(--erp-green, #16a34a);flex-shrink:0}.project-home-checks .check-missing{color:var(--erp-gray-300, #cbd5e1);flex-shrink:0}.project-home-checks .check-na{color:var(--erp-gray-300, #cbd5e1);opacity:.55;flex-shrink:0}.project-home-checks .check-na-text{color:var(--erp-gray-500, #64748b);font-size:.85em;font-style:italic;margin-left:6px}.project-home-open-items{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--erp-space-3)}.project-home-open-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--erp-amber, #d97706);border-radius:999px;background:transparent;color:var(--erp-amber, #b45309);font-size:var(--erp-font-size-xs);cursor:pointer}.project-home-open-chip:hover{background:color-mix(in srgb,var(--erp-amber, #d97706) 12%,transparent)}.project-home-reports{margin-bottom:var(--erp-space-3)}.project-home-report-rows{display:grid;gap:var(--erp-space-2)}.project-home-report-row{display:flex;align-items:flex-end;gap:var(--erp-space-3);flex-wrap:wrap}.project-home-report-row label{display:grid;gap:4px;font-size:var(--erp-font-size-xs);font-weight:700;color:var(--erp-gray-500)}.project-home-report-row select,.project-home-report-row input{min-width:240px}.owner-ipc-status-strip span.done{border-color:var(--erp-green, #16a34a);color:var(--erp-green, #15803d)}.owner-ipc-status-strip span.current{border-color:var(--erp-blue);color:var(--erp-blue);font-weight:800}.owner-ipc-actions{margin:var(--erp-space-3) 0;flex-wrap:wrap}.panel,.workflow{border-color:var(--erp-gray-200);border-radius:var(--erp-radius-lg);background:#fff;box-shadow:var(--erp-shadow-md)}.panel-head{padding:var(--erp-space-4) var(--erp-space-5);border-bottom-color:var(--erp-gray-200);background:var(--erp-gray-50)}.panel-head h2{color:var(--erp-gray-800)}.panel-head span{color:var(--erp-gray-500)}.kpi{border-color:var(--erp-gray-200);border-radius:var(--erp-radius-lg);background:#fff;box-shadow:var(--erp-shadow-sm)}.mini,button.mini,.record-form button,.login-panel button{border-radius:var(--erp-radius-md);transition:background var(--erp-transition-fast),border-color var(--erp-transition-fast),color var(--erp-transition-fast),box-shadow var(--erp-transition-fast)}.module-tabs{display:flex;flex-wrap:wrap;gap:var(--erp-space-1);border-bottom:2px solid var(--erp-gray-200)}.module-tabs button{min-height:40px;border:0;border-bottom:2px solid transparent;border-radius:var(--erp-radius-md) var(--erp-radius-md) 0 0;padding:var(--erp-space-3) var(--erp-space-4);color:var(--erp-gray-600);background:transparent;font-size:13px;cursor:pointer}.module-tabs button:hover:not(:disabled){background:var(--erp-gray-50)}.module-tabs button.active{color:var(--erp-navy);border-bottom-color:var(--erp-navy);background:#fff;font-weight:800}.module-tabs button:disabled{color:var(--erp-gray-400);cursor:not-allowed}.module-tab-badge{margin-left:var(--erp-space-2);border-radius:var(--erp-radius-full);padding:1px 7px;color:var(--erp-navy);background:var(--erp-blue-light);font-size:11px}.erp-status-badge{display:inline-flex;align-items:center;gap:6px;width:fit-content;border-radius:var(--erp-radius-full);padding:2px 10px;font-size:11px;font-weight:800;line-height:var(--erp-line-height-normal);text-transform:uppercase}.erp-status-badge svg{width:12px;height:12px}.erp-status-badge.success{color:var(--erp-success);background:var(--erp-success-bg)}.erp-status-badge.warning{color:var(--erp-warning);background:var(--erp-warning-bg)}.erp-status-badge.danger{color:var(--erp-danger);background:var(--erp-danger-bg)}.erp-status-badge.info{color:var(--erp-info);background:var(--erp-info-bg)}.erp-status-badge.neutral{color:var(--erp-gray-600);background:var(--erp-gray-200)}.erp-status-dot{width:7px;height:7px;border-radius:var(--erp-radius-full);background:currentColor}.erp-status-dot.pulse{animation:erp-pulse 1.5s infinite}.erp-kpi-card{min-width:180px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-lg);padding:var(--erp-space-4);background:#fff;box-shadow:var(--erp-shadow-sm);transition:box-shadow var(--erp-transition-fast),transform var(--erp-transition-fast)}.erp-kpi-card:hover{box-shadow:var(--erp-shadow-md);transform:translateY(-1px)}.erp-kpi-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--erp-space-3);color:var(--erp-gray-500);font-size:12px}.erp-kpi-card-head svg{width:18px;height:18px}.erp-kpi-card strong{display:block;margin-top:var(--erp-space-2);color:var(--erp-navy);font-size:24px;line-height:var(--erp-line-height-tight)}.erp-kpi-card em{display:block;margin-top:var(--erp-space-2);color:var(--erp-gray-500);font-size:11px}.erp-kpi-card.success strong{color:var(--erp-success)}.erp-kpi-card.warning strong{color:var(--erp-warning)}.erp-kpi-card.danger strong{color:var(--erp-danger)}.erp-kpi-card.info strong{color:var(--erp-info)}.erp-empty-state{display:grid;place-items:center;gap:var(--erp-space-3);padding:var(--erp-space-12) var(--erp-space-8);border:1px dashed var(--erp-gray-300);border-radius:var(--erp-radius-xl);color:var(--erp-gray-600);background:var(--erp-gray-50);text-align:center}.erp-empty-state>svg{width:48px;height:48px;color:var(--erp-gray-400)}.erp-empty-state strong{color:var(--erp-gray-800);font-size:16px}.erp-empty-state p{max-width:520px;margin:0;color:var(--erp-gray-500);font-size:13px}.erp-toast-stack{position:fixed;top:var(--erp-space-5);right:var(--erp-space-5);z-index:var(--erp-z-toast);display:grid;gap:var(--erp-space-2);width:min(420px,calc(100vw - 32px))}.erp-toast{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:var(--erp-space-2);border:1px solid var(--erp-gray-200);border-left:4px solid var(--erp-info);border-radius:var(--erp-radius-lg);padding:var(--erp-space-3);color:var(--erp-gray-800);background:#fff;box-shadow:var(--erp-shadow-lg);animation:erp-slide-in .2s ease}.erp-toast.success{border-left-color:var(--erp-success)}.erp-toast.error{border-left-color:var(--erp-danger)}.erp-toast.info{border-left-color:var(--erp-info)}.erp-toast.warning{border-left-color:var(--erp-warning)}.erp-toast button{width:auto;min-height:28px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-md);color:var(--erp-gray-700);background:#fff;cursor:pointer}.erp-toast button:last-child{display:grid;width:28px;min-width:28px;place-items:center}.erp-toast button svg{width:14px;height:14px}.erp-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--erp-space-4)}.erp-skeleton-card,.erp-skeleton-row{border-radius:var(--erp-radius-lg);background:#fff;box-shadow:var(--erp-shadow-sm)}.erp-skeleton-card{display:grid;gap:var(--erp-space-3);min-height:112px;padding:var(--erp-space-4)}.erp-skeleton-card span,.erp-skeleton-card strong,.erp-skeleton-card em,.erp-skeleton-row{overflow:hidden;background:linear-gradient(90deg,var(--erp-gray-100),var(--erp-gray-200),var(--erp-gray-100));background-size:200% 100%;animation:erp-skeleton 1.4s infinite}.erp-skeleton-card span{width:55%;height:12px;border-radius:var(--erp-radius-sm)}.erp-skeleton-card strong{width:72%;height:28px;border-radius:var(--erp-radius-md)}.erp-skeleton-card em{width:42%;height:10px;border-radius:var(--erp-radius-sm)}.erp-skeleton-row{height:44px}.erp-breadcrumbs{display:flex;align-items:center;gap:var(--erp-space-1);color:var(--erp-gray-600);font-size:12px}.erp-breadcrumbs span{display:inline-flex;align-items:center;gap:var(--erp-space-1)}.erp-breadcrumbs svg{width:13px;height:13px;color:var(--erp-gray-400)}.erp-breadcrumbs a{color:var(--erp-blue);text-decoration:none}.erp-breadcrumbs a:hover{text-decoration:underline}.erp-breadcrumbs strong{color:var(--erp-gray-800)}.app-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--erp-z-modal);display:grid;place-items:center;padding:var(--erp-space-6);background:#1f3a5f80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:erp-fade-in .18s ease}.app-dialog{width:min(800px,90vw);max-height:90vh;overflow:hidden;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-xl);color:var(--erp-gray-800);background:#fff;box-shadow:var(--erp-shadow-xl);animation:erp-scale-in .2s ease}.app-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--erp-space-4);padding:var(--erp-space-4) var(--erp-space-6);border-bottom:1px solid var(--erp-gray-200);background:var(--erp-gray-50)}.app-dialog-header strong{display:block;color:var(--erp-gray-800);font-size:var(--erp-font-size-lg)}.app-dialog-header span{display:block;margin-top:var(--erp-space-1);color:var(--erp-gray-500);font-size:var(--erp-font-size-sm)}.app-dialog-close{display:grid;width:36px;min-width:36px;height:36px;place-items:center;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-md);color:var(--erp-gray-600);background:#fff;cursor:pointer}.app-dialog-close svg{width:18px;height:18px}.app-dialog-body{max-height:70vh;overflow-y:auto;padding:var(--erp-space-6)}.master-detail{display:flex;gap:var(--erp-space-4);height:100%;min-height:0}.master-list,.master-detail-panel{border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-lg);background:#fff;box-shadow:var(--erp-shadow-sm)}.master-list{width:var(--master-width, 360px);min-width:280px;max-width:480px}.master-detail-panel{flex:1;min-width:0}.master-resize-handle{width:4px;flex:0 0 4px;border-radius:var(--erp-radius-full);background:var(--erp-gray-300);cursor:col-resize;transition:background var(--erp-transition-fast)}.master-resize-handle:hover{background:var(--erp-blue)}@keyframes erp-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@keyframes erp-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes erp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes erp-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes erp-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:1440px){.content{padding:var(--erp-space-5)}.menubar{gap:0;padding:0 var(--erp-space-2)}.menubar-title{padding:10px 8px 8px;font-size:var(--erp-font-size-xs)}}@media(max-width:1024px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:var(--erp-sidebar-collapsed) minmax(0,1fr)}.master-detail{flex-direction:column}.master-list{width:100%;max-width:none}.master-resize-handle{display:none}}@media(max-width:768px){.topbar{flex-wrap:wrap;height:auto;padding:var(--erp-space-3) var(--erp-space-4)}.menubar{position:static}.topbar-right{width:100%;justify-content:space-between}.content{padding:var(--erp-space-4)}}@media(max-width:480px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{display:none}.app-dialog-backdrop{padding:var(--erp-space-3)}}.erp-breadcrumbs:before{display:none;content:none}.procurement-consolidation-table{width:100%;max-width:100%;overflow-x:auto}.procurement-consolidation-table table{width:max-content;min-width:1060px;table-layout:auto}.procurement-consolidation-table th,.procurement-consolidation-table td{white-space:normal;vertical-align:top;overflow-wrap:break-word;word-break:normal}.procurement-consolidation-table th{min-width:120px;line-height:1.25}.procurement-consolidation-table td{line-height:1.4}.procurement-consolidation-table th:nth-child(1),.procurement-consolidation-table td:nth-child(1){min-width:320px;max-width:520px}.procurement-consolidation-table th:nth-child(2),.procurement-consolidation-table td:nth-child(2){min-width:70px}.procurement-consolidation-table th:nth-child(3),.procurement-consolidation-table td:nth-child(3),.procurement-consolidation-table th:nth-child(4),.procurement-consolidation-table td:nth-child(4),.procurement-consolidation-table th:nth-child(5),.procurement-consolidation-table td:nth-child(5){min-width:110px}.procurement-consolidation-table th:nth-child(6),.procurement-consolidation-table td:nth-child(6){min-width:140px}.procurement-consolidation-table th:nth-child(7),.procurement-consolidation-table td:nth-child(7){min-width:110px}.procurement-consolidation-table th:nth-child(8),.procurement-consolidation-table td:nth-child(8){min-width:200px}.procurement-consolidation-table input,.procurement-consolidation-table select,.procurement-consolidation-table textarea{width:100%;min-width:100%}.procurement-consolidation-table .procurement-code-cell input{min-width:160px}.procurement-consolidation-table .procurement-description-cell input{min-width:300px}.procurement-consolidation-table .text-cell{white-space:normal}.procurement-consolidation-table th:nth-child(1),.procurement-consolidation-table td:nth-child(1){position:sticky;left:0;z-index:2;background:#fff;box-shadow:1px 0 0 var(--erp-gray-200)}.procurement-consolidation-table thead th:nth-child(1){z-index:4;background:var(--erp-navy, #1F3A5F)}.procurement-consolidation-table tbody tr:nth-child(2n) td:nth-child(1){background:#f8fafc}.procurement-consolidation-table th:last-child,.procurement-consolidation-table td:last-child{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-1px 0 0 var(--erp-gray-200)}.procurement-consolidation-table thead th:last-child{z-index:4;background:var(--erp-navy, #1F3A5F)}.procurement-consolidation-table tbody tr:nth-child(2n) td:last-child{background:#f8fafc}.final-lines-table th:nth-child(1),.final-lines-table td:nth-child(1),.final-lines-table th:last-child,.final-lines-table td:last-child{position:sticky;z-index:2;background:#fff}.final-lines-table th:nth-child(1),.final-lines-table td:nth-child(1){left:0;box-shadow:1px 0 0 var(--erp-gray-200)}.final-lines-table th:last-child,.final-lines-table td:last-child{right:0;box-shadow:-1px 0 0 var(--erp-gray-200)}.final-lines-table thead th:nth-child(1),.final-lines-table thead th:last-child{z-index:4;background:var(--erp-navy, #1F3A5F)}.final-lines-table tbody tr:nth-child(2n) td:nth-child(1),.final-lines-table tbody tr:nth-child(2n) td:last-child{background:#f8fafc}.subcontract-register{width:100%;overflow-x:auto;overflow-y:visible}.subcontract-register table{width:max-content;min-width:1050px;table-layout:auto}.subcontract-register th,.subcontract-register td{white-space:normal;word-break:normal;overflow-wrap:anywhere;vertical-align:middle}.subcontract-register th:nth-child(1),.subcontract-register td:nth-child(1){min-width:190px}.subcontract-register th:nth-child(2),.subcontract-register td:nth-child(2){min-width:130px}.subcontract-register th:nth-child(3),.subcontract-register td:nth-child(3){min-width:150px}.subcontract-register th:nth-child(4),.subcontract-register td:nth-child(4){min-width:210px}.subcontract-register th:nth-child(5),.subcontract-register td:nth-child(5){min-width:180px}.subcontracts-administration-page .module-toolbar{align-items:flex-start}.subcontract-related-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.subcontract-related-pages>span{color:var(--erp-gray-600);font-size:12px;font-weight:700;margin-right:2px}.subcontracts-administration-page .master-detail{height:auto;align-items:flex-start}.subcontracts-administration-page .master-list{max-height:calc(100vh - 220px);overflow:auto}.subcontracts-administration-page .master-detail-panel{max-height:none;overflow:visible}.subcontracts-administration-page .boq-summary article,.subcontracts-administration-page .po-detail-grid article{background:#f8fafc;border-color:#cbd5e1;color:#111827}.subcontracts-administration-page .boq-summary article span,.subcontracts-administration-page .po-detail-grid article span,.subcontracts-administration-page .po-detail-grid article small{color:#475569}.subcontracts-administration-page .boq-summary article strong,.subcontracts-administration-page .po-detail-grid article strong{color:#0f172a}.subcontract-grouped-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;padding:10px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-lg);background:#fff}.subcontract-tab-group{min-width:0;padding:8px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.subcontract-tab-group>span{display:block;margin-bottom:6px;color:#475569;font-size:11px;font-weight:800;text-transform:uppercase}.subcontract-tab-group>div{display:flex;flex-wrap:wrap;gap:5px}.subcontract-tab-group button{min-height:30px;padding:5px 8px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font-size:12px;white-space:normal}.subcontract-tab-group button.active,.subcontract-tab-group button:hover{border-color:var(--erp-blue);background:#eaf2ff;color:#0f3f80}.subcontract-process-path{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e3a5f;font-size:13px;font-weight:700}.subcontract-process-path b{color:#64748b}.subcontract-claim-documents{scroll-margin-top:16px}@media(max-width:1024px){.subcontracts-administration-page .master-list{width:100%;max-height:420px}.subcontract-related-pages{justify-content:flex-start}}.delivery-related-pages{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:8px 10px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-md);background:#f8fafc}.delivery-related-pages>span{color:#475569;font-size:12px;font-weight:800;margin-right:4px}.delivery-monitoring-register{max-width:100%;overflow-x:auto}.delivery-monitoring-register table{width:max-content;min-width:100%}.delivery-monitoring-register th,.delivery-monitoring-register td{min-width:130px;white-space:normal;overflow-wrap:anywhere}.delivery-monitoring-register th:nth-child(3),.delivery-monitoring-register td:nth-child(3),.delivery-monitoring-register th:nth-child(4),.delivery-monitoring-register td:nth-child(4){min-width:190px}.purchase-order-related-pages{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;padding:8px 10px;border:1px solid var(--erp-gray-200);border-radius:var(--erp-radius-md);background:#f8fafc}.po-register-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.po-register-filters .search{flex:1 1 200px;min-width:0}.po-register-filters select{flex:0 1 190px;min-width:0}.procurement-redesign-shell .po-layout .master-detail{align-items:start}.po-order-list{display:grid;gap:6px}.po-order-card{display:grid;gap:3px;width:100%;border:1px solid var(--erp-gray-200);border-left:3px solid transparent;border-radius:var(--erp-radius-md);padding:10px 12px;background:#fff;text-align:left;cursor:pointer}.po-order-card:hover{border-color:#93b4d8;background:#eef4fa}.po-order-card.is-selected{border-left-color:#1f3a5f;background:#eef4fa}.po-order-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.po-order-card-number{color:#1f3a5f;font-size:13px;font-weight:800;overflow-wrap:anywhere}.po-order-card-amount{color:#1f3a5f;font-size:13px;font-weight:800;white-space:nowrap}.po-order-card-supplier{color:#495057;font-size:12px;overflow-wrap:anywhere}.po-order-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#6c757d;font-size:11px}.po-order-card-step{overflow-wrap:anywhere}.register-card{cursor:pointer}.register-card:focus-visible{outline:2px solid #93b4d8;outline-offset:1px}.register-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.service-state{display:inline-flex;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800;white-space:nowrap}.service-state-active{color:#15803d;background:#22c55e1f;border:1px solid rgba(21,128,61,.3)}.service-state-pending{color:#1d4ed8;background:#3b82f61a;border:1px solid rgba(29,78,216,.28)}.service-state-expired{color:#b91c1c;background:#ef44441a;border:1px solid rgba(220,38,38,.3)}.service-state-closed{color:#495057;background:#e9ecef;border:1px solid #DEE2E6}.service-draw-bar{display:block;height:5px;margin-top:2px;border-radius:999px;background:#e9ecef;overflow:hidden}.service-draw-bar.large{height:9px}.service-draw-bar i{display:block;height:100%;background:#1f3a5f}.service-draw-summary{display:grid;gap:6px;margin-top:12px}.service-draw-summary span{color:#6c757d;font-size:12px}.service-confirmations-embedded{border-color:var(--erp-gray-200)}.po-service-pointer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}.purchase-order-related-pages>span{color:#475569;font-size:12px;font-weight:800;margin-right:4px}.boq-import-preview{max-width:1100px}.boq-import-mapping{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;padding:10px 4px}.boq-import-mapping label{display:grid;gap:4px;font-size:var(--erp-font-size-xs);font-weight:700;color:var(--erp-gray-500)}.boq-import-table{max-height:52vh;overflow-y:auto}.boq-import-review-row td{background:color-mix(in srgb,var(--erp-amber, #d97706) 10%,transparent)}.boq-ai-suggestion{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:var(--erp-blue)}.content{overflow-x:clip}.table-wrap.table-dense th,.table-wrap.table-dense td{white-space:normal;overflow-wrap:break-word;padding:7px 10px}.table-wrap.table-dense th{font-size:11px}.table-wrap.table-dense td{font-size:12.5px}.table-wrap.table-dense .text-cell{min-width:140px;max-width:none}.table-wrap.table-dense td.nowrap-cell{white-space:nowrap}.grid-dense{--ag-grid-size: 6px;--ag-font-size: 12px}.grid-dense .ag-header-cell-text{font-size:11px}.form-dialog-actions{display:flex;gap:10px;justify-content:flex-end;grid-column:1 / -1;margin-top:6px}.form-dialog-actions button.secondary{background:#e9ecef;color:#212529;border:1px solid #ADB5BD}.schedule-db01-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(560px,1fr));gap:14px;min-width:0}.schedule-db01-grid .schedule-progress-meter{grid-template-columns:minmax(56px,1fr) 44px;gap:6px}.schedule-db01-grid>*{min-width:0}.schedule-db01-type-totals{display:grid;justify-items:end;gap:2px}.schedule-db01-type-totals small{color:#6c757d}@media(max-width:900px){.schedule-db01-grid{grid-template-columns:1fr}}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.metric-grid>div{min-width:0;border:1px solid #DEE2E6;border-radius:8px;padding:10px 12px;background:#fff}.metric-grid>div>span{display:block;margin-bottom:4px;color:#6c757d;font-size:11px;font-weight:700;text-transform:uppercase}.metric-grid>div>strong{font-size:15px}.schedule-workbench{padding:0}.schedule-workbench>summary{padding:12px 14px;cursor:pointer;font-weight:700}.schedule-workbench-kpis{padding:0 14px 4px}.schedule-workbench .schedule-filterbar{padding:8px 14px}.schedule-workbench-table{max-height:560px}.schedule-suggestion-row{display:flex;flex-wrap:wrap;gap:4px}.schedule-boq-pick-list{display:grid;gap:6px;max-height:420px;overflow:auto;padding:10px 0 0}.schedule-boq-pick-list button{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:8px 10px;border:1px solid #DEE2E6;border-radius:6px;background:#fff;color:#212529;text-align:left;cursor:pointer}.schedule-boq-pick-list button:hover{background:#eef4fa}.schedule-boq-pick-list button span{color:#6c757d;font-size:12px}.kpi-clickable{cursor:pointer}.kpi-clickable:hover{outline:2px solid #2E5C8A;outline-offset:-2px}.row-focus td{background:#fff3cd!important;box-shadow:inset 3px 0 #f59e0b}.spend-curve-shell{padding:10px 14px 14px}.spend-curve-shell svg{width:100%;height:auto}.spend-curve-legend{display:flex;flex-wrap:wrap;gap:16px;padding-top:8px;font-size:12px;color:#495057}.spend-curve-legend span{display:inline-flex;align-items:center;gap:6px}.spend-curve-legend i{width:18px;height:3px;border-radius:2px;display:inline-block}.users-admin{display:grid;gap:12px;min-width:0}.users-temp-reveal{display:grid;gap:6px}.users-temp-reveal code{font-size:18px;font-weight:800;letter-spacing:1px;color:#1f3a5f;background:#eef4fa;border:1px dashed #2E5C8A;border-radius:6px;padding:6px 12px;justify-self:start}.login-panel button.secondary{background:#e9ecef;color:#212529;border:1px solid #ADB5BD;margin-top:8px}.decision-gate{display:grid;gap:14px}.decision-gate-transition{padding:10px 12px;border:1px solid #BBD2EC;border-left:4px solid #1F5FA8;border-radius:8px;background:#f2f7fd;color:#1f3a5f;font-size:13px}.decision-gate-transition em{font-style:normal;font-weight:700;background:#e1edfa;border-radius:4px;padding:1px 6px}.decision-gate-transition.danger{border-color:#e7b3b8;border-left-color:#c0392b;background:#fdf3f3;color:#7a2c22}.decision-gate-transition.danger em{background:#f7e0e0}.decision-gate-irreversible{margin-top:6px;font-weight:700;font-size:12px}.decision-gate-next{margin-top:8px;font-size:12.5px;padding:6px 10px;border-radius:6px;background:#eef4ff;border:1px solid #B9D0F5;color:#1e3a5f}.decision-gate-alerts{display:grid;gap:6px}.decision-gate-alert{padding:8px 10px;border:1px solid #EAD8A6;border-radius:6px;background:#fcf7e8;color:#7a5d0f;font-size:12.5px;font-weight:600}.decision-gate-summary h3{margin:0 0 8px;font-size:13px;color:#1f3a5f;text-transform:uppercase;letter-spacing:.4px}.decision-gate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.decision-gate-grid article{border:1px solid #DEE2E6;border-radius:8px;background:#fbfcfd;padding:8px 10px;display:grid;gap:2px}.decision-gate-grid article span{color:#6c757d;font-size:11px}.decision-gate-grid article strong{color:#212529;font-size:13.5px}.decision-gate-grid article.strong{border-color:#1f5fa8;background:#f2f7fd}.decision-gate-grid article.strong strong{color:#1f5fa8;font-size:15px}.decision-gate-grid article.warn{border-color:#e0a800;background:#fcf7e8}.decision-gate-grid article.warn strong{color:#7a5d0f}.decision-gate-timeline{display:grid;gap:8px}.decision-gate-timeline-toggle{justify-self:start;border:1px solid #ADB5BD;border-radius:6px;background:#f8f9fa;color:#1f3a5f;font-size:12px;padding:5px 10px;cursor:pointer}.decision-gate-timeline-last{color:#6c757d;font-size:12px}.decision-gate-timeline-table table{font-size:12px}.decision-gate-timeline-table{max-height:220px;overflow:auto}.decision-gate-form{margin-top:2px}.plain-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.plain-list li{padding:6px 10px;border:1px solid var(--border, #d0d7de);border-radius:6px;font-size:13px}.simple-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.simple-table th,.simple-table td{border-bottom:1px solid var(--border, #d0d7de);padding:6px 8px;text-align:left;white-space:nowrap}.simple-table td:nth-child(2){white-space:normal;min-width:180px}.brand-logo{display:block;height:auto;max-width:100%;margin:0 auto 4px}.brand .brand-mark{background:transparent;border:0;width:auto;height:auto}.brand .brand-mark img{display:block}.field-hint{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.45;white-space:normal;max-width:46ch}.variation-lines{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.variation-lines-table{overflow-x:auto}.variation-lines-table table{width:100%;border-collapse:collapse;font-size:.82rem}.variation-lines-table th,.variation-lines-table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:start;white-space:nowrap}.variation-lines-table th{color:var(--muted);font-weight:600}.variation-lines-table .num{text-align:end;font-variant-numeric:tabular-nums}.variation-lines-table .variation-line-negative{color:var(--danger, #b42318);font-weight:600}.variation-line-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}.variation-line-form .wide,.variation-line-form .action-row{grid-column:1 / -1}.variation-claims{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.variation-claims-table{overflow-x:auto}.variation-claims-table table{width:100%;border-collapse:collapse;font-size:.82rem}.variation-claims-table th,.variation-claims-table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:start;vertical-align:top}.variation-claims-table th{color:var(--muted);font-weight:600;white-space:nowrap}.variation-claims-table .num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}.variation-claims-table .variation-claim-exhausted td{opacity:.62}.variation-claim-entry{display:flex;gap:6px;align-items:center}.variation-claim-entry input{width:84px}.supply-request-source-lines table{table-layout:fixed;width:100%}.supply-request-source-lines td.text-cell{max-width:none;white-space:normal;overflow-wrap:break-word;word-break:break-word}.supply-request-source-lines th,.supply-request-source-lines td{min-width:0;vertical-align:top}.table-wrap.supply-request-source-lines table th{white-space:normal;word-break:normal;overflow-wrap:normal;vertical-align:bottom}.supply-request-source-lines td:last-child{white-space:nowrap;text-align:center}.supply-request-source-lines th:nth-child(n+6),.supply-request-source-lines td:nth-child(n+6){padding-left:6px;padding-right:6px}.supply-request-source-lines td:last-child .mini{padding:4px 8px}.supply-request-source-lines th:nth-child(1),.supply-request-source-lines td:nth-child(1){width:11%}.supply-request-source-lines th:nth-child(2),.supply-request-source-lines td:nth-child(2){width:11%}.supply-request-source-lines th:nth-child(3),.supply-request-source-lines td:nth-child(3){width:19%}.supply-request-source-lines th:nth-child(4),.supply-request-source-lines td:nth-child(4){width:15%}.supply-request-source-lines th:nth-child(5),.supply-request-source-lines td:nth-child(5){width:12%}.supply-request-source-lines th:nth-child(6),.supply-request-source-lines td:nth-child(6){width:7%}.supply-request-source-lines th:nth-child(7),.supply-request-source-lines td:nth-child(7){width:6%}.supply-request-source-lines th:nth-child(8),.supply-request-source-lines td:nth-child(8){width:8%}.supply-request-source-lines th:nth-child(9),.supply-request-source-lines td:nth-child(9){width:11%}.supply-request-source-picker table{table-layout:fixed;width:100%}.supply-request-source-picker th,.supply-request-source-picker td{min-width:0;vertical-align:top}.supply-request-source-picker td.text-cell{max-width:none;white-space:normal;overflow-wrap:break-word;word-break:break-word}.table-wrap.supply-request-source-picker table th{white-space:normal;word-break:normal;overflow-wrap:normal;vertical-align:bottom}.supply-request-source-picker th:nth-child(1),.supply-request-source-picker td:nth-child(1){width:5%}.supply-request-source-picker th:nth-child(2),.supply-request-source-picker td:nth-child(2){width:5%}.supply-request-source-picker th:nth-child(3),.supply-request-source-picker td:nth-child(3){width:31%}.supply-request-source-picker th:nth-child(4),.supply-request-source-picker td:nth-child(4){width:24%}.supply-request-source-picker th:nth-child(5),.supply-request-source-picker td:nth-child(5){width:6%}.supply-request-source-picker th:nth-child(6),.supply-request-source-picker td:nth-child(6){width:10%}.supply-request-source-picker th:nth-child(7),.supply-request-source-picker td:nth-child(7){width:11%}.supply-request-source-picker th:nth-child(8),.supply-request-source-picker td:nth-child(8){width:8%}.supply-request-source-lines tbody tr.supply-request-source-origin td{background:#f1f3f5;border-left:3px solid #ADB5BD;font-style:italic}.supply-request-source-lines tbody tr.supply-request-source-origin td:not(:first-child){border-left:none}.final-lines-table td.source-list-cell{max-width:320px;max-height:84px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;white-space:pre-line;font-size:11px;line-height:1.35}.exec-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-top:4px solid #1F3A5F}.exec-report-page>.panel,.exec-report-page>.exec-methodology{min-width:0;max-width:100%}.exec-report-page .panel>header{display:grid;gap:3px;padding:13px 18px 11px;border-bottom:1px solid #DEE2E6;background:#f8f9fa;border-radius:8px 8px 0 0}.exec-report-page .panel>header strong{color:#1f3a5f;font-size:15px}.exec-report-page .panel>header span{color:#6c757d;font-size:12px}.exec-report-page .panel-body{padding:16px 18px}.exec-report-kicker{display:block;color:#bd5d38;font-size:12px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase}.exec-report-title h2{margin:4px 0 6px;color:#1f3a5f;font-size:26px;line-height:1.15}.exec-report-sub{color:#6c757d;font-size:13px}.exec-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.exec-kpi{display:grid;align-content:start;gap:7px;min-height:96px;padding:14px 16px;border:1px solid #DEE2E6;border-top:3px solid #1F3A5F;border-radius:8px;background:#fff}.exec-kpi-good{border-top-color:#2e7d32}.exec-kpi-bad{border-top-color:#b3261e}.exec-kpi-warn{border-top-color:#f59e0b}.exec-kpi>span{color:#6c757d;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.exec-kpi>strong{color:#1f3a5f;font-size:22px;line-height:1.1;overflow-wrap:anywhere}.exec-kpi-good>strong{color:#2e7d32}.exec-kpi-bad>strong{color:#b3261e}.exec-kpi>em{color:#6c757d;font-size:12px;font-style:normal;line-height:1.4}.exec-findings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.exec-finding-group h3{margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid #DEE2E6;font-size:14px;letter-spacing:.3px;text-transform:uppercase}.exec-finding-strength h3{color:#2e7d32;border-bottom-color:#2e7d32}.exec-finding-weakness h3{color:#b3261e;border-bottom-color:#b3261e}.exec-finding-watch h3{color:#b45309;border-bottom-color:#f59e0b}.exec-finding-group ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.exec-finding-group li{display:flex;gap:8px;font-size:13px;line-height:1.5;color:#212529}.exec-finding-group li i{font-style:normal;font-weight:800;flex:0 0 auto}.exec-finding-strength li i{color:#2e7d32}.exec-finding-weakness li i{color:#b3261e}.exec-finding-watch li i{color:#b45309}.exec-finding-group li b{color:#1f3a5f}.exec-flow-chart{display:flex;align-items:flex-end;gap:10px;padding:12px 6px 6px;margin-bottom:12px;overflow-x:auto}.exec-flow-col{display:grid;justify-items:center;gap:4px;min-width:56px}.exec-flow-bars{display:flex;align-items:flex-end;gap:3px;height:120px;width:100%;justify-content:center;border-bottom:2px solid #DEE2E6}.exec-flow-bars>div{width:16px;border-radius:3px 3px 0 0}.exec-flow-in{background:#2e7d32}.exec-flow-out{background:#bd5d38}.exec-flow-net{font-size:10px;font-weight:700;white-space:nowrap}.exec-flow-net.good{color:#2e7d32}.exec-flow-net.bad{color:#b3261e}.exec-flow-month{color:#6c757d;font-size:11px;white-space:nowrap}.exec-flow-legend{display:flex;align-items:center;gap:14px;margin-inline-start:auto;color:#6c757d;font-size:12px;align-self:flex-start}.exec-flow-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.exec-flow-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}.exec-flow-table td,.exec-flow-table th{white-space:nowrap}.exec-cell-in{color:#2e7d32;font-weight:600}.exec-cell-out{color:#b3261e;font-weight:600}.exec-methodology{font-size:11.5px;line-height:1.6;margin:4px 2px 0}@media(max-width:1100px){.exec-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exec-findings{grid-template-columns:1fr}}@media print{.exec-report-page .no-print{display:none!important}.exec-report-page .panel{break-inside:auto}.exec-report-head,.exec-kpi,.exec-finding-group,.exec-flow-chart,.exec-flow-table tr{break-inside:avoid}.exec-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.exec-findings{grid-template-columns:repeat(3,minmax(0,1fr))}.exec-flow-chart{overflow:visible}.exec-flow-in,.exec-flow-out{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.site-gate{max-width:560px;margin:0 auto;padding:12px 14px 60px;display:flex;flex-direction:column;gap:12px}.site-gate-title{font-size:20px;margin:4px 0}.site-gate-back{align-self:flex-start;border:1px solid #C9D4E0;background:#fff;border-radius:8px;padding:8px 14px;font-size:15px;cursor:pointer}.site-gate-actions{display:flex;flex-direction:column;gap:12px}.site-gate-big{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 16px;border-radius:14px;border:1px solid #C9D4E0;background:#fff;cursor:pointer;text-align:start;font-size:18px;font-weight:600}.site-gate-big:disabled{opacity:.5;cursor:default}.site-gate-big small{font-weight:400;font-size:13px;color:#5b6b7b}.site-gate-big-icon{font-size:28px}.site-gate-search{width:100%;padding:12px 14px;font-size:16px;border:1px solid #C9D4E0;border-radius:10px}.site-gate-cards{display:flex;flex-direction:column;gap:8px}.site-gate-card{display:flex;flex-direction:column;gap:2px;text-align:start;padding:14px;border-radius:12px;border:1px solid #C9D4E0;background:#fff;cursor:pointer;font-size:15px}.site-gate-card strong{font-size:16px}.site-gate-card small{color:#5b6b7b}.site-gate-lines{display:flex;flex-direction:column;gap:10px}.site-gate-line{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #E1E8F0;border-radius:10px;background:#fff;font-size:15px}.site-gate-line-input{display:flex;align-items:center;gap:8px}.site-gate-line-input input{flex:1;padding:12px;font-size:18px;border:1px solid #C9D4E0;border-radius:8px}.site-gate-line-input em{min-width:44px;color:#5b6b7b;font-style:normal}.site-gate-line select,.site-gate-line>input{padding:12px;font-size:16px;border:1px solid #C9D4E0;border-radius:8px}.site-gate-photo{display:block;padding:14px;border:2px dashed #E2A23B;border-radius:12px;background:#fff9ee;font-size:15px;font-weight:600;cursor:pointer}.site-gate-photo input{display:block;margin-top:8px}.site-gate-thumbs{display:flex;gap:8px;flex-wrap:wrap}.site-gate-thumb{position:relative}.site-gate-thumb img{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid #C9D4E0}.site-gate-thumb button{position:absolute;top:-6px;inset-inline-end:-6px;width:22px;height:22px;border-radius:50%;border:none;background:#c0392b;color:#fff;cursor:pointer;line-height:1}.site-gate-save{padding:16px;font-size:18px;font-weight:700;border:none;border-radius:12px;background:#e67e22;color:#fff;cursor:pointer}.site-gate-save:disabled{opacity:.6}.site-gate-recent{border-top:1px solid #E1E8F0;padding-top:10px}.site-gate-recent h3{font-size:14px;color:#5b6b7b;margin:0 0 6px}.site-gate-recent-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px}.site-gate-recent-row strong{margin-inline-start:auto}.site-gate-recent-row .tag-in,.site-gate-recent-row .tag-out{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px}.site-gate-recent-row .tag-in{background:#e8f6ee;color:#1e7e45}.site-gate-recent-row .tag-out{background:#fdeee4;color:#b05a1c}.site-gate-done{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 10px;text-align:center;font-size:17px}.site-gate-done-icon{font-size:48px}.site-gate-ai{padding:13px;font-size:16px;font-weight:600;border:1px solid #7E57C2;border-radius:12px;background:#f5f0fb;color:#4527a0;cursor:pointer}.site-gate-ai:disabled{opacity:.6}.login-aux{display:flex;justify-content:flex-end;margin:4px 0 2px}.login-panel .login-link{width:auto;background:none;border:0;color:#02529c;font-size:12.5px;padding:0;margin:0;cursor:pointer;text-decoration:none;box-shadow:none}.login-panel .login-link:hover{color:#023e75;background:none;text-decoration:underline}.login-panel form>.login-link,.login-panel>.login-link{margin:8px auto 0}.login-hint{margin:0 0 6px;font-size:13.5px;color:#5b6b7b}.login-panel .notice{margin:10px 0}.vendor-statement-title{display:flex;flex-direction:column;gap:2px;margin:4px 0 8px}.vendor-statement-title span{color:#5b6b7b;font-size:12.5px}.vendor-statement tfoot th{border-top:2px solid #16324A}@media print{body.print-vendor-statement .topbar,body.print-vendor-statement .module-toolbar,body.print-vendor-statement .notice,body.print-vendor-statement .error,body.print-vendor-statement .module-page>*:not(.vendor-statement){display:none!important}body.print-vendor-statement .vendor-statement{border:0;box-shadow:none}body.print-vendor-statement .no-print{display:none!important}body.print-vendor-statement .table-wrap{overflow:visible!important}body.print-vendor-statement .vendor-statement table{font-size:10px;width:100%}body.print-vendor-statement .vendor-statement th,body.print-vendor-statement .vendor-statement td{white-space:normal;word-break:break-word;padding:3px 5px}}.invoice-register-panel tbody tr{cursor:pointer}.invoice-register-revenue td{background:#02529c0d}.invoice-register-detail{display:flex;flex-direction:column;gap:12px;min-width:min(680px,90vw)}.invoice-register-attachments strong{display:block;margin-bottom:6px}.invoice-register-attachments ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.invoice-register-attachments li{display:flex;align-items:center;gap:8px}.invoice-register-attachments li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media print{body.print-invoice-register .topbar,body.print-invoice-register .module-toolbar,body.print-invoice-register .notice,body.print-invoice-register .error,body.print-invoice-register .module-page>*:not(.invoice-register-panel){display:none!important}body.print-invoice-register .invoice-register-panel{border:0;box-shadow:none}body.print-invoice-register .no-print{display:none!important}body.print-invoice-register .table-wrap{overflow:visible!important}body.print-invoice-register .invoice-register-panel table{font-size:10px;width:100%}body.print-invoice-register .invoice-register-panel th,body.print-invoice-register .invoice-register-panel td{white-space:normal;word-break:break-word;padding:3px 5px}}.portfolio-heading{margin:16px 0 8px;font-size:15px}.portfolio-panel tbody tr{cursor:pointer}.portfolio-negative{color:#c0392b}.compact-kpis article.kpi-bad strong{color:#c0392b}.portfolio-exceptions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.portfolio-exceptions li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #E1E8F0;border-inline-start:4px solid #9AACBE;border-radius:8px;background:#fff}.portfolio-exceptions li.is-high{border-inline-start-color:#c0392b;background:#fef6f5}.portfolio-exception-project{font-weight:700;min-width:72px}.portfolio-exception-message{flex:1}.portfolio-method{margin-top:14px;font-size:12.5px;color:#5b6b7b}.portfolio-method ul{margin:6px 0 0;padding-inline-start:18px}@media print{body.print-portfolio .topbar,body.print-portfolio .module-toolbar,body.print-portfolio .module-page>*:not(.portfolio-panel){display:none!important}body.print-portfolio .portfolio-panel{border:0;box-shadow:none}body.print-portfolio .table-wrap{overflow:visible!important}body.print-portfolio .portfolio-panel table{font-size:9.5px;width:100%}body.print-portfolio .portfolio-panel th,body.print-portfolio .portfolio-panel td{white-space:normal;word-break:break-word;padding:3px 4px}body.print-portfolio .no-print{display:none!important}}.delay-panel tbody tr{cursor:pointer}.delay-panel tbody tr.delay-missed{background:#fef6f5}.delay-notice-bad{color:#c0392b;font-weight:700}.delay-notice-warn{color:#b05a1c;font-weight:600}.delay-detail{margin-top:14px;padding-top:12px;border-top:1px solid #E1E8F0}.delay-detail h4{margin:0 0 6px}@media print{body.print-delay .topbar,body.print-delay .module-toolbar,body.print-delay .module-page>*:not(.delay-panel){display:none!important}body.print-delay .delay-panel{border:0;box-shadow:none}body.print-delay .table-wrap{overflow:visible!important}body.print-delay .delay-panel table{font-size:10px;width:100%}body.print-delay .delay-panel th,body.print-delay .delay-panel td{white-space:normal;word-break:break-word;padding:3px 5px}body.print-delay .no-print{display:none!important}}.exec-forecast-divider td{background:#f1f5f9;color:#16324a;font-weight:700;font-size:12px;border-top:2px solid #16324A;padding:6px 8px}.exec-forecast-row td{background:#fafcfe;font-style:italic}.exec-forecast-row td:first-child{font-style:normal}.aging-sides{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.aging-sides{grid-template-columns:1fr}}.aging-side{border:1px solid #E1E8F0;border-radius:10px;padding:10px 12px}.aging-side-in{border-inline-start:4px solid #1E7E45}.aging-side-out{border-inline-start:4px solid #B05A1C}.aging-side header{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.aging-side header span{font-size:12.5px;color:#5b6b7b}.aging-buckets{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.aging-buckets article{border:1px solid #EDF1F5;border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:1px}.aging-buckets article.is-bad{border-color:#c0392b;background:#fef6f5}.aging-buckets article span{font-size:11px;color:#5b6b7b}.aging-buckets article strong{font-size:14px}.aging-buckets article small{font-size:10.5px;color:#7a8896}.aging-detail{margin-top:10px}.aging-detail tbody tr{cursor:pointer}.aging-detail tbody tr.aging-old td{background:#fef6f5}@media print{body.print-aging .topbar,body.print-aging .module-toolbar,body.print-aging .module-page>*:not(.aging-panel){display:none!important}body.print-aging .aging-panel{border:0;box-shadow:none}body.print-aging .table-wrap{overflow:visible!important}body.print-aging .aging-panel table{font-size:10px;width:100%}body.print-aging .no-print{display:none!important}}.inline-setting{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted, #5b6472)}.inline-setting select{font-size:12px;padding:4px 6px;max-width:420px}.inline-setting small{max-width:320px}.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start}.brand-version{font-size:10px;line-height:1;color:#6c757d;margin-top:2px;letter-spacing:.02em}.brand-version-inline{font-size:10px;font-weight:400;color:#6c757d;margin-left:6px}.wp-cpi-table td.num,.wp-cpi-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.wp-cpi-table td.danger{color:#cf222e;font-weight:600}.wp-cpi-table tr.wp-cpi-total td{background:#f1f3f5;border-top:2px solid #CED4DA}.wp-cpi-rest{margin-top:10px}.wp-cpi-rest summary{cursor:pointer;color:#495057;font-size:13px}.wp-cpi-rest table{margin-top:6px}.vendor-directory-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px}.vendor-directory-filters select{font-size:12px;min-width:0}.vendor-directory-group h4{margin:10px 0 4px;font-size:13px;color:#1e3a5f;border-bottom:1px solid #dee2e6;padding-bottom:4px}.vendor-directory-trade{font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#5a6a85;margin:8px 0 4px}.vendor-offices{margin-top:16px;display:grid;gap:8px}.vendor-offices table td,.vendor-offices table th{font-size:12.5px}.vendor-trades-panel{display:grid;gap:8px;padding:12px 16px}.vendor-trades-panel input{width:100%}.project-users-panel{display:grid;gap:10px;padding:12px 16px}.project-users-add select{min-width:320px}.project-users-panel tr.muted td{color:#8a94a6}
