/*wwwroot/site.css*/

html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ikon panah selalu inline-block & rapi sejajar teks */
.sort-icon {
    display: inline-block;
    width: 0.9rem; /* kecil & konsisten */
    height: 0.9rem;
    vertical-align: middle; /* sejajar teks */
    margin-left: .25rem; /* jarak dari label kolom */
}
/* opsional: agar link header tidak bergaris bawah */
th a.text-header {
    text-decoration: none;
    color: inherit;
    display: inline-flex; /* teks + ikon jadi satu baris */
    align-items: center; /* sejajar vertikal */
    gap: .25rem;
}

.btn-stack {
    display: flex;
    flex-wrap: wrap; /* memungkinkan wrap ke bawah saat sempit */
    gap: .375rem; /* jarak antar tombol */
}

/*@media (max-width: 576px) {
    .table td .d-flex.gap-2 .btn {
        width: 100%;
    }
}*/

.btn-custom {
    padding: 1px 2px;
    font-size: 0.875rem; /* sedikit lebih kecil */
}

.btn-custom1 {
    padding: 1px 4px 1px 4px !important;
    margin: 0.2rem;
    flex: 0 1 auto !important;
}

/* ============================================================
   PRINT STYLE: Reports (Completion Chart)
   ============================================================ */
@media print {
    .d-print-none {
        display: none !important;
    }

    body {
        background: #fff !important;
    }

    .card {
        border: 1px solid #ddd !important;
        box-shadow: none !important;
    }

    h2 {
        margin-top: 0 !important;
    }
}

/* =========================================================
   SiLppm: Global layout (lebih lebar)
   ========================================================= */
@media (min-width: 992px) {
    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl {
        max-width: 95vw !important;
    }
}

@media (max-width: 992px) {
    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl {
        max-width: 100% !important;
    }
}

/* =========================================================
   SiLppm: Progress Row Stepper (dipakai di My.cshtml)
   ========================================================= */
tr.progress-row > td {
    background: #f8f9fa;
    padding-top: .55rem;
    padding-bottom: .55rem;
}

.sil-stepper-wrap {
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

    .sil-stepper-wrap::-webkit-scrollbar {
        display: none; /* Chrome/Safari */
    }

.sil-stepper {
    display: flex;
    align-items: center;
    min-width: 720px; /* biar connector tidak kepotong; scroll di mobile */
    gap: 0;
}

.sil-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    gap: .35rem;
}

.sil-dot {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #adb5bd;
    position: relative;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .75);
}

    /* dot state (baru) */
    .sil-dot.dot-done {
        background: #198754;
    }
    /* success */
    .sil-dot.dot-pending {
        background: #ffc107;
    }
    /* warning */
    .sil-dot.dot-revisi {
        background: #0dcaf0;
    }
    /* info */
    .sil-dot.dot-reject {
        background: #dc3545;
    }
    /* danger */
    /* tambahan state opsional */
    .sil-dot.dot-partial {
        background: #6f42c1;
    }
    /* purple (partial SP/SD) */
    .sil-dot.dot-idpplan {
        background: #0d6efd;
    }
    /* primary (Plan Approve Kaprodi) */
    .sil-dot.dot-idpevd {
        background: #20c997;
    }
    /* teal (Evidence Approve Kaprodi) */
    .sil-dot.dot-draft {
        background: #6c757d;
    }
    /* secondary */
    .sil-dot.dot-none,
    .sil-dot.dot-todo {
        background: #adb5bd;
    }
    /* muted */

    /* alias lama (agar tidak rusak kalau masih ada) */
    .sil-dot.dot-current {
        background: #ffc107;
    }

    .sil-dot.dot-warn {
        background: #0dcaf0;
    }

    .sil-dot.dot-bad {
        background: #dc3545;
    }

    /* optional ring highlight untuk pending/current */
    .sil-dot.dot-current::after,
    .sil-dot.dot-pending::after {
        content: "";
        position: absolute;
        inset: -4px;
        border-radius: 999px;
        border: 2px solid rgba(255, 193, 7, .35);
    }

.sil-line {
    flex: 1;
    height: 6px;
    border-radius: 999px;
    background: #dee2e6;
    margin: 0 .35rem;
}

    .sil-line.line-done {
        background: #198754;
    }

    .sil-line.line-pending {
        background: #ffc107;
    }

    .sil-line.line-revisi {
        background: #0dcaf0;
    }

    .sil-line.line-reject {
        background: #dc3545;
    }

    .sil-line.line-partial {
        background: #6f42c1;
    }

    .sil-line.line-idpplan {
        background: #0d6efd;
    }

    .sil-line.line-idpevd {
        background: #20c997;
    }

    .sil-line.line-todo {
        background: #dee2e6;
    }

.sil-label {
    font-size: .85rem;
    line-height: 1.1;
    color: #6c757d;
    white-space: nowrap;
}

    .sil-label.label-done {
        color: #198754;
        font-weight: 600;
    }

    .sil-label.label-pending {
        color: #b58100;
        font-weight: 700;
    }

    .sil-label.label-revisi {
        color: #0aa2c0;
        font-weight: 700;
    }

    .sil-label.label-reject {
        color: #dc3545;
        font-weight: 700;
    }

    .sil-label.label-partial {
        color: #6f42c1;
        font-weight: 700;
    }

    .sil-label.label-idpplan {
        color: #0d6efd;
        font-weight: 700;
    }

    .sil-label.label-idpevd {
        color: #20c997;
        font-weight: 700;
    }

    /* alias lama */
    .sil-label.label-current {
        color: #b58100;
        font-weight: 700;
    }

    .sil-label.label-warn {
        color: #0aa2c0;
        font-weight: 700;
    }

    .sil-label.label-bad {
        color: #dc3545;
        font-weight: 700;
    }
