:root{
  /* FA-00 design tokens — legacy aliases kept for backward compatibility. */
  --engineering-navy:#16324F;--steel-blue:#2F5D7C;--concrete-light:#E9EDF0;--slate:#5F6B76;--graphite:#1F2933;--safety-amber:#D99A1D;
  --surface:#FFFFFF;--surface-2:#F6F8FA;--surface-3:#EEF2F5;--text:var(--graphite);--muted:var(--slate);
  --line:#CFD7DE;--line-strong:#AAB7C2;--focus:#2F5D7C;--danger:#B42318;--ok:#237A4B;--warn:#9A6700;
  --bg:var(--concrete-light);--accent:var(--engineering-navy);--accent-soft:#DDE7EE;
  --radius-control:8px;--radius-button:10px;--radius-panel:13px;--radius-modal:16px;--radius:var(--radius-panel);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;
  --shadow:0 4px 16px rgba(22,50,79,.07);--shadow-modal:0 20px 60px rgba(22,50,79,.20);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{padding:0 0 calc(76px + env(safe-area-inset-bottom))}
button,input,select,textarea{font:inherit}button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;background:rgba(243,244,246,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(229,231,235,.75)}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.15em;color:var(--muted)}
h1{margin:2px 0 0;font-size:22px;line-height:1.15}
.view{max-width:920px;margin:0 auto;padding:16px 14px 30px}
.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;height:calc(68px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(6,1fr);background:rgba(255,255,255,.97);border-top:1px solid var(--line);backdrop-filter:blur(12px)}
.nav-btn{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}.nav-btn span{font-weight:800;font-size:17px}.nav-btn small{font-size:10px}.nav-btn.active{color:var(--text)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.card.flat{box-shadow:none}.card+.card{margin-top:12px}.grid{display:grid;gap:12px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat .label{font-size:12px;color:var(--muted);font-weight:700}.stat .value{margin-top:8px;font-size:22px;font-weight:850;letter-spacing:-.02em}.stat .sub{font-size:11px;color:var(--muted);margin-top:4px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 10px}.section-title h2{font-size:15px;margin:0}.section-title p{margin:2px 0 0;font-size:11px;color:var(--muted)}
.btn{border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:var(--surface);color:var(--text);font-weight:750}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger);border-color:#fecaca;background:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.small{padding:7px 9px;border-radius:10px;font-size:12px}.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:20px;font-weight:700}.hidden{display:none!important}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar .search{flex:1;min-width:170px}.input,.select,.textarea{width:100%;border:1px solid #d1d5db;background:#fff;border-radius:12px;padding:10px 11px;color:var(--text);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#6b7280;box-shadow:0 0 0 3px rgba(107,114,128,.12)}.textarea{min-height:88px;resize:vertical}
.form-grid{display:grid;gap:12px}.field label{display:block;font-size:11px;font-weight:800;color:#4b5563;margin:0 0 5px}.hint{font-size:11px;color:var(--muted);line-height:1.45}.notice{border:1px solid #fde68a;background:#fffbeb;color:#78350f;border-radius:14px;padding:12px;font-size:12px;line-height:1.5}.notice.info{border-color:#bfdbfe;background:#eff6ff;color:#1e3a8a}
.list{display:grid;gap:8px}.list-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.list-main{min-width:0;flex:1}.list-title{font-size:14px;font-weight:800;line-height:1.3}.list-meta{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}.money{font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}.tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;color:#4b5563;background:#f9fafb}.tag.material{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.tag.upah{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.tag.alat{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.kebab{border:0;background:transparent;color:var(--muted);font-weight:900;padding:5px}.empty{text-align:center;padding:26px 14px;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:4px}
.modal-backdrop{position:fixed;z-index:100;inset:0;background:rgba(17,24,39,.48);display:flex;align-items:flex-end;justify-content:center;padding-top:30px}.modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:18px 16px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -14px 50px rgba(0,0,0,.18)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-title{font-size:18px;font-weight:850}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;position:sticky;bottom:-1px;background:#fff;padding-top:10px}
.component-row{display:grid;grid-template-columns:1fr 105px 38px;gap:8px;align-items:end;padding:9px 0;border-bottom:1px dashed var(--line)}.component-row:last-child{border-bottom:0}.component-summary{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-top:4px}.ahsp-total{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px;font-weight:850}
.project-card{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px}.project-card h3{margin:0;font-size:15px}.project-card p{margin:5px 0 0;font-size:11px;color:var(--muted)}
.project-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.project-head h2{font-size:19px;margin:0}.project-head p{margin:4px 0 0;font-size:11px;color:var(--muted)}
.rab-section{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.rab-section+.rab-section{margin-top:10px}.rab-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:#f9fafb;border-bottom:1px solid var(--line)}.rab-section-head strong{font-size:13px}.rab-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 12px;border-bottom:1px solid #f3f4f6}.rab-row:last-child{border-bottom:0}.rab-row-title{font-size:12px;font-weight:750}.rab-row-meta{font-size:10.5px;color:var(--muted);margin-top:4px}.rab-row .money{font-size:12px}.rab-subtotal{display:flex;justify-content:space-between;padding:10px 12px;background:#fafafa;font-size:11px;font-weight:800;border-top:1px solid var(--line)}
.big-total{background:#111827;color:#fff;border-radius:18px;padding:17px;margin-top:12px}.big-total .label{font-size:11px;color:#d1d5db}.big-total .value{font-size:25px;font-weight:900;margin-top:4px}
.tabs{display:flex;gap:6px;overflow:auto;padding-bottom:2px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap}.tab.active{background:#111827;color:#fff;border-color:#111827}
.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th,.data-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}.data-table th{color:var(--muted);font-size:10px}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}
.toast-root{position:fixed;z-index:200;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none}.toast{background:#111827;color:#fff;border-radius:12px;padding:10px 14px;font-size:12px;box-shadow:var(--shadow);max-width:480px}
.row-actions{display:flex;gap:4px;align-items:center}.divider{height:1px;background:var(--line);margin:12px 0}.danger-zone{border:1px solid #fecaca;background:#fff7f7;border-radius:16px;padding:14px}.version{font-size:11px;color:var(--muted);text-align:center;padding:18px 0}
@media (min-width:760px){body{padding-bottom:24px}.topbar{padding-left:26px;padding-right:26px}.view{padding:22px 24px 36px}.bottom-nav{position:sticky;top:auto;bottom:auto;max-width:920px;margin:0 auto 22px;height:64px;border:1px solid var(--line);border-radius:18px;overflow:hidden}.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:22px;max-height:88vh}.grid.desktop-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:420px){.grid.cols-3{grid-template-columns:1fr}.stat .value{font-size:19px}.component-row{grid-template-columns:1fr 92px 36px}}

/* v1.0.2 identity + control-plane gate */
.top-actions{display:flex;align-items:center;gap:8px}
.sync-pill{border:1px solid var(--border,#d1d5db);background:var(--card,#fff);color:inherit;border-radius:999px;padding:7px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.sync-pill.warn{border-color:#f59e0b;background:#fff7ed;color:#9a3412}
.sync-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.sync-summary>div{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}
.sync-summary span{font-size:12px;color:var(--muted,#6b7280)}
.sync-summary strong{font-size:13px;overflow-wrap:anywhere}
.notice.warning{border-color:#f59e0b;background:#fff7ed;color:#7c2d12}
.tag.warning{background:#fff7ed;color:#9a3412}
@media(max-width:520px){.sync-summary{grid-template-columns:1fr}.sync-pill{padding:6px 9px}}

/* v1.1.0 hierarchical RAB */
.project-card-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.project-card-wrap .project-card{border:0;border-radius:0}.project-card-actions{display:flex;gap:6px;padding:0 14px 12px}.project-mini-meta{margin-top:8px;font-size:10.5px;color:var(--muted)}
.project-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.choice-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:18px;display:flex;align-items:flex-start;gap:13px;text-align:left;box-shadow:var(--shadow)}.choice-card.primary-choice{border-color:#cbd5e1}.choice-icon{width:40px;height:40px;border-radius:13px;background:#f3f4f6;display:grid;place-items:center;font-weight:900;font-size:20px;flex:0 0 auto}.choice-card strong{display:block;font-size:15px}.choice-card small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px}.rab-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.rab-summary>div{padding:14px;border-right:1px solid var(--line)}.rab-summary>div:last-child{border-right:0}.rab-summary span{display:block;font-size:10px;color:var(--muted);font-weight:800}.rab-summary strong{display:block;margin-top:5px;font-size:13px}.rab-summary .final{background:#111827;color:#fff}.rab-summary .final span{color:#d1d5db}
.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.rab-document{background:#fff;border:1px solid #cfd4dc;border-radius:14px;box-shadow:0 8px 30px rgba(17,24,39,.08);overflow:hidden}.rab-doc-head{text-align:center;padding:28px 24px 18px}.rab-doc-head h2{margin:0;font-size:19px;letter-spacing:.03em}.rab-doc-head h3{margin:5px 0 0;font-size:14px}.rab-info{margin:18px auto 0;max-width:720px;text-align:left;border-top:1px solid var(--line);padding-top:10px}.rab-info-row{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:3px 0;font-size:11px}.rab-info-row strong{font-weight:800}.rab-table-wrap{overflow:auto}.rab-doc-table{width:100%;min-width:820px;border-collapse:collapse;font-size:11px}.rab-doc-table th,.rab-doc-table td{border:1px solid #cfd4dc;padding:7px 8px;vertical-align:middle}.rab-doc-table th{background:#f3f4f6;font-size:10.5px;text-align:center}.rab-doc-table th.no{width:48px}.rab-doc-table th.sat{width:68px}.rab-doc-table th.vol{width:95px}.rab-doc-table th.price,.rab-doc-table th.amount{width:145px}.rab-doc-table .section-row td{background:#f4c542;font-weight:900}.section-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.rab-item-name{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:280px}.rab-item-name.level-2>span:first-child{padding-left:18px}.rab-item-name.level-3>span:first-child{padding-left:36px}.parent-row td{font-weight:800;background:#fff}.parent-row.level2 td{font-weight:700}.leaf-row .num,.leaf-row .money-cell,.sum-row td:last-child,.round-row td:last-child{text-align:right;font-variant-numeric:tabular-nums}.money-cell.strong{font-weight:800}.mini-action{border:0;background:#fff9;padding:3px 5px;border-radius:6px;color:#4b5563;font-size:9.5px;font-weight:800;white-space:nowrap}.parent-row .mini-action,.leaf-row .mini-action{background:#f3f4f6}.danger-text{color:var(--danger)}.sum-row td:first-child,.round-row td:first-child{text-align:right;font-weight:900}.sum-row td:last-child{font-weight:850}.round-row td{background:#111827;color:#fff;font-weight:900}.doc-empty{text-align:center;padding:28px!important;color:var(--muted)}.rab-live-total{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;border-radius:12px;background:#f9fafb;border:1px solid var(--line)}.rab-live-total span{font-size:11px;color:var(--muted);font-weight:800}.rab-live-total strong{font-size:15px}.info-edit-row{display:grid;grid-template-columns:145px 1fr 38px;gap:8px;margin-bottom:7px}.import-preview{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:220px}.mini-preview{border-collapse:collapse;font-size:10px;min-width:100%;white-space:nowrap}.mini-preview td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:5px 7px}.import-tree-preview{display:grid;gap:8px;margin:12px 0;max-height:260px;overflow:auto}.import-tree-preview>div{border:1px solid var(--line);border-radius:12px;padding:9px}.import-tree-preview strong,.import-tree-preview span{display:block}.import-tree-preview span{font-size:11px;color:var(--muted);padding:2px 0 0 14px}
@media(max-width:720px){.project-choice-grid{grid-template-columns:1fr}.rab-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.rab-summary>div:nth-child(2){border-right:0}.rab-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.editor-toolbar{align-items:flex-start;flex-direction:column}.rab-doc-head{padding:22px 16px 14px}.rab-info-row{grid-template-columns:105px 1fr}.info-edit-row{grid-template-columns:95px 1fr 38px}.row-actions{flex-wrap:wrap}}
@media print{.topbar,.bottom-nav,.editor-toolbar,.row-actions{display:none!important}.view{max-width:none;padding:0}.rab-document{box-shadow:none;border:0}.rab-doc-table{min-width:0}}

/* v1.1.2 compact direct-table RAB editor */
.view.rab-editor-view{max-width:1180px}
.editor-toolbar{margin-bottom:8px}.editor-toolbar>.toolbar{gap:6px}.editor-toolbar .btn{padding:7px 10px;border-radius:9px;font-size:11px}
.rab-document{border-radius:12px}.rab-doc-head{padding:20px 20px 12px}.rab-doc-head h2{font-size:18px}.rab-doc-head h3{font-size:13px}.rab-info{margin-top:12px;padding-top:7px}.rab-info-row{padding:2px 0}
.rab-doc-table{min-width:760px;font-size:10.5px;table-layout:fixed}.rab-doc-table th,.rab-doc-table td{padding:5px 6px}.rab-doc-table th{font-size:10px}.rab-doc-table th.no{width:44px}.rab-doc-table th.sat{width:72px}.rab-doc-table th.vol{width:88px}.rab-doc-table th.price{width:154px}.rab-doc-table th.amount{width:142px}
.rab-item-name{min-width:0;gap:6px}.rab-item-name.level-2>span:first-child{padding-left:14px}.rab-item-name.level-3>span:first-child{padding-left:28px}.section-line{gap:6px}
.row-tools{margin-left:auto;display:inline-flex;gap:3px;align-items:center;opacity:.45;transition:opacity .15s}.section-row:hover .row-tools,.parent-row:hover .row-tools,.leaf-row:hover .row-tools,.row-tools:focus-within{opacity:1}.row-tool{width:23px;height:23px;padding:0;border:1px solid transparent;border-radius:6px;background:rgba(255,255,255,.72);color:#4b5563;font-size:13px;font-weight:900;line-height:1;display:grid;place-items:center}.row-tool:hover{border-color:#d1d5db;background:#fff}.parent-row .row-tool,.leaf-row .row-tool{background:#f3f4f6}.row-tool.add{font-size:14px}
.edit-cell{padding:2px 3px!important}.rab-cell-input{width:100%;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;padding:3px 5px;color:var(--text);font-size:10.5px;outline:none}.rab-cell-input:hover{border-color:#d1d5db;background:#fff}.rab-cell-input:focus{border-color:#6b7280;background:#fff;box-shadow:0 0 0 2px rgba(107,114,128,.10)}.rab-cell-input::placeholder{color:#9ca3af}.unit-input{text-align:center}.num-input,.money-input{text-align:right;font-variant-numeric:tabular-nums}.price-editor{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:3px;align-items:center}.cell-ahsp{height:26px;border:1px solid #d1d5db;border-radius:6px;background:#f9fafb;color:#4b5563;padding:0 3px;font-size:8px;font-weight:900}.cell-ahsp.linked{border-color:#bbf7d0;background:#ecfdf5;color:#166534}.money-cell{white-space:nowrap}
.compact-modal{width:min(430px,100%);padding:15px 14px 18px}.compact-modal .modal-header{margin-bottom:10px}.compact-modal .modal-title{font-size:15px}.compact-modal .icon-btn{width:32px;height:32px;border-radius:9px;font-size:17px}.compact-modal .input,.compact-modal .select{padding:8px 9px;border-radius:9px}.compact-modal .modal-actions{margin-top:10px;padding-top:7px}.compact-form{gap:9px}.ahsp-pick-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:#f9fafb;border-radius:10px;padding:9px 10px}.ahsp-pick-preview span{font-size:10px;color:var(--muted);font-weight:800}.ahsp-pick-preview strong{font-size:13px}
.node-menu{display:grid;gap:7px}.node-menu-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.node-menu-btn{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 10px;text-align:left;font-size:11px;font-weight:800}.node-menu-btn:hover{background:#f9fafb}.node-menu-btn.danger{color:var(--danger);border-color:#fecaca;background:#fff7f7}
@media(pointer:coarse){.row-tools{opacity:1}.row-tool{width:25px;height:25px}}
@media(max-width:720px){.view.rab-editor-view{padding-left:8px;padding-right:8px}.editor-toolbar{width:100%;flex-direction:row;align-items:center;overflow:auto}.editor-toolbar>.toolbar{flex-wrap:nowrap;margin-left:auto}.editor-toolbar .btn{white-space:nowrap}.rab-doc-head{padding:16px 12px 10px}.rab-doc-table{min-width:720px}.rab-doc-table th,.rab-doc-table td{padding:4px 5px}.rab-cell-input{height:27px}.row-tools{opacity:1}}

/* v1.1.3 compact destructive actions */
.compact-actions{gap:6px;flex-wrap:nowrap}.compact-actions .btn{white-space:nowrap}
.confirm-stack{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}.confirm-stack strong{font-size:13px}.confirm-stack .hint{margin:4px 0 0}.confirm-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:900;background:#f3f4f6}.confirm-icon.danger{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.btn:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:520px){.project-head{align-items:flex-start}.compact-actions{flex-wrap:wrap}.project-card-actions{flex-wrap:wrap}}

/* v1.1.5 proportional RAB table + searchable AHSP picker */
.rab-doc-table{font-size:11.5px;line-height:1.18}.rab-doc-table th,.rab-doc-table td{padding:3px 6px}.rab-doc-table th{font-size:11px}.rab-doc-table th.no{width:42px}.rab-doc-table th.sat{width:64px}.rab-doc-table th.vol{width:82px}.rab-doc-table th.price{width:166px}.rab-doc-table th.amount{width:140px}
.rab-doc-table .section-row td{font-size:11.8px}.parent-row td{font-size:11.6px}.rab-item-name{font-size:11.5px}.rab-cell-input{height:24px;padding:2px 5px;font-size:11.5px;line-height:1.1}.unit-input,.num-input,.money-input{text-align:center}.money-cell,.sum-row td:last-child,.round-row td:last-child{text-align:center;font-variant-numeric:tabular-nums}.price-editor{grid-template-columns:minmax(0,1fr) 38px;gap:3px}.cell-ahsp{height:22px;font-size:8.5px}.row-tool{width:21px;height:21px;font-size:12px}.row-tool.add{font-size:13px}.row-tools{gap:2px}.sum-row td,.round-row td{padding-top:4px;padding-bottom:4px}.rab-doc-head{padding:18px 20px 10px}.rab-doc-head h2{font-size:19px}.rab-doc-head h3{font-size:13.5px}.rab-info-row{font-size:11.5px}
.ahsp-pick-results{display:grid;gap:5px;max-height:245px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:5px;background:#fafafa}.ahsp-result{width:100%;border:1px solid transparent;background:#fff;border-radius:8px;padding:7px 8px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;color:var(--text)}.ahsp-result:hover{border-color:#d1d5db}.ahsp-result.selected{border-color:#9ca3af;background:#f3f4f6;box-shadow:inset 0 0 0 1px #9ca3af}.ahsp-result span{min-width:0;font-size:10.8px;line-height:1.25}.ahsp-result span b{display:inline-block;margin-right:6px;color:#4b5563}.ahsp-result em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap}.ahsp-result-empty{padding:16px 8px;text-align:center;color:var(--muted);font-size:11px}
@media(max-width:720px){.rab-doc-table{font-size:11px}.rab-doc-table th{font-size:10.5px}.rab-doc-table th,.rab-doc-table td{padding:3px 5px}.rab-cell-input{height:23px;font-size:11px}.ahsp-result{grid-template-columns:1fr}.ahsp-result em{white-space:normal}}


/* v1.1.6 table balance + monetary precision */
.rab-doc-table{font-size:11.7px;line-height:1.15}
.rab-doc-table th,.rab-doc-table td{vertical-align:middle;padding:3px 6px}
.rab-doc-table th{font-size:11.2px}
.rab-doc-table td:first-child,.rab-doc-table th.no{text-align:center}
.rab-doc-table .unit-input{text-align:left}
.rab-doc-table .num-input{text-align:center}
.rab-doc-table .money-input{text-align:right}
.rab-doc-table .money-cell,.rab-doc-table .sum-row td:last-child,.rab-doc-table .round-row td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.rab-doc-table .sum-row td:first-child,.rab-doc-table .round-row td:first-child{text-align:right}
.rab-cell-input{height:23px;font-size:11.6px}
.rab-doc-table .section-row td{font-size:11.9px}
.rab-doc-table .parent-row td{font-size:11.7px}
.rab-doc-head{padding:17px 20px 9px}
.rab-doc-head h2{font-size:19px;line-height:1.15}
.rab-doc-head h3{font-size:13.5px;line-height:1.2;margin-top:4px}
.rab-info{margin-top:10px;padding-top:7px;max-width:760px}
.rab-info-row{grid-template-columns:135px minmax(0,1fr);gap:16px;padding:2px 0;font-size:11.5px;align-items:center}
@media(max-width:720px){.rab-doc-table{font-size:11.2px}.rab-cell-input{font-size:11.2px}.rab-info-row{grid-template-columns:105px minmax(0,1fr);gap:10px}}

/* v1.1.7 RAB alignment polish */
.rab-doc-table .unit-input{text-align:center}
.rab-doc-table td:nth-child(3){text-align:center}

/* v1.1.8 portrait/landscape shell + home dashboard */
.landscape-brand,.landscape-nav-note{display:none}
.home-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#111827;color:#fff;border-radius:18px;padding:17px 18px;box-shadow:0 8px 28px rgba(17,24,39,.12)}
.home-hero-copy{min-width:0}.home-kicker{font-size:9.5px;font-weight:900;letter-spacing:.14em;color:#6b7280}.home-hero .home-kicker{color:#9ca3af}.home-hero h2{margin:4px 0 5px;font-size:20px;line-height:1.15;letter-spacing:-.02em}.home-hero p{margin:0;max-width:600px;color:#d1d5db;font-size:11px;line-height:1.45}.home-hero-action{flex:0 0 auto;background:#fff!important;color:#111827!important;border-color:#fff!important}
.home-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.home-stat{width:100%;min-height:88px;padding:12px;box-shadow:none;text-align:left;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center}.home-stat[data-go]{cursor:pointer}.home-stat[data-go]:active{transform:translateY(1px)}.stat-icon{width:34px;height:34px;border-radius:10px;background:#f3f4f6;border:1px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:900;color:#374151}.home-stat .value{margin-top:2px;font-size:20px}.home-stat .sub{margin-top:1px}.home-stat .money-value{font-size:14px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.home-dashboard{display:grid;gap:10px;margin-top:10px}.home-primary,.home-side{display:grid;gap:10px;align-content:start}.home-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px}.home-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.home-panel-head h2,.cloud-home-top h2,.home-reference h2{font-size:14px;margin:0}.home-panel-head p{font-size:10.5px;color:var(--muted);margin:2px 0 0}
.workflow-grid{display:grid;gap:6px}.workflow-step{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 10px;display:grid;grid-template-columns:31px minmax(0,1fr) 14px;gap:8px;align-items:center;text-align:left;color:var(--text)}.workflow-step:hover{background:#f9fafb}.workflow-step>div{min-width:0}.workflow-step strong{display:block;font-size:11.5px}.workflow-step small{display:block;margin-top:2px;font-size:10px;color:var(--muted);line-height:1.3}.workflow-step>b{font-size:18px;color:#9ca3af}.workflow-no{width:29px;height:29px;border-radius:9px;background:#111827;color:#fff;display:grid;place-items:center;font-size:9.5px;font-weight:900}
.home-project-list{display:grid;gap:5px}.home-project-row{width:100%;border:0;border-top:1px solid #f3f4f6;background:transparent;padding:8px 2px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--text)}.home-project-row:first-child{border-top:0}.home-project-row strong{display:block;font-size:11.5px}.home-project-row small{display:block;margin-top:2px;font-size:10px;color:var(--muted)}.home-project-row>span{font-size:18px;color:#9ca3af}.home-empty{padding:13px 4px;color:var(--muted);font-size:10.5px}.home-empty strong{display:block;color:var(--text);font-size:11.5px;margin-bottom:3px}
.cloud-home-card{background:#f9fafb}.cloud-home-card.cloud-warning{border-color:#f59e0b;background:#fff7ed}.cloud-home-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cloud-dot{width:10px;height:10px;border-radius:999px;background:#d1d5db;margin-top:4px;box-shadow:0 0 0 4px rgba(209,213,219,.35)}.cloud-dot.connected{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.12)}.cloud-home-status{display:grid;gap:3px;margin-top:14px}.cloud-home-status strong{font-size:12.5px}.cloud-home-status span{font-size:10.5px;color:var(--muted);line-height:1.4}.cloud-home-action{width:100%;margin-top:11px;padding:8px 10px;font-size:11px}.home-reference p{font-size:10.5px;line-height:1.45;color:var(--muted);margin:7px 0 0}

@media(max-width:520px){
  .home-hero{align-items:flex-start;padding:15px;flex-direction:column}.home-hero h2{font-size:18px}.home-hero-action{width:100%;padding:8px 10px}
  .home-stat{grid-template-columns:30px minmax(0,1fr);gap:8px;padding:10px;min-height:80px}.stat-icon{width:30px;height:30px}.home-stat .value{font-size:18px}.home-stat .money-value{font-size:12px}
}

/* Landscape is a dedicated workspace: side navigation + two-column dashboard. */
@media (orientation:landscape) and (min-width:680px){
  html,body{min-height:100%;height:100%;overflow-x:hidden}
  body{padding-bottom:0}
  .app-shell{min-height:100svh;display:grid;grid-template-columns:168px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .topbar{grid-column:2;grid-row:1;position:sticky;top:0;padding:10px 18px 9px;background:rgba(243,244,246,.96);border-bottom:1px solid var(--line)}
  .topbar .eyebrow{font-size:9px}.topbar h1{font-size:18px;margin-top:1px}
  .view{grid-column:2;grid-row:2;width:100%;max-width:1380px;padding:14px 18px 26px;margin:0 auto}
  .view.rab-editor-view{max-width:1480px}
  .bottom-nav{grid-column:1;grid-row:1 / span 2;position:sticky;left:auto;right:auto;top:0;bottom:auto;width:168px;height:100svh;max-width:none;margin:0;padding:12px 10px;display:flex;flex-direction:column;gap:4px;align-items:stretch;background:#fff;border:0;border-right:1px solid var(--line);border-radius:0;overflow:auto;backdrop-filter:none}
  .landscape-brand{display:flex;align-items:center;gap:9px;padding:2px 5px 12px;margin-bottom:5px;border-bottom:1px solid var(--line)}.brand-mark{width:34px;height:34px;border-radius:10px;background:#111827;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:.04em}.landscape-brand>div:last-child{min-width:0}.landscape-brand strong{display:block;font-size:12px}.landscape-brand small{display:block;margin-top:1px;font-size:9px;color:var(--muted)}
  .nav-btn{min-height:42px;padding:0 9px;border-radius:10px;display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;justify-items:start;gap:6px;text-align:left}.nav-btn span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:13px}.nav-btn small{font-size:10.5px;font-weight:800}.nav-btn.active{background:#111827;color:#fff}.nav-btn.active span{background:rgba(255,255,255,.12)}
  .landscape-nav-note{display:block;margin-top:auto;padding:10px 7px 2px;color:#9ca3af;font-size:8.5px;line-height:1.35}
  .toast-root{left:184px;right:16px;bottom:16px}
  .home-hero{padding:14px 16px;border-radius:15px}.home-hero h2{font-size:19px}.home-hero p{font-size:10.5px}.home-hero-action{padding:8px 12px;font-size:11px}
  .home-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.home-stat{min-height:76px;padding:10px;grid-template-columns:31px minmax(0,1fr);gap:8px}.stat-icon{width:31px;height:31px}.home-stat .value{font-size:18px}.home-stat .money-value{font-size:12.5px}
  .home-dashboard{grid-template-columns:minmax(0,1.6fr) minmax(235px,.72fr);gap:10px;margin-top:8px}.home-primary{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:10px}.home-side{gap:10px}.home-panel{padding:11px;border-radius:13px}.home-panel-head{margin-bottom:7px}.workflow-step{padding:7px 8px;grid-template-columns:28px minmax(0,1fr) 12px}.workflow-no{width:27px;height:27px}.workflow-step small{font-size:9.5px}.home-project-row{padding:7px 2px}
  .modal-backdrop{padding:16px 16px 16px 184px}.modal{max-height:92vh}
  .editor-toolbar{position:sticky;top:58px;z-index:12;background:var(--bg);padding:4px 0 6px;margin-bottom:3px}
}

@media print{
  .landscape-brand,.landscape-nav-note{display:none!important}
  .app-shell{display:block!important}.topbar,.bottom-nav{display:none!important}.view{display:block!important}
}

@media (orientation:portrait) and (min-width:760px){
  body{padding-bottom:94px}
  .view{max-width:780px;padding:20px 24px 36px}
  .bottom-nav{position:fixed;left:50%;right:auto;bottom:14px;top:auto;transform:translateX(-50%);width:min(720px,calc(100% - 32px));max-width:720px;height:62px;margin:0;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 30px rgba(17,24,39,.12);overflow:hidden;background:rgba(255,255,255,.98)}
  .toast-root{bottom:92px}
}


/* v1.1.9 Bank Harga / AHSP folder libraries */
.folder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.folder-card{position:relative;min-width:0;border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 14px;gap:10px;align-items:center;box-shadow:var(--shadow);cursor:pointer}.folder-card:hover{background:#fafafa}.folder-icon{width:38px;height:38px;border-radius:11px;background:#f3f4f6;border:1px solid var(--line);display:grid;place-items:center;font-size:14px;font-weight:900;color:#374151}.folder-main{min-width:0}.folder-main h3{margin:3px 0 3px;font-size:13px;line-height:1.25}.folder-main p{margin:0;color:var(--muted);font-size:10px;line-height:1.35}.folder-actions{display:flex;gap:4px;align-items:center}.folder-open{font-size:19px;color:#9ca3af}.group-card .folder-icon{font-size:17px}.library-breadcrumb{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:10px;padding:9px 10px;background:#fff;border:1px solid var(--line);border-radius:13px}.library-breadcrumb>div{min-width:0}.library-breadcrumb h2{font-size:14px;line-height:1.2;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ahsp-result small{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:600}
@media(max-width:620px){.folder-grid{grid-template-columns:1fr}.folder-card{grid-template-columns:34px minmax(0,1fr) 12px;padding:11px}.folder-icon{width:34px;height:34px}.folder-actions{grid-column:2 / 4;justify-content:flex-start}.library-breadcrumb{grid-template-columns:auto minmax(0,1fr)}.library-breadcrumb>button:last-child{grid-column:1 / -1;width:100%}}
@media (orientation:landscape) and (min-width:680px){.folder-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.folder-card{padding:11px}.group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* v1.1.10 AHSP quick price picker */
.component-row-picker{align-items:start}.component-price-cell{min-width:0}.comp-price-trigger{position:relative;width:100%;min-height:46px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 28px 7px 9px;text-align:left;color:var(--text);display:block}.comp-price-trigger:hover{background:#fafafa;border-color:#c4c9d1}.comp-price-trigger strong{display:block;font-size:11.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comp-price-trigger small{display:block;margin-top:3px;font-size:9.5px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comp-price-empty{display:block;font-size:11.5px;font-weight:800;color:#4b5563}.picker-chevron{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:15px}.price-picker-panel{margin-top:6px;border:1px solid var(--line);border-radius:11px;background:#f9fafb;padding:7px;box-shadow:0 8px 24px rgba(17,24,39,.08)}.price-picker-tools{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(140px,.75fr);gap:6px}.price-picker-tools .input,.price-picker-tools .select{padding:8px 9px;border-radius:9px;font-size:11px}.price-picker-tabs{margin-top:6px}.price-picker-tabs .tab{padding:5px 8px;font-size:10px}.price-picker-meta{font-size:9.5px;color:var(--muted);font-weight:700;margin:6px 2px 4px}.price-picker-results{display:grid;gap:4px;max-height:230px;overflow:auto}.price-pick-option{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 8px;text-align:left;color:var(--text)}.price-pick-option:hover{border-color:#9ca3af;background:#fff}.price-pick-option.selected{border-color:#6b7280;background:#f3f4f6}.price-pick-option span{min-width:0}.price-pick-option strong{display:block;font-size:10.8px;line-height:1.2}.price-pick-option small{display:block;margin-top:2px;font-size:9px;color:var(--muted);line-height:1.25}.price-pick-option em{font-style:normal;font-size:9.5px;color:#4b5563;white-space:nowrap}.price-pick-empty{padding:14px 8px;text-align:center;font-size:10.5px;color:var(--muted)}
@media(max-width:620px){.price-picker-tools{grid-template-columns:1fr}.price-pick-option{grid-template-columns:1fr}.price-pick-option em{white-space:normal}.component-row-picker{grid-template-columns:minmax(0,1fr) 86px 34px}.comp-price-trigger strong,.comp-price-trigger small{white-space:normal}}

/* v1.1.11 AHSP table-first editor */
.wide-modal{width:min(1060px,100%)}
.ahsp-table-form{gap:10px}
.ahsp-meta-grid{display:grid;grid-template-columns:1.2fr 1.2fr .7fr .65fr;gap:8px}
.ahsp-title-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:8px}
.ahsp-table-form .input,.ahsp-table-form .select{padding:8px 9px;border-radius:9px}
.ahsp-component-intro{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:4px 1px 0}
.ahsp-component-intro h2{font-size:14px;margin:0}.ahsp-component-intro p{font-size:10.5px;color:var(--muted);margin:2px 0 0}
.ahsp-component-groups{display:grid;gap:10px}
.ahsp-comp-section{border:1px solid #cfd4dc;border-radius:11px;overflow:hidden;background:#fff}
.ahsp-comp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;background:#f3f4f6;border-bottom:1px solid #cfd4dc}
.ahsp-comp-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.ahsp-comp-kicker{font-size:11px;font-weight:900;letter-spacing:.055em}.ahsp-comp-head small{font-size:9.5px;color:var(--muted)}
.ahsp-table-wrap{overflow:auto}
.ahsp-entry-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed;font-size:10.8px}
.ahsp-entry-table th,.ahsp-entry-table td{border-right:1px solid #d9dde3;border-bottom:1px solid #d9dde3;padding:4px 5px;vertical-align:middle}.ahsp-entry-table th:last-child,.ahsp-entry-table td:last-child{border-right:0}.ahsp-entry-table tbody tr:last-child td{border-bottom:0}
.ahsp-entry-table th{background:#fafafa;text-align:center;font-size:9.8px;color:#4b5563;font-weight:850}.ahsp-entry-table th.no,.ahsp-entry-table td.no{width:38px;text-align:center}.ahsp-entry-table th.sat,.ahsp-entry-table td.sat{width:60px;text-align:center}.ahsp-entry-table th.coef,.ahsp-entry-table td.coef{width:95px;text-align:center}.ahsp-entry-table th.price,.ahsp-entry-table td.price{width:132px;text-align:center}.ahsp-entry-table th.amount,.ahsp-entry-table td.amount{width:132px;text-align:center}.ahsp-entry-table th.act,.ahsp-entry-table td.act{width:38px;text-align:center}
.ahsp-price-trigger{position:relative;width:100%;min-height:33px;border:0;background:transparent;text-align:left;padding:3px 24px 3px 4px;color:var(--text);border-radius:6px}.ahsp-price-trigger:hover{background:#f9fafb}.ahsp-price-trigger strong{display:block;font-size:10.8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ahsp-price-trigger small{display:block;font-size:8.8px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ahsp-price-empty{display:block;font-weight:800;color:#4b5563;font-size:10.5px}
.ahsp-entry-table .rab-cell-input{height:26px;font-size:10.8px;text-align:center}.ahsp-entry-table .row-tool{margin:auto}.ahsp-unit-price,.ahsp-row-sum{font-variant-numeric:tabular-nums}.ahsp-row-sum{font-weight:800}
.ahsp-empty-row td{text-align:center!important;color:var(--muted);font-size:10px;padding:10px!important;background:#fff}
.ahsp-picker-row td{padding:0!important;background:#f9fafb}.ahsp-inline-picker{padding:7px 8px;border-top:1px solid #e5e7eb}.ahsp-inline-picker .price-picker-results{grid-template-columns:repeat(2,minmax(0,1fr));max-height:190px}.ahsp-inline-picker .price-pick-option{min-width:0}
.ahsp-calc-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #cfd4dc;border-radius:11px;overflow:hidden;background:#fff}.ahsp-calc-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.ahsp-calc-summary>div:nth-child(3n){border-right:0}.ahsp-calc-summary>div:nth-last-child(-n+3){border-bottom:0}.ahsp-calc-summary span{font-size:9.5px;color:var(--muted);font-weight:800}.ahsp-calc-summary strong{font-size:11px;font-variant-numeric:tabular-nums}.ahsp-calc-summary .ahsp-summary-subtotal{background:#f9fafb}.ahsp-calc-summary .ahsp-summary-total{background:#111827;color:#fff}.ahsp-calc-summary .ahsp-summary-total span{color:#d1d5db}.ahsp-calc-summary .ahsp-summary-total strong{font-size:12px}
@media(max-width:900px){.ahsp-meta-grid{grid-template-columns:1fr 1fr}.ahsp-title-grid{grid-template-columns:minmax(0,1fr) 130px}.ahsp-inline-picker .price-picker-results{grid-template-columns:1fr}.ahsp-calc-summary{grid-template-columns:1fr 1fr}.ahsp-calc-summary>div,.ahsp-calc-summary>div:nth-child(3n){border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.ahsp-calc-summary>div:nth-child(2n){border-right:0}.ahsp-calc-summary>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:620px){.wide-modal{padding-left:10px;padding-right:10px}.ahsp-meta-grid,.ahsp-title-grid{grid-template-columns:1fr 1fr}.ahsp-title-grid .field:first-child{grid-column:1/-1}.ahsp-component-intro p{max-width:420px}.ahsp-entry-table{min-width:700px}.ahsp-comp-head{position:sticky;left:0}.ahsp-calc-summary{grid-template-columns:1fr}.ahsp-calc-summary>div,.ahsp-calc-summary>div:nth-child(2n),.ahsp-calc-summary>div:nth-child(3n){border-right:0;border-bottom:1px solid #e5e7eb}.ahsp-calc-summary>div:last-child{border-bottom:0}}

/* v1.1.12 — AHSP document-style editor/detail + separated price picker */
.ahsp-doc-editor-form{gap:10px}
.ahsp-doc-editor{border:1px solid #9ca3af;border-radius:10px;overflow:hidden;background:#fff}
.ahsp-doc-title{padding:7px 9px;border-bottom:1px solid #9ca3af;background:#fff;font-size:12px;font-weight:900;line-height:1.25}
.ahsp-doc-wrap{width:100%;overflow:auto;background:#fff}
.ahsp-doc-table{width:100%;min-width:790px;border-collapse:collapse;table-layout:fixed;font-size:10.8px;color:var(--text)}
.ahsp-doc-table th,.ahsp-doc-table td{border-right:1px solid #9ca3af;border-bottom:1px solid #9ca3af;padding:4px 6px;vertical-align:middle;background:#fff}
.ahsp-doc-table th:last-child,.ahsp-doc-table td:last-child{border-right:0}
.ahsp-doc-table tr:last-child td{border-bottom:0}
.ahsp-doc-table th{background:#f3f4f6;text-align:center;font-weight:900;font-size:10px}
.ahsp-doc-table .no{width:42px;text-align:center}.ahsp-doc-table .sat{width:74px;text-align:center}.ahsp-doc-table .coef{width:92px;text-align:center}.ahsp-doc-table .price{width:145px;text-align:center}.ahsp-doc-table .amount{width:145px;text-align:center}.ahsp-doc-table .act{width:44px;text-align:center}
.ahsp-doc-table .center{text-align:center}.ahsp-doc-table .num{text-align:right;font-variant-numeric:tabular-nums}
.ahsp-doc-section-row td{background:#f7f7f8;font-weight:900;letter-spacing:.01em}
.ahsp-doc-section-row .ahsp-doc-code{text-align:center;font-weight:900}
.ahsp-doc-subtotal td{font-weight:850;background:#fafafa}.ahsp-doc-subtotal td:nth-child(2){text-align:left}
.ahsp-doc-grand td{font-weight:850;background:#f7f7f8}.ahsp-doc-total-row td{font-weight:950;background:#eef0f3}
.ahsp-doc-empty td{color:var(--muted);font-style:italic;background:#fff}
.ahsp-doc-entry .rab-cell-input{height:27px;min-height:27px;padding:2px 4px;font-size:10.8px;text-align:center;border:1px solid transparent;background:transparent;border-radius:4px}
.ahsp-doc-entry .rab-cell-input:focus{border-color:#64748b;background:#fff;box-shadow:0 0 0 2px rgba(100,116,139,.13)}
.ahsp-doc-edit-table .ahsp-price-trigger{min-height:30px;padding:2px 22px 2px 3px;border:1px solid transparent;border-radius:5px}
.ahsp-doc-edit-table .ahsp-price-trigger:hover{border-color:#cbd5e1;background:#f8fafc}
.ahsp-doc-edit-table .ahsp-price-trigger strong{font-size:10.7px}.ahsp-doc-edit-table .ahsp-price-trigger small{font-size:8.7px}
.ahsp-doc-add{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:4px 7px;font-size:9.5px;font-weight:850;white-space:nowrap;color:#111827}.ahsp-doc-add:hover{background:#f3f4f6}
.ahsp-profit-edit{padding:2px 5px!important}.percent-input{display:flex;align-items:center;justify-content:center;gap:3px}.percent-input input{width:58px;height:27px;border:1px solid #cbd5e1;border-radius:5px;text-align:center;font:inherit;font-weight:800}.percent-input span{font-weight:850}
.ahsp-detail-head{margin-bottom:8px}.ahsp-detail-head>div{display:flex;gap:5px;flex-wrap:wrap}.ahsp-detail-head h3{margin:7px 0 0;font-size:13px}.ahsp-detail-head p{margin:4px 0 0;color:var(--muted);font-size:10px}
.ahsp-doc-detail-table{min-width:720px}.ahsp-doc-detail-table td,.ahsp-doc-detail-table th{padding-top:5px;padding-bottom:5px}

.ahsp-price-overlay{position:fixed;z-index:180;inset:0;background:rgba(15,23,42,.58);display:flex;align-items:center;justify-content:center;padding:20px}
.ahsp-price-dialog{width:min(660px,100%);max-height:min(78vh,720px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border:2px solid #334155;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.32)}
.ahsp-price-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 14px 11px;border-bottom:1px solid #cbd5e1;background:#f8fafc}
.ahsp-price-dialog-head h3{margin:2px 0 2px;font-size:15px}.ahsp-price-dialog-head p{margin:0;font-size:9.8px;color:var(--muted)}
.ahsp-price-dialog .price-picker-tools{padding:10px 12px 6px;background:#fff}.ahsp-price-dialog .price-picker-meta{padding:0 12px 7px;color:var(--muted);font-size:9.5px;font-weight:700}
.ahsp-price-dialog .price-picker-results{margin:0 12px 12px;overflow:auto;max-height:52vh;border:1px solid #d1d5db;border-radius:10px;background:#f8fafc;padding:6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.ahsp-price-dialog .price-pick-option{background:#fff;border:1px solid #e5e7eb}.ahsp-price-dialog .price-pick-option:hover{border-color:#64748b}.ahsp-price-dialog .price-pick-option.selected{border-color:#334155;box-shadow:inset 0 0 0 1px #334155}

@media(max-width:900px){
  .ahsp-price-dialog .price-picker-results{grid-template-columns:1fr}
}
@media(max-width:620px){
  .ahsp-doc-table{min-width:720px;font-size:10.4px}.ahsp-doc-table th{font-size:9.5px}
  .ahsp-price-overlay{padding:10px}.ahsp-price-dialog{max-height:84vh;border-radius:13px}
  .ahsp-price-dialog-head{padding:10px}.ahsp-price-dialog .price-picker-tools{grid-template-columns:1fr;padding:8px 9px 5px}.ahsp-price-dialog .price-picker-results{margin:0 9px 9px}
}


/* v1.1.13 — AHSP proportional landscape polish */
.wide-modal{width:min(1340px,calc(100% - 8px))}
.ahsp-doc-editor-form{gap:8px}
.ahsp-doc-editor{border-color:#d6dae1;border-radius:14px;box-shadow:0 4px 18px rgba(17,24,39,.045)}
.ahsp-doc-title{padding:8px 11px;border-bottom:1px solid #d6dae1;background:#fbfcfd;font-size:12px}
.ahsp-doc-wrap{background:#fff}
.ahsp-doc-table{min-width:0;border-collapse:collapse;font-size:10.9px}
.ahsp-doc-table th,.ahsp-doc-table td{border-color:#d7dbe1;padding:5px 7px}
.ahsp-doc-table th{background:#f8f9fb;color:#374151;font-size:9.7px;letter-spacing:.01em}
.ahsp-doc-table .no{width:36px}.ahsp-doc-table .sat{width:72px}.ahsp-doc-table .coef{width:92px}.ahsp-doc-table .price{width:142px}.ahsp-doc-table .amount{width:142px}.ahsp-doc-table .act{width:40px}
.ahsp-doc-section-row td{background:#f3f5f8;font-weight:900;padding-top:6px;padding-bottom:6px}
.ahsp-doc-section-row .ahsp-doc-code{background:#eef1f5;color:#111827}
.ahsp-doc-subtotal td{background:#fbfbfc;font-weight:850}
.ahsp-doc-grand td{background:#f8f9fb;font-weight:850}
.ahsp-doc-total-row td{background:#eef1f5;font-weight:950;border-top:1.5px solid #aeb5bf}
.ahsp-doc-empty-spacer td{height:28px;background:#fff;color:transparent}
.ahsp-doc-entry:hover td{background:#fcfcfd}
.ahsp-doc-entry .rab-cell-input{height:28px;min-height:28px}
.ahsp-doc-edit-table .ahsp-price-trigger{min-height:32px}
.ahsp-doc-add{border-color:#d4d8df;background:#fff;padding:4px 8px;border-radius:8px;box-shadow:0 1px 2px rgba(17,24,39,.04)}
.ahsp-profit-edit{background:#fafbfc!important}.percent-input input{background:#fff;border-color:#cdd2da}
.ahsp-detail-head{padding:2px 2px 4px}.ahsp-detail-head h3{font-size:14px}

@media (orientation:landscape) and (min-width:900px){
  .modal-backdrop{padding:12px 16px 12px 184px;align-items:center}
  .modal.wide-modal{width:min(1380px,calc(100vw - 216px));max-height:calc(100vh - 24px);padding:14px 14px 15px;border-radius:18px}
  .wide-modal .modal-header{margin-bottom:9px}
  .wide-modal .modal-title{font-size:17px}
  .wide-modal .ahsp-meta-grid{grid-template-columns:minmax(210px,1.15fr) minmax(210px,1.15fr) minmax(110px,.55fr) minmax(110px,.55fr);gap:7px}
  .wide-modal .ahsp-table-form .field>label{margin-bottom:3px;font-size:9.5px}
  .wide-modal .ahsp-table-form .input,.wide-modal .ahsp-table-form .select{padding:7px 9px;min-height:35px}
  .wide-modal .ahsp-component-intro{margin-top:1px}
  .wide-modal .ahsp-component-intro h2{font-size:13.5px}
  .wide-modal .ahsp-component-intro p{font-size:9.7px}
  .wide-modal .ahsp-doc-wrap{overflow-x:hidden}
  .wide-modal .ahsp-doc-table{width:100%;min-width:0;table-layout:fixed}
  .wide-modal .ahsp-doc-table .no{width:34px}.wide-modal .ahsp-doc-table .sat{width:68px}.wide-modal .ahsp-doc-table .coef{width:88px}.wide-modal .ahsp-doc-table .price{width:132px}.wide-modal .ahsp-doc-table .amount{width:136px}.wide-modal .ahsp-doc-table .act{width:38px}
  .wide-modal .modal-actions{margin-top:10px;padding-top:8px}
}

@media (orientation:landscape) and (min-width:1200px){
  .modal.wide-modal{width:min(1400px,calc(100vw - 208px))}
  .wide-modal .ahsp-doc-table th,.wide-modal .ahsp-doc-table td{padding-top:5px;padding-bottom:5px}
}

@media(max-width:899px){
  .wide-modal{width:100%}
  .ahsp-doc-table{min-width:720px}
  .ahsp-doc-wrap{overflow:auto}
}


/* v1.1.14 — AHSP section button placement + stronger table boundary */
.ahsp-doc-editor{border:2px solid #94a3b8;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.ahsp-doc-editor .ahsp-doc-title{border-bottom:1.5px solid #aeb7c3;background:#fbfcfd}
.ahsp-doc-editor .ahsp-doc-wrap{box-shadow:inset 0 0 0 1px rgba(148,163,184,.18)}
.ahsp-doc-section-row td{border-top:1.5px solid #aeb7c3;border-bottom:1px solid #cbd2db}
.ahsp-doc-section-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.ahsp-doc-section-main>span{min-width:0;font-weight:900}
.ahsp-doc-section-main .ahsp-doc-add{flex:0 0 auto;margin-left:auto;min-width:72px;text-align:center;border-color:#b9c2ce;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.06)}
.ahsp-doc-section-main .ahsp-doc-add:hover{border-color:#7c8a9c;background:#f8fafc}
.ahsp-doc-detail-table{border:2px solid #94a3b8}
.ahsp-doc-detail-table th:first-child,.ahsp-doc-detail-table td:first-child{border-left:0}
.ahsp-doc-detail-table tr:first-child th{border-top:0}
@media (orientation:landscape) and (min-width:900px){
  .wide-modal .ahsp-doc-editor{border-color:#8793a3}
  .wide-modal .ahsp-doc-section-main .ahsp-doc-add{min-width:78px;padding-left:10px;padding-right:10px}
}
@media(max-width:620px){
  .ahsp-doc-section-main{gap:8px}
  .ahsp-doc-section-main .ahsp-doc-add{min-width:66px}
}

/* v1.1.15 — multi-RAB project list */
.rab-list-title{margin-top:20px}
.rab-list{display:grid;gap:8px}
.rab-list-row{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(150px,210px) auto 18px;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 12px;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.rab-list-row:hover{border-color:#b8c1ce;box-shadow:0 5px 16px rgba(15,23,42,.06);transform:translateY(-1px)}
.rab-list-row:focus-visible{outline:2px solid #111827;outline-offset:2px}
.rab-list-index{width:34px;height:34px;border-radius:10px;background:#f3f4f6;border:1px solid #e5e7eb;display:grid;place-items:center;font-size:10px;font-weight:900;color:#4b5563;font-variant-numeric:tabular-nums}
.rab-list-copy{min-width:0}.rab-list-copy strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rab-list-copy small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}
.rab-list-value{text-align:right;min-width:0}.rab-list-value span{display:block;font-size:9px;color:var(--muted);font-weight:800}.rab-list-value strong{display:block;margin-top:3px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.rab-list-actions{display:flex;gap:6px;align-items:center}.rab-list-arrow{font-size:20px;color:#9ca3af;font-weight:500}
@media(max-width:720px){.rab-list-row{grid-template-columns:36px minmax(0,1fr) 18px;gap:9px;padding:10px}.rab-list-index{width:32px;height:32px}.rab-list-value{grid-column:2;text-align:left}.rab-list-actions{grid-column:2;flex-wrap:wrap}.rab-list-arrow{grid-column:3;grid-row:1;align-self:center}.rab-list-copy strong{white-space:normal}.rab-list-value strong{font-size:11.5px}}

/* v1.1.16 — AHSP picker in RAB + row menu fix */
.ahsp-rab-picker-modal{width:min(720px,100%)}
.ahsp-rab-picker-form{gap:8px}
.ahsp-rab-picker-tools{grid-template-columns:minmax(0,1.35fr) minmax(150px,.75fr) minmax(150px,.75fr)}
.ahsp-rab-picker-results{grid-template-columns:repeat(2,minmax(0,1fr));max-height:360px;border:1px solid #d1d5db;border-radius:10px;background:#f8fafc;padding:6px}
.ahsp-rab-pick-option{min-width:0}
.ahsp-rab-pick-option strong{font-size:11px}
.ahsp-rab-pick-option small{line-height:1.3}
.node-menu-head{display:grid;gap:4px;padding:2px 1px 10px}.node-menu-head strong{font-size:13px;line-height:1.35}
.node-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.node-menu-btn{justify-content:center;min-height:38px}.node-menu-btn:disabled{opacity:.38;cursor:not-allowed}
@media(max-width:720px){.ahsp-rab-picker-modal{width:100%}.ahsp-rab-picker-tools{grid-template-columns:1fr}.ahsp-rab-picker-results{grid-template-columns:1fr;max-height:46vh}.node-menu-grid{grid-template-columns:1fr 1fr}}

/* v1.1.18 per-AHSP price override + search stability; v1.1.19 internal AHSP export */
.ahsp-price-input-wrap{display:flex;flex-direction:column;align-items:stretch;gap:2px}
.ahsp-price-input-wrap .ahsp-component-price{text-align:right;font-variant-numeric:tabular-nums;width:100%}
.ahsp-price-input-wrap small,.ahsp-override-note{display:block;margin-top:2px;font-size:8.5px;line-height:1.2;color:var(--muted);font-weight:650;white-space:normal}
.ahsp-override-note{color:#8a5b00}
.ahsp-doc-entry .ahsp-unit-price{padding-top:3px;padding-bottom:3px}
@media(max-width:760px){.ahsp-price-input-wrap small{font-size:8px}.toolbar #add-ahsp{order:3}}

/* v1.1.20 — faster RAB input */
.node-menu-wide{grid-column:1/-1}
.repeat-work-modal{width:min(920px,100%)}
.repeat-work-form{gap:12px}
.repeat-parent-list{min-height:150px;resize:vertical;line-height:1.45}
.repeat-pattern-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}
.repeat-pattern-head>div{display:grid;gap:2px}.repeat-pattern-head strong{font-size:12px}.repeat-pattern-head small,.repeat-work-form .field small{font-size:10px;color:var(--muted)}
.repeat-child-list{display:grid;gap:7px}.repeat-child-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:7px;align-items:center;padding:7px;border:1px solid var(--line);border-radius:11px;background:#f9fafb}.repeat-child-row .input{background:#fff}.repeat-child-row .btn{height:36px;padding:0}
.rab-cell-input[data-field="volume"]:focus{outline:2px solid rgba(17,24,39,.18);outline-offset:-2px;background:#fffdf5}
@media(min-width:900px){.repeat-work-modal{width:min(900px,calc(100vw - 230px))}.repeat-work-form{grid-template-columns:minmax(240px,.7fr) minmax(360px,1.3fr)}.repeat-work-form>.field:first-child{grid-column:1}.repeat-work-form>.field:nth-child(2){grid-column:2;grid-row:1 / span 3}.repeat-pattern-head,.repeat-child-list,.repeat-work-form>.notice,.repeat-work-form>.modal-actions{grid-column:1}.repeat-work-form>.modal-actions{position:static}}
@media(max-width:720px){.repeat-work-modal{width:100%}.repeat-child-row{grid-template-columns:minmax(0,1fr) 38px}.repeat-parent-list{min-height:130px}}
@media(min-width:900px){.modal.wide-modal.repeat-work-modal{width:min(900px,calc(100vw - 216px))}}
@media(max-width:720px){.modal.wide-modal.repeat-work-modal{width:100%}}
.repeat-ahsp-step-head{display:grid;gap:4px;margin-bottom:10px}.repeat-ahsp-step-head strong{font-size:15px}.repeat-ahsp-step-head small{font-size:10.5px;color:var(--muted)}
.repeat-wizard-actions{display:grid;grid-template-columns:auto auto 1fr}.repeat-wizard-actions .btn.primary{justify-self:end}
@media(max-width:620px){.repeat-wizard-actions{grid-template-columns:1fr 1fr}.repeat-wizard-actions .btn.primary{grid-column:1/-1;width:100%}}

/* v1.1.22 — Input Cepat RAB + proportional bulk entry */
.quick-input-modal{width:min(1120px,100%)}
.quick-input-form{gap:12px}
.quick-input-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px;min-height:440px}
.quick-input-panel{border:1px solid #d8dee8;border-radius:14px;background:#fbfcfe;padding:14px;min-width:0;display:flex;flex-direction:column;gap:10px}
.quick-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #e5e9ef}
.quick-panel-head h3{margin:3px 0 0;font-size:14px;color:#111827}.quick-panel-head .home-kicker{font-size:8.8px}
.quick-badge{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 9px;border-radius:999px;background:#eef2f7;color:#334155;font-size:9.5px;font-weight:850;white-space:nowrap}
.quick-outline-field{display:flex;flex-direction:column;min-height:0;flex:1}.quick-outline{resize:none;min-height:245px;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.55;font-size:11px}
.quick-format-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;padding:9px 10px;border-radius:10px;background:#f1f5f9;color:#475569;font-size:9.5px}
.quick-format-help strong{grid-column:1/-1;color:#111827}.quick-format-help code{font-size:9px;background:#fff;border:1px solid #dbe2ea;border-radius:5px;padding:1px 4px}
.quick-preview-panel{background:#fff}.quick-preview{min-height:0;max-height:390px;overflow:auto;border:1px solid #e0e5ec;border-radius:10px;background:#fbfcfd;padding:6px}
.quick-preview-empty{padding:26px 12px;text-align:center;color:#94a3b8;font-size:10px}
.quick-preview-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:6px;align-items:start;padding:7px 8px;border-bottom:1px solid #edf0f4;font-size:10.5px}.quick-preview-row:last-child{border-bottom:0}
.quick-preview-row.level-2{padding-left:25px}.quick-preview-row.level-3{padding-left:48px}.quick-preview-row strong{display:block;color:#111827}.quick-preview-row small{display:block;margin-top:2px;color:#64748b;font-size:9px}.quick-level{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#eef2f7;color:#475569;font-weight:900}
.quick-errors{padding:8px 10px;border:1px solid #fecaca;background:#fff1f2;color:#991b1b;border-radius:9px;font-size:9.5px;display:grid;gap:3px}.quick-errors.hidden{display:none}.quick-note{margin-top:auto}
.quick-input-actions{padding-top:10px;border-top:1px solid #e5e9ef}
.repeat-work-modal{width:min(1080px,100%)}
.repeat-work-form{display:flex;flex-direction:column;gap:12px}.repeat-top{display:flex;align-items:end;justify-content:space-between;gap:12px}.repeat-top .field{flex:1;max-width:520px}.repeat-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.repeat-work-grid .quick-input-panel{min-height:360px}.repeat-parent-list{resize:none;min-height:260px;flex:1}.repeat-pattern-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #e5e9ef}.repeat-pattern-head h3{margin:3px 0 0;font-size:14px}.repeat-child-list{display:grid;gap:7px;overflow:auto;max-height:245px}.repeat-child-row{display:grid;grid-template-columns:28px minmax(0,1fr) 38px;gap:7px;align-items:center}.repeat-index{width:26px;height:30px;border-radius:7px;background:#eef2f7;display:grid;place-items:center;font-size:9.5px;font-weight:900;color:#475569}.repeat-child-row .input{min-height:34px}.repeat-main-actions{padding-top:10px;border-top:1px solid #e5e9ef}.repeat-wizard-actions{gap:7px}
@media (orientation:landscape) and (min-width:900px){
  .modal.wide-modal.quick-input-modal,.modal.wide-modal.repeat-work-modal{width:min(1160px,calc(100vw - 216px));max-height:calc(100vh - 28px)}
  .quick-input-layout{max-height:calc(100vh - 170px)}
  .quick-outline{min-height:260px}.quick-preview{max-height:calc(100vh - 285px)}
}
@media(max-width:760px){
  .quick-input-layout,.repeat-work-grid{grid-template-columns:1fr}.quick-input-layout{min-height:0}.quick-outline{min-height:200px}.quick-preview{max-height:260px}.quick-format-help{grid-template-columns:1fr}.repeat-top{align-items:stretch;flex-direction:column}.repeat-top .field{max-width:none;width:100%}.repeat-work-grid .quick-input-panel{min-height:auto}.repeat-parent-list{min-height:180px}.quick-input-actions,.repeat-main-actions{display:grid;grid-template-columns:1fr 1fr}.quick-input-actions .btn.primary,.repeat-main-actions .btn.primary{grid-column:1/-1}
}

/* v1.1.23 — label sorting, gallery-style multi-select, group export/profit */
.sort-select{width:auto;min-width:128px;flex:0 0 auto}
.selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:10px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:13px}
.selection-toolbar>div:first-child{display:grid;gap:2px}.selection-toolbar strong{font-size:12px;color:#111827}.selection-toolbar span{font-size:9.5px;color:#64748b}
.selectable-card{position:relative;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.selection-check{display:none;position:absolute;top:9px;right:9px;width:24px;height:24px;border:2px solid #cbd5e1;background:#fff;border-radius:999px;place-items:center;font-size:13px;font-weight:950;color:#fff;z-index:3;box-shadow:0 1px 4px rgba(15,23,42,.08)}
.selectable-card.selection-mode .selection-check{display:grid}.selectable-card.selected{border-color:#334155!important;background:#f8fafc!important;box-shadow:0 0 0 2px rgba(51,65,85,.12)}
.selectable-card.selected .selection-check{display:grid;border-color:#111827;background:#111827}
.group-card.selection-mode{grid-template-columns:38px minmax(0,1fr);padding-right:44px}.group-card.selection-mode .folder-main{padding-right:4px}
.list-item.selectable-card.selection-mode{padding-right:48px}.list-item.selectable-card.selected .list-title{font-weight:900}
@media(max-width:760px){.sort-select{min-width:118px;max-width:128px}.selection-toolbar{align-items:stretch;flex-direction:column}.selection-toolbar .toolbar{width:100%;justify-content:flex-end}.selection-check{width:23px;height:23px;top:8px;right:8px}}

/* v1.1.25 — safe AHSP apply: never propagate by work-name text */
.same-ahsp-current{display:grid;gap:2px;padding:9px 10px;border:1px solid #d7dee8;border-radius:10px;background:#f8fafc}
.same-ahsp-current span,.same-ahsp-current small{font-size:9px;color:var(--muted);font-weight:750}.same-ahsp-current strong{font-size:11.5px;line-height:1.35}
.same-ahsp-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.same-ahsp-tools>span{margin-left:auto;font-size:9.5px;color:var(--muted);font-weight:750}
.same-ahsp-list{display:grid;gap:5px;max-height:300px;overflow:auto;padding:1px}
.same-ahsp-choice{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid #e0e5ec;border-radius:9px;background:#fff;cursor:pointer}
.same-ahsp-choice:hover{border-color:#b7c0cd;background:#fbfcfe}.same-ahsp-choice input{margin:0;width:15px;height:15px}.same-ahsp-choice span{min-width:0;display:grid;gap:2px}.same-ahsp-choice strong{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.same-ahsp-choice small{font-size:8.8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.same-ahsp-choice em{font-style:normal;font-size:9.5px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#334155}
@media(max-width:620px){.same-ahsp-choice{grid-template-columns:18px minmax(0,1fr)}.same-ahsp-choice em{grid-column:2}.same-ahsp-tools>span{width:100%;margin-left:0}}

/* v1.1.28 — single price-source status + Excel-like reference picking */
.price-editor{position:relative;grid-template-columns:minmax(0,1fr) 44px}
.price-source-status{min-width:44px;padding:0 4px;letter-spacing:-.1px}
.price-source-status.status-ahsp{border-color:#bbf7d0;background:#ecfdf5;color:#166534}
.price-source-status.status-fx{border-color:#c7d2fe;background:#eef2ff;color:#4338ca;text-transform:uppercase}
.price-source-status.status-manual{border-color:#d1d5db;background:#f9fafb;color:#4b5563;font-size:7.8px}
.formula-cell{position:relative}
.formula-cell.formula-error input{border-color:#dc2626!important;background:#fff7f7!important}
.view.rab-formula-pick-mode .formula-cell:not(.formula-source){cursor:cell}
.view.rab-formula-pick-mode .formula-cell:not(.formula-source) input{cursor:cell;border-color:#c7d2fe;background:#f5f7ff}
.view.rab-formula-pick-mode .formula-cell:not(.formula-source).money-cell{background:#eef2ff!important;box-shadow:inset 0 0 0 1px #c7d2fe}
.view.rab-formula-pick-mode .formula-cell::before{content:attr(data-formula-cell);position:absolute;right:4px;top:-14px;z-index:7;display:none;padding:1px 4px;border-radius:4px;background:#111827;color:#fff;font-size:8px;font-weight:900;line-height:1.4;pointer-events:none}
.view.rab-formula-pick-mode .formula-cell:not(.formula-source)::before{display:block}
.view.rab-formula-pick-mode .formula-cell.formula-source{outline:2px solid rgba(79,70,229,.32);outline-offset:-2px;border-radius:6px}
@media(max-width:720px){.price-editor{grid-template-columns:minmax(0,1fr) 42px}.price-source-status{min-width:42px;font-size:8px}.price-source-status.status-manual{font-size:7.4px}}


/* v1.1.29 — selection actions stay reachable while scrolling long AHSP/group lists */
.selection-toolbar{
  position:sticky;
  top:58px;
  z-index:14;
  box-shadow:0 6px 18px rgba(15,23,42,.08);
  backdrop-filter:blur(10px);
}
@media(max-width:760px){
  .selection-toolbar{top:64px}
}

/* v1.1.30 — Excel AHSP export actions */
.library-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
@media(max-width:760px){.library-breadcrumb{grid-template-columns:auto minmax(0,1fr)}.library-head-actions{grid-column:1/-1;justify-content:flex-end;flex-wrap:wrap}}
.folder-actions{flex-wrap:wrap;justify-content:flex-end}
.modal-actions{flex-wrap:wrap}


/* v1.1.32 pinned library folders */
.folder-card.pinned{box-shadow:0 6px 24px rgba(17,24,39,.11);border-color:#c7cbd2}.folder-card.pinned .folder-icon{background:#fff7ed;border-color:#fed7aa}.pin-folder-btn.active{background:#111827;color:#fff;border-color:#111827}.folder-card.pinned .home-kicker{color:#7c2d12}

/* v1.1.33 — proportional library folders + fixed document rounding */
.static-field{min-height:42px;display:flex;align-items:center;border:1px solid #d1d5db;background:#f8fafc;border-radius:12px;padding:10px 11px;color:#374151;font-size:11px;font-weight:800}
.library-folder-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 13px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.library-folder-copy{min-width:0}.library-folder-copy h2{margin:2px 0 3px;font-size:14px;line-height:1.2}.library-folder-copy p{margin:0;max-width:620px;color:var(--muted);font-size:10.5px;line-height:1.4}.library-folder-head>.btn{white-space:nowrap}
.library-folder-grid{margin-top:9px}
.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.folder-card{grid-template-columns:34px minmax(0,1fr) 16px;grid-template-rows:auto auto;column-gap:9px;row-gap:5px;align-items:center;padding:10px 11px;border-radius:13px;box-shadow:0 2px 10px rgba(15,23,42,.045)}
.folder-card:hover{border-color:#cfd5dd;box-shadow:0 5px 16px rgba(15,23,42,.065)}
.folder-icon{grid-column:1;grid-row:1;width:34px;height:34px;border-radius:10px;font-size:13px}
.folder-main{grid-column:2;grid-row:1;align-self:center}.folder-main .home-kicker{font-size:8px;letter-spacing:.12em}.folder-main h3{margin:2px 0 2px;font-size:12.5px;line-height:1.25}.folder-main p{font-size:9.5px;line-height:1.3}
.folder-open{grid-column:3;grid-row:1;align-self:center;justify-self:end;font-size:17px}
.folder-actions{grid-column:2 / 4;grid-row:2;justify-content:flex-start;gap:5px;margin-top:1px;flex-wrap:wrap}
.folder-actions .btn.small{min-height:27px;padding:4px 7px;border-radius:8px;font-size:10px;line-height:1.15}
.folder-card.pinned{box-shadow:0 5px 18px rgba(17,24,39,.085)}
.group-card.selection-mode{grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto;padding-right:44px}.group-card.selection-mode .folder-icon{grid-column:1;grid-row:1}.group-card.selection-mode .folder-main{grid-column:2;grid-row:1;padding-right:4px}
.library-breadcrumb{padding:8px 9px;border-radius:12px;gap:8px;margin-bottom:9px}.library-breadcrumb h2{font-size:13.5px}.library-breadcrumb .home-kicker{font-size:8px}.library-breadcrumb .btn.small,.library-head-actions .btn.small{padding:6px 8px;border-radius:9px;font-size:10.5px;white-space:nowrap}
@media(min-width:760px){.library-folder-grid,.group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){
  .library-folder-head{grid-template-columns:minmax(0,1fr) auto;padding:10px 10px;gap:8px}.library-folder-copy h2{font-size:13px}.library-folder-copy p{font-size:9.5px}.library-folder-head>.btn{padding:8px 9px;font-size:10.5px;border-radius:9px}
  .folder-grid,.library-folder-grid,.group-grid{grid-template-columns:1fr;gap:7px}.folder-card{grid-template-columns:32px minmax(0,1fr) 14px;padding:9px 10px;column-gap:8px;row-gap:4px}.folder-icon{width:32px;height:32px}.folder-main h3{font-size:12px}.folder-main p{font-size:9.3px}.folder-actions{grid-column:2 / 4;gap:4px}.folder-actions .btn.small{min-height:26px;padding:4px 6px;font-size:9.7px}
  .library-breadcrumb{grid-template-columns:auto minmax(0,1fr);padding:8px;gap:7px}.library-breadcrumb>button:last-child{grid-column:2;width:auto;justify-self:start}.library-head-actions{grid-column:2;justify-content:flex-start;gap:5px}.library-head-actions .btn.small{font-size:10px}
  .group-card.selection-mode{grid-template-columns:32px minmax(0,1fr);padding-right:42px}
  #price-search,#ahsp-search{flex:1 0 100%;min-width:0}#price-sort,#ahsp-sort{flex:1 1 150px;max-width:none;min-width:0}
}
@media(max-width:360px){.library-folder-head{grid-template-columns:1fr}.library-folder-head>.btn{justify-self:start}.folder-actions .btn.small{padding-left:5px;padding-right:5px}}

/* v1.1.36 — Volume Pekerjaan foundation + dynamic RAB volume source */
.project-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-card.volume-choice{border-color:#d4d8df}.choice-card.volume-choice .choice-icon{background:#f8fafc}.choice-card.pdf-choice{border-color:#dbe4f0}.choice-card.pdf-choice .choice-icon{background:#eef4fb;color:#334155;font-size:10px;letter-spacing:.04em}
.volume-toolbar{margin-bottom:10px}.volume-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 17px;border:1px solid var(--line);border-radius:16px;background:#fff}.volume-hero h2{margin:3px 0 5px;font-size:18px}.volume-hero p{margin:0;max-width:650px;color:var(--muted);font-size:10.5px;line-height:1.45}.volume-stats{display:grid;grid-template-columns:repeat(3,minmax(74px,1fr));gap:6px;flex:0 0 auto}.volume-stats>div{min-width:78px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#f9fafb;text-align:center}.volume-stats span{display:block;font-size:8.5px;color:var(--muted);font-weight:800}.volume-stats strong{display:block;margin-top:3px;font-size:15px}.volume-foundation-note{margin-top:9px}.volume-group-list{display:grid;gap:10px;margin-top:10px}.volume-group-card{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 2px 10px rgba(15,23,42,.04)}.volume-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line);background:#fafafa}.volume-group-head h2{margin:2px 0 1px;font-size:13.5px}.volume-group-head p{margin:0;color:var(--muted);font-size:9.5px}.volume-element-list{display:grid;gap:8px;padding:9px}.volume-element-card{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.volume-element-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#fff}.volume-element-head strong{font-size:12px}.volume-element-head small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px}.volume-element-notes{margin:0;padding:0 10px 8px;color:var(--muted);font-size:9.5px;line-height:1.4}.volume-output-list{border-top:1px solid #eef0f3}.volume-output-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(90px,.55fr) minmax(90px,.55fr) auto;gap:9px;align-items:center;padding:8px 10px;border-top:1px solid #f1f3f5}.volume-output-row:first-child{border-top:0}.volume-output-name{min-width:0}.volume-output-name strong{display:block;font-size:10.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.volume-output-name small{display:block;margin-top:2px;color:var(--muted);font-size:8.8px}.volume-output-value{text-align:right}.volume-output-value span{display:block;color:var(--muted);font-size:8px;font-weight:800}.volume-output-value strong{display:block;margin-top:2px;font-size:10.8px;font-variant-numeric:tabular-nums}.volume-output-actions{display:flex;gap:4px}.volume-empty-inline{padding:11px 10px;color:var(--muted);font-size:9.8px}.volume-picker-intro{margin-bottom:9px}.volume-picker-intro>strong{font-size:13px}.volume-picker-intro p{margin:3px 0 0}.volume-picker-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:8px}.volume-picker-group-title{padding:7px 9px;background:#f3f4f6;font-size:9px;font-weight:900;letter-spacing:.08em}.volume-picker-element{border-top:1px solid var(--line)}.volume-picker-element:first-of-type{border-top:0}.volume-picker-element-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;background:#fafafa}.volume-picker-element-head strong{font-size:10.5px}.volume-picker-element-head small{font-size:8.5px;color:var(--muted)}.volume-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border-top:1px solid #f1f3f5}.volume-picker-row strong{display:block;font-size:10.5px}.volume-picker-row small{display:block;margin-top:2px;color:var(--muted);font-size:8.8px}.volume-picker-actions{display:flex;gap:4px}.volume-editor{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:3px;align-items:center}.cell-volume-source{height:22px;border:1px solid #d1d5db;border-radius:6px;background:#f9fafb;color:#4b5563;padding:0 3px;font-size:7.5px;font-weight:900}.cell-volume-source.linked{border-color:#bae6fd;background:#f0f9ff;color:#075985}.volume-editor .rab-cell-input[readonly]{background:#f8fafc;color:#111827;cursor:default}.rab-doc-table th.vol{width:112px}
@media(max-width:720px){.project-choice-grid{grid-template-columns:1fr}.volume-hero{flex-direction:column;padding:13px}.volume-stats{width:100%;grid-template-columns:repeat(3,1fr)}.volume-stats>div{min-width:0}.volume-group-head,.volume-element-head{align-items:flex-start;flex-direction:column}.volume-group-head .toolbar,.volume-element-head .toolbar{width:100%;flex-wrap:wrap}.volume-output-row{grid-template-columns:minmax(0,1fr) minmax(76px,.55fr) minmax(76px,.55fr)}.volume-output-actions{grid-column:1/-1;justify-content:flex-start}.volume-picker-row{grid-template-columns:1fr}.volume-picker-actions{justify-content:flex-start}.rab-doc-table th.vol{width:108px}.volume-editor{grid-template-columns:minmax(0,1fr) 36px}.cell-volume-source{font-size:7.2px}}

/* v1.1.37 — direct element quantity + optional outputs */
.volume-direct-row{background:#fbfdff}.volume-direct-row .volume-output-name strong{color:#0f3d5e}.check-row small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.4}
.check-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid #e1e5ea;border-radius:10px;background:#fafbfc;cursor:pointer}.check-row input{width:15px;height:15px;margin:2px 0 0}.check-row strong{display:block;font-size:10.5px}.check-row:has(input:checked){border-color:#c7d2df;background:#f8fafc}

/* v1.1.38 — Volume Pekerjaan Tahap B templates */
.volume-template-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fafafa}.volume-template-head strong{font-size:12px}.volume-template-head small{display:block;margin-top:3px;color:var(--muted);font-size:9.5px;line-height:1.35}.volume-template-unit{min-width:74px;text-align:right}.volume-template-unit span{display:block;color:var(--muted);font-size:8px;font-weight:800}.volume-template-unit strong{display:block;margin-top:2px;font-size:13px}.volume-calc-rows{display:grid;gap:8px;margin-top:9px}.volume-calc-row{padding:9px;border:1px solid #e3e7ed;border-radius:12px;background:#fff}.volume-calc-row-top{display:flex;align-items:end;gap:7px}.volume-calc-row-top .grow{flex:1;min-width:160px}.volume-calc-row .field{margin:0}.volume-calc-row .field label{font-size:8.5px}.volume-calc-row .input,.volume-calc-row .select{min-height:32px;padding:6px 8px;font-size:10.5px}.volume-calc-row .sign-field{width:126px;flex:0 0 126px}.calc-row-delete{align-self:flex-end;height:32px}.volume-calc-dims{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:7px;align-items:end;margin-top:7px}.volume-calc-result{min-height:32px;padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;text-align:right}.volume-calc-result span{display:block;color:var(--muted);font-size:7.8px;font-weight:800}.volume-calc-result strong{display:block;margin-top:1px;font-size:11px;font-variant-numeric:tabular-nums}.volume-calc-toolbar{margin-top:8px;align-items:end;justify-content:space-between}.volume-calc-toolbar .compact-field{width:220px;margin:0}.volume-calc-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.volume-calc-summary>div{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fafb}.volume-calc-summary span{display:block;color:var(--muted);font-size:8px;font-weight:800}.volume-calc-summary strong{display:block;margin-top:3px;font-size:13px;font-variant-numeric:tabular-nums}.volume-direct-row .volume-output-name small{white-space:normal}
@media(max-width:900px){.volume-calc-dims{grid-template-columns:repeat(3,minmax(90px,1fr))}}
@media(max-width:720px){.volume-template-head{align-items:flex-start}.volume-calc-row-top{display:grid;grid-template-columns:1fr 118px}.volume-calc-row-top .grow{min-width:0}.volume-calc-row .calc-row-delete{grid-column:1/-1;width:max-content}.volume-calc-dims{grid-template-columns:repeat(2,minmax(0,1fr))}.volume-calc-result{grid-column:1/-1}.volume-calc-toolbar{align-items:stretch;flex-direction:column}.volume-calc-toolbar .compact-field{width:100%}.volume-calc-summary{grid-template-columns:1fr}}

/* v1.1.41 — Structure quantity templates */
.structure-allowance-grid{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,1fr);gap:8px;align-items:end;margin-top:8px}.structure-allowance-grid .field{margin:0}.structure-output-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:8px}.structure-output-summary>div{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fafb}.structure-output-summary span{display:block;color:var(--muted);font-size:8px;font-weight:800}.structure-output-summary strong{display:block;margin-top:3px;font-size:12px;font-variant-numeric:tabular-nums}.structure-dimension-grid{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:7px;align-items:end;margin-top:7px}.structure-formwork-grid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:7px;align-items:end;margin-top:7px;padding-top:7px;border-top:1px dashed #e5e7eb}.structure-row-results{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.structure-row-results>div{padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;text-align:right}.structure-row-results span{display:block;color:var(--muted);font-size:7.8px;font-weight:800}.structure-row-results strong{display:block;margin-top:1px;font-size:11px;font-variant-numeric:tabular-nums}.volume-auto-output{background:#fbfdff}.volume-auto-output .volume-output-name strong{color:#0f3d5e}
@media(max-width:900px){.structure-output-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-formwork-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.structure-allowance-grid{grid-template-columns:1fr}.structure-output-summary{grid-template-columns:1fr 1fr}.structure-formwork-grid{grid-template-columns:1fr 1fr}.structure-row-results{grid-template-columns:1fr 1fr}}
.muted-field{opacity:.52}

/* v1.1.43 — searchable VOL picker + compact quantity sheet + validated waste policy */
.volume-picker-searchbar{position:sticky;top:-1px;z-index:4;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;margin:8px 0;padding:7px;border:1px solid #dbe3ec;border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 3px 12px rgba(15,23,42,.055);backdrop-filter:blur(8px)}
.volume-picker-searchbar>span{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#eef6ff;color:#1d4ed8;font-weight:900;font-size:15px}.volume-picker-searchbar .input{min-height:31px;height:31px;padding:5px 8px;font-size:10.8px;font-weight:700}.volume-picker-searchbar small{white-space:nowrap;color:#64748b;font-size:8.5px;font-weight:850}.volume-picker-path{display:block;margin-top:2px;color:#475569;font-size:8.2px;font-weight:750;white-space:normal}.volume-picker-empty{padding:17px 10px;text-align:center;color:#64748b;font-size:10px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.volume-picker-copy{min-width:0}.volume-picker-row[hidden],.volume-picker-element[hidden],.volume-picker-group[hidden]{display:none!important}

.volume-work-form{gap:7px}.volume-work-form>.grid{gap:7px}.volume-work-form>.field{margin:0}.volume-work-form .input,.volume-work-form .select{min-height:30px;padding:5px 7px;font-size:10.5px;font-weight:700}.volume-work-form .textarea{min-height:52px;padding:6px 8px;font-size:10.2px;line-height:1.35}.volume-work-form .field>label{display:inline-flex;align-items:center;min-height:18px;margin:0 0 3px;padding:2px 6px;border-radius:5px;background:#f1f5f9;color:#334155;font-size:8px;font-weight:900;letter-spacing:.025em}.volume-work-form .hint{font-size:8.7px;line-height:1.35;margin-top:3px}.calc-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 0;padding:5px 7px;border-left:3px solid #94a3b8;border-radius:5px;background:#f8fafc}.calc-section-heading span{font-size:8px;font-weight:950;letter-spacing:.08em}.calc-section-heading small{font-size:8px;color:#64748b}.calc-section-heading.tone-slate{border-left-color:#64748b}.calc-section-heading.tone-violet{border-left-color:#7c3aed;background:#faf8ff}.calc-section-heading.tone-violet span{color:#6d28d9}

.volume-template-head{padding:7px 9px;border-radius:9px;background:linear-gradient(90deg,#f8fafc,#fff)}.volume-template-head strong{font-size:11.5px}.volume-template-head small{font-size:8.7px}.volume-template-unit{min-width:62px}.volume-template-unit span{font-size:7.5px}.volume-template-unit strong{font-size:12px}.volume-calc-rows{gap:6px;margin-top:6px}.volume-calc-row{padding:7px;border-radius:9px;border-color:#dbe3ec;box-shadow:0 1px 4px rgba(15,23,42,.025)}.volume-calc-row-top{gap:5px}.volume-calc-row-top .grow{min-width:130px}.volume-calc-row .field label{font-size:7.7px;margin-bottom:3px}.volume-calc-row .input,.volume-calc-row .select{min-height:29px;height:29px;padding:4px 6px;font-size:10.3px;font-weight:750}.volume-calc-row .sign-field{width:108px;flex-basis:108px}.calc-row-delete{height:29px;min-height:29px;padding:4px 7px}.volume-calc-row-top .field label{background:#f3e8ff;color:#6b21a8}.volume-calc-row>.field>label{background:#f3e8ff;color:#6b21a8}.volume-calc-dims{grid-template-columns:repeat(5,minmax(86px,1fr));gap:5px;margin-top:5px}.volume-calc-dims .field label,.structure-dimension-grid .field label{background:#eaf4ff;color:#1d4ed8}.volume-calc-result{min-height:29px;padding:4px 6px;border-color:#bbf7d0;background:#f0fdf4;border-radius:7px}.volume-calc-result span{font-size:7.2px;color:#15803d}.volume-calc-result strong{font-size:11.2px;color:#166534}.volume-calc-toolbar{margin-top:6px}.volume-calc-summary{gap:5px;margin-top:6px}.volume-calc-summary>div{padding:7px 9px;border-radius:8px}.volume-calc-summary .summary-theoretical{border-color:#bbf7d0;background:#f0fdf4}.volume-calc-summary .summary-theoretical span{color:#15803d}.volume-calc-summary .summary-theoretical strong{color:#166534;font-size:14px}.volume-calc-summary .summary-procurement{display:none}.compact-notice{padding:7px 9px!important;font-size:8.8px!important;line-height:1.35!important}

.structure-dimension-grid{gap:5px;margin-top:5px;grid-template-columns:repeat(4,minmax(86px,1fr))}.structure-formwork-grid{gap:5px;margin-top:5px;padding-top:5px}.structure-formwork-grid .field label{background:#fff4dd;color:#a16207}.structure-row-results{gap:5px;margin-top:5px}.structure-row-results>div{padding:5px 7px;border-color:#bbf7d0;background:#f0fdf4}.structure-row-results span{font-size:7.2px;color:#15803d}.structure-row-results strong{font-size:10.8px;color:#166534}.structure-allowance-grid{display:flex;align-items:center;gap:6px;margin-top:6px}.structure-output-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:6px}.structure-output-summary>div{padding:7px 9px;border-color:#bbf7d0;background:#f0fdf4}.structure-output-summary span{color:#15803d}.structure-output-summary strong{font-size:12.5px;color:#166534}


.volume-output-row.no-procurement{grid-template-columns:minmax(0,1.65fr) minmax(100px,.6fr) auto}.volume-output-row.no-procurement .volume-output-value strong{color:#166534}.volume-output-row.no-procurement .volume-output-value span{color:#15803d}

@media(max-width:900px){.volume-calc-dims{grid-template-columns:repeat(3,minmax(82px,1fr))}.structure-dimension-grid{grid-template-columns:repeat(3,minmax(82px,1fr))}}
@media(max-width:720px){.volume-picker-searchbar{grid-template-columns:22px minmax(0,1fr);padding:6px}.volume-picker-searchbar small{grid-column:2}.volume-work-form{gap:6px}.calc-section-heading{align-items:flex-start;flex-direction:column;gap:1px}.volume-calc-row-top{grid-template-columns:minmax(0,1fr) 104px}.volume-calc-dims,.structure-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.volume-calc-result{grid-column:1/-1}.structure-formwork-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-output-summary{grid-template-columns:1fr 1fr}.volume-output-row.no-procurement{grid-template-columns:minmax(0,1fr) minmax(82px,.55fr)}.volume-output-row.no-procurement .volume-output-actions{grid-column:1/-1}}

/* v1.1.44 — search, hierarchy colors, object separators, materials */
/* PWA-only RAB hierarchy. Excel styling remains owned by excel.js. */
.rab-doc-table .section-row td{background:#f4d76d;color:#3f3310;border-top:2px solid #d7b83d;border-bottom:2px solid #d7b83d}
.rab-doc-table .parent-row.level1 td{background:#eef5ff;border-top:1.5px solid #b9cff5;border-bottom-color:#d7e3f7}
.rab-doc-table .parent-row.level2 td{background:#eefaf4;border-top:1.5px solid #b9dfca;border-bottom-color:#d5eadf}
.rab-doc-table .parent-row.level3 td{background:#fff7ea;border-top:1.5px solid #efd19c;border-bottom-color:#f2dfbd}
.rab-doc-table .parent-row.level1 td:nth-child(2){border-left:4px solid #5b8fd9}
.rab-doc-table .parent-row.level2 td:nth-child(2){border-left:4px solid #4f9d73}
.rab-doc-table .parent-row.level3 td:nth-child(2){border-left:4px solid #cf8a2c}
.rab-doc-table .leaf-row.level1 td:nth-child(-n+2){background:#f6f9ff}.rab-doc-table .leaf-row.level1 td:nth-child(2){border-left:3px solid #9db9e5}
.rab-doc-table .leaf-row.level2 td:nth-child(-n+2){background:#f5fbf7}.rab-doc-table .leaf-row.level2 td:nth-child(2){border-left:3px solid #9dceb2}
.rab-doc-table .leaf-row.level3 td:nth-child(-n+2){background:#fffaf2}.rab-doc-table .leaf-row.level3 td:nth-child(2){border-left:3px solid #e6bd7c}
.rab-doc-table .leaf-row td:nth-child(2){font-weight:750}
.rab-doc-table .parent-row.level1 td:nth-child(2),.rab-doc-table .leaf-row.level1 td:nth-child(2){font-weight:900;color:#274f86}
.rab-doc-table .parent-row.level2 td:nth-child(2),.rab-doc-table .leaf-row.level2 td:nth-child(2){font-weight:825;color:#2f7250}
.rab-doc-table .parent-row.level3 td:nth-child(2),.rab-doc-table .leaf-row.level3 td:nth-child(2){font-weight:775;color:#8a5a18}

/* Stronger parent/child separation without making the UI heavy. */
.object-section{border-color:#cfd8e4;box-shadow:0 4px 16px rgba(15,23,42,.055)}
.object-section-head{position:relative;background:linear-gradient(90deg,#f4f7fb 0,#fff 72%);border-bottom:2px solid #d9e1ea!important;padding-left:15px!important}
.object-section-head:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#607d9f}
.object-child-card{border-color:#dce3eb!important;background:#fff;box-shadow:0 1px 5px rgba(15,23,42,.035)}
.volume-element-list{background:#f7f9fc;border-top:1px solid #e4eaf1}
.volume-element-card+.volume-element-card{margin-top:1px}
.object-child-head{background:#fbfcfe!important;border-bottom:1px solid #e2e8f0;padding-left:11px!important}
.object-level-label{display:inline-flex;align-items:center;margin:0 0 3px;padding:2px 5px;border-radius:4px;background:#eaf2fb;color:#345d89;font-size:7.5px;font-weight:950;letter-spacing:.08em}
.object-hero{border-color:#d6dee8;box-shadow:0 4px 16px rgba(15,23,42,.04)}
.library-folder-head,.library-breadcrumb{border-color:#d6dde6;box-shadow:0 3px 12px rgba(15,23,42,.045)}
.library-folder-head{border-top:3px solid #8da3bb}.library-breadcrumb{border-left:3px solid #8da3bb}
.folder-card{border-color:#dbe2ea}.folder-card .folder-main{padding-left:2px}.folder-card .folder-main h3{font-weight:850}
#view>.project-head{padding:2px 0 10px;border-bottom:2px solid #e3e8ee;margin-bottom:10px}

/* Volume list/template search */
.volume-list-searchbar,.volume-template-searchbar{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;margin:8px 0;padding:7px 8px;border:1px solid #d7e0e9;border-radius:10px;background:#f8fafc}
.volume-list-searchbar>span,.volume-template-searchbar>span{display:grid;place-items:center;color:#56708d;font-size:14px;font-weight:900}
.volume-list-searchbar .input,.volume-template-searchbar .input{min-height:31px;height:31px;padding:5px 8px;background:#fff;font-weight:700}
.volume-list-searchbar small,.volume-template-searchbar small{white-space:nowrap;color:#64748b;font-size:8.5px;font-weight:850}
.volume-template-searchbar{margin:0 0 5px;background:#faf8ff;border-color:#e2d9f3}
.volume-template-searchbar>span{color:#6d4ca3}

/* Material needs */
.material-link-btn.linked{border-color:#a7d7bc;background:#effaf3;color:#276342}
.material-source-head{display:grid;gap:3px;padding:9px 10px;margin-bottom:8px;border:1px solid #d8e2ec;border-left:4px solid #5f83a8;border-radius:10px;background:#f9fbfd}.material-source-head strong{font-size:12px}.material-source-head small{font-size:9px;color:var(--muted)}
.material-preview-box{border:1px solid #d9e4dc;border-radius:10px;background:#fbfffc;overflow:hidden}.material-preview-title,.material-preview-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 9px}.material-preview-title{background:#eef8f1;border-bottom:1px solid #d9e7de}.material-preview-title span{font-size:8px;font-weight:900;color:#3a7550}.material-preview-title strong{font-size:9.5px}.material-preview-row{border-top:1px solid #edf1ee}.material-preview-row:first-of-type{border-top:0}.material-preview-row span{font-size:9.5px}.material-preview-row small{color:var(--muted);font-size:8px}.material-preview-row strong{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.material-summary-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:10px 11px;border:1px solid #d8e2ec;border-radius:11px;background:#f9fbfd}.material-summary-head h3{margin:2px 0 3px;font-size:14px}.material-summary-head p{margin:0;color:var(--muted);font-size:9px}.material-summary-stat{min-width:98px;text-align:center;padding:7px;border:1px solid #cfe5d7;border-radius:9px;background:#f1faf4}.material-summary-stat span,.material-summary-stat small{display:block;font-size:8px;color:#52705d}.material-summary-stat strong{display:block;margin:2px 0;font-size:15px;color:#2d6b46}
.material-total-list{display:grid;gap:5px;margin:7px 0 10px}.material-total-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:7px 9px;border:1px solid #e0e6eb;border-radius:8px;background:#fff}.material-total-row strong{font-size:10px}.material-total-row small{display:block;margin-top:1px;color:var(--muted);font-size:8px}.material-total-row>span{font-size:10.5px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.material-source-card{margin-top:7px;border:1px solid #dbe3ea;border-radius:10px;overflow:hidden;background:#fff}.material-source-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 9px;background:#f8fafc;border-bottom:1px solid #e5e9ee}.material-source-card-head strong{display:block;font-size:10.5px}.material-source-card-head small{display:block;margin-top:2px;color:var(--muted);font-size:8.5px}.material-source-lines>div{display:flex;justify-content:space-between;gap:10px;padding:6px 9px;border-top:1px solid #f0f2f4}.material-source-lines>div:first-child{border-top:0}.material-source-lines span{font-size:9px}.material-source-lines strong{font-size:9.5px;white-space:nowrap;font-variant-numeric:tabular-nums}

@media(max-width:720px){
  .volume-list-searchbar,.volume-template-searchbar{grid-template-columns:22px minmax(0,1fr);padding:6px}.volume-list-searchbar small,.volume-template-searchbar small{grid-column:2;white-space:normal}
  .material-summary-head,.material-source-card-head{align-items:flex-start;flex-direction:column}.material-summary-stat{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:left}.material-summary-stat strong{text-align:center}.material-summary-stat small{text-align:right}
  .rab-doc-table .parent-row.level1 td:nth-child(2),.rab-doc-table .parent-row.level2 td:nth-child(2),.rab-doc-table .parent-row.level3 td:nth-child(2){border-left-width:3px}
}

/* v1.1.45 Part 1 — Volume group template family context */
.volume-group-family-badge{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid #c7d7ea;border-radius:999px;background:#eef5fc;color:#315f8d;font-size:8px;font-weight:900;line-height:1.2;vertical-align:middle}.volume-group-family-badge.legacy{border-color:#e7d9b1;background:#fff9e8;color:#8a6818}.volume-template-family-context{display:flex;align-items:center;gap:7px;margin:0 0 6px;padding:5px 7px;border-left:3px solid #7c5bb3;border-radius:5px;background:#f7f3fc}.volume-template-family-context span{font-size:7.5px;font-weight:950;letter-spacing:.08em;color:#7555a3}.volume-template-family-context strong{font-size:9.5px;color:#33224f}.volume-template-picker-field>.hint{margin-top:4px}

/* v1.1.46 — Output template + material unit conversion */
.calc-mode-block[hidden]{display:none!important}
.calc-sheet-actions{display:flex;justify-content:flex-start;margin-top:6px}
.quantity-summary-strip{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin-top:7px}.quantity-summary-strip>div{padding:8px 10px;border:1px solid #dbe8df;border-radius:9px;background:#f6fbf7}.quantity-summary-strip span{display:block;font-size:8px;font-weight:850;color:#47705a}.quantity-summary-strip strong{display:block;margin-top:2px;font-size:13px;font-variant-numeric:tabular-nums}
.material-total-actions{display:flex;align-items:center;gap:7px}.material-total-actions>span{font-size:10.5px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.material-conversion-source{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border:1px solid #e1e6eb;border-radius:10px;background:#fafbfc}.material-conversion-source strong{font-size:11px}.material-conversion-source span{font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.material-conversion-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.material-conversion-preview>div{padding:8px 9px;border:1px solid #dbe8df;border-radius:9px;background:#f6fbf7}.material-conversion-preview span{display:block;font-size:8px;font-weight:800;color:#52705d}.material-conversion-preview strong{display:block;margin-top:2px;font-size:11px;font-variant-numeric:tabular-nums}
@media(max-width:720px){.material-total-row{align-items:flex-start;flex-direction:column}.material-total-actions{width:100%;justify-content:space-between}.material-conversion-source{align-items:flex-start;flex-direction:column}.material-conversion-preview{grid-template-columns:1fr 1fr}}

/* v1.1.45 — template-group filtering, output template modes, material unit conversion */

/* v1.1.47 — compact material display + denser Volume calculation dialogs */
.modal.wide-modal.volume-calc-modal{width:min(1080px,calc(100vw - 228px));max-height:calc(100vh - 28px);padding:13px 14px 14px}
.volume-calc-modal .modal-header{margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #e3e8ee}
.volume-calc-modal .modal-title{font-size:16px;line-height:1.2}
.volume-calc-modal .volume-work-form{gap:6px}
.volume-calc-modal .calc-section-heading{margin-top:1px;padding:5px 7px}
.volume-calc-modal .volume-output-identity-grid{grid-template-columns:minmax(280px,1fr) 132px;gap:6px}
.volume-calc-modal .volume-element-identity-grid{grid-template-columns:minmax(300px,1.35fr) minmax(180px,.65fr);gap:6px}
.volume-calc-modal .volume-unit-field .input{text-align:center;font-size:11.5px;font-weight:900;letter-spacing:.02em}
.volume-calc-modal .volume-template-searchbar{grid-template-columns:22px minmax(0,1fr) auto;margin-bottom:4px;padding:5px 6px}
.volume-calc-modal .volume-template-searchbar .input{height:29px;min-height:29px}
.volume-calc-modal .volume-template-family-context{margin-bottom:4px;padding-top:4px;padding-bottom:4px}
.volume-calc-modal .volume-calc-row{padding:6px 7px}
.volume-calc-modal .volume-calc-row-top{gap:5px}
.volume-calc-modal .volume-calc-row-top .grow{min-width:0}
.volume-calc-modal .volume-calc-row .sign-field{width:112px;flex:0 0 112px}
.volume-calc-modal .volume-calc-dims{gap:5px;margin-top:5px;align-items:end}
.volume-calc-modal .volume-calc-dims.dim-count-1{grid-template-columns:minmax(180px,1fr) 110px 128px}
.volume-calc-modal .volume-calc-dims.dim-count-2{grid-template-columns:repeat(2,minmax(150px,1fr)) 108px 128px}
.volume-calc-modal .volume-calc-dims.dim-count-3{grid-template-columns:repeat(3,minmax(118px,1fr)) 100px 122px}
.volume-calc-modal .volume-calc-dims.dim-count-4{grid-template-columns:repeat(4,minmax(102px,1fr)) 96px 118px}
.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(5,minmax(88px,1fr)) 92px 112px}
.volume-calc-modal .volume-calc-dims .qty-field .input{text-align:center;font-weight:850}
.volume-calc-modal .volume-calc-result{min-width:108px}
.volume-calc-modal .volume-calc-summary,.volume-calc-modal .quantity-summary-strip{max-width:520px}
.volume-calc-modal .modal-actions{margin-top:9px;padding-top:8px;border-top:1px solid #eef1f4}

@media (orientation:landscape) and (min-width:1200px){
  .modal.wide-modal.volume-calc-modal{width:min(1080px,calc(100vw - 216px))}
}
@media (orientation:landscape) and (min-width:900px) and (max-width:1199px){
  .modal.wide-modal.volume-calc-modal{width:min(980px,calc(100vw - 200px))}
  .volume-calc-modal .volume-calc-dims.dim-count-4{grid-template-columns:repeat(4,minmax(92px,1fr)) 90px 112px}
  .volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(3,minmax(100px,1fr));}
  .volume-calc-modal .volume-calc-dims.dim-count-5 .qty-field,.volume-calc-modal .volume-calc-dims.dim-count-5 .volume-calc-result{grid-column:auto}
}
@media (min-width:760px) and (max-width:899px){
  .modal.wide-modal.volume-calc-modal{width:min(680px,calc(100vw - 190px))}
  .volume-calc-modal .volume-calc-dims.dim-count-1,.volume-calc-modal .volume-calc-dims.dim-count-2,.volume-calc-modal .volume-calc-dims.dim-count-3,.volume-calc-modal .volume-calc-dims.dim-count-4,.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .volume-calc-modal .volume-calc-dims .volume-calc-result{grid-column:1/-1;min-width:0}
}
@media (orientation:portrait), (max-width:759px){
  .modal.wide-modal.volume-calc-modal{width:100%;max-height:92vh;padding:12px 11px calc(16px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
  .volume-calc-modal .modal-title{font-size:15px}
  .volume-calc-modal .volume-output-identity-grid,.volume-calc-modal .volume-element-identity-grid{grid-template-columns:minmax(0,1fr) 112px}
  .volume-calc-modal .volume-element-identity-grid .field:nth-child(2){min-width:0}
  .volume-calc-modal .volume-calc-row-top{display:grid;grid-template-columns:minmax(0,1fr) 104px}
  .volume-calc-modal .volume-calc-row-top .calc-row-delete{grid-column:1/-1;width:max-content}
  .volume-calc-modal .volume-calc-dims.dim-count-1,.volume-calc-modal .volume-calc-dims.dim-count-2,.volume-calc-modal .volume-calc-dims.dim-count-3,.volume-calc-modal .volume-calc-dims.dim-count-4,.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .volume-calc-modal .volume-calc-dims .volume-calc-result{grid-column:1/-1;min-width:0}
  .volume-calc-modal .volume-calc-summary,.volume-calc-modal .quantity-summary-strip{max-width:none}
}
@media (max-width:430px){
  .volume-calc-modal .volume-output-identity-grid,.volume-calc-modal .volume-element-identity-grid{grid-template-columns:minmax(0,1fr)}
  .volume-calc-modal .volume-unit-field{max-width:118px}
  .volume-calc-modal .volume-calc-dims.dim-count-1,.volume-calc-modal .volume-calc-dims.dim-count-2,.volume-calc-modal .volume-calc-dims.dim-count-3,.volume-calc-modal .volume-calc-dims.dim-count-4,.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .volume-calc-modal .volume-template-searchbar{grid-template-columns:20px minmax(0,1fr)}
  .volume-calc-modal .volume-template-searchbar small{grid-column:2;white-space:normal}
}

/* v1.1.46 Part 2 — material conversion presets */
.material-conversion-modal{max-width:920px}
.material-conversion-form{gap:8px}
.material-density-preset-grid{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(130px,.65fr) minmax(150px,.7fr);gap:7px;align-items:end}
.material-density-reference{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:6px;padding:7px;border:1px solid #d9e8f7;border-radius:9px;background:#f7fbff}
.material-density-reference>div{min-width:0}
.material-density-reference span{display:block;font-size:7.5px;font-weight:850;letter-spacing:.055em;text-transform:uppercase;color:#5f7690}
.material-density-reference strong{display:block;margin-top:2px;font-size:9.5px;line-height:1.3;color:#172a3d}
.material-truck-grid{display:grid;grid-template-columns:minmax(210px,1fr) minmax(150px,.65fr) minmax(210px,1fr) minmax(220px,1.1fr);gap:7px;align-items:end}
.compact-check{min-height:38px;padding:5px 7px;margin:0}
.compact-check span strong{font-size:8.5px}.compact-check span small{font-size:7.5px}
.material-conversion-form .field label{font-size:8px;font-weight:850}
.material-conversion-form .input,.material-conversion-form .select{min-height:34px;padding-top:6px;padding-bottom:6px}
@media(max-width:900px){.material-density-preset-grid{grid-template-columns:1fr 1fr}.density-preset-field{grid-column:1/-1}.material-truck-grid{grid-template-columns:1fr 1fr}.compact-check{grid-column:1/-1}.material-density-reference{grid-template-columns:1fr 1fr}.material-density-reference>div:last-child{grid-column:1/-1}}
@media(max-width:560px){.material-conversion-modal{max-width:none}.material-density-preset-grid,.material-truck-grid,.material-density-reference{grid-template-columns:1fr}.density-preset-field,.compact-check,.material-density-reference>div:last-child{grid-column:auto}.material-conversion-preview{grid-template-columns:1fr 1fr}}

/* v1.1.47 Part 1 — simplified material conversion + preferred display unit */
.material-conversion-modal{max-width:760px}
.material-conversion-simple{gap:7px}
.material-conversion-simple .material-conversion-source{padding:8px 10px;border-radius:9px;background:#f8fafc}
.material-conversion-source>div{min-width:0}.material-conversion-kicker{display:block;margin-bottom:2px;font-size:7.5px;font-weight:900;letter-spacing:.08em;color:#64748b}
.material-conversion-source>div strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.material-conversion-block{padding:9px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}
.material-conversion-block-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}.material-conversion-block-title strong{font-size:10px;color:#172033}.material-conversion-block-title small{font-size:8px;color:#778398;text-align:right}
.material-display-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:7px;align-items:end}.material-display-preview{min-height:34px;padding:6px 9px;border:1px solid #cfe8d6;border-radius:8px;background:#f4fbf6;text-align:right}.material-display-preview span,.material-display-preview small{display:block;font-size:7.5px;color:#5d7464}.material-display-preview strong{display:block;font-size:11px;font-variant-numeric:tabular-nums;color:#12391d}
.material-quick-conversions,.material-conversion-preview.compact{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:7px}.material-conversion-chip{display:inline-flex;align-items:baseline;gap:5px;padding:5px 7px;border:1px solid #dbe6df;border-radius:8px;background:#f7fbf8;white-space:nowrap}.material-conversion-chip small{font-size:7.5px;color:#607067}.material-conversion-chip strong{font-size:9.5px;font-variant-numeric:tabular-nums}.material-conversion-muted{display:block;padding:4px 1px;font-size:8px;color:#778398}
.material-density-compact{display:grid;grid-template-columns:minmax(0,1.55fr) 120px 130px;gap:6px;align-items:end}.material-density-reference.compact{display:block;margin:5px 0 7px;padding:5px 7px;border-radius:7px}.material-density-reference.compact span{font-size:7.5px;line-height:1.35;color:#5f7690}.material-density-reference.compact strong{display:inline;font-size:7.5px;color:#1d3550}
.material-truck-compact{display:grid;grid-template-columns:minmax(0,1fr) 110px auto minmax(0,1fr);gap:6px;align-items:end;margin-top:6px}.material-truck-compact .compact-check{min-height:34px;align-self:end}.truck-profile-name.is-hidden{display:none}
.material-conversion-advanced{margin-top:6px;border-top:1px dashed #e2e8f0;padding-top:6px}.material-conversion-advanced summary{cursor:pointer;font-size:8.5px;font-weight:850;color:#65558f}.material-custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.material-conversion-simple .field label{font-size:8px;font-weight:850}.material-conversion-simple .input,.material-conversion-simple .select{min-height:32px;padding-top:5px;padding-bottom:5px}.material-conversion-actions{margin-top:0;padding-top:7px}
@media(max-width:720px){.material-conversion-modal{max-width:none}.material-display-grid{grid-template-columns:1fr}.material-display-preview{text-align:left}.material-density-compact{grid-template-columns:1fr 1fr}.density-preset-field{grid-column:1/-1}.material-truck-compact{grid-template-columns:1fr 110px}.material-truck-compact .compact-check,.material-truck-compact .truck-profile-name{grid-column:1/-1}.material-conversion-block-title{align-items:flex-start;flex-direction:column;gap:2px}.material-conversion-block-title small{text-align:left}}
@media(max-width:480px){.material-density-compact,.material-truck-compact,.material-custom-grid{grid-template-columns:1fr}.density-preset-field,.material-truck-compact .compact-check,.material-truck-compact .truck-profile-name{grid-column:auto}.material-conversion-chip{white-space:normal}.material-conversion-source{align-items:flex-start;flex-direction:column;gap:4px}}

/* v1.1.47 working — Volume calculation UI compact pass 2 */
.modal.wide-modal.volume-calc-modal{
  width:min(940px,calc(100vw - 224px));
  max-height:calc(100vh - 24px);
  padding:11px 12px 12px;
}
.volume-calc-modal .modal-header{margin-bottom:6px;padding-bottom:6px}
.volume-calc-modal .modal-title{font-size:15.5px;font-weight:900}
.volume-calc-modal .volume-work-form{gap:5px}
.volume-calc-modal .calc-section-heading{
  min-height:22px;margin:0;padding:4px 7px;border-radius:6px;
  flex-direction:row;align-items:center;justify-content:space-between;
}
.volume-calc-modal .calc-section-heading span{font-size:8.3px;letter-spacing:.09em}
.volume-calc-modal .calc-section-heading small{font-size:8.2px;line-height:1.2}
.volume-calc-modal .field label{font-size:8.9px;font-weight:850;margin-bottom:2px;line-height:1.15}
.volume-calc-modal .input,.volume-calc-modal .select{min-height:28px;height:28px;padding:4px 7px;font-size:10.8px;border-radius:7px}
.volume-calc-modal .textarea{min-height:48px;padding:6px 7px;font-size:10.5px;line-height:1.3}
.volume-calc-modal .volume-output-identity-grid{grid-template-columns:minmax(260px,1fr) 108px;gap:5px}
.volume-calc-modal .volume-element-identity-grid{grid-template-columns:minmax(260px,1.25fr) minmax(160px,.75fr);gap:5px}
.volume-calc-modal .volume-unit-field{max-width:108px}
.volume-calc-modal .volume-unit-field .input{font-size:11.5px}

.volume-optional-details,.calc-info-details{
  border:1px solid #e5e9ef;border-radius:7px;background:#fbfcfd;overflow:hidden;
}
.volume-optional-details>summary,.calc-info-details>summary{
  list-style:none;cursor:pointer;padding:5px 7px;font-size:9px;font-weight:850;color:#475569;
  display:flex;align-items:center;gap:5px;
}
.volume-optional-details>summary::-webkit-details-marker,.calc-info-details>summary::-webkit-details-marker{display:none}
.volume-optional-details>summary:before,.calc-info-details>summary:before{content:'›';font-size:13px;line-height:1;color:#64748b;transition:transform .15s ease}
.volume-optional-details[open]>summary:before,.calc-info-details[open]>summary:before{transform:rotate(90deg)}
.volume-optional-details>summary span{font-size:8px;font-weight:700;color:#94a3b8}
.volume-optional-details>.field{padding:0 6px 6px}
.calc-info-details>div{padding:0 8px 6px 24px;color:#64748b;font-size:8.8px;line-height:1.35}

.volume-calc-modal .volume-template-picker-field{margin:0}
.volume-calc-modal .volume-template-family-context{
  display:inline-flex;align-items:center;gap:5px;width:auto;margin:0 0 3px;padding:2px 6px;border-radius:5px
}
.volume-calc-modal .volume-template-family-context span{font-size:7.6px}.volume-calc-modal .volume-template-family-context strong{font-size:8.8px}
.volume-calc-modal .volume-template-searchbar{grid-template-columns:18px minmax(0,1fr) auto;margin:0 0 3px;padding:3px 5px;border-radius:7px}
.volume-calc-modal .volume-template-searchbar .input{height:25px;min-height:25px;padding:3px 6px;font-size:10.3px}
.volume-calc-modal .volume-template-searchbar small{font-size:8px}
.volume-calc-modal .volume-template-select{height:29px;min-height:29px;font-size:10.4px}
.volume-calc-modal .volume-template-picker-field>.hint{display:block;margin-top:2px;font-size:8.2px;line-height:1.25}

.volume-calc-modal .volume-template-head{
  border:0;border-left:3px solid #c4b5fd;background:#fafaff;border-radius:5px;padding:5px 7px;gap:8px
}
.volume-calc-modal .volume-template-head strong{font-size:10.8px}
.volume-calc-modal .volume-template-head small{margin-top:1px;font-size:8.4px;line-height:1.25}
.volume-calc-modal .volume-template-unit{min-width:58px}.volume-calc-modal .volume-template-unit span{font-size:7px}.volume-calc-modal .volume-template-unit strong{font-size:11px}

.volume-calc-modal .volume-calc-rows{gap:4px;margin-top:4px}
.volume-calc-modal .volume-calc-row{
  padding:5px 6px;border:0;border-left:3px solid #dbeafe;border-radius:6px;background:#f8fafc;box-shadow:none
}
.volume-calc-modal .structure-calc-row{border-left-color:#c4b5fd;background:#fbfaff}
.volume-calc-modal .volume-calc-row-top{display:grid;grid-template-columns:minmax(0,1fr) 98px 52px;gap:4px;align-items:end}
.volume-calc-modal .volume-calc-row .sign-field{width:auto;flex:initial}
.volume-calc-modal .calc-row-delete{height:27px;min-height:27px;padding:3px 5px;font-size:8.7px;border-radius:6px}
.volume-calc-modal .volume-calc-row>.field{margin-top:4px}
.volume-calc-modal .volume-calc-row>.field>label{display:none}
.volume-calc-modal .volume-calc-row>[class~="field"]>.select[data-k="method"]{font-weight:800;color:#4c1d95;background:#faf5ff}
.volume-calc-modal .volume-calc-row .field label{
  display:inline-block;margin:0 0 2px;padding:1px 4px;border-radius:4px;font-size:8.4px;font-weight:850
}
.volume-calc-modal .volume-calc-row .input,.volume-calc-modal .volume-calc-row .select{min-height:27px;height:27px;padding:3px 6px;font-size:10.4px}
.volume-calc-modal .volume-calc-dims{gap:4px;margin-top:4px;align-items:end}
.volume-calc-modal .volume-calc-dims.dim-count-1{grid-template-columns:minmax(150px,1fr) 90px 105px}
.volume-calc-modal .volume-calc-dims.dim-count-2{grid-template-columns:repeat(2,minmax(120px,1fr)) 88px 104px}
.volume-calc-modal .volume-calc-dims.dim-count-3{grid-template-columns:repeat(3,minmax(96px,1fr)) 84px 102px}
.volume-calc-modal .volume-calc-dims.dim-count-4{grid-template-columns:repeat(4,minmax(82px,1fr)) 82px 98px}
.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(5,minmax(72px,1fr)) 78px 94px}
.volume-calc-modal .volume-calc-result{min-width:0;min-height:27px;padding:3px 6px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:4px}
.volume-calc-modal .volume-calc-result span{font-size:7.5px}.volume-calc-modal .volume-calc-result strong{font-size:10.8px}
.volume-calc-modal .volume-calc-toolbar,.volume-calc-modal .structure-allowance-grid{margin-top:4px}
.volume-calc-modal .volume-calc-toolbar .btn,.volume-calc-modal .structure-allowance-grid .btn,.volume-calc-modal .calc-sheet-actions .btn{min-height:26px;padding:3px 7px;font-size:9px}

.volume-calc-modal .structure-dimension-grid{grid-template-columns:repeat(4,minmax(80px,1fr));gap:4px;margin-top:4px}
.volume-calc-modal .structure-formwork-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:4px;padding-top:4px;border-top:1px dashed #e3e8ee}
.volume-calc-modal .structure-formwork-grid .field label{font-size:8.1px}
.volume-calc-modal .structure-row-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:4px}
.volume-calc-modal .structure-row-results>div{padding:3px 6px;border:0;border-radius:5px;background:#ecfdf5;display:flex;justify-content:space-between;align-items:center}
.volume-calc-modal .structure-row-results span{font-size:7.5px}.volume-calc-modal .structure-row-results strong{margin:0;font-size:10.3px}
.volume-calc-modal .structure-output-summary,.volume-calc-modal .volume-calc-summary,.volume-calc-modal .quantity-summary-strip{gap:4px;margin-top:4px;max-width:440px}
.volume-calc-modal .structure-output-summary>div,.volume-calc-modal .volume-calc-summary>div,.volume-calc-modal .quantity-summary-strip>div{padding:5px 7px;border-radius:6px}
.volume-calc-modal .structure-output-summary span,.volume-calc-modal .volume-calc-summary span,.volume-calc-modal .quantity-summary-strip span{font-size:7.7px}
.volume-calc-modal .structure-output-summary strong,.volume-calc-modal .volume-calc-summary strong,.volume-calc-modal .quantity-summary-strip strong{font-size:11.5px}


.derived-output-compact{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-left:3px solid #93c5fd;background:#f8fbff;border-radius:6px}
.derived-output-compact strong{font-size:9.8px}.derived-output-compact span{font-size:8.5px;color:#64748b;text-align:right}
.volume-calc-modal .modal-actions{position:sticky;bottom:-12px;z-index:3;margin-top:6px;padding:7px 0 0;background:linear-gradient(to top,#fff 78%,rgba(255,255,255,.92));border-top:1px solid #eef1f4}
.volume-calc-modal .modal-actions .btn{min-height:31px;padding:5px 9px}

@media(max-width:1180px){.modal.wide-modal.volume-calc-modal{width:min(900px,calc(100vw - 200px))}}
@media(max-width:900px){
  .modal.wide-modal.volume-calc-modal{width:min(720px,calc(100vw - 178px))}
  .volume-calc-modal .volume-calc-dims.dim-count-4,.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .volume-calc-modal .structure-dimension-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .modal.wide-modal.volume-calc-modal{width:100%;max-height:93vh;padding:10px 9px calc(13px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}
  .volume-calc-modal .calc-section-heading{align-items:center;flex-direction:row}.volume-calc-modal .calc-section-heading small{max-width:52%;text-align:right}
  .volume-calc-modal .volume-output-identity-grid,.volume-calc-modal .volume-element-identity-grid{grid-template-columns:minmax(0,1fr) 96px}
  .volume-calc-modal .volume-calc-row-top{grid-template-columns:minmax(0,1fr) 92px}.volume-calc-modal .calc-row-delete{grid-column:1/-1;width:max-content}
  .volume-calc-modal .volume-calc-dims.dim-count-1,.volume-calc-modal .volume-calc-dims.dim-count-2,.volume-calc-modal .volume-calc-dims.dim-count-3,.volume-calc-modal .volume-calc-dims.dim-count-4,.volume-calc-modal .volume-calc-dims.dim-count-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .volume-calc-modal .volume-calc-dims .volume-calc-result{grid-column:1/-1}
  .volume-calc-modal .structure-dimension-grid,.volume-calc-modal .structure-formwork-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .volume-calc-modal .structure-output-summary,.volume-calc-modal .volume-calc-summary,.volume-calc-modal .quantity-summary-strip{max-width:none}
  .derived-output-compact{align-items:flex-start;flex-direction:column;gap:2px}.derived-output-compact span{text-align:left}
}
@media(max-width:460px){
  .volume-calc-modal .volume-output-identity-grid,.volume-calc-modal .volume-element-identity-grid{grid-template-columns:1fr}
  .volume-calc-modal .volume-unit-field{max-width:100px}
  .volume-calc-modal .calc-section-heading small{display:none}
  .volume-calc-modal .volume-template-searchbar{grid-template-columns:18px minmax(0,1fr)}.volume-calc-modal .volume-template-searchbar small{grid-column:2}
}

/* Volume Engine v2 — Part 2 */
.ve2-hero{margin-bottom:10px}
.ve2-group-list{display:grid;gap:10px}
.ve2-group-card{border:1px solid #d7dee8;border-radius:13px;background:#f7f9fc;overflow:hidden}
.ve2-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #d7dee8;background:#eef3f9}
.ve2-group-head h3{margin:3px 0 0;font-size:15px;line-height:1.2}.ve2-group-head small{display:block;margin-top:3px;color:#657184;font-size:11px}.ve2-group-head .tag{font-size:10px;padding:2px 7px}
.ve2-work-list{display:grid;gap:7px;padding:8px}
.ve2-work-card{border:1px solid #e0e5ec;border-radius:10px;background:#fff;overflow:hidden}
.ve2-work-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-left:4px solid #6b83a6;background:#fbfcfe}
.ve2-work-head>div:first-child{min-width:0}.ve2-work-head span{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;color:#607086}.ve2-work-head strong{display:block;font-size:13px;line-height:1.2;color:#182231}.ve2-work-head small{display:block;margin-top:2px;font-size:10.5px;color:#697588;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ve2-output-strip{display:flex;flex-wrap:wrap;gap:6px;padding:7px 10px 9px;border-top:1px solid #edf0f4;background:#fff}
.ve2-output-result{display:flex;align-items:center;gap:10px;min-width:160px;padding:6px 8px;border:1px solid #dce9df;border-radius:8px;background:#f5fbf6}.ve2-output-result>div{min-width:0;flex:1}.ve2-output-result span{display:block;font-size:10px;font-weight:700;color:#416149}.ve2-output-result small{display:block;font-size:9.5px;color:#718078}.ve2-output-result strong{font-size:13px;color:#1e5830;white-space:nowrap}
.ve2-work-form{gap:9px}.ve2-identity{gap:8px}.ve2-work-form .field{gap:3px}.ve2-work-form label{font-size:11px;font-weight:700}.ve2-work-form .input,.ve2-work-form .select{min-height:29px;padding:5px 8px;font-size:12px}.ve2-work-modal{max-width:940px!important}
.ve2-mode-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px;padding:7px 9px;border:1px solid #dfe5ed;border-radius:9px;background:#f8fafc}.ve2-mode-head strong{display:block;font-size:12px}.ve2-mode-head small{display:block;margin-top:2px;font-size:10px;color:#667386}.ve2-mode-head .tag{font-size:10px}
.ve2-row-list{display:grid;gap:6px;margin-top:6px}.ve2-calc-row{padding:7px;border:1px solid #e0e5ec;border-radius:9px;background:#fff}.ve2-calc-top{display:grid;grid-template-columns:minmax(160px,1fr) 54px 34px;gap:5px;align-items:end}.ve2-calc-top .btn{height:29px;padding:3px 7px}.ve2-calc-method{margin-top:5px;max-width:330px}.ve2-calc-dims{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:5px;margin-top:5px}.ve2-calc-dims label{display:grid;gap:2px}.ve2-calc-dims label>span{font-size:9.5px;color:#667386;font-weight:700}.ve2-qty{max-width:115px}.ve2-row-result{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:4px 7px;border:1px solid #d7eadb;border-radius:7px;background:#f4faf5}.ve2-row-result span{font-size:9px;color:#57725e}.ve2-row-result strong{font-size:12px;color:#215b31}
.ve2-structure-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:5px;margin-top:5px;padding-top:5px;border-top:1px dashed #e1e5ea}.ve2-struct-control .field{margin:0}.ve2-calc-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;padding:7px 9px;border-radius:9px;background:#eef8f0;border:1px solid #d9eadd}.ve2-calc-footer>div>span{display:block;font-size:9px;color:#5e7463}.ve2-calc-footer>div>strong{font-size:13px;color:#245b32}.ve2-two-results{display:flex;gap:12px!important}.ve2-two-results span{display:flex!important;gap:5px;align-items:center}.ve2-two-results strong{font-size:12px!important}
.ve2-manual-list{display:grid;gap:5px;margin-top:6px}.ve2-manual-output{display:grid;grid-template-columns:minmax(160px,1fr) 90px 130px 34px;gap:5px;align-items:center}.ve2-manual-output .btn{height:29px;padding:3px 7px}
@media(max-width:720px){.ve2-group-head,.ve2-work-head{align-items:flex-start}.ve2-group-head{padding:8px}.ve2-work-head{padding:7px 8px}.ve2-group-head .compact-actions,.ve2-work-head .compact-actions{gap:4px}.ve2-group-head .btn,.ve2-work-head .btn{padding:4px 7px;font-size:10px}.ve2-output-result{min-width:135px;flex:1}.ve2-work-modal{width:min(96vw,940px)!important}.ve2-calc-top{grid-template-columns:minmax(120px,1fr) 48px 32px}.ve2-calc-dims{grid-template-columns:repeat(2,minmax(0,1fr))}.ve2-row-result{grid-column:1/-1}.ve2-manual-output{grid-template-columns:minmax(120px,1fr) 70px 100px 32px}.ve2-two-results{flex-direction:column;gap:3px!important}}
@media(max-width:430px){.ve2-group-head{display:block}.ve2-group-head .toolbar{margin-top:7px}.ve2-work-head{display:block}.ve2-work-head .toolbar{margin-top:6px}.ve2-manual-output{grid-template-columns:1fr 70px}.ve2-manual-output .btn{grid-column:2}.ve2-calc-dims{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.1.49 Part 2 — clearer RAB Volume source picker */
.modal.wide-modal.volume-picker-modal{width:min(920px,calc(100vw - 228px));max-height:calc(100vh - 28px);padding:13px 14px 14px}
.volume-picker-modal .modal-header{margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid #e5eaf0}
.volume-picker-modal .modal-title{font-size:16.5px;font-weight:900}
.volume-picker-modal .volume-picker-intro{margin:0 0 7px;padding:7px 9px;border:1px solid #e5eaf0;border-radius:10px;background:#f8fafc}
.volume-picker-modal .volume-picker-intro>strong{font-size:12px}.volume-picker-modal .volume-picker-intro p{margin-top:2px;font-size:9.5px;line-height:1.35}
.volume-picker-modal #volume-picker-results{display:grid;gap:9px}
.volume-picker-group{margin-top:0;border:1px solid #d9e1ea;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 4px rgba(15,23,42,.035)}
.volume-picker-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #dbe6f3;background:#edf5ff;color:#172554;letter-spacing:0}
.volume-picker-group-title>div{min-width:0}.volume-picker-group-title span{display:block;margin-bottom:1px;font-size:7.7px;line-height:1;font-weight:950;letter-spacing:.12em;color:#2563eb}.volume-picker-group-title strong{display:block;font-size:12.5px;line-height:1.25;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.volume-picker-group-title small{font-size:9px;font-weight:800;color:#52647b;white-space:nowrap}
.volume-picker-element{border-top:1px solid #e9edf2;padding:6px 7px 7px;background:#fbfcfe}.volume-picker-element:first-of-type{border-top:0}
.volume-picker-element-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 7px 6px;border:1px solid #e3e8ee;border-radius:9px 9px 7px 7px;background:#fff}
.volume-picker-element-head>div{min-width:0}.volume-picker-work-kicker{display:block;margin-bottom:1px;font-size:7.5px;font-weight:950;letter-spacing:.1em;color:#64748b}.volume-picker-element-head strong{display:block;font-size:12px;line-height:1.25;font-weight:900;color:#111827}.volume-picker-element-head small{display:block;margin-top:2px;font-size:9.3px;line-height:1.3;color:#64748b;font-weight:650}.volume-picker-output-count{flex:0 0 auto;padding:3px 6px;border:1px solid #dbe3ec;border-radius:999px;background:#f8fafc;color:#64748b;font-size:8px;font-weight:850}
.volume-picker-output-list{position:relative;margin:0 4px;padding:3px 0 0 12px;border-left:2px solid #dbeafe}
.volume-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:6px 7px;margin-top:3px;border:1px solid #e8edf2;border-radius:8px;background:#fff}
.volume-picker-row:hover{border-color:#bfd6f5;background:#f8fbff}.volume-picker-row:has(.btn.primary){border-color:#93c5fd;background:#eff6ff}
.volume-picker-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center}.volume-picker-output-title{min-width:0;display:flex;align-items:center;gap:6px}.volume-picker-output-kicker{flex:0 0 auto;padding:2px 4px;border-radius:4px;background:#e0f2fe;color:#075985;font-size:7px;font-weight:950;letter-spacing:.08em}.volume-picker-output-title strong{min-width:0;font-size:11.5px;line-height:1.25;font-weight:900;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.volume-picker-source-badge{flex:0 0 auto;padding:2px 5px;border-radius:999px;font-size:7.2px;font-weight:900;letter-spacing:.05em}.volume-picker-source-badge.legacy{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.volume-picker-path{grid-column:1;display:block;margin-top:0;color:#64748b;font-size:8.6px;font-weight:650;white-space:normal}
.volume-picker-metrics{grid-column:2;grid-row:1 / span 2;display:grid;grid-template-columns:auto auto;align-items:center;gap:1px 6px;min-width:116px;text-align:right}.volume-picker-unit{grid-column:1;padding:2px 5px;border-radius:5px;background:#f1f5f9;color:#334155;font-size:8px;font-weight:900}.volume-picker-mode{grid-column:2;font-size:7.5px;font-weight:800;color:#64748b}.volume-picker-metrics>strong{grid-column:1 / -1;font-size:13px;line-height:1.05;font-weight:950;color:#166534;font-variant-numeric:tabular-nums}.volume-picker-proc{grid-column:1 / -1;font-size:7.8px;color:#92400e;font-weight:750}
.volume-picker-actions{display:flex;gap:4px;align-items:center}.volume-picker-actions .btn{min-height:29px;padding:5px 9px;font-size:9.5px;font-weight:850}.volume-picker-actions .btn.primary{box-shadow:0 0 0 2px rgba(37,99,235,.08)}
.volume-picker-searchbar{margin:7px 0 9px;padding:6px 7px;border-radius:10px}.volume-picker-searchbar .input{height:33px;min-height:33px;font-size:11.5px;font-weight:750}.volume-picker-searchbar small{font-size:9px}
.volume-picker-modal .modal-actions{margin-top:8px;padding-top:7px;border-top:1px solid #edf0f3}
@media(max-width:1180px){.modal.wide-modal.volume-picker-modal{width:min(820px,calc(100vw - 200px))}}
@media(max-width:899px) and (min-width:721px){.modal.wide-modal.volume-picker-modal{width:min(680px,calc(100vw - 178px))}.volume-picker-copy{grid-template-columns:minmax(0,1fr) 105px}.volume-picker-metrics{min-width:105px}}
@media(max-width:720px){.modal.wide-modal.volume-picker-modal{width:100%;max-height:93vh;padding:10px 9px calc(13px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}.volume-picker-group-title{padding:8px}.volume-picker-group-title strong{font-size:12px}.volume-picker-group-title small{font-size:8.5px}.volume-picker-element{padding:5px}.volume-picker-element-head{padding:5px 6px}.volume-picker-element-head strong{font-size:11.5px}.volume-picker-output-list{margin:0 2px;padding-left:8px}.volume-picker-row{grid-template-columns:1fr;padding:6px}.volume-picker-copy{grid-template-columns:minmax(0,1fr) auto;gap:2px 7px}.volume-picker-output-title strong{font-size:11px}.volume-picker-metrics{min-width:94px}.volume-picker-metrics>strong{font-size:12px}.volume-picker-actions{justify-content:flex-end}.volume-picker-actions .btn{min-height:30px}}
@media(max-width:460px){.volume-picker-copy{grid-template-columns:1fr}.volume-picker-metrics{grid-column:1;grid-row:auto;grid-template-columns:auto auto 1fr;min-width:0;text-align:left;margin-top:3px}.volume-picker-metrics>strong{grid-column:3;grid-row:1;text-align:right}.volume-picker-proc{grid-column:1/-1}.volume-picker-path{grid-column:1}.volume-picker-group-title{align-items:flex-start;flex-direction:column;gap:3px}.volume-picker-group-title small{white-space:normal}.volume-picker-element-head{align-items:flex-start}.volume-picker-output-count{margin-top:1px}}

/* v1.1.56 — integrated structure sub-work roadmap */
.ve2-structure-roadmap{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;padding:6px 8px;border:1px solid #e2e7ee;border-radius:8px;background:#fbfcfe}
.ve2-structure-roadmap span{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:9.5px;font-weight:800}
.ve2-structure-roadmap .done{background:#eef8f0;color:#245b32;border:1px solid #d9eadd}
.ve2-structure-roadmap .pending{background:#fff8e8;color:#8a5a00;border:1px solid #f1d89d}.ve2-structure-roadmap .pending small{font-size:8.5px;font-weight:700;opacity:.82}
.ve2-roadmap-result em{font-style:normal;font-weight:900;font-size:9px;color:#8a5a00;background:#fff8e8;border:1px solid #f1d89d;border-radius:999px;padding:2px 5px}
.ve2-output-result.ve2-output-ongoing{border-color:#f1d89d;background:#fffaf0}.ve2-output-result.ve2-output-ongoing span{color:#7a560f}.ve2-output-result.ve2-output-ongoing small{color:#8f7542}.ve2-output-result.ve2-output-ongoing b{font-size:9.5px;color:#8a5a00;background:#fff3ce;border:1px solid #edcf7c;border-radius:999px;padding:3px 6px;white-space:nowrap}
@media(max-width:720px){.ve2-structure-roadmap{gap:4px}.ve2-structure-roadmap span{font-size:9px}.ve2-structure-roadmap .pending small{display:none}}
/* v1.1.58 — integrated reinforcement input foundation */
.ve2-rebar-panel{margin-top:7px;padding:8px;border:1px solid #ecd9aa;border-radius:9px;background:#fffaf0}.ve2-rebar-panel.muted{background:#f7f8fa;border-color:#e3e6eb}.ve2-rebar-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ve2-rebar-title strong{display:block;font-size:10.5px;color:#76520d}.ve2-rebar-title small{display:block;margin-top:2px;font-size:9px;line-height:1.35;color:#806d48}.ve2-rebar-cover{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:8px;align-items:end;margin-top:7px}.ve2-rebar-cover label,.ve2-rebar-grid label{display:grid;gap:2px}.ve2-rebar-cover span,.ve2-rebar-grid span{font-size:9px;font-weight:700;color:#687383}.ve2-rebar-cover small{font-size:8.8px;color:#7b8490;padding-bottom:6px}.ve2-rebar-list{display:grid;gap:6px;margin:7px 0}.ve2-rebar-empty{padding:7px 8px;border:1px dashed #dec998;border-radius:7px;font-size:9px;color:#806d48;background:#fffdf8}.ve2-rebar-set{padding:7px;border:1px solid #eadcb9;border-radius:8px;background:#fff}.ve2-rebar-set-head{display:grid;grid-template-columns:minmax(150px,1fr) 34px;gap:5px}.ve2-rebar-set-head .btn{height:29px;padding:3px 7px}.ve2-rebar-grid{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:5px;margin-top:5px}.ve2-rebar-note{grid-column:span 2}.ve2-output-ongoing small{max-width:360px}
@media(max-width:720px){.ve2-rebar-cover{grid-template-columns:1fr}.ve2-rebar-cover small{padding-bottom:0}.ve2-rebar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ve2-rebar-note{grid-column:1/-1}}
@media(max-width:430px){.ve2-rebar-grid{grid-template-columns:1fr}.ve2-rebar-note{grid-column:auto}.ve2-rebar-title{display:block}.ve2-rebar-title .tag{display:inline-flex;margin-top:5px}}

/* v1.1.59 — reinforcement basic theoretical-weight engine */
.ve2-structure-roadmap .basic{background:#eef6ff;color:#185a8d;border:1px solid #cfe2f3}.ve2-structure-roadmap .basic small{font-size:8.5px;font-weight:700;opacity:.82}.ve2-rebar-basic-result{display:inline-flex!important;align-items:center;gap:5px}.ve2-rebar-basic-result em{font-style:normal;font-weight:900;font-size:8.5px;color:#185a8d;background:#eef6ff;border:1px solid #cfe2f3;border-radius:999px;padding:2px 5px}.ve2-rebar-calc{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:6px 7px;border:1px solid #dbe8f4;border-radius:7px;background:#f7fbff}.ve2-rebar-calc span{font-size:8.8px;color:#526b80;line-height:1.35}.ve2-rebar-calc strong{font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.ve2-rebar-calc.pending{border-style:dashed;background:#fffdf8;border-color:#dec998}.ve2-rebar-calc.pending small{font-size:8.6px;color:#806d48;line-height:1.35}.ve2-output-basic{border-color:#cfe2f3;background:#f7fbff}.ve2-output-basic b{font-size:9px;color:#185a8d;background:#eef6ff;border:1px solid #cfe2f3;border-radius:999px;padding:3px 6px}
@media(max-width:720px){.ve2-structure-roadmap .basic small{display:none}.ve2-rebar-calc{align-items:flex-start;flex-direction:column;gap:3px}.ve2-rebar-calc strong{white-space:normal}}

/* HC-01 Pondasi Telapak / Foot Plate */
.ve2-structure-roadmap .hc-complete{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.hc-complete-result em,.hc-complete-card b{color:#166534!important;background:#ecfdf5!important;border-color:#bbf7d0!important}.fp-panel{border-color:#b9dfcf;background:#f8fffb}.fp-master{margin-top:7px;padding:7px;border:1px solid #d3e9df;border-radius:8px;background:#fff}.fp-enable{display:flex!important;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#244c3c}.fp-enable input{width:15px;height:15px;margin:0}.fp-master-grid,.fp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:6px}.fp-master-grid label,.fp-grid label{display:grid;gap:2px;min-width:0}.fp-master-grid span,.fp-grid span{font-size:8.8px;font-weight:800;color:#64748b}.fp-grid small{font-size:8.2px;color:#247457;line-height:1.2}.fp-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:9px 0 5px;padding-bottom:4px;border-bottom:1px solid #d9e8e1}.fp-section-title span{font-size:9.5px;font-weight:900;letter-spacing:.04em;color:#315a4a}.fp-section-title small{font-size:8.4px;color:#728078}.fp-layer-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fp-layer{padding:7px;border:1px solid #dfe7e3;border-radius:8px;background:#fafcfb}.fp-layer.active{border-color:#b8dfce;background:#fff}.fp-layer-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.fp-layer-head .tag{font-size:8.5px}.fp-live{margin-top:5px;padding:5px 6px;border-radius:6px;background:#f0f8f4;color:#3e6757;font-size:8.6px;line-height:1.35}.fp-advanced,.fp-extras,.fp-bbs{margin-top:6px;border-top:1px dashed #d7e4de;padding-top:5px}.fp-advanced summary,.fp-extras summary,.fp-bbs summary{cursor:pointer;font-size:8.8px;font-weight:900;color:#476456}.fp-grid-advanced{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-note{grid-column:span 2}.fp-starter{margin-top:7px}.fp-extra-list{display:grid;gap:5px;margin:6px 0}.fp-extra{display:grid;grid-template-columns:minmax(130px,1.5fr) repeat(3,minmax(80px,.7fr)) minmax(120px,1fr) auto 32px;gap:5px;align-items:end;padding:6px;border:1px solid #e3ebe7;border-radius:7px;background:#fff}.fp-extra label{display:grid;gap:2px}.fp-extra label span{font-size:8.2px;font-weight:800;color:#64748b}.fp-extra label small{font-size:8px;color:#247457}.fp-extra strong{font-size:9px;padding-bottom:7px;white-space:nowrap}.fp-bbs-empty,.fp-cutting-off{margin-top:6px;padding:6px;border:1px dashed #bdd8cc;border-radius:6px;background:#fbfffd;font-size:8.5px;color:#5f756b}.fp-bbs-head,.fp-bbs-row{display:grid;grid-template-columns:.7fr 1.2fr .65fr .75fr .75fr .85fr;gap:4px;align-items:center}.fp-bbs-head{margin-top:6px;padding:4px 5px;background:#315a4a;color:#fff;border-radius:5px;font-size:8px;font-weight:800}.fp-bbs-row{padding:5px;border-bottom:1px solid #e2ebe6;font-size:8.4px}.fp-bbs-row strong{text-align:right;font-size:8.8px}.fp-cutting-list{display:grid;gap:4px;margin-top:6px}.fp-cutting-row{display:grid;grid-template-columns:1.2fr .8fr 1.8fr;gap:5px;padding:5px 6px;border:1px solid #e3ebe7;border-radius:6px;background:#fff;font-size:8.4px}.fp-cutting-row em{grid-column:1/-1;color:#9a5b12;font-style:normal;font-weight:700}.fp-cutting-row strong{text-align:center}.fp-panel input[type="checkbox"]{accent-color:#27795a}
@media(max-width:820px){.fp-master-grid,.fp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-grid-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-layer-list{grid-template-columns:1fr}.fp-extra{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-extra strong{padding-bottom:0}.fp-extra .danger{justify-self:start}.fp-bbs-head,.fp-bbs-row{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-cutting-row{grid-template-columns:1fr 1fr}.fp-cutting-row span:nth-child(3){grid-column:1/-1}.fp-section-title{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:430px){.fp-master-grid,.fp-grid,.fp-grid-advanced,.fp-extra{grid-template-columns:1fr}.fp-note{grid-column:auto}.fp-bbs-head{display:none}.fp-bbs-row{grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e2ebe6;border-radius:6px;margin-top:4px}.fp-bbs-row strong{text-align:left}.fp-cutting-row{grid-template-columns:1fr}.fp-cutting-row span:nth-child(3),.fp-cutting-row em{grid-column:auto}}
@media(max-width:430px){.fp-bbs-row [data-label]::before{content:attr(data-label) " · ";font-size:7.5px;font-weight:800;color:#75827c}.fp-bbs-row [data-label]{min-width:0;overflow-wrap:anywhere}}

/* v1.1.62 — HC-01 guided input clarity */
.fp-guide{margin-top:7px;padding:7px 8px;border:1px solid #cfe4da;border-radius:8px;background:#f4fbf7}.fp-guide>strong{display:block;font-size:9.5px;color:#315a4a;margin-bottom:4px}.fp-guide>div{display:flex;flex-wrap:wrap;gap:5px 10px;align-items:center}.fp-guide>div>span{font-size:8.5px;color:#52665d;display:inline-flex;align-items:center;gap:4px}.fp-guide>small{display:block;margin-top:5px;font-size:8.5px;line-height:1.4;color:#5d7067}.fp-field-label{display:flex!important;align-items:center;justify-content:space-between;gap:4px;min-width:0}.fp-field-label b{font-size:8.8px;color:#64748b;min-width:0}.fp-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px;padding:1px 4px;font-size:6.9px!important;line-height:1.3;font-style:normal;font-weight:900;letter-spacing:.035em;border:1px solid}.fp-badge.required{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.fp-badge.auto{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.fp-badge.optional{color:#52665d;background:#f7faf8;border-color:#d7e4de}.fp-badge.conditional{color:#8a5a0a;background:#fffbeb;border-color:#fde68a}.fp-field-help{font-size:7.8px!important;line-height:1.3!important;color:#7a877f!important;font-weight:500!important}.fp-unit-info{font-size:8.2px!important;color:#247457!important;font-weight:800!important}.fp-quick-guide{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:5px 6px;border-radius:6px;background:#f2f8f5;border:1px solid #dcebe4}.fp-quick-guide strong{flex:0 0 auto;font-size:8px;color:#2f6b52}.fp-quick-guide span{font-size:8px;color:#607269;line-height:1.35}.fp-advanced summary span,.fp-extras summary span{font-size:7px;color:#73837a;font-weight:800;margin-left:4px}.fp-advanced-help{margin:5px 0 2px;padding:5px 6px;border-radius:6px;background:#fafcfb;color:#6f7d76;font-size:8px;line-height:1.35;border:1px dashed #d9e5df}.fp-enable .fp-badge{margin-left:2px}.fp-master-grid label,.fp-grid label{align-content:start}.fp-master-grid label>.input,.fp-grid label>.input,.fp-grid label>.select{margin-top:1px}
@media(max-width:820px){.fp-guide>div{display:grid;grid-template-columns:1fr 1fr}.fp-field-label{align-items:flex-start}.fp-field-label b{line-height:1.2}.fp-quick-guide{display:block}.fp-quick-guide strong{display:block;margin-bottom:2px}}
@media(max-width:430px){.fp-guide>div{grid-template-columns:1fr}.fp-badge{font-size:6.5px!important}.fp-field-label{gap:3px}.fp-field-help{font-size:7.6px!important}}

/* v1.1.63 — HC conditional locking + Material lock */
.fp-panel input:disabled,.fp-panel select:disabled{background:#f1f5f9!important;color:#94a3b8!important;border-color:#e2e8f0!important;cursor:not-allowed}.fp-standard-hook{grid-column:span 2;display:grid;gap:2px;padding:6px 7px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#1e3a8a}.fp-standard-hook strong{font-size:8.3px}.fp-standard-hook span{font-size:8px!important;line-height:1.35;color:#3b5f91!important}.fp-standard-hook.warning{border-color:#fde68a;background:#fffbeb;color:#854d0e}.fp-standard-hook.warning span{color:#854d0e!important}.material-lock-note{margin-top:7px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;font-size:8.8px;font-weight:700;line-height:1.35}.ve2-output-result .btn:disabled{opacity:.65}.fp-advanced[open]{background:#fff}.fp-grid label:has(> input:disabled) .fp-field-help{color:#94a3b8!important}
@media(max-width:430px){.fp-standard-hook{grid-column:auto}}

/* v1.1.65 — HC-01 progressive disclosure / compact technical-sheet UI */
.fp-panel{padding:8px!important}
.fp-flow{display:flex;align-items:center;gap:6px;margin:6px 0 7px;padding:5px 6px;border:1px solid #dce9e3;border-radius:7px;background:#fbfefc;overflow:hidden}
.fp-flow span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:7.8px;font-weight:800;color:#607269}
.fp-flow b{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#e8f5ee;color:#256647;font-size:7.5px}
.fp-master{padding:6px 7px!important}.fp-master-basic{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px!important}.fp-master-basic label{gap:3px}
.fp-stage{margin-top:7px;padding-top:2px}.fp-stage+.fp-stage{margin-top:9px;padding-top:7px;border-top:1px solid #e4ece8}.fp-stage-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.fp-stage-title span{font-size:9px;font-weight:900;color:#315a4a}.fp-stage-title small{font-size:7.8px;color:#7b8982}
.fp-stage-optional .fp-stage-title span{color:#586a62}.fp-stage-optional .fp-layer:not(.active){background:#fbfcfc;border-style:dashed;padding:5px 7px}.fp-stage-optional .fp-layer:not(.active) .fp-layer-head{min-height:24px}
.fp-primary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px}.fp-primary-grid label{display:grid;gap:2px;min-width:0}.fp-primary-grid .fp-field-label b{font-size:8.5px}.fp-primary-grid .input{min-width:0}.fp-compact-state{font-size:7.5px!important;color:#7b8982!important;font-weight:600!important;line-height:1.15!important}
.fp-layer{padding:6px!important}.fp-layer.active{box-shadow:0 1px 0 rgba(22,101,52,.03)}.fp-layer-head .fp-enable span{font-size:9.4px}.fp-layer-head .tag{font-size:8px!important;padding:2px 5px!important}.fp-live{margin-top:5px!important;padding:4px 6px!important;font-size:8px!important;white-space:normal}
.fp-settings{margin-top:5px!important;padding-top:4px!important}.fp-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0;font-size:8.2px!important;color:#52675d!important}.fp-settings>summary span{font-size:7px!important;color:#8a9690!important;text-align:right}.fp-settings[open]>summary{color:#315a4a!important}.fp-advanced-group{margin-top:6px;padding:6px;border:1px solid #e4ece8;border-radius:7px;background:#fcfdfd}.fp-advanced-group>strong{display:block;margin-bottom:5px;font-size:8px;color:#52675d}.fp-grid-advanced{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}.fp-grid-advanced .fp-field-help{margin-top:0!important}.fp-standard-hook{grid-column:span 2;padding:5px 6px!important}.fp-standard-hook span{font-size:7.5px!important}
.fp-starter{margin-top:0!important}.fp-starter-primary{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-extras{margin-top:5px!important}.fp-bbs{margin-top:8px!important;border:1px solid #dce9e3!important;border-radius:7px;padding:0!important;background:#fbfefc}.fp-bbs>summary{padding:6px 7px!important}.fp-bbs[open]>summary{border-bottom:1px solid #e4ece8}.fp-bbs-tools{padding:6px 7px 2px;max-width:240px}.fp-bbs-tools label{display:grid;gap:2px}.fp-bbs-tools small{font-size:7.5px;color:#7b8982}.fp-bbs-head,.fp-bbs-row,.fp-cutting-list,.fp-cutting-off,.fp-bbs-empty{margin-left:7px!important;margin-right:7px!important}.fp-bbs>:last-child{margin-bottom:7px!important}
.volume-calc-modal .hc01-result-strip{position:sticky;bottom:39px;z-index:2;box-shadow:0 -5px 12px rgba(255,255,255,.92)}
@media(max-width:820px){.fp-master-basic,.fp-primary-grid,.fp-starter-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-grid-advanced{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fp-flow{overflow-x:auto}.volume-calc-modal .hc01-result-strip{bottom:38px}}
@media(max-width:430px){.fp-master-basic,.fp-primary-grid,.fp-starter-primary,.fp-grid-advanced{grid-template-columns:1fr!important}.fp-flow{gap:8px}.fp-flow span{font-size:7.4px}.fp-settings>summary{align-items:flex-start}.fp-settings>summary span{max-width:48%}.volume-calc-modal .hc01-result-strip{bottom:42px}}

/* v1.1.76 HC-04 progressive workflow */
.hc04-progressive{position:relative}
.hc04-step-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:7px 0;padding:4px;border:1px solid #dbe9e2;border-radius:9px;background:#f7fbf9}
.hc04-step-tabs button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:5px 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:#66766f;font:inherit;font-size:8.6px;font-weight:850;cursor:pointer}
.hc04-step-tabs button b{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:#e6f2ec;color:#2d6d52;font-size:7.6px}
.hc04-step-tabs button.is-active{background:#fff;border-color:#aed8c5;color:#214f3d;box-shadow:0 1px 3px rgba(31,79,60,.08)}
.hc04-step-tabs button.is-active b{background:#2f7659;color:#fff}
.hc04-stage-panel{min-height:98px}
.hc04-stage-intro{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 7px;padding:6px 8px;border-radius:7px;background:#f3f9f6}
.hc04-stage-intro strong{font-size:9px;color:#315a4a}.hc04-stage-intro small{font-size:7.8px;color:#74827b;text-align:right}
.hc04-card-list{display:grid;gap:6px}
.hc04-compact-card{padding:6px 7px;border:1px solid #dfe8e4;border-radius:8px;background:#fbfcfc}
.hc04-compact-card.active{border-color:#b8dccb;background:#fff}
.hc04-card-head{display:grid;grid-template-columns:minmax(145px,.9fr) minmax(180px,1.7fr) auto;gap:8px;align-items:center}
.hc04-card-head>strong{font-size:9px;color:#315a4a}.hc04-card-summary{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;color:#65766e;font-size:8.2px}.hc04-card-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hc04-card-summary strong{white-space:nowrap;color:#315a4a;font-size:8.6px}
.hc04-edit-btn{min-width:46px}
.hc04-card-editor{margin-top:6px;padding-top:6px;border-top:1px dashed #d8e5df}
.hc04-card-actions{display:flex;justify-content:flex-end;gap:5px;margin-top:6px}
.hc04-review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px}.hc04-review-summary span{display:flex;justify-content:space-between;gap:5px;padding:6px 8px;border:1px solid #dce8e2;border-radius:7px;background:#fff;font-size:8.4px;color:#66766f}.hc04-review-summary strong{color:#315a4a}
.hc04-custom-block{margin-bottom:8px;padding:7px;border:1px dashed #d8e5df;border-radius:8px;background:#fcfefd}
.hc04-tech-detail>summary{display:none!important}
.hc04-tech-detail .hc-table-detail-head>div{min-width:0}
.hc04-tech-detail .hc-table-detail-head strong{display:block;font-size:.9rem}
.hc04-tech-detail .hc-table-detail-head small{display:block;margin-top:2px;font-size:.66rem;font-weight:500;color:#718078;line-height:1.3}
.hc04-tech-body .fp-grid{margin-top:0}
@media(max-width:820px){.hc04-card-head{grid-template-columns:1fr auto}.hc04-card-summary{grid-column:1/-1;grid-row:2;justify-content:flex-start}.hc04-step-tabs button span{display:none}.hc04-step-tabs button{min-height:30px}.hc04-review-summary{grid-template-columns:1fr}.hc04-stage-intro{align-items:flex-start;flex-direction:column;gap:2px}.hc04-stage-intro small{text-align:left}}
@media(max-width:430px){.hc04-card-head{grid-template-columns:1fr auto}.hc04-card-summary span{white-space:normal}.hc04-step-tabs{position:sticky;top:0;z-index:3;background:#f7fbf9}}

/* v1.1.77 working: Volume Workspace table + round-trip Excel */
.ve2-workspace-table-wrap{margin-top:8px;border:1px solid #d9e1ea;border-radius:13px;background:#fff;overflow:auto}
.ve2-workspace-table{width:100%;min-width:940px;border-collapse:separate;border-spacing:0;font-size:10.5px}
.ve2-workspace-table th{position:sticky;top:0;z-index:3;padding:8px 9px;background:#eef3f8;border-bottom:1px solid #cfd8e3;color:#526174;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;text-align:left;white-space:nowrap}
.ve2-workspace-table th:first-child,.ve2-workspace-table td:first-child{width:42px;text-align:center}
.ve2-workspace-table th:last-child,.ve2-workspace-table td:last-child{width:160px}
.ve2-workspace-table td{padding:7px 9px;border-bottom:1px solid #edf0f4;vertical-align:middle;background:#fff}
.ve2-ws-group-row td{padding:0!important;background:#f5f8fc!important;border-bottom:1px solid #d9e1ea!important}
.ve2-ws-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px}
.ve2-ws-group-head>div:first-child{display:flex;align-items:center;gap:8px;min-width:0}.ve2-ws-group-head strong{font-size:11.5px}.ve2-ws-group-head small{color:var(--muted);font-size:9px}
.ve2-ws-name{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.ve2-ws-name:disabled{cursor:not-allowed;opacity:.65}.ve2-ws-name strong{display:block;font-size:11px}.ve2-ws-name small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.ve2-ws-template{display:block;max-width:220px;font-size:9.5px;font-weight:750;color:#334155}.ve2-ws-input-summary{display:block;max-width:360px;color:#59687b;font-size:9px;line-height:1.35}
.ve2-ws-output-chips{display:flex;gap:4px;flex-wrap:wrap}.ve2-ws-chip{display:inline-flex;gap:4px;align-items:center;padding:3px 6px;border:1px solid #dbe4ef;border-radius:999px;background:#f8fbff;font-size:8.5px;color:#475569;white-space:nowrap}.ve2-ws-chip b{font-weight:850;color:#1e293b}
.ve2-ws-inline-row td{background:#fbfdff;border-bottom:2px solid #c8d8ea;padding-top:9px;padding-bottom:9px}.ve2-ws-inline-stack{display:grid;gap:4px}.ve2-ws-inline-row .input,.ve2-ws-inline-row .select{min-height:29px;height:29px;padding:4px 7px;font-size:10px}
.ve2-ws-inline-dims{display:grid;grid-template-columns:repeat(3,minmax(75px,1fr));gap:5px}.ve2-ws-inline-dims label{display:grid;gap:2px}.ve2-ws-inline-dims label span{font-size:7.5px;color:#64748b;font-weight:800}.ve2-ws-inline-row small{display:block;margin-top:3px;color:#64748b;font-size:8px}
.volume-import-head{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:8px;margin-bottom:8px}.volume-import-mapping{border:1px solid #dbe2ea;border-radius:10px;background:#fafcff;margin-bottom:9px}.volume-import-mapping summary{padding:8px 10px;cursor:pointer;font-size:10px;font-weight:850}.volume-import-mapping summary span{float:right;color:#64748b;font-weight:700}.volume-import-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 9px 9px}.volume-import-map-grid label{display:grid;gap:2px}.volume-import-map-grid label span{font-size:8px;color:#64748b;font-weight:800}
.volume-import-preview{max-height:48vh;overflow:auto;border:1px solid #dbe2ea;border-radius:10px}.volume-import-table{width:100%;min-width:760px;border-collapse:collapse;font-size:9px}.volume-import-table th{position:sticky;top:0;background:#eef3f8;padding:6px;text-align:left;border-bottom:1px solid #d2dbe6}.volume-import-table td{padding:6px;border-bottom:1px solid #edf0f4;vertical-align:top}.volume-import-table td strong,.volume-import-table td small{display:block}.volume-import-table td small{margin-top:2px;color:#64748b}.volume-import-table .tag.danger{background:#fef2f2;color:#991b1b;border-color:#fecaca}.volume-import-table .tag.warning{background:#fffbeb;color:#92400e;border-color:#fde68a}.volume-import-table .tag.success{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.volume-import-modal{max-width:1120px!important}.ve2-work-modal{max-width:min(1180px,96vw)!important;width:min(1180px,96vw)!important;max-height:94vh}.ve2-work-modal .ve2-work-form{max-height:calc(94vh - 58px);overflow:auto;padding-right:4px}
@media(max-width:760px){.ve2-workspace-table-wrap{border-left:0;border-right:0;border-radius:0;margin-left:-8px;margin-right:-8px}.ve2-workspace-table{min-width:820px}.volume-import-map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.volume-import-head{grid-template-columns:1fr}.ve2-work-modal{width:98vw!important;max-width:98vw!important;max-height:96vh}.ve2-ws-inline-dims{grid-template-columns:repeat(2,minmax(84px,1fr))}}
/* v1.1.78 — unified workspace picker: simple inline + HC detail handoff */
.ve2-ws-hc-inline{display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 8px;border:1px solid #d7e3ee;border-radius:9px;background:#f8fbfd}
.ve2-ws-hc-inline .tag{flex:0 0 auto}.ve2-ws-hc-inline div{display:grid;gap:2px}.ve2-ws-hc-inline strong{font-size:10px;color:#243244}.ve2-ws-hc-inline small{margin:0;font-size:8px;color:#64748b}
.ve2-ws-hc-output{display:inline-flex;align-items:center;min-height:28px;padding:5px 7px;border-radius:999px;background:#eef7f0;color:#285b37;font-size:8px;font-weight:800;white-space:nowrap}

/* v1.1.80 — HC geometry table editor */
.ve2-geometry-table-wrap{margin-top:7px;border:1px solid #dce4eb;border-radius:10px;background:#fff;overflow:hidden}
.ve2-geometry-table-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-bottom:1px solid #e4e9ef;background:#f8fafc}
.ve2-geometry-table-head strong{display:block;font-size:10px;color:#27364a}.ve2-geometry-table-head small{display:block;margin-top:2px;font-size:8.2px;line-height:1.3;color:#718096}
.ve2-geometry-table{width:100%;border-collapse:collapse;table-layout:fixed}.ve2-geometry-table th{padding:5px 4px;border-bottom:1px solid #dce4eb;background:#edf3f8;color:#536276;font-size:7.8px;font-weight:850;text-align:left}.ve2-geometry-table td{padding:4px;border-bottom:1px solid #e6ebf0;vertical-align:middle}.ve2-geometry-table tbody:last-child .ve2-geometry-main-row td{border-bottom:0}.ve2-geometry-table tbody.is-active .ve2-geometry-main-row td{background:#f7fcf9}.ve2-geometry-table .input,.ve2-geometry-table .select{min-height:28px;padding:4px 6px;font-size:10px}.ve2-geometry-table .geo-no{width:34px;text-align:center;font-weight:800;color:#637083}.ve2-geometry-table .geo-name{width:170px}.ve2-geometry-table .geo-sign{width:50px}.ve2-geometry-table .geo-dim{width:105px}.ve2-geometry-table .geo-qty{width:76px}.ve2-geometry-table .geo-result{width:120px}.ve2-geometry-table .geo-result strong,.ve2-geometry-table .geo-result small{display:block;white-space:nowrap}.ve2-geometry-table .geo-result strong{font-size:9px;color:#244c3c}.ve2-geometry-table .geo-result small{margin-top:1px;font-size:7.6px;color:#758079}.ve2-geometry-table .geo-actions{width:105px;white-space:nowrap}.ve2-geometry-table .geo-actions .btn{min-height:27px;padding:3px 7px;margin-right:3px}.ve2-geometry-detail-row>td{padding:0!important;background:#f8fbfa!important;border-bottom:1px solid #cfded7!important}.ve2-geometry-detail{padding:8px 9px 10px}.ve2-geometry-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;padding:6px 8px;border:1px solid #d9e8e1;border-radius:8px;background:#f3f9f6}.ve2-geometry-detail-head strong{display:block;font-size:9.5px;color:#315a4a}.ve2-geometry-detail-head small{display:block;margin-top:2px;font-size:8px;color:#708077;line-height:1.3}.ve2-structure-controls-table{margin:0 0 7px;padding:6px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
@media(max-width:820px){
  .ve2-geometry-table-wrap{overflow:visible}.ve2-geometry-table-head{align-items:flex-start}.ve2-geometry-table{display:block}.ve2-geometry-table thead{display:none}.ve2-geometry-table tbody{display:block;border-bottom:1px solid #dce4eb}.ve2-geometry-table tbody:last-child{border-bottom:0}.ve2-geometry-table tr.ve2-geometry-main-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px}.ve2-geometry-table td{display:block;width:auto!important;padding:0;border:0;background:transparent!important}.ve2-geometry-table td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:7.4px;font-weight:800;color:#708096}.ve2-geometry-table .geo-no{display:none}.ve2-geometry-table .geo-name,.ve2-geometry-table .geo-result,.ve2-geometry-table .geo-actions{grid-column:1/-1}.ve2-geometry-table .geo-sign{max-width:70px}.ve2-geometry-table .geo-result{padding:5px 7px;border:1px solid #dce8e2;border-radius:7px;background:#f8fcfa!important}.ve2-geometry-table .geo-result strong,.ve2-geometry-table .geo-result small{display:inline;margin-right:8px}.ve2-geometry-table .geo-actions{display:flex;justify-content:flex-end;gap:4px}.ve2-geometry-detail-row{display:block}.ve2-geometry-detail-row>td{display:block!important}.ve2-geometry-detail-row>td::before{display:none}
}

/* HC detail table redesign — Bagian 2 */
.hc-rebar-table-wrap{width:100%;overflow:visible;border:1px solid var(--line,#dce3ea);border-radius:12px;background:#fff}
.hc-rebar-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem;table-layout:fixed}
.hc-rebar-table th{padding:8px 7px;text-align:left;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:#64748b;background:#f8fafc;border-bottom:1px solid var(--line,#dce3ea)}
.hc-rebar-table td{padding:7px;vertical-align:middle;border-bottom:1px solid #edf1f4;min-width:0}
.hc-rebar-table tbody:last-child tr:last-child td{border-bottom:0}
.hc-rebar-table tbody.is-active td{background:#fbfffc}
.hc-rebar-table td strong{display:block;font-size:.8rem;line-height:1.2}
.hc-rebar-table td small{display:block;color:#64748b;font-size:.65rem;line-height:1.25;margin-top:3px}
.hc-rebar-table .input,.hc-rebar-table .select{min-width:0;width:100%;height:34px;padding:6px 8px;font-size:.78rem}
.hc-rebar-table td:first-child,.hc-rebar-table th:first-child{text-align:center;width:54px}
.hc-rebar-table td:last-child,.hc-rebar-table th:last-child{text-align:center;width:82px}
.hc-rebar-table details.hc-table-details{position:relative;border:0;background:transparent;margin:0;padding:0}
.hc-rebar-table details.hc-table-details>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9e1e8;border-radius:8px;padding:6px 10px;background:#fff;font-weight:700;font-size:.72rem;color:#26364a}
.hc-rebar-table details.hc-table-details>summary::-webkit-details-marker{display:none}
.hc-rebar-table details.hc-table-details[open]>summary{background:#eef7f1;border-color:#b7dfc5}
.hc-table-detail-sheet{position:fixed;z-index:1200;left:50%;top:50%;transform:translate(-50%,-50%);width:min(820px,calc(100vw - 40px));max-height:min(720px,calc(100vh - 56px));overflow:auto;background:#fff;border:1px solid #d7e2da;border-radius:16px;padding:18px;box-shadow:0 24px 70px rgba(15,23,42,.28);text-align:left}
.hc-table-detail-sheet:before{content:"Detail teknis";display:block;font-weight:800;font-size:.92rem;margin-bottom:12px;color:#182433}
.hc-table-detail-grid{display:grid;gap:14px}
.hc-cover-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 12px}
.hc-cover-table{display:grid;grid-template-columns:repeat(3,minmax(120px,180px));gap:10px;flex:1}
.hc-cover-table label{display:grid;gap:4px}
.hc-cover-table label>span{font-size:.68rem;font-weight:700;color:#475569}
.hc04-long-table th:nth-child(2){width:170px}.hc04-long-table th:nth-child(6){width:180px}
.hc04-stirrup-table th:nth-child(2){width:150px}.hc04-stirrup-table th:nth-child(7){width:100px}
.hc04-extra-table th:first-child{width:44px}.hc04-extra-table th:last-child{width:86px}

@media (max-width:760px){
  .hc-rebar-table-wrap{border:0;background:transparent}
  .hc-rebar-table,.hc-rebar-table thead,.hc-rebar-table tbody,.hc-rebar-table tr,.hc-rebar-table th,.hc-rebar-table td{display:block;width:100%!important}
  .hc-rebar-table thead{display:none}
  .hc-rebar-table tbody{margin-bottom:10px;border:1px solid #dce3ea;border-radius:12px;background:#fff;overflow:hidden}
  .hc-rebar-table td{display:grid;grid-template-columns:minmax(92px,34%) 1fr;gap:8px;align-items:center;padding:8px 10px;text-align:left!important;border-bottom:1px solid #edf1f4}
  .hc-rebar-table td:before{content:attr(data-label);font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:#64748b}
  .hc-rebar-table td:last-child{border-bottom:0}
  .hc-rebar-table td .input,.hc-rebar-table td .select{height:36px}
  .hc-cover-strip{display:block}.hc-cover-strip>.fp-enable{margin-bottom:10px}
  .hc-cover-table{grid-template-columns:1fr 1fr}
  .hc-table-detail-sheet{width:calc(100vw - 20px);max-height:calc(100vh - 24px);padding:14px;border-radius:14px}
}
.hc-table-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid #e7edf1}
.hc-table-detail-head>strong{font-size:.9rem}

/* HC detail editor — Bagian 3: compact technical-sheet inputs */
.hc-sheet-block{margin:7px 0}
.hc-sheet-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 5px;padding:0 2px}
.hc-sheet-title strong{font-size:9px;letter-spacing:.035em;color:#315a4a}
.hc-sheet-title small{font-size:7.8px;color:#728078;text-align:right;line-height:1.3}
.hc-param-table td,.hc-output-table td{vertical-align:middle}
.hc-param-table td strong,.hc-output-table td strong{font-size:.82rem;color:#244c3c}
.hc-param-table input[type="checkbox"]{width:17px;height:17px;accent-color:#27795a}
.hc-param-table td:first-child,.hc-param-table th:first-child{width:auto;text-align:left}
.hc-param-table td:last-child,.hc-param-table th:last-child{width:auto;text-align:left}
.hc-output-table td:first-child,.hc-output-table th:first-child,.hc-output-table td:last-child,.hc-output-table th:last-child{width:auto;text-align:left}
.hc-table-mode .fp-stage{margin-top:8px}
.hc-table-mode .fp-stage-title{margin-bottom:5px}
.hc04-progressive .hc-sheet-block:first-child{margin-top:0}

@media(max-width:820px){
  .hc-sheet-title{align-items:flex-start;flex-direction:column;gap:2px}
  .hc-sheet-title small{text-align:left}
}

/* v1.1.80 — HC Detail Table Redesign finishing */
.hc-table-mode{--hc-row-h:32px}
.hc-table-mode .ve2-rebar-title{align-items:center;margin-bottom:5px;padding:4px 1px}
.hc-table-mode .ve2-rebar-title strong{font-size:10px}
.hc-table-mode .ve2-rebar-title small{margin-top:1px;font-size:8px;line-height:1.25}
.hc-table-mode .hc-rebar-table-wrap{border-radius:9px;box-shadow:none}
.hc-table-mode .hc-rebar-table{font-size:.76rem}
.hc-table-mode .hc-rebar-table th{padding:5px 6px;font-size:.61rem;letter-spacing:.025em;white-space:normal;line-height:1.15}
.hc-table-mode .hc-rebar-table td{padding:5px 6px;line-height:1.2}
.hc-table-mode .hc-rebar-table td strong{font-size:.75rem}
.hc-table-mode .hc-rebar-table td small{font-size:.61rem;line-height:1.2;margin-top:2px}
.hc-table-mode .hc-rebar-table .input,.hc-table-mode .hc-rebar-table .select{height:30px;min-height:30px;padding:4px 6px;font-size:.73rem;border-radius:7px}
.hc-table-mode .hc-sheet-block{margin:5px 0}
.hc-table-mode .hc-sheet-title{margin-bottom:4px}
.hc-table-mode .fp-stage{margin-top:6px;padding-top:0}
.hc-table-mode .fp-stage+.fp-stage{margin-top:6px;padding-top:6px}
.hc-table-mode .fp-stage-title{margin-bottom:4px}
.hc-table-mode .fp-bbs{margin-top:6px!important}
.hc04-progressive.hc-table-mode .hc04-step-tabs{margin:5px 0 6px}
.hc04-progressive.hc-table-mode .hc04-step-tabs button{min-height:28px;padding:4px 6px}
.ve2-geometry-table-head{padding:6px 8px}
.ve2-geometry-table th{padding:4px;font-size:7.4px}
.ve2-geometry-table td{padding:3px 4px}
.ve2-geometry-table .input,.ve2-geometry-table .select{min-height:27px;height:27px;padding:3px 5px;font-size:9.5px}
.ve2-geometry-detail{padding:6px 7px 8px}
.ve2-geometry-detail-head{margin-bottom:5px;padding:5px 7px}
.hc-table-details[open]::before{content:"";position:fixed;inset:0;z-index:1190;background:rgba(15,23,42,.28);backdrop-filter:blur(1px)}
.hc-table-detail-sheet{z-index:1200;width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:14px;border-radius:14px}
.hc-table-detail-sheet:before{display:none}
.hc-table-detail-head{position:sticky;top:-14px;z-index:3;margin:-14px -14px 10px;padding:11px 14px 9px;background:#fff;border-radius:14px 14px 0 0}
.hc-table-detail-grid{gap:9px}
@media(max-width:820px){
  .hc-table-mode .hc-rebar-table td{grid-template-columns:minmax(88px,37%) minmax(0,1fr);padding:6px 8px;gap:7px}
  .hc-table-mode .hc-rebar-table td:before{font-size:.59rem;line-height:1.2}
  .hc-table-mode .hc-rebar-table td .input,.hc-table-mode .hc-rebar-table td .select{height:32px;min-height:32px}
  .hc-table-detail-sheet{width:calc(100vw - 12px);max-height:calc(100vh - 12px);padding:12px;border-radius:12px}
  .hc-table-detail-head{top:-12px;margin:-12px -12px 8px;padding:10px 12px 8px;border-radius:12px 12px 0 0}
  .ve2-geometry-table tr.ve2-geometry-main-row{gap:4px;padding:6px}
  .ve2-geometry-detail{padding:6px}
}
@media(max-width:430px){
  .hc-table-mode .hc-rebar-table td{grid-template-columns:1fr;gap:3px}
  .hc-table-mode .hc-rebar-table td:before{margin-bottom:0}
  .hc-table-mode .hc-rebar-table tbody{margin-bottom:7px}
  .ve2-geometry-table tr.ve2-geometry-main-row{grid-template-columns:1fr}
  .ve2-geometry-table .geo-sign{max-width:none}
}

/* v1.1.80 — simple Volume multi-row workspace */
.ve2-ws-multi-calc{display:grid;gap:8px;min-width:0}
.ve2-ws-multi-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ve2-ws-multi-head>div{display:grid;gap:2px}.ve2-ws-multi-head small{opacity:.72}
.ve2-ws-multi-scroll{overflow-x:auto;max-width:100%}
.ve2-ws-multi-table{width:100%;border-collapse:collapse;min-width:760px}
.ve2-ws-multi-table th,.ve2-ws-multi-table td{padding:6px;border-bottom:1px solid var(--line,#e5e7eb);vertical-align:top;text-align:left}
.ve2-ws-multi-table th{font-size:11px;white-space:nowrap;opacity:.72}
.ve2-ws-multi-table td:nth-child(2),.ve2-ws-multi-table th:nth-child(2),.ve2-ws-multi-table td:nth-child(5),.ve2-ws-multi-table th:nth-child(5),.ve2-ws-multi-table td:nth-child(7),.ve2-ws-multi-table th:nth-child(7){width:1%;white-space:nowrap}
.ve2-ws-multi-table .ve2-ws-inline-dims{display:grid;grid-template-columns:repeat(2,minmax(96px,1fr));gap:6px}
.ve2-ws-multi-table label{display:grid;gap:3px}.ve2-ws-multi-table label span{font-size:10px;opacity:.7}
.ve2-ws-inline-total{display:grid;gap:3px}.ve2-ws-inline-total span{font-size:11px;opacity:.7}.ve2-ws-inline-total strong{white-space:nowrap}
@media(max-width:720px){
 .ve2-ws-multi-scroll{overflow:visible}.ve2-ws-multi-table{min-width:0;display:block}.ve2-ws-multi-table thead{display:none}.ve2-ws-multi-table tbody,.ve2-ws-multi-table tr{display:block}.ve2-ws-multi-table tbody{border:1px solid var(--line,#e5e7eb);border-radius:10px;margin-bottom:8px;padding:6px}.ve2-ws-multi-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;border:0;padding:4px}.ve2-ws-multi-table td:before{content:attr(data-label);font-size:10px;font-weight:700;opacity:.65;padding-top:8px}.ve2-ws-multi-table .ve2-ws-inline-dims{grid-template-columns:1fr 1fr}
}

/* v1.1.90 — V-04 Quantity unit selector */
.ve2-output-unit-editor{display:flex;align-items:center;gap:6px;min-width:0}
.ve2-output-unit-editor>span{font-size:9px;font-weight:800;color:#64748b;white-space:nowrap}
.ve2-output-unit-editor>.input{width:88px;min-width:72px;height:29px;min-height:29px;padding:4px 7px;font-size:10px}
.ve2-ws-inline-row .ve2-output-unit-editor{margin-bottom:5px;justify-content:flex-start}
@media(max-width:760px){.ve2-mode-head .ve2-output-unit-editor{width:auto}.ve2-output-unit-editor>.input{width:84px}}

/* v1.1.100 — V-16 ongoing UI catch-up · Bagian 1 (V-00 s.d. V-05) */
.ve2-hero{padding:12px 14px;border-radius:13px;align-items:center}
.ve2-hero h2{font-size:16px;margin:2px 0 3px}
.ve2-hero p{max-width:760px;font-size:9.5px;line-height:1.4}
.ve2-hero .material-lock-note{margin-top:6px;padding:5px 7px;font-size:8.5px}
.ve2-hero .volume-stats>div{min-width:72px;padding:6px 8px;border-radius:8px}
.ve2-hero .volume-stats span{font-size:7.7px}.ve2-hero .volume-stats strong{margin-top:1px;font-size:13px}
.volume-list-searchbar{margin:7px 0;padding:5px 7px;border-radius:9px}.volume-list-searchbar .input{height:29px;min-height:29px;font-size:10.5px}
.ve2-workspace-table-wrap{margin-top:6px;border-radius:11px;overflow:hidden}
.ve2-workspace-table{min-width:0;table-layout:fixed;font-size:10px}
.ve2-workspace-table th{padding:6px 7px;font-size:7.8px}.ve2-workspace-table td{padding:6px 7px}
.ve2-workspace-table th:nth-child(1){width:38px}.ve2-workspace-table th:nth-child(2){width:17%}.ve2-workspace-table th:nth-child(3){width:16%}.ve2-workspace-table th:nth-child(4){width:29%}.ve2-workspace-table th:nth-child(5){width:23%}.ve2-workspace-table th:nth-child(6){width:142px}
.ve2-ws-group-head{padding:6px 8px}.ve2-ws-group-head strong{font-size:11px}.ve2-ws-group-head small{font-size:8.5px}
.ve2-ws-template{max-width:none}.ve2-ws-input-summary{max-width:none}.ve2-ws-output-chips{gap:3px}.ve2-ws-chip{padding:2px 5px;font-size:8px}
.ve2-ws-inline-row>td{padding:0!important;background:#f7fafc!important;border-bottom:2px solid #c9d7e7!important}
.ve2-ws-editor-shell{display:grid;gap:7px;padding:8px}
.ve2-ws-editor-head{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.72fr) minmax(220px,1.35fr) minmax(128px,.62fr) auto;gap:7px;align-items:end;padding:7px;border:1px solid #d9e3ed;border-radius:9px;background:#fff}
.ve2-ws-editor-field{display:grid;gap:3px;min-width:0}.ve2-ws-editor-field>span{font-size:7.5px;font-weight:850;letter-spacing:.03em;text-transform:uppercase;color:#64748b}
.ve2-ws-editor-field>.input,.ve2-ws-editor-field>.select{height:29px;min-height:29px;padding:4px 7px;font-size:10px}
.ve2-ws-editor-template-field small{display:block;min-height:20px;margin:0;color:#718096;font-size:7.6px;line-height:1.25}
.ve2-ws-editor-result{display:flex;flex-direction:column;justify-content:center;min-height:49px;padding:6px 8px;border:1px solid #d9e8e1;border-radius:8px;background:#f6fbf8}
.ve2-ws-editor-result .ve2-ws-inline-total{gap:1px}.ve2-ws-editor-result .ve2-ws-inline-total span{font-size:8px}.ve2-ws-editor-result .ve2-ws-inline-total strong{font-size:12px;color:#1f513d}
.ve2-ws-editor-result .ve2-output-unit-editor{margin:0 0 4px}.ve2-ws-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;padding-bottom:1px}.ve2-ws-editor-actions .btn{white-space:nowrap}
.ve2-ws-editor-body{min-width:0;padding:0 1px}
.ve2-ws-multi-calc{gap:5px}.ve2-ws-multi-head{padding:0 1px}.ve2-ws-multi-head strong{font-size:10px}.ve2-ws-multi-head small{font-size:8px;color:#6b7788}
.ve2-ws-multi-table{min-width:680px;table-layout:fixed;border:1px solid #dbe4ed;border-radius:8px;overflow:hidden;background:#fff}
.ve2-ws-multi-table th,.ve2-ws-multi-table td{padding:5px}.ve2-ws-multi-table th{font-size:8px;background:#edf3f8;opacity:1;color:#5a6879}
.ve2-ws-multi-table th:nth-child(1){width:15%}.ve2-ws-multi-table th:nth-child(2){width:50px}.ve2-ws-multi-table th:nth-child(3){width:19%}.ve2-ws-multi-table th:nth-last-child(1){width:44px}
.ve2-ws-multi-table .input,.ve2-ws-multi-table .select{height:28px;min-height:28px;padding:3px 6px;font-size:9.5px}.ve2-ws-multi-table label span{font-size:7.4px;font-weight:800;color:#65758a}
.ve2-ws-multi-table [data-vir-result]{display:inline-block;padding-top:6px;font-size:9px;white-space:nowrap;color:#244c3c}
.ve2-ws-hc-inline{min-height:34px;padding:6px 7px}.ve2-ws-hc-output{min-height:26px}

@media(max-width:1050px){
  .ve2-ws-editor-head{grid-template-columns:1fr .7fr 1.25fr minmax(120px,.65fr)}
  .ve2-ws-editor-actions{grid-column:1/-1;padding-top:1px}
  .ve2-workspace-table th:nth-child(4){width:26%}.ve2-workspace-table th:nth-child(5){width:21%}
}
@media(max-width:760px){
  .ve2-hero{padding:10px}.ve2-hero .volume-stats{width:100%}
  .ve2-workspace-table-wrap{overflow:visible;border:0;background:transparent;margin:6px 0 0}
  .ve2-workspace-table{display:block;min-width:0}.ve2-workspace-table thead{display:none}.ve2-workspace-table tbody{display:block}
  .ve2-ws-group-row,.ve2-ws-work-row,.ve2-ws-inline-row{display:block;width:100%}
  .ve2-ws-group-row{margin-top:8px}.ve2-ws-group-row:first-child{margin-top:0}.ve2-ws-group-row td{display:block;width:100%!important;border:1px solid #d9e1ea!important;border-radius:10px!important;overflow:hidden}
  .ve2-ws-group-head{align-items:flex-start}.ve2-ws-group-head>div:first-child{flex-wrap:wrap}.ve2-ws-group-head .toolbar{margin-left:auto}
  .ve2-ws-work-row{margin:6px 0;border:1px solid #dce4ed;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.03)}
  .ve2-ws-work-row td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:7px;align-items:start;width:auto!important;padding:6px 8px!important;border-bottom:1px solid #edf1f5!important;text-align:left!important;background:#fff!important}
  .ve2-ws-work-row td::before{content:attr(data-label);padding-top:1px;font-size:7.5px;font-weight:850;letter-spacing:.03em;text-transform:uppercase;color:#718096}
  .ve2-ws-work-row td:first-child{display:none}.ve2-ws-work-row td:last-child{border-bottom:0!important}.ve2-ws-work-row td:last-child .toolbar{justify-content:flex-end}
  .ve2-ws-name strong{font-size:11.5px}.ve2-ws-template,.ve2-ws-input-summary{font-size:9.2px}.ve2-ws-output-chips{padding-top:0}
  .ve2-ws-inline-row{margin:6px 0}.ve2-ws-inline-row>td{display:block!important;width:100%!important;border:0!important;background:transparent!important}
  .ve2-ws-editor-shell{padding:0;gap:6px}.ve2-ws-editor-head{grid-template-columns:1fr 1fr;padding:7px;gap:6px}.ve2-ws-editor-name,.ve2-ws-editor-template-field,.ve2-ws-editor-result,.ve2-ws-editor-actions{grid-column:1/-1}.ve2-ws-editor-template-field small{min-height:0}.ve2-ws-editor-actions{justify-content:stretch}.ve2-ws-editor-actions .btn{flex:1}
  .ve2-ws-editor-body{padding:0}.ve2-ws-multi-scroll{overflow:visible}.ve2-ws-multi-table{min-width:0;border:0;background:transparent}
}
@media(max-width:430px){
  .ve2-ws-editor-head{grid-template-columns:1fr}.ve2-ws-editor-area{grid-column:1}.ve2-ws-work-row td{grid-template-columns:78px minmax(0,1fr)}
  .ve2-ws-group-head{display:grid;grid-template-columns:1fr}.ve2-ws-group-head .toolbar{margin-left:0;justify-content:flex-start}
}


/* v1.1.101 — V-16 UI Catch-up BAGIAN 2: spreadsheet-first configuration + sections */
.ve2-config-sheet{width:100%;border:1px solid #cfd9e4;background:#fff;overflow:hidden}
.ve2-config-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
.ve2-config-table th{padding:5px 7px;border-right:1px solid #d8e1ea;border-bottom:1px solid #cfd9e4;background:#edf3f8;color:#526276;font-size:7.8px;font-weight:900;letter-spacing:.035em;text-transform:uppercase;text-align:left;line-height:1.15}
.ve2-config-table th:last-child{border-right:0}.ve2-config-table td{padding:0;border-right:1px solid #d8e1ea;border-bottom:0;vertical-align:middle;background:#fff}.ve2-config-table td:last-child{border-right:0}
.ve2-config-table .input,.ve2-config-table .select{width:100%;height:32px;min-height:32px;margin:0;padding:4px 7px;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important;font-size:10px}
.ve2-config-table .input:focus,.ve2-config-table .select:focus,.ve2-sheet-table .input:focus,.ve2-sheet-table .select:focus,.ve2-geometry-table .input:focus,.ve2-geometry-table .select:focus,.hc-table-mode .hc-rebar-table .input:focus,.hc-table-mode .hc-rebar-table .select:focus{position:relative;z-index:2;outline:2px solid #53789f;outline-offset:-2px;box-shadow:none!important}
.ve2-config-note{padding:4px 7px;border-top:1px solid #e2e8ef;background:#f8fafc;color:#6b7788;font-size:7.8px;line-height:1.3}.ve2-config-note b{color:#45566a}
.ve2-work-inline-config .ve2-config-table th:nth-child(1){width:20%}.ve2-work-inline-config .ve2-config-table th:nth-child(2){width:14%}.ve2-work-inline-config .ve2-config-table th:nth-child(3){width:30%}.ve2-work-inline-config .ve2-config-table th:nth-child(4){width:20%}.ve2-work-inline-config .ve2-config-table th:nth-child(5){width:16%}
.ve2-work-modal-config .ve2-config-table th:nth-child(1){width:31%}.ve2-work-modal-config .ve2-config-table th:nth-child(2){width:23%}.ve2-work-modal-config .ve2-config-table th:nth-child(3){width:46%}
.ve2-group-config-sheet .ve2-config-table th:first-child{width:48%}.ve2-group-config-sheet .ve2-config-table th:last-child{width:52%}
.ve2-config-output{padding:0 6px!important}.ve2-config-output .ve2-ws-inline-total{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:5px}.ve2-config-output .ve2-ws-inline-total span{font-size:7.6px;color:#64748b}.ve2-config-output .ve2-ws-inline-total strong{font-size:11px;color:#244c3c;white-space:nowrap}
.ve2-config-output .ve2-output-unit-editor{height:24px;margin:1px 0;border-bottom:1px solid #e5ebf1}.ve2-config-output .ve2-output-unit-editor>span{display:none}.ve2-config-output .ve2-output-unit-editor>.input{height:23px;min-height:23px;padding:2px 0;font-size:8.5px}
.ve2-config-actions{padding:3px 5px!important;white-space:nowrap}.ve2-config-actions .btn{min-height:27px;padding:3px 7px;margin:1px;font-size:8.5px}

.ve2-ws-multi-table.ve2-sheet-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:auto;border:1px solid #cfd9e4;border-radius:0;overflow:visible}
.ve2-ws-multi-table.ve2-sheet-table th{padding:5px 6px;border:1px solid #cfd9e4;background:#edf3f8;color:#526276;font-size:7.6px;font-weight:900;letter-spacing:.025em;text-transform:uppercase;white-space:normal;line-height:1.15}
.ve2-ws-multi-table.ve2-sheet-table td{height:33px;padding:0;border:1px solid #dce4ec;background:#fff;vertical-align:middle}
.ve2-ws-multi-table.ve2-sheet-table .input,.ve2-ws-multi-table.ve2-sheet-table .select{width:100%;height:32px;min-height:32px;margin:0;padding:4px 6px;border:0!important;border-radius:0!important;background:transparent;box-shadow:none!important;font-size:9.5px}
.ve2-ws-multi-table.ve2-sheet-table .col-section{min-width:130px}.ve2-ws-multi-table.ve2-sheet-table .col-sign{width:46px;min-width:46px}.ve2-ws-multi-table.ve2-sheet-table .col-method{min-width:170px}.ve2-ws-multi-table.ve2-sheet-table .col-param{min-width:92px}.ve2-ws-multi-table.ve2-sheet-table .col-qty{width:74px;min-width:74px}.ve2-ws-multi-table.ve2-sheet-table .col-result{width:100px;min-width:100px}.ve2-ws-multi-table.ve2-sheet-table .col-action{width:42px;min-width:42px;text-align:center}
.ve2-ws-multi-table.ve2-sheet-table [data-vir-result]{display:block;padding:0 6px;font-size:9px;line-height:32px;white-space:nowrap;color:#244c3c}.ve2-ws-multi-table.ve2-sheet-table .ve2-cell-na{display:block;text-align:center;color:#a3adb8;font-size:10px}
.ve2-ws-multi-table.ve2-sheet-table .col-action .btn{min-width:28px;height:27px;min-height:27px;margin:0;padding:2px 6px}
.ve2-ws-multi-head{align-items:end}.ve2-ws-multi-head>div{min-width:0}

/* Structure + V-06: primary technical input also behaves like a sheet. Advanced conditional details remain collapsible. */
.ve2-geometry-table{border-collapse:collapse!important;border-spacing:0!important}.ve2-geometry-table th,.ve2-geometry-table td{border:1px solid #d7e0e9!important}.ve2-geometry-table .input,.ve2-geometry-table .select{height:30px!important;min-height:30px!important;margin:0;padding:3px 5px;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important}
.hc-table-mode .hc-rebar-table{border-collapse:collapse;border-spacing:0}.hc-table-mode .hc-rebar-table th,.hc-table-mode .hc-rebar-table td{border:1px solid #dbe4e9!important}.hc-table-mode .hc-rebar-table .input,.hc-table-mode .hc-rebar-table .select{height:30px;min-height:30px;margin:0;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important}
.hc-table-mode .hc-rebar-table-wrap{border-radius:0}.hc-sheet-block{border-radius:0!important}.ve2-geometry-table-wrap{border-radius:0}

@media(max-width:760px){
  .ve2-config-sheet{border:0;background:transparent;overflow:visible}.ve2-config-table,.ve2-config-table thead,.ve2-config-table tbody,.ve2-config-table tr,.ve2-config-table th,.ve2-config-table td{display:block;width:100%!important}.ve2-config-table thead{display:none}.ve2-config-table tr{border:1px solid #d7e0e9;background:#fff}.ve2-config-table td{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;border-right:0;border-bottom:1px solid #e7edf2;padding:0}.ve2-config-table td:last-child{border-bottom:0}.ve2-config-table td:before{content:attr(data-label);padding:6px 7px;font-size:7.5px;font-weight:900;letter-spacing:.025em;text-transform:uppercase;color:#66768a}.ve2-config-table .input,.ve2-config-table .select{border-left:1px solid #e7edf2!important}.ve2-config-note{border:1px solid #d7e0e9;border-top:0}
  .ve2-config-actions{display:flex!important;grid-template-columns:none!important;justify-content:flex-end;padding:4px!important}.ve2-config-actions:before{align-self:center}.ve2-config-actions .btn{flex:0 0 auto}
  .ve2-config-output{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;padding:0!important}.ve2-config-output>div,.ve2-config-output>span{margin:0 6px}
  .ve2-ws-multi-table.ve2-sheet-table{min-width:0;display:block;border:0}.ve2-ws-multi-table.ve2-sheet-table thead{display:none}.ve2-ws-multi-table.ve2-sheet-table tbody{display:block;border:1px solid #d7e0e9;margin-bottom:7px}.ve2-ws-multi-table.ve2-sheet-table tr{display:block}.ve2-ws-multi-table.ve2-sheet-table td{display:grid;width:100%!important;min-width:0!important;grid-template-columns:92px minmax(0,1fr);align-items:center;height:auto;min-height:34px;border:0!important;border-bottom:1px solid #e7edf2!important}.ve2-ws-multi-table.ve2-sheet-table td:last-child{border-bottom:0!important}.ve2-ws-multi-table.ve2-sheet-table td:before{content:attr(data-label);padding:5px 6px;font-size:7.4px;font-weight:900;color:#69798c;text-transform:uppercase}.ve2-ws-multi-table.ve2-sheet-table .input,.ve2-ws-multi-table.ve2-sheet-table .select{border-left:1px solid #e7edf2!important}.ve2-ws-multi-table.ve2-sheet-table [data-vir-result]{line-height:30px;border-left:1px solid #e7edf2;padding-left:6px}.ve2-ws-multi-table.ve2-sheet-table .ve2-cell-na{line-height:30px;border-left:1px solid #e7edf2}
}

/* v1.1.102 — Draft Pekerjaan -> Detail/Hitung Volume */
.ve2-work-meta-sheet .ve2-config-table th:first-child{width:58%}.ve2-work-meta-sheet .ve2-config-table th:last-child{width:42%}
.ve2-readonly-cell{padding:7px 8px!important;font-size:10px;color:#243244;background:#f8fafc!important}.ve2-readonly-cell strong{font-size:10.2px}
.ve2-ws-draft-label,.ve2-ws-input-summary.is-draft{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border:1px dashed #b9c5d2;background:#f8fafc;color:#6b7788;font-size:8.8px;font-weight:800}
.ve2-ws-work-row.is-draft td{background:#fbfcfd}.ve2-ws-work-row.is-draft .ve2-ws-output-chips .muted{font-style:normal;color:#788596}
.volume-calc-modal .ve2-modal-sheet-calc{margin-top:5px}.volume-calc-modal .ve2-modal-sheet-calc .ve2-ws-multi-scroll{overflow:auto}.volume-calc-modal .ve2-modal-sheet-calc .ve2-ws-multi-table{min-width:700px}
.volume-calc-modal .ve2-sheet-total-footer{justify-content:flex-end}.volume-calc-modal .ve2-sheet-total-footer>div{display:flex;align-items:center;gap:8px}.volume-calc-modal .ve2-sheet-total-footer span{font-size:8px;color:#65758a}.volume-calc-modal .ve2-sheet-total-footer strong{font-size:12px;color:#244c3c}
@media(max-width:760px){.volume-calc-modal .ve2-modal-sheet-calc .ve2-ws-multi-table{min-width:0}.ve2-work-meta-sheet .ve2-config-table th:first-child,.ve2-work-meta-sheet .ve2-config-table th:last-child{width:100%}}
/* v1.1.104 — V-16 hotfix: keep all Work row actions visible */
.ve2-workspace-table th:nth-child(2){width:16%}
.ve2-workspace-table th:nth-child(3){width:15%}
.ve2-workspace-table th:nth-child(4){width:25%}
.ve2-workspace-table th:nth-child(5){width:21%}
.ve2-workspace-table th:nth-child(6){width:210px}
.ve2-ws-work-row td:last-child .toolbar{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:4px;min-width:0}
.ve2-ws-work-row td:last-child .btn{flex:0 0 auto;padding-left:7px;padding-right:7px}
@media(max-width:1050px) and (min-width:761px){
  .ve2-workspace-table th:nth-child(2){width:15%}
  .ve2-workspace-table th:nth-child(3){width:14%}
  .ve2-workspace-table th:nth-child(4){width:24%}
  .ve2-workspace-table th:nth-child(5){width:18%}
  .ve2-workspace-table th:nth-child(6){width:188px}
  .ve2-ws-work-row td:last-child .toolbar{flex-wrap:wrap}
}


/* v1.1.110 — local numbering + explicit reorder controls */
.ve2-order-pair{display:inline-flex;align-items:center;gap:3px}
.ve2-order-btn{min-width:30px;padding-inline:7px}
.ve2-local-order{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.ve2-local-order>strong{min-width:12px;text-align:center}
.ve2-order-mini{width:22px;height:22px;padding:0;border:1px solid #d6dee8;border-radius:6px;background:#fff;color:#344256;font:700 11px/1 system-ui;cursor:pointer}
.ve2-order-mini:hover:not(:disabled){background:#eef3f8}
.ve2-order-mini:disabled,.ve2-order-btn:disabled{opacity:.32;cursor:default}
@media(max-width:760px){.ve2-local-order{justify-content:flex-start}.ve2-order-mini{width:26px;height:26px}.ve2-ws-group-head .ve2-order-pair{order:-1}}

/* v1.1.114 — detail popup content standardized as flat technical tables */
.hc-detail-param-block{display:grid;gap:5px}
.hc-detail-param-title{display:flex;align-items:center;justify-content:space-between;padding:0 2px}
.hc-detail-param-title strong{font-size:.74rem;color:#315a4a;letter-spacing:.02em}
.hc-detail-param-note{display:block;padding:0 2px;color:#708077;font-size:.66rem;line-height:1.35}
.hc-detail-param-table th{font-size:.64rem}
.hc-detail-param-table td{vertical-align:top}
.hc-detail-param-table td small{margin-top:4px;color:#708077;font-size:.62rem;line-height:1.25}
.hc04-tech-body>.hc-detail-param-block:first-child{margin-top:0}

/* v1.1.118 — Volume Workspace UI cleanup */
.ve2-hero{padding:9px 11px;gap:12px;min-height:0}
.ve2-hero-main{min-width:0;display:grid;gap:2px}
.ve2-hero-title-line{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.ve2-hero-title-line .home-kicker{margin:0;font-size:7.4px;letter-spacing:.09em;white-space:nowrap}
.ve2-hero-title-line h2{margin:0;font-size:15px;line-height:1.15}
.ve2-lock-badge{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border:1px solid #e4e8ed;border-radius:999px;background:#f8fafc;color:#64748b;font-size:7.8px;font-weight:850;white-space:nowrap}
.ve2-hero p{margin:0;max-width:none;font-size:8.8px;line-height:1.3;color:#667487}
.ve2-hero .volume-stats{display:flex;gap:4px;width:auto}
.ve2-hero .volume-stats>div{display:flex;align-items:center;gap:5px;min-width:0;padding:4px 7px;border-radius:7px;background:#f8fafc;white-space:nowrap}
.ve2-hero .volume-stats span{display:inline;font-size:7.3px}.ve2-hero .volume-stats strong{display:inline;margin:0;font-size:11px;line-height:1}
.volume-list-searchbar{margin:5px 0;padding:4px 6px}.volume-list-searchbar .input{height:28px;min-height:28px}
.ve2-workspace-table-wrap{margin-top:5px}
.ve2-workspace-table th:nth-child(1){width:60px}
.ve2-workspace-table th:nth-child(2){width:17%}
.ve2-workspace-table th:nth-child(3){width:15%}
.ve2-workspace-table th:nth-child(4){width:27%}
.ve2-workspace-table th:nth-child(5){width:21%}
.ve2-workspace-table th:nth-child(6){width:188px}
.ve2-local-order{gap:3px}
.ve2-local-order>strong{min-width:11px;font-size:9px;color:#59687a}
.ve2-order-mini{width:18px;height:18px;border-radius:5px;font-size:9px}
.ve2-ws-group-row td{border-top:1px solid #cfd9e4!important}
.ve2-ws-group-row:first-child td{border-top:0!important}
.ve2-ws-group-head{padding:5px 7px;background:#f4f7fb}
.ve2-ws-group-head>div:first-child{gap:6px}.ve2-ws-group-head strong{font-size:10.8px}.ve2-ws-group-head small{font-size:8px}
.ve2-ws-name-line{display:flex;align-items:center;gap:5px;min-width:0}.ve2-ws-name-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ve2-ws-edit-mark{flex:0 0 auto;color:#9aa6b2;font-size:8px;opacity:.7}.ve2-ws-name:hover .ve2-ws-edit-mark{color:#4f6f91;opacity:1}
.ve2-ws-template{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.25}
.ve2-ws-input-summary:not(.is-draft){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.28}
.ve2-ws-chip{padding:2px 5px;font-size:7.8px}
.ve2-ws-work-row td:last-child .toolbar{gap:3px}.ve2-ws-work-row td:last-child .btn{min-height:27px;padding:3px 6px;font-size:8.6px}

@media(max-width:1050px) and (min-width:761px){
  .ve2-workspace-table th:nth-child(1){width:56px}
  .ve2-workspace-table th:nth-child(2){width:17%}
  .ve2-workspace-table th:nth-child(3){width:14%}
  .ve2-workspace-table th:nth-child(4){width:25%}
  .ve2-workspace-table th:nth-child(5){width:19%}
  .ve2-workspace-table th:nth-child(6){width:174px}
  .ve2-ws-work-row td:last-child .toolbar{flex-wrap:wrap;justify-content:flex-end}
}
@media(max-width:760px){
  .ve2-hero{display:grid;grid-template-columns:1fr;padding:8px 9px;gap:6px}
  .ve2-hero-title-line{gap:6px}.ve2-hero-title-line h2{font-size:14px}.ve2-hero p{font-size:8.5px}
  .ve2-hero .volume-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:4px}
  .ve2-hero .volume-stats>div{justify-content:center;padding:4px 5px}
  .ve2-ws-work-row td{grid-template-columns:82px minmax(0,1fr)}
  .ve2-ws-work-row td:last-child .toolbar{justify-content:flex-start;flex-wrap:wrap}
  .ve2-ws-work-row td:last-child .btn{min-height:29px}
}
@media(max-width:430px){
  .ve2-hero-title-line .home-kicker{width:100%}
  .ve2-ws-work-row td{grid-template-columns:72px minmax(0,1fr)}
}


/* v1.1.119 — Volume Workspace output-first layout */
.ve2-workspace-table th:nth-child(1){width:60px}
.ve2-workspace-table th:nth-child(2){width:18%}
.ve2-workspace-table th:nth-child(3){width:16%}
.ve2-workspace-table th:nth-child(4){width:auto;background:#e8f0f8;color:#3f556d}
.ve2-workspace-table th:nth-child(5){width:188px}
.ve2-ws-output-cell{background:#fbfdff!important}
.ve2-ws-output-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:4px;width:100%;align-items:stretch}
.ve2-ws-chip{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:25px;padding:4px 7px;border:1px solid #d5e1ed;border-radius:7px;background:#f5f9fd;color:#536275;font-size:8px;line-height:1.15;white-space:normal}
.ve2-ws-chip b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850;color:#25364a}
.ve2-ws-chip-value{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:750;color:#617287;white-space:nowrap;text-align:right}
.ve2-ws-output-empty{display:flex;align-items:center;min-height:25px;padding:4px 7px;border:1px dashed #d8e1ea;border-radius:7px;background:#fafcfe;color:#8190a0;font-size:8.2px;font-weight:750}
.ve2-ws-work-row.is-draft .ve2-ws-output-cell{background:#fbfcfd!important}

@media(max-width:1050px) and (min-width:761px){
  .ve2-workspace-table th:nth-child(1){width:56px}
  .ve2-workspace-table th:nth-child(2){width:18%}
  .ve2-workspace-table th:nth-child(3){width:15%}
  .ve2-workspace-table th:nth-child(4){width:auto}
  .ve2-workspace-table th:nth-child(5){width:174px}
  .ve2-ws-output-chips{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
}
@media(max-width:760px){
  .ve2-ws-work-row td[data-label="Output"]{background:#fbfdff!important}
  .ve2-ws-output-chips{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:4px}
  .ve2-ws-chip{min-height:28px;padding:5px 7px;font-size:8.4px}
  .ve2-ws-output-empty{min-height:28px}
}
@media(max-width:430px){
  .ve2-ws-output-chips{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
}
/* keep fixed-table cell widths aligned with the five-column header */
@media(min-width:761px){
  .ve2-workspace-table th:nth-child(1),.ve2-workspace-table .ve2-ws-work-row td:nth-child(1){width:60px}
  .ve2-workspace-table th:nth-child(2),.ve2-workspace-table .ve2-ws-work-row td:nth-child(2){width:18%}
  .ve2-workspace-table th:nth-child(3),.ve2-workspace-table .ve2-ws-work-row td:nth-child(3){width:16%}
  .ve2-workspace-table th:nth-child(5),.ve2-workspace-table .ve2-ws-work-row td:nth-child(5){width:188px}
}
@media(max-width:1050px) and (min-width:761px){
  .ve2-workspace-table th:nth-child(1),.ve2-workspace-table .ve2-ws-work-row td:nth-child(1){width:56px}
  .ve2-workspace-table th:nth-child(2),.ve2-workspace-table .ve2-ws-work-row td:nth-child(2){width:18%}
  .ve2-workspace-table th:nth-child(3),.ve2-workspace-table .ve2-ws-work-row td:nth-child(3){width:15%}
  .ve2-workspace-table th:nth-child(5),.ve2-workspace-table .ve2-ws-work-row td:nth-child(5){width:174px}
}

/* v1.1.121 — Operasi Volume antar Section */
.ve2-operation-sheet{display:grid;gap:7px;margin-top:5px}
.ve2-operation-head{align-items:end}
.ve2-operation-unit{display:grid;gap:3px;min-width:125px}
.ve2-operation-unit>span{font-size:7.8px;font-weight:850;color:#617085;text-transform:uppercase;letter-spacing:.03em}
.ve2-operation-unit .input{height:30px;min-height:30px;padding:4px 7px;font-size:9.5px}
.ve2-operation-unit .input:disabled{background:#f2f5f8;color:#4f5f72;opacity:1}
.ve2-operation-scroll{overflow:auto;border:1px solid #cfd9e4;background:#fff}
.ve2-operation-table{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed}
.ve2-operation-table th,.ve2-operation-table td{border-right:1px solid #d9e2eb;border-bottom:1px solid #d9e2eb;vertical-align:middle}
.ve2-operation-table th:last-child,.ve2-operation-table td:last-child{border-right:0}
.ve2-operation-table tbody:last-child td{border-bottom:0}
.ve2-operation-table th{padding:5px 6px;background:#edf3f8;color:#526276;font-size:7.7px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;text-align:left}
.ve2-operation-table th:nth-child(1){width:50px;text-align:center}.ve2-operation-table th:nth-child(2){width:auto}.ve2-operation-table th:nth-child(3){width:130px}.ve2-operation-table th:nth-child(4){width:46px;text-align:center}
.ve2-operation-table td{padding:0;background:#fff}
.ve2-operation-table .input,.ve2-operation-table .select{width:100%;height:32px;min-height:32px;margin:0;padding:4px 6px;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important;font-size:9.3px}
.ve2-operation-table .op-sign .select{text-align:center;font-weight:900}.ve2-operation-table .op-action{text-align:center}.ve2-operation-table .op-action .btn{min-width:28px;height:27px;min-height:27px;padding:2px 6px}
.ve2-operation-source-stack{display:grid;grid-template-columns:122px minmax(0,1fr);align-items:stretch}
.ve2-operation-source-stack>*+*{border-left:1px solid #e0e6ed!important}
.ve2-operation-kind{font-size:8.6px!important;font-weight:800;color:#556578!important}
.ve2-operation-source-picker{min-width:0;text-overflow:ellipsis}
.ve2-operation-manual-label{display:flex;align-items:center;padding:0 8px;color:#7a8796;font-size:8.4px;line-height:1.2;background:#fafbfd}
.ve2-operation-ref-value{display:block;padding:0 8px;font-size:9.5px;line-height:32px;color:#244c3c;font-variant-numeric:tabular-nums;white-space:nowrap}
.ve2-operation-warning{padding:6px 8px;border:1px solid #ead8aa;background:#fffaf0;color:#795f27;font-size:8.4px;line-height:1.35}
.ve2-operation-total{justify-content:flex-end}.ve2-operation-total>div{display:flex;align-items:center;gap:9px}.ve2-operation-total span{font-size:8px;color:#65758a}.ve2-operation-total strong{font-size:12px;color:#244c3c}
@media(max-width:760px){
  .ve2-operation-head{display:grid;grid-template-columns:1fr;gap:6px}.ve2-operation-unit{min-width:0;width:100%}
  .ve2-operation-scroll{overflow:visible;border:0;background:transparent}.ve2-operation-table{display:block;min-width:0}.ve2-operation-table thead{display:none}.ve2-operation-table tbody{display:block;margin:6px 0;border:1px solid #d7e0e9;border-radius:8px;overflow:hidden;background:#fff}.ve2-operation-table tr{display:block}.ve2-operation-table td{display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px;align-items:center;border-right:0!important;border-bottom:1px solid #e5ebf1!important}.ve2-operation-table td:last-child{border-bottom:0!important}.ve2-operation-table td::before{content:attr(data-label);padding-left:7px;font-size:7.4px;font-weight:850;color:#718096;text-transform:uppercase}.ve2-operation-table td>*{min-width:0}.ve2-operation-source-stack{grid-template-columns:1fr}.ve2-operation-source-stack>*+*{border-left:0!important;border-top:1px solid #e5ebf1!important}.ve2-operation-ref-value{line-height:32px}.ve2-operation-table .op-action{text-align:left}.ve2-operation-table .op-action .btn{margin:3px 0}
}

/* v1.1.123 — V-10 Plat Konvensional BAGIAN 2 */
.v10-slab-panel .ve2-rebar-title{border-color:#cfe1d8;background:#f6fbf8}
.v10-opening-table th:nth-child(1),.v10-opening-table th:nth-child(2){width:170px}
.v10-opening-table strong{white-space:nowrap}
.v10-overlap-table th:nth-child(1),.v10-overlap-table th:nth-child(2){width:180px}
.v10-rebar-table th:nth-child(1){width:130px}.v10-rebar-table th:nth-child(2),.v10-rebar-table th:nth-child(3){width:120px}.v10-rebar-table th:nth-child(4){width:120px}.v10-rebar-table th:nth-child(5){width:150px}.v10-rebar-table th:nth-child(6){width:130px}
.v10-rebar-table td small,.v10-overlap-table td small,.v10-slab-panel .hc-output-table td small{display:block;margin-top:2px;color:#748078;font-size:8px;line-height:1.25}
.v10-rebar-note{display:block;margin-top:6px;color:#65758a;font-size:8px;line-height:1.4}
@media(max-width:820px){.v10-opening-table th:nth-child(1),.v10-opening-table th:nth-child(2),.v10-overlap-table th:nth-child(1),.v10-overlap-table th:nth-child(2),.v10-rebar-table th{width:auto!important}.v10-opening-table strong{white-space:normal}.v10-rebar-note{font-size:7.8px}}

/* v1.1.125 — V-12 Tangga Beton Bertulang BAGIAN 1 */
.v12-stair-panel .ve2-rebar-title{border-color:#cfe1d8;background:#f6fbf8}
.v12-stair-panel .hc-output-table td small{display:block;margin-top:2px;color:#748078;font-size:8px;line-height:1.25}
.v12-formwork-table th{width:auto!important}
@media(max-width:820px){.v12-stair-panel .hc-output-table td small{font-size:7.8px}}

/* v1.1.126 — V-12 Tangga section-separated model */
.v12-stair-panel input[type="checkbox"]{width:16px;height:16px;accent-color:currentColor}
.v12-section-table .geo-result small{white-space:normal;line-height:1.25}

/* v1.1.127 — V-12 two-row Section layout */
.v12-section-table .geo-no{width:42px}.v12-section-table .geo-name{width:190px}.v12-section-table .geo-sign{width:54px}.v12-section-table .v12-type-cell{width:160px}.v12-section-table .geo-qty{width:82px}.v12-section-table .geo-result{width:155px}.v12-section-table .geo-actions{width:112px}
.v12-parameter-row>td{padding:0!important;background:#f8fafc!important;border-top:0!important;border-bottom:1px solid #cad5df!important}
.v12-parameter-strip{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:end;gap:10px;padding:7px 9px 8px;background:#f8fafc}
.v12-parameter-title{align-self:center;padding-right:8px;border-right:1px solid #dce4eb}.v12-parameter-title strong{display:block;font-size:8.8px;color:#42546a}.v12-parameter-title small{display:block;margin-top:2px;font-size:7.4px;color:#7a8795}
.v12-main-dims{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:7px;padding:0}.v12-main-dims.legacy{grid-template-columns:repeat(5,minmax(92px,1fr))}
.v12-main-dims label{display:grid;grid-template-rows:auto 30px;gap:3px;min-width:0}.v12-main-dims label span{font-size:7.5px;font-weight:850;color:#627286;line-height:1.15;white-space:normal}.v12-main-dims .input{width:100%!important;height:30px!important;min-height:30px!important;border:1px solid #d3dde7!important;border-radius:5px!important;background:#fff!important;padding:4px 7px!important}
.v12-section-table tbody.is-active .v12-parameter-row>td,.v12-section-table tbody.is-active .v12-parameter-strip{background:#f4faf7!important}
@media(max-width:760px){.v12-section-table .v12-type-cell{width:auto}.v12-section-table tr.v12-section-row{grid-template-columns:repeat(2,minmax(0,1fr))}.v12-section-table .geo-name,.v12-section-table .v12-type-cell,.v12-section-table .geo-result,.v12-section-table .geo-actions{grid-column:1/-1}.v12-parameter-row{display:block}.v12-parameter-row>td{display:block!important;width:auto!important}.v12-parameter-row>td::before{display:none!important}.v12-parameter-strip{grid-template-columns:1fr;gap:6px;padding:7px}.v12-parameter-title{padding:0 0 5px;border-right:0;border-bottom:1px solid #dce4eb}.v12-main-dims,.v12-main-dims.legacy{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}}
@media(max-width:430px){.v12-section-table tr.v12-section-row{grid-template-columns:1fr}.v12-section-table .geo-sign,.v12-section-table .geo-qty{max-width:none}.v12-main-dims,.v12-main-dims.legacy{grid-template-columns:1fr}}

/* v1.1.129 — V-13 Dinding: table-first multi-section + nested openings */
.v13-wall-sheet{border:1px solid #d9e2ea;border-radius:10px;overflow:hidden;background:#fff}
.v13-wall-table-wrap{overflow-x:auto}
.v13-wall-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}
.v13-wall-table th,.v13-wall-table td{border:1px solid #dce4eb;padding:5px 6px;vertical-align:middle}
.v13-wall-table thead th{background:#edf3f8;color:#4c6075;font-size:7.6px;text-transform:uppercase;letter-spacing:.025em}
.v13-wall-table th:nth-child(1){width:42px}.v13-wall-table th:nth-child(2){width:220px}.v13-wall-table th:nth-child(3){width:56px}.v13-wall-table th:nth-child(4){width:80px}.v13-wall-table th:nth-child(5){width:auto}.v13-wall-table th:nth-child(6){width:136px}
.v13-wall-main-row .input,.v13-wall-main-row .select{min-height:30px;height:30px;padding:4px 7px}
.v13-wall-table tbody[data-v13-wall-section]+tbody[data-v13-wall-section] .v13-wall-main-row>td{border-top:6px solid #aebdca}
.v13-wall-table tbody[data-v13-wall-section].is-active .v13-wall-main-row>td{background:#f4f8fb}
.v13-wall-table tbody[data-v13-wall-section].is-active .v13-wall-parameter-row>td{background:#eef5f8!important}
.v13-wall-table tbody[data-v13-wall-section].is-active .v13-wall-detail-row>td{border-bottom:3px solid #7f95a8!important}
.v13-no{text-align:center}.v13-result strong{display:block;color:#173b2e;font-size:10px}.v13-result small{display:block;margin-top:2px;color:#788693;font-size:7.3px;line-height:1.25}.v13-actions .btn+.btn{margin-left:4px}
.v13-wall-parameter-row>td{padding:0!important;background:#f8fafc!important;border-top:0!important}
.v13-wall-parameter-strip{display:grid;grid-template-columns:repeat(2,minmax(120px,1.2fr)) repeat(3,minmax(105px,1fr));gap:7px;padding:7px 8px;align-items:end}
.v13-wall-parameter-strip label,.v13-wall-parameter-strip>div{display:grid;gap:3px;min-width:0}.v13-wall-parameter-strip span{font-size:7.4px;font-weight:800;color:#617286}.v13-wall-parameter-strip .input{height:30px;min-height:30px;padding:4px 7px}.v13-wall-parameter-strip strong{min-height:30px;display:flex;align-items:center;padding:4px 7px;border:1px solid #dbe4ec;border-radius:5px;background:#fff;color:#21394c;font-size:9px}
.v13-wall-detail-row>td{padding:7px!important;background:#f4faf7!important}.v13-opening-panel{border:1px solid #cfe0d7;border-radius:8px;background:#fbfefc;overflow:hidden}.v13-opening-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 8px;border-bottom:1px solid #d9e8df}.v13-opening-head strong{display:block;font-size:9px}.v13-opening-head small{display:block;margin-top:2px;font-size:7.3px;color:#748178}.v13-opening-table-wrap{overflow-x:auto}.v13-opening-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.5px}.v13-opening-table th,.v13-opening-table td{border:1px solid #e0e7e2;padding:5px}.v13-opening-table th{background:#f0f6f2;color:#557061;font-size:7.2px;text-transform:uppercase}.v13-opening-table th:nth-child(1){width:26%}.v13-opening-table th:nth-child(2),.v13-opening-table th:nth-child(3){width:16%}.v13-opening-table th:nth-child(4){width:13%}.v13-opening-table th:nth-child(5){width:19%}.v13-opening-table th:nth-child(6){width:70px}.v13-opening-table .input{height:29px;min-height:29px;padding:4px 6px}.v13-opening-empty td{text-align:center;color:#7b8880;padding:10px}
.v13-opening-summary{display:flex;gap:8px;flex-wrap:wrap;padding:7px 8px;background:#f5faf7}.v13-opening-summary span{display:flex;gap:5px;align-items:center;font-size:7.5px;color:#68786f}.v13-opening-summary strong{font-size:8.5px;color:#1f4a36}.v13-result-strip{background:#eef8f1!important}.v13-result-strip strong{color:#17452f!important}
@media(max-width:760px){.v13-wall-table-wrap{overflow:visible}.v13-wall-table,.v13-wall-table thead,.v13-wall-table tbody,.v13-wall-table tr,.v13-wall-table td{display:block;width:100%}.v13-wall-table thead{display:none}.v13-wall-table tbody{border-bottom:8px solid #aebdca}.v13-wall-main-row{display:grid!important;grid-template-columns:54px minmax(0,1fr);gap:0}.v13-wall-main-row td{width:auto!important}.v13-wall-main-row .v13-name,.v13-wall-main-row .v13-result,.v13-wall-main-row .v13-actions{grid-column:1/-1}.v13-wall-main-row td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:7px;font-weight:800;color:#778695}.v13-wall-parameter-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.v13-wall-parameter-strip>div:last-child{grid-column:1/-1}.v13-wall-detail-row>td::before,.v13-wall-parameter-row>td::before{display:none!important}.v13-opening-table{min-width:620px}.v13-opening-table-wrap{overflow-x:auto}}
@media(max-width:430px){.v13-wall-parameter-strip{grid-template-columns:1fr}.v13-wall-parameter-strip>div:last-child{grid-column:auto}.v13-opening-summary{display:grid;grid-template-columns:1fr}.v13-opening-head{align-items:flex-start;flex-direction:column}.v13-opening-head .btn{width:100%}}

/* v1.1.132 — V-14 Finishing Dinding */
.v14-wall-finish-sheet{border:1px solid #d9e2ea;border-radius:10px;overflow:hidden;background:#fff}
.v14-table-wrap{overflow-x:auto}
.v14-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}
.v14-table th,.v14-table td{border:1px solid #dce4eb;padding:5px 6px;vertical-align:middle}
.v14-table thead th{background:#edf3f8;color:#4c6075;font-size:7.6px;text-transform:uppercase;letter-spacing:.025em}
.v14-table th:nth-child(1){width:42px}.v14-table th:nth-child(2){width:180px}.v14-table th:nth-child(3){width:56px}.v14-table th:nth-child(4){width:300px}.v14-table th:nth-child(5){width:auto}.v14-table th:nth-child(6){width:136px}
.v14-main-row .input,.v14-main-row .select{min-height:30px;height:30px;padding:4px 7px}
.v14-no{text-align:center}.v14-result strong{display:block;color:#173b2e;font-size:9.5px}.v14-result small{display:block;margin-top:2px;color:#71808e;font-size:7.5px;line-height:1.3}.v14-actions .btn+.btn{margin-left:4px}
.v14-parameter-row>td{padding:0!important;background:#f8fafc!important;border-top:0!important}.v14-parameter-strip{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:7px;padding:7px 8px}.v14-parameter-strip>div{display:grid;gap:3px;min-width:0}.v14-parameter-strip span{font-size:7.4px;font-weight:800;color:#617286}.v14-parameter-strip strong{min-height:30px;display:flex;align-items:center;padding:4px 7px;border:1px solid #dbe4ec;border-radius:5px;background:#fff;color:#21394c;font-size:9px}
.v14-detail-row>td{padding:7px!important;background:#f4faf7!important}.v14-detail-grid{display:grid;grid-template-columns:1fr;gap:8px}.v14-finish-block{border:1px solid #cfdfd7;border-radius:8px;background:#fbfefc;overflow:hidden}.v14-finish-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:7px 8px;border-bottom:1px solid #dce8e1}.v14-finish-head strong{display:block;font-size:9px}.v14-finish-head small{display:block;margin-top:2px;font-size:7.3px;color:#748178}.v14-finish-head label{display:flex;align-items:center;gap:6px}.v14-finish-head label span{font-size:7.4px;font-weight:800;color:#627568}.v14-finish-head .select{height:29px;min-height:29px;padding:3px 7px;min-width:105px}
.v14-deduction-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;background:#f5faf7}.v14-deduction-head span{font-size:7.6px;font-weight:800;color:#5d7164}.v14-deduction-wrap{overflow-x:auto}.v14-deduction-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.5px}.v14-deduction-table th,.v14-deduction-table td{border:1px solid #e0e7e2;padding:5px}.v14-deduction-table th{background:#f0f6f2;color:#557061;font-size:7.2px;text-transform:uppercase}.v14-deduction-table th:nth-child(1){width:auto}.v14-deduction-table th:nth-child(2){width:150px}.v14-deduction-table th:nth-child(3){width:100px}.v14-deduction-table th:nth-child(4){width:120px}.v14-deduction-table th:nth-child(5){width:70px}.v14-deduction-table .input{height:29px;min-height:29px;padding:4px 6px}.v14-empty td{text-align:center;color:#7b8880;padding:10px}
.v14-result-strip{background:#eef8f1!important}.v14-result-strip strong{color:#17452f!important}.v14-source-warning{margin:7px 8px}
@media(max-width:760px){.v14-table-wrap{overflow:visible}.v14-table,.v14-table thead,.v14-table tbody,.v14-table tr,.v14-table td{display:block;width:100%}.v14-table thead{display:none}.v14-table tbody{border-bottom:7px solid #eef2f5}.v14-main-row{display:grid!important;grid-template-columns:54px minmax(0,1fr);gap:0}.v14-main-row td{width:auto!important}.v14-main-row .v14-name,.v14-main-row .v14-source,.v14-main-row .v14-result,.v14-main-row .v14-actions{grid-column:1/-1}.v14-main-row td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:7px;font-weight:800;color:#778695}.v14-parameter-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.v14-detail-row>td::before,.v14-parameter-row>td::before{display:none!important}.v14-deduction-table{min-width:560px}}
@media(max-width:430px){.v14-parameter-strip{grid-template-columns:1fr}.v14-finish-head{align-items:flex-start;flex-direction:column}.v14-finish-head label{width:100%;justify-content:space-between}.v14-finish-head .select{flex:1}.v14-deduction-head{align-items:flex-start;flex-direction:column}.v14-deduction-head .btn{width:100%}}


/* v1.1.134 — Operasi Volume: total Pekerjaan / Section + searchable source picker */
.ve2-operation-source-stack{grid-template-columns:118px minmax(0,1fr)}
.ve2-operation-source-button{width:100%;min-height:46px;padding:5px 8px;border:0;background:#fff;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;align-items:center;cursor:pointer;color:#1f2937}
.ve2-operation-source-button:hover{background:#f7fbff}.ve2-operation-source-button.is-missing{background:#fffaf0;color:#7c5b1e}
.ve2-operation-source-badge{grid-row:1 / span 2;align-self:center;padding:3px 5px;border:1px solid #d5dee8;border-radius:5px;background:#f5f7fa;color:#526276;font-size:7px;font-weight:950;letter-spacing:.06em;white-space:nowrap}
.ve2-operation-source-badge.work{border-color:#a7d3b9;background:#eefaf3;color:#166534}.ve2-operation-source-badge.section{border-color:#bfd6f5;background:#eff6ff;color:#1d4ed8}
.ve2-operation-source-work{min-width:0;display:flex;align-items:baseline;gap:5px}.ve2-operation-source-work em{font-style:normal;font-size:6.8px;font-weight:950;letter-spacing:.08em;color:#7a8796}.ve2-operation-source-work strong{min-width:0;font-size:9.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ve2-operation-source-button>small{grid-column:2;min-width:0;color:#64748b;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ve2-operation-picker-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.36);backdrop-filter:blur(1px)}
.ve2-operation-picker-panel{width:min(760px,calc(100vw - 36px));max-height:min(78vh,720px);display:flex;flex-direction:column;padding:10px;border:1px solid #cfd9e4;border-radius:14px;background:#fff;box-shadow:0 22px 55px rgba(15,23,42,.2);overflow:hidden}
.ve2-operation-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 2px 8px}.ve2-operation-picker-header>div{min-width:0}.ve2-operation-picker-header span{display:block;font-size:7.5px;font-weight:950;letter-spacing:.11em;color:#2563eb}.ve2-operation-picker-header strong{display:block;margin-top:2px;font-size:14px}.ve2-operation-picker-header small{display:block;margin-top:2px;color:#64748b;font-size:8.5px;line-height:1.35}.ve2-operation-picker-header .icon-btn{flex:0 0 auto}
.ve2-operation-picker-search{flex:0 0 auto;margin:0 0 8px}
.ve2-operation-picker-results{overflow:auto;display:grid;gap:8px;padding-right:2px}
.ve2-operation-picker-work{border:1px solid #d9e2eb;border-radius:10px;overflow:hidden;background:#fff}.ve2-operation-picker-work[hidden]{display:none!important}
.ve2-operation-picker-workhead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:7px 9px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.ve2-operation-picker-workhead>div{min-width:0}.ve2-operation-picker-workhead span{display:block;font-size:7px;font-weight:950;letter-spacing:.1em;color:#64748b}.ve2-operation-picker-workhead strong{display:block;margin-top:1px;font-size:11.5px;color:#111827}.ve2-operation-picker-workhead small{display:block;margin-top:1px;font-size:8px;color:#64748b}.ve2-operation-picker-workhead em{font-style:normal;font-size:7.5px;font-weight:850;color:#64748b;white-space:nowrap}
.ve2-operation-picker-subhead{padding:4px 9px;background:#eefaf3;border-bottom:1px solid #dcebe2;color:#166534;font-size:7px;font-weight:950;letter-spacing:.08em}.ve2-operation-picker-subhead.section{background:#eff6ff;border-color:#dbeafe;color:#1d4ed8}
.ve2-operation-picker-list{display:grid}.ve2-operation-picker-row{width:100%;display:grid;grid-template-columns:94px minmax(0,1fr) 120px;gap:8px;align-items:center;padding:7px 9px;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.ve2-operation-picker-list .ve2-operation-picker-row:last-child{border-bottom:0}.ve2-operation-picker-row:hover:not(:disabled){background:#f8fbff}.ve2-operation-picker-row.selected{background:#eef6ff;box-shadow:inset 3px 0 #2563eb}.ve2-operation-picker-row:disabled{opacity:.5;cursor:not-allowed;background:#fafafa}.ve2-operation-picker-row[hidden]{display:none!important}
.ve2-operation-picker-scope{font-size:7px;font-weight:950;letter-spacing:.05em;color:#526276}.scope-work .ve2-operation-picker-scope{color:#166534}.scope-section .ve2-operation-picker-scope{color:#1d4ed8}.ve2-operation-picker-copy{min-width:0}.ve2-operation-picker-copy strong{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ve2-operation-picker-copy small{display:block;margin-top:1px;font-size:7.7px;color:#64748b}.ve2-operation-picker-value{text-align:right}.ve2-operation-picker-value strong{display:block;font-size:11px;color:#244c3c;font-variant-numeric:tabular-nums}.ve2-operation-picker-value small{display:block;margin-top:1px;font-size:7.5px;color:#64748b}
@media(max-width:760px){.ve2-operation-source-stack{grid-template-columns:1fr}.ve2-operation-source-button{border-top:1px solid #e5ebf1}.ve2-operation-picker-backdrop{place-items:end center;padding:0}.ve2-operation-picker-panel{width:100%;max-height:88vh;border-radius:16px 16px 0 0;padding:9px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.ve2-operation-picker-row{grid-template-columns:78px minmax(0,1fr) 96px;padding:7px}.ve2-operation-picker-workhead{padding:7px}.ve2-operation-picker-header strong{font-size:13px}}
@media(max-width:460px){.ve2-operation-picker-row{grid-template-columns:74px minmax(0,1fr)}.ve2-operation-picker-value{grid-column:2;text-align:left;display:flex;gap:5px;align-items:baseline}.ve2-operation-picker-value strong{font-size:10px}.ve2-operation-picker-copy strong{white-space:normal}.ve2-operation-source-button>small{white-space:normal}}

/* v1.1.135 — finishing langsung di setiap Section Dinding V-13 */
.v13-detail-stack{display:grid;gap:9px}
.v13-finishing-panel{border:1px solid #bfcfdf;border-radius:9px;background:#f8fbfd;overflow:hidden}
.v13-finishing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 9px;border-bottom:2px solid #aebfce;background:#eef4f8}
.v13-finishing-head>div:first-child>strong{display:block;font-size:9.2px;color:#243d52}.v13-finishing-head>div:first-child>small{display:block;margin-top:2px;font-size:7.4px;color:#667989;line-height:1.35}
.v13-finishing-summary{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.v13-finishing-summary span{display:grid;gap:1px;padding:4px 7px;border:1px solid #cad8e3;border-radius:6px;background:#fff;font-size:7px;color:#657786;min-width:82px}.v13-finishing-summary strong{font-size:8.5px;color:#183c2e}
.v13-finishing-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:8px}.v13-finish-block{box-shadow:0 0 0 1px rgba(29,62,83,.02)}
.v13-finish-result{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;background:#f7fbf8;border-bottom:1px solid #e0e9e3}.v13-finish-result span{font-size:7.3px;font-weight:800;color:#607267}.v13-finish-result strong{font-size:9px;color:#17452f}
.v13-four-results{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:8px}.v13-four-results span{min-width:0}
@media(max-width:760px){.v13-finishing-head{flex-direction:column}.v13-finishing-summary{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.v13-four-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.v13-finishing-summary{grid-template-columns:1fr}.v13-four-results{grid-template-columns:1fr}.v13-finishing-grid{padding:6px}}

/* v1.1.136 — Operasi Volume picker hierarchy: Pekerjaan → Total / Section */
.ve2-operation-picker-work{border:1px solid #d9e2eb;border-radius:10px;overflow:hidden;background:#fff}
.ve2-operation-picker-work[hidden]{display:none!important}
.ve2-operation-picker-work>summary{list-style:none;cursor:pointer}
.ve2-operation-picker-work>summary::-webkit-details-marker{display:none}
.ve2-operation-picker-workhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:#f8fafc;border:0}
.ve2-operation-picker-work[open]>.ve2-operation-picker-workhead{background:#f3f7fb;border-bottom:1px solid #dfe7ef}
.ve2-operation-picker-workhead-main{min-width:0;display:grid;gap:2px}
.ve2-operation-picker-workhead-main>span{display:block;font-size:7px;font-weight:950;letter-spacing:.1em;color:#64748b}
.ve2-operation-picker-workhead-main>strong{display:block;font-size:12px;line-height:1.25;color:#111827;white-space:normal;overflow-wrap:anywhere}
.ve2-operation-picker-workhead-main>small{display:block;font-size:8px;line-height:1.3;color:#64748b;white-space:normal;overflow-wrap:anywhere}
.ve2-operation-picker-workhead-meta{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.ve2-operation-picker-workhead-meta>em{font-style:normal;font-size:7.5px;font-weight:850;color:#64748b;white-space:nowrap}
.ve2-operation-picker-workhead-meta>b{font-size:15px;line-height:1;color:#64748b;transition:transform .15s ease}
.ve2-operation-picker-work[open] .ve2-operation-picker-workhead-meta>b{transform:rotate(180deg)}
.ve2-operation-picker-workbody{background:#fff}
.ve2-operation-picker-section-block{border-top:1px solid #e8eef5}
.ve2-operation-picker-section-block[hidden]{display:none!important}
.ve2-operation-picker-sectionhead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:6px 9px;background:#f7fbff;border-bottom:1px solid #e4eef9}
.ve2-operation-picker-sectionhead>span{grid-column:1;display:block;font-size:6.8px;font-weight:950;letter-spacing:.08em;color:#2563eb}
.ve2-operation-picker-sectionhead>strong{grid-column:1;display:block;font-size:10.5px;color:#172033;white-space:normal;overflow-wrap:anywhere}
.ve2-operation-picker-sectionhead>small{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:7.5px;color:#64748b;white-space:nowrap}
.ve2-operation-picker-subhead{padding:5px 9px;background:#eefaf3;border-bottom:1px solid #dcebe2;color:#166534;font-size:7px;font-weight:950;letter-spacing:.08em}
.ve2-operation-picker-row{grid-template-columns:108px minmax(0,1fr) 120px}
.ve2-operation-picker-copy strong{white-space:normal;overflow:visible;text-overflow:clip}
.volume-picker-empty.compact{padding:8px 10px;font-size:8px}
@media(max-width:760px){
  .ve2-operation-picker-workhead{padding:8px}
  .ve2-operation-picker-workhead-meta{align-items:flex-end;flex-direction:column;gap:2px}
  .ve2-operation-picker-row{grid-template-columns:92px minmax(0,1fr) 96px}
}
@media(max-width:460px){
  .ve2-operation-picker-workhead-meta>em{display:none}
  .ve2-operation-picker-row{grid-template-columns:82px minmax(0,1fr)}
  .ve2-operation-picker-value{grid-column:2;text-align:left;display:flex;gap:5px;align-items:baseline}
  .ve2-operation-picker-sectionhead{grid-template-columns:1fr}
  .ve2-operation-picker-sectionhead>small{grid-column:1;grid-row:auto}
}

/* v1.1.137 — Operasi Volume picker: controlled work cards, no native details clipping */
.ve2-operation-picker-work{border:1px solid #d9e2eb;border-radius:10px;overflow:hidden;background:#fff;min-height:58px}
.ve2-operation-picker-work[hidden]{display:none!important}
.ve2-operation-picker-workhead{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:0;background:#f8fafc;color:#111827;text-align:left;font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none}
.ve2-operation-picker-workhead:hover{background:#f3f7fb}
.ve2-operation-picker-workhead:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}
.ve2-operation-picker-work.is-open>.ve2-operation-picker-workhead{background:#f3f7fb;border-bottom:1px solid #dfe7ef}
.ve2-operation-picker-work.is-open .ve2-operation-picker-workhead-meta>b{transform:rotate(180deg)}
.ve2-operation-picker-workbody[hidden]{display:none!important}
.ve2-operation-picker-workbody{display:block;background:#fff}
@media(max-width:760px){.ve2-operation-picker-work{min-height:56px}.ve2-operation-picker-workhead{min-height:56px;padding:8px}}


/* v1.1.138 — Operasi Volume picker: keep Output quantity + unit fully visible */
.ve2-operation-picker-panel{min-height:0}
.ve2-operation-picker-results{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  align-content:initial;
  gap:8px;
  padding-right:2px;
}
.ve2-operation-picker-work{
  flex:0 0 auto;
  height:auto;
  min-height:58px;
}
.ve2-operation-picker-workbody,
.ve2-operation-picker-section-block,
.ve2-operation-picker-list,
.ve2-operation-picker-row{
  flex:0 0 auto;
}
.ve2-operation-picker-list{display:flex;flex-direction:column}
.ve2-operation-picker-row{
  min-height:48px;
  height:auto;
  overflow:visible;
}
.ve2-operation-picker-value{
  display:flex;
  justify-content:flex-end;
  align-items:baseline;
  gap:4px;
  min-width:0;
  white-space:nowrap;
}
.ve2-operation-picker-value strong,
.ve2-operation-picker-value small{
  display:inline;
  margin:0;
  line-height:1.25;
}
.ve2-operation-picker-value strong{font-size:11px}
.ve2-operation-picker-value small{font-size:8px}
@media(max-width:760px){
  .ve2-operation-picker-row{min-height:46px}
}
@media(max-width:460px){
  .ve2-operation-picker-value{
    grid-column:2;
    text-align:left;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

/* v1.1.139 — V-15 Finishing Struktur */
.v15-sheet{border:1px solid #d5e0e8;border-radius:10px;overflow:hidden;background:#fff}
.v15-table-wrap{overflow-x:auto}
.v15-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}
.v15-table th,.v15-table td{border:1px solid #dce4eb;padding:5px 6px;vertical-align:middle}
.v15-table thead th{background:#edf3f8;color:#4c6075;font-size:7.5px;text-transform:uppercase;letter-spacing:.025em}
.v15-table th:nth-child(1){width:42px}.v15-table th:nth-child(2){width:210px}.v15-table th:nth-child(3){width:56px}.v15-table th:nth-child(4),.v15-table th:nth-child(5){width:120px}.v15-table th:nth-child(6){width:88px}.v15-table th:nth-child(7){width:125px}.v15-table th:nth-child(8){width:145px}
.v15-main-row .input,.v15-main-row .select{height:30px;min-height:30px;padding:4px 7px}
.v15-table tbody+tbody .v15-main-row>td{border-top:5px solid #aebdca}.v15-table tbody.is-active .v15-main-row>td{background:#f4f8fb}.v15-table tbody.is-active .v15-detail-row>td{border-bottom:3px solid #7f95a8!important}
.v15-detail-row>td{padding:8px!important;background:#f6faf8!important}.v15-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:7px 8px;border:1px solid #ceddd4;border-radius:8px 8px 0 0;background:#edf6f1}.v15-detail-head strong{font-size:9px}.v15-detail-head small{display:block;margin-top:2px;font-size:7.3px;color:#6e7e75}.v15-summary{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.v15-summary span{display:grid;gap:1px;min-width:80px;padding:4px 7px;border:1px solid #c9d9d0;border-radius:6px;background:#fff;font-size:7px;color:#64766b}.v15-summary strong{font-size:8.4px;color:#173d2d}
.v15-detail-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:8px;border:1px solid #ceddd4;border-top:0;border-radius:0 0 8px 8px;background:#fbfefc}.v15-finish-block{border:1px solid #cfdfd7;border-radius:8px;background:#fff;overflow:hidden}.v15-finish-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-bottom:1px solid #dce8e1;background:#f6faf8}.v15-finish-head strong{font-size:8.8px}.v15-finish-head small{display:block;margin-top:2px;font-size:7.2px;color:#748178}.v15-deduction-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px}.v15-deduction-head span{font-size:7.5px;font-weight:800;color:#607268}.v15-deduction-wrap{overflow-x:auto}.v15-deduction-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.4px}.v15-deduction-table th,.v15-deduction-table td{border:1px solid #e0e8e3;padding:5px}.v15-deduction-table th{background:#f1f6f3;color:#587063;font-size:7.1px;text-transform:uppercase}.v15-deduction-table th:nth-child(1){width:32%}.v15-deduction-table th:nth-child(2){width:18%}.v15-deduction-table th:nth-child(3){width:15%}.v15-deduction-table th:nth-child(4){width:22%}.v15-deduction-table th:nth-child(5){width:70px}.v15-deduction-table .input{height:29px;min-height:29px;padding:4px 6px}.v15-empty td{text-align:center;color:#7b8880;padding:9px}.v15-result-strip .ve2-two-results{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.v15-table-wrap{overflow:visible}.v15-table,.v15-table thead,.v15-table tbody,.v15-table tr,.v15-table td{display:block;width:100%}.v15-table thead{display:none}.v15-table tbody{border-bottom:7px solid #aebdca}.v15-main-row{display:grid!important;grid-template-columns:52px minmax(0,1fr);gap:0}.v15-main-row td{width:auto!important}.v15-main-row td:nth-child(2),.v15-main-row td:nth-child(7),.v15-main-row td:nth-child(8){grid-column:1/-1}.v15-main-row td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:7px;font-weight:800;color:#778695}.v15-detail-row>td::before{display:none!important}.v15-detail-head{flex-direction:column}.v15-summary{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.v15-deduction-table{min-width:600px}.v15-result-strip .ve2-two-results{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:430px){.v15-summary,.v15-result-strip .ve2-two-results{grid-template-columns:1fr}.v15-deduction-head{align-items:flex-start;flex-direction:column}.v15-deduction-head .btn{width:100%}}

/* v1.1.141 quick shortcut RAB ↔ Volume */
.route-shortcuts{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}
.quick-route-btn{border-color:#cbd5e1;background:#f8fafc;font-weight:850}
.quick-route-btn:hover:not(:disabled){background:#eef2f7;border-color:#94a3b8}
@media(max-width:720px){.route-shortcuts{flex-wrap:nowrap}.editor-toolbar .route-shortcuts .btn{white-space:nowrap}}

/* v1.1.145 — granular multi-user conflict resolver */
.sync-granular-conflicts{display:flex;flex-direction:column;gap:10px}
.sync-conflict-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.sync-conflict-head small{display:block;margin-top:3px;color:inherit;opacity:.8}
.sync-conflict-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;padding-right:2px}
.sync-conflict-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.8fr) minmax(150px,.7fr);gap:8px;align-items:stretch;border:1px solid rgba(180,83,9,.28);background:rgba(255,255,255,.72);border-radius:12px;padding:9px}
.sync-conflict-meta{min-width:0;display:flex;flex-direction:column;gap:3px}.sync-conflict-meta strong,.sync-conflict-meta small{overflow-wrap:anywhere}
.sync-conflict-values{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}
.sync-conflict-values>div{min-width:0;border:1px solid rgba(180,83,9,.18);border-radius:9px;padding:6px;background:rgba(255,255,255,.68);display:flex;flex-direction:column;gap:3px}
.sync-conflict-values span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.72}
.sync-conflict-values code{font-family:inherit;font-size:12px;white-space:normal;overflow-wrap:anywhere;max-height:62px;overflow:auto}
.sync-conflict-select{min-width:0;height:auto;align-self:center}
@media(max-width:760px){.sync-conflict-row{grid-template-columns:1fr}.sync-conflict-values{grid-template-columns:1fr 1fr}.sync-conflict-select{width:100%}}
@media(max-width:420px){.sync-conflict-values{grid-template-columns:1fr}}

/* v1.1.146 — local user identity + RAB edit attribution */
.rab-list-editor{color:#4b5563!important;font-weight:700}
.identity-setting-row{align-items:center}
.user-identity-backdrop{z-index:140;background:rgba(17,24,39,.62)}
.user-identity-modal .modal-header{margin-bottom:8px}
.user-identity-modal .modal-title{margin-top:3px}
.user-identity-modal .modal-actions{position:static}
@media(max-width:720px){.identity-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.identity-setting-row .input{max-width:none!important}.rab-list-editor{white-space:normal}}

/* v1.1.147 — V-16 Finalisasi UI Volume · BAGIAN 1
   Fokus: Tangga section layout + nested detail mobile tanpa horizontal scroll. */
.v12-section-table tbody+tbody .v12-section-row>td{border-top:4px solid #b8c5d1}
.v12-parameter-strip{grid-template-columns:132px minmax(0,1fr)}
.v12-main-dims.plate{grid-template-columns:repeat(3,minmax(120px,1fr))}
.v12-main-dims.steps{grid-template-columns:repeat(4,minmax(105px,1fr))}
.v12-main-dims.legacy{grid-template-columns:repeat(5,minmax(92px,1fr))}
.v12-section-table tbody.is-active .v12-section-row>td{background:#eef7f3!important}
.v12-section-table tbody.is-active .v12-parameter-row>td{border-bottom-color:#b8cfc3!important}

@media(max-width:760px){
  .v12-parameter-strip{grid-template-columns:1fr;gap:6px;padding:7px}
  .v12-parameter-title{padding:0 0 5px;border-right:0;border-bottom:1px solid #dce4eb}
  .v12-main-dims.plate{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v12-main-dims.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v12-main-dims.legacy{grid-template-columns:repeat(2,minmax(0,1fr))}

  /* V-13 bukaan: mobile menjadi card rows, bukan tabel lebar yang harus digeser. */
  .v13-opening-table-wrap{overflow:visible}
  .v13-opening-table{display:block;min-width:0!important;width:100%}
  .v13-opening-table thead{display:none}
  .v13-opening-table tbody{display:block}
  .v13-opening-table tr:not(.v13-opening-empty){display:block;margin:0 0 7px;border:1px solid #dce6df;border-radius:7px;overflow:hidden;background:#fff}
  .v13-opening-table tr:not(.v13-opening-empty) td{display:grid!important;grid-template-columns:86px minmax(0,1fr);align-items:center;width:100%!important;border:0!important;border-bottom:1px solid #edf1ee!important;padding:0!important}
  .v13-opening-table tr:not(.v13-opening-empty) td:last-child{border-bottom:0!important}
  .v13-opening-table tr:not(.v13-opening-empty) td::before{content:attr(data-label);display:block!important;padding:6px 7px;font-size:7px;font-weight:850;color:#68796e;text-transform:uppercase}
  .v13-opening-table tr:not(.v13-opening-empty) td>*{min-width:0;margin:0 6px}
  .v13-opening-table tr:not(.v13-opening-empty) .input{height:31px;min-height:31px;border-left:1px solid #e7ede9!important;border-radius:0!important}
  .v13-opening-table tr:not(.v13-opening-empty) strong{display:flex;align-items:center;min-height:31px;padding-left:6px;border-left:1px solid #e7ede9}
  .v13-opening-table tr:not(.v13-opening-empty) .btn{justify-self:start;margin:4px 6px}
  .v13-opening-empty{display:block}.v13-opening-empty td{display:block!important;width:100%!important;border:0!important}
  .v13-opening-empty td::before{display:none!important}

  /* Finishing Dinding V-13 memakai tabel pengurang V-14 secara internal. */
  .v13-finishing-panel .v14-deduction-wrap{overflow:visible}
  .v13-finishing-panel .v14-deduction-table{display:block;min-width:0!important;width:100%}
  .v13-finishing-panel .v14-deduction-table thead{display:none}
  .v13-finishing-panel .v14-deduction-table tbody{display:block}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty){display:block;margin:0 0 7px;border:1px solid #dce6df;border-radius:7px;overflow:hidden;background:#fff}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) td{display:grid!important;grid-template-columns:86px minmax(0,1fr);align-items:center;width:100%!important;border:0!important;border-bottom:1px solid #edf1ee!important;padding:0!important}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) td:last-child{border-bottom:0!important}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) td::before{content:attr(data-label);display:block!important;padding:6px 7px;font-size:7px;font-weight:850;color:#68796e;text-transform:uppercase}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) td>*{min-width:0;margin:0 6px}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) .input{height:31px;min-height:31px;border-left:1px solid #e7ede9!important;border-radius:0!important}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) strong{display:flex;align-items:center;min-height:31px;padding-left:6px;border-left:1px solid #e7ede9}
  .v13-finishing-panel .v14-deduction-table tr:not(.v14-empty) .btn{justify-self:start;margin:4px 6px}
  .v13-finishing-panel .v14-empty{display:block}.v13-finishing-panel .v14-empty td{display:block!important;width:100%!important;border:0!important}.v13-finishing-panel .v14-empty td::before{display:none!important}

  /* V-15 pengurang: pola card yang sama agar Detail tetap nyaman portrait. */
  .v15-deduction-wrap{overflow:visible}
  .v15-deduction-table{display:block;min-width:0!important;width:100%}
  .v15-deduction-table thead{display:none}
  .v15-deduction-table tbody{display:block}
  .v15-deduction-table tr:not(.v15-empty){display:block;margin:0 0 7px;border:1px solid #dce6df;border-radius:7px;overflow:hidden;background:#fff}
  .v15-deduction-table tr:not(.v15-empty) td{display:grid!important;grid-template-columns:86px minmax(0,1fr);align-items:center;width:100%!important;border:0!important;border-bottom:1px solid #edf1ee!important;padding:0!important}
  .v15-deduction-table tr:not(.v15-empty) td:last-child{border-bottom:0!important}
  .v15-deduction-table tr:not(.v15-empty) td::before{content:attr(data-label);display:block!important;padding:6px 7px;font-size:7px;font-weight:850;color:#68796e;text-transform:uppercase}
  .v15-deduction-table tr:not(.v15-empty) td>*{min-width:0;margin:0 6px}
  .v15-deduction-table tr:not(.v15-empty) .input{height:31px;min-height:31px;border-left:1px solid #e7ede9!important;border-radius:0!important}
  .v15-deduction-table tr:not(.v15-empty) strong{display:flex;align-items:center;min-height:31px;padding-left:6px;border-left:1px solid #e7ede9}
  .v15-deduction-table tr:not(.v15-empty) .btn{justify-self:start;margin:4px 6px}
  .v15-empty{display:block}.v15-empty td{display:block!important;width:100%!important;border:0!important}.v15-empty td::before{display:none!important}
}

@media(max-width:430px){
  .v12-main-dims.plate,.v12-main-dims.steps,.v12-main-dims.legacy{grid-template-columns:1fr}
}

@media(max-width:760px){
  .v12-section-table tbody+tbody{border-top:5px solid #b8c5d1}
  .v12-section-table tbody+tbody .v12-section-row>td{border-top:0}
}


/* v1.1.148 — V-16 Finalisasi UI Volume · BAGIAN 2
   Fokus: hierarki Section struktur + summary/output responsive lintas template aktif. */
.ve2-geometry-table tbody+tbody .ve2-geometry-main-row>td{
  border-top:4px solid #b8c5d1;
}
.ve2-geometry-table tbody.is-active .ve2-geometry-main-row>td{
  background:#eef7f3!important;
}
.ve2-geometry-table tbody.is-active .ve2-geometry-detail-row>td{
  border-bottom:3px solid #93aa9e!important;
}
.volume-calc-modal .hc01-result-strip .ve2-two-results{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:5px!important;
  width:100%;
}
.volume-calc-modal .hc01-result-strip .ve2-two-results>span{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  min-width:0;
  padding:4px 6px;
  border:1px solid #d6e7dc;
  border-radius:6px;
  background:#fff;
}
.volume-calc-modal .hc01-result-strip .ve2-two-results>span>strong{
  flex:0 0 auto;
  white-space:nowrap;
}
.volume-calc-modal .hc01-result-strip .ve2-rebar-basic-result em{
  flex:0 0 auto;
}

@media(max-width:760px){
  .ve2-geometry-table tbody+tbody{
    border-top:5px solid #b8c5d1;
  }
  .ve2-geometry-table tbody+tbody .ve2-geometry-main-row>td{
    border-top:0;
  }
  .ve2-geometry-table tbody.is-active{
    box-shadow:inset 3px 0 #6f9b84;
  }
  .ve2-geometry-table .geo-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .volume-calc-modal .hc01-result-strip .ve2-two-results{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:460px){
  .ve2-mode-head{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .ve2-mode-head .tag{
    align-self:flex-start;
    white-space:normal;
  }
  .volume-calc-modal .hc01-result-strip .ve2-two-results{
    grid-template-columns:1fr;
  }
  .volume-calc-modal .hc01-result-strip .ve2-two-results>span{
    min-height:29px;
  }
}

/* v1.1.149 — V-16 Finalisasi UI Volume · BAGIAN 3
   Fokus: mode Manual menjadi table-first dan mobile card-row seperti flow aktif lain. */
.ve2-manual-sheet{display:grid;gap:6px;margin-top:5px}
.ve2-manual-head{margin-top:0}
.ve2-manual-table-wrap{overflow-x:auto;border:1px solid #d8e1ea;border-radius:9px;background:#fff}
.ve2-manual-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}
.ve2-manual-table th,.ve2-manual-table td{padding:5px 6px;border-right:1px solid #e1e7ed;border-bottom:1px solid #e1e7ed;vertical-align:middle}
.ve2-manual-table th:last-child,.ve2-manual-table td:last-child{border-right:0}
.ve2-manual-table tbody:last-child td{border-bottom:0}
.ve2-manual-table th{background:#edf3f8;color:#526276;font-size:7.6px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;text-align:left}
.ve2-manual-table th:nth-child(1){width:42px;text-align:center}.ve2-manual-table th:nth-child(2){width:auto}.ve2-manual-table th:nth-child(3){width:110px}.ve2-manual-table th:nth-child(4){width:150px}.ve2-manual-table th:nth-child(5){width:58px;text-align:center}
.ve2-manual-table td:first-child{text-align:center;color:#607086}
.ve2-manual-table .input{width:100%;height:30px;min-height:30px;margin:0;padding:4px 7px;border:0!important;border-radius:0!important;background:#fff;box-shadow:none!important;font-size:9.7px}
.ve2-manual-table td:nth-child(3) .input{text-align:center;font-weight:800}
.ve2-manual-table td:nth-child(4) .input{text-align:right;font-variant-numeric:tabular-nums}
.ve2-manual-table td:last-child{text-align:center}.ve2-manual-table td:last-child .btn{min-width:29px;height:28px;min-height:28px;padding:2px 6px}
.ve2-manual-note{padding:5px 7px;border:1px dashed #d9e1e9;border-radius:7px;background:#fafcfe;color:#6d7b8c;font-size:8px;line-height:1.35}

@media(max-width:760px){
  .ve2-manual-head{align-items:flex-start;flex-direction:column}.ve2-manual-head .btn{align-self:flex-start}
  .ve2-manual-table-wrap{overflow:visible;border:0;background:transparent}
  .ve2-manual-table,.ve2-manual-table thead,.ve2-manual-table tbody,.ve2-manual-table tr,.ve2-manual-table td{display:block;width:100%}
  .ve2-manual-table thead{display:none}
  .ve2-manual-table tbody{margin-bottom:7px;border:1px solid #d8e1ea;border-radius:8px;overflow:hidden;background:#fff}
  .ve2-manual-table tr{display:block}
  .ve2-manual-table td{display:grid!important;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:0;width:100%!important;padding:0!important;border:0!important;border-bottom:1px solid #e7edf2!important;text-align:left!important}
  .ve2-manual-table td:last-child{border-bottom:0!important}
  .ve2-manual-table td::before{content:attr(data-label);display:block;padding:6px 7px;font-size:7.2px;font-weight:900;color:#69798c;text-transform:uppercase}
  .ve2-manual-table td>strong{padding:6px 7px;border-left:1px solid #e7edf2}
  .ve2-manual-table .input{height:32px;min-height:32px;border-left:1px solid #e7edf2!important}
  .ve2-manual-table td:last-child .btn{justify-self:start;margin:4px 7px}
}
@media(max-width:430px){
  .ve2-manual-table td{grid-template-columns:74px minmax(0,1fr)}
  .ve2-manual-note{font-size:7.8px}
}


/* v2.0.0 — RAB-01: RAB Rencana + primary Hitungan Volume entry */
.rab-planning-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.rab-planning-choice-grid .rab-plan-create{grid-column:1/-1;border-color:#b8c1ce;background:linear-gradient(135deg,#fff 0%,#f8fafc 100%)}
.rab-volume-entry{appearance:none;border:1px solid #111827;background:#111827;color:#fff;border-radius:12px;min-height:42px;padding:5px 8px 5px 6px;display:grid;grid-template-columns:30px minmax(0,1fr) 14px;align-items:center;gap:7px;text-align:left;box-shadow:0 5px 14px rgba(17,24,39,.16);cursor:pointer;white-space:nowrap}
.rab-volume-entry:hover{background:#1f2937;border-color:#1f2937;transform:translateY(-1px)}
.rab-volume-entry:active{transform:translateY(0)}
.rab-volume-entry-icon{width:30px;height:30px;border-radius:9px;background:#fff;color:#111827;display:grid;place-items:center;font-size:15px;font-weight:950}
.rab-volume-entry-copy{display:block;line-height:1.05;min-width:0}
.rab-volume-entry-copy strong{display:block;font-size:11.5px;font-weight:900;letter-spacing:.01em}
.rab-volume-entry-copy small{display:block;margin-top:3px;font-size:8.5px;color:#cbd5e1;font-weight:750;letter-spacing:.02em}
.rab-volume-entry-arrow{font-size:18px;font-weight:800;color:#d1d5db;text-align:center}
@media(max-width:720px){.rab-planning-choice-grid{grid-template-columns:1fr}.rab-planning-choice-grid .rab-plan-create{grid-column:auto}.rab-volume-entry{min-height:40px;grid-template-columns:28px minmax(0,1fr) 12px;padding:4px 7px 4px 5px}.rab-volume-entry-icon{width:28px;height:28px}.rab-volume-entry-copy small{display:none}}

/* v2.0.1 · RAB-02 baseline lock */
.rab-plan-lock-btn{border-color:#111827!important;background:#fff;color:#111827;font-weight:850}
.rab-plan-lock-btn:hover{background:#f8fafc}
.rab-plan-lock-state{background:#f1f5f9!important;border-color:#cbd5e1!important;color:#64748b!important;font-weight:850}
.rab-plan-locked-notice{border-left:3px solid #334155}
.rab-plan-lock-chip{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;border:1px solid #d8dee8;border-radius:999px;background:#f8fafc;color:#475569;font-size:8px;font-weight:900;vertical-align:middle;white-space:nowrap}
.rab-plan-lock-confirm{font-weight:900}
.choice-card:disabled{cursor:not-allowed;opacity:.55;transform:none!important;box-shadow:none}
.volume-readonly-modal .ve2-config-sheet{opacity:.96}
.volume-readonly-modal input:disabled,.volume-readonly-modal select:disabled,.volume-readonly-modal textarea:disabled{opacity:1;color:#475569;background:#f8fafc;-webkit-text-fill-color:#475569}
.volume-readonly-modal button:disabled{cursor:not-allowed}
@media(max-width:720px){.rab-plan-lock-chip{margin-left:4px;font-size:7.5px}.rab-plan-lock-btn,.rab-plan-lock-state{min-height:34px}}

/* v2.0.2 · RAB-03 Snapshot RAB Realisasi */
.rab-realization-choice-grid{grid-template-columns:1fr;margin:12px 0 4px}
.rab-realization-choice{position:relative;border-color:#aeb9c8!important;background:linear-gradient(135deg,#fff 0%,#f5f8fb 100%);align-items:center}
.rab-realization-choice .choice-icon{background:#111827;color:#fff}
.rab-realization-choice-arrow{margin-left:auto;font-size:24px;color:#64748b}
.rab-realization-section{margin-top:28px;padding-top:4px;scroll-margin-top:18px}
.rab-realization-snapshot-badge,.rab-realization-chip{display:inline-flex;align-items:center;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.05em;padding:4px 7px}
.rab-realization-chip{margin-left:6px;padding:2px 6px;vertical-align:middle}
.rab-list-index.realization{background:#111827;border-color:#111827;color:#fff}
.rab-realization-list-row{border-color:#d4dce6}
.rab-realization-preview-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}
.rab-realization-preview-head>div:first-child{display:grid;gap:4px;min-width:0}
.rab-realization-preview-head strong{font-size:18px}.rab-realization-preview-head small{color:var(--muted)}
.rab-realization-volume-stat{border:1px solid var(--line);border-radius:12px;padding:9px 11px;min-width:210px;background:#f8fafc}
.rab-realization-volume-stat span{display:block;font-size:9px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.04em}.rab-realization-volume-stat strong{display:block;margin-top:4px;font-size:11px}
.rab-realization-preview-doc{margin-top:12px}.rab-realization-preview-doc .rab-doc-table td{vertical-align:middle}
@media(max-width:720px){.rab-realization-preview-head{display:grid}.rab-realization-volume-stat{min-width:0}.rab-realization-choice{padding:14px}.rab-realization-section{margin-top:22px}}

/* v2.0.3 · RAB-04 Workspace RAB Realisasi independen */
.rab-realization-workspace-notice{border-color:#b9c9d8;background:#f7fafc}
.rab-realization-toolbar-chip{font-weight:900;letter-spacing:.06em;border-color:#b9c9d8;background:#f7fafc;color:#334155}
.rab-volume-entry.realization,.quick-route-btn.realization{border-color:#aeb9c8;background:linear-gradient(135deg,#fff 0%,#f5f8fb 100%)}
.rab-realization-document{box-shadow:0 0 0 1px rgba(71,85,105,.08)}
@media(max-width:720px){.rab-realization-workspace-notice{margin-bottom:8px}.rab-realization-toolbar-chip{font-size:9px}}

.rab-realization-list-tools{margin:0 0 10px}

/* v2.0.4 · RAB-05 Progress Engine */
.rab-progress-table{min-width:1120px}
.rab-progress-table th.rab-progress-head{width:98px;background:#eef4fb;color:#24364b;font-size:10px;line-height:1.15}
.rab-progress-table th.progress-volume-head{width:112px}
.rab-progress-table .progress-start{border-left:3px solid #9aa9ba!important}
.rab-progress-cell{background:#fbfdff;text-align:center;font-variant-numeric:tabular-nums}
.rab-progress-weight,.rab-progress-done{font-weight:800;white-space:nowrap}
.rab-progress-input{text-align:center!important;min-width:0}
.rab-progress-input:disabled{background:#f5f7fa;color:#6b7280;cursor:not-allowed}
.rab-progress-volume-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px}
.rab-progress-volume-editor small{font-size:8.5px;color:#6b7280;font-weight:800;white-space:nowrap}
.rab-progress-footer-empty{background:#fafcff}
.rab-progress-total-row td{background:#eaf2fb;border-top:2px solid #9aa9ba;font-weight:900;text-align:right}
.rab-progress-total-row td:last-child{font-size:12px;text-align:center;font-variant-numeric:tabular-nums}
.rab-plan-locked-notice b{font-weight:900}
@media(max-width:720px){
  .rab-progress-table{min-width:1040px}
  .rab-progress-table th.rab-progress-head{width:88px;font-size:9.5px}
  .rab-progress-table th.progress-volume-head{width:100px}
  .rab-progress-volume-editor{gap:2px}
  .rab-progress-volume-editor small{font-size:8px}
}


/* v2.0.5 · RAB-06 Progress UI: show/hide + connected table grouping */
.rab-progress-toggle{font-weight:850;border-color:#cbd5e1;background:#fff;color:#475569}
.rab-progress-toggle.active{border-color:#9fb2c8;background:#eef4fb;color:#24364b}
.rab-progress-toggle span{font-size:12px;line-height:1}
.rab-progress-group-row th{padding:4px 6px!important;background:#f8fafc!important;color:#556476!important;font-size:8.5px!important;font-weight:950!important;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #cfd8e3!important}
.rab-progress-group-row th:last-child{background:#eaf2fb!important;color:#24364b!important}
.rab-progress-table .progress-start{border-left:3px solid #8fa2b8!important}
.rab-progress-table .rab-progress-footer-empty.progress-start{border-left:3px solid #8fa2b8!important}
.rab-progress-total-row .progress-start{border-left:3px solid #8fa2b8!important}
@media(max-width:720px){
  .rab-progress-toggle{min-height:34px}
  .rab-progress-group-row th{font-size:8px!important;padding:3px 5px!important}
}

/* v2.0.6 · RAB-06 UI adjustment + RAB-07 Excel export */
/* Keep the RAB area visually dominant when Progress is visible. The first header row
   uses colspan, so explicit col widths are defined through colgroup instead of relying
   on the second header row. */
.rab-progress-table{min-width:1000px}
.rab-progress-colgroup .rab-col-no{width:4%}
.rab-progress-colgroup .rab-col-name{width:29%}
.rab-progress-colgroup .rab-col-unit{width:5%}
.rab-progress-colgroup .rab-col-volume{width:7%}
.rab-progress-colgroup .rab-col-price{width:11%}
.rab-progress-colgroup .rab-col-amount{width:12%}
.rab-progress-colgroup .rab-col-progress{width:8%}
.rab-progress-colgroup .rab-col-progress-volume{width:8%}
.rab-progress-table th.rab-progress-head{width:auto;font-size:9px;padding-left:4px;padding-right:4px}
.rab-progress-table th.progress-volume-head{width:auto}
.rab-progress-table .rab-item-name{min-width:0}
.rab-progress-table .rab-progress-cell{padding-left:4px;padding-right:4px}
.rab-progress-table .rab-progress-input{font-size:10px;padding-left:3px;padding-right:3px}
.rab-excel-export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rab-excel-export-option{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding:11px;border:1px solid #d7dee8;border-radius:11px;background:#fff;text-align:left;color:var(--text)}
.rab-excel-export-option:hover{border-color:#aebdce;background:#f8fafc}
.rab-excel-export-option.progress{border-color:#b7c9dc;background:#f7fbff}
.rab-excel-export-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef2f7;font-weight:950;font-size:14px}
.rab-excel-export-option.progress .rab-excel-export-icon{background:#e7f0fa;color:#29445f}
.rab-excel-export-option strong{display:block;font-size:11.5px}
.rab-excel-export-option small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;line-height:1.3}
.rab-excel-export-note{margin:9px 2px 0}
@media(max-width:720px){
  .rab-progress-table{min-width:940px}
  .rab-progress-table th.rab-progress-head{font-size:8.7px}
}
@media(max-width:460px){.rab-excel-export-grid{grid-template-columns:1fr}}

/* v2.0.9 · Finishing paint split: Indoor / Outdoor / Campuran */
.paint-location-panel{display:grid;gap:7px;padding:7px 8px;border-top:1px solid #dfe8e2;border-bottom:1px solid #dfe8e2;background:#f8fbf9}
.paint-location-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:end}
.paint-location-fields label{display:grid;gap:3px;min-width:0}
.paint-location-fields label>span{font-size:7.4px;font-weight:850;color:#617266}
.paint-location-fields .select,.paint-location-fields .input{height:30px;min-height:30px;padding:4px 7px}
.paint-outdoor-field .input{font-variant-numeric:tabular-nums}.paint-location-note strong{color:var(--engineering-navy)}
.paint-location-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.paint-location-summary span{display:flex;align-items:baseline;justify-content:space-between;gap:5px;min-width:0;padding:4px 6px;border:1px solid #d8e3dc;border-radius:6px;background:#fff;color:#65766b;font-size:7px}
.paint-location-summary strong{font-size:8.4px;color:#173d2d;white-space:nowrap}
.paint-location-note{display:block;color:#6d7c73;font-size:7px;line-height:1.35}
.v13-five-results{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;width:100%}
.v13-five-results span{min-width:0}
.v15-four-results{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}
.v15-result-strip .ve2-two-results{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){
  .v13-five-results{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v15-four-results,.v15-result-strip .ve2-two-results{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){
  .paint-location-fields,.paint-location-summary{grid-template-columns:1fr}
  .v13-five-results,.v15-four-results,.v15-result-strip .ve2-two-results{grid-template-columns:1fr}
}


/* v2.0.13 · FA-00 BAGIAN 1 — Global Design System Foundation */
/* Visual-only layer. Business logic, calculation engines, sync, and editor behavior stay untouched. */
html,body{background:var(--bg);color:var(--text)}
body{font-feature-settings:"tnum" 1,"lnum" 1}

/* Application shell */
.topbar{background:rgba(22,50,79,.97);color:#fff;border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 2px 10px rgba(22,50,79,.10)}
.topbar .eyebrow{color:#C9D6E0;letter-spacing:.16em}.topbar h1{color:#fff}.top-actions{display:flex;align-items:center;gap:8px}
.topbar .sync-pill{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.10);color:#fff}.topbar .sync-pill:hover{background:rgba(255,255,255,.15)}
.topbar .sync-pill.warn{border-color:rgba(217,154,29,.72);background:rgba(217,154,29,.16);color:#FFE7B1}
.topbar .icon-btn{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff}.topbar .icon-btn:hover{background:rgba(255,255,255,.16)}
.bottom-nav{border-color:var(--line);background:rgba(255,255,255,.98)}
.nav-btn{color:var(--muted);transition:background-color .15s ease,color .15s ease}.nav-btn:hover{color:var(--engineering-navy)}.nav-btn.active{color:var(--engineering-navy)}

/* Common surfaces */
.card,.home-panel,.list-item,.project-card,.project-card-wrap,.folder-card,.library-breadcrumb{border-color:var(--line)}
.card{border-radius:var(--radius-panel);box-shadow:var(--shadow)}.card.flat{box-shadow:none}.home-panel,.project-card-wrap,.folder-card{border-radius:var(--radius-panel)}
.folder-card:hover,.workflow-step:hover{background:#F8FAFB}.folder-icon,.stat-icon{background:var(--surface-3);border-color:var(--line);color:var(--engineering-navy)}
.section-title h2{color:var(--graphite);font-weight:850}.section-title p,.hint,.list-meta,.project-card p{color:var(--muted)}.money{font-variant-numeric:tabular-nums}

/* Buttons and controls */
.btn{border-color:var(--line-strong);border-radius:var(--radius-button);background:var(--surface);color:var(--graphite);box-shadow:0 1px 2px rgba(22,50,79,.035)}
.btn:hover{border-color:#8FA1B0;background:#F8FAFB}.btn.primary{background:var(--engineering-navy);border-color:var(--engineering-navy);color:#fff}.btn.primary:hover{background:#102A43;border-color:#102A43}
.btn.danger{color:var(--danger);border-color:#E7B8B4;background:#fff}.btn.danger:hover{background:#FFF8F7;border-color:#D9948E}.btn.ghost{box-shadow:none}.btn.small{border-radius:8px}
.icon-btn{border-color:var(--line-strong);border-radius:var(--radius-button);background:#fff;color:var(--engineering-navy)}
.input,.select,.textarea{border-color:var(--line-strong);border-radius:var(--radius-control);background:#fff;color:var(--graphite)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--steel-blue);box-shadow:0 0 0 3px rgba(47,93,124,.14)}.field label{color:#43515E}

/* Status / emphasis */
.tag{border-color:var(--line);background:#F6F8FA;color:#52606C}.notice{border-color:#E7C97D;background:#FFF9E8;color:#76530B;border-radius:10px}.notice.info{border-color:#B8CFDF;background:#F2F7FA;color:#214966}
.sync-pill{border-color:var(--line-strong);background:#fff;color:var(--engineering-navy)}

/* Restrained engineering identity */
.home-hero{background:var(--engineering-navy);border-radius:var(--radius-panel);box-shadow:0 7px 24px rgba(22,50,79,.13)}.home-hero .home-kicker{color:#B9C9D6}.home-hero p{color:#DDE7EE}
.home-hero-action{background:#fff!important;color:var(--engineering-navy)!important;border-color:#fff!important}.workflow-no{background:var(--engineering-navy)}.workflow-step{border-color:var(--line);border-radius:10px}

/* Specialist tables keep their own sizing/behavior; only neutral palette is normalized. */
table{color:var(--graphite)}.ahsp-doc-table th{background:#EEF2F5;color:#43515E}.ahsp-doc-section-row td{background:#F3F6F8}.ahsp-doc-total-row td{background:#E5EDF3}
.big-total{background:var(--engineering-navy);border-radius:var(--radius-panel)}.big-total .label{color:#CBD8E2}

/* Modal visuals only — close/back/outside-click behavior is unchanged. */
.modal-backdrop{background:rgba(17,35,52,.52)}.modal{border-radius:var(--radius-modal) var(--radius-modal) 0 0;box-shadow:var(--shadow-modal)}.modal-title{color:var(--graphite)}.modal-actions{background:#fff}

@media (orientation:landscape) and (min-width:680px){
  .topbar{background:rgba(22,50,79,.98);border-bottom-color:rgba(255,255,255,.12)}.bottom-nav{background:#fff;border-right-color:var(--line)}.landscape-brand{border-bottom-color:var(--line)}
  .brand-mark{width:36px;height:36px;border-radius:10px;background:var(--engineering-navy) url('icons/icon.svg') center/cover no-repeat;color:transparent;font-size:0;box-shadow:0 2px 7px rgba(22,50,79,.16)}
  .landscape-brand strong{color:var(--engineering-navy)}.nav-btn.active{background:var(--engineering-navy);color:#fff}.nav-btn.active span{background:rgba(255,255,255,.12)}.editor-toolbar{background:var(--bg)}
}
@media (orientation:portrait) and (min-width:760px){.bottom-nav{border-color:var(--line);box-shadow:0 10px 28px rgba(22,50,79,.12)}}
@media (min-width:760px){.modal{border-radius:var(--radius-modal)}}


/* v2.0.14 · FA-00 BAGIAN 2 — Page & Component Visual Consistency */
/* Visual-only finalization. No workflow, data, sync, calculation, or editor behavior changes. */

/* Global rhythm + keyboard focus */
.view{padding-top:14px}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--steel-blue);outline-offset:2px}
.home-kicker{color:var(--steel-blue)}
.section-title{margin-top:18px;margin-bottom:9px}.section-title h2{letter-spacing:-.01em}.section-title p{line-height:1.4}
.divider{background:var(--line)}

/* Toolbars, tabs, list rows */
.toolbar{row-gap:7px}.toolbar>.hint{line-height:1.4}
.tabs{gap:5px;scrollbar-width:thin}.tab{border-color:var(--line);background:var(--surface);color:#52606C;border-radius:999px;padding:6px 10px}
.tab:hover{border-color:#9AACBA;background:var(--surface-2);color:var(--engineering-navy)}
.tab.active{background:var(--engineering-navy);border-color:var(--engineering-navy);color:#fff}
.list{gap:7px}.list-item{border-radius:10px;box-shadow:none;transition:border-color .15s ease,background-color .15s ease}.list-item:hover{border-color:#AFC0CC;background:#FBFCFD}
.kebab{color:var(--slate);border-radius:7px}.kebab:hover{background:var(--surface-3);color:var(--engineering-navy)}

/* Home: keep current content, make hierarchy consistent with the new system. */
.home-stats{gap:8px}.home-stat{border-radius:11px!important}.home-stat[data-go]:hover{border-color:#AFC0CC;background:#FBFCFD}
.home-panel{box-shadow:0 1px 3px rgba(22,50,79,.035)}
.home-panel-head{padding-bottom:7px;border-bottom:1px solid #EDF1F4}.home-panel-head h2,.cloud-home-top h2,.home-reference h2{color:var(--graphite);font-weight:850}
.workflow-step{background:#fff}.workflow-step:hover{border-color:#AFC0CC}.workflow-step b{color:#8293A0}
.home-project-row{border-top-color:#EDF1F4;border-radius:7px}.home-project-row:hover{background:var(--surface-2);padding-left:7px;padding-right:7px}.home-project-row>span{color:#8293A0}
.cloud-home-card{background:#F7F9FB}.cloud-home-action{background:#fff}.home-reference{border-left:3px solid var(--steel-blue)}

/* Price/AHSP libraries */
.library-folder-head,.library-breadcrumb{border-color:var(--line);box-shadow:0 2px 8px rgba(22,50,79,.045)}
.library-folder-head{border-top:3px solid var(--steel-blue)}.library-breadcrumb{border-left:3px solid var(--steel-blue)}
.folder-card{border-color:var(--line);box-shadow:0 1px 4px rgba(22,50,79,.04)}.folder-card:hover{border-color:#AFC0CC;box-shadow:0 4px 12px rgba(22,50,79,.06)}
.folder-card.pinned{border-color:#C9B06B;box-shadow:0 4px 14px rgba(22,50,79,.07)}.folder-card.pinned .folder-icon{background:#FFF8E8;border-color:#E6C979;color:#805A0A}.pin-folder-btn.active{background:var(--engineering-navy);border-color:var(--engineering-navy);color:#fff}
.ahsp-doc-editor{border-color:#AAB7C2;box-shadow:0 2px 10px rgba(22,50,79,.05)}.ahsp-doc-title{background:#F6F8FA;border-bottom-color:var(--line-strong);color:var(--graphite)}
.ahsp-doc-table th{background:#EEF2F5;color:#43515E}.ahsp-doc-section-row td{background:#F3F6F8}.ahsp-doc-section-row .ahsp-doc-code{background:#E8EEF3;color:var(--engineering-navy)}.ahsp-doc-total-row td{background:#E5EDF3;border-top-color:#95A9B8}
.ahsp-doc-add{color:var(--engineering-navy);border-color:#B9C6D0}.ahsp-doc-add:hover{border-color:var(--steel-blue);background:#F5F8FA}

/* Project list + project hub presentation. Workflow itself remains unchanged. */
.project-card-wrap{border-radius:11px;box-shadow:0 1px 4px rgba(22,50,79,.04);transition:border-color .15s ease,box-shadow .15s ease}.project-card-wrap:hover{border-color:#AFC0CC;box-shadow:0 4px 12px rgba(22,50,79,.06)}
.project-card{border-radius:0;padding:12px 13px}.project-card h3{color:var(--engineering-navy)}.project-card-actions{padding:8px 13px 10px;border-top:1px solid #EDF1F4;background:#FBFCFD}.project-mini-meta{color:#687785}
.project-head{padding:1px 0 11px;border-bottom:1px solid var(--line)}.project-head h2{color:var(--engineering-navy);letter-spacing:-.015em}
.project-choice-grid{gap:9px;margin-top:13px}.choice-card{border-radius:11px;padding:13px;gap:11px;box-shadow:0 1px 4px rgba(22,50,79,.045);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.choice-card:hover:not(:disabled){border-color:#AFC0CC;background:#FBFCFD;box-shadow:0 4px 12px rgba(22,50,79,.06)}
.choice-card.primary-choice{border-color:#AFC0CC;box-shadow:inset 3px 0 0 var(--engineering-navy),0 1px 4px rgba(22,50,79,.045)}.choice-icon{width:36px;height:36px;border-radius:9px;background:var(--surface-3);color:var(--engineering-navy)}
.rab-list{gap:7px}.rab-list-row{border-radius:10px;box-shadow:none}.rab-list-row:hover{border-color:#9FB2C0;box-shadow:0 3px 10px rgba(22,50,79,.055);transform:none}.rab-list-row:focus-visible{outline-color:var(--steel-blue)}
.rab-list-index{background:var(--surface-3);border-color:var(--line);color:var(--engineering-navy)}.rab-list-arrow{color:#8293A0}.rab-list-editor{color:#687785!important}
.rab-planning-choice-grid .rab-plan-create{background:#FBFCFD;border-color:#AFC0CC}.rab-plan-locked-notice{border-left-color:var(--steel-blue)}
.rab-realization-choice{border-color:#AFC0CC!important;background:#FBFCFD}.rab-realization-choice .choice-icon,.rab-list-index.realization{background:var(--engineering-navy);border-color:var(--engineering-navy);color:#fff}
.rab-realization-snapshot-badge,.rab-realization-chip{border-color:#B9C6D0;background:#F3F7FA;color:#39556C}

/* RAB document shell: preserve table dimensions, hierarchy colors and formulas. */
.editor-toolbar{padding:5px 0 7px;border-bottom:1px solid #E1E7EC}.rab-document{border-color:#B7C3CD;border-radius:10px;box-shadow:0 5px 18px rgba(22,50,79,.07)}
.rab-doc-head{background:#fff}.rab-doc-head h2{color:var(--engineering-navy)}.rab-info{border-top-color:#DCE3E8}
.rab-doc-table th{background:#EEF2F5;color:#43515E;border-color:#C8D2DA}.rab-doc-table td{border-color:#D2DAE0}.rab-doc-table .round-row td{background:var(--engineering-navy);color:#fff}.rab-live-total{background:#F4F7F9;border-color:#C9D4DC}
.rab-summary .final{background:var(--engineering-navy)}.rab-summary .final span{color:#CDD9E2}

/* Volume outer workspace only. Specialist per-template table/layout rules remain untouched. */
.ve2-hero{border-color:var(--line)!important;background:#fff!important;box-shadow:0 1px 4px rgba(22,50,79,.04)!important}.ve2-hero-title-line h2{color:var(--engineering-navy)}
.volume-list-searchbar{border-color:var(--line);background:#F6F8FA}.volume-list-searchbar>span{color:var(--steel-blue)}
.ve2-group-card{border-color:#C9D4DC;background:#F7F9FB}.ve2-group-head{border-bottom-color:#C9D4DC;background:#EAF0F5}.ve2-group-head h3{color:var(--engineering-navy)}
.ve2-work-card{border-color:#D4DCE3}.ve2-work-head{border-left-color:var(--steel-blue);background:#FBFCFD}.ve2-work-head strong{color:var(--graphite)}
.ve2-output-result{border-color:#CFE2D5;background:#F6FBF7}.ve2-workspace-table th,.ve2-config-table th,.ve2-ws-multi-table.ve2-sheet-table th{background:#EAF0F5!important;color:#43586A!important;border-color:#C9D4DC!important}

/* Settings stays functionally identical until FA-09; only visual hierarchy is standardized. */
.sync-summary{gap:7px}.sync-summary>div{border-color:var(--line);border-radius:9px;padding:9px;background:#FBFCFD}.sync-summary span{font-size:10px;color:var(--muted)}.sync-summary strong{font-size:12px;color:var(--graphite)}
.identity-setting-row{padding-top:2px}.danger-zone{border-color:#E4C1BD;background:#FFF9F8;border-radius:11px}.danger-zone>strong{color:#8A2E26}.version{color:#74818C}

/* Compact responsive guard rails for global UI only. */
@media(max-width:620px){
  .view{padding-left:10px;padding-right:10px}.section-title{margin-top:15px}.toolbar{gap:6px}.toolbar .search{min-width:150px}
  .project-card-actions{flex-wrap:wrap}.project-head{gap:8px}.choice-card{padding:11px}.rab-list-row{border-radius:9px}
  .identity-setting-row .input{max-width:none!important;flex:1 1 170px}.identity-setting-row .btn{flex:0 0 auto}
}
@media(max-width:420px){
  .home-panel-head{align-items:flex-start}.project-card-actions .btn{flex:1 1 auto}.project-head>.toolbar{width:100%;justify-content:flex-start}
  .toolbar .sort-select{max-width:100%;flex:1 1 170px}.sync-summary{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* v2.0.15 · FA-01 BAGIAN 1 — Main Navigation Structure */
.nav-label-short{display:none}
.field-tools-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface)}
.field-tools-intro h2{margin:3px 0 0;font-size:18px;color:var(--graphite)}
.field-tools-intro p{max-width:660px;margin:5px 0 0;font-size:11px;line-height:1.45;color:var(--muted)}
.field-tools-placeholder{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;margin-top:10px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:var(--radius-panel);background:rgba(255,255,255,.72)}
.field-tools-placeholder-mark{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--surface-3);color:var(--engineering-navy);font-size:20px;font-weight:900}
.field-tools-placeholder strong{display:block;font-size:12px;color:var(--graphite)}
.field-tools-placeholder p{margin:3px 0 0;font-size:10.5px;line-height:1.4;color:var(--muted)}
@media(max-width:430px){
  .bottom-nav .nav-btn{padding-left:2px;padding-right:2px}.bottom-nav .nav-btn small{font-size:9px}
  .nav-label-full{display:none}.nav-label-short{display:inline}
  .field-tools-intro{align-items:stretch;flex-direction:column}.field-tools-intro .tag{align-self:flex-start}
}
@media (orientation:landscape) and (min-width:680px){
  .nav-label-full{display:inline}.nav-label-short{display:none}
}


/* v2.0.16 · FA-01 BAGIAN 2 — Navigation / Header / Back / Toolbar finalization */
/* The icon rule in legacy navigation also matched the nested responsive text spans.
   Scope label spans explicitly so only the actual icon receives the icon box styling. */
.bottom-nav .nav-btn small .nav-label-full,
.bottom-nav .nav-btn small .nav-label-short{
  width:auto;height:auto;border-radius:0;background:transparent;
  display:inline;place-items:initial;font-size:inherit;font-weight:inherit;line-height:1.15;
}
.bottom-nav .nav-btn small .nav-label-short{display:none}

/* One route-level Back primitive. IDs / history behavior remain unchanged. */
.route-back-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  min-height:32px;padding:6px 10px;border-color:var(--line-strong);
  background:var(--surface);color:var(--engineering-navy);font-weight:800;
  white-space:nowrap;
}
.route-back-btn:hover{border-color:var(--steel-blue);background:var(--surface-2);color:var(--engineering-navy)}
.project-head .route-back-btn{margin-bottom:8px}

/* Keep the global header stable when a route title or sync label is long. */
.topbar>div:first-child{min-width:0}
.topbar h1{max-width:min(70vw,760px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{flex:0 0 auto}

/* Shared page-level action alignment; calculation tables keep their own specialized rules. */
.editor-toolbar>.toolbar,.project-head>.toolbar,.library-head-actions{align-items:center}
.route-shortcuts{min-width:0}
.route-shortcuts>.route-back-btn{max-width:min(42vw,360px);overflow:hidden;text-overflow:ellipsis}

@media(max-width:430px){
  .bottom-nav .nav-btn small .nav-label-full{display:none}
  .bottom-nav .nav-btn small .nav-label-short{display:inline}
}
@media (orientation:landscape) and (min-width:680px){
  .bottom-nav .nav-btn small .nav-label-full{display:inline}
  .bottom-nav .nav-btn small .nav-label-short{display:none}
  .route-back-btn{min-height:30px;padding:5px 9px}
}
@media(max-width:720px){
  .topbar h1{max-width:64vw}
  .library-breadcrumb .route-back-btn{justify-self:start}
  .project-head>.toolbar{justify-content:flex-start}
}


/* v2.0.17 · FA-02 BAGIAN 1 — Home as Work Dashboard */
.home-work-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border:1px solid #254A67;border-radius:var(--radius-panel);background:var(--engineering-navy);color:#fff;box-shadow:0 6px 20px rgba(22,50,79,.11)}
.home-work-identity{min-width:0}.home-work-identity .home-kicker{color:#B9C9D6}.home-work-identity h2{margin:4px 0 4px;font-size:19px;line-height:1.15;letter-spacing:-.015em}.home-work-identity p{max-width:720px;margin:0;color:#DDE7EE;font-size:10.5px;line-height:1.45}
.home-work-sync{flex:0 0 min(360px,38%);display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08)}
.home-work-sync.warning{border-color:rgba(217,154,29,.65);background:rgba(217,154,29,.12)}.home-work-sync .cloud-dot{margin:0;box-shadow:0 0 0 3px rgba(255,255,255,.12)}.home-work-sync>div{min-width:0}.home-work-sync strong{display:block;font-size:10.5px;color:#fff}.home-work-sync small{display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#D6E1E9}.home-work-sync .btn{padding:5px 8px;background:#fff;border-color:#fff;color:var(--engineering-navy)}
.home-work-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.7fr);gap:10px;margin-top:10px}.home-work-main,.home-work-side{display:grid;gap:10px;align-content:start}
.home-continue-panel{border-left:3px solid var(--steel-blue)}.home-continue-panel .home-panel-head{align-items:flex-start}.home-continue-panel .home-panel-head h2{margin-top:2px;font-size:15px}.home-continue-panel .tag{flex:0 0 auto}.home-continue-actions{display:flex;gap:7px;flex-wrap:wrap}.home-continue-actions .btn.primary{min-width:138px}
.home-recent-list{display:grid;gap:6px}.home-recent-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 14px;gap:9px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;color:var(--text)}.home-recent-row:hover{border-color:#9FB2C0;background:#FBFCFD}.home-recent-row>div{min-width:0}.home-recent-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}.home-recent-row small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;color:var(--muted)}.home-recent-row>b{color:#8293A0;font-size:16px}.home-recent-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-3);color:var(--engineering-navy);font-size:12px;font-weight:900}.home-recent-empty{padding:10px;border:1px dashed var(--line);border-radius:9px;background:#FBFCFD;color:var(--muted);font-size:10px}
.home-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.home-quick-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;color:var(--text)}.home-quick-item:hover{border-color:#9FB2C0;background:#FBFCFD}.home-quick-item>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--surface-3);color:var(--engineering-navy);font-weight:900}.home-quick-item strong{display:block;font-size:10.5px}.home-quick-item small{display:block;margin-top:1px;font-size:8.8px;color:var(--muted)}
.home-field-shortcut{border-left:3px solid var(--safety-amber)}.home-field-shortcut-copy{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;margin:6px 0 10px}.home-field-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:#FFF7E6;border:1px solid #ECD8A1;color:#8B6414;font-size:18px;font-weight:900}.home-field-shortcut h2{margin:0;font-size:13px}.home-field-shortcut p{margin:2px 0 0;font-size:9.5px;line-height:1.4;color:var(--muted)}.home-field-shortcut>.btn{width:100%}
@media(max-width:820px){.home-work-dashboard{grid-template-columns:1fr}.home-work-side{grid-template-columns:1fr 1fr}.home-work-sync{flex-basis:42%}}
@media(max-width:620px){.home-work-hero{align-items:stretch;flex-direction:column;padding:13px}.home-work-sync{flex-basis:auto;width:100%}.home-work-dashboard{margin-top:8px}.home-work-side{grid-template-columns:1fr}.home-quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.home-quick-grid{grid-template-columns:1fr}.home-work-sync{grid-template-columns:12px minmax(0,1fr)}.home-work-sync .btn{grid-column:1/-1;width:100%}}
@media (orientation:landscape) and (min-width:680px){.home-work-hero{padding:13px 15px}.home-work-dashboard{grid-template-columns:minmax(0,1.6fr) minmax(250px,.66fr);gap:9px}.home-work-main,.home-work-side{gap:9px}.home-quick-grid{grid-template-columns:1fr 1fr}.home-work-sync{flex-basis:min(380px,36%)}}

/* v2.0.18 · FA-02 BAGIAN 2 — compact project facts + recent activity */
.home-project-facts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 9px}.home-project-facts span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:9px;line-height:1.2;color:var(--muted)}.home-project-facts b{font-size:10px;color:var(--engineering-navy);font-variant-numeric:tabular-nums}
.home-activity-list{display:grid;gap:4px}.home-activity-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 12px;gap:8px;align-items:center;padding:7px 6px;border:0;border-top:1px solid #EDF1F4;background:transparent;text-align:left;color:var(--text)}.home-activity-row:first-child{border-top:0}.home-activity-row:hover{background:var(--surface-2);border-radius:8px}.home-activity-row>div{min-width:0}.home-activity-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.8px}.home-activity-row small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--muted)}.home-activity-row>b{font-size:15px;color:#8293A0}.home-activity-type{width:34px;height:24px;display:grid;place-items:center;border:1px solid #BFCBD4;border-radius:7px;background:#F4F7F9;color:var(--engineering-navy);font-size:8px;font-weight:900;letter-spacing:.05em}.home-activity-type.volume{border-color:#D9C58E;background:#FFF9E9;color:#8B6414}
@media(max-width:620px){.home-project-facts{margin-bottom:8px}.home-activity-row{padding:8px 4px}.home-activity-row small{white-space:normal;line-height:1.3}.home-activity-panel .home-panel-head .btn{padding:5px 7px}}
@media(max-width:390px){.home-project-facts{gap:4px}.home-project-facts span{padding:4px 6px}.home-activity-row{grid-template-columns:32px minmax(0,1fr) 10px;gap:7px}.home-activity-type{width:32px}}


/* v2.0.19 · FA-03 BAGIAN 1 — compact project activity metadata */
.project-activity-meta{display:flex;align-items:center;gap:7px;margin-top:8px;color:var(--muted);font-size:10.5px;line-height:1.35;min-width:0}
.project-activity-meta>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-activity-meta strong{color:var(--graphite);font-weight:750}
.project-activity-source{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:20px;padding:0 6px;border:1px solid #C8D4DD;border-radius:999px;background:#F4F7F9;color:var(--engineering-navy);font-size:8.5px;font-weight:850;letter-spacing:.06em}
.project-activity-source.volume{border-color:#B9CCD8;background:#EEF4F7;color:var(--steel-blue)}
.project-activity-source.rab{border-color:#BFCBD5;background:#F3F6F8;color:var(--engineering-navy)}
.project-activity-source.project{border-color:#D6DCE1;background:#F7F8F9;color:var(--slate)}
@media(max-width:520px){.project-activity-meta{align-items:flex-start}.project-activity-meta>span:last-child{white-space:normal}.project-activity-source{margin-top:1px}}


/* v2.0.20 · FA-03 BAGIAN 2 — project list final UI / responsive / empty state */
.project-list-title{margin-top:9px;margin-bottom:7px}.project-list-title p{margin:2px 0 0;font-size:9.5px;color:var(--muted)}
.project-list{gap:8px}.project-card .project-head{gap:12px}.project-card .project-head>div:first-child{min-width:0}.project-card .project-head h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card .project-head p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card .money{flex:0 0 auto;font-size:11.5px;font-weight:850;color:var(--engineering-navy);white-space:nowrap}
.project-activity-unknown{color:#7A8791}.project-facts{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:8px}.project-facts span{display:inline-flex;align-items:center;min-height:20px;padding:3px 6px;border:1px solid #D9E0E5;border-radius:999px;background:#F7F9FA;color:#667480;font-size:8.8px;line-height:1.15}.project-facts .locked{border-color:#E4D29F;background:#FFF8E8;color:#7F5D16}
.project-empty-state{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 13px;border:1px dashed #B8C5CE;border-radius:var(--radius-panel);background:#FBFCFD}.project-empty-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid #D5DEE5;border-radius:10px;background:var(--surface-3);color:var(--engineering-navy);font-size:17px;font-weight:900}.project-empty-state strong{display:block;font-size:11px;color:var(--graphite)}.project-empty-state p{margin:2px 0 0;font-size:9.5px;line-height:1.35;color:var(--muted)}
@media(max-width:620px){.project-list-toolbar{align-items:stretch}.project-list-toolbar .hint{flex-basis:100%!important}.project-list-toolbar #add-project{margin-left:auto}.project-card{padding:11px 11px}.project-card .project-head{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding-bottom:8px}.project-card .money{justify-self:start}.project-activity-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px}.project-facts{gap:4px;margin-top:7px}.project-facts span{font-size:8.5px}.project-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.project-card-actions .btn{width:100%}.project-empty-state{grid-template-columns:34px minmax(0,1fr);padding:11px}.project-empty-mark{width:34px;height:34px}.project-empty-state .btn{grid-column:1/-1;width:100%}}
@media(max-width:390px){.project-list-toolbar{display:grid;grid-template-columns:1fr}.project-list-toolbar #add-project{width:100%}.project-activity-meta{align-items:start}.project-activity-source{min-width:38px}.project-facts span{padding:3px 5px}.project-card-actions{grid-template-columns:1fr 72px}}

/* v2.0.21 · FA-04 BAGIAN 1 — Bank Harga table-first / compact responsive */
.price-library-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,210px) auto;gap:7px;align-items:center}
.price-library-toolbar .search,.price-library-toolbar .sort-select{min-width:0;max-width:none}
.price-filter-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:8px;padding:7px 0 6px;border-bottom:1px solid var(--line)}
.price-filter-tabs{flex:0 0 auto;padding:0;overflow:visible}.price-filter-tabs .tab{display:inline-flex;align-items:center;gap:5px;padding:5px 8px}
.price-filter-tabs .tab span{display:inline-grid;place-items:center;min-width:18px;height:16px;padding:0 4px;border-radius:999px;background:#EEF2F5;color:#657480;font-size:8px;font-weight:850;font-variant-numeric:tabular-nums}
.price-filter-tabs .tab.active span{background:rgba(255,255,255,.18);color:#fff}
.price-filter-summary{min-width:0;display:flex;align-items:baseline;justify-content:flex-end;gap:7px;text-align:right}.price-filter-summary strong{font-size:10.5px;color:var(--graphite);white-space:nowrap}.price-filter-summary span{max-width:560px;font-size:8.8px;line-height:1.35;color:var(--muted)}
.price-table-shell{margin-top:8px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.price-table-head,.price-table-row{display:grid;grid-template-columns:78px 92px minmax(220px,1fr) 70px 132px 112px;align-items:center}
.price-table-head{min-height:30px;background:var(--surface-3);border-bottom:1px solid var(--line);color:#667480;font-size:8.7px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.price-table-head>span{padding:6px 8px}.price-table-head>span:nth-child(4),.price-table-head>span:nth-child(5),.price-table-head>span:nth-child(6){text-align:center}
.price-table-body{display:grid}.price-table-row{min-height:46px;border-top:1px solid #E8EDF0;transition:background-color .15s ease}.price-table-row:first-child{border-top:0}.price-table-row:hover{background:#FBFCFD}
.price-cell{min-width:0;padding:7px 8px;font-size:10px}.price-cell-code{font-size:9.5px;font-weight:750;color:#53616C;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-cell-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.7px;line-height:1.25;color:var(--graphite)}.price-cell-main small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.7px;line-height:1.25;color:var(--muted)}
.price-cell-type .tag{padding:3px 6px;font-size:8px}.price-cell-unit{text-align:center;color:#53616C;font-weight:700}.price-cell-money{text-align:right;font-size:10.7px;color:var(--engineering-navy)}
.price-cell-actions{display:flex;justify-content:flex-end;gap:4px}.price-cell-actions .btn.small{padding:5px 7px;font-size:9px;border-radius:7px}
.price-table-body>.card.empty{margin:8px;border-style:dashed;border-radius:9px;padding:12px;font-size:10px}
@media(max-width:860px){.price-table-head,.price-table-row{grid-template-columns:72px 80px minmax(180px,1fr) 58px 112px 104px}.price-cell{padding-left:6px;padding-right:6px}.price-table-head>span{padding-left:6px;padding-right:6px}}
@media(max-width:680px){.price-library-toolbar{grid-template-columns:minmax(0,1fr) minmax(132px,.62fr)}.price-library-toolbar #add-price{grid-column:1/-1;width:100%}.price-filter-bar{display:grid;gap:6px}.price-filter-tabs{overflow:auto;max-width:100%}.price-filter-summary{justify-content:flex-start;text-align:left;display:grid;gap:2px}.price-filter-summary span{max-width:none}.price-table-shell{border:0;border-radius:0;background:transparent;overflow:visible}.price-table-head{display:none}.price-table-body{gap:6px}.price-table-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"type main money" "code main unit" "actions actions actions";gap:2px 7px;min-height:0;padding:8px 9px;border:1px solid var(--line)!important;border-radius:9px;background:#fff}.price-cell{padding:0}.price-cell-type{grid-area:type;align-self:start}.price-cell-code{grid-area:code;align-self:end;font-size:8.8px}.price-cell-main{grid-area:main}.price-cell-main strong,.price-cell-main small{white-space:normal}.price-cell-unit{grid-area:unit;align-self:end;text-align:right;font-size:9px}.price-cell-money{grid-area:money;align-self:start;font-size:10.5px}.price-cell-actions{grid-area:actions;justify-content:flex-end;margin-top:5px;padding-top:6px;border-top:1px solid #EEF1F3}.price-cell-actions .btn.small{min-width:52px}}
@media(max-width:390px){.price-library-toolbar{grid-template-columns:1fr}.price-library-toolbar #add-price{grid-column:auto}.price-filter-tabs .tab{padding:5px 7px}.price-table-row{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"type money" "code unit" "main main" "actions actions"}.price-cell-main{margin-top:4px}.price-cell-money,.price-cell-unit{text-align:right}.price-cell-actions .btn.small{flex:1}}

/* v2.0.22 · FA-04 BAGIAN 2 — AHSP table-first / category clarity / compact responsive */
.ahsp-library-toolbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(150px,205px) auto;gap:7px;align-items:center;margin-top:1px}
.ahsp-library-toolbar .search,.ahsp-library-toolbar .sort-select{min-width:0;max-width:none;width:100%}
.ahsp-library-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.ahsp-library-actions:empty{display:none}.ahsp-library-actions .btn{min-height:32px;padding:6px 8px;font-size:9.7px;border-radius:8px;white-space:nowrap}
.ahsp-list-title{margin-top:8px;margin-bottom:6px}.ahsp-list-title h2{font-size:12.5px}.ahsp-list-title p{font-size:9px;line-height:1.35}
.ahsp-table-shell{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.ahsp-table-head,.ahsp-table-row{display:grid;grid-template-columns:76px minmax(210px,1fr) 54px 92px 92px 92px 54px 122px 104px;align-items:center}
.ahsp-table-head{min-height:30px;background:var(--surface-3);border-bottom:1px solid var(--line);color:#667480;font-size:8.2px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.ahsp-table-head>span{padding:6px 6px}.ahsp-table-head>span:nth-child(n+3){text-align:center}
.ahsp-table-body{display:grid}.ahsp-table-row{min-height:50px;border-top:1px solid #E8EDF0;transition:border-color .15s ease,background-color .15s ease;cursor:pointer}
.ahsp-table-row:first-child{border-top:0}.ahsp-table-row:hover{background:#FBFCFD}
.ahsp-cell{min-width:0;padding:6px;font-size:9.5px}.ahsp-cell-code strong{display:block;font-size:9.5px;color:var(--engineering-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ahsp-cell-code small{display:block;margin-top:2px;font-size:7.8px;color:var(--muted);white-space:nowrap}
.ahsp-cell-main strong{display:block;font-size:10.4px;line-height:1.25;color:var(--graphite);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ahsp-cell-main small{display:block;margin-top:2px;font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ahsp-cell-unit,.ahsp-cell-profit{text-align:center;color:#53616C;font-weight:750;font-variant-numeric:tabular-nums}
.ahsp-cell-category{text-align:right;border-left:1px solid #F0F3F5}.ahsp-cell-category span{display:block;font-size:8.8px;font-weight:800;color:#42515D;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ahsp-cell-category small{display:block;margin-top:2px;font-size:7.4px;color:var(--muted);white-space:nowrap}
.ahsp-cell-upah{background:#F7FAFC}.ahsp-cell-material{background:#FAFBFC}.ahsp-cell-alat{background:#FFFCF5}
.ahsp-cell-money{text-align:right;font-size:10.5px;color:var(--engineering-navy);font-weight:900}.ahsp-cell-actions{display:flex;justify-content:flex-end;gap:4px}.ahsp-cell-actions .btn.small{padding:5px 6px;font-size:8.7px;border-radius:7px}
.ahsp-table-body>.card.empty{margin:8px;border-style:dashed;border-radius:9px;padding:12px;font-size:10px}
.ahsp-table-row.selection-mode{padding-right:34px}.ahsp-table-row.selection-mode .ahsp-cell-actions{display:none}

/* AHSP editor/detail: the three coefficient groups stay visibly separated without changing calculation logic. */
.ahsp-doc-section-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.ahsp-doc-section-label strong{font-size:9.7px}.ahsp-doc-section-label small{font-size:8px;color:var(--muted);font-weight:750;white-space:nowrap}
.ahsp-doc-section-main>span{display:flex;align-items:center;gap:7px}.ahsp-doc-section-main>span>small{display:inline-grid;place-items:center;min-width:42px;height:17px;padding:0 5px;border:1px solid #CDD6DE;border-radius:999px;background:#fff;color:#667480;font-size:7.6px;font-weight:800}
.ahsp-doc-section-row.ahsp-section-upah td{background:#EFF5F9}.ahsp-doc-section-row.ahsp-section-upah .ahsp-doc-code{background:#E2EDF4;color:var(--steel-blue)}
.ahsp-doc-section-row.ahsp-section-material td{background:#F3F6F8}.ahsp-doc-section-row.ahsp-section-material .ahsp-doc-code{background:#E8EEF3;color:var(--engineering-navy)}
.ahsp-doc-section-row.ahsp-section-alat td{background:#FFF8E8}.ahsp-doc-section-row.ahsp-section-alat .ahsp-doc-code{background:#F8EBCB;color:#8A6414}

@media(max-width:1040px){
  .ahsp-table-head,.ahsp-table-row{grid-template-columns:66px minmax(170px,1fr) 48px 78px 78px 78px 48px 108px 96px}
  .ahsp-cell{padding-left:5px;padding-right:5px}.ahsp-table-head>span{padding-left:5px;padding-right:5px}.ahsp-cell-category span{font-size:8.2px}
  .ahsp-library-toolbar{grid-template-columns:minmax(190px,1fr) minmax(145px,190px)}.ahsp-library-actions{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:720px){
  .ahsp-library-toolbar{grid-template-columns:minmax(0,1fr) minmax(126px,.58fr);gap:6px}.ahsp-library-actions{grid-column:1/-1;justify-content:stretch}.ahsp-library-actions .btn{flex:1 1 auto;min-width:0}
  .ahsp-table-shell{border:0;border-radius:0;background:transparent;overflow:visible}.ahsp-table-head{display:none}.ahsp-table-body{gap:6px}
  .ahsp-table-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"code main money" "unit main profit" "upah material alat" "actions actions actions";gap:2px 7px;min-height:0;padding:8px 9px;border:1px solid var(--line)!important;border-radius:9px;background:#fff;cursor:pointer}
  .ahsp-cell{padding:0}.ahsp-cell-code{grid-area:code}.ahsp-cell-main{grid-area:main}.ahsp-cell-unit{grid-area:unit;text-align:left;align-self:end;font-size:8.7px}.ahsp-cell-profit{grid-area:profit;text-align:right;align-self:end;font-size:8.7px}.ahsp-cell-money{grid-area:money;align-self:start;font-size:10.3px}
  .ahsp-cell-upah{grid-area:upah}.ahsp-cell-material{grid-area:material}.ahsp-cell-alat{grid-area:alat}.ahsp-cell-category{margin-top:5px;padding:5px 6px;border:1px solid #E4E9ED;border-radius:7px;text-align:left}.ahsp-cell-category span{font-size:8.3px}.ahsp-cell-category small{font-size:7.3px}
  .ahsp-cell-actions{grid-area:actions;justify-content:flex-end;margin-top:4px;padding-top:6px;border-top:1px solid #EEF1F3}.ahsp-cell-actions .btn.small{min-width:52px}
  .ahsp-table-row.selection-mode{padding-right:38px}.ahsp-table-row.selection-mode .ahsp-cell-actions{display:none}.ahsp-cell-main strong,.ahsp-cell-main small{white-space:normal}
}
@media(max-width:390px){
  .ahsp-library-toolbar{grid-template-columns:1fr}.ahsp-library-actions{grid-column:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ahsp-library-actions .btn.primary{grid-column:1/-1}
  .ahsp-table-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"code money" "main main" "unit profit" "upah material" "alat alat" "actions actions"}.ahsp-cell-main{margin-top:3px}.ahsp-cell-alat{text-align:left}.ahsp-cell-category{min-width:0}
  .ahsp-cell-actions .btn.small{flex:1}
}

/* v2.0.23 · FA-05 BAGIAN 1 — Project Hub workflow shell */
.project-hub-shell{display:grid;gap:12px}.project-hub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:2px 0 12px;border-bottom:1px solid var(--line)}
.project-hub-heading{min-width:0}.project-hub-heading>.route-back-btn{margin-bottom:8px}.project-hub-title-line{display:flex;align-items:center;gap:8px;min-width:0;margin-top:2px}.project-hub-title-line h2{margin:0;color:var(--engineering-navy);font-size:20px;letter-spacing:-.018em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-hub-heading>p{margin:4px 0 0;color:var(--muted);font-size:11px}
.project-hub-lock{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:3px 7px;font-size:8.5px;font-weight:850;letter-spacing:.02em;white-space:nowrap}.project-hub-lock.active{color:#285c45;background:#f2f8f5;border-color:#cfe1d7}.project-hub-lock.locked{color:var(--engineering-navy);background:#f3f6f8;border-color:#cdd8e0}
.project-hub-activity{display:flex;align-items:center;gap:7px;margin-top:8px;color:#687785;font-size:9.5px;line-height:1.35;min-width:0}.project-hub-activity .project-activity-source{flex:0 0 auto}.project-hub-activity-unknown{color:#81909a}.project-hub-head-actions{flex:0 0 auto;justify-content:flex-end}
.project-hub-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.project-hub-nav button{min-width:0;border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--engineering-navy);font:inherit;font-size:10px;font-weight:800;text-align:left;cursor:pointer}.project-hub-nav button:hover:not(:disabled){border-color:#9fb2c0;background:#fbfcfd}.project-hub-nav button:disabled{cursor:not-allowed;opacity:.52;background:#f5f7f8}.project-hub-nav b{font-size:9px;color:var(--steel-blue);font-variant-numeric:tabular-nums}
.project-hub-section{scroll-margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;box-shadow:0 1px 4px rgba(22,50,79,.035)}.project-hub-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #e7ecef}.project-hub-section-head>div:first-child{min-width:0}.project-hub-section-head h2{margin:2px 0 0;font-size:15px;color:var(--engineering-navy)}.project-hub-section-head p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.project-hub-section-head>.toolbar{flex:0 0 auto;justify-content:flex-end}.project-hub-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:999px;padding:0 5px;background:rgba(47,93,124,.1);font-size:8px;font-weight:900}
.project-hub-actionbar{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;padding:9px 0}.project-hub-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:3px 0 7px;color:var(--engineering-navy)}.project-hub-list-head strong{font-size:11px}.project-hub-list-head span{font-size:9px;color:var(--muted);font-weight:700}
.project-hub-empty{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border:1px dashed #cfd9df;border-radius:9px;padding:10px 11px;background:#fbfcfd;color:#60707c;font-size:9.5px}.project-hub-empty strong{color:var(--engineering-navy);font-size:10.5px}.project-hub-empty.muted{background:#f6f8f9}.project-hub-state-note{align-self:center;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted);font-size:8.5px;font-weight:800;white-space:nowrap}
.project-hub-section.rab-realization-section{margin-top:0;padding-top:12px}.project-hub-section.rab-realization-section.is-locked{background:#f8fafb}.project-hub-section .rab-plan-locked-notice{margin:9px 0 0}.project-hub-section .rab-list{margin-top:0}
.project-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:8px;border:1px solid #e5eaee;border-radius:9px;overflow:hidden}.project-info-grid>div{min-width:0;padding:9px 10px;background:#fff;border-right:1px solid #e5eaee;border-bottom:1px solid #e5eaee}.project-info-grid>div:nth-child(3){border-right:0}.project-info-grid span{display:block;font-size:8.5px;color:var(--muted);font-weight:800;margin-bottom:3px}.project-info-grid strong{display:block;font-size:10.5px;color:var(--graphite);font-weight:750;line-height:1.4;overflow-wrap:anywhere}.project-info-grid .project-info-notes{grid-column:1/-1;border-right:0;border-bottom:0}.project-info-grid .project-info-notes strong{font-weight:600;color:#51606b}
@media(max-width:720px){.project-hub-header{display:grid}.project-hub-head-actions{width:100%;justify-content:flex-start}.project-hub-title-line{align-items:flex-start;flex-wrap:wrap}.project-hub-title-line h2{white-space:normal;overflow:visible}.project-hub-activity{align-items:flex-start}.project-hub-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.project-hub-nav button:last-child{grid-column:1/-1}.project-hub-section{padding:10px}.project-hub-section-head{display:grid;gap:8px}.project-hub-section-head>.toolbar{width:100%;justify-content:flex-start}.project-hub-actionbar{justify-content:flex-start}.project-info-grid{grid-template-columns:1fr}.project-info-grid>div,.project-info-grid>div:nth-child(3){border-right:0;border-bottom:1px solid #e5eaee}.project-info-grid>div:last-child{border-bottom:0}.project-info-grid .project-info-notes{grid-column:auto}}
@media(max-width:420px){.project-hub-nav{gap:5px}.project-hub-nav button{padding:7px 8px;font-size:9px}.project-hub-head-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}.project-hub-head-actions .btn{width:100%}.project-hub-section .rab-list-actions{gap:4px}.project-hub-section .rab-list-actions .btn{font-size:8.5px;padding-inline:7px}}


/* v2.0.24 · FA-05 BAGIAN 2 — Project Hub final polish */
.project-info-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid #e7ecef}.project-info-actions>span{min-width:0;color:var(--muted);font-size:8.8px;line-height:1.35}.project-info-actions .btn{flex:0 0 auto}
.project-hub-section .rab-list-editor{line-height:1.35}.project-hub-section .rab-list-row{min-width:0}.project-hub-section .rab-list-copy{overflow:hidden}.project-hub-section .rab-list-actions .btn{white-space:nowrap}
@media(max-width:720px){
  .project-hub-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.project-hub-nav button,.project-hub-nav button:last-child{grid-column:auto;min-height:45px;padding:7px 6px;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}.project-hub-nav b{font-size:8px}
  .project-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-info-grid>div,.project-info-grid>div:nth-child(3){border-right:1px solid #e5eaee;border-bottom:1px solid #e5eaee}.project-info-grid>div:nth-child(even){border-right:0}.project-info-grid .project-info-notes{grid-column:1/-1;border-right:0}.project-info-actions{align-items:flex-start}
}
@media(max-width:420px){
  .project-hub-nav button{font-size:8.5px;line-height:1.2}.project-hub-actionbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.project-hub-actionbar .btn{width:100%;min-width:0}.project-hub-actionbar .btn.primary{grid-column:1/-1}
  .project-info-grid{grid-template-columns:1fr}.project-info-grid>div,.project-info-grid>div:nth-child(3),.project-info-grid>div:nth-child(even){border-right:0;border-bottom:1px solid #e5eaee}.project-info-grid .project-info-notes{grid-column:auto;border-bottom:0}.project-info-actions{display:grid}.project-info-actions .btn{width:100%}
  .project-hub-section .rab-list-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.project-hub-section .rab-list-actions .btn{min-width:0;width:100%;padding-inline:5px}
}


/* v2.0.25 · FA-06 BAGIAN 1 — Field Tools foundation */
.field-tools-session-note{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;margin-top:10px;padding:9px 11px;border:1px solid #CFD9E1;border-radius:10px;background:#F7F9FB}
.field-tools-session-note>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#EAF0F5;color:var(--engineering-navy);font-weight:900;font-size:14px}
.field-tools-session-note strong{display:block;font-size:10.8px;color:var(--graphite);line-height:1.2}.field-tools-session-note small{display:block;margin-top:2px;font-size:9.4px;line-height:1.35;color:var(--muted)}
.field-tool-groups{display:grid;gap:12px;margin-top:12px}.field-tool-group{padding:11px 12px 12px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface)}
.field-tool-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}.field-tool-group-head h3{margin:0;font-size:12px;line-height:1.2;color:var(--engineering-navy)}.field-tool-group-head p{margin:2px 0 0;font-size:9.5px;line-height:1.3;color:var(--muted)}
.field-tool-phase{flex:0 0 auto;padding:3px 7px;border:1px solid #CCD7DF;border-radius:999px;background:#F2F6F8;color:var(--steel-blue);font-size:8.5px;font-weight:850;letter-spacing:.03em}
.field-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.field-tool-card{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;row-gap:5px;align-items:center;padding:9px;border:1px solid #D7DFE5;border-radius:10px;background:#FBFCFD}.field-tool-card.is-pending{cursor:default}
.field-tool-icon{grid-row:1 / span 2;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#EAF0F5;color:var(--engineering-navy);font-size:14px;font-weight:900}.field-tool-copy{min-width:0}.field-tool-copy strong{display:block;font-size:10.7px;line-height:1.2;color:var(--graphite)}.field-tool-copy small{display:block;margin-top:2px;font-size:8.8px;line-height:1.3;color:var(--muted)}
.field-tool-state{justify-self:start;padding:2px 6px;border-radius:999px;background:#F0F2F4;color:#7A858F;font-size:7.8px;font-weight:800;line-height:1.2}
@media(max-width:860px){.field-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.field-tool-group{padding:9px}.field-tool-grid{gap:6px}.field-tool-card{grid-template-columns:28px minmax(0,1fr);padding:8px;column-gap:7px}.field-tool-icon{width:28px;height:28px;font-size:12px}.field-tool-copy strong{font-size:10px}.field-tool-copy small{font-size:8.3px}.field-tools-session-note{padding:8px 9px}}
@media(max-width:340px){.field-tool-grid{grid-template-columns:1fr}}


/* v2.0.26 · FA-06 BAGIAN 2 — Field Tools workspace shell */
.field-tool-card{appearance:none;width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;transition:border-color .14s ease,background .14s ease,transform .14s ease}.field-tool-card:hover{border-color:#A9BBC8;background:#F7FAFC}.field-tool-card:active{transform:translateY(1px)}.field-tool-card:focus-visible{outline:2px solid rgba(47,93,124,.35);outline-offset:2px}.field-tool-state{background:#EDF3F7;color:var(--steel-blue)}
.field-tool-workspace-toolbar{margin-bottom:10px}.field-tool-shell-phase{display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border:1px solid #CCD7DF;border-radius:999px;background:#F2F6F8;color:var(--steel-blue);font-size:8.5px;font-weight:850;white-space:nowrap}
.field-tool-shell-head{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff}.field-tool-shell-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#EAF0F5;color:var(--engineering-navy);font-size:18px;font-weight:900}.field-tool-shell-head h2{margin:2px 0 0;font-size:15px;color:var(--engineering-navy)}.field-tool-shell-head p{margin:3px 0 0;color:var(--muted);font-size:9.5px;line-height:1.35}
.field-tool-shell-note{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;padding:7px 9px;border-left:3px solid var(--steel-blue);background:#F7F9FB;color:var(--muted);font-size:9px;line-height:1.35}.field-tool-shell-note strong{color:var(--graphite);font-size:9.5px}.field-tool-shell-note span{min-width:0}
.field-tool-workspace-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:9px;margin-top:9px}.field-tool-pane{min-width:0;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff;overflow:hidden}.field-tool-pane-head{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 10px;border-bottom:1px solid #E5EAEE;background:#F7F9FA}.field-tool-pane-head>div{min-width:0}.field-tool-pane-head span{display:block;color:var(--steel-blue);font-size:7.5px;font-weight:900;letter-spacing:.08em}.field-tool-pane-head strong{display:block;margin-top:1px;color:var(--graphite);font-size:10.5px}.field-tool-pane-head small{flex:0 0 auto;color:var(--muted);font-size:8px;font-weight:800}
.field-tool-pane-empty{min-height:138px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-content:center;align-items:center;padding:14px}.field-tool-pane-empty>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#EEF3F6;color:var(--engineering-navy);font-size:14px;font-weight:900}.field-tool-pane-empty strong{display:block;color:var(--graphite);font-size:10.5px}.field-tool-pane-empty p{margin:2px 0 0;color:var(--muted);font-size:9px;line-height:1.35}.field-tool-result-empty{min-height:138px;display:grid;place-content:center;text-align:center;padding:14px}.field-tool-result-empty strong{font-size:25px;line-height:1;color:#82909A}.field-tool-result-empty span{margin-top:5px;color:var(--muted);font-size:9px}
@media(max-width:720px){.field-tool-workspace-toolbar{align-items:center}.field-tool-workspace-shell{grid-template-columns:1fr}.field-tool-output-pane{min-height:96px}.field-tool-pane-empty{min-height:112px}.field-tool-result-empty{min-height:88px}}
@media(max-width:430px){.field-tool-workspace-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.field-tool-workspace-toolbar>.toolbar{justify-content:flex-end;flex-wrap:nowrap}.field-tool-shell-phase{font-size:7.8px;padding-inline:6px}.field-tool-shell-head{grid-template-columns:36px minmax(0,1fr);padding:9px 10px}.field-tool-shell-icon{width:36px;height:36px;font-size:15px}.field-tool-shell-head h2{font-size:13px}.field-tool-shell-head p{font-size:8.8px}.field-tool-shell-note{font-size:8.5px}.field-tool-pane-head{padding:7px 9px}.field-tool-pane-empty{min-height:100px;padding:11px}.field-tool-result-empty{min-height:76px}}

/* v2.0.27 · FA-07 BAGIAN 1 — Konversi Satuan + Persentase */
.field-tool-card.is-active{border-color:#B8CAD6;background:#FAFCFD}.field-tool-card.is-active .field-tool-icon{background:#E4EEF4;color:var(--engineering-navy)}.field-tool-state.active{background:#ECF6F1;color:#286044;border:1px solid #D0E6DA}.field-tool-shell-phase.is-active{background:#ECF6F1;border-color:#D0E6DA;color:#286044}
.field-tool-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:11px}.field-tool-field{display:grid;gap:4px;min-width:0}.field-tool-field>span{font-size:8.5px;font-weight:850;color:var(--muted);line-height:1.2}.field-tool-field-wide{grid-column:1/-1}.field-tool-form .input,.field-tool-form .select{width:100%;min-width:0}.field-convert-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.field-convert-swap{align-self:end;justify-self:start;min-height:36px}.field-tool-live-result{min-height:160px;display:grid;place-content:center;text-align:center;padding:16px}.field-tool-live-result>strong{display:block;color:var(--engineering-navy);font-size:28px;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.field-tool-live-result>strong small{font-size:.48em;margin-left:3px;color:var(--steel-blue)}.field-tool-live-result>span{display:block;margin-top:7px;color:var(--muted);font-size:9.5px;line-height:1.4}.field-tool-live-result.is-warning>strong{color:#9A6814}.field-tool-live-result.is-warning>span{color:#7D6840}
@media(max-width:720px){.field-tool-live-result{min-height:104px}.field-tool-live-result>strong{font-size:24px}}
@media(max-width:430px){.field-tool-form{padding:9px;gap:7px}.field-tool-form,.field-convert-form{grid-template-columns:1fr}.field-tool-field-wide{grid-column:auto}.field-convert-swap{width:100%;min-height:32px}.field-tool-live-result{min-height:88px;padding:12px}.field-tool-live-result>strong{font-size:21px}}


/* v2.0.28 · FA-07 BAGIAN 2 — Elevasi multi-row + Kemiringan */
.field-elevation-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:11px 11px 7px}.field-elevation-control .field-tool-field{max-width:260px}.field-elevation-help,.field-slope-help{margin:0 11px 8px;padding:7px 9px;border-radius:8px;background:#F7F9FB;color:var(--muted);font-size:8.8px;line-height:1.4}.field-elevation-help strong{color:var(--graphite)}
.field-elevation-table-wrap{overflow-x:auto;padding:0 11px 11px}.field-elevation-table{width:100%;min-width:560px;border-collapse:collapse;font-size:9px}.field-elevation-table th{padding:6px 7px;background:#F2F5F7;color:var(--steel-blue);font-size:7.8px;letter-spacing:.03em;text-align:left;border:1px solid #DDE4E9}.field-elevation-table td{padding:5px 6px;border:1px solid #E1E7EB;vertical-align:middle}.field-elevation-table th:first-child,.field-elevation-table td:first-child{width:38px;text-align:center}.field-elevation-table th:nth-child(3),.field-elevation-table th:nth-child(4){width:132px}.field-elevation-table th:last-child,.field-elevation-table td:last-child{width:50px;text-align:center}.field-elevation-table .input{min-height:30px;padding:5px 7px;font-size:9px}.field-elevation-result{font-weight:850;font-variant-numeric:tabular-nums;color:var(--engineering-navy);text-align:right}.field-elevation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px}.field-elevation-summary>div,.field-slope-results>div{min-width:0;padding:9px;border:1px solid #E0E6EA;border-radius:9px;background:#FAFBFC}.field-elevation-summary span,.field-slope-results span{display:block;color:var(--muted);font-size:8px;font-weight:800}.field-elevation-summary strong,.field-slope-results strong{display:block;margin-top:3px;color:var(--engineering-navy);font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.field-slope-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px 11px 7px}.field-slope-results>div:last-child{grid-column:1/-1}.field-slope-message{margin:0 11px 11px;padding:7px 9px;border-radius:8px;background:#F7F9FB;color:var(--muted);font-size:8.8px;line-height:1.35}.field-slope-message.is-warning{background:#FFF8E8;color:#7B5C1C;border:1px solid #EAD9A8}
@media(max-width:720px){.field-elevation-summary,.field-slope-results{grid-template-columns:repeat(2,minmax(0,1fr))}.field-elevation-table-wrap{padding-bottom:9px}}
@media(max-width:430px){.field-elevation-control{grid-template-columns:1fr auto;padding:9px 9px 6px}.field-elevation-control .field-tool-field{max-width:none}.field-elevation-help,.field-slope-help{margin:0 9px 7px}.field-elevation-table-wrap{padding:0 9px 9px}.field-elevation-table{min-width:520px}.field-elevation-summary,.field-slope-results{padding:9px;gap:6px}.field-elevation-summary strong,.field-slope-results strong{font-size:11px}.field-slope-message{margin:0 9px 9px}}
@media(max-width:340px){.field-elevation-control{grid-template-columns:1fr}.field-elevation-control .btn{width:100%}.field-elevation-summary,.field-slope-results{grid-template-columns:1fr}.field-slope-results>div:last-child{grid-column:auto}}


/* v2.0.29 · FA-08 BAGIAN 1 — Volume Cepat + Beton Cepat */
.field-quantity-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px 7px}.field-quantity-help{min-width:0;color:var(--muted);font-size:8.7px;line-height:1.4}.field-quantity-help strong{color:var(--graphite)}
.field-quantity-table-wrap{max-width:100%;overflow-x:auto;padding:0 11px 11px;-webkit-overflow-scrolling:touch}.field-quantity-table{width:100%;min-width:830px;border-collapse:collapse;font-size:8.8px}.field-concrete-table{min-width:760px}.field-quantity-table th{padding:6px 6px;border:1px solid #DDE4E9;background:#F2F5F7;color:var(--steel-blue);font-size:7.4px;font-weight:900;letter-spacing:.02em;text-align:left;white-space:nowrap}.field-quantity-table td{padding:4px 5px;border:1px solid #E1E7EB;vertical-align:middle}.field-quantity-table th:first-child,.field-quantity-table td:first-child{width:34px;text-align:center}.field-quantity-table th:last-child,.field-quantity-table td:last-child{width:46px;text-align:center}.field-quantity-table .input,.field-quantity-table .select{min-width:74px;min-height:29px;padding:4px 6px;font-size:8.8px}.field-quantity-table .field-qv-sign{min-width:48px}.field-quantity-row-result{min-width:84px;text-align:right;color:var(--engineering-navy);font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.field-quantity-row-result.is-warning{color:#9A6814}.field-quantity-remove{min-width:28px;padding-inline:6px}
.field-quantity-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px}.field-quantity-summary>div{min-width:0;padding:9px;border:1px solid #E0E6EA;border-radius:9px;background:#FAFBFC}.field-quantity-summary span{display:block;color:var(--muted);font-size:8px;font-weight:800}.field-quantity-summary strong{display:block;margin-top:3px;color:var(--engineering-navy);font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.field-quantity-summary .field-quantity-summary-primary{border-color:#B8CAD6;background:#F1F6F9}.field-quantity-summary-primary strong{font-size:16px}
.field-concrete-reserve{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:0 11px 11px}.field-concrete-reserve .field-tool-field{width:min(220px,100%)}.field-concrete-reserve small{padding-bottom:7px;color:var(--muted);font-size:8.2px;line-height:1.3}
@media(max-width:720px){.field-quantity-controls{padding:9px 9px 6px}.field-quantity-table-wrap{padding:0 9px 9px}.field-quantity-summary{padding:9px}.field-concrete-reserve{padding:0 9px 9px}.field-quantity-summary strong{font-size:11px}.field-quantity-summary-primary strong{font-size:14px}}
@media(max-width:430px){.field-quantity-controls{align-items:stretch;flex-direction:column}.field-quantity-controls .btn{align-self:flex-start}.field-quantity-summary{grid-template-columns:1fr 1fr;gap:6px}.field-concrete-reserve{display:grid}.field-concrete-reserve small{padding-bottom:0}}
@media(max-width:340px){.field-quantity-summary{grid-template-columns:1fr}}

/* v2.0.30 · FA-08 BAGIAN 2 — Luas Dinding + Material Sederhana */
.field-wall-section+.field-wall-section{border-top:1px solid #E0E6EA}.field-wall-openings{background:#FCFDFD}.field-wall-table{min-width:690px}.field-qw-summary .is-warning,.field-quantity-summary .is-warning{border-color:#E3B95E;background:#FFF9EC}.field-qw-summary .is-warning strong,.field-quantity-summary .is-warning strong{color:#94620B}.field-tool-result-message{margin:0 11px 11px;padding:7px 9px;border-radius:8px;background:#F5F7F8;color:var(--muted);font-size:8.4px;line-height:1.4}.field-tool-result-message.is-warning{background:#FFF7E7;color:#8A5B08;border:1px solid #ECD08B}
.field-material-note{margin:0 11px 7px;padding:7px 9px;border:1px solid #E0E6EA;border-radius:8px;background:#F8FAFB;color:var(--muted);font-size:8.3px;line-height:1.4}.field-material-note strong{color:var(--graphite)}.field-material-table{min-width:900px}.field-material-table .field-sm-mode{min-width:138px}.field-material-table .field-sm-unit{min-width:92px}.field-material-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px 11px 6px}.field-material-summary>div{padding:8px 9px;border:1px solid #E0E6EA;border-radius:9px;background:#FAFBFC}.field-material-summary span{display:block;color:var(--muted);font-size:8px;font-weight:800}.field-material-summary strong{display:block;margin-top:2px;color:var(--engineering-navy);font-size:12px}.field-material-results{display:grid;gap:6px;padding:5px 11px 11px}.field-material-result-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 9px;border:1px solid #E0E6EA;border-radius:9px;background:#fff}.field-material-result-row>div{min-width:0}.field-material-result-row strong{display:block;color:var(--graphite);font-size:9.3px;overflow-wrap:anywhere}.field-material-result-row small{display:block;margin-top:2px;color:var(--muted);font-size:7.8px;line-height:1.35}.field-material-result-row>span{flex:0 0 auto;color:var(--engineering-navy);font-size:12px;font-weight:900;font-variant-numeric:tabular-nums;text-align:right}.field-material-result-row>span small{display:inline;font-size:8px}.field-material-empty{padding:14px 10px;text-align:center;color:var(--muted);font-size:8.6px}
@media(max-width:720px){.field-tool-result-message{margin:0 9px 9px}.field-material-note{margin:0 9px 7px}.field-material-summary{padding:9px 9px 5px}.field-material-results{padding:4px 9px 9px}.field-material-result-row{padding:7px 8px}.field-material-result-row>span{font-size:11px}}
@media(max-width:430px){.field-material-summary{grid-template-columns:1fr 1fr}.field-material-result-row{align-items:flex-start}.field-material-result-row>span{max-width:42%;overflow-wrap:anywhere}}
@media(max-width:340px){.field-material-summary{grid-template-columns:1fr}.field-material-result-row{display:grid}.field-material-result-row>span{max-width:none;text-align:left}}

/* v2.0.31 · V-13 Dinding — merged compact Section detail */
.v13-detail-tabs{display:flex;align-items:center;gap:6px;margin:0 0 7px;padding:3px;border:1px solid #cfdbe4;border-radius:9px;background:#eef3f7;width:max-content;max-width:100%}
.v13-detail-tabs .btn{min-height:28px;padding:5px 10px;border-color:transparent;background:transparent}
.v13-detail-tabs .btn.primary{background:var(--primary,#16324f);color:#fff;border-color:var(--primary,#16324f)}
.v13-detail-tabs .btn span{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:rgba(95,107,118,.12);font-size:7px}
.v13-detail-tabs .btn.primary span{background:rgba(255,255,255,.18)}
.v13-finishing-compact{overflow:visible}
.v13-finishing-compact .v13-finishing-head{border-bottom:1px solid #cbd8e2;padding:7px 9px}
.v13-finish-compact-wrap{overflow-x:auto;max-width:100%}
.v13-finish-compact-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8px}
.v13-finish-compact-table th,.v13-finish-compact-table td{border:1px solid #dce5ec;padding:5px 6px;vertical-align:middle}
.v13-finish-compact-table th{background:#f0f5f8;color:#53697b;font-size:7px;text-transform:uppercase;letter-spacing:.025em}
.v13-finish-compact-table th:nth-child(1){width:17%}.v13-finish-compact-table th:nth-child(2){width:12%}.v13-finish-compact-table th:nth-child(3){width:20%}.v13-finish-compact-table th:nth-child(4){width:18%}.v13-finish-compact-table th:nth-child(5){width:21%}.v13-finish-compact-table th:nth-child(6){width:12%}
.v13-finish-compact-table .select,.v13-finish-compact-table .input{height:29px;min-height:29px;padding:3px 6px;font-size:8px}
.v13-finish-compact-table td>small,.v13-finish-compact-result small{display:block;margin-top:2px;color:#6b7b87;font-size:7px;line-height:1.25}
.v13-finish-compact-result strong{display:block;color:#17452f;font-size:9px}
.v13-muted{color:#8a98a4}
.v13-inline-outdoor{display:grid;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:5px;margin-top:4px}.v13-inline-outdoor span{font-size:6.8px;font-weight:800;color:#667989}.v13-inline-outdoor small{grid-column:1/-1;color:#71818d;font-size:6.5px;line-height:1.25}
.v13-finish-detail-popup{position:relative;display:inline-block}
.v13-finish-detail-popup>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd6df;border-radius:8px;padding:5px 9px;background:#fff;font-weight:800;font-size:7.5px;color:#29465c}
.v13-finish-detail-popup>summary::-webkit-details-marker{display:none}
.v13-finish-detail-popup[open]>summary{background:#e8f0f6;border-color:#9fb5c6}
.v13-finish-detail-popup .hc-table-detail-sheet{width:min(760px,calc(100vw - 24px))}
.v13-finish-detail-popup .hc-table-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.v13-finish-detail-popup .hc-table-detail-head strong{display:block;font-size:11px}.v13-finish-detail-popup .hc-table-detail-head small{display:block;margin-top:2px;font-size:8px;color:#6b7883}
.v13-finishing-compact .v14-deduction-head{margin-bottom:7px;padding:0}.v13-finishing-compact .v14-deduction-wrap{overflow:auto}
@media(max-width:760px){
  .v13-detail-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .v13-detail-tabs .btn{width:100%}
  .v13-finish-compact-wrap{overflow:visible}
  .v13-finish-compact-table,.v13-finish-compact-table thead,.v13-finish-compact-table tbody{display:block;width:100%}
  .v13-finish-compact-table thead{display:none}
  .v13-finish-compact-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 7px;border:1px solid #d9e3ea;border-radius:8px;overflow:hidden;background:#fff}
  .v13-finish-compact-table td{display:grid!important;grid-template-columns:76px minmax(0,1fr);align-items:center;width:auto!important;border:0!important;border-bottom:1px solid #edf1f4!important;padding:5px 6px!important;min-width:0}
  .v13-finish-compact-table td:nth-child(1),.v13-finish-compact-table td:nth-child(4),.v13-finish-compact-table td:nth-child(5),.v13-finish-compact-table td:nth-child(6){grid-column:1/-1}
  .v13-finish-compact-table td::before{content:attr(data-label);font-size:6.8px;font-weight:850;color:#6a7b88;text-transform:uppercase}
  .v13-finish-compact-table td:last-child{border-bottom:0!important}
  .v13-finish-detail-popup .hc-table-detail-sheet{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}
}
@media(max-width:430px){
  .v13-finish-compact-table tr{grid-template-columns:1fr}
  .v13-finish-compact-table td{grid-column:1!important;grid-template-columns:82px minmax(0,1fr)}
  .v13-inline-outdoor{grid-template-columns:1fr}
}

/* v2.0.32 — FA-09 BAGIAN 1: Setelan Baru */
.settings-shell{display:grid;gap:12px;max-width:980px;margin:0 auto}.settings-tabs{display:flex;gap:5px;align-items:center;padding:4px;background:#DDE4E9;border:1px solid #CBD5DC;border-radius:12px;overflow-x:auto;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{flex:1 0 auto;min-width:108px;border:0;background:transparent;color:var(--slate);border-radius:9px;padding:8px 10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.settings-tab:hover{background:rgba(255,255,255,.62);color:var(--engineering-navy)}.settings-tab.active{background:#fff;color:var(--engineering-navy);box-shadow:0 1px 3px rgba(22,50,79,.12)}
.settings-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.settings-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #EDF1F4}.settings-panel-head>div{min-width:0}.settings-panel-head h2{margin:2px 0 0;font-size:16px;color:var(--graphite)}.settings-panel-head p{margin:4px 0 0;font-size:10.5px;line-height:1.45;color:var(--muted)}.settings-form-list{display:grid;margin-top:4px}.settings-form-row{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(280px,1.2fr);gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #EDF1F4}.settings-form-row:last-child{border-bottom:0}.settings-form-row>span strong,.settings-data-note strong{display:block;font-size:11.5px;color:var(--graphite)}.settings-form-row>span small,.settings-data-note span{display:block;margin-top:2px;font-size:9.5px;line-height:1.35;color:var(--muted)}.settings-inline-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.settings-inline-control .input{min-width:0}.settings-device-summary,.settings-info-grid,.settings-sync-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.settings-device-summary>div,.settings-info-grid>div{min-width:0;border:1px solid #E3E9ED;background:#F8FAFB;border-radius:10px;padding:9px}.settings-device-summary span,.settings-info-grid span,.settings-about-meta span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.settings-device-summary strong,.settings-info-grid strong,.settings-about-meta strong{display:block;margin-top:3px;font-size:11.5px;color:var(--graphite)}.settings-info-grid small,.settings-about-meta small{display:block;margin-top:3px;font-size:9px;line-height:1.35;color:var(--muted)}.settings-footnote{margin:10px 0 0}.settings-note{margin-top:11px;font-size:10px}.settings-primary-action{display:flex;justify-content:flex-start;margin-top:12px}.settings-data-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.settings-data-note{margin-top:9px;border:1px solid #E3E9ED;background:#F8FAFB;border-radius:10px;padding:9px}.settings-advanced-data{margin-top:14px;border:1px solid #E6D4D1;background:#FFF9F8;border-radius:11px;overflow:hidden}.settings-advanced-data>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;cursor:pointer;list-style:none}.settings-advanced-data>summary::-webkit-details-marker{display:none}.settings-advanced-data>summary span:first-child{min-width:0}.settings-advanced-data>summary strong{display:block;font-size:10.5px;color:#7A2D27}.settings-advanced-data>summary small{display:block;margin-top:2px;font-size:9px;color:#8C6B68}.settings-advanced-body{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border-top:1px solid #EDD8D5}.settings-advanced-body>div{min-width:0}.settings-advanced-body strong{font-size:10.5px;color:var(--graphite)}.settings-advanced-body p{margin:3px 0 0;font-size:9.5px;line-height:1.4;color:var(--muted)}
.settings-about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:9px;margin-top:12px}.settings-about-brand,.settings-about-meta{display:flex;align-items:center;gap:10px;border:1px solid #E3E9ED;background:#F8FAFB;border-radius:11px;padding:10px}.settings-about-meta{display:block}.settings-brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--engineering-navy);color:#fff;font-weight:900}.settings-about-brand strong{display:block;font-size:12px}.settings-about-brand small{display:block;margin-top:2px;font-size:9px;color:var(--muted)}.settings-changelog{margin-top:12px;border:1px solid #E3E9ED;border-radius:11px;padding:10px}.settings-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-subhead strong{font-size:11px}.settings-subhead span{font-size:9px;color:var(--muted)}.settings-changelog ul{margin:8px 0 0;padding-left:18px}.settings-changelog li{margin:4px 0;font-size:9.7px;line-height:1.4;color:#4D5964}.settings-system-note{margin-top:10px;padding:10px;border-left:3px solid var(--steel-blue);background:#F7F9FB;border-radius:8px}.settings-system-note strong{font-size:10.5px;color:var(--engineering-navy)}.settings-system-note p{margin:3px 0 0;font-size:9.5px;line-height:1.4;color:var(--muted)}.settings-version{padding:6px 0 16px}
@media(max-width:720px){.settings-shell{gap:9px}.settings-tabs{margin:0 -2px}.settings-tab{min-width:94px;padding:7px 9px}.settings-panel{padding:11px}.settings-panel-head{gap:8px}.settings-panel-head h2{font-size:14px}.settings-form-row{grid-template-columns:1fr;gap:7px;padding:10px 0}.settings-device-summary,.settings-info-grid,.settings-sync-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-about-grid{grid-template-columns:1fr}.settings-advanced-body{align-items:flex-start;flex-direction:column}.settings-advanced-body .btn{width:100%}}
@media(max-width:430px){.settings-tabs{padding:3px;gap:3px}.settings-tab{min-width:88px;font-size:10px;padding:7px}.settings-inline-control{grid-template-columns:1fr}.settings-inline-control .btn{width:100%}.settings-device-summary,.settings-info-grid,.settings-sync-summary{grid-template-columns:1fr 1fr}.settings-data-actions{display:grid;grid-template-columns:1fr 1fr}.settings-data-actions .btn{width:100%;text-align:center}.settings-panel-head .tag{font-size:8px;white-space:nowrap}.settings-about-brand,.settings-about-meta{padding:9px}}

/* v2.0.33 · FA-10 BAGIAN 1 — responsive guard + Volume add-work regression hardening */
html,body{max-width:100%}
.view{min-width:0;width:100%}
.volume-toolbar{align-items:flex-start;flex-wrap:wrap}
.volume-toolbar>.toolbar,.volume-toolbar>.route-shortcuts{min-width:0;max-width:100%}
.ve2-ws-group-head .toolbar{min-width:0}
.ve2-ws-group-head .toolbar .btn{max-width:100%}
@media(max-width:760px){
  .volume-toolbar{display:grid;grid-template-columns:1fr;gap:6px;overflow:visible}
  .volume-toolbar>.route-shortcuts{display:flex;flex-wrap:wrap;width:100%}
  .volume-toolbar>.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:5px}
  .volume-toolbar>.toolbar .btn{width:100%;min-width:0;white-space:normal;line-height:1.2}
  .ve2-ws-group-head{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
  .ve2-ws-group-head .toolbar{margin-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px}
  .ve2-ws-group-head .toolbar .ve2-order-pair{grid-column:1/-1;justify-self:start}
  .ve2-ws-group-head .toolbar .btn{width:100%;min-width:0;padding-inline:5px;white-space:normal;line-height:1.15}
  .ve2-ws-work-row td:last-child .toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;justify-content:stretch}
  .ve2-ws-work-row td:last-child .toolbar .btn{width:100%;min-width:0;white-space:normal;line-height:1.15}
}
@media(max-width:390px){
  .volume-toolbar>.toolbar{grid-template-columns:1fr 1fr}
  .ve2-ws-group-head .toolbar,.ve2-ws-work-row td:last-child .toolbar{grid-template-columns:1fr 1fr}
  .ve2-ws-group-head .toolbar [data-ve2-add-work],.ve2-ws-work-row td:last-child .toolbar [data-ve2-calc-work]{grid-column:1/-1}
}

/* v2.0.36 — guarded RAB baseline lock / unlock */
.rab-plan-unlock-btn{border-color:#b45309!important;background:#fff7ed!important;color:#9a3412!important;font-weight:900}
.rab-plan-unlock-btn:hover{background:#ffedd5!important}
.rab-plan-unlock-confirm{font-weight:900}
.rab-baseline-confirm-modal .modal-actions{margin-top:2px}
.rab-baseline-confirm{margin-bottom:12px}
.rab-baseline-impact{display:grid;gap:6px;margin-top:10px;padding:10px;border:1px solid #fed7aa;border-radius:10px;background:#fffaf3;font-size:11px;color:#7c2d12}
.rab-baseline-impact span{display:flex;justify-content:space-between;gap:12px;align-items:center}
.rab-baseline-impact strong{text-align:right}
.rab-baseline-ack{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;font-size:11px;line-height:1.45;font-weight:700;color:#334155;cursor:pointer}
.rab-baseline-ack input{margin-top:2px;accent-color:var(--engineering-navy,#16324F)}
.rab-baseline-phrase{margin-top:10px}
.rab-baseline-phrase label{font-size:10px}
.project-hub-lock-notice{display:flex;align-items:center;justify-content:space-between;gap:12px}
.project-hub-lock-notice>div{min-width:0}
@media(max-width:720px){.project-hub-lock-notice{align-items:stretch;flex-direction:column}.project-hub-lock-notice .rab-plan-unlock-btn{align-self:flex-start}.rab-baseline-impact span{align-items:flex-start}.rab-baseline-impact strong{max-width:50%}}

/* v2.0.39 — local-only collapse for RAB Section and Volume Kelompok */
.rab-section-title{display:flex;align-items:center;gap:6px;min-width:0}
.rab-section-title>strong{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rab-section-collapse{flex:0 0 auto;background:rgba(255,255,255,.62)!important;color:#3f3310!important;opacity:.92}
.rab-section-collapse:hover{background:#fff!important}
.rab-doc-table .section-row.is-collapsed td{box-shadow:inset 0 -1px 0 rgba(63,51,16,.08)}
.ve2-ws-group-title{display:flex!important;align-items:center;gap:7px;min-width:0}
.ve2-ws-group-title>div{display:grid;gap:1px;min-width:0}
.ve2-ws-group-title>div strong,.ve2-ws-group-title>div small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ve2-group-collapse-toggle{width:24px;height:24px;flex:0 0 24px;border:1px solid #cbd6df;border-radius:7px;background:#fff;color:var(--engineering-navy);font:inherit;font-size:12px;font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer}
.ve2-group-collapse-toggle:hover{background:#edf3f7;border-color:#9fb3c1}
.ve2-ws-group-row.is-collapsed .ve2-ws-group-head{background:#eef3f7}
@media(pointer:coarse){.rab-section-collapse,.ve2-group-collapse-toggle{width:27px;height:27px}.ve2-group-collapse-toggle{flex-basis:27px}}
@media(max-width:760px){.rab-section-title{gap:4px}.rab-collapse-all-btn{padding-inline:8px}.ve2-ws-group-title{width:100%}.ve2-ws-group-title>div{flex:1}}

/* v2.0.40 · explicit global collapse controls */
.collapse-all-actions{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}
.collapse-all-actions .btn{padding-inline:8px;white-space:nowrap}
.collapse-all-actions .btn:disabled{opacity:.45}
@media(max-width:760px){.collapse-all-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px}.collapse-all-actions .btn{min-width:0;padding-inline:6px}.volume-toolbar>.toolbar .volume-collapse-all-actions{grid-column:1/-1;width:100%}.rab-collapse-all-actions{flex:0 0 auto}}


/* v2.0.42 — V-19.1 Material Source & AHSP Link */
.ve2-ws-material-chip{padding-right:3px;gap:6px}.ve2-ws-chip-main{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;flex:1}.ve2-ws-material-chip.linked{border-color:#bcd9c5;background:#f3faf5}.ve2-ws-material-chip.needs-check{border-color:#efc4aa;background:#fff8f3}.ve2-ws-material-btn{flex:0 0 auto;min-height:20px;padding:2px 6px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#475569;font:inherit;font-weight:850;cursor:pointer;white-space:nowrap}.ve2-ws-material-btn:hover{border-color:#8ea5ba;background:#f8fafc}.ve2-ws-material-btn.linked{border-color:#a9cfb4;background:#edf8f0;color:#27613a}.ve2-ws-material-btn.danger{border-color:#efb18c;background:#fff1e8;color:#9a4314}.ve2-ws-material-btn:disabled{cursor:not-allowed;opacity:.55}.material-link-warning code{font-size:8px;overflow-wrap:anywhere}.material-ahsp-link-modal .material-source-head small{overflow-wrap:anywhere}
@media(max-width:720px){.ve2-ws-material-chip{width:100%;align-items:center}.ve2-ws-chip-main{min-width:0}.ve2-ws-material-btn{min-height:24px;padding:3px 7px}}

/* V-19.4 · Material conversion/procurement + reinforcement diameter breakdown */
.material-preview-row>div{display:flex;align-items:center;gap:6px;justify-content:flex-end;min-width:0}.material-preview-row.is-rebar-primary{background:#f8fbff}.material-preview-row.is-rebar-primary>span small{color:#456987}.material-rebar-map{margin:7px 0;border:1px solid #dbe5f0;border-radius:9px;overflow:hidden;background:#fbfdff}.material-rebar-map>.field{padding:8px 9px;border-bottom:1px solid #e7edf4}.material-rebar-map>.field small{display:block;margin-top:4px;color:var(--muted);font-size:8px;line-height:1.35}.material-rebar-breakdown-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-top:1px solid #edf2f7}.material-rebar-breakdown-row>span{min-width:0}.material-rebar-breakdown-row>span strong{display:block;font-size:10px}.material-rebar-breakdown-row>span small{display:block;margin-top:2px;font-size:8px;color:var(--muted)}.material-rebar-breakdown-row>div{display:flex;align-items:center;gap:6px;white-space:nowrap}.material-rebar-breakdown-row b{font-size:10px;font-variant-numeric:tabular-nums}.material-procurement-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr);gap:6px;align-items:end;margin-top:7px}.material-rebar-procurement{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:8px;align-items:end;margin-top:7px;padding:7px 8px;border:1px solid #d8e5f3;border-radius:8px;background:#f8fbff}.material-rebar-procurement>div:first-child strong{display:block;font-size:9.5px}.material-rebar-procurement>div:first-child small{display:block;margin-top:2px;font-size:8px;color:var(--muted);line-height:1.35}.material-conversion-chip.minimum{border-style:dashed;background:#fffaf0}
@media(max-width:720px){.material-procurement-grid,.material-rebar-procurement{grid-template-columns:1fr}.material-rebar-breakdown-row{align-items:flex-start}.material-rebar-breakdown-row>div{flex-direction:column;align-items:flex-end}.material-preview-row>div{flex-wrap:wrap}}
/* V-19.6 — Material UI final */
.material-main-modal{max-width:1180px}
.material-main-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 11px;border:1px solid #d8e2ec;border-radius:11px;background:#f9fbfd}
.material-main-head h3{margin:2px 0 3px;font-size:14px}.material-main-head p{margin:0;color:var(--muted);font-size:8.6px;line-height:1.4}
.material-main-stats{display:flex;gap:6px;flex:0 0 auto}.material-main-stats>div{min-width:70px;padding:6px 8px;border:1px solid #dfe6eb;border-radius:8px;background:#fff;text-align:center}.material-main-stats span{display:block;font-size:7.5px;color:var(--muted);font-weight:800}.material-main-stats strong{display:block;margin-top:2px;font-size:13px;font-variant-numeric:tabular-nums}.material-main-stats .has-issue{border-color:#efc7a9;background:#fff8f2}
.material-table-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:7px;align-items:center;margin:8px 0 6px}.material-table-toolbar .material-searchbar{margin:0}.material-table-toolbar>.select{min-height:34px}
.material-main-table-wrap{border:1px solid #dfe5ea;border-radius:10px;overflow:hidden;background:#fff}.material-main-table{width:100%;border-collapse:collapse;table-layout:fixed}.material-main-table th{padding:7px 6px;background:#f5f7f9;border-bottom:1px solid #dfe5ea;color:#566273;font-size:7.7px;font-weight:900;text-align:left;white-space:normal}.material-main-table td{padding:7px 6px;border-top:1px solid #edf0f3;font-size:8.7px;vertical-align:middle;overflow-wrap:anywhere}.material-main-table tbody tr:first-child td{border-top:0}.material-main-table th:nth-child(1){width:17%}.material-main-table th:nth-child(2){width:12%}.material-main-table th:nth-child(3){width:14%}.material-main-table th:nth-child(4){width:12%}.material-main-table th:nth-child(5){width:13%}.material-main-table th:nth-child(6){width:12%}.material-main-table th:nth-child(7){width:9%}.material-main-table th:nth-child(8){width:11%}.material-main-table td>strong{font-size:9.2px;font-variant-numeric:tabular-nums}.material-main-table td>small,.material-main-table td strong+small{display:block;margin-top:2px;color:var(--muted);font-size:7.5px}.material-main-table td:first-child strong{display:block;font-size:9.5px}.material-main-table .material-procured-input{min-height:29px;padding:4px 6px;font-size:9px;text-align:right;font-variant-numeric:tabular-nums}.material-unit-lock{display:inline-block;padding:3px 5px;border:1px solid #dfe5ea;border-radius:6px;background:#fafbfc;color:#667085;font-size:8px}.material-unit-lock.is-locked{border-color:#bcd9c5;background:#f1f9f3;color:#2b6741;font-weight:850}.material-status{display:inline-flex;align-items:center;min-height:21px;padding:2px 6px;border-radius:999px;border:1px solid #dfe5ea;background:#f7f8fa;color:#667085;font-size:7.5px;font-weight:850;white-space:nowrap}.material-status.active{border-color:#b8d5c1;background:#eff8f2;color:#2d6843}.material-status.complete{border-color:#a9d9c2;background:#eaf8f1;color:#17623a}.material-status.warning{border-color:#eec5a8;background:#fff6ef;color:#99511f}.material-status.info{border-color:#c9d8e8;background:#f3f7fb;color:#426787}.material-table-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.material-main-footnote{margin-top:6px;padding:6px 8px;border:1px dashed #d8e1e8;border-radius:8px;color:var(--muted);font-size:7.8px;line-height:1.4}
.material-procurement-lock-modal{max-width:760px}.material-procurement-lock-form{gap:8px}.material-lock-source{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid #dce5eb;border-radius:9px;background:#f8fafc}.material-lock-source>div{min-width:0}.material-lock-source strong{display:block;font-size:11px}.material-lock-source small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.material-lock-source>b{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.material-lock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.material-lock-grid .field label,.material-lock-result .field label{font-size:8px;font-weight:850}.material-lock-grid .input,.material-lock-result .select{min-height:33px}.material-lock-rebar{grid-column:1/-1}.material-lock-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);gap:8px;align-items:end;padding:8px;border:1px solid #dbe6df;border-radius:9px;background:#f7fbf8}.material-lock-preview{padding:6px 8px;border:1px solid #cfe0d5;border-radius:8px;background:#fff;text-align:right}.material-lock-preview span,.material-lock-preview small{display:block;color:var(--muted);font-size:7.5px}.material-lock-preview strong{display:block;margin:2px 0;font-size:12px;font-variant-numeric:tabular-nums;color:#255f3b}
.material-detail-modal{max-width:980px}.material-detail-head{padding:9px 10px;border:1px solid #dce5eb;border-radius:9px;background:#f8fafc;margin-bottom:7px}.material-detail-head strong{display:block;font-size:11px}.material-detail-head small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.material-detail-table-wrap{border:1px solid #e0e5ea;border-radius:9px;overflow:hidden}.material-detail-table{width:100%;border-collapse:collapse;table-layout:fixed}.material-detail-table th{padding:6px;background:#f6f8fa;border-bottom:1px solid #e0e5ea;font-size:7.6px;text-align:left}.material-detail-table td{padding:6px;border-top:1px solid #eef1f3;font-size:8.4px;vertical-align:top;overflow-wrap:anywhere}.material-detail-table td strong{font-size:8.8px}.material-detail-table td small{display:block;margin-top:2px;color:var(--muted);font-size:7.4px}.material-detail-table th:nth-child(1){width:5%}.material-detail-table th:nth-child(2){width:29%}.material-detail-table th:nth-child(3){width:24%}.material-detail-table th:nth-child(4){width:15%}.material-detail-table th:nth-child(5){width:10%}.material-detail-table th:nth-child(6){width:17%}
@media(max-width:760px){
  .material-main-modal,.material-procurement-lock-modal,.material-detail-modal{max-width:none}
  .material-main-head{display:grid}.material-main-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.material-main-stats>div{min-width:0}.material-table-toolbar{grid-template-columns:1fr}.material-main-table-wrap{border:0;overflow:visible;background:transparent}.material-main-table,.material-main-table tbody{display:block}.material-main-table thead{display:none}.material-main-table tr[data-material-row]{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:7px;border:1px solid #dde5eb;border-radius:9px;overflow:hidden;background:#fff}.material-main-table tr[data-material-row][hidden]{display:none}.material-main-table tr[data-material-row] td{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr);gap:7px;align-items:center;padding:6px 8px;border-top:1px solid #eef1f3}.material-main-table tr[data-material-row] td:nth-child(1),.material-main-table tr[data-material-row] td:nth-child(8){grid-column:1/-1}.material-main-table tr[data-material-row] td:nth-child(1){display:block;background:#f8fafc;border-top:0}.material-main-table tr[data-material-row] td::before{content:attr(data-label);font-size:7.4px;font-weight:850;color:#778398}.material-main-table tr[data-material-row] td:nth-child(1)::before{display:none}.material-main-table tr[data-material-row] td:nth-child(8){display:flex;align-items:center;justify-content:flex-end}.material-main-table tr[data-material-row] td:nth-child(8)::before{margin-right:auto}.material-main-table .material-procured-input{width:100%;max-width:140px;justify-self:end}.material-main-table td>strong,.material-main-table td>span{justify-self:end;text-align:right}.material-main-table td:nth-child(1)>strong,.material-main-table td:nth-child(1)>small{justify-self:auto;text-align:left}.material-main-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.material-lock-grid,.material-lock-result{grid-template-columns:1fr}.material-lock-rebar{grid-column:auto}.material-lock-preview{text-align:left}
  .material-detail-table-wrap{border:0;overflow:visible}.material-detail-table,.material-detail-table tbody{display:block}.material-detail-table thead{display:none}.material-detail-table tr{display:block;margin-bottom:6px;border:1px solid #e0e5ea;border-radius:8px;overflow:hidden;background:#fff}.material-detail-table td{display:grid;grid-template-columns:90px 1fr;gap:7px;border-top:1px solid #eef1f3}.material-detail-table td:first-child{border-top:0}.material-detail-table td::before{content:attr(data-label);font-size:7.4px;font-weight:850;color:#778398}
}
@media(max-width:430px){.material-main-table tr[data-material-row]{grid-template-columns:1fr}.material-main-table tr[data-material-row] td{grid-column:1/-1}.material-lock-source{align-items:flex-start;flex-direction:column}.material-lock-source>b{white-space:normal}.material-main-stats{grid-template-columns:1fr 1fr}}

/* V-19.6 adjustment · transparent per-item material + multi custom conversions */
.material-conversion-table th:nth-child(1){width:18%}.material-conversion-table th:nth-child(2){width:12%}.material-conversion-table th:nth-child(3){width:10%}.material-conversion-table th:nth-child(4){width:10%}.material-conversion-table th:nth-child(5){width:12%}.material-conversion-table th:nth-child(6){width:12%}.material-conversion-table th:nth-child(7){width:11%}.material-conversion-table th:nth-child(8){width:15%}
.material-conversion-table tbody[data-material-group]+tbody[data-material-group] tr:first-child td{border-top:2px solid #dfe5ea}
.material-conversion-table tr[data-material-conv-row]:not(:first-child){background:#fbfcfd}
.material-conversion-table .material-conv-add-row{background:#f8fbff}
.material-conversion-table .material-conv-input{min-height:28px;padding:4px 6px;font-size:8.7px}
.material-conversion-table .material-conv-indent{display:inline-flex;align-items:center;gap:4px;color:#6b7788;font-size:8px;font-weight:800}
.material-conversion-table .material-active-lock{display:inline-flex;align-items:center;min-height:22px;padding:2px 6px;border:1px solid #bcd9c5;border-radius:999px;background:#f1f9f3;color:#2b6741;font-size:7.5px;font-weight:900;white-space:nowrap}
.material-conversion-table td[data-label="Koefisien"] input,.material-conversion-table td[data-label="Satuan"] input{width:100%}
.material-conversion-table td[data-label="Hasil"] strong,.material-conversion-table td[data-label="Kebutuhan"] strong{font-variant-numeric:tabular-nums}
.material-conversion-table tbody[hidden]{display:none!important}
.material-main-footnote strong{color:var(--graphite)}

@media(max-width:720px){
  .material-conversion-table,.material-conversion-table tbody{display:block;width:100%}
  .material-conversion-table thead{display:none}
  .material-conversion-table tbody[data-material-group]{margin-bottom:8px;border:1px solid #dde5eb;border-radius:10px;overflow:hidden;background:#fff}
  .material-conversion-table tbody[data-material-group]+tbody[data-material-group] tr:first-child td{border-top:0}
  .material-conversion-table tbody[data-material-group] tr{display:grid;grid-template-columns:1fr 1fr;background:#fff}
  .material-conversion-table tbody[data-material-group] tr+tr{border-top:1px solid #e8edf1}
  .material-conversion-table tbody[data-material-group] tr:not(:first-child){background:#fbfcfd}
  .material-conversion-table tbody[data-material-group] tr.material-conv-add-row{background:#f8fbff}
  .material-conversion-table tbody[data-material-group] td{display:grid;grid-template-columns:minmax(88px,.78fr) minmax(0,1.22fr);gap:7px;align-items:center;padding:6px 8px;border:0;border-top:1px solid #f0f2f4}
  .material-conversion-table tbody[data-material-group] tr td:first-child,.material-conversion-table tbody[data-material-group] tr td:last-child{grid-column:1/-1}
  .material-conversion-table tbody[data-material-group] tr:first-child td:first-child{display:block;background:#f8fafc;border-top:0}
  .material-conversion-table tbody[data-material-group] td::before{content:attr(data-label);font-size:7.3px;font-weight:850;color:#778398}
  .material-conversion-table tbody[data-material-group] tr:first-child td:first-child::before{display:none}
  .material-conversion-table tbody[data-material-group] td:last-child{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}
  .material-conversion-table tbody[data-material-group] td:last-child::before{margin-right:auto}
  .material-conversion-table tbody[data-material-group] td>strong,.material-conversion-table tbody[data-material-group] td>span{justify-self:end;text-align:right}
  .material-conversion-table tbody[data-material-group] td:first-child>strong,.material-conversion-table tbody[data-material-group] td:first-child>small,.material-conversion-table tbody[data-material-group] td:first-child>span{justify-self:auto;text-align:left}
  .material-conversion-table .material-conv-input,.material-conversion-table .material-procured-input{width:100%;max-width:160px;justify-self:end}
  .material-conversion-table .material-table-actions{justify-content:flex-end}
}
@media(max-width:430px){
  .material-conversion-table tbody[data-material-group] tr{grid-template-columns:1fr}
  .material-conversion-table tbody[data-material-group] td{grid-column:1/-1}
}

/* v2.0.50 · V-19.6 compact Material list + per-item conversion popup */
.material-main-head.compact{gap:8px;margin-bottom:6px}.material-main-head.compact h3{margin:1px 0 2px;font-size:14px}.material-main-head.compact p{margin:0;font-size:8px;line-height:1.35}.material-main-stats.compact{gap:4px}.material-main-stats.compact>div{padding:5px 7px;min-width:68px}.material-main-stats.compact span{font-size:6.8px}.material-main-stats.compact strong{font-size:10px}.material-table-toolbar.compact{margin:5px 0;gap:5px}.material-table-toolbar.compact .input,.material-table-toolbar.compact .select{min-height:30px;font-size:8.5px}.material-main-table-wrap.compact{border-radius:8px}.material-compact-table{width:100%;table-layout:fixed;border-collapse:collapse}.material-compact-table th{padding:5px 7px;font-size:7.2px;line-height:1.15}.material-compact-table td{padding:5px 7px;font-size:8.4px;line-height:1.22;vertical-align:middle}.material-compact-table th:nth-child(1){width:31%}.material-compact-table th:nth-child(2){width:20%}.material-compact-table th:nth-child(3){width:15%}.material-compact-table th:nth-child(4){width:15%}.material-compact-table th:nth-child(5){width:19%}.material-compact-table td>strong{display:block;font-size:8.9px;font-variant-numeric:tabular-nums}.material-compact-table td>small,.material-compact-table td small{display:block;margin-top:1px;color:var(--muted);font-size:6.9px;line-height:1.2}.material-compact-table .material-procured-input.compact{width:92px;min-height:28px;padding:3px 6px;font-size:8.5px}.material-table-actions.compact{display:flex;justify-content:flex-end;gap:4px;flex-wrap:nowrap}.material-table-actions.compact .btn.small{min-height:27px;padding:4px 7px;font-size:7.6px}.material-status{font-weight:850}.material-status.active,.material-status.complete{color:#2c6841}.material-status.warning{color:#9a5c12}.material-status.muted{color:#7a8592}.material-status.info{color:#315f86}
.material-conversion-popup{max-width:660px}.material-item-conversion-form{gap:7px}.material-conv-source{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #dce5eb;border-radius:9px;background:#f8fafc}.material-conv-source>div{min-width:0}.material-conv-source strong{display:block;font-size:10.5px}.material-conv-source small{display:block;margin-top:2px;color:var(--muted);font-size:7.3px}.material-conv-source>b{font-size:11.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.material-conv-popup-section{padding:8px;border:1px solid #dfe6eb;border-radius:9px;background:#fff}.material-conv-popup-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.material-conv-popup-title strong{font-size:9px}.material-conv-special-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr);gap:7px;align-items:end}.material-conv-auto{padding:7px 8px;border:1px solid #dce5eb;border-radius:8px;background:#f8fafc}.material-conv-auto span,.material-conv-auto small{display:block;color:var(--muted);font-size:7px}.material-conv-auto strong{display:block;margin:2px 0;font-size:10px}.material-special-preview,.material-display-choice-preview{margin-top:6px;padding:6px 8px;border:1px solid #dbe6df;border-radius:8px;background:#f7fbf8}.material-special-preview span,.material-display-choice-preview span,.material-special-preview small,.material-display-choice-preview small{display:block;color:var(--muted);font-size:7px}.material-special-preview strong,.material-display-choice-preview strong{display:block;margin:2px 0;font-size:11px;color:#255f3b;font-variant-numeric:tabular-nums}.material-custom-list{display:grid;gap:5px}.material-custom-row{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(120px,1fr) 30px;gap:5px;align-items:center}.material-custom-row .input{min-height:30px;padding:4px 6px;font-size:8.5px}.material-custom-row .icon-btn{width:30px;height:30px;min-width:30px}
@media(max-width:760px){.material-main-modal{max-width:none}.material-compact-table,.material-compact-table tbody{display:block}.material-compact-table thead{display:none}.material-compact-table tr[data-material-row]{display:grid;grid-template-columns:1fr 1fr;margin-bottom:6px;border:1px solid #dde5eb;border-radius:9px;overflow:hidden;background:#fff}.material-compact-table tr[data-material-row][hidden]{display:none}.material-compact-table tr[data-material-row] td{display:grid;grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);gap:6px;align-items:center;padding:5px 7px;border-top:1px solid #edf1f3}.material-compact-table tr[data-material-row] td:first-child,.material-compact-table tr[data-material-row] td:last-child{grid-column:1/-1}.material-compact-table tr[data-material-row] td:first-child{display:block;border-top:0;background:#f8fafc}.material-compact-table tr[data-material-row] td::before{content:attr(data-label);font-size:6.9px;font-weight:850;color:#778398}.material-compact-table tr[data-material-row] td:first-child::before{display:none}.material-compact-table tr[data-material-row] td:last-child{display:flex;justify-content:flex-end}.material-compact-table tr[data-material-row] td:last-child::before{margin-right:auto}.material-compact-table td>strong,.material-compact-table td>span{justify-self:end;text-align:right}.material-compact-table td:first-child>strong,.material-compact-table td:first-child>small{justify-self:auto;text-align:left}.material-compact-table .material-procured-input.compact{width:100%;max-width:130px;justify-self:end}.material-table-actions.compact{justify-content:flex-end}.material-conv-special-grid{grid-template-columns:1fr}.material-conv-source{align-items:flex-start}.material-conv-source>b{white-space:normal}}
@media(max-width:430px){.material-compact-table tr[data-material-row]{grid-template-columns:1fr}.material-compact-table tr[data-material-row] td{grid-column:1/-1}.material-custom-row{grid-template-columns:1fr 1fr 30px}.material-conv-source{flex-direction:column}}

/* v2.0.53 · Kontrak versi + Progress Mingguan */
.rab-progress-period-btn{display:inline-grid;grid-template-columns:auto;gap:0;align-content:center;min-height:34px;padding-top:4px;padding-bottom:4px;border-color:#c4cfdb;background:#f8fbff;color:#334155;text-align:left}
.rab-progress-period-btn span{font-size:9.5px;font-weight:900;line-height:1.05}
.rab-progress-period-btn small{font-size:7.5px;color:#64748b;font-weight:800;line-height:1.1}
.rab-progress-table{min-width:1210px}
.rab-progress-colgroup .rab-col-name{width:24%}
.rab-progress-colgroup .rab-col-unit{width:4.5%}
.rab-progress-colgroup .rab-col-volume{width:6.5%}
.rab-progress-colgroup .rab-col-price{width:9.5%}
.rab-progress-colgroup .rab-col-amount{width:10.5%}
.rab-progress-colgroup .rab-col-progress{width:6.5%}
.rab-progress-colgroup .rab-col-progress-volume{width:7.5%}
.rab-progress-readonly{background:#f7f9fc;color:#475569;font-weight:750;white-space:nowrap}
.rab-progress-readonly small{display:block;margin-top:1px;font-size:7.5px;color:#7b8796}
.rab-progress-period-head{display:grid;gap:3px;padding:2px 1px 9px;border-bottom:1px solid #e2e8f0}
.rab-progress-period-head strong{font-size:15px;color:#1f3348}.rab-progress-period-head small{font-size:9px;color:#64748b}
.rab-progress-period-list{display:grid;gap:5px;margin:9px 0}
.rab-progress-period-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid #e1e7ef;border-radius:8px;background:#fff}
.rab-progress-period-row>div{display:grid;gap:1px}.rab-progress-period-row strong{font-size:10px}.rab-progress-period-row small{font-size:8px;color:#708090}
.rab-progress-period-row>span{font-size:7.5px;font-weight:900;color:#64748b}.rab-progress-period-row.active{border-color:#aebfd1;background:#f5f9fd}.rab-progress-period-row.active>span{color:#244866}
@media(max-width:720px){.rab-progress-table{min-width:1140px}.rab-progress-period-btn{min-height:32px}.rab-progress-table th.rab-progress-head{font-size:8px}.rab-progress-cell{font-size:9px}}

/* v2.0.54 · compact weekly progress navigation + target baseline for future S-curve */
.rab-progress-period-nav{display:inline-flex;align-items:stretch;gap:2px}
.rab-progress-step-btn{width:27px;min-width:27px;min-height:30px;padding:0 4px;font-size:18px;line-height:1;border-color:#c4cfdb;background:#f8fbff;color:#334155}
.rab-progress-step-btn:disabled{opacity:.38}
.rab-progress-period-btn{min-height:30px;padding:3px 7px;border-radius:7px}
.rab-progress-period-btn span{font-size:9px}.rab-progress-period-btn small{font-size:7px}
.rab-progress-period-btn.snapshot{background:#f5f6f8;color:#56616e}
.rab-progress-period-btn.active{background:#eef5fb;border-color:#9eb4c8;color:#1f405e}
.rab-progress-target-strip{display:flex;align-items:center;gap:9px;margin:-4px 0 7px;padding:5px 8px;border:1px solid #ced9e3;border-radius:9px;background:#f8fbfd;min-height:38px;overflow:auto}
.rab-progress-target-strip.snapshot{background:#f7f8fa;border-color:#d8dee5}
.rab-progress-target-label{display:grid;gap:0;min-width:90px}.rab-progress-target-label .home-kicker{font-size:7px;letter-spacing:.08em}.rab-progress-target-label strong{font-size:10px;color:#263b4f}
.rab-progress-target-input{display:flex;align-items:center;gap:5px;white-space:nowrap}.rab-progress-target-input>span:first-child,.rab-progress-target-stat span{font-size:7.5px;color:#6b7785;font-weight:800}
.rab-progress-target-field{display:inline-grid;grid-template-columns:56px 15px;align-items:center;border:1px solid #bcc9d5;border-radius:6px;background:#fff;overflow:hidden;height:26px}
.rab-progress-target-field input{width:100%;height:24px;border:0;outline:0;text-align:center;font-size:10px;font-weight:850;color:#21364b;background:transparent;padding:2px 3px;font-variant-numeric:tabular-nums}
.rab-progress-target-field input:disabled{background:#f3f5f7;color:#6f7b87}.rab-progress-target-field em{font-style:normal;font-size:8px;font-weight:900;color:#64748b}
.rab-progress-target-stat{display:grid;gap:0;min-width:64px;text-align:center}.rab-progress-target-stat strong{font-size:10px;color:#21364b;font-variant-numeric:tabular-nums}
.rab-progress-target-source,.rab-progress-snapshot-tag{font-size:7px;padding:3px 6px;white-space:nowrap}.rab-progress-snapshot-tag{background:#eef0f3;color:#64748b}
.rab-progress-document .rab-doc-head{padding:10px 14px 7px}.rab-progress-document .rab-doc-head h2{font-size:16px}.rab-progress-document .rab-doc-head h3{font-size:11px;margin-top:2px}
.rab-progress-table{min-width:1020px;font-size:10px;line-height:1.05}
.rab-progress-table th,.rab-progress-table td{padding:2px 4px}
.rab-progress-table th{font-size:9px}.rab-progress-table th.rab-progress-head{font-size:8.2px;padding:2px 3px}
.rab-progress-group-row th{font-size:7.4px!important;padding:2px 3px!important;letter-spacing:.055em}
.rab-progress-colgroup .rab-col-no{width:3.5%}.rab-progress-colgroup .rab-col-name{width:24%}.rab-progress-colgroup .rab-col-unit{width:4%}.rab-progress-colgroup .rab-col-volume{width:5.7%}.rab-progress-colgroup .rab-col-price{width:8.5%}.rab-progress-colgroup .rab-col-amount{width:9.2%}.rab-progress-colgroup .rab-col-progress{width:5.7%}.rab-progress-colgroup .rab-col-progress-volume{width:6.5%}
.rab-progress-table .rab-cell-input{height:21px;font-size:9.7px;padding:1px 3px}.rab-progress-table .cell-ahsp,.rab-progress-table .cell-volume-source{height:20px;font-size:7px}
.rab-progress-table .row-tool{width:19px;height:19px;font-size:11px}.rab-progress-table .row-tool.add{font-size:12px}
.rab-progress-table .rab-item-name{font-size:10px;gap:4px}.rab-progress-table .section-row td{font-size:10.4px;padding-top:3px;padding-bottom:3px}.rab-progress-table .parent-row td{font-size:10.1px}
.rab-progress-table .rab-progress-cell{padding-left:3px;padding-right:3px;font-size:9.5px}.rab-progress-table .rab-progress-readonly small,.rab-progress-volume-editor small{font-size:7px}
.rab-progress-total-row td{padding-top:3px!important;padding-bottom:3px!important;font-size:8.4px}.rab-progress-total-row td:last-child{font-size:10px}
.rab-progress-snapshot-document .rab-progress-input{background:#f4f6f8!important;color:#707b86!important}
.rab-progress-period-row{width:100%;font:inherit;text-align:left;cursor:pointer}.rab-progress-period-row.selected{box-shadow:0 0 0 2px rgba(42,78,110,.10);border-color:#91a9bf}.rab-progress-period-row.active.selected{background:#edf5fb}
@media(max-width:720px){.rab-progress-target-strip{gap:6px;padding:4px 6px;min-height:34px}.rab-progress-target-label{min-width:76px}.rab-progress-target-stat{min-width:54px}.rab-progress-table{min-width:980px}.rab-progress-document .rab-doc-head{padding:8px 10px 6px}.rab-progress-table th,.rab-progress-table td{padding:2px 3px}.rab-progress-table .rab-progress-cell{font-size:9px}.rab-progress-step-btn{min-height:28px}.rab-progress-period-btn{min-height:28px}}

/* v2.0.55 · grouped RAB toolbar, period management, deviation KPIs, multi-period export */
.rab-editor-toolbar-v2{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:4px 0 6px}
.rab-toolbar-nav{display:flex;align-items:center;gap:5px;min-width:0}
.rab-toolbar-groups{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0;flex-wrap:wrap}
.rab-toolbar-group{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid #d8e0e7;border-radius:8px;background:#f7f9fb;min-height:32px}
.rab-toolbar-group .btn{min-height:27px;padding:4px 7px;border-radius:6px;font-size:9.5px;line-height:1.1}
.rab-toolbar-progress-group{background:#f3f8fc;border-color:#c9d7e3}
.rab-toolbar-baseline-group{background:#fffaf0;border-color:#e3d4b4}
.rab-toolbar-baseline-group .tag{margin:0 4px}
.rab-progress-period-manage{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:6px;margin-top:8px;padding:8px;border:1px solid #e0e6ec;border-radius:8px;background:#fafbfd}
.rab-progress-period-manage .field{margin:0}.rab-progress-period-manage .field>span{font-size:8px;font-weight:850;color:#657382}
.rab-progress-period-manage .input{height:30px;font-size:10px}
.rab-progress-target-strip{gap:6px;min-height:34px;padding:4px 6px}
.rab-progress-target-label{min-width:80px}.rab-progress-target-label strong{font-size:9.5px}
.rab-progress-target-stat{min-width:58px}.rab-progress-target-stat span{font-size:7px}.rab-progress-target-stat strong{font-size:9.5px}
.rab-progress-target-stat.deviation strong{padding:2px 5px;border-radius:5px}
.rab-progress-target-stat strong.positive{color:#166534;background:#dcfce7}
.rab-progress-target-stat strong.negative{color:#991b1b;background:#fee2e2}
.rab-progress-target-stat strong.neutral{color:#475569;background:#eef2f6}
.rab-progress-table{min-width:950px;font-size:9.5px}
.rab-progress-table th,.rab-progress-table td{padding:2px 3px}
.rab-progress-table th.rab-progress-head{font-size:7.9px;padding:2px}
.rab-progress-group-row th{font-size:7px!important;padding:2px!important}
.rab-progress-table .rab-cell-input{height:20px;font-size:9.2px}
.rab-progress-table .rab-item-name{font-size:9.6px}.rab-progress-table .section-row td{font-size:10px}.rab-progress-table .parent-row td{font-size:9.7px}
.rab-export-period-tools{display:flex;justify-content:flex-end;gap:5px;margin-bottom:6px}
.rab-export-period-list{display:grid;gap:5px;max-height:320px;overflow:auto;padding-right:2px}
.rab-export-period-row{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:7px;padding:7px 8px;border:1px solid #dde5ec;border-radius:8px;background:#fff;cursor:pointer}
.rab-export-period-row input{margin:0}.rab-export-period-row span{display:grid;gap:1px}.rab-export-period-row strong{font-size:10px}.rab-export-period-row small{font-size:8px;color:#748190}
@media(max-width:980px){.rab-editor-toolbar-v2{grid-template-columns:1fr}.rab-toolbar-groups{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.rab-toolbar-group{flex:0 0 auto}.rab-progress-table{min-width:920px}}
@media(max-width:720px){.rab-editor-toolbar-v2{display:flex;flex-direction:column;align-items:stretch;gap:4px}.rab-toolbar-nav{overflow-x:auto}.rab-toolbar-groups{width:100%;overflow-x:auto}.rab-toolbar-group .btn{min-height:26px;padding:4px 6px;font-size:9px}.rab-progress-period-manage{grid-template-columns:1fr 1fr}.rab-progress-period-manage .field{grid-column:1/-1}.rab-progress-table{min-width:900px}.rab-progress-target-strip{margin-top:-2px}.rab-progress-target-stat{min-width:52px}}

/* v2.0.56 · generic progress phases, compact deviation control, no RAB/progress divider */
.rab-progress-table .progress-start,
.rab-progress-table .rab-progress-footer-empty.progress-start,
.rab-progress-total-row .progress-start{border-left:0!important}
.rab-progress-group-row th{border-left:0!important}
.rab-progress-control-wrap{position:relative;margin:0 8px 6px;border:1px solid #d5dee7;border-radius:8px;background:#fafcfe;overflow:hidden}
.rab-progress-control-wrap.snapshot{background:#f7f8fa;border-color:#dce2e8}
.rab-progress-control-title{display:flex;align-items:center;gap:6px;padding:4px 7px;border-bottom:1px solid #e1e7ed;background:#f4f8fb;color:#536477;min-height:25px}
.rab-progress-control-title span{font-size:7px;font-weight:950;letter-spacing:.08em}
.rab-progress-control-title strong{font-size:9.5px;color:#223a50}
.rab-progress-control-title em{margin-left:auto;font-style:normal;font-size:6.8px;font-weight:900;color:#64748b}
.rab-progress-control-table{width:100%;border-collapse:collapse;table-layout:fixed}
.rab-progress-control-table th,.rab-progress-control-table td{border-right:1px solid #e2e8ee;text-align:center;padding:3px 5px}
.rab-progress-control-table th:last-child,.rab-progress-control-table td:last-child{border-right:0}
.rab-progress-control-table th{background:#f8fafc;color:#657484;font-size:7px;font-weight:900;line-height:1.1}
.rab-progress-control-table td{font-size:9px;color:#20364a;font-variant-numeric:tabular-nums;height:28px}
.rab-progress-control-table td>strong{display:inline-block;min-width:52px;font-size:9.5px}
.rab-progress-control-table strong.positive{color:#166534;background:#dcfce7;border-radius:5px;padding:2px 5px}
.rab-progress-control-table strong.negative{color:#991b1b;background:#fee2e2;border-radius:5px;padding:2px 5px}
.rab-progress-control-table strong.neutral{color:#475569;background:#eef2f6;border-radius:5px;padding:2px 5px}
.rab-progress-control-wrap .rab-progress-target-field{height:23px;grid-template-columns:52px 14px;margin:auto}
.rab-progress-control-wrap .rab-progress-target-field input{height:21px;font-size:9px}
.rab-progress-control-source{position:absolute;right:6px;top:5px;font-size:6.5px;font-weight:800;color:#7a8794}
.rab-progress-period-manage{grid-template-columns:minmax(0,1fr) auto auto auto}
.rab-progress-table .rab-progress-readonly small,.rab-progress-table .rab-progress-volume-editor small{display:none!important}
.rab-progress-table{min-width:900px}
.rab-progress-table th.rab-progress-head{font-size:7.6px}
.rab-editor-toolbar-v2{gap:5px;padding:2px 0 4px}
.rab-toolbar-groups{gap:3px}
.rab-toolbar-group{min-height:29px;padding:1px;border-radius:7px}
.rab-toolbar-group .btn{min-height:25px;padding:3px 6px;font-size:9px}
.rab-progress-period-btn{min-height:26px;padding:2px 6px}
.rab-progress-step-btn{min-height:26px;width:25px;min-width:25px}
@media(max-width:720px){
  .rab-progress-control-wrap{margin:0 4px 5px;overflow-x:auto}
  .rab-progress-control-table{min-width:610px}
  .rab-progress-period-manage{grid-template-columns:1fr 1fr}
  .rab-progress-period-manage .field{grid-column:1/-1}
  .rab-progress-table{min-width:870px}
}


/* v2.0.58 · phase modal layout + compact dynamic progress headers */
.rab-progress-period-manage{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;align-items:stretch!important;padding:8px!important}
.rab-progress-period-name-field{width:100%;min-width:0}
.rab-progress-period-name-field .input{width:100%;min-width:0}
.rab-progress-period-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}
.rab-progress-period-actions .btn{width:100%;min-width:0;white-space:normal;line-height:1.12;min-height:34px;padding:5px 7px}
.rab-progress-group-row th{padding-top:3px!important;padding-bottom:3px!important;line-height:1.05!important;white-space:normal}
.rab-progress-table th.rab-progress-head{line-height:1.05!important;padding-top:3px!important;padding-bottom:3px!important}
@media(max-width:720px){.rab-progress-period-actions{grid-template-columns:1fr 1fr}.rab-progress-period-actions .btn:last-child{grid-column:1/-1}.rab-progress-period-manage{padding:7px!important}}

/* v2.0.61 · BAGIAN 2 — RAB Realisasi komparatif */
.rab-realization-pairing-note{margin:0 0 10px;border-left:3px solid #64748b;background:#f8fafc}
.rab-comparison-document .rab-doc-head{padding-bottom:12px}
.rab-comparison-table{min-width:1280px;table-layout:fixed;font-size:9.7px}
.rab-comparison-colgroup .rab-compare-no{width:4%}
.rab-comparison-colgroup .rab-compare-name{width:22%}
.rab-comparison-colgroup .rab-compare-unit{width:5%}
.rab-comparison-colgroup .rab-compare-volume{width:7.5%}
.rab-comparison-colgroup .rab-compare-price{width:10%}
.rab-comparison-colgroup .rab-compare-amount{width:10.5%}
.rab-comparison-colgroup .rab-compare-delta-volume{width:8%}
.rab-comparison-colgroup .rab-compare-delta-amount{width:10.5%}
.rab-comparison-table th,.rab-comparison-table td{padding-left:4px;padding-right:4px}
.rab-comparison-group-row th{background:#334155!important;color:#fff!important;border-color:#64748b!important;font-size:9px!important;font-weight:950!important;letter-spacing:.055em;text-transform:uppercase}
.rab-comparison-subhead th{background:#eef2f6!important;color:#334155!important;font-size:8.6px!important;line-height:1.15;white-space:normal}
.rab-comparison-table .rab-item-name{min-width:0;font-size:9.8px;gap:4px}
.rab-comparison-table .rab-cell-input{font-size:9.6px;padding-left:3px;padding-right:3px}
.rab-comparison-table .volume-editor,.rab-comparison-table .price-editor{grid-template-columns:minmax(0,1fr) 32px;gap:2px}
.rab-comparison-table .cell-volume-source,.rab-comparison-table .cell-ahsp{font-size:7px;padding:0 2px}
.rab-comparison-baseline{background:#f8fafc}
.rab-comparison-zero{color:#94a3b8}
.rab-comparison-static-unit{text-align:center;color:#475569}
.rab-comparison-delta{font-variant-numeric:tabular-nums}
.rab-comparison-delta.positive{background:#edf7ed!important;color:#256b3f!important}
.rab-comparison-delta.negative{background:#fff0ed!important;color:#a33a2b!important}
.rab-comparison-delta.neutral{background:#f8fafc!important;color:#64748b!important}
.rab-comparison-unit-mismatch{display:inline-flex;align-items:center;justify-content:center;min-width:20px;border:1px dashed #cbd5e1;border-radius:5px;color:#64748b;font-weight:900;cursor:help}
.rab-comparison-status{display:inline-flex;align-items:center;margin-left:5px;padding:1px 5px;border-radius:999px;font-size:7px;font-weight:950;letter-spacing:.04em;vertical-align:middle;white-space:nowrap}
.rab-comparison-status.new{background:#eaf6ed;color:#28643d;border:1px solid #bcdcc6}
.rab-comparison-status.missing{background:#fff0ed;color:#9a3f32;border:1px solid #efc4bc}
.rab-comparison-row.missing td:nth-child(2),.rab-comparison-section.missing td{opacity:.86}
.rab-comparison-total-row td{font-variant-numeric:tabular-nums}
.rab-comparison-total-row td:nth-child(6),.rab-comparison-total-row td:nth-child(9),.rab-comparison-total-row td:nth-child(11){text-align:right;font-weight:900}
.rab-comparison-table .round-row td:nth-child(11).positive{background:#28553a!important;color:#fff!important}
.rab-comparison-table .round-row td:nth-child(11).negative{background:#7f3028!important;color:#fff!important}
.rab-comparison-table .round-row td:nth-child(11).neutral{background:#334155!important;color:#fff!important}
@media(max-width:720px){.rab-comparison-table{min-width:1180px;font-size:9.3px}.rab-comparison-table .rab-item-name{font-size:9.4px}.rab-comparison-subhead th{font-size:8.2px!important}.rab-comparison-table .rab-cell-input{font-size:9.3px}}


/* v2.0.62 · CA-01 — finalisasi UI RAB Realisasi sebelum engine CCO */
.rab-volume-entry.realization{
  color:#26384a;
  border-color:#b7c5d1;
  background:linear-gradient(135deg,#ffffff 0%,#f2f6f9 100%);
  box-shadow:0 2px 7px rgba(31,52,70,.08);
}
.rab-volume-entry.realization:hover{background:#edf3f7;border-color:#8fa6b7;color:#1f3548}
.rab-volume-entry.realization .rab-volume-entry-icon{background:#213e57;color:#fff}
.rab-volume-entry.realization .rab-volume-entry-copy strong{color:#21384d}
.rab-volume-entry.realization .rab-volume-entry-copy small{color:#657789}
.rab-volume-entry.realization .rab-volume-entry-arrow{color:#6a7d8e}
.rab-comparison-delta-volume,.rab-comparison-delta-volume-head{text-align:center!important}
.rab-create-cco-btn{font-weight:900;border-color:#c3cdd6;background:#f5f7f9;color:#758391}
.rab-create-cco-btn:disabled{opacity:.72;cursor:not-allowed}
@media(max-width:720px){
  .rab-volume-entry.realization{min-width:176px}
  .rab-create-cco-btn{white-space:nowrap}
}


/* v2.0.63 · CA-02 — kandidat CCO + koreksi fase progres/footer RAB */
.rab-doc-table tfoot .sum-row td{font-weight:900!important}
.rab-doc-table tfoot .sum-row td:first-child,
.rab-doc-table tfoot .sum-row td[data-rab-total],
.rab-doc-table tfoot .sum-row td[data-rab-comparison-contract-total],
.rab-doc-table tfoot .sum-row td[data-rab-comparison-delta-total]{text-align:right!important;font-weight:900!important}
.rab-create-cco-btn:not(:disabled){border-color:#8aa6bb;background:#eef5fa;color:#214762;box-shadow:0 1px 4px rgba(33,71,98,.08)}
.rab-create-cco-btn:not(:disabled):hover{background:#e4f0f7;border-color:#6f91aa}
.rab-create-cco-btn.has-draft{background:#fff8e6;border-color:#d8b85e;color:#6f5512}
.rab-cco-modal{width:min(920px,94vw)}
.rab-cco-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:9px}
.rab-cco-summary>div{display:grid;gap:2px;padding:8px 9px;border:1px solid #d8e0e7;border-radius:9px;background:#f8fafc;min-width:0}
.rab-cco-summary span{font-size:7.8px;font-weight:900;letter-spacing:.06em;color:#697b8a}
.rab-cco-summary strong{font-size:11px;color:#23384b;overflow-wrap:anywhere}
.rab-cco-summary strong.positive{color:#256b3f}.rab-cco-summary strong.negative{color:#a33a2b}.rab-cco-summary strong.neutral{color:#64748b}
.rab-cco-preview-wrap{border:1px solid #d7e0e7;border-radius:10px;overflow:auto;max-height:56vh;background:#fff}
.rab-cco-preview-table{width:100%;min-width:700px;border-collapse:collapse;font-size:9.5px}
.rab-cco-preview-table th,.rab-cco-preview-table td{border-bottom:1px solid #dfe6ec;border-right:1px solid #e6ebef;padding:6px 7px;vertical-align:middle}
.rab-cco-preview-table th:last-child,.rab-cco-preview-table td:last-child{border-right:0}
.rab-cco-preview-table th{position:sticky;top:0;z-index:1;background:#eef3f7;color:#415466;font-size:8.5px;text-align:center}
.rab-cco-preview-table th:first-child{width:38%;text-align:left}.rab-cco-preview-table th:nth-child(2),.rab-cco-preview-table th:nth-child(3){width:22%}.rab-cco-preview-table th:nth-child(4){width:18%}
.rab-cco-context-row td{background:#f3c94f;color:#263543;font-weight:900}.rab-cco-context-row.level-1 td{background:#edf2f5;color:#34495a}.rab-cco-context-row.level-2 td{background:#f7f9fb;color:#425464}
.rab-cco-item-name{display:grid;gap:2px}.rab-cco-item-name.level-1{padding-left:10px}.rab-cco-item-name.level-2{padding-left:20px}.rab-cco-item-name.level-3{padding-left:30px}
.rab-cco-item-name>strong{display:inline}.rab-cco-item-name>small{font-size:7.8px;color:#6c7d8b;font-weight:800}
.rab-cco-value-cell{display:grid;gap:1px;text-align:right;font-variant-numeric:tabular-nums}.rab-cco-value-cell strong{font-size:9.5px}.rab-cco-value-cell small{font-size:8px;color:#6f7f8c}
.rab-cco-delta{text-align:right;font-weight:900;font-variant-numeric:tabular-nums}.rab-cco-delta.positive{background:#edf7ed;color:#256b3f}.rab-cco-delta.negative{background:#fff0ed;color:#a33a2b}.rab-cco-delta.neutral{background:#f8fafc;color:#64748b}
@media(max-width:720px){.rab-cco-summary{grid-template-columns:1fr}.rab-cco-preview-table{min-width:650px}.rab-cco-modal{width:min(96vw,920px)}}


/* v2.0.64 · Snapshot CCO proper + Excel */
.rab-cco-document-modal{width:min(1280px,96vw)}
.rab-cco-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.rab-cco-doc-head h3{margin:2px 0 1px;font-size:18px;color:#20364a}.rab-cco-doc-head p{margin:0;color:#6b7d8b;font-size:9px;font-weight:800}
.rab-cco-status{display:inline-flex;align-items:center;justify-content:center;min-width:70px;padding:5px 9px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.06em;border:1px solid #d3b45a;background:#fff8df;color:#735a11}
.rab-cco-status.final{border-color:#8fb59a;background:#edf7ed;color:#256b3f}.rab-cco-status.stale{border-color:#d59c8d;background:#fff0ed;color:#963d2f}
.rab-cco-doc-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}
.rab-cco-doc-meta>div{display:grid;gap:2px;padding:7px 8px;border:1px solid #d8e1e8;border-radius:8px;background:#f8fafc;min-width:0}
.rab-cco-doc-meta span,.rab-cco-scope-box>span,.rab-cco-financial-summary span{font-size:7.5px;font-weight:950;letter-spacing:.055em;color:#70808e}
.rab-cco-doc-meta strong{font-size:9.5px;color:#263b4d;overflow-wrap:anywhere}
.rab-cco-scope-box{display:grid;gap:3px;padding:8px 9px;border:1px solid #cad7e1;border-radius:8px;background:#f3f7fa;margin-bottom:8px}.rab-cco-scope-box strong{font-size:10px;color:#25445b}.rab-cco-scope-box small{font-size:8.5px;color:#607586}
.rab-cco-financial-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:9px}
.rab-cco-financial-summary>div{display:grid;gap:2px;padding:8px;border:1px solid #d8e1e8;border-radius:8px;background:#fff;min-width:0}
.rab-cco-financial-summary strong{font-size:10px;color:#21384c;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.rab-cco-financial-summary strong.positive{color:#256b3f}.rab-cco-financial-summary strong.negative{color:#a33a2b}.rab-cco-financial-summary small{font-size:7.5px;color:#71808d}
.rab-cco-doc-wrap{border:1px solid #ccd7df;border-radius:9px;overflow:auto;max-height:52vh;background:#fff}
.rab-cco-doc-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:8.8px}
.rab-cco-doc-table th,.rab-cco-doc-table td{border-right:1px solid #e0e7ec;border-bottom:1px solid #dbe3e9;padding:5px 6px;vertical-align:middle}.rab-cco-doc-table th:last-child,.rab-cco-doc-table td:last-child{border-right:0}
.rab-cco-doc-table thead th{background:#334155;color:#fff;font-size:7.8px;font-weight:950;text-align:center;white-space:normal}.rab-cco-doc-table thead tr:last-child th{background:#e8eef3;color:#34495a}
.rab-cco-doc-table .rab-cco-context-row td{background:#f3c94f;color:#263543;font-weight:950}.rab-cco-doc-table .rab-cco-context-row.level-1 td{background:#edf2f5}.rab-cco-doc-table .rab-cco-context-row.level-2 td{background:#f7f9fb}
.rab-cco-no,.rab-cco-center{text-align:center}.rab-cco-num,.rab-cco-money{text-align:right;font-variant-numeric:tabular-nums}.rab-cco-change-type{font-size:7.7px;color:#536879;font-weight:800;white-space:normal}.rab-cco-change-type small{display:block;margin-top:2px;color:#71808c;font-weight:600}
.rab-cco-doc-footnote{margin-top:7px;padding:7px 9px;border-radius:8px;background:#f8fafc;border:1px solid #e0e6eb;color:#617483;font-size:8.5px;line-height:1.45}
@media(max-width:900px){.rab-cco-doc-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.rab-cco-financial-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.rab-cco-document-modal{width:96vw}.rab-cco-doc-meta,.rab-cco-financial-summary{grid-template-columns:1fr}.rab-cco-doc-wrap{max-height:48vh}.rab-cco-doc-table{min-width:1040px}}


/* v2.0.66 · CA-03 CCO negotiation editor */
.rab-cco-editor-modal{width:min(1380px,97vw)}
.rab-cco-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}
.rab-cco-editor-head h3{margin:2px 0 1px;font-size:18px;color:#20364a}.rab-cco-editor-head p{margin:0;color:#6b7d8b;font-size:9px;font-weight:800}
.rab-cco-editor-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:8px}
.rab-cco-editor-summary>div{display:grid;gap:2px;padding:7px 8px;border:1px solid #d8e1e8;border-radius:8px;background:#f8fafc;min-width:0}
.rab-cco-editor-summary span{font-size:7.5px;font-weight:950;letter-spacing:.055em;color:#70808e}.rab-cco-editor-summary strong{font-size:10px;color:#21384c;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rab-cco-editor-summary strong.positive,.rab-cco-editor-live-money small.positive{color:#256b3f}.rab-cco-editor-summary strong.negative,.rab-cco-editor-live-money small.negative{color:#a33a2b}.rab-cco-editor-summary strong.neutral,.rab-cco-editor-live-money small.neutral{color:#64748b}
.rab-cco-editor-meta{display:grid;grid-template-columns:1fr 1fr 160px 1fr;gap:7px;margin-bottom:8px;align-items:end}.rab-cco-editor-meta .field{margin:0;min-width:0}.rab-cco-editor-meta .field>span{display:block;margin-bottom:4px;font-size:8px;font-weight:900;color:#5f7282}.rab-cco-editor-meta textarea{resize:vertical;min-height:54px}.rab-cco-editor-time,.rab-cco-editor-schedule{align-self:stretch}.rab-cco-editor-time .input,.rab-cco-editor-schedule .input{min-height:36px}
.rab-cco-editor-wrap{border:1px solid #cbd7df;border-radius:9px;overflow:auto;max-height:50vh;background:#fff}
.rab-cco-editor-table{width:100%;min-width:1160px;border-collapse:collapse;font-size:8.6px}
.rab-cco-editor-table th,.rab-cco-editor-table td{border-right:1px solid #e0e7ec;border-bottom:1px solid #dbe3e9;padding:5px 6px;vertical-align:middle}.rab-cco-editor-table th:last-child,.rab-cco-editor-table td:last-child{border-right:0}
.rab-cco-editor-table thead th{position:sticky;top:0;z-index:2;background:#334155;color:#fff;font-size:7.7px;font-weight:950;text-align:center;white-space:normal}
.rab-cco-editor-table th:nth-child(1){width:42px}.rab-cco-editor-table th:nth-child(2){width:230px}.rab-cco-editor-table th:nth-child(3),.rab-cco-editor-table th:nth-child(4){width:150px}.rab-cco-editor-table th:nth-child(5){width:120px}.rab-cco-editor-table th:nth-child(6){width:135px}.rab-cco-editor-table th:nth-child(7){width:150px}.rab-cco-editor-table th:nth-child(8){width:190px}
.rab-cco-editor-check{text-align:center}.rab-cco-editor-check input{width:17px;height:17px;accent-color:#214762;cursor:pointer}
.rab-cco-editor-snapshot{display:grid;gap:1px;text-align:right;font-variant-numeric:tabular-nums}.rab-cco-editor-snapshot strong{font-size:8.8px;color:#2e4355}.rab-cco-editor-snapshot span{font-size:7.5px;color:#758594}.rab-cco-editor-snapshot small{font-size:7.5px;color:#516574;font-weight:800}
.rab-cco-editor-number{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center}.rab-cco-editor-number span{font-size:8px;font-weight:900;color:#607383}.rab-cco-editor-table .input{min-height:31px;padding:5px 6px;font-size:8.6px}.rab-cco-editor-price{text-align:right;font-variant-numeric:tabular-nums}.rab-cco-editor-number input{text-align:right;font-variant-numeric:tabular-nums}.rab-cco-editor-note{min-width:170px}
.rab-cco-editor-live-money{display:grid;gap:2px;text-align:right;font-variant-numeric:tabular-nums}.rab-cco-editor-live-money strong{font-size:8.8px;color:#263c4e}.rab-cco-editor-live-money small{font-size:7.7px;font-weight:900}
.rab-cco-editor-item.is-excluded td{background:#f5f7f9;color:#87939d}.rab-cco-editor-item.is-excluded .rab-cco-item-name,.rab-cco-editor-item.is-excluded .rab-cco-editor-snapshot{opacity:.68}.rab-cco-editor-item.is-excluded input:not([type="checkbox"]){background:#eef1f4;color:#8b969f}
.rab-cco-editor-table .rab-cco-context-row td{background:#f3c94f;color:#263543;font-weight:950}.rab-cco-editor-table .rab-cco-context-row.level-1 td{background:#edf2f5}.rab-cco-editor-table .rab-cco-context-row.level-2 td{background:#f7f9fb}
@media(max-width:980px){.rab-cco-editor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.rab-cco-editor-meta{grid-template-columns:1fr 1fr}.rab-cco-editor-modal{width:97vw}}
@media(max-width:620px){.rab-cco-editor-summary,.rab-cco-editor-meta{grid-template-columns:1fr}.rab-cco-editor-wrap{max-height:48vh}.rab-cco-editor-table{min-width:1080px}}

/* v2.0.67 · CA-04 Final CCO */
.rab-create-cco-btn.has-final{border-color:#7aa889;background:#edf7f0;color:#245f3b;font-weight:900}
.rab-cco-finalize-modal{width:min(760px,94vw)}
.rab-cco-finalize-confirm{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.rab-cco-finalize-confirm .confirm-icon{display:flex;align-items:center;justify-content:center;flex:0 0 40px;height:40px;border-radius:50%;background:#edf7f0;border:1px solid #9bc0a6;color:#27653d;font-size:18px;font-weight:950}
.rab-cco-finalize-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px}
.rab-cco-finalize-summary>div{display:flex;flex-direction:column;gap:3px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.rab-cco-finalize-summary span{font-size:8px;font-weight:900;letter-spacing:.04em;color:var(--muted)}
.rab-cco-finalize-summary strong{font-size:12px;line-height:1.2;overflow-wrap:anywhere}
@media(max-width:620px){.rab-cco-finalize-summary{grid-template-columns:1fr 1fr}}


/* v2.0.69 · CA-06 Kontrak Revisi + Baseline Baru */
/* v2.0.68 · CA-05 Addendum Builder */
.rab-addendum-builder-modal{width:min(1380px,97vw)}
.rab-addendum-builder-head,.rab-addendum-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}
.rab-addendum-builder-head h3,.rab-addendum-doc-head h3{margin:2px 0 1px;font-size:18px;color:#20364a}.rab-addendum-builder-head p,.rab-addendum-doc-head p{margin:0;color:#6b7d8b;font-size:9px;font-weight:800}
.rab-addendum-status{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:5px 9px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.06em;border:1px solid #d3b45a;background:#fff8df;color:#735a11}.rab-addendum-status.ready{border-color:#8fb59a;background:#edf7ed;color:#256b3f}.rab-addendum-status.approved{border-color:#74a784;background:#e8f5eb;color:#185c34}
.rab-addendum-builder-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(520px,1.35fr);gap:9px;margin-bottom:8px}
.rab-addendum-builder-grid>section{min-width:0;padding:8px;border:1px solid #d8e1e8;border-radius:9px;background:#f8fafc}.rab-addendum-builder-label{font-size:8px;font-weight:950;letter-spacing:.05em;color:#617585;margin-bottom:6px}
.rab-addendum-cco-list{display:grid;gap:5px}.rab-addendum-cco-card{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border:1px solid #d8e1e8;border-radius:8px;background:#fff;cursor:pointer}.rab-addendum-cco-card input{width:17px;height:17px;accent-color:#214762}.rab-addendum-cco-card span{display:grid;gap:1px;min-width:0}.rab-addendum-cco-card strong{font-size:9.5px;color:#283f51}.rab-addendum-cco-card small{font-size:7.7px;color:#71818e}.rab-addendum-cco-card em{font-style:normal;font-size:9px;font-weight:950;font-variant-numeric:tabular-nums}.rab-addendum-cco-card em.positive{color:#256b3f}.rab-addendum-cco-card em.negative{color:#a33a2b}.rab-addendum-cco-card em.neutral{color:#64748b}
.rab-addendum-builder-fields{display:grid!important;grid-template-columns:1fr 1fr;gap:7px}.rab-addendum-builder-fields .field{margin:0;min-width:0}.rab-addendum-builder-fields .field>span{display:block;margin-bottom:4px;font-size:8px;font-weight:900;color:#5f7282}.rab-addendum-builder-fields .span-2{grid-column:1/-1}.rab-addendum-builder-fields textarea{resize:vertical;min-height:54px}
.rab-addendum-conflict-box{margin-top:8px;padding:8px;border:1px solid #e0bd72;border-radius:8px;background:#fff8e8}.rab-addendum-conflict-box>strong{display:block;font-size:9px;color:#6d5518}.rab-addendum-conflict-box>p{margin:2px 0 6px;font-size:8px;color:#806d3d}.rab-addendum-conflict-box label{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:6px;align-items:center;margin-top:5px}.rab-addendum-conflict-box label>span{font-size:8px;font-weight:850;color:#5d522f}.rab-addendum-conflict-box .select{min-height:31px;font-size:8px}
.rab-addendum-live-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}.rab-addendum-live-summary>div{display:grid;gap:2px;padding:7px 8px;border:1px solid #d8e1e8;border-radius:8px;background:#fff}.rab-addendum-live-summary span{font-size:7.5px;font-weight:950;color:#70808e;letter-spacing:.045em}.rab-addendum-live-summary strong{font-size:10px;color:#21384c;font-variant-numeric:tabular-nums}.rab-addendum-live-summary strong.positive{color:#256b3f}.rab-addendum-live-summary strong.negative{color:#a33a2b}.rab-addendum-live-summary strong.neutral{color:#64748b}
.rab-addendum-table-label{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:8px 1px 5px}.rab-addendum-table-label strong{font-size:8px;letter-spacing:.04em;color:#31495c}.rab-addendum-table-label span{font-size:7.7px;color:#758593}
.rab-addendum-builder-preview{max-height:44vh}.rab-addendum-empty{text-align:center!important;padding:18px!important;color:#788894;font-weight:800}
.rab-addendum-doc-table .rab-addendum-context-row td{background:#f3c94f;color:#263543;font-weight:950}.rab-addendum-doc-table .rab-addendum-context-row.level-1 td{background:#edf2f5}.rab-addendum-doc-table .rab-addendum-context-row.level-2 td{background:#f7f9fb}
.rab-addendum-source-ccos{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-bottom:8px;padding:7px 9px;border:1px solid #d8e1e8;border-radius:8px;background:#f8fafc}.rab-addendum-source-ccos>span{font-size:7.5px;font-weight:950;color:#70808e;letter-spacing:.05em}.rab-addendum-source-ccos>div{display:flex;gap:5px;flex-wrap:wrap}.rab-addendum-source-ccos>div span{padding:3px 7px;border-radius:999px;background:#e8eef3;color:#334b5f;font-size:8px;font-weight:900}
.rab-addendum-document-modal{width:min(1280px,96vw)}.rab-addendum-ready-modal{width:min(780px,94vw)}.rab-addendum-ready-confirm{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.rab-addendum-ready-confirm .confirm-icon{display:flex;align-items:center;justify-content:center;flex:0 0 40px;height:40px;border-radius:50%;background:#edf7f0;border:1px solid #9bc0a6;color:#27653d;font-size:18px;font-weight:950}
@media(max-width:980px){.rab-addendum-builder-grid{grid-template-columns:1fr}.rab-addendum-live-summary{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.rab-addendum-builder-modal,.rab-addendum-document-modal{width:97vw}.rab-addendum-builder-fields,.rab-addendum-live-summary{grid-template-columns:1fr}.rab-addendum-builder-fields .span-2{grid-column:auto}.rab-addendum-conflict-box label{grid-template-columns:1fr}.rab-addendum-table-label{display:grid}}


/* v2.0.70 · CA-07 Contract-progress transition */
.rab-progress-transition-pending{margin:7px 0 8px}
.rab-progress-transition-head{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.rab-progress-transition-head h3{margin:0;font-size:16px;color:#1f3448}
.rab-progress-transition-head p{margin:0;color:#627181;font-size:10px;line-height:1.4}
.rab-progress-transition-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0}
.rab-progress-transition-summary>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 8px;border:1px solid #dbe3ea;border-radius:8px;background:#f8fafc}
.rab-progress-transition-summary span{font-size:7px;font-weight:900;letter-spacing:.06em;color:#6a7887}
.rab-progress-transition-summary strong{font-size:10px;color:#20374d;white-space:normal;overflow-wrap:anywhere}
.rab-progress-transition-manual{margin-top:8px;border:1px solid #dce4eb;border-radius:9px;overflow:hidden;background:#fff}
.rab-progress-transition-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;background:#f5f8fb;border-bottom:1px solid #e0e6ec}
.rab-progress-transition-title strong{font-size:10px;color:#21394f}.rab-progress-transition-title span{font-size:8px;font-weight:850;color:#657586}
.rab-progress-transition-table-wrap{overflow:auto;max-height:42vh}
.rab-progress-transition-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:650px}
.rab-progress-transition-table th,.rab-progress-transition-table td{border-right:1px solid #e1e7ed;border-bottom:1px solid #e1e7ed;padding:5px 6px;vertical-align:middle}
.rab-progress-transition-table th:last-child,.rab-progress-transition-table td:last-child{border-right:0}.rab-progress-transition-table tbody tr:last-child td{border-bottom:0}
.rab-progress-transition-table th{background:#f9fbfd;color:#607080;font-size:7.5px;font-weight:900;text-align:center;line-height:1.15}
.rab-progress-transition-table th:first-child{width:30%;text-align:left}.rab-progress-transition-table th:nth-child(2),.rab-progress-transition-table th:nth-child(3){width:10%}.rab-progress-transition-table th:nth-child(4){width:15%}.rab-progress-transition-table th:nth-child(5){width:35%}
.rab-progress-transition-table td{font-size:9px;color:#263c50}.rab-progress-transition-table td>strong{display:block;font-size:9px}.rab-progress-transition-table td>small{display:block;margin-top:2px;font-size:7px;font-weight:850;color:#8a5a20}
.rab-progress-transition-center{text-align:center}.rab-progress-transition-num{text-align:right;font-variant-numeric:tabular-nums}
.rab-progress-transition-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center}.rab-progress-transition-input .input{height:29px;text-align:right;font-variant-numeric:tabular-nums}.rab-progress-transition-input span{min-width:24px;font-size:8px;font-weight:850;color:#667686}
.rab-progress-transition-manual>.hint{margin:0;padding:7px 9px;border-top:1px solid #e6ebf0;background:#fbfcfd}
@media(max-width:720px){.rab-progress-transition-summary{grid-template-columns:1fr 1fr}.rab-progress-transition-head h3{font-size:14px}.rab-progress-transition-table-wrap{max-height:48vh}}

/* RGD-02 — Google Identity gate */
.auth-pending #app-shell{visibility:hidden}
.auth-gate{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px;background:#eef2f5}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid #ccd6df;border-radius:18px;padding:26px;box-shadow:0 18px 48px rgba(22,50,79,.12)}
.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:28px}.auth-brand>div:last-child{display:flex;flex-direction:column;line-height:1.1}.auth-brand strong{font-size:16px;color:#16324f}.auth-brand span{font-size:11px;color:#667788;margin-top:4px}.auth-mark{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#16324f;color:#fff;font-size:22px;font-weight:800}
.auth-kicker{font-size:10px;letter-spacing:.16em;font-weight:800;color:#48647e;margin-bottom:7px}.auth-card h1{font-size:24px;line-height:1.15;margin:0 0 10px;color:#172b3f}.auth-copy{font-size:13px;line-height:1.55;color:#5c6d7d;margin:0 0 20px}
.auth-google-btn{width:100%;min-height:46px;border:1px solid #bdc9d4;border-radius:10px;background:#fff;color:#22394e;font:inherit;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.auth-google-btn:hover{background:#f7f9fb}.auth-google-btn:disabled{cursor:not-allowed;opacity:.55}.auth-google-g{font-size:18px;font-weight:900;color:#315f98}
.auth-message{display:none;margin:0 0 12px;padding:10px 12px;border-radius:9px;background:#f4f7fa;color:#44586b;font-size:12px;line-height:1.45}.auth-message.show{display:block}.auth-config-note,.auth-config-missing{font-size:11px;line-height:1.45;color:#7a4e12;margin:12px 0 0}.auth-config-missing{word-break:break-word}.auth-footnote{margin:20px 0 0;text-align:center;font-size:10px;color:#82909d}
.settings-google-account{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;margin-bottom:12px;border:1px solid #d7e0e8;border-radius:12px;background:#f8fafc}.settings-google-account>div{min-width:0;display:flex;flex-direction:column;gap:2px}.settings-google-account span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6b7d8e;font-weight:700}.settings-google-account strong,.settings-google-account small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-google-account strong{font-size:14px;color:#18324b}.settings-google-account small{font-size:11px;color:#687a8c}
@media(max-width:560px){.auth-gate{padding:14px}.auth-card{padding:22px 18px;border-radius:15px}.settings-google-account{align-items:flex-start;flex-direction:column}.settings-google-account .btn{width:100%}}


/* RAB Field Drive v1.0.3 — RGD-04 Admin RAB Field */
.settings-admin-panel{display:block}.admin-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.admin-summary-grid>div{border:1px solid #E3E9ED;background:#F8FAFB;border-radius:10px;padding:9px}.admin-summary-grid span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.admin-summary-grid strong{display:block;margin-top:3px;font-size:16px;color:var(--graphite)}
.admin-provision-form{margin-top:14px;padding:11px;border:1px solid #DDE5EB;background:#FBFCFD;border-radius:11px}.admin-provision-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;align-items:end}.admin-provision-grid .field{margin:0}.admin-provision-grid .field>span,.admin-customer-controls label>span{display:block;margin-bottom:4px;font-size:8.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:750}.admin-note-field{grid-column:1/-1}.admin-provision-grid>.btn{justify-self:start}.admin-provision-form .hint{margin:8px 0 0}
.admin-list-head{margin-top:15px}.admin-customer-list,.admin-pending-list{display:grid;gap:7px;margin-top:7px}.admin-customer-card{border:1px solid #DDE5EB;border-radius:11px;padding:10px;background:#fff}.admin-customer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-customer-head>div{min-width:0}.admin-customer-head strong,.admin-pending-card strong{display:block;font-size:11.5px;color:var(--graphite)}.admin-customer-head small,.admin-pending-card small{display:block;margin-top:2px;font-size:9.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.admin-customer-controls{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(120px,.7fr) minmax(120px,.7fr) auto;gap:7px;align-items:end;margin-top:9px}.admin-customer-controls label{min-width:0}.admin-customer-controls .input{width:100%;min-width:0}.admin-customer-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px;font-size:8.5px;color:var(--muted)}.admin-pending-card{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px dashed #CFDAE2;border-radius:10px;padding:9px 10px;background:#FAFCFD}.admin-pending-card>div{min-width:0}.admin-empty{padding:12px;border:1px dashed #D8E1E7;border-radius:10px;background:#FAFCFD;font-size:10px;color:var(--muted);text-align:center}.settings-account-badge.warning{background:#FFF4E5;color:#8A5B00;border-color:#EBCB92}
@media(max-width:760px){.admin-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-provision-grid{grid-template-columns:1fr}.admin-note-field{grid-column:auto}.admin-provision-grid>.btn{width:100%}.admin-customer-controls{grid-template-columns:1fr 1fr}.admin-customer-controls label:first-child{grid-column:1/-1}.admin-customer-controls .btn{width:100%}.admin-pending-card{align-items:flex-start}}
@media(max-width:430px){.admin-summary-grid{grid-template-columns:1fr 1fr 1fr;gap:5px}.admin-summary-grid>div{padding:7px}.admin-summary-grid strong{font-size:14px}.admin-customer-controls{grid-template-columns:1fr}.admin-customer-controls label:first-child{grid-column:auto}.admin-pending-card{flex-direction:column}.admin-pending-card .btn{width:100%}}
