/* ── Tab pills ── */
    .tab-pills{display:flex;gap:0.375rem;flex-wrap:wrap}
    .tab-pill{padding:0.3rem 0.75rem;border-radius:100px;font-size:0.75rem;font-weight:600;cursor:pointer;transition:all 0.15s;border:1.5px solid var(--border);background:none;color:var(--muted);font-family:inherit}
    .tab-pill:hover{border-color:var(--kai-blue);color:var(--kai-blue)}
    .tab-pill.active{background:var(--kai-blue);border-color:var(--kai-blue);color:#fff}
    .tab-count{display:inline-flex;align-items:center;justify-content:center;margin-left:0.35rem;background:rgba(255,255,255,0.25);border-radius:100px;padding:0 0.3rem;font-size:0.625rem;font-weight:700;min-width:18px;height:16px}
    .tab-pill:not(.active) .tab-count{background:rgba(0,0,0,0.07);color:var(--muted)}

    /* ── Filter info bar ── */
    .filter-info{background:rgba(0,48,130,0.04);border:1px solid rgba(0,48,130,0.12);border-radius:7px;padding:0.5rem 0.875rem;display:flex;align-items:center;gap:0.75rem;font-size:0.75rem;color:var(--text);flex-wrap:wrap}
    .filter-chip{display:inline-flex;align-items:center;gap:0.25rem;background:rgba(0,48,130,0.1);color:#003082;border-radius:100px;padding:0.15rem 0.5rem;font-size:0.6875rem;font-weight:600}
    .filter-chip-close{cursor:pointer;opacity:0.6;transition:opacity 0.15s}
    .filter-chip-close:hover{opacity:1}
    .filter-sep{color:var(--border)}
    .filter-count{margin-left:auto;color:var(--muted);font-size:0.6875rem}

    /* ── Status pills (inline table) ── */
    .st{display:inline-flex;align-items:center;gap:0.25rem;padding:0.1rem 0.5rem;border-radius:100px;font-size:0.6875rem;font-weight:700;white-space:nowrap}
    .st-siap{background:rgba(22,163,74,0.12);color:#15803D}
    .st-perawatan{background:rgba(217,119,6,0.12);color:#92400E}
    .st-overhaul{background:rgba(124,58,237,0.12);color:#5B21B6}
    .st-standby{background:rgba(37,99,235,0.12);color:#1D4ED8}
    .st-kritis{background:rgba(220,38,38,0.12);color:#991B1B}

    /* ── Cert status ── */
    .cert-ok{color:#15803D;font-weight:600;font-size:0.75rem}
    .cert-warn{color:#D97706;font-weight:600;font-size:0.75rem}
    .cert-exp{color:#DC2626;font-weight:600;font-size:0.75rem}

    /* ── Km progress inline ── */
    .km-prog{display:flex;align-items:center;gap:0.375rem}
    .km-bar-bg{width:50px;height:5px;background:rgba(0,0,0,0.08);border-radius:3px;overflow:hidden;flex-shrink:0}
    .km-bar-fill{height:100%;border-radius:3px;background:var(--kai-blue)}
    .km-txt{font-size:0.6875rem;font-family:'JetBrains Mono',monospace;color:var(--muted);white-space:nowrap}

    /* ── Table action buttons ── */
    .tbl-btn{padding:0.15rem 0.5rem;border-radius:5px;font-size:0.625rem;font-weight:600;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;transition:all 0.15s;white-space:nowrap}
    .tbl-btn:hover{border-color:var(--kai-blue);color:var(--kai-blue)}
    .tbl-btn-wo{border-color:rgba(217,119,6,0.4);color:#D97706}
    .tbl-btn-wo:hover{border-color:#D97706;background:rgba(217,119,6,0.06)}

    /* ── Drawer overlay ── */
    .drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.25);z-index:200;opacity:0;pointer-events:none;transition:opacity 0.25s}
    .drawer-overlay.open{opacity:1;pointer-events:all}
    .drawer{position:fixed;top:52px;right:0;bottom:0;width:440px;background:#fff;border-left:1px solid var(--border);z-index:201;transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;overflow:hidden}
    .drawer.open{transform:translateX(0)}

    /* ── Drawer header ── */
    .drw-hdr{padding:1rem 1.125rem 0.75rem;border-bottom:1px solid var(--border);flex-shrink:0}
    .drw-hdr-top{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-bottom:0.5rem}
    .drw-title{font-size:1.125rem;font-weight:800;color:var(--text);font-family:'JetBrains Mono',monospace}
    .drw-sub{font-size:0.75rem;color:var(--muted);margin-top:2px}
    .drw-hdr-actions{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
    .drw-close{width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:0.875rem;transition:all 0.15s}
    .drw-close:hover{border-color:var(--red);color:var(--red)}

    /* ── Drawer stat strip ── */
    .drw-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.625rem;margin-top:0.75rem}
    .drw-stat{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0.5rem 0.625rem}
    .drw-stat-lbl{font-size:0.625rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--muted);font-weight:700;margin-bottom:0.25rem}
    .drw-stat-val{font-size:0.8125rem;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace;line-height:1.2}
    .drw-stat-sub{font-size:0.625rem;color:var(--muted);margin-top:1px}

    /* ── Drawer stat progress ── */
    .drw-stat-bar-bg{height:4px;background:rgba(0,0,0,0.07);border-radius:2px;overflow:hidden;margin-top:4px}
    .drw-stat-bar-fill{height:100%;border-radius:2px;background:var(--kai-blue);width:0;transition:width 0.8s ease}

    /* ── Drawer tabs ── */
    .drw-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}
    .drw-tab{padding:0.625rem 1rem;font-size:0.75rem;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all 0.15s;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit}
    .drw-tab.active{color:var(--kai-blue);border-bottom-color:var(--kai-blue)}
    .drw-tab:hover:not(.active){color:var(--text)}

    /* ── Drawer body ── */
    .drw-body{flex:1;overflow-y:auto;padding:1rem 1.125rem}

    /* ── Spec grid ── */
    .spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem 1.5rem}
    .spec-row{padding:0.375rem 0;border-bottom:1px solid rgba(0,0,0,0.04)}
    .spec-lbl{font-size:0.6875rem;color:var(--muted);margin-bottom:1px}
    .spec-val{font-size:0.8125rem;font-weight:600;color:var(--text)}

    /* ── PM Progress section ── */
    .pm-section{margin-top:1rem}
    .pm-section-title{font-size:0.75rem;font-weight:700;color:var(--text);margin-bottom:0.625rem;text-transform:uppercase;letter-spacing:0.04em;display:flex;align-items:center;gap:0.5rem}
    .pm-row{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0;border-bottom:1px solid rgba(0,0,0,0.04)}
    .pm-row:last-child{border-bottom:none}
    .pm-lbl{width:80px;flex-shrink:0;font-size:0.6875rem;font-weight:600;color:var(--text)}
    .pm-lbl-sub{font-size:0.5625rem;color:var(--muted);font-weight:400}
    .pm-bar-bg{flex:1;height:8px;background:rgba(0,0,0,0.06);border-radius:4px;overflow:hidden}
    .pm-bar-fill{height:100%;border-radius:4px;width:0;transition:width 0.9s ease}
    .pm-pct{width:36px;text-align:right;font-size:0.6875rem;font-family:'JetBrains Mono',monospace;font-weight:700;flex-shrink:0}
    .pm-status{flex-shrink:0;font-size:0.6875rem;color:var(--muted);white-space:nowrap;min-width:110px;text-align:right}

    /* ── Drawer footer actions ── */
    .drw-footer{padding:0.875rem 1.125rem;border-top:1px solid var(--border);display:flex;gap:0.5rem;flex-wrap:wrap;flex-shrink:0;background:#fff}

    /* ── Tab content panels ── */
    .tab-panel{display:none}
    .tab-panel.active{display:block}

    /* ── Row select highlight ── */
    .data-table tbody tr.selected td{background:rgba(0,48,130,0.06)!important}
