:root{--navy:#142b4a;--navy2:#1c3b60;--ink:#202a38;--muted:#7b8797;--line:#e6eaf0;--surface:#fff;--canvas:#f5f7fa;--orange:#ff922e;--orange2:#f47b20;--green:#1a9a6b;--red:#d94d55;--blue:#3e70d6;--purple:#9062ce;--shadow:0 4px 20px rgba(22,39,64,.06);font-family:'DM Sans',sans-serif;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--canvas)}body{font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:11px;line-height:1.6}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#ffc080}.brand-mark{display:grid;place-items:center;position:relative;width:39px;height:39px;border-radius:12px;background:linear-gradient(140deg,#ffad4d,#f57b28);color:white;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;box-shadow:0 7px 16px #f59c3b30;flex-shrink:0}.brand-mark span{font-size:11px;position:absolute;right:5px;top:4px;color:#ffe1b5}.brand-mark.large{width:58px;height:58px;border-radius:18px;font-size:26px}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;flex:0 0 260px;background:var(--navy);color:#cad4e1;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;z-index:50;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:22px 20px 23px;border-bottom:1px solid #ffffff13}.brand-copy b{display:block;color:white;font-family:Manrope,sans-serif;font-size:16px;letter-spacing:.1px}.brand-copy small{display:block;margin-top:4px;color:#94a7bd;font-size:8px;letter-spacing:1.25px;font-weight:700;white-space:nowrap}.workspace-pill{margin:18px 14px 14px;padding:10px 11px;border:1px solid #ffffff16;background:#ffffff08;border-radius:9px;display:flex;align-items:center;gap:8px;font-size:11px;color:#e1e7ef}.workspace-dot,.status-dot{width:7px;height:7px;border-radius:50%;background:#48c891;display:inline-block}.workspace-pill .chevron{margin-left:auto;color:#7e98b5;font-size:15px}.navigation{padding:0 11px 12px;flex:1}.nav-section{margin:13px 0 5px;padding:0 11px;color:#7790ad;text-transform:uppercase;font-size:9px;letter-spacing:1.5px;font-weight:700}.nav-item{border:0;background:transparent;color:#b8c6d8;width:100%;display:flex;align-items:center;gap:11px;border-radius:8px;text-align:left;padding:10px 11px;font-size:12px;font-weight:500;margin:2px 0;transition:.15s}.nav-item .nav-icon{width:19px;text-align:center;font-size:15px;color:#91a8c2}.nav-item:hover{background:#ffffff0c;color:white}.nav-item.active{background:#ff932e1c;color:#fff;border-left:3px solid var(--orange);padding-left:8px}.nav-item.active .nav-icon{color:#ffb25c}.nav-count{margin-left:auto;background:#244665;color:#b8d0e9;border-radius:12px;padding:2px 6px;font-size:10px}.sidebar-bottom{padding:12px 14px 16px;border-top:1px solid #ffffff13}.secure-note{display:flex;align-items:center;gap:9px;padding:7px 3px 13px}.secure-note>span{color:#45cf95;font-size:10px}.secure-note b,.secure-note small{display:block}.secure-note b{font-size:11px;color:#e3eaf2}.secure-note small{font-size:10px;color:#8198b1;margin-top:3px}.side-action{border:0;background:transparent;color:#9db0c6;width:100%;display:flex;align-items:center;gap:10px;padding:9px 8px;text-align:left;border-radius:7px;font-size:11px}.side-action:hover{background:#ffffff0c;color:white}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 31px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px}.breadcrumb>span:first-child{font-size:9px;font-weight:700;letter-spacing:1.6px;color:#9ca8b6}.crumb-sep{color:#c6ced8}.breadcrumb b{color:#2a3442;font-weight:600}.topbar-right{display:flex;align-items:center;gap:17px}.topbar-date{display:flex;align-items:center;gap:7px;color:#8a95a4;font-size:11px}.topbar-date .status-dot{width:6px;height:6px}.icon-btn{height:34px;width:34px;border:1px solid var(--line);background:white;color:#607085;border-radius:9px;display:grid;place-items:center;font-size:16px}.icon-btn:hover{background:#f8fafc;color:var(--navy)}.user-chip{display:flex;align-items:center;gap:9px;padding-left:15px;border-left:1px solid var(--line)}.avatar{width:34px;height:34px;background:#e6eeff;color:#3766b3;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:11px}.user-details b,.user-details small{display:block}.user-details b{font-size:11px;color:#2d3948}.user-details small{font-size:10px;color:#96a0ae;margin-top:3px;text-transform:capitalize}.logout-btn{border:0;background:none;color:#99a5b3;margin-left:2px;padding:6px}.menu-toggle,.mobile-only{display:none}.page-content{padding:27px 31px 21px;width:100%;max-width:1700px;margin:0 auto;flex:1}.app-footer{display:flex;justify-content:space-between;padding:15px 31px;border-top:1px solid #eaedf2;color:#a1aab5;font-size:10px}.footer-dot{display:inline-block;width:4px;height:4px;background:#ff9b3e;border-radius:50%;margin:0 5px 2px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-kicker{font-size:10px;font-weight:700;letter-spacing:1.65px;text-transform:uppercase;color:#f08a32;margin-bottom:7px}.page-heading h1{font-family:Manrope,sans-serif;font-size:24px;line-height:1.3;color:#1b2f47;margin:0;font-weight:800;letter-spacing:-.55px}.page-heading p{color:#8994a4;font-size:12px;margin:7px 0 0;line-height:1.65}.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #dce3ec;background:white;color:#506075;padding:10px 13px;border-radius:8px;font-weight:600;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 5px #122b4905;transition:.15s}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #152b490d}.btn.primary{background:var(--navy);border-color:var(--navy);color:white}.btn.primary:hover{background:#203f65}.btn.orange{background:var(--orange);border-color:var(--orange);color:white}.btn.danger{color:#cb3f4a;border-color:#f3d4d6;background:#fff8f8}.btn.subtle{background:#f8fafc}.btn.wide{width:100%}.btn.sm{padding:6px 9px;font-size:10px}.btn .btn-icon{font-size:14px}.btn:focus,input:focus,select:focus,textarea:focus{outline:3px solid #ff9c3c26;border-color:#f49b48}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:19px}.kpi-card{background:#fff;border:1px solid #e9edf2;border-radius:12px;padding:17px 18px 16px;box-shadow:0 2px 9px #203b5a04;position:relative;min-width:0}.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.kpi-label{font-size:11px;color:#8a95a4;font-weight:500}.kpi-icon{width:32px;height:32px;border-radius:9px;background:#fff3e6;color:#f18b30;display:grid;place-items:center;font-size:16px}.kpi-icon.blue{background:#ecf2ff;color:#5078d3}.kpi-icon.green{background:#e7f8f0;color:#1d9b6d}.kpi-icon.purple{background:#f4ecff;color:#9463d1}.kpi-value{font:800 23px Manrope,sans-serif;color:#24364b;letter-spacing:-.5px;overflow-wrap:anywhere}.kpi-sub{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:10px;color:#9da7b2}.kpi-sub .positive{color:#209b70;font-weight:700}.kpi-sub .warning{color:#d98622;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:17px;margin-bottom:17px}.panel{background:white;border:1px solid #e8edf2;border-radius:12px;box-shadow:0 2px 9px #203b5a04;min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #eff1f5}.panel-header h3{font-family:Manrope,sans-serif;font-size:13px;color:#25364b;margin:0;font-weight:800}.panel-header p{margin:5px 0 0;color:#99a3b0;font-size:10px}.link-btn{border:0;background:transparent;color:#ee8a32;font-weight:700;font-size:10px}.panel-body{padding:18px 19px}.project-row{display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(100px,1fr) 54px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #f0f2f5}.project-row:last-child{border-bottom:0;padding-bottom:0}.project-name b{display:block;color:#384658;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-name span{display:block;color:#9aa4b1;font-size:10px;margin-top:5px}.progress-track{height:6px;background:#eef1f5;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#f5a14d,#f87f29);border-radius:99px}.project-percent{text-align:right;font-size:11px;font-weight:700;color:#52657c}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;background:#f1f4f8;color:#63758a;font-size:9px;font-weight:700;padding:5px 8px;white-space:nowrap}.badge.success{background:#e8f8f0;color:#1c9567}.badge.warning{background:#fff4df;color:#bd7d15}.badge.danger{background:#fff0f1;color:#c34d56}.badge.blue{background:#eaf1ff;color:#456cc2}.badge.purple{background:#f4ecff;color:#8657bf}.badge .badge-dot{width:5px;height:5px;background:currentColor;border-radius:50%}.activity-list{display:flex;flex-direction:column;gap:0}.activity-item{display:grid;grid-template-columns:29px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #f0f2f5}.activity-item:first-child{padding-top:0}.activity-item:last-child{border-bottom:0;padding-bottom:0}.activity-symbol{height:27px;width:27px;border-radius:9px;background:#f1f5fb;color:#738bad;display:grid;place-items:center;font-size:12px}.activity-item b{display:block;font-size:10px;color:#445266;font-weight:700}.activity-item p{margin:4px 0 0;font-size:10px;color:#8d99a8;line-height:1.45}.activity-item time{display:block;color:#afb7c0;font-size:9px;margin-top:5px}.low-stock-list{display:flex;flex-direction:column;gap:12px}.low-stock-item{display:flex;align-items:center;gap:10px}.material-symbol{width:31px;height:31px;border-radius:9px;background:#fff4e6;color:#d8862d;display:grid;place-items:center}.low-stock-name{flex:1;min-width:0}.low-stock-name b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.low-stock-name span{display:block;margin-top:4px;color:#9ba5b2;font-size:9px}.stock-num{font-size:11px;color:#ce5a43;font-weight:700;text-align:right}.shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.shortcut{padding:12px 9px;border:1px solid #edf0f4;border-radius:9px;background:#fff;text-align:left;color:#536276;display:flex;flex-direction:column;gap:8px}.shortcut:hover{border-color:#f3bc82;background:#fffaf4}.shortcut .shortcut-icon{font-size:17px;color:#ee923a}.shortcut b{font-size:10px;color:#38495e}.shortcut span:last-child{font-size:9px;color:#9ba5b0}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px;border-bottom:1px solid #edf0f4;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.search-box{position:relative;min-width:210px}.search-box input{width:100%;padding:9px 11px 9px 32px;background:#fff;border:1px solid #e1e6ed;border-radius:7px;color:#405066;font-size:11px}.search-box span{position:absolute;left:11px;top:9px;color:#9ca8b5;font-size:13px}.filter-select{border:1px solid #e1e6ed;border-radius:7px;background:white;color:#5e6d80;font-size:11px;padding:9px 10px;max-width:220px}.table-scroll{width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:750px}.data-table th{background:#fbfcfd;text-align:left;padding:12px 15px;color:#8995a4;font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;border-bottom:1px solid #edf0f4;white-space:nowrap}.data-table td{padding:12px 15px;border-bottom:1px solid #f0f2f5;color:#516074;font-size:11px;vertical-align:middle;max-width:290px}.data-table tbody tr:hover{background:#fcfdff}.data-table tbody tr:last-child td{border-bottom:0}.cell-strong{display:block;font-weight:700;color:#33445a}.cell-sub{display:block;margin-top:4px;font-size:9px;color:#9aa5b2}.table-actions{display:flex;gap:5px;white-space:nowrap}.table-action{border:1px solid #e9edf2;background:#fff;border-radius:6px;padding:5px 7px;font-size:10px;color:#718096}.table-action:hover{color:#e88932;border-color:#f4c28f}.table-action.danger:hover{color:#d84b57;border-color:#eebfc4}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-top:1px solid #edf0f4;color:#9aa4b0;font-size:10px}.pagination{display:flex;gap:5px}.page-num{height:27px;min-width:27px;border:1px solid #e5eaf0;background:white;border-radius:6px;color:#67788e;font-size:10px}.page-num.active{background:var(--navy);border-color:var(--navy);color:#fff}.empty-state{text-align:center;padding:43px 20px;color:#97a2b1}.empty-icon{width:46px;height:46px;border-radius:14px;background:#f2f5f9;display:grid;place-items:center;color:#8798ac;margin:0 auto 12px;font-size:20px}.empty-state h3{font-family:Manrope,sans-serif;font-size:13px;color:#526174;margin:0}.empty-state p{font-size:11px;line-height:1.6;margin:8px auto 0;max-width:330px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-card{padding:18px;border:1px solid #e7ecf2;border-radius:11px;background:#fff;display:flex;gap:13px;align-items:flex-start;min-width:0}.report-card:hover{border-color:#f0bd88;box-shadow:var(--shadow)}.report-card-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#fff1df;color:#e8892e;font-size:18px;flex-shrink:0}.report-card-icon.blue{background:#eaf0ff;color:#5074cf}.report-card-icon.green{background:#e6f8ef;color:#189569}.report-card-icon.purple{background:#f3eaff;color:#8c60c6}.report-card h3{margin:1px 0 7px;font-family:Manrope,sans-serif;font-size:12px;color:#36475c}.report-card p{margin:0;color:#909cab;font-size:10px;line-height:1.55}.report-card .report-open{margin-top:12px;border:0;background:transparent;color:#e8892e;padding:0;font-weight:700;font-size:10px}.summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.summary-chip{background:#fff;border:1px solid #e8edf2;border-radius:8px;padding:10px 13px;display:flex;gap:8px;align-items:center;font-size:10px;color:#8793a2}.summary-chip b{color:#3b4d63}.form-hint{font-size:10px;color:#99a4b2;line-height:1.6;margin-top:10px}.modal-backdrop{position:fixed;inset:0;background:#0b1d33a1;display:grid;place-items:center;padding:20px;z-index:150;backdrop-filter:blur(3px)}.modal{width:min(650px,100%);max-height:min(88vh,900px);overflow:auto;background:white;border-radius:14px;box-shadow:0 25px 80px #08182d50}.modal.wide{width:min(860px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:21px 23px;border-bottom:1px solid #edf0f4}.modal-header h2{margin:0;font:800 17px Manrope,sans-serif;color:#263950}.modal-header p{margin:6px 0 0;color:#9aa4b0;font-size:10px}.modal-close{border:0;border-radius:7px;width:30px;height:30px;background:#f3f5f8;color:#7a8798;font-size:18px}.modal-body{padding:22px 23px}.modal-footer{padding:15px 23px;border-top:1px solid #edf0f4;display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .full{grid-column:1/-1}.form-stack{display:flex;flex-direction:column;gap:15px}.form-grid label,.form-stack label{display:flex;flex-direction:column;gap:7px;color:#5a6a7e;font-size:10px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.form-stack input,.form-stack select,.form-stack textarea{width:100%;border:1px solid #e0e6ee;border-radius:7px;padding:10px 11px;background:#fff;color:#33465a;font-size:11px;font-weight:400;min-width:0}.form-grid textarea,.form-stack textarea{min-height:80px;resize:vertical}.form-grid .readonly{background:#f6f8fa;color:#8c99a8}.form-error{color:#c84e56;font-size:10px;min-height:14px}.toast-root{position:fixed;right:22px;bottom:22px;display:flex;flex-direction:column;gap:8px;z-index:300}.toast{width:min(360px,calc(100vw - 32px));border-radius:10px;background:#173451;color:white;padding:13px 15px;display:flex;gap:10px;align-items:flex-start;box-shadow:0 9px 32px #10294430;font-size:11px;animation:toastIn .2s ease}.toast.error{background:#913d47}.toast .toast-symbol{font-size:15px}.toast b{display:block;margin-bottom:4px}.toast span{line-height:1.5;color:#ffffffd9}@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:white}.login-art{position:relative;overflow:hidden;min-height:100vh;padding:65px clamp(35px,7vw,120px);display:flex;flex-direction:column;justify-content:center;color:white;background:radial-gradient(ellipse at 80% 10%,#365a7c 0,transparent 38%),linear-gradient(145deg,#102642,#1d4469)}.login-art:after{content:'';position:absolute;width:570px;height:570px;border-radius:50%;border:1px solid #ffffff13;right:-160px;bottom:-240px;box-shadow:0 0 0 45px #ffffff05,0 0 0 90px #ffffff03}.login-art .brand-mark{margin-bottom:48px}.login-art h1{position:relative;z-index:1;font:800 clamp(30px,3vw,45px)/1.2 Manrope,sans-serif;max-width:470px;letter-spacing:-1.4px;margin:0}.login-copy{position:relative;z-index:1;max-width:450px;color:#c0d0df;font-size:13px;line-height:1.85;margin:20px 0 45px}.login-stat-row{display:flex;gap:32px;position:relative;z-index:1}.login-stat-row div{border-left:2px solid #ff9e40;padding-left:12px}.login-stat-row strong,.login-stat-row span{display:block}.login-stat-row strong{font-size:12px}.login-stat-row span{font-size:10px;color:#91aac3;margin-top:6px}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:40px clamp(30px,6vw,100px);max-width:610px;width:100%;margin:auto}.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:43px}.login-brand b,.login-brand small{display:block}.login-brand b{font:800 17px Manrope,sans-serif;color:#24384e}.login-brand small{margin-top:4px;font-size:8px;letter-spacing:1.1px;color:#95a1b0;font-weight:700}.login-panel h2{font:800 23px Manrope,sans-serif;color:#263a51;margin:0}.login-panel>.muted{font-size:11px;margin:8px 0 23px}.demo-accounts{margin-top:24px;border:1px solid #e8edf2;border-radius:9px;padding:13px 14px}.demo-accounts>b{font-size:10px;color:#607087;display:block;margin-bottom:8px}.demo-accounts div{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.demo-accounts code{font-size:10px;color:#6e7d90}.text-btn{border:0;background:transparent;color:#ed8a33;font-size:10px;font-weight:700}.login-panel .tiny{margin-top:18px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.report-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.report-selector{display:flex;gap:8px;flex-wrap:wrap}.report-selector select,.report-selector input{border:1px solid #dfe5ed;border-radius:7px;background:white;padding:9px 10px;font-size:11px;color:#536579}.table-empty{padding:28px;text-align:center;color:#9aa5b1;font-size:11px}.meter{height:8px;background:#f0f3f6;border-radius:9px;overflow:hidden}.meter span{height:100%;display:block;background:#f39b43;border-radius:9px}.role-tag{display:inline-block;padding:4px 7px;background:#eef3fa;border-radius:5px;color:#64768c;font-size:9px}.split-panel{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-stat{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eef1f5;font-size:10px;color:#8190a0}.mini-stat b{color:#3f5065}.chart-bars{height:190px;display:flex;align-items:flex-end;gap:11px;padding:12px 2px 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}.chart-col .bar-value{font-size:9px;color:#8895a5}.chart-col .bar{width:min(38px,70%);min-height:3px;border-radius:5px 5px 1px 1px;background:linear-gradient(180deg,#ffc074,#f58b35)}.chart-col .bar-label{font-size:9px;color:#8b97a5;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-scrim{display:none}
@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:240px;flex-basis:240px}.page-content{padding:24px 24px}.topbar{padding:0 24px}.dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}}
@media(max-width:930px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-102%);transition:transform .25s ease;box-shadow:10px 0 40px #10233a20}.sidebar.open{transform:translateX(0)}.sidebar-scrim{display:none;position:fixed;inset:0;background:#0e233b88;z-index:40}.sidebar-scrim.show{display:block}.mobile-only,.menu-toggle{display:grid}.sidebar-brand .mobile-only{margin-left:auto}.dashboard-grid{grid-template-columns:1fr}.topbar{height:66px;padding:0 18px}.page-content{padding:21px 18px}.app-footer{padding:13px 18px}.breadcrumb{margin-right:auto;margin-left:9px}.topbar-date{display:none}.user-details{display:none}.user-chip{padding-left:9px}.login-screen{grid-template-columns:.8fr 1.2fr}.login-art{padding:40px 30px}.login-panel{padding:35px 34px}}
@media(max-width:620px){.login-screen{display:block}.login-art{min-height:auto;padding:28px 24px 30px}.login-art .brand-mark{margin-bottom:20px}.login-art h1{font-size:26px}.login-copy{margin:12px 0 20px;font-size:11px}.login-stat-row{gap:18px}.login-stat-row span{font-size:9px}.login-panel{padding:30px 25px;max-width:none}.login-brand{margin-bottom:25px}.topbar{padding:0 12px}.topbar-right{gap:8px}.breadcrumb{gap:6px;font-size:10px}.breadcrumb>span:first-child{display:none}.crumb-sep{display:none}.page-content{padding:18px 12px}.app-footer{padding:12px;font-size:9px;gap:10px}.app-footer span:last-child{display:none}.page-heading{display:block;margin-bottom:18px}.page-heading h1{font-size:21px}.heading-actions{margin-top:14px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi-card{padding:13px}.kpi-value{font-size:18px}.kpi-label{font-size:10px}.kpi-top{margin-bottom:11px}.dashboard-grid{gap:12px}.panel-header{padding:14px}.panel-body{padding:14px}.project-row{grid-template-columns:minmax(85px,1fr) minmax(60px,1fr) 43px;gap:8px}.shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:1fr}.report-card{padding:14px}.table-toolbar{padding:12px}.toolbar-left,.toolbar-right{width:100%}.search-box{min-width:0;flex:1}.filter-select{max-width:none;flex:1}.table-footer{gap:8px;align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-backdrop{padding:10px}.modal-header,.modal-body,.modal-footer{padding:17px}.split-panel{grid-template-columns:1fr}.topbar-right>.icon-btn{display:none}.heading-actions .btn{flex:1}}

.bar-pair{height:155px;display:flex;align-items:flex-end;gap:3px;justify-content:center}.bar-pair .bar{width:13px;flex:0 1 13px}

/* RAB / BOQ hierarchical estimate table */
.rab-toolbar{align-items:center}.rab-table{min-width:1160px;border-collapse:separate;border-spacing:0}.rab-table th{white-space:nowrap;font-size:9px;letter-spacing:.55px}.rab-table td{vertical-align:middle}.rab-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rab-table .rab-main-row td{background:#cfe4bf;color:#263e25;border-top:1px solid #aecb9c;border-bottom:1px solid #aecb9c;font-weight:800}.rab-main-title{font-size:11px;letter-spacing:.2px}.rab-project-label{display:block;font-size:9px;font-weight:500;color:#55704f;margin-top:4px}.rab-table .rab-sub-row td{background:#f8fafc;color:#263950;font-weight:700;border-top:1px solid #e1e7ee}.rab-sub-title{padding-left:10px;display:inline-block}.rab-table .rab-item-row td{background:#fff}.rab-item-title{display:inline-block;padding-left:28px;color:#43546a}.rab-table .rab-subtotal-row td{background:#fff3c8;color:#374354;font-weight:800;border-top:1px solid #eadca5}.rab-table .rab-main-subtotal td{background:#e5eddc;border-top:1px solid #c9d8bd}.rab-table .rab-grandtotal-row td{background:#e9eef5;color:#263950;font-weight:800;border-top:2px solid #b8c7d8}.rab-money{font-variant-numeric:tabular-nums;white-space:nowrap}.rab-actions{display:flex;gap:4px;align-items:center;white-space:nowrap}.rab-actions .table-action{padding:5px 7px;font-size:9px}.rab-toolbar .toolbar-left{flex:1}.rab-toolbar .toolbar-right{flex-wrap:nowrap}.rab-toolbar .filter-select{min-width:185px;max-width:280px}
@media(max-width:700px){.rab-toolbar .toolbar-right{width:100%;flex-wrap:wrap}.rab-toolbar .filter-select{flex:1;max-width:none}.rab-actions .table-action{padding:5px 6px}}

/* Project report center and document preview */
.report-center-intro{font-size:11px;color:#738198;margin:-12px 0 15px;padding-bottom:13px;border-bottom:1px solid #e7edf4;line-height:1.6}
.report-center-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:15px}
.report-project-picker{display:flex;align-items:center;gap:10px;font-size:11px;color:#52657b;font-weight:700;min-width:min(460px,100%)}
.report-project-picker select{width:min(420px,100%);min-height:38px;padding:8px 12px;background:white;border:1px solid #dbe4ef;border-radius:8px;color:#344860}
.report-document-panel{overflow:hidden}
.report-document-search{display:flex;align-items:center;gap:10px;margin:0;padding:10px 14px;border-bottom:1px solid #edf1f6;color:#8292a8}
.report-document-search input{width:100%;border:1px solid #dce5f0;border-radius:7px;padding:10px 11px;font-size:11px;color:#344860;background:white}
.report-document-row{display:grid;grid-template-columns:31px minmax(150px,1fr) auto auto 32px;align-items:center;gap:12px;min-height:46px;padding:6px 14px;border-bottom:1px solid #edf1f6}
.report-document-row:last-child{border-bottom:0}
.report-document-row:hover{background:#fafcff}
.report-document-icon{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;font-size:14px;font-weight:700}
.report-document-icon.blue{background:#dfebff;color:#2463d8}.report-document-icon.orange{background:#ffe7cf;color:#ce7216}.report-document-icon.purple{background:#eee2ff;color:#8149cb}.report-document-icon.cyan{background:#d9f9fb;color:#168a9a}.report-document-icon.yellow{background:#fff3c9;color:#a17b0a}.report-document-icon.green{background:#d9f8e8;color:#19855b}.report-document-icon.pink{background:#ffe0f1;color:#ca3e96}
.report-document-name{min-width:0}.report-document-name b{display:block;font-size:11px;color:#293b53;font-weight:700}.report-document-name span{display:block;margin-top:2px;color:#8491a3;font-size:9px}
.report-document-status{background:#fff3e6;color:#c86d25;border-radius:99px;padding:4px 7px;font-size:9px;white-space:nowrap}.report-document-status.ready{background:#e8f8f0;color:#21885f}
.report-document-pages{font-size:9px;color:#8492a5;white-space:nowrap}
.report-preview-btn{width:29px;height:29px;border:1px solid #d9e4f1;border-radius:7px;background:#fff;color:#5775a1;font-size:15px;display:grid;place-items:center}.report-preview-btn:hover{background:#eef4ff;color:#275fce}
.report-preview-modal{width:min(920px,calc(100vw - 28px));max-height:92vh;background:#f2f5f9;border-radius:12px;box-shadow:0 25px 90px #0c203c45;display:flex;flex-direction:column;overflow:hidden}
.report-preview-backdrop{z-index:1200}
.report-preview-modal-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;background:#fff;border-bottom:1px solid #e6ebf2;flex-shrink:0}
.report-preview-modal-header>div>span{display:block;color:#ec862c;font-size:8px;letter-spacing:1.4px;font-weight:800}.report-preview-modal-header h2{margin:3px 0 0;font:800 18px Manrope,sans-serif;color:#18314f}.report-preview-modal-header p{margin:3px 0 0;color:#8793a3;font-size:10px}
.report-preview-scroll{padding:18px;overflow:auto;min-height:0}
.report-print-sheet{background:#fff;max-width:800px;min-height:650px;padding:28px 30px;margin:0 auto;border-radius:8px;box-shadow:0 3px 14px #1b345010;color:#24364b;font-size:10px}
.report-print-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:1px solid #e7edf5;margin-bottom:20px}.report-print-brand{display:flex;align-items:center;gap:9px}.report-print-brand>div b{display:block;font-size:10px}.report-print-brand>div small{display:block;font-size:8px;color:#8492a4;margin-top:3px}.report-print-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#2862ed;color:#fff;font-size:11px;font-weight:800}.report-print-date{font-size:9px;color:#8390a1}
.report-doc-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 15px;padding-bottom:10px;border-bottom:1px solid #e7edf5}.report-doc-overline{font-size:7px;letter-spacing:1.1px;font-weight:800;color:#e8812a}.report-doc-title h1{font:800 18px Manrope,sans-serif;color:#1b3150;margin:5px 0 0}.report-doc-title p{margin:5px 0 0;color:#78879a;font-size:9px}
.report-document-meta{display:grid;grid-template-columns:1.35fr 1fr 1.2fr .45fr;gap:10px;background:#f4f7fb;border:1px solid #e6edf5;border-radius:7px;padding:11px;margin-bottom:15px}.report-document-meta span{display:block;color:#8291a3;font-size:7px;font-weight:800;letter-spacing:.35px;margin-bottom:5px}.report-document-meta b{font-size:8px;color:#314763;overflow-wrap:anywhere}
.report-document-table-wrap{overflow-x:auto;margin-top:12px}.report-document-table{width:100%;border-collapse:collapse;font-size:8px}.report-document-table th{background:#1d3150;color:#fff;text-align:left;padding:8px 7px;font-size:7px;letter-spacing:.2px;white-space:nowrap}.report-document-table td{padding:7px;border-bottom:1px solid #e9eef4;color:#42536a;vertical-align:top}.report-document-table tbody tr:nth-child(even){background:#f7f9fc}.report-document-table td.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.report-document-empty{text-align:center!important;padding:28px 12px!important;color:#8a97a7!important;line-height:1.6}

/* Volume report — mirrors the detailed RAB/BOQ dimension calculation table. */
.report-volume-summary{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px;color:#60738b;font-size:8px}.report-volume-summary span{padding:5px 8px;border:1px solid #e2e9f2;border-radius:5px;background:#f8fafc}.report-volume-summary b{color:#243b58;margin-left:4px}.report-volume-table-wrap{overflow-x:auto}.report-volume-table{min-width:1550px;font-size:7px;table-layout:auto}.report-volume-table th{font-size:6.5px;padding:6px 5px;white-space:normal;vertical-align:bottom}.report-volume-table td{font-size:7px;padding:5px;white-space:nowrap}.report-volume-table td:nth-child(2),.report-volume-table td:nth-child(3){white-space:normal;min-width:105px}.report-volume-table td.formula-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.report-volume-table tfoot th{background:#edf2f8;color:#253a56;border-top:1px solid #cbd6e4;font-weight:800}.volume-detail-data-table{min-width:1550px}.volume-detail-data-table tfoot th{background:#edf2f8;color:#253a56;border-top:1px solid #cbd6e4}
@media print{body.report-print-mode .report-volume-table-wrap{overflow:visible!important}body.report-print-mode .report-volume-table{min-width:0!important;width:100%!important;font-size:5px!important;table-layout:fixed}body.report-print-mode .report-volume-table th,body.report-print-mode .report-volume-table td{font-size:5px!important;padding:3px 2px!important;white-space:normal!important;overflow-wrap:anywhere}body.report-print-mode .report-volume-summary{font-size:6px!important;gap:4px!important}body.report-print-mode .report-volume-table td.numeric,body.report-print-mode .report-volume-table th.numeric{white-space:nowrap!important}}
.report-total-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 12px}.report-total-strip span{padding:9px;border-radius:6px;background:#f4f7fb;color:#8290a0;font-size:8px}.report-total-strip strong{display:block;color:#2c4059;font-size:10px;margin-top:5px}.report-total-strip span:last-child{background:#2862ed;color:#d9e5ff}.report-total-strip span:last-child strong{color:white}
.report-doc-grand-total{display:flex;justify-content:space-between;gap:10px;margin-top:14px;padding:10px 0;border-top:1px solid #dce5ef;font-size:9px;font-weight:800}.report-doc-grand-total b{color:#1d3150}.report-doc-note{margin-top:22px;border-top:1px solid #e4ebf4;padding-top:9px;color:#7e8da0;font-size:8px;line-height:1.7}.report-doc-note b{display:block;color:#52657c;font-size:7px;letter-spacing:.6px;margin-bottom:3px}
.report-curve-chart{border:1px solid #e3eaf3;border-radius:7px;padding:12px;margin:10px 0}.report-curve-chart svg{width:100%;height:auto;display:block}.report-curve-labels{display:flex;justify-content:space-between;gap:3px;color:#8a98a9;font-size:7px}.report-cover-page{min-height:500px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #edf1f7;border-radius:7px;padding:26px;background:linear-gradient(145deg,#f6f9ff 0%,#fff 62%)}.report-cover-brand{display:flex;align-items:center;gap:9px;font:800 11px Manrope,sans-serif;color:#1c3454}.report-cover-brand small{font:700 7px 'DM Sans',sans-serif;letter-spacing:1px;color:#8395ad}.report-cover-mark{display:grid;place-items:center;width:36px;height:36px;background:#2862ed;color:white;border-radius:10px}.report-cover-main{margin:48px 0}.report-cover-kicker{font-size:8px;letter-spacing:1.8px;font-weight:800;color:#ed862d}.report-cover-main h1{font:800 28px Manrope,sans-serif;line-height:1.25;color:#1c3454;margin:12px 0}.report-cover-main h2{display:inline-block;font:800 14px Manrope,sans-serif;color:#2862ed;margin:0;border-bottom:2px solid #f2a04c;padding-bottom:8px}.report-cover-main p{font-size:10px;color:#8090a4;margin-top:12px}.report-cover-footer{display:flex;justify-content:space-between;gap:18px;padding-top:16px;border-top:1px solid #dce6f4}.report-cover-footer span{display:block;color:#8493a6;font-size:7px;font-weight:800;letter-spacing:.8px}.report-cover-footer b{display:block;margin-top:5px;color:#243c5b;font-size:10px}
.report-print-footer{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:10px;border-top:1px solid #e5ebf3;color:#8491a3;font-size:7px}
.report-preview-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 18px;background:#fff;border-top:1px solid #e5ebf2;flex-shrink:0}.report-preview-footnote{color:#8290a1;font-size:9px}.report-preview-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.report-export-chooser{max-width:560px}
@media(max-width:760px){.report-center-toolbar{align-items:stretch;flex-direction:column}.report-project-picker{width:100%;align-items:stretch;flex-direction:column}.report-project-picker select{width:100%;max-width:none}.report-document-row{grid-template-columns:30px minmax(100px,1fr) 30px;gap:8px;padding:8px}.report-document-status,.report-document-pages{display:none}.report-document-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.report-total-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.report-preview-modal-footer{align-items:stretch;flex-direction:column}.report-preview-actions{justify-content:stretch}.report-preview-actions .btn{flex:1}.report-print-sheet{padding:16px;min-height:unset}.report-cover-main h1{font-size:22px}}
@media print{
 body.report-print-mode *{visibility:hidden!important}
 body.report-print-mode #report-preview-root,body.report-print-mode #report-preview-root *{visibility:visible!important}
 body.report-print-mode #report-preview-root{position:absolute!important;inset:0!important;display:block!important;background:white!important;padding:0!important;margin:0!important;overflow:visible!important}
 body.report-print-mode .report-preview-modal{width:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;display:block!important;box-shadow:none!important;border:0!important;background:white!important}
 body.report-print-mode .report-preview-modal-header,body.report-print-mode .report-preview-modal-footer{display:none!important}
 body.report-print-mode .report-preview-scroll{overflow:visible!important;padding:0!important}
 body.report-print-mode .report-print-sheet{max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;break-after:page;position:relative} body.report-print-mode .report-print-sheet:last-child{break-after:auto}
 body.report-print-mode .report-document-table tr{break-inside:avoid}
 body.report-print-mode .report-cover-page{min-height:250mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}


/* Print & Export center — multi-document selection and print configuration */
.print-export-backdrop{z-index:1250;padding:12px!important}
.print-export-modal{width:min(1220px,calc(100vw - 24px));max-width:1220px;max-height:calc(100vh - 24px);display:flex;flex-direction:column;overflow:hidden;padding:0!important;border-radius:12px!important}
.print-export-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border-bottom:1px solid #e4ebf4;flex-shrink:0}
.print-export-title-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#eef4ff;color:#284b7e;font-size:20px;flex-shrink:0}
.print-export-title{flex:1;min-width:0}.print-export-title h2{font-size:17px;margin:0;color:#1c3454}.print-export-title p{font-size:10px;color:#7889a0;margin:4px 0}.print-export-title small{color:#74839a;font-size:10px}
.print-export-content{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:12px;padding:12px 14px;min-height:0;overflow:hidden;background:#f5f7fb;flex:1}
.print-export-documents{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff;border:1px solid #dfe7f1;border-radius:10px;overflow:hidden}
.print-export-selection-bar{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid #e7edf5;flex-shrink:0}.print-export-selection-bar span{margin-left:auto;color:#63758d;font-size:10px;font-weight:700}
.print-export-doc-list{overflow:auto;padding:7px 8px;min-height:0}.print-export-group{border:0;margin:0 0 9px}.print-export-group-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#1c2f50;color:#fff;border-radius:6px;padding:7px 10px;font-size:9px;font-weight:800;letter-spacing:.3px}.print-export-group-heading span:last-child{font-size:8px;opacity:.8}
.print-export-doc-row{display:grid;grid-template-columns:15px 25px minmax(95px,1fr) auto auto;gap:8px;align-items:center;min-height:38px;padding:5px 6px;border-bottom:1px solid #edf1f6;cursor:pointer}.print-export-doc-row:hover{background:#f8faff}.print-export-doc-row input{accent-color:#19b86d;width:14px;height:14px;margin:0}.print-export-doc-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:#e4edff;color:#2562be;font-weight:800;font-size:11px}.print-export-doc-icon.orange{background:#ffe7cf;color:#ce7216}.print-export-doc-icon.purple{background:#eee2ff;color:#8149cb}.print-export-doc-icon.cyan{background:#d9f9fb;color:#168a9a}.print-export-doc-icon.yellow{background:#fff3c9;color:#a17b0a}.print-export-doc-icon.green{background:#d9f8e8;color:#19855b}.print-export-doc-icon.pink{background:#ffe0f1;color:#ca3e96}.print-export-doc-name{min-width:0}.print-export-doc-name b{display:block;color:#2d415b;font-size:10px}.print-export-doc-name small{display:block;color:#8290a2;font-size:8px;margin-top:2px}.print-export-doc-meta{background:#fff0df;color:#bd6d20;border-radius:99px;padding:3px 6px;font-size:8px;white-space:nowrap}.print-export-doc-meta.ready{background:#e6f7ed;color:#19945f}.print-export-page-count{white-space:nowrap;color:#8190a4;font-size:8px}
.print-export-settings{min-width:0;overflow:auto;background:#fff;border:1px solid #dfe7f1;border-radius:10px;padding:0 11px 11px}.print-settings-section{padding:11px 0;border-bottom:1px solid #e4ebf4}.print-settings-section:last-of-type{border-bottom:0}.print-settings-section h4{font-size:8px;letter-spacing:.4px;color:#60738c;margin:0 0 8px;font-weight:800}.print-radio-row,.print-toggle-row{display:flex;align-items:center;gap:7px;min-height:23px;color:#425570;font-size:9px;cursor:pointer}.print-radio-row input,.print-toggle-row input{accent-color:#ff7900;width:13px;height:13px;margin:0;flex-shrink:0}.print-field-label{display:flex;flex-direction:column;gap:4px;font-size:8px;color:#687b93;margin-top:7px}.print-field-label input,.print-field-label select{width:100%;min-width:0;padding:7px 8px;border:1px solid #dbe4ef;border-radius:6px;background:#fff;color:#344860;font:inherit;font-size:10px;box-sizing:border-box}.print-field-label select{min-height:30px}.print-orientation-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.print-orientation-choice{cursor:pointer}.print-orientation-choice input{position:absolute;opacity:0;pointer-events:none}.print-orientation-choice span{display:block;text-align:center;padding:7px 3px;border:1px solid #d8e2ee;border-radius:6px;font-size:9px;color:#61758e}.print-orientation-choice input:checked+span{border-color:#ff7900;color:#e36c06;background:#fff8f1;font-weight:800}.print-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.print-section-title-row h4{margin-bottom:0}.print-margin-preset{font-size:9px;padding:4px 6px;min-height:26px;width:94px}.print-margin-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.print-margin-grid label{font-size:8px;color:#6e7e92;display:flex;flex-direction:column;gap:4px}.print-margin-grid input{box-sizing:border-box;width:100%;border:1px solid #dbe4ef;border-radius:6px;padding:6px 7px;font-size:10px;color:#344860}.print-settings-hint{font-size:8px;line-height:1.5;color:#8b99aa;margin:6px 0 0}.print-export-summary{display:flex;flex-direction:column;gap:5px;padding:10px;background:#fff5e9;border-radius:8px;color:#68788c;font-size:8px;margin-top:10px}.print-export-summary b{color:#c66b14;font-size:9px}.print-export-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fff;border-top:1px solid #e4ebf4;flex-shrink:0;color:#71829a;font-size:9px}.print-export-footer>div{display:flex;gap:7px}.print-export-footer .btn{min-width:85px}
.report-batch-preview-modal{width:min(1040px,calc(100vw - 28px))}.report-batch-preview-scroll{background:#eef2f7}.report-batch-preview-scroll .report-print-sheet{margin:0 auto 16px;min-height:500px;position:relative}.report-print-header{position:relative;z-index:1}.report-print-watermark{position:absolute;z-index:0;top:42%;left:10%;right:10%;text-align:center;transform:rotate(-28deg);font-size:52px;font-weight:900;letter-spacing:8px;color:#1b3150;opacity:.07;pointer-events:none;white-space:nowrap}.report-print-sheet>*:not(.report-print-watermark){position:relative;z-index:1}
@media print{body.report-print-mode .report-preview-scroll .report-print-sheet{padding:0!important}.report-print-watermark{position:fixed!important;z-index:0!important;top:40%!important;opacity:.07!important}.report-print-header,.report-print-footer{break-inside:avoid}}
@media(max-width:900px){.print-export-content{grid-template-columns:minmax(0,1fr) 285px}.print-export-doc-row{grid-template-columns:15px 24px minmax(80px,1fr) auto}.print-export-page-count{display:none}}
@media(max-width:700px){.print-export-backdrop{padding:5px!important}.print-export-modal{max-height:calc(100vh - 10px);width:calc(100vw - 10px)}.print-export-content{grid-template-columns:minmax(0,1fr);overflow:auto}.print-export-documents{max-height:45vh;min-height:240px}.print-export-settings{overflow:visible}.print-export-footer{align-items:stretch;flex-direction:column}.print-export-footer>div{display:grid;grid-template-columns:1fr 1.4fr}.print-export-doc-meta{display:none}.print-export-doc-row{grid-template-columns:15px 24px minmax(90px,1fr) auto}}
/* WBS hierarchy actions */
.wbs-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;min-width:max-content}
.wbs-actions .wbs-icon{min-width:27px;width:27px;height:28px;padding:0;justify-content:center;border-radius:7px;font-size:14px;line-height:1;color:#627895;background:#fff;border-color:#dce5ef}
.wbs-actions .wbs-icon.add,.wbs-actions .wbs-icon.link{color:#2862ed}
.wbs-actions .wbs-icon.duplicate{color:#7c3aed}
.wbs-actions .wbs-icon.danger{color:#ef4444}
.wbs-actions .wbs-icon:hover{background:#f3f7ff;border-color:#b8cbed}
.typegroup .wbs-actions .wbs-icon,.typesub .wbs-actions .wbs-icon{background:#fff}
@media(max-width:900px){#page-wbs .tablewrap{overflow-x:auto}#page-wbs table{min-width:1050px}}

/* Global active project context for all Project Management menus */
.global-project-picker{display:flex;align-items:center;gap:7px;padding:0 10px;border-right:1px solid var(--line,#e5ebf3);margin-right:4px}.global-project-picker label{font-size:9px;font-weight:800;letter-spacing:.6px;color:#8191a6;white-space:nowrap}.global-project-picker select{max-width:300px;min-width:180px;padding:8px 10px;border:1px solid #d9e3ef;border-radius:8px;background:#fff;color:#1c3454;font:600 11px inherit}.global-project-picker select:disabled{opacity:.65}.active-project-caption{display:inline-flex;align-items:center;margin-right:8px;padding:8px 10px;border-radius:8px;background:#edf4ff;color:#2758a8;font-size:11px;font-weight:700}.nav-item{cursor:pointer}
@media(max-width:900px){.global-project-picker label{display:none}.global-project-picker select{max-width:190px;min-width:130px}}@media(max-width:620px){.global-project-picker{display:none}}

/* RAB export/print table mirrors the RAB/WBS hierarchy and omits on-screen actions. */
.report-rab-wbs-table { table-layout:fixed; }
.report-rab-wbs-table th:nth-child(1) { width:5%; }
.report-rab-wbs-table th:nth-child(2) { width:37%; white-space:normal; }
.report-rab-wbs-table th:nth-child(3) { width:7%; }
.report-rab-wbs-table th:nth-child(4) { width:10%; }
.report-rab-wbs-table th:nth-child(5) { width:13%; }
.report-rab-wbs-table th:nth-child(6) { width:17%; }
.report-rab-wbs-table th:nth-child(7) { width:11%; }
.report-rab-wbs-table th.numeric, .report-rab-wbs-table td.numeric { text-align:right; font-variant-numeric:tabular-nums; }
.report-rab-wbs-table td { overflow-wrap:anywhere; }
.report-rab-wbs-table td:nth-child(2) { white-space:normal; }
.report-rab-wbs-table .report-rab-code { white-space:nowrap; font-weight:700; color:#314763; }
.report-rab-wbs-label { min-width:0; }
.report-rab-wbs-label b { display:block; color:#1b3554; font-size:8px; font-weight:800; line-height:1.35; }
.report-rab-wbs-label small { display:block; margin-top:3px; color:#71829a; font-size:7px; font-weight:500; line-height:1.35; }
.report-rab-row-group td { background:#e9f3df!important; color:#1f4730!important; font-weight:850!important; }
.report-rab-row-sub td { background:#f8fafc!important; color:#324e6c!important; font-weight:750!important; }
.report-rab-row-item td:first-child { color:#71829a; }
.report-rab-row-item:nth-child(even) td { background:#f7f9fc; }
@media print { .report-rab-wbs-table tr { break-inside:avoid; } }

/* Explicit unit-verification status for warehouse requests and RAB material workflow. */
.unit-check-ok{color:#16835d!important;font-weight:600}
.unit-check-warning{color:#b45309!important;font-weight:700}
/* Navigation simplification: collapsible groups reduce sidebar clutter without hiding routes from tests or assistive tech. */
.nav-group{margin:2px 0 5px}.nav-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}.nav-section-toggle:hover{color:#c7d6e8}.nav-section-toggle:focus-visible{outline:2px solid #ffad4d;outline-offset:2px;border-radius:5px}.nav-chevron{font-size:14px;line-height:1;color:#607b9a}.nav-section-items[hidden]{display:none!important}.nav-section-items{padding:0;margin:0}

.report-sync-status{display:flex;flex-direction:column;gap:5px;padding:12px 15px;margin:0 0 15px;border:1px solid #dce9e4;border-radius:9px;background:#f3fbf7;color:#4e6d61;font-size:11px;line-height:1.5}.report-sync-status b{font-size:11px;color:#1c6f50}.report-sync-status.has-errors{border-color:#f2d1a6;background:#fff9ef;color:#80653b}.report-sync-status.has-errors b{color:#9b5a12}.report-sync-warning{display:block;color:#b85c35;font-weight:600}.report-curve-legend{display:flex;gap:14px;align-items:center;margin-bottom:8px;color:#75849a;font-size:10px}.report-curve-legend span{display:flex;gap:6px;align-items:center}.report-curve-legend i{display:inline-block;width:12px;height:3px;border-radius:3px}.report-curve-legend i.planned{background:#6a8cdc}.report-curve-legend i.actual{background:#218f7b}
.report-sync-source-details{margin-top:5px;border-top:1px solid #deebe5;padding-top:6px}.report-sync-source-details summary{cursor:pointer;font-weight:700;color:#425f57;list-style-position:inside}.report-sync-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin-top:8px}.report-sync-source-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid #e8efeb;min-width:0}.report-sync-source-row span{overflow-wrap:anywhere;color:#61766e}.report-sync-source-row b{white-space:nowrap;font-size:10px}.report-sync-source-row b.ok{color:#16805d}.report-sync-source-row b.fail{color:#b45309}.report-sync-status.has-errors .report-sync-source-details summary{color:#9b5a12}@media(max-width:700px){.report-sync-source-list{grid-template-columns:1fr}}


/* Keuangan Proyek: compact project-scoped financial summary; project choice remains global. */
.project-finance-context{margin-bottom:16px}
.project-finance-context .panel-body{padding:18px 22px}
.project-finance-context-label{font-size:11px;font-weight:800;letter-spacing:.09em;color:var(--muted,#6c819b);margin-bottom:6px}
.project-finance-context strong{display:block;color:var(--ink,#17324f);font-size:15px}
.project-finance-context p{margin:5px 0 0;color:var(--muted,#6c819b);font-size:13px}
.project-finance-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
.project-finance-overrun{color:#c2410c!important}
@media(max-width:900px){.project-finance-kpis{grid-template-columns:1fr}}

/* Detailed term ledger in Project Finance dashboard */
.project-finance-terms{margin:18px 0}
.project-finance-terms .panel-body{padding:0}
.project-finance-terms-table{min-width:760px}
.project-finance-terms-table td{vertical-align:top}
.project-finance-terms-table td:nth-child(1),.project-finance-terms-table td:nth-child(4),.project-finance-terms-table td:nth-child(5){white-space:nowrap}
.project-finance-terms-table td:nth-child(5){text-align:right;font-variant-numeric:tabular-nums}
.project-finance-terms-table .cell-sub{margin-top:4px}


/* Brand identity settings: logo preview and reusable responsive logo slots. */
.brand-mark.has-logo{background:transparent;box-shadow:none;border-radius:8px;overflow:hidden;padding:0}
.brand-mark .brand-logo-img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.identity-logo-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center}
.identity-logo-preview{height:150px;width:150px;border:1px dashed #cfd9e6;border-radius:14px;background:#f8fafc;display:grid;place-items:center;overflow:hidden}
.identity-logo-preview img{width:100%;height:100%;object-fit:contain;padding:10px;box-sizing:border-box}
.identity-logo-fallback{height:76px;width:76px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(140deg,#ffad4d,#f57b28);color:white;font:800 22px Manrope,sans-serif;box-shadow:0 7px 16px #f59c3b30}
.identity-logo-controls{display:flex;flex-direction:column;gap:12px;min-width:0}
.identity-logo-controls label{display:flex;flex-direction:column;gap:8px;color:#5a6a7e;font-size:10px;font-weight:700}
.identity-logo-controls input[type=file]{display:block;width:100%;max-width:480px;padding:10px;border:1px solid #e0e6ee;border-radius:7px;background:#fff;color:#33465a;font-size:11px;box-sizing:border-box}
.identity-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-top:1px solid #edf0f4}
.panel-footer{background:#fff;border-radius:0 0 12px 12px}
@media(max-width:620px){.identity-logo-layout{grid-template-columns:1fr}.identity-logo-preview{width:120px;height:120px}.identity-footer{align-items:stretch;flex-direction:column}}

.report-cover-mark.has-logo{background:#fff;border:1px solid #e5ebf3;padding:2px;overflow:hidden}.report-brand-logo-image{display:block;width:100%;height:100%;object-fit:contain}.report-cover-brand>span:last-child b{display:block;font-size:11px}.report-cover-brand>span:last-child small{display:block;max-width:420px;margin-top:4px;line-height:1.45}


/* Invoice-style data entry for Termin & Tagihan Proyek */
.modal.invoice-entry-modal{width:min(980px,100%);max-height:min(94vh,1080px);border-radius:15px}
.invoice-entry-modal .modal-header{background:#fff;position:sticky;top:0;z-index:4}
.invoice-entry-modal .modal-body{padding:18px 22px 22px;background:#f5f7fa}
.invoice-entry-modal .modal-footer{position:sticky;bottom:0;background:#fff;z-index:4}
.billing-entry-fields{display:flex;flex-direction:column;gap:14px}
.billing-entry-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;background:#214878;color:#fff;border-radius:9px;border:1px solid #173a65}
.billing-entry-banner span{display:block;font-size:9px;font-weight:800;letter-spacing:1.5px;opacity:.78}
.billing-entry-banner h3{margin:4px 0 5px;font:800 21px Manrope,sans-serif;letter-spacing:.2px}
.billing-entry-banner p{margin:0;color:#dbe6f3;font-size:11px}
.billing-entry-banner-tag{border:1px solid #ffffff70;border-radius:6px;padding:8px 11px;font-weight:800;font-size:10px;white-space:nowrap}
.billing-entry-section{background:#fff;border:1px solid #e2e8f0;border-radius:9px;overflow:hidden}
.billing-entry-section-title{display:flex;align-items:center;gap:11px;padding:12px 15px;border-bottom:1px solid #e7edf5;background:#fff}
.billing-entry-section-title>span{display:grid;place-items:center;width:29px;height:29px;flex:0 0 29px;border-radius:7px;background:#eaf0f8;color:#244b78;font-weight:800;font-size:10px}
.billing-entry-section-title b,.billing-entry-section-title small{display:block}
.billing-entry-section-title b{font:800 12px Manrope,sans-serif;color:#203a59}
.billing-entry-section-title small{margin-top:3px;color:#8492a4;font-size:10px;font-weight:400}
.billing-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px;padding:15px}
.billing-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:8px 15px}
.billing-view-item{display:flex;flex-direction:column;gap:5px;min-width:0;padding:10px 0;border-bottom:1px solid #edf1f6}
.billing-view-item>span{font-size:10px;color:#7a899b;font-weight:600}
.billing-view-item>b{font-size:12px;line-height:1.5;color:#243d5a;overflow-wrap:anywhere;white-space:pre-wrap}
.billing-view-full{grid-column:1/-1}
.billing-view-modal .billing-entry-signature-preview{padding:14px 15px 18px}
.billing-view-modal .billing-entry-net-section{padding-bottom:10px}
#billing-invoice-type-manual-wrap[hidden]{display:none!important}
.billing-entry-grid .full{grid-column:1/-1}
.billing-entry-grid label{display:flex;flex-direction:column;gap:6px;color:#52657c;font-size:10px;font-weight:700;min-width:0}
.billing-entry-grid input,.billing-entry-grid select,.billing-entry-grid textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #d6e0ec;border-radius:7px;padding:10px 11px;background:#fff;color:#293f58;font:400 11px Inter,Arial,sans-serif;outline:none}
.billing-entry-grid input:focus,.billing-entry-grid select:focus,.billing-entry-grid textarea:focus,.billing-deduction-table input:focus{border-color:#6394d7;box-shadow:0 0 0 3px #dceaff}
.billing-entry-grid input.readonly{background:#f1f5fa;color:#50647b;font-weight:700}
.billing-entry-grid textarea{min-height:65px;resize:vertical}
.billing-entry-grid .tiny{margin-top:1px;font-size:9px;line-height:1.5}
.billing-entry-note{padding:10px 11px;border-radius:6px;background:#eef4fc;color:#486b9b;font-size:10px;line-height:1.55}
.billing-entry-contract-summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,1fr);gap:12px;padding:15px}
.billing-entry-contract-summary>div{padding:12px 13px;border:1px solid #e0e8f2;border-radius:7px;background:#f8fafd;min-width:0}
.billing-entry-contract-summary span,.billing-entry-contract-summary b{display:block}
.billing-entry-contract-summary span{font-size:10px;color:#8492a4;margin-bottom:5px}
.billing-entry-contract-summary b{font:800 13px Manrope,sans-serif;color:#203a59;overflow-wrap:anywhere}
.billing-deduction-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 15px 12px}
.billing-deduction-toolbar b,.billing-deduction-toolbar small{display:block}
.billing-deduction-toolbar b{font-size:11px;color:#394e66}
.billing-deduction-toolbar small{font-size:9px;color:#8c9aaa;margin-top:3px}
.billing-deduction-table-wrap{overflow-x:auto;padding:0 15px 15px}
.billing-deduction-table{width:100%;border-collapse:collapse;min-width:540px}
.billing-deduction-table th{padding:9px;text-align:left;background:#f1f5fa;color:#586b82;font-size:9px;font-weight:800;border-bottom:1px solid #dce5ef}
.billing-deduction-table td{padding:7px 5px;border-bottom:1px solid #edf1f6}
.billing-deduction-table th:nth-child(2),.billing-deduction-table th:nth-child(3){width:145px}
.billing-deduction-table th:last-child{width:42px}
.billing-deduction-table input{box-sizing:border-box;width:100%;border:1px solid #d9e2ed;border-radius:6px;padding:8px;background:#fff;color:#344a63;font-size:10px}
.billing-entry-net-section{border-color:#d5e3f4}
.billing-net-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px}
.billing-net-grid>div{padding:12px;border:1px solid #e5ebf4;border-radius:7px;background:#f8fafd}
.billing-net-grid span,.billing-net-grid b{display:block}
.billing-net-grid span{font-size:10px;color:#8190a2;margin-bottom:6px}
.billing-net-grid b{font:800 15px Manrope,sans-serif;color:#263f5e;overflow-wrap:anywhere}
.billing-net-grid .net-total{background:#edf5ff;border-color:#c9dcf6}
.billing-net-grid .net-total b{color:#176348}
.billing-entry-terbilang{display:flex;gap:12px;align-items:flex-start;padding:0 15px 15px;font-size:11px}
.billing-entry-terbilang b{color:#48607b;min-width:94px}
.billing-entry-terbilang span{color:#b42318;font-weight:700;line-height:1.6}
.billing-entry-signature-preview{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:10px 0 0}
.billing-entry-signature-preview>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;min-height:95px;border:1.5px solid #31445b;border-radius:4px;padding:10px}
.billing-entry-signature-preview b{font-size:10px;color:#31445b}
.billing-entry-signature-preview span{font-weight:800;font-size:11px;color:#203a59;text-align:center;overflow-wrap:anywhere}
.billing-entry-signature-preview small{border-top:1px solid #dbe2eb;padding-top:6px;width:100%;text-align:center;color:#7d8a9b;font-size:9px}
@media(max-width:680px){.invoice-entry-modal .modal-body{padding:12px}.billing-entry-banner{padding:13px;align-items:flex-start}.billing-entry-banner h3{font-size:16px}.billing-entry-banner-tag{font-size:8px}.billing-entry-grid{grid-template-columns:1fr;padding:12px}.billing-entry-grid .full{grid-column:auto}.billing-view-grid{grid-template-columns:1fr;padding:8px 12px}.billing-view-full{grid-column:auto}.billing-entry-contract-summary,.billing-net-grid{grid-template-columns:1fr}.billing-entry-section-title{padding:11px 12px}.billing-entry-signature-preview{gap:9px}}


/* Invoice PDF print/export settings and pre-export preview */
.billing-invoice-settings-modal{max-width:980px!important}
.invoice-settings-summary-body{padding:20px;display:flex;flex-direction:column;gap:12px;color:#30445d}
.invoice-summary-icon{display:grid;place-items:center;width:54px;height:62px;border-radius:9px;background:#fff0df;color:#d56e17;border:1px solid #f8d8b7;font-size:15px;font-weight:900}
.invoice-settings-summary-body h3{margin:0;color:#1d3452;font-size:16px}.invoice-settings-summary-body>p{margin:0;color:#77879b;font-size:10px;line-height:1.6}.invoice-settings-summary-body>div:not(.invoice-summary-icon){display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e9eef5;padding:8px 0;font-size:10px}.invoice-settings-summary-body>div span{color:#7e8da0}.invoice-settings-summary-body>div b{color:#293f5c;text-align:right}
.billing-invoice-preview-modal{width:min(1120px,calc(100vw - 28px))}.invoice-print-preview-scroll{background:#e9eef5}.invoice-preview-paper-wrap{display:flex;justify-content:center;align-items:flex-start}.billing-invoice-print-sheet{position:relative;width:min(100%,var(--invoice-preview-width,800px));max-width:none;min-height:var(--invoice-preview-height,1060px);padding:28px 30px;margin:0 auto 12px;background:#fff;border-radius:4px;box-shadow:0 3px 16px #162c491b;color:#111;font-family:'Times New Roman',serif;font-size:10px;line-height:1.25;overflow:hidden;}
.billing-invoice-print-content{min-height:calc(var(--invoice-preview-height,1060px) - 80px);display:flex;flex-direction:column;position:relative;z-index:1}.invoice-print-config-header{font-family:Arial,sans-serif;color:#243b57;margin:0 0 9px;padding-bottom:8px}.invoice-print-config-header .report-print-mark{overflow:hidden}.invoice-print-config-header .report-print-mark img{display:block}.invoice-print-datebar{display:flex;align-items:center;justify-content:space-between;background:#214878;color:#fff;padding:5px 7px;font-size:12px;font-weight:bold;margin-bottom:12px}.invoice-print-datebar b{font-size:15px}.invoice-print-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:0 2px 9px;border-bottom:2px solid #111;margin-bottom:10px}.invoice-print-meta>div{display:grid;grid-template-columns:minmax(68px,.8fr) minmax(0,1.2fr);gap:5px 7px;align-content:start}.invoice-print-meta span{font-size:9px}.invoice-print-meta b{font-size:9px;overflow-wrap:anywhere}.invoice-print-recipient{padding:0 3px 10px;border-bottom:1px solid #222;margin-bottom:9px}.invoice-print-recipient>b{display:block;font-size:10px;margin-bottom:6px}.invoice-print-recipient>div{border-top:1px solid #555;padding:5px 12px 0;display:flex;flex-direction:column;gap:3px}.invoice-print-recipient strong{font-size:10px}.invoice-print-recipient span{font-size:9px}.invoice-print-type{display:flex;align-items:center;gap:18px;margin:1px 3px 10px;font-weight:bold;font-size:10px}.invoice-print-type span{background:#b90000;color:#fff;border:1px solid #111;padding:3px 16px;min-width:200px;text-align:center}.invoice-print-section{margin:0 2px 9px;break-inside:avoid}.invoice-print-section h3{font-size:11px;margin:0;padding:0 0 3px;border-bottom:2px solid #171717}.invoice-print-section table{width:100%;border-collapse:collapse;table-layout:auto;font-size:9px}.invoice-print-section th{font-size:9px;text-align:left;padding:3px 6px;border-bottom:1px solid #222;white-space:nowrap}.invoice-print-section td{padding:5px 6px;border-bottom:1px solid #888;vertical-align:top;overflow-wrap:anywhere}.invoice-print-section th:first-child,.invoice-print-section td.inv-no{width:28px;text-align:center}.invoice-print-section td.inv-center{text-align:center;white-space:nowrap}.invoice-print-section .inv-money{text-align:right;white-space:nowrap;font-weight:normal}.invoice-print-section tfoot th{border-top:1px solid #222;border-bottom:2px solid #222;padding:4px 6px;font-size:10px}.invoice-print-section tfoot .inv-note{color:#bd1717;font-style:italic;font-size:8px;border-bottom:2px solid #222}.invoice-print-paid h3{border-bottom-color:#111}.invoice-print-paid thead{background:#ffba00;color:#111}.invoice-print-paid thead th{border-bottom-color:#d49b00}.invoice-print-paid tfoot th{border-top:1px solid #e5a100;border-bottom:3px double #f3a600}.invoice-print-words{display:grid;grid-template-columns:1fr 2.2fr;gap:10px;padding:8px 12px;border-bottom:2px solid #efa900;margin-top:1px;font-size:10px}.invoice-print-words strong{color:#c00000;overflow-wrap:anywhere}.invoice-print-note{display:grid;grid-template-columns:100px 14px minmax(0,1fr);gap:7px;align-items:start;margin:10px 3px 0;padding:0 4px;font-size:10px;position:relative;z-index:1}.invoice-print-note>b,.invoice-print-note>span{font-weight:700}.invoice-print-note>strong{font-weight:400;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35;}.invoice-print-signatures{display:grid;grid-template-columns:1fr 1fr;justify-content:space-between;gap:120px;margin:auto 25px 0;padding-top:18px}.invoice-print-signatures>div{height:112px;border:2px solid #111;display:flex;flex-direction:column;text-align:center;font-size:10px}.invoice-print-signatures>div>b{padding:3px;border-bottom:1px solid #222}.invoice-print-signatures>div>span{flex:1}.invoice-print-signatures>div>strong{border-top:1px solid #222;padding-top:2px}.invoice-print-signatures>div>small{font-style:italic;padding:2px}.invoice-print-config-footer{margin-top:8px;font-family:Arial,sans-serif}
.billing-invoice-print-sheet .invoice-print-watermark{position:absolute;z-index:0;top:40%;left:6%;right:6%;text-align:center;transform:rotate(-28deg);font-size:56px;font-weight:900;letter-spacing:7px;color:#1b3150;opacity:.09;pointer-events:none;white-space:nowrap}.invoice-print-config-header,.invoice-print-datebar,.invoice-print-meta,.invoice-print-recipient,.invoice-print-type,.invoice-print-section,.invoice-print-note,.invoice-print-signatures{position:relative;z-index:1}
@media print{body.report-print-mode .billing-invoice-print-sheet{width:auto!important;max-width:none!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}body.report-print-mode .billing-invoice-print-content{min-height:0!important}body.report-print-mode .invoice-preview-paper-wrap{min-height:0!important;display:block!important}body.report-print-mode .invoice-print-signatures{break-inside:avoid;margin-top:18px}body.report-print-mode .invoice-print-section{break-inside:avoid}.invoice-print-watermark{position:fixed!important;top:40%!important;opacity:.08!important}}
@media(max-width:760px){.billing-invoice-settings-modal .print-export-content{grid-template-columns:minmax(0,1fr)}.invoice-settings-summary-body{padding:13px}.billing-invoice-print-sheet{padding:16px!important}.invoice-print-meta{grid-template-columns:1fr}.invoice-print-signatures{gap:18px;margin-left:3px;margin-right:3px}.invoice-print-section table{font-size:8px}}

/* Invoice export layout aligned with the approved single-page invoice reference. */
.billing-invoice-print-sheet .invoice-print-number-meta{margin:10px 0 0;border-top:2px solid #171717;padding-top:0}
.billing-invoice-print-sheet .invoice-print-number-line{display:grid;grid-template-columns:165px 13px minmax(0,1fr);align-items:center;gap:5px;padding:7px 12px 6px;border-bottom:3px double #171717;font-size:10px;min-height:28px}
.billing-invoice-print-sheet .invoice-print-number-line b{font-weight:700}
.billing-invoice-print-sheet .invoice-print-number-line strong{font-weight:700;overflow-wrap:anywhere}
.billing-invoice-print-sheet .invoice-print-invoice-date{border-bottom:2px solid #171717;margin-bottom:8px}
.billing-invoice-print-sheet .invoice-print-parties{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 3px 13px;padding:4px 0 0;font-size:10px}
.billing-invoice-print-sheet .invoice-print-party-left,.billing-invoice-print-sheet .invoice-print-party-right{display:grid;align-content:start;gap:8px}
.billing-invoice-print-sheet .invoice-print-party-left>div,.billing-invoice-print-sheet .invoice-print-party-right>div{display:grid;grid-template-columns:minmax(95px,.85fr) 12px minmax(0,1.2fr);gap:4px;align-items:start;min-height:16px}
.billing-invoice-print-sheet .invoice-print-party-left strong,.billing-invoice-print-sheet .invoice-print-party-right strong{font-weight:700;overflow-wrap:anywhere}
.billing-invoice-print-sheet .invoice-print-recipient{padding:0 3px 9px;border-bottom:1px solid #222;margin:0 0 11px;min-height:66px}
.billing-invoice-print-sheet .invoice-print-recipient>b{font-size:10px;margin-bottom:5px}
.billing-invoice-print-sheet .invoice-print-recipient>div{border-top:1px solid #555;padding:5px 12px 0;min-height:42px;gap:3px}
.billing-invoice-print-sheet .invoice-print-recipient strong{font-size:10px}
.billing-invoice-print-sheet .invoice-print-recipient span{font-size:9px}
.billing-invoice-print-sheet .invoice-print-type{margin:1px 3px 13px;gap:18px;min-height:23px}
.billing-invoice-print-sheet .invoice-print-type>b{min-width:125px}
.billing-invoice-print-sheet .invoice-print-type span{min-width:250px;max-width:62%;padding:4px 16px}
.billing-invoice-print-sheet .invoice-print-contract{margin-bottom:16px}
.billing-invoice-print-sheet .invoice-print-contract tbody td{height:44px;vertical-align:middle}
.billing-invoice-print-sheet .invoice-print-contract tfoot th{border-top:1px solid #222;border-bottom:3px solid #171717}
.billing-invoice-print-sheet .invoice-print-paid{margin-bottom:0}
.billing-invoice-print-sheet .invoice-print-paid h3{border-bottom:2px solid #171717}
.billing-invoice-print-sheet .invoice-print-paid table{table-layout:fixed}
.billing-invoice-print-sheet .invoice-print-paid thead{background:#ffba00;color:#111}
.billing-invoice-print-sheet .invoice-print-paid thead th{background:#ffba00;border-bottom:1px solid #d49b00;padding:5px 6px}
.billing-invoice-print-sheet .invoice-print-paid tbody td{height:48px;vertical-align:middle;border-bottom:2px solid #efa900;padding-top:8px;padding-bottom:8px}
.billing-invoice-print-sheet .invoice-print-paid tbody td:nth-child(2){overflow-wrap:anywhere}
.billing-invoice-print-sheet .invoice-print-summary{width:min(54%,430px);margin:7px 0 0 auto;border-bottom:3px double #efa900}
.billing-invoice-print-sheet .invoice-print-summary-row{display:grid;grid-template-columns:68px minmax(100px,1fr) 14px minmax(95px,1fr);gap:7px;align-items:center;min-height:18px;padding:2px 7px;border-bottom:1px solid #efa900;font-size:10px}
.billing-invoice-print-sheet .invoice-print-summary-row .invoice-summary-rate{text-align:center;font-size:10px}
.billing-invoice-print-sheet .invoice-print-summary-row .invoice-summary-label{font-weight:700}
.billing-invoice-print-sheet .invoice-print-summary-row .invoice-summary-colon{text-align:center;font-weight:700}
.billing-invoice-print-sheet .invoice-print-summary-row>strong{text-align:right;white-space:nowrap;font-weight:700}
.billing-invoice-print-sheet .invoice-print-summary-row.subtotal{border-top:1px solid #efa900}
.billing-invoice-print-sheet .invoice-print-grand-total{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(120px,34%);align-items:center;gap:8px;margin-top:7px;padding:6px 4px;border-top:2px solid #efa900;border-bottom:4px double #efa900;font-size:14px}
.billing-invoice-print-sheet .invoice-print-grand-total>strong{text-align:right;white-space:nowrap}
.billing-invoice-print-sheet .invoice-print-grand-total>span{text-align:center;font-weight:700}
.billing-invoice-print-sheet .invoice-print-words{display:grid;grid-template-columns:100px 14px minmax(0,1fr);gap:7px;align-items:start;padding:8px 4px 7px;border-bottom:3px solid #efa900;margin-top:1px;font-size:10px}
.billing-invoice-print-sheet .invoice-print-words>span{font-weight:700}
.billing-invoice-print-sheet .invoice-print-words strong{color:#c00000;overflow-wrap:anywhere;font-weight:700}
.billing-invoice-print-sheet .invoice-print-note{margin-top:10px;font-size:10px;line-height:1.35}
.billing-invoice-print-sheet .invoice-print-signatures{margin-left:25px;margin-right:25px;padding-top:18px;gap:120px}
@media(max-width:760px){.billing-invoice-print-sheet .invoice-print-party-left>div,.billing-invoice-print-sheet .invoice-print-party-right>div{grid-template-columns:105px 10px minmax(0,1fr)}.billing-invoice-print-sheet .invoice-print-summary{width:74%}.billing-invoice-print-sheet .invoice-print-signatures{gap:18px;margin-left:3px;margin-right:3px}.billing-invoice-print-sheet .invoice-print-type span{min-width:150px}}
@media print{body.report-print-mode .billing-invoice-print-sheet .invoice-print-signatures{margin-top:auto;break-inside:avoid}body.report-print-mode .billing-invoice-print-sheet .invoice-print-summary,body.report-print-mode .billing-invoice-print-sheet .invoice-print-grand-total,body.report-print-mode .billing-invoice-print-sheet .invoice-print-words{break-inside:avoid}}

@media print{body.report-print-mode .billing-invoice-print-sheet .billing-invoice-print-content{min-height:var(--invoice-content-height,950px)!important}body.report-print-mode .billing-invoice-print-sheet .invoice-print-signatures{margin-top:auto!important}}



/* Align the interactive Termin & Tagihan form with the exported invoice document. */
.invoice-entry-modal{width:min(1120px,calc(100vw - 26px))!important;max-height:min(96vh,1200px)!important;border-radius:5px!important}
.invoice-entry-modal .modal-header{padding:14px 20px;background:#fff;border-bottom:1px solid #d9e1e9}
.invoice-entry-modal .modal-header h2{font-size:18px;color:#243d5a}
.invoice-entry-modal .modal-body{padding:12px;background:#e8edf3}
.invoice-entry-modal .modal-footer{padding:12px 20px;background:#fff;border-top:1px solid #d9e1e9}
.billing-entry-fields{max-width:1060px;margin:0 auto;padding:20px 22px 26px;gap:8px;background:#fff;color:#111;font-family:'Times New Roman',Georgia,serif;font-size:13px;box-shadow:0 2px 10px #122b4613;border-radius:2px}
.billing-entry-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:5px 8px;background:#214878;color:#fff;border:0;border-radius:0;min-height:28px}
.billing-entry-banner-date{display:flex;flex-direction:column;gap:2px;min-width:0}
.billing-entry-banner-date>span{display:block;color:#fff;font:700 15px 'Times New Roman',Georgia,serif;letter-spacing:0;opacity:1}
.billing-entry-banner-date>p{margin:0;color:#dce8f6;font:400 9px Arial,sans-serif;letter-spacing:.2px}
.billing-entry-banner h3{margin:0;color:#fff;font:700 23px 'Times New Roman',Georgia,serif;letter-spacing:.2px;white-space:nowrap}
.billing-entry-banner-tag{display:none}
.billing-entry-section{overflow:visible;margin:0;padding:0;border:0;border-radius:0;background:#fff;box-shadow:none}
.billing-entry-section-title{display:flex;align-items:baseline;gap:0;margin:0;padding:5px 2px 3px;border:0;border-bottom:3px solid #141414;background:#fff}
.billing-entry-section-title>span{display:none}
.billing-entry-section-title b{font:700 16px 'Times New Roman',Georgia,serif;color:#111}
.billing-entry-section-title small{display:none}
.billing-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 24px;padding:8px 3px 13px}
.billing-entry-grid .full{grid-column:1/-1}
.billing-entry-grid label.billing-entry-field{display:grid;grid-template-columns:minmax(105px,.55fr) minmax(0,1fr);align-items:center;gap:5px 8px;min-width:0;color:#111;font:700 13px 'Times New Roman',Georgia,serif}
.billing-entry-field-label{display:block;min-width:0;line-height:1.25;overflow-wrap:anywhere}
.billing-entry-grid label.billing-entry-field.full{grid-template-columns:minmax(130px,.38fr) minmax(0,1fr)}
.billing-entry-grid input,.billing-entry-grid select,.billing-entry-grid textarea{box-sizing:border-box;width:100%;min-width:0;border:0;border-bottom:1px solid #888;border-radius:0;padding:5px 4px;background:#fff;color:#111;font:400 13px 'Times New Roman',Georgia,serif;outline:none;box-shadow:none}
.billing-entry-grid input:focus,.billing-entry-grid select:focus,.billing-entry-grid textarea:focus{border-bottom:2px solid #214878;box-shadow:none;background:#f8fbff}
.billing-entry-grid input.readonly{background:#f4f6f8;color:#394a5b;font-weight:700;border-bottom:1px solid #777}
.billing-entry-grid textarea{min-height:52px;resize:vertical}
.billing-entry-grid .tiny{grid-column:2;margin-top:0;font-size:10px;line-height:1.4;color:#6b7280;font-weight:400}
.billing-entry-note{grid-column:1/-1;padding:7px 9px;border-radius:0;border-left:3px solid #214878;background:#f2f6fb;color:#365b83;font:400 11px/1.45 Arial,sans-serif}
.billing-entry-contract-table{padding:0 2px 8px;font-family:'Times New Roman',Georgia,serif}
.billing-entry-contract-head,.billing-entry-contract-row{display:grid;grid-template-columns:7% minmax(0,1fr) 24%;gap:8px;align-items:center}
.billing-entry-contract-head{padding:3px 5px;border-bottom:1px solid #222;border-top:0;font-weight:700;font-size:15px}
.billing-entry-contract-head b:last-child{text-align:right}
.billing-entry-contract-row{min-height:43px;padding:7px 5px;border-bottom:1px solid #777;font-size:14px}
.billing-entry-contract-row>span{text-align:center}
.billing-entry-contract-row>strong{font-weight:400;overflow-wrap:anywhere}
.billing-entry-contract-row>b{text-align:right;font-weight:400;white-space:nowrap}
.billing-entry-contract-total{display:flex;justify-content:flex-end;align-items:center;gap:24px;padding:4px 5px;border-bottom:3px solid #111;font-size:15px;font-weight:700}
.billing-entry-contract-total strong{min-width:24%;text-align:right;white-space:nowrap}
.billing-deduction-toolbar{padding:8px 4px 8px;border-top:1px solid #888;align-items:center}
.billing-deduction-toolbar b{font:700 13px 'Times New Roman',Georgia,serif;color:#111}
.billing-deduction-toolbar small{font:400 10px Arial,sans-serif;color:#697586}
.billing-deduction-table-wrap{padding:0 2px 10px}
.billing-deduction-table{min-width:0;border-collapse:collapse;font-family:'Times New Roman',Georgia,serif}
.billing-deduction-table th{padding:5px 6px;background:#f1f3f5;color:#111;font:700 13px 'Times New Roman',Georgia,serif;border-top:2px solid #111;border-bottom:1px solid #111}
.billing-deduction-table td{padding:5px;border-bottom:1px solid #777}
.billing-deduction-table input{border:0;border-bottom:1px solid #999;border-radius:0;padding:5px;background:#fff;color:#111;font:400 12px 'Times New Roman',Georgia,serif}
.billing-deduction-table input:focus{border-bottom:2px solid #214878;box-shadow:none}
.billing-entry-net-section{padding-bottom:0;border:0}
.billing-net-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:8px 2px 0}
.billing-net-grid>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(135px,25%);align-items:center;gap:12px;padding:4px 6px;border:0;border-bottom:1px solid #e6a200;border-radius:0;background:#fff}
.billing-net-grid span{margin:0;color:#111;font:700 14px 'Times New Roman',Georgia,serif}
.billing-net-grid b{color:#111;font:700 14px 'Times New Roman',Georgia,serif;text-align:right;overflow-wrap:anywhere}
.billing-net-grid .net-total{margin-top:5px;border-top:3px double #efa900;border-bottom:4px double #efa900;background:#fff}
.billing-net-grid .net-total span,.billing-net-grid .net-total b{font-size:18px;font-weight:700;color:#111}
.billing-entry-terbilang{display:grid;grid-template-columns:minmax(130px,.38fr) minmax(0,1fr);gap:8px;padding:9px 5px 10px;border-bottom:3px solid #efa900;margin-bottom:4px;font:700 13px 'Times New Roman',Georgia,serif}
.billing-entry-terbilang b{min-width:0;color:#111}
.billing-entry-terbilang span{color:#c00000;font:700 13px 'Times New Roman',Georgia,serif;overflow-wrap:anywhere}
.billing-entry-signature-preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14%;padding:18px 4% 4px}
.billing-entry-signature-preview>div{min-height:150px;gap:0;border:2px solid #111;border-radius:0;padding:0 0 4px;justify-content:stretch;color:#111}
.billing-entry-signature-preview b{width:100%;padding:4px 2px;border-bottom:1px solid #222;color:#111;font:700 13px 'Times New Roman',Georgia,serif}
.billing-entry-signature-preview span{display:flex;align-items:flex-end;justify-content:center;flex:1;width:100%;padding:5px;border-top:1px solid #222;color:#111;font:700 13px 'Times New Roman',Georgia,serif}
.billing-entry-signature-preview small{width:100%;padding:3px 2px 0;border-top:0;color:#111;font:italic 12px 'Times New Roman',Georgia,serif}
#billing-auto-calculation-hint{padding:8px 3px 0;border-top:1px solid #e0e0e0;font:400 10px/1.4 Arial,sans-serif;color:#5c6e80}
@media(max-width:760px){.billing-entry-fields{padding:12px}.billing-entry-grid{grid-template-columns:1fr;gap:8px;padding:8px 2px 10px}.billing-entry-grid label.billing-entry-field,.billing-entry-grid label.billing-entry-field.full{grid-template-columns:minmax(105px,.55fr) minmax(0,1fr)}.billing-entry-contract-head,.billing-entry-contract-row{grid-template-columns:8% minmax(0,1fr) 28%;gap:4px}.billing-entry-contract-total{gap:8px}.billing-entry-contract-total strong{min-width:28%}.billing-entry-signature-preview{gap:10px;padding-left:1%;padding-right:1%}.billing-entry-signature-preview>div{min-height:125px}.billing-net-grid>div{grid-template-columns:minmax(0,1fr) minmax(95px,34%)}.billing-net-grid .net-total span,.billing-net-grid .net-total b{font-size:15px}.billing-entry-banner h3{font-size:19px}.billing-entry-banner-date>span{font-size:12px}}

/* Kurva-S: hierarchy aligned with RAB/WBS */

.schedule-hierarchy-row td{background:#f1f5fa;color:#334b68;font-weight:600;border-top:1px solid #dce5f0}.schedule-group-row td{background:#e8eef7}.schedule-sub-row td{background:#f5f8fc}.schedule-summary-cell{font-size:12px;color:#64748b}.schedule-leaf-row td:first-child{border-left:3px solid #d7e4f7}


/* Jadwal Pekerjaan: Gantt Chart berbasis Plan Mulai dan Plan Selesai */
.gantt-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#64748b;font-size:11px}
.gantt-legend span{display:inline-flex;align-items:center;gap:5px}
.gantt-legend i{display:inline-block;width:14px;height:8px;border-radius:4px}
.gantt-legend-task{background:#477de0}.gantt-legend-summary{background:#f59e0b}
.gantt-summary-strip{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:2px 0 10px}
.gantt-scroll{width:100%;overflow-x:auto;border:1px solid #e0e8f2;border-radius:10px;background:#fff}
.gantt-chart{min-width:1000px;font-size:11px}
.gantt-axis,.gantt-row{display:grid;grid-template-columns:minmax(270px,330px) minmax(670px,1fr)}
.gantt-axis{position:sticky;top:0;background:#f2f6fb;border-bottom:1px solid #dbe4ef;min-height:48px}
.gantt-axis-name{display:flex;align-items:center;padding:8px 12px;font-size:10px;font-weight:800;letter-spacing:.03em;color:#526780;border-right:1px solid #dbe4ef}
.gantt-axis-track,.gantt-track{position:relative;min-height:44px;background:#fff}
.gantt-axis-track{min-height:48px;background:#f2f6fb}
.gantt-tick-label{position:absolute;top:8px;transform:translateX(-50%);white-space:nowrap;color:#536985;font-size:10px;font-weight:700;z-index:2}
.gantt-tick-label:first-child{transform:none}
.gantt-gridline{position:absolute;top:0;bottom:0;width:1px;background:#e6edf5;pointer-events:none}
.gantt-bar{position:absolute;top:14px;height:18px;border-radius:5px;display:flex;align-items:center;justify-content:center;min-width:5px;overflow:visible;white-space:nowrap;z-index:1}
.gantt-bar b{font-size:9px;color:#fff;padding:0 5px;text-shadow:0 1px 1px #345}
.gantt-task-bar{background:linear-gradient(90deg,#5687e9,#2f62c8);box-shadow:0 1px 2px #15386b22}
.gantt-summary-bar{height:9px;top:18px;background:#f59e0b;border-radius:2px}
.gantt-summary-bar b{display:none}
.gantt-row{border-bottom:1px solid #edf1f6;min-height:48px}
.gantt-row:last-child{border-bottom:0}
.gantt-row-label{display:flex;flex-direction:column;justify-content:center;gap:3px;padding-top:6px;padding-bottom:6px;padding-right:8px;border-right:1px solid #e3eaf3;min-width:0;overflow:hidden}
.gantt-row-label strong{font-size:11px;color:#314862;overflow-wrap:anywhere}
.gantt-row-label small{font-size:9px;color:#7c8da3;overflow-wrap:anywhere}
.gantt-parent .gantt-row-label{background:#f4f7fb}
.gantt-parent .gantt-row-label strong{font-weight:800}
.gantt-parent .gantt-track{background:#fcfdff}
.gantt-leaf .gantt-row-label{background:#fff}
.gantt-undated{position:absolute;left:8px;top:15px;color:#98a4b4;font-size:10px;font-style:italic}
.gantt-empty{border:1px dashed #cbd7e6;border-radius:10px;padding:22px;text-align:center;color:#526780;background:#f8fafc}
.gantt-empty b{color:#263f5c}
.gantt-empty p,.gantt-footnote{font-size:11px;color:#71839b;line-height:1.5;margin:8px 0 0}
@media(max-width:760px){.gantt-legend{font-size:10px}.gantt-summary-strip{align-items:flex-start}.gantt-chart{min-width:1000px}}

/* Progres Proyek: dashboard and realization sub-navigation */
.progress-module-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:18px;background:#fff;border:1px solid #e0e8f2;border-radius:12px;box-shadow:0 3px 12px #20324a08}
.progress-module-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid #d8e3f0;background:#fff;border-radius:9px;color:#60748d;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.progress-module-tab:hover{border-color:#9bbaf5;color:#245fc7}
.progress-module-tab.active{background:#eaf1ff;border-color:#bfd2ff;color:#245fc7;box-shadow:inset 0 0 0 1px #dce7ff}
.progress-module-tab span{font-size:15px}
.progress-kpi-grid{margin-bottom:16px}
#progress-dashboard-content>.panel{margin-top:16px}
#progress-dashboard-content>.panel .table-scroll{border-radius:0 0 10px 10px}
@media(max-width:620px){.progress-module-nav{gap:6px;padding:8px}.progress-module-tab{flex:1;justify-content:center;padding:10px 8px;font-size:11px}}

/* Invoice summary now mirrors deduction categories and rates entered in the form. */
.billing-net-grid .billing-net-rate{display:inline-block;margin-left:7px;color:#64748b;font:500 11px Arial,sans-serif;white-space:nowrap}

/* Invoice payment summary: Retensi then Potongan summary with details directly below it. */
.billing-net-grid .billing-net-details{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0 6px 3px 20px;border-bottom:1px solid #e6a200;background:#fff}
.billing-net-grid .billing-net-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,25%);gap:10px;align-items:start;padding:3px 0;color:#334155;font:400 12px/1.35 'Times New Roman',Georgia,serif}
.billing-net-grid .billing-net-detail span{font:400 12px/1.35 'Times New Roman',Georgia,serif;overflow-wrap:anywhere}
.billing-net-grid .billing-net-detail b{font:400 12px/1.35 'Times New Roman',Georgia,serif;white-space:nowrap;text-align:right}
.billing-invoice-print-sheet .invoice-print-summary-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(95px,30%);align-items:start;gap:8px;padding:2px 8px 2px 24px;border-bottom:1px solid #f2c55e;font-size:9px;line-height:1.3;color:#28384a}
.billing-invoice-print-sheet .invoice-print-summary-detail>span{overflow-wrap:anywhere}
.billing-invoice-print-sheet .invoice-print-summary-detail>strong{text-align:right;white-space:nowrap;font-weight:600}
@media(max-width:760px){.billing-net-grid .billing-net-detail{grid-template-columns:minmax(0,1fr) minmax(95px,34%);font-size:11px}.billing-net-grid .billing-net-detail span,.billing-net-grid .billing-net-detail b{font-size:11px}.billing-invoice-print-sheet .invoice-print-summary-detail{grid-template-columns:minmax(0,1fr) minmax(85px,32%)}}
.billing-net-grid .billing-net-details{grid-template-columns:minmax(0,1fr)}

/* Potongan is a heading only; amounts are shown only in the itemized detail rows. */
.billing-net-grid .billing-net-potongan-heading{display:block;padding:5px 6px 3px;border-bottom:0;background:#fff}
.billing-net-grid .billing-net-potongan-heading span{display:block;font-weight:700}
.billing-invoice-print-sheet .invoice-print-summary-row.deduction-heading{grid-template-columns:minmax(0,1fr);padding-top:4px;padding-bottom:2px}
.billing-invoice-print-sheet .invoice-print-summary-row.deduction-heading .invoice-summary-rate,.billing-invoice-print-sheet .invoice-print-summary-row.deduction-heading .invoice-summary-colon,.billing-invoice-print-sheet .invoice-print-summary-row.deduction-heading strong{display:none}

/* Berita Acara single-record view/export document */
.minutes-print-sheet{font-size:9px;color:#30445f;line-height:1.5;background:#fff;min-height:0}
.minutes-print-sheet .report-doc-heading{text-align:center;margin:8px 0 16px;padding-bottom:10px;border-bottom:1px solid #dfe7f1}
.minutes-print-sheet .report-doc-heading span{font-size:8px;font-weight:800;letter-spacing:1.4px;color:#6f8198}
.minutes-print-sheet .report-doc-heading h1{font-size:16px;margin:5px 0;color:#1d3150}
.minutes-print-sheet .report-doc-heading p{font-size:9px;color:#62748c;margin:0}
.minutes-print-sheet h3{font-size:10px;color:#1d3150;margin:14px 0 6px;break-after:avoid}
.minutes-print-sheet .report-doc-table{width:100%;border-collapse:collapse;font-size:8px;margin-bottom:8px}
.minutes-print-sheet .report-doc-table th{background:#edf2f8;color:#2b405d;text-align:left;padding:6px;border:1px solid #dce4ee;white-space:normal}
.minutes-print-sheet .report-doc-table td{padding:6px;border:1px solid #dce4ee;color:#40536b;vertical-align:top}
.minutes-print-sheet .report-doc-table .num{text-align:right;white-space:nowrap}
.minutes-print-sheet .report-doc-table tfoot th{background:#f3f6fa;font-weight:800}
.minutes-print-sheet .minutes-signatures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px;text-align:center;font-size:8px;break-inside:avoid}
.minutes-print-sheet .minutes-signatures b{display:inline-block;border-bottom:1px solid #8c9aab;min-width:90px;padding-bottom:2px}
@media(max-width:760px){.minutes-print-sheet .minutes-signatures{grid-template-columns:1fr;gap:10px}}

/* Official three-page Berita Acara layout, based on the supplied project BA PDF. */
.ba-official-page{box-sizing:border-box;position:relative;width:100%;max-width:800px;min-height:1080px;margin:0 auto 18px;padding:18px 20px 42px;background:#fff;color:#171717;font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1.32;border:1px solid #e5e7eb;box-shadow:0 3px 14px #1b345010;break-after:page}
.ba-official-page:last-child{break-after:auto}
.ba-official-header{display:grid;grid-template-columns:25% 75%;min-height:66px;border:1.5px solid #111;margin-bottom:15px;align-items:stretch;color:#111}
.ba-official-logo{display:flex;align-items:center;justify-content:center;border-right:1.5px solid #111;padding:5px;min-width:0}
.ba-official-logo img{max-width:100%;max-height:52px;object-fit:contain}.ba-official-logo span{font-size:20px;font-weight:800;letter-spacing:1px;color:#25446d;text-align:center;overflow-wrap:anywhere}
.ba-official-company{display:flex;flex-direction:column;justify-content:center;text-align:center;padding:6px 10px;gap:3px}.ba-official-company b{font-size:13px;letter-spacing:.2px}.ba-official-company strong{font-size:10px}.ba-official-company small{font-size:9px}
.ba-doc-title{text-align:center;margin:2px 0 14px;color:#111}.ba-doc-title h1{font-size:15px;line-height:1.1;margin:0 0 3px;text-decoration:underline;font-weight:800}.ba-doc-title>b{font-size:11px}
.ba-intro{margin:7px 0 3px;font-weight:600}.ba-signatory-list{margin:0 0 7px 18px}.ba-signatory-list>div{display:grid;grid-template-columns:14px 88px 10px minmax(0,1fr);gap:4px;align-items:baseline;min-height:14px}.ba-signatory-list strong{font-weight:600}.ba-signatory-list em{font-style:italic}
.ba-spk-line{display:grid;grid-template-columns:32% 68%;gap:5px;margin:3px 0;align-items:start}.ba-spk-line span{padding-left:3px}.ba-spk-line b{font-size:10px}
.ba-section-caption{font-size:10px;margin:11px 0 3px}.ba-doc-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px;color:#111}.ba-doc-table th,.ba-doc-table td{border:1px solid #111;padding:3px 5px;vertical-align:top;overflow-wrap:anywhere}.ba-doc-table thead th{text-align:center;font-weight:700}.ba-doc-table .num{text-align:right;white-space:nowrap}.ba-contract-table th:first-child{width:8%}.ba-contract-table th:nth-child(2){width:57%}.ba-contract-table th:nth-child(3){width:7%}.ba-contract-table th:nth-child(4){width:28%}.ba-contract-group td{font-weight:600;background:#f7f7f7}.ba-contract-table tfoot th{font-weight:800}.ba-amount-words{text-align:center;font-weight:700;color:#c62828;border:1px solid #111;border-top:0;padding:8px 6px;margin-bottom:10px;font-size:10px}
.ba-opname-intro{margin:9px 0 5px;text-align:justify}.ba-opname-meta>div{display:grid;grid-template-columns:16px 112px 10px minmax(0,1fr);gap:4px;margin:3px 0}.ba-agreement-heading{margin:9px 0 3px}.ba-attachment-note{border:1px solid #111;min-height:24px;text-align:center;color:#c62828;font-weight:700;font-style:italic;padding:5px}.ba-clause-list{margin-top:7px}.ba-clause-list>div,.ba-clause-full>div{display:grid;grid-template-columns:18px 1fr;gap:5px;margin:4px 0;text-align:justify}.ba-page-title{text-align:center;font-size:14px;margin:5px 0 16px;text-decoration:underline}.ba-progress-summary{text-align:justify;margin:0 0 10px}.ba-progress-kpis{display:grid;grid-template-columns:1fr 1fr;border:1px solid #111;margin:9px 0 13px}.ba-progress-kpis>div{padding:8px;border-right:1px solid #111;display:flex;flex-direction:column;gap:4px}.ba-progress-kpis>div:last-child{border-right:0}.ba-progress-kpis span{font-size:9px}.ba-progress-kpis b{font-size:13px}.ba-progress-table th:first-child{width:7%}.ba-progress-table th:nth-child(2){width:51%}.ba-progress-table th:nth-child(3){width:17%}.ba-progress-table th:nth-child(4){width:25%}.ba-progress-table tfoot th{font-weight:800}.ba-clause-full{margin-top:14px}.ba-closing{margin:18px 0 10px;text-align:justify}.ba-signature-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 4px;text-align:center}.ba-sign-cell{display:flex;flex-direction:column;align-items:center;min-height:110px}.ba-sign-cell>span{align-self:flex-start;font-weight:600}.ba-sign-space{height:54px;flex:0 0 54px}.ba-sign-cell b{font-size:10px;text-decoration:underline}.ba-sign-cell small{font-size:9px;margin-top:2px}.ba-photo-meta{margin:10px 0 16px}.ba-photo-meta>div{display:grid;grid-template-columns:130px 10px 1fr;gap:5px;margin:8px 0;font-size:10px}.ba-photo-meta b{text-decoration:underline}.ba-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,190px);border-top:1.5px solid #111;border-left:1.5px solid #111}.ba-photo-cell{height:190px;min-width:0;border-right:1.5px solid #111;border-bottom:1.5px solid #111;display:flex;align-items:center;justify-content:center;overflow:hidden}.ba-photo-cell img{width:100%;height:100%;object-fit:contain}.ba-photo-empty{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;padding:8px;color:#9ca3af}.ba-photo-empty span{font-weight:700;font-size:10px}.ba-photo-empty small{font-size:8px}.ba-official-page-footer{position:absolute;bottom:12px;left:20px;right:20px;display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;font-size:9px;color:#333}.ba-official-page-footer span{text-align:center;color:#666}.ba-print-setting-header,.ba-print-setting-footer{font-size:8px;display:flex;justify-content:space-between;gap:8px;color:#555;margin-bottom:6px}.ba-print-setting-footer{margin-top:5px}.ba-official-page .report-print-watermark{font-size:44px}
@media print{body.report-print-mode .ba-official-page{width:auto!important;max-width:none!important;min-height:0!important;height:277mm!important;margin:0!important;padding:0 0 12mm!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:hidden!important;break-after:page!important;page-break-after:always!important;font-size:9pt!important}body.report-print-mode .ba-official-page:last-child{break-after:auto!important;page-break-after:auto!important}body.report-print-mode .ba-official-header{margin-bottom:10px}body.report-print-mode .ba-official-page-footer{left:0;right:0;bottom:0}body.report-print-mode .ba-photo-grid{grid-template-rows:repeat(3,56mm)}body.report-print-mode .ba-photo-cell{height:56mm}body.report-print-mode .ba-print-setting-header{margin-bottom:4px}body.report-print-mode .ba-print-setting-footer{margin-top:3px}}

/* Harmonized print-region sizing and refined Berita Acara typography/tables. */
.report-print-header,
.progress-print-header,
.invoice-print-config-header,
.ba-official-header {
  height: var(--mcm-print-header-height, 20mm);
  min-height: var(--mcm-print-header-height, 20mm);
  box-sizing: border-box;
}
.report-print-footer,
.progress-print-footer,
.invoice-print-config-footer,
.ba-print-setting-footer {
  height: var(--mcm-print-footer-height, 12mm);
  min-height: var(--mcm-print-footer-height, 12mm);
  box-sizing: border-box;
  align-items: center;
}
.ba-official-page {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 10px;
  line-height: 1.38;
  color: #171717;
  overflow-wrap: anywhere;
}
.ba-official-header {
  height: var(--mcm-print-header-height, 20mm);
  grid-template-columns: 25% minmax(0, 75%);
  margin-bottom: 12px;
  flex-shrink: 0;
}
.ba-official-company { min-width: 0; padding: 5px 10px; gap: 3px; }
.ba-official-company b { font-size: 12px; line-height: 1.25; }
.ba-official-company strong { font-size: 10px; line-height: 1.25; }
.ba-official-company small { font-size: 8px; line-height: 1.25; }
.ba-doc-title { margin: 5px 0 11px; padding: 0 0 8px; border-bottom: 1px solid #222; }
.ba-doc-title h1 { font-size: 15px; letter-spacing: .45px; line-height: 1.2; margin-bottom: 4px; }
.ba-doc-title > b { display: block; font-size: 10px; letter-spacing: .2px; }
.ba-intro { margin: 6px 0 3px; line-height: 1.35; }
.ba-signatory-list { margin: 0 0 7px 16px; }
.ba-signatory-list > div { grid-template-columns: 14px 88px 8px minmax(0, 1fr); gap: 3px; min-height: 13px; }
.ba-signatory-list strong, .ba-signatory-list em { overflow-wrap: anywhere; }
.ba-spk-line { grid-template-columns: minmax(0, 32%) minmax(0, 68%); gap: 8px; margin: 4px 0; line-height: 1.35; }
.ba-spk-line span { padding-left: 0; }
.ba-spk-line b { font-size: 9px; line-height: 1.35; }
.ba-section-caption { font-size: 9.5px; line-height: 1.35; margin: 9px 0 4px; }
.ba-doc-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 8.5px; line-height: 1.28; }
.ba-doc-table thead { display: table-header-group; }
.ba-doc-table tfoot { display: table-row-group; }
.ba-doc-table tr { break-inside: avoid; page-break-inside: avoid; }
.ba-doc-table th, .ba-doc-table td { border: 1px solid #4b5563; padding: 4px 5px; vertical-align: middle; overflow-wrap: anywhere; }
.ba-doc-table thead th { background: #f0f2f5; text-align: center; font-weight: 700; }
.ba-doc-table tfoot th { background: #f5f6f8; font-weight: 800; }
.ba-doc-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ba-contract-table th:first-child { width: 8%; }
.ba-contract-table th:nth-child(2) { width: 57%; }
.ba-contract-table th:nth-child(3) { width: 12%; }
.ba-contract-table th:nth-child(4) { width: 23%; }
.ba-contract-group td { font-weight: 700; background: #f4f5f7; }
.ba-amount-words { margin-bottom: 8px; padding: 7px 8px; font-size: 9px; line-height: 1.35; text-transform: none; }
.ba-opname-intro, .ba-progress-summary, .ba-clause-full, .ba-closing { text-align: justify; line-height: 1.4; }
.ba-opname-intro { margin: 7px 0 4px; }
.ba-opname-meta > div { grid-template-columns: 15px minmax(90px, 112px) 8px minmax(0, 1fr); gap: 4px; margin: 3px 0; }
.ba-agreement-heading { margin: 7px 0 4px; }
.ba-attachment-note { min-height: 22px; padding: 5px 8px; font-size: 9px; line-height: 1.35; }
.ba-clause-list { margin-top: 5px; }
.ba-clause-list > div, .ba-clause-full > div { grid-template-columns: 16px minmax(0, 1fr); gap: 5px; margin: 4px 0; line-height: 1.38; }
.ba-page-title { font-size: 13px; line-height: 1.25; margin: 5px 0 12px; letter-spacing: .2px; }
.ba-progress-summary { margin: 0 0 8px; }
.ba-progress-kpis { margin: 8px 0 10px; }
.ba-progress-kpis > div { padding: 7px 9px; gap: 3px; }
.ba-progress-kpis span { line-height: 1.3; }
.ba-progress-kpis b { font-size: 12px; font-variant-numeric: tabular-nums; }
.ba-progress-table th:first-child { width: 7%; }
.ba-progress-table th:nth-child(2) { width: 49%; }
.ba-progress-table th:nth-child(3) { width: 18%; }
.ba-progress-table th:nth-child(4) { width: 26%; }
.ba-clause-full { margin-top: 10px; }
.ba-closing { margin: 13px 0 8px; }
.ba-signature-row { gap: 12px; margin: 11px 0 4px; }
.ba-sign-cell { min-height: 94px; font-size: 9px; }
.ba-sign-space { height: 45px; flex-basis: 45px; }
.ba-sign-cell b { font-size: 9px; }
.ba-sign-cell small { font-size: 8px; line-height: 1.3; }
.ba-photo-meta { margin: 8px 0 12px; }
.ba-photo-meta > div { grid-template-columns: 125px 8px minmax(0,1fr); gap: 5px; margin: 7px 0; line-height: 1.35; }
.ba-photo-grid { grid-template-rows: repeat(3, minmax(120px, 1fr)); }
.ba-photo-cell { height: auto; min-height: 120px; }
.ba-photo-cell img { object-fit: contain; }
.ba-photo-empty { gap: 6px; }
.ba-official-page-footer { position: absolute !important; z-index: 4; left: var(--ba-print-margin-left, 20px); right: var(--ba-print-margin-right, 20px); bottom: 8px; height: var(--mcm-print-footer-height, 12mm); min-height: var(--mcm-print-footer-height, 12mm); padding-top: 5px; border-top: 1px solid #d5d9df; font-size: 8px; line-height: 1.25; }
.ba-official-page-footer b { overflow-wrap: anywhere; }
.ba-print-setting-header { min-height: calc(var(--mcm-print-header-height, 20mm) * .32); margin: 0 0 5px; align-items: center; font-size: 8px; line-height: 1.3; }
.ba-print-setting-header > * { min-width: 0; overflow-wrap: anywhere; }
.ba-print-setting-footer { position: absolute; left: var(--ba-print-margin-left, 20px); right: var(--ba-print-margin-right, 20px); bottom: 8px; height: var(--mcm-print-footer-height, 12mm); margin: 0; padding: 4px 0 0; border-top: 1px solid #d5d9df; align-items: center; font-size: 7.5px; line-height: 1.25; }
.ba-print-setting-footer > * { min-width: 0; overflow-wrap: anywhere; }
.ba-official-page .report-print-watermark { font-size: 42px; }
@media (max-width: 760px) {
  .ba-official-page { min-height: 0; padding: 12px; overflow-x: auto; }
  .ba-official-header { grid-template-columns: 28% minmax(0, 72%); }
  .ba-official-company b { font-size: 10px; }
  .ba-official-company strong { font-size: 8px; }
  .ba-doc-table { font-size: 8px; }
  .ba-photo-grid { grid-template-rows: repeat(3, minmax(90px, 1fr)); }
  .ba-photo-cell { min-height: 90px; }
  .ba-signature-row { gap: 5px; }
}
@media print {
  body.report-print-mode .ba-official-page {
    height: var(--mcm-print-content-height, 273mm) !important;
    min-height: var(--mcm-print-content-height, 273mm) !important;
    padding: 0 0 calc(var(--ba-footer-space, 12mm) + 5mm) !important;
    overflow: hidden !important;
    font-size: 9pt !important;
  }
  body.report-print-mode .ba-official-page-footer {
    position: absolute !important;
    z-index: 4 !important;
    display: grid !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: var(--mcm-print-footer-height, 12mm) !important;
    min-height: var(--mcm-print-footer-height, 12mm) !important;
  }
  body.report-print-mode .ba-print-setting-footer {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
  }
  body.report-print-mode .ba-official-header { margin-bottom: 9px; }
  body.report-print-mode .ba-photo-grid { grid-template-rows: repeat(3, minmax(0, 1fr)); height: calc(var(--mcm-print-content-height, 273mm) - var(--ba-photo-top-space, 75mm) - var(--ba-footer-space, 12mm) - 5mm); max-height: calc(100% - var(--ba-photo-top-space, 75mm) - var(--ba-footer-space, 12mm) - 5mm); }
  body.report-print-mode .ba-photo-cell { height: auto; min-height: 0; }
  body.report-print-mode .ba-print-setting-header { margin-bottom: 4px; }
  body.report-print-mode .ba-official-page:last-child { break-after: auto !important; page-break-after: auto !important; }
  body.report-print-mode .ba-doc-table th, body.report-print-mode .ba-doc-table td { padding: 3.5px 4px; }
}
/* Berita Acara contract hierarchy: preserve group/subgroup rows and readable item indentation in View/Export. */
.ba-contract-subgroup td{font-weight:700;background:#eceff3}
.ba-contract-description{display:inline-block;max-width:100%;overflow-wrap:anywhere;white-space:normal}
.ba-contract-table td.num{font-variant-numeric:tabular-nums}


/* Four-level RAB / BOQ and progress hierarchy */
.rab-table .rab-work-row td{background:#fffaf2;color:#5d4a2c;font-weight:750;border-top:1px solid #f0e1c7}
.rab-work-title{display:inline-block;padding-left:22px;color:#384c65}
.rab-table .rab-item-row td .rab-item-title{padding-left:40px}
.rab-table .rab-legacy-work-row td{background:#fff;border-left:0}
.rab-table .rab-work-subtotal td{background:#f7f0e4;color:#68583e}
.progress-realization-table .progress-realization-group-work td{background:#fff7e9;color:#594b37;font-weight:750;border-top:1px solid #eddfc7}
.progress-realization-table .progress-realization-group-work .rab-work-title{padding-left:18px}
.progress-realization-export-group-work td{background:#fff6e7;color:#5c4c36;font-weight:750;border-top:1px solid #ead9bd}
.progress-realization-export-work-title{display:inline-block;padding-left:16px}

/* Four-level RAB/WBS hierarchy in Berita Acara contract details. */
.ba-contract-sub td{font-weight:700;background:#eceff3}
.ba-contract-work td{font-weight:650;background:#f7f9fb}
.ba-contract-item td{font-weight:400;background:#fff}
.ba-contract-cost td.num{font-variant-numeric:tabular-nums}

/* Final Berita Acara alignment: fixed 55 × 60 mm photo frames and the same contract-table rows as the entry form. */
.ba-photo-grid {
  width: 165mm !important;
  height: 180mm !important;
  max-width: none !important;
  margin: 0 auto !important;
  grid-template-columns: repeat(3, 55mm) !important;
  grid-template-rows: repeat(3, 60mm) !important;
  border: 0 !important;
  box-sizing: border-box !important;
}
.ba-photo-cell {
  width: 55mm !important;
  height: 60mm !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 55mm !important;
  max-height: 60mm !important;
  padding: 0 !important;
  border: 1px solid #111 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.ba-photo-cell img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  box-sizing: border-box !important;
}
.ba-contract-table th:first-child { width: 8% !important; }
.ba-contract-table th:nth-child(2) { width: 57% !important; }
.ba-contract-table th:nth-child(3) { width: 12% !important; }
.ba-contract-table th:nth-child(4) { width: 23% !important; }
.ba-contract-table .ba-contract-group td,
.ba-contract-table .minutes-contract-group td {
  background: #eaf3e0 !important;
  color: #2b4a29 !important;
  font-weight: 850 !important;
}
.ba-contract-table .ba-contract-sub td,
.ba-contract-table .minutes-contract-sub td {
  background: #f6f9f2 !important;
  color: #476043 !important;
  font-weight: 750 !important;
}
.ba-contract-table .ba-contract-work td,
.ba-contract-table .minutes-contract-work td { background: #fffaf2; font-weight: 700; }
.ba-contract-table .ba-contract-item td:nth-child(2),
.ba-contract-table .minutes-contract-item td:nth-child(2) { color: #30445c; }
.ba-contract-table tfoot th { padding: 12px 9px !important; }
@media print {
  body.report-print-mode .ba-photo-grid {
    width: 165mm !important;
    height: 180mm !important;
    max-width: none !important;
    margin: 0 auto !important;
    grid-template-columns: repeat(3, 55mm) !important;
    grid-template-rows: repeat(3, 60mm) !important;
    border: 0 !important;
  }
  body.report-print-mode .ba-photo-cell {
    width: 55mm !important;
    height: 60mm !important;
    min-height: 0 !important;
    max-width: 55mm !important;
    max-height: 60mm !important;
    border: 1px solid #111 !important;
    box-sizing: border-box !important;
  }
}

/* Laporan Proyek — tabel mengikuti bidang cetak dan ukuran kertas aktif */
.report-preview-scroll .report-print-sheet[data-report-doc]{
 width:var(--mcm-report-page-width,210mm);
 min-height:var(--mcm-report-page-height,297mm);
 max-width:100%;
 box-sizing:border-box;
}
.report-document-table-wrap,
.report-volume-table-wrap,
.report-rab-wbs-wrap{
 width:100%;
 max-width:100%;
 min-width:0;
 overflow-x:hidden;
 box-sizing:border-box;
}
.report-document-table,
.report-volume-table,
.report-rab-wbs-table{
 width:100%!important;
 min-width:0!important;
 max-width:100%;
 table-layout:fixed!important;
 border-collapse:collapse;
 box-sizing:border-box;
}
.report-document-table th,
.report-document-table td,
.report-rab-wbs-table th,
.report-rab-wbs-table td{
 font-size:var(--report-table-font-size,7px)!important;
 line-height:1.28;
 padding:var(--report-table-cell-padding,4px)!important;
 white-space:normal!important;
 overflow-wrap:anywhere;
 word-break:normal;
 vertical-align:top;
}
.report-document-table th,
.report-rab-wbs-table th{
 vertical-align:middle;
}
.report-document-table td.numeric,
.report-document-table th.numeric,
.report-rab-wbs-table td.numeric,
.report-rab-wbs-table th.numeric{
 text-align:right;
 white-space:normal!important;
 font-variant-numeric:tabular-nums;
}
.report-document-table td,
.report-document-table th{min-width:0!important;}
.report-volume-table{font-size:var(--report-table-font-size,5.4px)!important;}
.report-volume-table th,
.report-volume-table td{
 font-size:var(--report-table-font-size,5.4px)!important;
 line-height:1.2;
 padding:var(--report-table-cell-padding,2.5px)!important;
 white-space:normal!important;
 overflow-wrap:anywhere;
 word-break:normal;
 min-width:0!important;
}
.report-volume-table td:nth-child(2),
.report-volume-table td:nth-child(3){min-width:0!important;}
.report-volume-table .description-cell{font-weight:650;color:#273f5d;}
.report-volume-table .formula-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;word-break:break-word;}
.report-volume-table td.numeric,
.report-volume-table th.numeric{white-space:normal!important;text-align:right;font-variant-numeric:tabular-nums;}
.report-volume-table tfoot th{font-size:var(--report-table-font-size,5.4px)!important;}
.report-rab-wbs-table{font-size:var(--report-table-font-size,7.6px)!important;}
.report-rab-wbs-table td:nth-child(2){min-width:0!important;}
.report-rab-wbs-table .report-rab-code{white-space:normal!important;}
@media(max-width:760px){
 .report-preview-scroll .report-print-sheet[data-report-doc]{max-width:100%;}
 .report-document-table-wrap,.report-volume-table-wrap,.report-rab-wbs-wrap{overflow-x:hidden;}
 .report-document-table th,.report-document-table td,.report-rab-wbs-table th,.report-rab-wbs-table td{padding:2px!important;}
}
@media print{
 body.report-print-mode .report-preview-scroll .report-print-sheet[data-report-doc]{width:auto!important;max-width:none!important;min-height:0!important;}
 body.report-print-mode .report-document-table-wrap,
 body.report-print-mode .report-volume-table-wrap,
 body.report-print-mode .report-rab-wbs-wrap{width:100%!important;max-width:100%!important;overflow:visible!important;}
 body.report-print-mode .report-document-table,
 body.report-print-mode .report-volume-table,
 body.report-print-mode .report-rab-wbs-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;}
 body.report-print-mode .report-document-table th,
 body.report-print-mode .report-document-table td,
 body.report-print-mode .report-rab-wbs-table th,
 body.report-print-mode .report-rab-wbs-table td{font-size:var(--report-table-font-size,6px)!important;padding:var(--report-table-cell-padding,3px)!important;white-space:normal!important;overflow-wrap:anywhere;}
 body.report-print-mode .report-volume-table th,
 body.report-print-mode .report-volume-table td{font-size:var(--report-table-font-size,5.4px)!important;padding:var(--report-table-cell-padding,2.5px)!important;white-space:normal!important;overflow-wrap:anywhere;}
 body.report-print-mode .report-document-table tr,
 body.report-print-mode .report-volume-table tr,
 body.report-print-mode .report-rab-wbs-table tr{break-inside:avoid;page-break-inside:avoid;}
}
