@charset "UTF-8";:root{--color-primary-500: #03618D;--color-primary-600: #024F73;--color-primary-400: #0594D7;--color-primary-200: #8CA0C4;--color-primary-100: #C6CFE2;--color-primary-50: #E4E9F1;--color-primary-25: #F0F4F9;--color-secondary-500: #FAB632;--color-secondary-400: #F9836C;--neutral-950: #1A1A1A;--neutral-900: #262626;--neutral-800: #404040;--neutral-700: #575757;--neutral-600: #707070;--neutral-500: #8A8A8A;--neutral-400: #A3A3A3;--neutral-300: #BDBDBD;--neutral-200: #D4D4D4;--neutral-100: #EDEDED;--neutral-75: #F5F5F5;--neutral-50: #FAFAFA;--white: #FFFFFF;--black: #000000;--color-success: #34C759;--color-success-bg: #EBFAEF;--color-warning: #F69C00;--color-warning-bg: #FFF6E5;--color-danger: #D80000;--color-danger-bg: #FFE0E0;--color-info: #2C70F4;--color-info-bg: #ECF2FE;--col-contract: #394C6F;--col-budget: #03618D;--col-actuals: #C77E00;--col-gp: #207936;--col-completion: #0B50DA;--col-billing: #D80000;--col-backlog: #093DA5;--bg-page: #F5F5F5;--bg-default: #FFFFFF;--bg-subtle: #FAFAFA;--border-subtle: #D4D4D4;--border-moderate: #A3A3A3;--text-default: #262626;--text-subdued: #575757;--text-weak: #8A8A8A;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.06)}body.dark{--bg-page: #111827;--bg-default: #1F2937;--bg-subtle: #1A2332;--border-subtle: #374151;--border-moderate:#4B5563;--text-default: #F9FAFB;--text-subdued: #D1D5DB;--text-weak: #9CA3AF;--neutral-75: #1F2937;--neutral-100: #374151;--neutral-200: #4B5563;--neutral-300: #6B7280;--neutral-400: #9CA3AF;--color-primary-25: rgba(3,97,141,.12);--color-primary-50: rgba(3,97,141,.18);--color-success-bg: rgba(52,199,89,.12);--color-warning-bg: rgba(246,156,0,.12);--color-danger-bg: rgba(216,0,0,.12);--color-info-bg: rgba(44,112,244,.12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;color:var(--text-default);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:Inter,sans-serif;font-weight:600;color:var(--text-default)}a{color:var(--color-primary-500);text-decoration:none}a:hover{color:var(--color-primary-600)}button{font-family:Inter,sans-serif;cursor:pointer;border:none;outline:none}input,select,textarea{font-family:Inter,sans-serif;font-size:14px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--neutral-75)}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}.text-primary{color:var(--color-primary-500)}.text-subdued{color:var(--text-subdued)}.text-weak{color:var(--text-weak)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.font-inter{font-family:Inter,sans-serif}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.status-badge.active{background:var(--color-success-bg);color:var(--color-success);border:1px solid #AEEABD}.status-badge.completed{background:var(--neutral-100);color:var(--neutral-700);border:1px solid var(--neutral-200)}.status-badge.on-hold{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #FFD894}.status-badge.cancelled{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #FF8A8A}.status-badge.pending{background:var(--color-info-bg);color:var(--color-info);border:1px solid #ADC7FB}.btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;padding:7px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;white-space:nowrap}.btn.btn-primary{background:var(--color-primary-500);color:#fff;border:1px solid var(--color-primary-500)}.btn.btn-primary:hover{background:var(--color-primary-600);border-color:var(--color-primary-600)}.btn.btn-secondary{background:var(--bg-default);color:var(--color-primary-500);border:1px solid var(--color-primary-500)}.btn.btn-secondary:hover{background:var(--color-primary-25);border-color:var(--color-primary-600);color:var(--color-primary-600)}.btn.btn-neutral{background:transparent;color:var(--text-default);border:1px solid var(--border-subtle)}.btn.btn-neutral:hover{background:var(--neutral-75);border-color:var(--border-moderate)}.btn.btn-ghost{background:transparent;color:var(--color-primary-500);border:1px solid transparent}.btn.btn-ghost:hover{background:var(--color-primary-25)}.btn.btn-danger{background:var(--color-danger);color:#fff;border:1px solid var(--color-danger)}.btn.btn-danger:hover{background:#ad0000;border-color:#ad0000}.btn.btn-sm{padding:4px 10px;font-size:12px;border-radius:var(--radius-sm)}.btn.btn-icon{padding:6px;border-radius:var(--radius-md)}.btn.btn-icon svg{width:16px;height:16px}.btn:disabled{opacity:.5;cursor:not-allowed}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:12px;font-weight:600;color:var(--text-subdued);text-transform:uppercase;letter-spacing:.5px}.form-field input,.form-field select,.form-field textarea{padding:8px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-default);color:var(--text-default);font-size:14px;transition:border-color .15s,box-shadow .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary-400);box-shadow:0 0 0 3px #03618d14}.form-field input::placeholder,.form-field select::placeholder,.form-field textarea::placeholder{color:var(--neutral-400)}.card{background:var(--bg-default);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .15s ease}.modal-box{background:var(--bg-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:680px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--neutral-100)}.modal-header h3{font-family:Inter,sans-serif;font-size:16px;font-weight:600;color:var(--text-default)}.modal-header .modal-close{width:28px;height:28px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--text-weak);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px}.modal-header .modal-close:hover{background:var(--neutral-100);color:var(--text-default)}.modal-body{padding:20px 24px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--neutral-100)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;color:#fff;z-index:9999;box-shadow:var(--shadow-md);animation:slideUp .2s ease}.toast.toast-success{background:var(--color-success)}.toast.toast-error{background:var(--color-danger)}.toast.toast-info{background:var(--color-primary-500)}.spinner{width:20px;height:20px;border:2px solid var(--neutral-200);border-top-color:var(--color-primary-500);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-weak)}.empty-state .empty-icon{width:48px;height:48px;margin-bottom:12px;opacity:.4}.empty-state h4{font-family:Inter,sans-serif;font-size:15px;font-weight:600;color:var(--text-subdued);margin-bottom:4px}.empty-state p{font-size:13px;color:var(--text-weak)}.table-wrap{background:var(--bg-subtle);scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--neutral-400) var(--neutral-75)}.table-wrap::-webkit-scrollbar{width:10px;height:14px}.table-wrap::-webkit-scrollbar-track{background:var(--neutral-75)}.table-wrap::-webkit-scrollbar-thumb{background:var(--neutral-400);border-radius:7px}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--neutral-500)}.table-wrap::-webkit-scrollbar-corner{background:var(--neutral-75)}.wip-table,.data-table{border:1px solid var(--border-subtle);background:var(--bg-default);box-shadow:var(--shadow-sm)}.wip-table thead th,.wip-table tbody td,.data-table thead th,.data-table tbody td{border-right:1px solid var(--neutral-100);border-bottom:1px solid var(--neutral-100)}.wip-table thead th,.data-table thead th{border-bottom-width:2px;border-bottom-color:var(--neutral-200)}.wip-table tbody td,.data-table tbody td{border-bottom-color:var(--neutral-200)}.wip-table th.sub-contract,.wip-table td.sub-contract,.wip-table th.sub-budget,.wip-table td.sub-budget,.wip-table th.sub-actuals,.wip-table td.sub-actuals,.wip-table th.sub-gp,.wip-table td.sub-gp,.wip-table th.sub-completion,.wip-table td.sub-completion,.wip-table th.sub-billing,.wip-table td.sub-billing,.wip-table th.sub-backlog,.wip-table td.sub-backlog,.data-table th.sub-contract,.data-table td.sub-contract,.data-table th.sub-budget,.data-table td.sub-budget,.data-table th.sub-actuals,.data-table td.sub-actuals,.data-table th.sub-gp,.data-table td.sub-gp,.data-table th.sub-completion,.data-table td.sub-completion,.data-table th.sub-billing,.data-table td.sub-billing,.data-table th.sub-backlog,.data-table td.sub-backlog{border-left:2px solid var(--neutral-200)}.wip-table th.sub-contract+th.sub-contract,.wip-table td.sub-contract+td.sub-contract,.wip-table th.sub-budget+th.sub-budget,.wip-table td.sub-budget+td.sub-budget,.wip-table th.sub-actuals+th.sub-actuals,.wip-table td.sub-actuals+td.sub-actuals,.wip-table th.sub-gp+th.sub-gp,.wip-table td.sub-gp+td.sub-gp,.wip-table th.sub-completion+th.sub-completion,.wip-table td.sub-completion+td.sub-completion,.wip-table th.sub-billing+th.sub-billing,.wip-table td.sub-billing+td.sub-billing,.wip-table th.sub-backlog+th.sub-backlog,.wip-table td.sub-backlog+td.sub-backlog,.data-table th.sub-contract+th.sub-contract,.data-table td.sub-contract+td.sub-contract,.data-table th.sub-budget+th.sub-budget,.data-table td.sub-budget+td.sub-budget,.data-table th.sub-actuals+th.sub-actuals,.data-table td.sub-actuals+td.sub-actuals,.data-table th.sub-gp+th.sub-gp,.data-table td.sub-gp+td.sub-gp,.data-table th.sub-completion+th.sub-completion,.data-table td.sub-completion+td.sub-completion,.data-table th.sub-billing+th.sub-billing,.data-table td.sub-billing+td.sub-billing,.data-table th.sub-backlog+th.sub-backlog,.data-table td.sub-backlog+td.sub-backlog{border-left:none}.wip-table td.col-money,.wip-table td.col-pct,.wip-table td.num,.wip-table th.col-money,.wip-table th.col-pct,.wip-table th.num,.data-table td.col-money,.data-table td.col-pct,.data-table td.num,.data-table th.col-money,.data-table th.col-pct,.data-table th.num{font-variant-numeric:tabular-nums}.wip-table tbody tr.grid-row-active>td:not(.col-sticky),.data-table tbody tr.grid-row-active>td:not(.col-sticky){background-color:#2563eb0f!important}.wip-table tbody td.grid-col-active:not(.col-sticky),.data-table tbody td.grid-col-active:not(.col-sticky){background-color:#2563eb14!important}.wip-table tbody td.grid-cell-active:not(.col-sticky),.data-table tbody td.grid-cell-active:not(.col-sticky){background-color:#2563eb29!important;box-shadow:inset 0 0 0 2px #2563eb73}.wip-table tbody tr.grid-row-active>td.grid-cell-active:not(.col-sticky),.data-table tbody tr.grid-row-active>td.grid-cell-active:not(.col-sticky){background-color:#2563eb29!important}.wip-table tbody tr.grid-row-active>td.col-sticky,.wip-table tbody td.col-sticky.grid-col-active,.data-table tbody tr.grid-row-active>td.col-sticky,.data-table tbody td.col-sticky.grid-col-active{background-color:color-mix(in srgb,rgb(37,99,235) 10%,var(--bg-default))!important}.wip-table tbody td.col-sticky.grid-cell-active,.data-table tbody td.col-sticky.grid-cell-active{background-color:color-mix(in srgb,rgb(37,99,235) 18%,var(--bg-default))!important;box-shadow:inset 0 0 0 2px #2563eb73}.wip-table thead th.col-sticky.grid-col-active,.data-table thead th.col-sticky.grid-col-active{background-color:color-mix(in srgb,rgb(37,99,235) 8%,var(--bg-default))!important}.wip-table thead th.grid-col-active,.data-table thead th.grid-col-active{background-color:color-mix(in srgb,rgb(37,99,235) 8%,var(--bg-default))!important;color:var(--color-primary-700);font-weight:600}.wip-table tfoot,.data-table tfoot{position:sticky;bottom:0;z-index:5}.wip-table tfoot .totals-row td,.data-table tfoot .totals-row td{padding:8px 10px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:var(--text-default);background:var(--neutral-100);border-top:2px solid var(--neutral-300);white-space:nowrap;font-variant-numeric:tabular-nums}.wip-table tfoot .totals-row td.num,.wip-table tfoot .totals-row td.col-money,.data-table tfoot .totals-row td.num,.data-table tfoot .totals-row td.col-money{text-align:right}.wip-table tfoot .totals-row td.totals-label,.data-table tfoot .totals-row td.totals-label{text-align:left;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--text-subdued)}body.dark .wip-table tbody tr.grid-row-active>td:not(.col-sticky),body.dark .data-table tbody tr.grid-row-active>td:not(.col-sticky){background-color:#60a5fa1a!important}body.dark .wip-table tbody td.grid-col-active:not(.col-sticky),body.dark .data-table tbody td.grid-col-active:not(.col-sticky){background-color:#60a5fa1f!important}body.dark .wip-table tbody td.grid-cell-active:not(.col-sticky),body.dark .data-table tbody td.grid-cell-active:not(.col-sticky){background-color:#60a5fa33!important;box-shadow:inset 0 0 0 2px #60a5fa8c}body.dark .wip-table tbody tr.grid-row-active>td.col-sticky,body.dark .wip-table tbody td.col-sticky.grid-col-active,body.dark .data-table tbody tr.grid-row-active>td.col-sticky,body.dark .data-table tbody td.col-sticky.grid-col-active{background-color:color-mix(in srgb,rgb(96,165,250) 14%,var(--bg-default))!important}body.dark .wip-table tbody td.col-sticky.grid-cell-active,body.dark .data-table tbody td.col-sticky.grid-cell-active{background-color:color-mix(in srgb,rgb(96,165,250) 24%,var(--bg-default))!important;box-shadow:inset 0 0 0 2px #60a5fa8c}body.dark .wip-table thead th.col-sticky.grid-col-active,body.dark .data-table thead th.col-sticky.grid-col-active{background-color:color-mix(in srgb,rgb(96,165,250) 12%,var(--bg-default))!important}body.dark .wip-table thead th.grid-col-active,body.dark .data-table thead th.grid-col-active{background-color:color-mix(in srgb,rgb(96,165,250) 12%,var(--bg-default))!important;color:var(--color-primary-300)}body.dark .wip-table tfoot .totals-row td,body.dark .data-table tfoot .totals-row td{background:var(--neutral-200);border-top-color:var(--neutral-400)}
