:root{--ink:#19253b;--muted:#68758c;--line:#e2e7f0;--blue:#2857dd;--bg:#f5f7fb}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--blue);text-decoration:none}button,input,select{font:inherit}.button,button{cursor:pointer;padding:10px 14px;border:1px solid #d4dce9;background:#fff;border-radius:9px;color:var(--ink);font-weight:650;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button:hover,button:hover{filter:brightness(.97)}button:disabled{opacity:.6;cursor:default}.button.primary,button.primary{background:var(--blue);color:white;border-color:var(--blue)}button.danger{color:#ad3348;border-color:#f2c9d0}.nav,button.secondary{background:#fff}.nav{height:69px;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1350px)/2));border-bottom:1px solid var(--line);gap:40px}.brand{font-weight:850;color:#192d53;font-size:18px;white-space:nowrap}.brand span{color:#536278;font-weight:550;margin-left:8px}.nav nav{display:flex;height:100%;align-items:stretch;gap:12px}.nav nav a{display:flex;align-items:center;color:#51627b;font-size:14px;font-weight:650;padding:0 16px;border-bottom:3px solid transparent}.nav nav a.active{border-color:var(--blue);color:var(--blue)}.account{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:13px}.account small,.muted{color:var(--muted)}.container{max-width:1390px;padding:38px 24px 100px;margin:0 auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.heading h1{font-size:30px;margin:7px 0}.heading p{margin:0}.eyebrow{color:var(--blue);font-size:11px;font-weight:850;letter-spacing:.09em}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin:0 0 22px}.panel h2{font-size:18px;margin:0 0 20px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#f8faff;color:#617087;font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:750;padding:13px}td{border-top:1px solid #eef1f6;padding:15px 13px;white-space:nowrap}td.num{font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.project{font-weight:750}.empty{text-align:center;padding:70px 20px}.empty h3{font-size:20px}.empty p{color:var(--muted);margin-bottom:25px}.alert,.success{border-radius:9px;padding:12px 15px;margin:14px 0;background:#fff0f1;color:#a5223c;font-size:13px}.success{background:#eaf8ef;color:#226843}.back{display:inline-block;margin-bottom:7px;font-size:13px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.dangerZone{display:flex;justify-content:flex-end}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.loginCard{width:min(430px,100%);padding:36px;box-shadow:0 14px 40px #192b4412}.loginCard h1{font-size:30px;margin:10px 0}.loginCard p{margin-bottom:28px}.adminForm label,.login label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650;margin:14px 0}.adminForm input,.adminForm select,.login input{height:43px;width:100%;border:1px solid #d2dbe8;border-radius:8px;padding:10px;color:var(--ink);background:white}.login label.check{flex-direction:row;align-items:center;font-weight:400}.login label.check input{width:17px;height:17px}.loginCard button.primary{width:100%;margin-top:10px;padding:13px}.centre{text-align:center;padding:100px}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs .selected{background:#e9efff;color:var(--blue);border-color:#acc0fb}.adminForm{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));grid-gap:14px;gap:14px}.formActions{display:flex;gap:8px;align-items:end;padding-bottom:14px}.rowActions{display:flex;gap:7px}.rowActions button{padding:7px 10px;font-size:12px}.pill{background:#e8f6ee;color:#137041;border-radius:99px;padding:4px 9px;font-size:11px}.note{font-size:12px}.status{display:inline-block;border-radius:99px;padding:4px 10px;font-size:11px;font-weight:750;vertical-align:middle;background:#eef1f6;color:#51627b}.status.approved{background:#e8f6ee;color:#137041}.status.rejected{background:#fff0f1;color:#a5223c}.heading h1 .status{font-size:12px;margin-left:6px}.statusSelect{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--muted)}.statusSelect select{height:39px;border:1px solid #d4dce9;border-radius:9px;padding:0 10px;color:var(--ink);background:#fff}@media(max-width:800px){.nav{padding:12px;height:auto;flex-wrap:wrap;gap:10px}.account{margin-left:0}.heading{align-items:flex-start;flex-direction:column}.container{padding:24px 12px}}.calc{font-size:14px}.calc .panel h2,.calc h2{font-size:16px;margin:0 0 6px}.calc h3{font-size:14px;margin:0}.calc p{color:var(--muted);margin:4px 0;line-height:1.5}.calc .panel{padding:22px;margin-bottom:17px;box-shadow:0 3px 14px #15294f07}.calc .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.calc label{font-weight:650;font-size:12px;display:block;color:#46556f;margin-bottom:7px}.calc input,.calc select,.calc textarea{width:100%;background:#fff;border:1px solid #cfd8e6;border-radius:8px;padding:10px 11px;color:var(--ink);font:inherit}.calc input:focus,.calc select:focus,.calc textarea:focus{outline:2px solid #b5c8ff;border-color:var(--blue)}.calc input[type=number]{min-width:0}.calc textarea{min-height:66px;resize:vertical}.calc .fields{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:15px;gap:15px}.calc .spanall{grid-column:1/-1}.calc .settingsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:15px;gap:15px;margin-bottom:12px}.calc .kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:13px;gap:13px;margin-bottom:18px}.calc .kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.calc .kpi .lbl{font-size:12px;color:var(--muted);font-weight:700}.calc .kpi .val{font-size:25px;letter-spacing:-.7px;font-weight:800;margin-top:9px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calc .kpi.highlight{background:#18356f;color:#fff}.calc .kpi.highlight .lbl{color:#c7d8fc}.calc .warning{margin:0 0 18px;padding:12px;background:#fff3e2;border:1px solid #edcf9c;border-radius:9px;color:#85531e}.calc .phase{border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden}.calc .phase-head{padding:15px 17px;background:#f8faff;display:flex;align-items:center;justify-content:space-between;gap:16px}.calc .phase-sum{display:flex;align-items:center;gap:12px}.calc .phase-head .sum{font-weight:800;font-size:18px}.calc .phase-content{padding:15px 17px}.calc .addrow{margin-top:12px}.calc .table-wrap{overflow-x:auto}.calc table{font-size:14px}.calc th{background:none;font-size:11px;color:var(--muted);letter-spacing:.4px}.calc td,.calc th{padding:9px 8px;border-bottom:1px solid var(--line)}.calc td{border-top:0;white-space:normal}.calc td.right,.calc th.right{text-align:right}.calc td input,.calc td select{padding:8px 9px}.calc td.rate{white-space:nowrap;color:#607089;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calc .mini{padding:7px 10px;font-size:12px}.calc .remove{border:0;padding:5px 8px;color:#a73c46;background:transparent}.calc .footnote{font-size:12px;color:var(--muted);line-height:1.5}.calc .badge{font-size:11px;background:#edf3ff;color:#3152ad;border-radius:40px;padding:5px 9px;font-weight:700}.calc .other-grid{display:grid;grid-template-columns:minmax(130px,1.5fr) minmax(130px,2fr) 110px 110px 115px 40px;grid-gap:8px;gap:8px;margin-bottom:8px;align-items:center}.calc .other-grid.header{color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}.calc .other-grid .amount{text-align:right;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calc .cost-toggle{display:flex;align-items:center;gap:11px;background:#f1f5ff;border:1px solid #d7e2fa;padding:13px 15px;border-radius:10px;margin:12px 0}.calc .cost-toggle input{width:20px;height:20px;accent-color:var(--blue)}.calc .cost-toggle label{margin:0;font-size:14px;color:var(--ink)}.calc .breakdown{display:grid;grid-gap:10px;gap:10px}.calc .bd-row{display:grid;grid-template-columns:minmax(120px,200px) 1fr 90px 40px;grid-gap:12px;gap:12px;align-items:center}.calc .bd-track{height:12px;background:#eaf0f9;border-radius:4px;overflow:hidden}.calc .bd-track span{display:block;height:100%;background:var(--blue);border-radius:0 4px 4px 0}.calc .bd-val{text-align:right;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calc .bd-pct{text-align:right;font-size:12px}.calc .printOnly{display:none}@media(max-width:800px){.calc .fields,.calc .kpis,.calc .other-grid,.calc .settingsgrid{grid-template-columns:1fr 1fr}.calc .bd-row{grid-template-columns:1fr 80px 36px}.calc .bd-track{grid-column:1/-1;grid-row:2}.calc .other-grid.header{display:none}.calc .other-grid>*{min-width:0}}@media(max-width:480px){.calc .fields,.calc .kpis,.calc .settingsgrid{grid-template-columns:1fr}.calc .phase-head{flex-wrap:wrap}}@media print{@page{size:A4;margin:14mm}body{background:#fff;font-size:10pt}.actions,.alert,.back,.calc button,.dangerZone,.heading p,.hide-print,.nav,.success{display:none!important}.container{max-width:none;padding:0}.heading{margin-bottom:9px}.heading h1{font-size:23pt}.calc .panel{border:0;border-bottom:1px solid #dbe2ed;box-shadow:none;border-radius:0;margin:0;padding:13px 0;page-break-inside:avoid;break-inside:avoid}.calc .kpis{gap:8px;margin:10px 0}.calc .kpi{padding:10px;border:1px solid #d8e0ed}.calc .kpi .val{font-size:18pt}.calc .kpi.highlight{background:#eaf0fc!important;color:#132a58!important}.calc .kpi.highlight .lbl{color:#455a85!important}.calc .phase{page-break-inside:avoid;break-inside:avoid;margin:8px 0}.calc .phase-head{padding:9px 12px}.calc .phase-content{padding:6px 10px}.calc .phase-head .sum{font-size:13pt}.calc input,.calc select,.calc textarea{border:0!important;padding:0;background:transparent!important;-moz-appearance:none;appearance:none;-webkit-appearance:none}.calc textarea{min-height:0;height:28px}.calc input[type=number]{width:55px}.calc td,.calc th{padding:5px}.calc .printOnly{display:block;font-size:9pt}.calc .other-grid{grid-template-columns:1.2fr 1.5fr 75px 75px 100px;gap:5px}.calc .bd-track,.gantt{print-color-adjust:exact;-webkit-print-color-adjust:exact}.g-scroll{overflow:visible}.g-body{min-width:0}.calc .stage-head input{border:0!important}.calc .footnote{font-size:9pt}}.toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.calc .row{display:flex;gap:8px;align-items:center}.calc .summary{margin:-6px 0 18px;font-size:13px}.calc .stage-head{flex-wrap:wrap}.calc .stage-name{flex:1 1 200px}.calc .stage-name input{font-weight:750;font-size:15px;background:transparent;border-color:transparent;padding:6px 8px}.calc .stage-name input:hover{border-color:#cfd8e6}.calc .stage-dates{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calc .stage-dates label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}.calc .stage-dates input{width:auto;padding:6px 8px}.calc table.capacity td{vertical-align:top}.calc table.capacity td:first-child{min-width:190px}.calc table.capacity td:nth-child(2){min-width:180px}.calc table.capacity td:nth-child(3),.calc table.capacity td:nth-child(4),.calc table.capacity td:nth-child(5){width:96px;min-width:96px}.calc .hint{display:block;font-size:11px;color:var(--muted);margin-top:3px}.calc td.right .hint{text-align:right}.calc select.unassigned{color:#85531e;background:#fffaf2;border-color:#edcf9c}.calc .suffix{display:flex;align-items:center;gap:4px}.calc .suffix span{color:var(--muted)}.gantt{position:relative;font-size:13px}.g-scroll{overflow-x:auto}.g-body{min-width:720px}.g-row{display:grid;grid-template-columns:220px 1fr;min-height:32px}.g-label,.g-row{align-items:center}.g-label{padding:0 12px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:8px}.g-indent{padding-left:14px;color:var(--muted)}.g-track{position:relative;height:32px;border-left:1px solid var(--line)}.g-head .g-track{height:28px;border-left:0}.g-head{border-bottom:1px solid var(--line)}.g-tick{position:absolute;bottom:6px;font-size:11px;color:var(--muted);padding-left:4px;white-space:nowrap}.g-todayLabel{transform:translateX(-50%);font-size:10px;font-weight:750;color:var(--ink);background:#fff;padding:0 4px}.g-grid,.g-todayLabel{position:absolute;top:0}.g-grid{bottom:0;width:1px;background:#eef1f6}.g-today{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed #68758c;z-index:1}.g-bar,.g-span{position:absolute;top:9px;height:14px;background:var(--blue);border-radius:4px;cursor:default;z-index:2;outline-offset:2px}.g-span{top:12px;height:8px;background:#9db2ec}.g-bar:focus,.g-bar:hover,.g-span:focus,.g-span:hover{filter:brightness(1.12)}.g-project{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.g-project .g-label{font-weight:750}.g-group:first-of-type .g-project{border-top:0}.g-tip{position:fixed;transform:translate(-50%,calc(-100% - 8px));background:var(--ink);color:#fff;font-size:12px;padding:7px 10px;border-radius:7px;pointer-events:none;z-index:50;max-width:320px;box-shadow:0 6px 18px #0f1d3533}@media(max-width:800px){.g-row{grid-template-columns:140px 1fr}}.calc.stale .bd-val,.calc.stale .kpi .val,.calc.stale .sum,.calc.stale table.capacity strong{opacity:.55;transition:opacity .2s}.calc .unscheduled{margin-top:16px}