:root{--bg:#f4f6fa;--surface:#fff;--surface2:#f8fafc;--line:#e2e8f0;--line2:#cbd5e1;--text:#0f172a;--muted:#64748b;--faint:#94a3b8;--blue:#1d4ed8;--green:#15803d;--red:#b91c1c;--amber:#b45309;--radius:12px;--shadow:0 8px 26px #0f172a14}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:20;background:#111827;flex-direction:column;width:250px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:22px 18px;display:flex}.brand-mark{background:#2563eb;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand span{color:#ffffff80;margin-top:2px;font-size:12px;display:block}.nav{flex-direction:column;padding:14px 0;display:flex}.nav-link{color:#ffffffad;text-align:left;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;padding:12px 20px;font-weight:700}.nav-link:hover,.nav-link.active{color:#fff;background:#2563eb2e;border-left-color:#60a5fa}.sidebar-foot{color:#ffffff7a;border-top:1px solid #ffffff14;margin-top:auto;padding:15px 18px;font-size:12px}.main{flex:1;min-width:0;margin-left:250px}.topbar{border-bottom:1px solid var(--line);z-index:10;background:#fff;justify-content:space-between;align-items:center;gap:16px;height:70px;padding:0 24px;display:flex;position:sticky;top:0}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 3px;font-size:12px;font-weight:700}.topbar h1{margin:0;font-size:20px}.top-actions{align-items:center;gap:8px;display:flex}.content{padding:22px}.stepper{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;align-items:center;margin-bottom:18px;padding:12px;display:flex}.stepper i{background:var(--line);flex:1;height:2px;margin:0 8px}.step{cursor:pointer;color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;font-weight:800;display:flex}.step b{color:#64748b;background:#e2e8f0;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.step.active b,.step.done b{background:var(--blue);color:#fff}.step.done b{background:var(--green)}.page{display:none}.page.active{display:block}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:minmax(0,1fr) 360px}.grid-3{grid-template-columns:repeat(3,1fr)}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-bottom:16px}.card-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:15px 16px;display:flex}.card-title{font-weight:800}.card-body{padding:16px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:14px}.stat small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800;display:block}.stat strong{margin-top:4px;font-size:22px;display:block}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar input,.toolbar select{max-width:280px}.btn,.icon-btn{border:1px solid var(--line2);color:var(--text);cursor:pointer;background:#fff;border-radius:9px;padding:9px 12px;font-weight:800;text-decoration:none}.btn:hover,.icon-btn:hover{background:var(--surface2)}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-green{background:var(--green);border-color:var(--green);color:#fff}.btn-danger{color:var(--red);border-color:#fecaca}.btn-sm{padding:6px 8px;font-size:12px}.input-label{justify-content:center;align-items:center;display:inline-flex}input,select,textarea{border:1px solid var(--line2);width:100%;font:inherit;background:#fff;border-radius:9px;padding:9px 10px}label{color:var(--muted);font-size:12px;font-weight:800}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tab{border:1px solid var(--line2);cursor:pointer;color:var(--muted);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.tab.active{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.table-wrap{border:1px solid var(--line);border-radius:12px;width:100%;overflow:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:850px}th,td{border-bottom:1px solid var(--line);vertical-align:top;text-align:left;padding:10px 11px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;font-size:12px}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:SFMono-Regular,Consolas,monospace}.muted{color:var(--muted)}.badge{color:#475569;background:#e2e8f0;border-radius:999px;align-items:center;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.badge.blue{color:#1d4ed8;background:#dbeafe}.badge.green{color:#15803d;background:#dcfce7}.badge.amber{color:#b45309;background:#fef3c7}.badge.red{color:#b91c1c;background:#fee2e2}.empty{text-align:center;color:var(--muted);padding:32px}.modal-root{z-index:50;background:#0f172a8f;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:min(980px,100%);max-height:88vh;overflow:auto;box-shadow:0 20px 70px #0000004d}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.modal-body{padding:18px}.toast-root{z-index:80;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{color:#fff;box-shadow:var(--shadow);background:#111827;border-radius:10px;padding:11px 13px;font-weight:700}.print-doc{border:1px solid var(--line);background:#fff;border-radius:12px;padding:28px}.print-doc h2{text-align:center;margin:0 0 14px}.print-meta{grid-template-columns:160px 1fr;gap:6px;margin-bottom:18px;display:grid}.mobile-only{display:none}.actions-cell{flex-wrap:wrap;gap:6px;display:flex}.small-note{color:var(--muted);font-size:12px;line-height:1.45}.split{justify-content:space-between;align-items:center;gap:12px;display:flex}.kpi-list{gap:10px;display:grid}.kpi-list div{border-bottom:1px dashed var(--line2);justify-content:space-between;padding-bottom:7px;display:flex}@media (width<=900px){.sidebar{transition:all .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.mobile-only{display:inline-flex}.topbar{height:auto;padding:12px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.content{padding:12px}.grid-2,.grid-3,.stat-grid{grid-template-columns:1fr}.stepper{overflow:auto}.step span{white-space:nowrap}.toolbar input,.toolbar select{max-width:none}.form-row{grid-template-columns:1fr}table{min-width:760px}}@media print{.sidebar,.topbar,.stepper,.no-print{display:none!important}.main{margin:0}.content{background:#fff;padding:0}.page{display:none!important}.page#print-page,.page.active{display:block!important}.print-doc{box-shadow:none;border:0;padding:0}.card{box-shadow:none;border:0}}[hidden]{display:none!important}.modal-root[hidden],.modal-root:empty{pointer-events:none;background:0 0;display:none!important}.modal-root:not([hidden]){pointer-events:auto}.hps-layout{grid-template-columns:430px minmax(0,1fr);align-items:start;gap:16px;display:grid}.hps-picker{flex-direction:column;max-height:calc(100vh - 110px);display:flex;position:sticky;top:86px;overflow:hidden}.hps-picker .table-wrap{border-left:0;border-right:0;border-radius:0;max-height:55vh;overflow:auto}.hps-candidate-table table{min-width:0}.hps-candidate-table th:first-child,.hps-candidate-table td:first-child,.hps-candidate-table th:nth-child(3),.hps-candidate-table td:nth-child(3){width:78px}.hps-list table{min-width:940px}@media (width<=1100px){.hps-layout{grid-template-columns:1fr}.hps-picker{max-height:none;position:static}.hps-picker .table-wrap{max-height:none}}.ahsp-detail-head{margin-bottom:14px}.ahsp-detail-head h3{margin:7px 0 0;font-size:15px;line-height:1.35}.ahsp-active-price{border:1px solid var(--line);background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.ahsp-active-price span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.ahsp-active-price strong{font-size:18px}.ahsp-detail-wrap{border-radius:0}.ahsp-detail-table{min-width:980px}.ahsp-detail-table th{color:#fff;text-align:center;text-transform:none;letter-spacing:0;background:#0d82f3;border-color:#d6e4f5;font-size:12px}.ahsp-detail-table td{border-color:#d7dde5;padding:7px 8px}.ahsp-detail-table tbody tr:nth-child(2n):not(.ahsp-section-row):not(.ahsp-subtotal-row):not(.ahsp-summary-row):not(.ahsp-total-row){background:#f1f1f1}.ahsp-number-row th{background:#0875dd;font-weight:800}.ahsp-section-row td{background:#fff;font-weight:400}.ahsp-subtotal-row td,.ahsp-summary-row td{background:#f3f4f6}.ahsp-total-row td{background:#fff;font-weight:800}.price-input{text-align:right;border-radius:6px;width:130px;padding:5px 7px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#eff6ff!important}@media (width<=900px){.ahsp-detail-table{min-width:900px}.price-input{width:112px}.ahsp-active-price{flex-direction:column;align-items:flex-start}.ahsp-detail-head h3{font-size:13px}}.row-over-ssh:hover td{background:#ffe4e6!important}.compact-stats{margin:12px 0}.row-missing-ssh td{background:#fff5f5}.ssh-check-table td{vertical-align:top}.row-over-ssh td{background:#fff5f5}.hpsManualHarga{text-align:right;border:1px solid var(--border,#d0d7de);background:#fff;border-radius:8px;width:130px;max-width:100%;padding:8px 10px}.rate-input,.hpsOverheadRate{text-align:right;border-radius:6px;width:90px;padding:5px 7px}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid label{margin-bottom:5px;display:block}@media (width<=900px){.form-grid{grid-template-columns:1fr}}.hps-list .section-row td{color:#14532d;text-transform:uppercase;background:#dcfce7;font-weight:800}.hps-list .subtotal-row td{background:#fef9c3;font-weight:800}.sidebar,.main{transition:transform .2s,margin-left .2s}.sidebar-hidden .sidebar{transform:translate(-100%)}.sidebar-hidden .main{margin-left:0}.main{width:100%}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.price-value{text-align:right;font-variant-numeric:tabular-nums;min-width:120px}.is-hidden{display:none!important}.warning-card{background:#fffbeb;border-color:#f59e0b}.warning-card .card-body{color:#92400e}@media (width<=1250px){.content{padding:14px}.hps-layout{grid-template-columns:330px minmax(0,1fr);gap:12px}.hps-list table{min-width:860px}.hps-list th,.hps-list td{padding:7px 6px}.hpsVol{min-width:76px}.topbar{flex-wrap:wrap;height:auto;padding:10px 14px}}@media (width<=900px){.top-actions{margin-left:auto}.hps-layout{grid-template-columns:1fr}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.hps-list table{min-width:860px}}.hps-picker-top .hps-candidate-table{max-height:360px;overflow:auto}.hps-picker-top .hps-candidate-table table{min-width:680px}.subwork-form{grid-template-columns:minmax(220px,1fr) minmax(320px,2fr);align-items:end;gap:14px;display:grid}.subwork-row td{color:#fff;text-transform:uppercase;font-weight:800;background:#1e3a8a!important}.subwork-form label{margin-bottom:6px;display:block}@media (width<=700px){.subwork-form{grid-template-columns:1fr}}:root{--text:#0b2540;--blue:#0b2a4a;--amber:#f5a900;--shadow:0 8px 26px #0b2a4a1a}.sidebar{background:#061b30}.brand{background:#fff;border-bottom:4px solid #f5a900;justify-content:center;padding:14px}.brand-logo{width:100%;max-width:215px;height:auto;display:block}.nav-link:hover,.nav-link.active{background:#f5a90029;border-left-color:#f5a900}.eyebrow{color:#b77900}.brand-mark{color:#061b30;background:#f5a900}.comparison-table td:nth-child(7) strong,.comparison-table td:nth-child(7) span,.comparison-table td:nth-child(7) br,.ssh-check-table td:nth-child(2) span,.ssh-check-table td:nth-child(2) br,.ssh-check-table td:nth-child(4) strong,.ssh-check-table td:nth-child(4) span,.ssh-check-table td:nth-child(4) br{display:none}.hps-list td{vertical-align:middle}.hps-list .actions-cell{white-space:nowrap;flex-wrap:nowrap;align-items:center}.rate-with-unit{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.rate-with-unit .hpsOverheadRate{margin:0}.modal:has(.ahsp-detail-table){width:min(1200px,100%)}.ahsp-detail-wrap{overflow:visible!important}.ahsp-detail-table{table-layout:fixed;width:100%;font-size:12px;min-width:0!important}.ahsp-detail-table th:first-child{width:6%}.ahsp-detail-table th:nth-child(2){width:27%}.ahsp-detail-table th:nth-child(3){width:13%}.ahsp-detail-table th:nth-child(4){width:9%}.ahsp-detail-table th:nth-child(5){width:12%}.ahsp-detail-table th:nth-child(6){width:16%}.ahsp-detail-table th:nth-child(7){width:17%}.ahsp-detail-table th,.ahsp-detail-table td{overflow-wrap:anywhere}.ahsp-detail-table .price-input{width:100%;min-width:0;max-width:130px}.auth-page{background:#f4f6fa;place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border-radius:12px;gap:10px;padding:24px;display:grid}.auth-logo{width:220px;max-width:100%;margin:0 auto 8px}.auth-card h1{text-align:center;margin:0;font-size:22px}.auth-card p{color:var(--muted);text-align:center;margin:0 0 8px}.auth-error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:9px 10px;font-weight:700}.user-badge{border:1px solid var(--line);color:var(--muted);background:#f8fafc;border-radius:999px;align-items:center;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.stepper{z-index:9;position:sticky;top:82px}.filter-panel{gap:12px;display:grid}.filter-grid{grid-template-columns:minmax(260px,1fr) minmax(170px,220px) auto;align-items:center;gap:10px;display:grid}.filter-grid-wide{grid-template-columns:minmax(260px,1fr) minmax(170px,220px) minmax(260px,auto)}.filter-grid .tabs{align-items:center}#page-ahsp table{min-width:1120px}@media (width<=900px){.stepper{top:74px}.filter-grid,.filter-grid-wide{grid-template-columns:1fr}.filter-grid .btn{width:100%}}.dashboard-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.dashboard-head h2{margin:0 0 6px;font-size:22px}.dashboard-head p{color:var(--muted);margin:0;font-weight:600}.dashboard-head input{background:#fff;max-width:420px}.dashboard-kpis{grid-template-columns:1.05fr repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.dashboard-card,.dashboard-new-project{border:1px solid var(--line);min-height:130px;box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;justify-content:center;gap:8px;padding:18px;display:flex}.dashboard-card small{color:var(--muted);font-size:12px;font-weight:800}.dashboard-card strong{color:var(--text);font-size:26px}.dashboard-card span{color:#1d4ed8;font-size:12px;font-weight:700}.dashboard-new-project{text-align:center;cursor:pointer;border:1px dashed #93c5fd;align-items:center}.dashboard-new-project span{color:#fff;background:#2563eb;border-radius:50%;place-items:center;width:48px;height:48px;font-size:30px;font-weight:800;line-height:1;display:grid}.dashboard-new-project strong{font-size:14px}.dashboard-new-project small{color:var(--muted);line-height:1.35}.dashboard-new-project:hover{background:#f8fbff}.dashboard-table-card table{min-width:980px}.ahsp-stat-grid{grid-template-columns:repeat(3,1fr)}@media (width<=1100px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-head{flex-direction:column}.dashboard-head input{max-width:none}.ahsp-stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.dashboard-kpis,.ahsp-stat-grid{grid-template-columns:1fr}}.loading-state{align-items:center;gap:12px;min-height:110px;display:flex}.loader-dot{border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings-layout{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.settings-layout .card{margin-bottom:0}.settings-card-wide .table-wrap{border-bottom:0;border-left:0;border-right:0;border-radius:0 0 12px 12px}.assignment-form{grid-template-columns:minmax(280px,1fr) minmax(220px,320px) auto;align-items:end;gap:12px;display:grid}.assignment-form .btn{white-space:nowrap;height:39px}@media (width<=900px){.assignment-form{grid-template-columns:1fr}.assignment-form .btn{width:100%}}.auth-card{width:min(460px,100%)}.auth-card select{background:#fff}.auth-error{line-height:1.45}
