/* ── Dipo-specific styles ── */

    .nav-sub{padding:5px 16px 5px 40px;font-size:11.5px;color:var(--muted);cursor:pointer;transition:all 0.15s;font-weight:500;text-decoration:none;display:flex;align-items:center;gap:8px}
    .nav-sub:hover{background:rgba(0,0,0,0.04);color:var(--text)}
    .nav-sub.active{background:rgba(0,48,130,0.08);color:var(--kai-blue);border-right:3px solid var(--kai-blue)}

    /* Track table */
    .track-table{width:100%;border-collapse:collapse}
    .track-table th{font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);padding:0.5rem 0.75rem;text-align:left;background:rgba(0,48,130,0.03);font-weight:700;white-space:nowrap;border-bottom:1px solid var(--border)}
    .track-table td{padding:0.5rem 0.75rem;font-size:0.8125rem;border-top:1px solid rgba(0,0,0,0.04);vertical-align:middle}
    .track-table tr{cursor:pointer;transition:background 0.12s}
    .track-table tr:hover td{background:rgba(0,48,130,0.03)}
    .track-table tr.selected td{background:rgba(0,48,130,0.05)}

    /* Track status badges */
    .track-badge{display:inline-flex;align-items:center;gap:0.35rem;padding:0.2rem 0.55rem;border-radius:6px;font-size:0.6875rem;font-weight:600;white-space:nowrap}
    .track-terisi{background:rgba(22,163,74,0.1);color:#15803D;border:1px solid rgba(22,163,74,0.2)}
    .track-kosong{background:rgba(100,116,139,0.08);color:#64748B;border:1px solid var(--border)}
    .track-perawatan{background:rgba(217,119,6,0.1);color:#92400E;border:1px solid rgba(217,119,6,0.2)}
    .track-blokir{background:rgba(100,116,139,0.12);color:#475569;border:1px solid rgba(100,116,139,0.2)}

    /* Visual track map */
    .track-visual-wrap{padding:1rem}
    .track-visual-title{font-size:0.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.75rem;display:flex;align-items:center;justify-content:space-between}
    .track-slot{height:36px;margin:3px 0;border-radius:6px;display:flex;align-items:center;padding:0 8px;gap:6px;font-size:10px;font-weight:600;position:relative;transition:all 0.2s;cursor:pointer;border:1.5px solid transparent}
    .track-slot:hover{filter:brightness(0.96);border-color:rgba(0,48,130,0.3)}
    .track-slot.slot-terisi{background:#DCFCE7;border-color:rgba(22,163,74,0.2)}
    .track-slot.slot-kosong{background:#F8FAFC;border-color:var(--border);border-style:dashed}
    .track-slot.slot-perawatan{background:#FEF3C7;border-color:rgba(217,119,6,0.25)}
    .track-slot.slot-blokir{background:#F1F5F9;border-color:rgba(100,116,139,0.2)}
    .track-slot-label{font-size:10px;font-weight:700;color:var(--muted);width:32px;flex-shrink:0;font-family:'JetBrains Mono',monospace}

    /* Unit blocks */
    .unit-block{height:26px;border-radius:4px;display:flex;align-items:center;padding:0 8px;font-size:10px;font-weight:700;color:#fff;white-space:nowrap;flex-shrink:0;transition:all 0.15s;cursor:pointer;position:relative}
    .unit-block:hover{filter:brightness(1.1);transform:translateY(-1px)}
    .unit-loko{width:80px;background:var(--kai-blue)}
    .unit-kereta-1{width:50px;background:#1D4ED8}
    .unit-kereta-2{width:50px;background:#0369A1}
    .unit-kereta-3{width:50px;background:#374151}
    .unit-perawatan{background:var(--amber)!important}
    .unit-block-empty{height:26px;display:flex;align-items:center;color:var(--muted);font-size:10px;font-style:italic;padding:0 8px}
    .unit-block-blokir{height:26px;display:flex;align-items:center;color:var(--muted);font-size:10px;padding:0 6px;width:100%;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(100,116,139,0.08) 4px,rgba(100,116,139,0.08) 8px);border-radius:4px}

    /* Unit tooltip */
    .unit-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#1E293B;color:#fff;padding:0.4rem 0.625rem;border-radius:6px;font-size:0.6875rem;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity 0.15s;z-index:100;min-width:140px}
    .unit-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#1E293B}
    .unit-block:hover .unit-tooltip{opacity:1}

    /* Stabling & shunting tables */
    .mini-table{width:100%;border-collapse:collapse}
    .mini-table th{font-size:9.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);padding:0.4rem 0.75rem;text-align:left;background:rgba(0,48,130,0.02);font-weight:700;border-bottom:1px solid var(--border)}
    .mini-table td{padding:0.45rem 0.75rem;font-size:0.8125rem;border-top:1px solid rgba(0,0,0,0.04)}
    .mini-table tr:hover td{background:rgba(0,0,0,0.02)}

    /* Shunting card */
    .so-card{padding:0.6rem 0.875rem;display:flex;align-items:center;gap:0.625rem;border-bottom:1px solid rgba(0,0,0,0.04);font-size:0.8125rem;transition:background 0.12s}
    .so-card:last-child{border-bottom:none}
    .so-card:hover{background:rgba(0,0,0,0.02)}
    .so-id{font-family:'JetBrains Mono',monospace;font-size:0.75rem;font-weight:700;color:var(--kai-blue);width:54px;flex-shrink:0}
    .so-unit{font-weight:600;color:var(--text);min-width:80px}
    .so-route{color:var(--muted);font-size:0.75rem;display:flex;align-items:center;gap:0.25rem}
    .so-time{font-family:'JetBrains Mono',monospace;font-size:0.75rem;color:var(--muted);margin-left:auto;white-space:nowrap}

    /* Departure readiness */
    .depart-row{padding:0.625rem 1rem;display:flex;align-items:center;gap:0.625rem;border-bottom:1px solid rgba(0,0,0,0.04);transition:background 0.12s}
    .depart-row:last-child{border-bottom:none}
    .depart-row:hover{background:rgba(0,0,0,0.02)}
    .depart-row.tahan{background:rgba(220,38,38,0.04);border-left:3px solid var(--red)}
    .depart-row.berangkat{background:rgba(22,163,74,0.04)}
    .depart-unit{font-family:'JetBrains Mono',monospace;font-size:0.8125rem;font-weight:700;color:var(--text);width:80px;flex-shrink:0}
    .depart-trip{font-size:0.8125rem;font-weight:600;color:var(--text);flex:1;min-width:0}
    .depart-time{font-family:'JetBrains Mono',monospace;font-size:0.8125rem;font-weight:700;color:var(--text);width:44px;flex-shrink:0}
    .depart-clearance{flex-shrink:0;min-width:90px;text-align:right}

    /* Live indicator */
    .live-ts{font-size:0.6875rem;font-family:'JetBrains Mono',monospace;color:var(--muted)}

    /* Tooltip for track rows */
    .track-detail-popup{position:fixed;background:#1E293B;color:#fff;padding:0.625rem 0.875rem;border-radius:8px;font-size:0.75rem;z-index:300;pointer-events:none;display:none;min-width:180px;line-height:1.6}
    .track-detail-popup.show{display:block}

    /* Kpi amber */
    .kpi.border-amber{border-top:3px solid var(--amber)}

    /* Scroll indicator */
    .show-more-btn{width:100%;padding:0.5rem;border:1px dashed var(--border);border-radius:7px;background:none;color:var(--muted);font-size:0.75rem;cursor:pointer;transition:all 0.15s;font-family:inherit}
    .show-more-btn:hover{border-color:var(--kai-blue);color:var(--kai-blue)}

    /* Occupancy bar */
    .occ-bar-wrap{height:6px;background:rgba(0,0,0,0.06);border-radius:3px;overflow:hidden;margin-top:0.375rem}
    .occ-bar-fill{height:100%;border-radius:3px;background:var(--amber);transition:width 0.6s ease}
