.kpi {
    text-align: center;
    padding: 15px;
}

.kpi-value {
    font-size: 2rem !important;
    font-weight: 700 !important;
}


.risk-low{
    background:#198754;
}

.risk-medium{
    background:#fd7e14;
}

.risk-high{
    background:#dc3545;
}

.issue-open{
    background:#dc3545;
}

.issue-progress{
    background:#0d6efd;
}

.issue-close{
    background:#198754;
}


.status-ready{
    background:#0d6efd;
}

.status-shipped{
    background:#fd7e14;
}

.status-delivered{
    background:#198754;
}

.status-delay{
    background:#dc3545;
}

.timeline{
    border-left:3px solid #0d6efd;
    padding-left:15px;
}


.timeline-item{
    border-left:3px solid #0d6efd;
    padding-left:15px;
    margin-bottom:20px;
}



.photo-box{
    border-radius:12px;
    overflow:hidden;
    position:relative;
}

.photo-box img{
    width:100%;
    height:160px;
    object-fit:cover;
    transition:0.3s;
}

.photo-box:hover img{
    transform:scale(1.05);
}

.photo-label{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    background:rgba(0,0,0,0.6);
    color:#fff;
    font-size:12px;
    padding:5px;
}

.section-title{
    font-weight:600;
}


.setting-icon{
    width:50px;
    height:50px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    color:white;
}
