
:root{
    --navy:#0b2b57;
    --blue:#0d6efd;
    --bg:#f5f7fb;
    --card:#ffffff;
    --text:#1f2937;
    --muted:#6b7280;
    --border:#e5e7eb;
    --danger:#b42318;
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
.app-shell{min-height:100vh;display:flex}
.sidebar{width:260px;background:#0b1f3a;color:#fff;display:flex;flex-direction:column;padding:18px}
.brand{display:flex;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:12px;padding:5px}
.brand-short{font-size:24px;font-weight:800}
.brand-name{font-size:12px;opacity:.75;line-height:1.25}
.nav{display:flex;flex-direction:column;gap:8px;margin-top:18px}
.nav a{padding:11px 12px;border-radius:8px;color:#dce7f7}
.nav a:hover{background:rgba(255,255,255,.10);color:#fff}
.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:15px}
.user-mini{display:flex;flex-direction:column;margin-bottom:12px}
.user-mini small{opacity:.65;margin-top:2px}
.logout-link{display:block;padding:9px 10px;border-radius:7px;background:rgba(255,255,255,.08)}
.main-content{flex:1;padding:24px 28px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.topbar h1{margin:0;font-size:28px;color:var(--navy)}
.topbar p{margin:5px 0 0;color:var(--muted)}
.user-badge{background:#fff;border:1px solid var(--border);padding:8px 12px;border-radius:999px;font-size:13px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.card h3{margin:0 0 7px;font-size:14px;color:var(--muted);font-weight:600}
.metric{font-size:30px;font-weight:800;color:var(--navy)}
.section-title{margin:26px 0 12px;font-size:18px;color:var(--navy)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:12px}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
th{background:#f9fafb;color:#475467}
tr:last-child td{border-bottom:none}
.btn{display:inline-block;border:none;border-radius:8px;padding:9px 13px;font-weight:600;cursor:pointer}
.btn-primary{background:var(--blue);color:#fff}
.btn-secondary{background:#eaf1ff;color:var(--navy)}
.btn-danger{background:#fee4e2;color:var(--danger)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.form-card{max-width:820px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group.full{grid-column:1 / -1}
label{font-size:13px;font-weight:600;color:#475467}
input,select,textarea{padding:10px 11px;border:1px solid #d0d5dd;border-radius:8px;font:inherit;background:#fff}
textarea{min-height:90px;resize:vertical}
.notice{padding:12px 14px;border-radius:9px;margin-bottom:14px}
.notice-success{background:#ecfdf3;color:#027a48}
.notice-error{background:#fef3f2;color:#b42318}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.badge-active{background:#ecfdf3;color:#027a48}
.badge-inactive{background:#f2f4f7;color:#667085}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.permission-item{display:flex;gap:8px;align-items:center;border:1px solid var(--border);padding:9px 10px;border-radius:8px}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef4ff,#f8fafc)}
.login-card{width:min(430px,92vw);background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:0 18px 50px rgba(15,23,42,.10)}
.login-logo{display:block;width:170px;max-height:150px;object-fit:contain;margin:0 auto 14px}
.login-title{text-align:center;margin:0;color:var(--navy)}
.login-sub{text-align:center;color:var(--muted);margin:6px 0 22px}
.login-card .form-group{margin-bottom:13px}
.login-card .btn{width:100%;padding:11px}
.login-foot{text-align:center;margin-top:14px;color:var(--muted);font-size:12px}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
    .sidebar{width:210px}
    .main-content{padding:18px}
    .grid,.form-grid,.permission-grid{grid-template-columns:1fr}
}

.identity-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:6px 0 18px}
.identity-panel{border:1px dashed #98a2b3;border-radius:12px;padding:15px;background:#f8fbff}
.identity-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}
.identity-panel h3{margin:0 0 4px;color:var(--navy);font-size:15px}
.identity-panel p{margin:0;color:var(--muted);font-size:12px}
.identity-panel input[type=file]{width:100%;margin-bottom:10px;background:#fff}
.scan-badge{background:#eaf1ff;color:#175cd3;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.scan-btn{width:100%}
.ocr-status{margin-top:9px;padding:8px 9px;border-radius:7px;font-size:12px;background:#f2f4f7;color:#667085}
.ocr-status.scanning{background:#eff8ff;color:#175cd3}
.ocr-status.success{background:#ecfdf3;color:#027a48}
.ocr-status.warning{background:#fffaeb;color:#b54708}
.ocr-status.error{background:#fef3f2;color:#b42318}
.ocr-note{margin:0 0 18px;padding:11px 13px;border-radius:9px;background:#fffaeb;color:#7a2e0e;font-size:13px}
@media(max-width:760px){.identity-upload-grid{grid-template-columns:1fr}}

.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:26px}
.route-card{display:block;background:#fff;border:1px solid #dce4ef;border-radius:16px;padding:28px;text-decoration:none;color:#0b1f3a;box-shadow:0 8px 24px rgba(13,38,76,.06)}
.route-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(13,38,76,.10)}
.route-card h2{margin:12px 0 8px}.route-card p{margin:0;color:#657184}
.route-tag,.route-badge{display:inline-block;background:#e8f1ff;color:#0d63ce;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}
.route-tag.hq,.route-badge.hq{background:#fff0dc;color:#a45800}
.route-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
.route-head a{text-decoration:none;font-weight:700}
.actions{display:flex;gap:6px;flex-wrap:wrap}.btn-danger{background:#b42318!important;color:#fff!important}
.case-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.case-summary>div{background:#fff;border:1px solid #dde4ee;border-radius:12px;padding:16px}.case-summary span,.detail-grid small{display:block;color:#6b7280;margin-bottom:6px}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.detail-grid>div{padding:12px;border-bottom:1px solid #eef1f5}.detail-grid .full{grid-column:1/-1}
.doc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.doc-card{display:flex;flex-direction:column;gap:5px;border:1px solid #dce4ef;border-radius:12px;padding:18px;text-decoration:none;color:#0b1f3a;background:#f9fbfe}.doc-card span{color:#6b7280;font-size:12px}
.danger-zone{border:1px solid #f0b4ad;background:#fff7f6;border-radius:12px;padding:18px;margin-top:18px}
@media(max-width:900px){.route-grid,.case-summary,.doc-grid,.detail-grid{grid-template-columns:1fr}}


/* WMS v1.3 - Lebihan Bayaran */
.lb-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.lb-tabs a{padding:8px 11px;border-radius:8px;background:#fff;border:1px solid var(--border);font-size:13px;font-weight:700;color:var(--navy)}.lb-tabs a.active{background:var(--navy);color:#fff}.lb-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.lb-kpis .card{padding:15px}.lb-kpis .metric{font-size:24px}.lb-search{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end;margin-bottom:14px}.lb-small{font-size:12px;color:var(--muted);display:block;margin-top:3px}.lb-money{font-weight:800;color:var(--navy);white-space:nowrap}.lb-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lb-section{margin-top:18px}.lb-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.lb-card-title{margin:0 0 12px;color:var(--navy)}.lb-muted{color:var(--muted)}.lb-status{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;background:#eef2f6}.lb-status.settled{background:#ecfdf3;color:#027a48}.lb-status.outstanding{background:#fff4e5;color:#b54708}.lb-print{max-width:800px;margin:0 auto;background:#fff;padding:36px}.lb-print h2{text-align:center}.lb-print .letter-meta{margin:18px 0}.lb-print .signature{margin-top:55px}.lb-import-note{border-left:4px solid #0d6efd;background:#eff6ff;padding:12px 14px;border-radius:8px;margin:14px 0}
@media(max-width:1000px){.lb-kpis{grid-template-columns:repeat(2,1fr)}.lb-search{grid-template-columns:1fr 1fr}.lb-two{grid-template-columns:1fr}}@media(max-width:700px){.lb-kpis,.lb-search{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.lb-tabs,.no-print{display:none!important}.main-content{padding:0}.lb-print{box-shadow:none;border:none;max-width:none;padding:18mm}body{background:#fff}}


/* WMS v1.4 - FUMS-style Lebihan Bayaran sidebar */
.nav-group{margin:7px -18px 0;padding:10px 18px 8px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-group-title{display:flex;align-items:center;justify-content:space-between;padding:3px 0 8px;color:#ff4ed1;font-size:11px;font-weight:900;letter-spacing:.45px}
.nav-caret{font-size:15px;line-height:1;color:#ff4ed1}
.nav-sub{display:flex;flex-direction:column;gap:4px}
.nav-sub a{display:flex;align-items:center;gap:10px;padding:8px 4px;border-radius:8px;color:#fff;font-size:14px}
.nav-sub a:hover{background:rgba(255,255,255,.07)}
.nav-sub a.active{background:rgba(255,255,255,.09);color:#fff}
.nav-icon{width:24px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#173558;color:#eaf2ff;font-size:10px;font-weight:900;flex:0 0 24px}
.nav-sub a.active .nav-icon{background:#244c78;color:#fff}
.lb-page-tools{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:-8px 0 18px}
@media(max-width:760px){.nav-group{margin-left:-18px;margin-right:-18px}.lb-page-tools{justify-content:flex-start}}


/* WMS v1.4.1 - collapsible Lebihan Bayaran menu */
.nav-group-toggle{
    width:100%;
    border:0;
    background:transparent;
    cursor:pointer;
    text-align:left;
    font:inherit;
}
.nav-group-toggle:focus{
    outline:2px solid rgba(255,255,255,.22);
    outline-offset:2px;
    border-radius:6px;
}
.nav-caret{
    transition:transform .18s ease;
}
.nav-sub{
    max-height:260px;
    overflow:hidden;
    opacity:1;
    transition:max-height .2s ease, opacity .16s ease;
}
.nav-sub.collapsed{
    max-height:0;
    opacity:0;
}


/* WMS v1.4.2 - hard fix for LB collapse */
#lbNavSub.collapsed{
    display:none !important;
}
#lbNavToggle{
    color:#ff4ed1;
}
#lbNavToggle:hover{
    background:rgba(255,255,255,.05);
}


/* WMS v1.4.3 - LB Overview reason statistics */
.lb-pie-wrap{
    display:flex;
    justify-content:center;
    align-items:center;
    padding:10px 0 4px;
    overflow:auto;
}
#lbReasonPie{
    max-width:100%;
    height:auto;
}
.lb-pie-legend{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:8px 18px;
    margin-top:12px;
    padding-top:14px;
    border-top:1px solid #e5e7eb;
}
.lb-pie-legend-item{
    display:grid;
    grid-template-columns:14px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-height:28px;
    font-size:13px;
}
.lb-pie-swatch{
    width:12px;
    height:12px;
    border-radius:3px;
    display:inline-block;
}
.lb-pie-label{
    overflow-wrap:anywhere;
}
.lb-pie-legend-item strong{
    color:#0b2a53;
}


/* WMS v1.4.4 - LB Daftar Kes filters */
.lb-case-register-search{
    display:grid !important;
    grid-template-columns:minmax(280px,2fr) minmax(150px,1fr) minmax(180px,1fr) minmax(180px,1fr) minmax(170px,1fr) auto;
    gap:10px;
    align-items:end;
}
.lb-case-register-search .form-group{
    min-width:0;
}
.lb-case-register-search select,
.lb-case-register-search input{
    width:100%;
}
.lb-search-actions{
    display:flex;
    gap:7px;
    align-items:center;
    padding-bottom:1px;
}
@media(max-width:1250px){
    .lb-case-register-search{
        grid-template-columns:repeat(3,minmax(180px,1fr));
    }
}
@media(max-width:760px){
    .lb-case-register-search{
        grid-template-columns:1fr;
    }
    .lb-search-actions{
        justify-content:flex-start;
    }
}

/* WMS v1.4.5 - professional Open action button */
.lb-open-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:58px;
    padding:7px 13px;
    border-radius:7px;
    background:#1677ff;
    color:#fff !important;
    font-size:13px;
    font-weight:700;
    line-height:1;
    text-decoration:none !important;
    box-shadow:0 1px 2px rgba(0,0,0,.10);
    transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.lb-open-btn:hover{
    background:#0b63d8;
    box-shadow:0 3px 8px rgba(0,0,0,.16);
    transform:translateY(-1px);
}
.lb-open-btn:active{
    transform:translateY(0);
    box-shadow:0 1px 2px rgba(0,0,0,.10);
}


/* WMS v1.4.6 - LB Task Force group/exercise improvements */
.tf-member-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.tf-member-grid input:nth-child(5){
    grid-column:1 / -1;
}
.tf-members-box small{
    display:block;
    margin-top:6px;
    color:#64748b;
}
.tf-delete-form{
    margin-top:12px;
}
.tf-delete-btn{
    width:100%;
    background:#dc2626 !important;
    border-color:#dc2626 !important;
    color:#fff !important;
    font-weight:700;
}
.tf-delete-btn:hover{
    background:#b91c1c !important;
    border-color:#b91c1c !important;
}
@media(max-width:720px){
    .tf-member-grid{grid-template-columns:1fr}
    .tf-member-grid input:nth-child(5){grid-column:auto}
}

/* WMS v1.4.7 Task Force list actions */
.tf-actions{white-space:nowrap;text-align:right}
.tf-open-btn,.tf-list-delete-btn{display:inline-flex;align-items:center;justify-content:center;min-width:62px;height:34px;padding:0 13px;border-radius:7px;font-size:13px;font-weight:700;text-decoration:none!important;cursor:pointer;border:1px solid transparent;vertical-align:middle}
.tf-open-btn{background:#1677ff;color:#fff!important}
.tf-open-btn:hover{background:#0b63d8}
.tf-inline-delete{display:inline-block;margin:0 0 0 6px;vertical-align:middle}
.tf-list-delete-btn{background:#dc2626;border-color:#dc2626;color:#fff;font-family:inherit}
.tf-list-delete-btn:hover{background:#b91c1c;border-color:#b91c1c}

/* WMS v1.4.8 - Task Force assigned-case actions */
.tf-assigned-actions{white-space:nowrap}
.tf-open-case-btn,.tf-unassign-btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 11px;border-radius:6px;font-size:12px;font-weight:700;text-decoration:none!important;border:1px solid transparent;cursor:pointer}
.tf-open-case-btn{background:#1677ff;color:#fff!important}
.tf-open-case-btn:hover{background:#0b63d8}
.tf-inline-unassign{display:inline-block;margin-left:6px}
.tf-unassign-btn{background:#fff;color:#dc2626;border-color:#dc2626;font-family:inherit}
.tf-unassign-btn:hover{background:#dc2626;color:#fff}


/* WMS v1.4.9 - LB area management */
#area-field select,
#area-field input{
    width:100%;
}
#area-field small{
    display:block;
    margin-top:6px;
    color:#64748b;
}
.tf-area-unknown{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:74px;
    min-height:29px;
    padding:5px 10px;
    border:1px solid #dc2626;
    border-radius:6px;
    background:#fff5f5;
    color:#dc2626 !important;
    font-size:12px;
    font-weight:800;
    text-decoration:none !important;
}
.tf-area-unknown:hover{
    background:#dc2626;
    color:#fff !important;
}
#area-field:target{
    scroll-margin-top:18px;
    border-radius:8px;
    outline:2px solid rgba(22,119,255,.30);
    outline-offset:7px;
}


/* WMS v1.4.11 - area autofill and navigation */
.lb-back-row{margin:4px 0 10px}
.lb-back-btn{
 display:inline-flex;align-items:center;justify-content:center;min-width:92px;height:36px;
 padding:0 15px;border:0;border-radius:8px;background:#16a34a;color:#fff;
 font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;
 box-shadow:0 1px 2px rgba(0,0,0,.10)
}
.lb-back-btn:hover{background:#15803d}


/* WMS v1.4.12 - Task Force print report */
.tf-print-btn{
 display:inline-flex;align-items:center;justify-content:center;width:42px;height:34px;
 border-radius:8px;background:#eef2f7;border:1px solid #d6dee9;color:#0b2d5c;
 text-decoration:none;font-size:17px;line-height:1
}
.tf-print-btn:hover{background:#dde7f4}
.tf-report{background:#fff;max-width:1180px;margin:0 auto;padding:28px 32px;color:#111}
.tf-report h1{text-align:center;font-size:22px;margin:0 0 22px}
.tf-report h2{font-size:17px;margin:24px 0 8px;color:#0b2d5c}
.tf-report-meta,.tf-report-table{width:100%;border-collapse:collapse}
.tf-report-meta th,.tf-report-meta td,.tf-report-table th,.tf-report-table td{border:1px solid #cfd7e3;padding:8px 9px;vertical-align:top}
.tf-report-meta th,.tf-report-table th{background:#f4f7fb;text-align:left}
.tf-report-table .num{text-align:right;white-space:nowrap}
.tf-report-totals{margin-top:20px;margin-left:auto;width:max-content;min-width:330px}
.tf-report-totals p{margin:5px 0}
.tf-report-sign{margin-top:48px;display:flex;justify-content:flex-end}
.tf-report-sign>div{width:320px}
.tf-report-toolbar{max-width:1180px;margin:0 auto 12px}
@media print{
 .no-print,.sidebar,.lb-back-row{display:none!important}
 body,.main-content,.content{background:#fff!important;margin:0!important;padding:0!important}
 .tf-report{max-width:none;padding:8mm 7mm;box-shadow:none;border:0}
 .tf-report h1{font-size:17pt}
 .tf-report h2{font-size:12pt;page-break-after:avoid}
 .tf-report-table{font-size:8.5pt}
 .tf-report-table tr{page-break-inside:avoid}
 .tf-report-cases thead{display:table-header-group}
}


/* WMS v1.4.13 - official Task Force member/group report */
.tf-template-toolbar{max-width:1120px;margin:0 auto 12px;display:flex;gap:8px}
.tf-official-report{background:#fff;max-width:1120px;margin:0 auto;padding:34px 36px;color:#111}
.tf-official-report h1{text-align:center;font-size:20px;line-height:1.35;margin:0 auto 28px;max-width:1000px;font-weight:700}
.tf-official-report table{width:100%;border-collapse:collapse;table-layout:fixed}
.tf-official-report th,.tf-official-report td{border:1px solid #111;padding:10px 8px;vertical-align:top}
.tf-official-report th{text-align:center;font-weight:700}
.tf-official-report td{height:68px}
.tf-official-report .tf-bil{width:6%;text-align:center}
.tf-official-report th:nth-child(2){width:21%}
.tf-official-report th:nth-child(3){width:21%}
.tf-official-report th:nth-child(4){width:29%}
.tf-official-report th:nth-child(5){width:23%}
@media print{
 .tf-template-toolbar,.sidebar,.lb-back-row,.no-print{display:none!important}
 body,.main-content,.content{background:#fff!important;margin:0!important;padding:0!important}
 .tf-official-report{max-width:none;margin:0;padding:8mm 8mm}
 .tf-official-report h1{font-size:14pt;margin-bottom:7mm}
 .tf-official-report table{font-size:10pt}
 .tf-official-report th,.tf-official-report td{border:1px solid #000;padding:2.5mm 2mm}
 .tf-official-report td{height:15mm}
}


/* WMS v1.4.14 - Excel-style Task Force sheet tabs */
.tf-sheet-tabs{
    display:flex;
    align-items:flex-end;
    gap:4px;
    margin:4px 0 16px;
    border-bottom:2px solid #cbd5e1;
}
.tf-sheet-tabs a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    position:relative;
    bottom:-2px;
    min-height:42px;
    padding:9px 16px;
    border:1px solid #cbd5e1;
    border-bottom:2px solid #cbd5e1;
    border-radius:8px 8px 0 0;
    background:#eaf0f7;
    color:#17385f;
    font-size:13px;
    font-weight:700;
    text-decoration:none!important;
}
.tf-sheet-tabs a:hover{
    background:#dce7f4;
}
.tf-sheet-tabs a.active{
    background:#fff;
    color:#0b2d5c;
    border-bottom-color:#fff;
}
.tf-sheet-no{
    color:#64748b;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
}
.tf-sheet-tabs a.active .tf-sheet-no{
    color:#1677ff;
}
.tf-sheet-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24px;
    height:24px;
    padding:0 7px;
    border-radius:999px;
    background:#1677ff;
    color:#fff;
    font-size:11px;
}
.tf-assigned-sheet-card{
    margin-top:0;
}
@media(max-width:700px){
    .tf-sheet-tabs{
        overflow-x:auto;
        white-space:nowrap;
    }
}

/* WMS v1.4.15 - dynamic Task Force print template */
.tf-official-report-v2{font-family:Arial,Helvetica,sans-serif}
.tf-official-report-v2 h1{text-align:left;font-size:18px;line-height:1.55;margin:0 0 66px;font-weight:700}
.tf-group-report{margin:0 0 40px;break-inside:avoid;page-break-inside:avoid}
.tf-group-table{width:100%;border-collapse:collapse;table-layout:fixed}
.tf-group-table th,.tf-group-table td{border:1px solid #111;padding:5px 8px;font-size:16px;vertical-align:top}
.tf-group-table th{background:#c8e8f5;color:red;text-align:center;font-weight:700}
.tf-group-table td{height:24px}.tf-group-table .tf-col-bil{width:6%;text-align:center}.tf-group-table .tf-col-group{width:26%}.tf-group-table .tf-col-leader{width:16%}.tf-group-table .tf-col-member{width:16%}.tf-group-table .tf-col-area{width:16%}.tf-group-table .tf-col-case{width:20%}.tf-group-table .tf-top{vertical-align:top}
.tf-signoff{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:80px}.tf-sign-box{font-size:17px;line-height:1.45}.tf-sign-box>strong{font-size:18px}.tf-sign-space{height:55px}
@media print{@page{size:A4 portrait;margin:12mm 14mm}.tf-official-report-v2{padding:0!important;width:auto!important}.tf-official-report-v2 h1{font-size:12pt;margin-bottom:20mm}.tf-group-report{margin-bottom:11mm}.tf-group-table th,.tf-group-table td{font-size:10pt;padding:1.4mm 2mm}.tf-group-table td{height:6mm}.tf-signoff{margin-top:22mm;gap:14mm}.tf-sign-box,.tf-sign-box>strong{font-size:10.5pt}.tf-sign-space{height:17mm}}


/* WMS v1.4.15.1 - Task Force print border continuity fix
   Avoid rowspan in printed tables. Blank cells preserve the merged look
   while keeping a complete physical border on every printed row. */
.tf-group-table{
    border:1px solid #111 !important;
    border-collapse:collapse !important;
    border-spacing:0 !important;
}
.tf-group-table th,
.tf-group-table td{
    border-left:1px solid #111 !important;
    border-right:1px solid #111 !important;
}
.tf-group-table th{
    border-top:1px solid #111 !important;
    border-bottom:1px solid #111 !important;
}
.tf-group-table tbody tr td{
    border-top:1px solid #111;
    border-bottom:1px solid #111;
}
.tf-group-table td.tf-merged.tf-merge-first{
    border-bottom-color:transparent !important;
}
.tf-group-table td.tf-merged.tf-merge-middle{
    border-top-color:transparent !important;
    border-bottom-color:transparent !important;
}
.tf-group-table td.tf-merged.tf-merge-last{
    border-top-color:transparent !important;
    border-bottom:1px solid #111 !important;
}
.tf-group-table tbody tr:last-child td{
    border-bottom:1px solid #111 !important;
}
.tf-group-table tbody tr:first-child td{
    border-top:1px solid #111 !important;
}
@media print{
    .tf-group-table{
        border:0.35mm solid #000 !important;
        border-collapse:collapse !important;
    }
    .tf-group-table th,
    .tf-group-table td{
        border-left:0.35mm solid #000 !important;
        border-right:0.35mm solid #000 !important;
    }
    .tf-group-table th{
        border-top:0.35mm solid #000 !important;
        border-bottom:0.35mm solid #000 !important;
    }
    .tf-group-table tbody tr td{
        border-top:0.35mm solid #000;
        border-bottom:0.35mm solid #000;
    }
    .tf-group-table td.tf-merged.tf-merge-first{
        border-bottom-color:transparent !important;
    }
    .tf-group-table td.tf-merged.tf-merge-middle{
        border-top-color:transparent !important;
        border-bottom-color:transparent !important;
    }
    .tf-group-table td.tf-merged.tf-merge-last{
        border-top-color:transparent !important;
        border-bottom:0.35mm solid #000 !important;
    }
    .tf-group-table tbody tr:last-child td{
        border-bottom:0.35mm solid #000 !important;
    }
}

/* WMS v1.4.15.2 - Task Force Edit Exercise */
.tf-edit-btn{
 display:inline-flex;align-items:center;justify-content:center;
 padding:8px 14px;border-radius:8px;background:#1677ff;color:#fff!important;
 font-weight:700;text-decoration:none!important;
}
.tf-edit-btn:hover{filter:brightness(.94)}
.tf-edit-form-actions{display:flex;gap:8px;align-items:center}


/* WMS v1.4.15.10 - Dokumen Wakil Tetap card colours */
.doc-card{
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  border-width:1px;
  border-style:solid;
}
.doc-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(15,23,42,.10);
}
.doc-card-appointment{
  background:#eef6ff;
  border-color:#8ec5ff;
}
.doc-card-statutory{
  background:#f4efff;
  border-color:#b9a2ff;
}
.doc-card-indemnity{
  background:#fff4e8;
  border-color:#f3b56f;
}
.doc-card-maybank{
  background:#edf9f0;
  border-color:#8fd19e;
}
.doc-card-appointment strong{color:#0f4c81}
.doc-card-statutory strong{color:#5a3f9c}
.doc-card-indemnity strong{color:#9a4d00}
.doc-card-maybank strong{color:#1f6b39}

/* WMS v1.4.15.11 - unified Dokumen Wakil Tetap buttons */
.doc-card-appointment,
.doc-card-statutory,
.doc-card-indemnity,
.doc-card-maybank{
  background:#0d6efd !important;
  border-color:#0b5ed7 !important;
  color:#fff !important;
}
.doc-card-appointment strong,
.doc-card-statutory strong,
.doc-card-indemnity strong,
.doc-card-maybank strong,
.doc-card-appointment span,
.doc-card-statutory span,
.doc-card-indemnity span,
.doc-card-maybank span{
  color:#fff !important;
}
.doc-card-appointment:hover,
.doc-card-statutory:hover,
.doc-card-indemnity:hover,
.doc-card-maybank:hover{
  background:#0b5ed7 !important;
  border-color:#0a58ca !important;
}

/* WMS v1.4.15.12 - force all Dokumen Wakil Tetap cards blue */
a.doc-card.doc-blue,
a.doc-card.doc-blue:link,
a.doc-card.doc-blue:visited{
  background:#0d6efd !important;
  border:1px solid #0b5ed7 !important;
  color:#ffffff !important;
  text-decoration:none !important;
}
a.doc-card.doc-blue *,
a.doc-card.doc-blue strong,
a.doc-card.doc-blue span,
a.doc-card.doc-blue small,
a.doc-card.doc-blue div{
  color:#ffffff !important;
}
a.doc-card.doc-blue:hover,
a.doc-card.doc-blue:focus{
  background:#0b5ed7 !important;
  border-color:#0a58ca !important;
  color:#ffffff !important;
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}

/* WMS v1.4.15.14 - Dokumen Wakil Tetap contrast fix */
a.doc-card,
a.doc-card:link,
a.doc-card:visited{
  background:#0d6efd !important;
  border:1px solid #0b5ed7 !important;
  color:#ffffff !important;
}
a.doc-card .doc-card-title,
a.doc-card strong{
  display:block !important;
  color:#ffffff !important;
  font-weight:700 !important;
  margin-bottom:4px !important;
}
a.doc-card .doc-card-desc,
a.doc-card span,
a.doc-card small{
  display:block !important;
  color:#dbeafe !important;
  font-weight:400 !important;
  line-height:1.25 !important;
}
a.doc-card:hover,
a.doc-card:focus{
  background:#0b5ed7 !important;
  border-color:#0a58ca !important;
}

/* WMS v1.4.15.25 - clickable My Account badge */
.account-badge{
    display:inline-flex!important;
    align-items:center;
    gap:8px;
    text-decoration:none!important;
    cursor:pointer;
}
.account-badge:hover{box-shadow:0 2px 10px rgba(15,23,42,.10)}
.account-badge-avatar{
    width:26px;
    height:26px;
    border-radius:50%;
    object-fit:cover;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 26px;
}
.account-badge-initial{
    background:#e7eef9;
    color:#0b2b52;
    font-size:12px;
    font-weight:800;
}
