:root{--bg:#eaeef0;--surface:#ffffff;--surface-2:#f4f7f8;--panel:#fafbfc;--ink:#15202a;--muted:#596673;--faint:#8a97a1;--line:#dde3e7;--line-strong:#c2cbd1;--accent:#0f5f7a;--accent-ink:#0b4a60;--accent-soft:#e4eff3;--green:#1b9e5f;--green-bg:#e7f6ee;--red:#d8412f;--red-bg:#fbe6e3;--radius:14px;--radius-sm:9px;--sh-1:0 1px 2px rgba(16,30,40,.06);--sh-2:0 2px 10px rgba(16,30,40,.08);--sh-3:0 16px 44px rgba(16,30,40,.18);--sans:"Segoe UI","Segoe UI Variable Text",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;--mono:"Cascadia Code",Consolas,ui-monospace,"SF Mono",monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;white-space:nowrap;font-size:14px;font-weight:500;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:10px;padding:9px 14px;transition:background .12s,border-color .12s,color .12s,transform .05s;min-height:40px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.btn-ghost{border-style:dashed}.btn-danger:hover{border-color:var(--red);color:var(--red)}.btn-sm{font-size:12.5px;padding:6px 11px;min-height:34px;border-radius:8px}.btn-icon{padding:8px 11px}.btn svg{flex:0 0 auto}.shell{max-width:1180px;margin:0 auto;padding:0 clamp(10px,3vw,18px) 40px}.appbar{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:saturate(1.3) blur(8px);backdrop-filter:saturate(1.3) blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px clamp(10px,3vw,18px);margin:0 calc(-1*clamp(10px,3vw,18px)) 16px}.brand{display:flex;align-items:center;gap:11px;margin-right:auto}.brand .logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(140deg,var(--accent),#1a7fa0);color:#fff;display:grid;place-items:center;font-size:20px;flex:0 0 auto;box-shadow:var(--sh-1)}.brand .title{font-size:17px;font-weight:800;letter-spacing:-.2px;line-height:1.05}.brand .sub{font-size:11px;color:var(--muted);font-family:var(--mono)}.appbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.select{font-size:14px;border:1px solid var(--line-strong);border-radius:9px;padding:9px 11px;background:var(--surface);color:var(--ink);min-height:40px}.switcher-select{min-width:0;max-width:52vw;font-weight:600}.menu{position:relative}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:50;min-width:214px;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--sh-3);padding:6px;display:flex;flex-direction:column;animation:pop .12s ease-out}.menu-pop button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:none;background:transparent;color:var(--ink);font-size:14px;padding:10px 12px;border-radius:8px;cursor:pointer}.menu-pop button:hover{background:var(--surface-2)}.menu-pop button.danger{color:var(--red)}.menu-pop button.danger:hover{background:var(--red-bg)}.menu-sep{height:1px;background:var(--line);margin:5px 6px}.tabbar{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;margin-bottom:16px}.tab{border:none;background:transparent;color:var(--muted);font-weight:600;font-size:14px;padding:9px 18px;border-radius:9px;cursor:pointer;display:inline-flex;gap:7px;align-items:center}.tab.active{background:var(--surface);color:var(--accent);box-shadow:var(--sh-1)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh-1);margin-bottom:16px}.collapsible{overflow:hidden}.card-head{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;cursor:pointer;text-align:left;padding:14px 16px;color:var(--ink);min-height:52px}.card-head h2{font-size:13px;font-weight:800;margin:0;letter-spacing:.2px;flex:0 0 auto;text-transform:uppercase}.card-head .card-sub{font-size:12px;color:var(--muted);margin-left:auto;font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52%}.card-head:hover{background:var(--surface-2)}.card-body{padding:2px 16px 16px}.chev{flex:0 0 auto;color:var(--muted);transition:transform .18s ease;transform:rotate(-90deg)}.chev.open{transform:rotate(0)}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field.wide{grid-column:1 / -1}.field label{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.2px}.field input,.field select{font-size:16px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px;width:100%}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.paper{padding:clamp(14px,4vw,26px);margin-bottom:16px}.letterhead{border-bottom:2px solid var(--ink);padding-bottom:13px}.lh-co{display:flex;align-items:center;gap:13px}.lh-mark{width:46px;height:46px;border-radius:11px;border:2px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:24px;flex:0 0 auto}.lh-name{font-size:clamp(15px,3.6vw,19px);font-weight:800;line-height:1.1}.lh-addr{font-size:12px;color:var(--muted)}.rtitle{text-align:center;margin:16px 0 2px}.rtitle h1{font-size:clamp(15px,3.6vw,18px);margin:0;font-weight:800;letter-spacing:.3px;text-transform:uppercase;text-wrap:balance}.rtitle p{margin:4px 0 0;font-size:14px;color:var(--muted)}.table-wrap{margin-top:16px}table{border-collapse:collapse;width:100%;display:block;font-size:14px}thead{display:none}tbody{display:block}input.cell{font-family:var(--mono);font-size:16px;text-align:right;width:132px;max-width:46%;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);padding:7px 11px;border-radius:9px}input.cell:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}tbody tr.row{position:relative;display:block;border:1px solid var(--line);border-radius:13px;background:var(--surface);margin-bottom:10px;padding:2px 14px 8px;box-shadow:var(--sh-1)}tbody tr.row td{display:flex;align-items:center;justify-content:space-between;gap:12px;border:none;padding:7px 0;text-align:right}tbody tr.row td[data-label]:not(.calc){border-top:1px solid #eef2f4}tbody tr.row td:before{content:attr(data-label);font-size:13px;font-weight:500;color:var(--muted);text-align:left;flex:1 1 auto;white-space:nowrap}td.proses{display:block;font-weight:700;font-size:15.5px;padding:10px 44px 9px 1px;text-align:left;color:var(--ink)}td.proses:before{display:none!important}td.calc{margin-top:9px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border-radius:10px;padding:9px 12px}td.calc:before{color:var(--accent-ink);font-family:var(--sans);font-size:13px;font-weight:700}td.calc.neg .akhir-input{color:var(--red)}td.calc.neg:before{color:var(--red)}td.calc.is-override{background:#fff3df;outline:1px solid #e9bd6a;outline-offset:-1px}.akhir-wrap{display:flex;align-items:center;gap:4px;flex:0 0 auto}input.cell.akhir-input{background:#fff;border-color:#cfe0e6;font-weight:800;color:var(--accent-ink)}input.cell.akhir-input::placeholder{color:var(--accent-ink);opacity:.5}.revert{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:7px}.revert:hover{color:var(--accent);background:#fff}.akhir-hint{width:100%;text-align:right;font-size:11px;color:#9a6a12;font-weight:600;margin-top:5px}td.act{position:absolute;top:10px;right:10px}td.act:before{display:none!important}tr.group{display:block}tr.group td{display:block;padding:0;border:none;background:transparent}.group-toggle{display:flex;align-items:center;gap:9px;width:100%;border:none;cursor:pointer;text-align:left;background:var(--accent-soft);color:var(--accent-ink);border-radius:10px;padding:11px 13px;margin:12px 0 10px;font-weight:800;font-size:12.5px;letter-spacing:.5px;text-transform:uppercase}.group-toggle:hover{background:#d6e8ef}.group-toggle .gname{flex:1;min-width:0}.group-toggle .gbadge{flex:0 0 auto;font-size:10.5px;font-weight:700;letter-spacing:.2px;text-transform:none;color:var(--accent-ink);background:var(--surface);border-radius:999px;padding:2px 9px}.group-toggle .chev{color:var(--accent-ink)}tbody tr.row.collapsed{display:none}.rowdel{border:none;background:transparent;color:var(--faint);font-size:16px;line-height:1;padding:6px 8px;border-radius:8px;cursor:pointer}.rowdel:hover{color:var(--red);background:var(--red-bg)}tfoot{display:block}tfoot tr{display:block;border:2px solid var(--accent);border-radius:12px;background:var(--surface);margin-top:6px;padding:4px 7px 9px}tfoot td{display:flex;justify-content:space-between;border:none;padding:8px;font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--mono);text-align:right}tfoot td:before{content:attr(data-label);font-size:12.5px;color:var(--muted);font-family:var(--sans);font-weight:600;text-align:left}tfoot td.lbl{display:block;text-align:left;font-family:var(--sans);font-weight:800;color:var(--accent-ink);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:2px}tfoot td.lbl:before{display:none}tfoot td.grand{color:var(--accent)}tfoot td.grand:before{color:var(--muted)}tfoot td.act{display:none}.empty{padding:26px 14px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:12px;margin-top:14px}.actions-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.report-controls{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:16px 0 2px}.report-controls .btn svg{margin-right:-1px}.summary{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}.sm-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:6px 13px}.sm-pill b{color:var(--ink);font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13px}.sm-pill.accent{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}.sm-pill.accent b{color:var(--accent-ink)}.sm-pill.accent.neg{background:var(--red-bg);color:var(--red)}.sm-pill.accent.neg b{color:var(--red)}.hintbox{display:flex;gap:9px;align-items:flex-start;margin-top:14px;font-size:12.5px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:11px 13px}.hintbox code{font-family:var(--mono);color:var(--accent-ink);background:var(--accent-soft);padding:1px 5px;border-radius:4px;font-size:12px}.signatures{display:flex;flex-wrap:wrap;justify-content:space-between;gap:clamp(18px,6vw,54px);margin-top:30px}.sign-box{text-align:center;font-size:13px;flex:1 1 140px;min-width:130px}.sign-box .role{color:var(--muted);margin-bottom:48px}.sign-box .sign-name{width:100%;border:none;border-top:1px solid var(--ink);background:transparent;text-align:center;font-weight:600;font-size:13px;color:var(--ink);padding:6px 4px 3px;border-radius:0}.sign-box .sign-name:focus{outline:none;border-top-color:var(--accent);background:var(--accent-soft)}.sign-box .sign-name::placeholder{color:var(--faint);font-weight:400}.foot-note{margin-top:20px;font-size:11px;color:var(--faint);font-family:var(--mono)}.master{padding:20px;margin-bottom:16px}.master-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.master-head h2{font-size:18px;margin:0 auto 0 0;font-weight:800}.master .desc{color:var(--muted);font-size:13px;margin:4px 0 16px;max-width:72ch}.mgroup{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.mgroup .ghead{display:flex;align-items:center;gap:7px;background:var(--surface-2);padding:8px 10px;border-bottom:1px solid var(--line)}.mgroup.is-collapsed .ghead{border-bottom:none}.ghead-toggle{flex:0 0 auto;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:5px;border-radius:7px;display:inline-flex}.ghead-toggle:hover{color:var(--accent);background:var(--surface)}.gcount{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 9px}.mgroup .ghead input{font-weight:800;font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent-ink);border:1px solid transparent;background:transparent;border-radius:7px;padding:5px 8px;flex:1;min-width:110px}.mgroup .ghead input:focus{outline:none;border-color:var(--accent);background:#fff}.comps{display:flex;flex-wrap:wrap;gap:8px;padding:12px}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:999px;padding:3px 4px 3px 12px}.chip input{border:none;background:transparent;font-size:13px;color:var(--ink);width:auto;min-width:40px;max-width:240px;padding:4px 2px}.chip input:focus{outline:none}.chip .x{border:none;background:transparent;color:var(--faint);cursor:pointer;font-size:15px;line-height:1;padding:3px 7px;border-radius:50%}.chip .x:hover{color:var(--red);background:var(--red-bg)}.chip.add{background:transparent;border-style:dashed;cursor:pointer;color:var(--accent);font-weight:600;padding:6px 13px}.chip.add:hover{background:var(--accent-soft)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e161c80;display:flex;align-items:flex-start;justify-content:center;z-index:60;padding:clamp(12px,5vw,44px) 12px;overflow:auto}.modal{background:var(--surface);border-radius:16px;max-width:720px;width:100%;box-shadow:var(--sh-3);overflow:hidden;animation:pop .14s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:16px;flex:1}.modal-body{padding:14px 18px;max-height:62vh;overflow:auto}.modal-foot{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:9px;background:var(--surface-2);flex-wrap:wrap}.pick-group{margin-bottom:14px}.pick-title{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.pick-grid{display:grid;grid-template-columns:1fr;gap:7px}label.pick{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13.5px;cursor:pointer;background:var(--surface-2)}label.pick:hover{border-color:var(--accent)}label.pick input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}label.pick.on{background:var(--accent-soft);border-color:var(--accent)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%) translateY(18px);background:var(--ink);color:#fff;padding:11px 18px;border-radius:10px;font-size:13.5px;box-shadow:var(--sh-3);opacity:0;pointer-events:none;transition:.2s;z-index:80}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.appfooter{text-align:center;color:var(--faint);font-size:12px;padding:10px 0 4px}.appfooter b{color:var(--muted)}.appfooter a{color:var(--muted);text-decoration:none}.appfooter a:hover{color:var(--accent);text-decoration:underline}.appfooter a:hover b{color:var(--accent)}@media (min-width:720px){.meta-grid{grid-template-columns:repeat(3,1fr)}.pick-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:980px){.pick-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:860px),print{.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table{display:table;min-width:920px;font-size:13px}thead{display:table-header-group}thead th{background:var(--accent);color:#fff;font-weight:600;font-size:11px;padding:10px 8px;text-align:center;border:1px solid #0d5068;position:sticky;top:0}thead th.l{text-align:left}tbody{display:table-row-group}tbody tr.row{display:table-row;border:none;border-radius:0;margin:0;padding:0;box-shadow:none;background:transparent}tbody tr.row td{display:table-cell;border:1px solid var(--line);padding:0;text-align:center;vertical-align:middle;gap:0}tbody tr.row td:before{display:none}td.proses{display:table-cell;text-align:left;padding:8px 10px;font-weight:500;font-size:13px;border:1px solid var(--line);margin:0}input.cell{width:100%;max-width:none;border:none;background:transparent;text-align:center;border-radius:0;font-size:13px;padding:9px 6px;box-shadow:none}input.cell:focus{box-shadow:none;outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}td.calc{background:var(--accent-soft);padding:0;font-size:13px;margin:0;border-radius:0;flex-wrap:nowrap}td.calc.neg{background:var(--red-bg)}td.calc.is-override{background:#fff3df;outline:none}td.calc:before{display:none}.akhir-wrap{justify-content:center;gap:0}input.cell.akhir-input{width:100%;max-width:none;background:transparent;border:none;border-radius:0;text-align:center;font-weight:800;color:var(--accent-ink);padding:9px 6px}.akhir-hint{display:none}.revert{font-size:14px;padding:3px 5px}td.act{position:static;width:44px;background:var(--surface-2);top:auto;right:auto}tr.group{display:table-row}tr.group td{display:table-cell;background:var(--surface-2);border:none;border-top:2px solid var(--line-strong);border-radius:0;margin:0;padding:0}.group-toggle{background:transparent;color:var(--accent-ink);border-radius:0;margin:0;padding:8px 10px;font-size:12px}.group-toggle:hover{background:#e3eaed}.rowdel{background:transparent;padding:7px;font-size:16px}tfoot{display:table-footer-group}tfoot tr{display:table-row;border:none;border-radius:0;margin:0;padding:0}tfoot td{display:table-cell;background:#eef3f5;border:1px solid var(--line-strong);padding:10px 8px;text-align:center;font-weight:800}tfoot td:before{display:none}tfoot td.lbl{text-align:right;letter-spacing:.5px;font-family:var(--sans);border:1px solid var(--line-strong);padding:10px 8px;margin:0;color:var(--ink)}tfoot td.grand{color:#fff;background:var(--accent)}tfoot td.act{display:table-cell}}@page{size:A4 landscape;margin:12mm}@media print{body{background:#fff}.appbar,.tabbar,.collapsible,.report-controls,.actions-row,.hintbox,.toast,.rowdel,.act,.overlay,.appfooter,.master,.menu,.chev,.group-toggle .gbadge{display:none!important}tbody tr.row.collapsed{display:table-row!important}.shell{max-width:none;padding:0}.paper{border:none;box-shadow:none;padding:0;margin:0}thead th,tfoot td.grand,tbody td.calc,tr.group td{-webkit-print-color-adjust:exact;print-color-adjust:exact}input.cell{border:none!important;background:transparent!important;box-shadow:none!important}tr,.signatures{break-inside:avoid}}
