/* UNIVERSAL */
body {
    box-sizing: border-box;
    font-family: "SF Pro Display", sans-serif;
    margin: 0;
    padding: 0;
    overflow-y: hidden;
    overflow-x: hidden;
    touch-action: pan-y; /* Izinkan vertical scroll pada child elements */
}
.border-bottom-grey {
    border-bottom: 1px solid #d9d9d9;
}
.mb-12 {
    margin-bottom: 12px;
}
.rotate-90 {
    transform: rotate(90deg);
}
/* END UNIVERSAL */
.header {
    display: flex;
    align-items: center;
    box-shadow: 0px 4px 4px 0px rgba(195, 195, 195, 0.25);
    height: 65px;
    width: 100%;
    margin-bottom: 1rem;
    padding: 0 1rem;
}
.header .btn-link {
    outline: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: none;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    column-gap: 8px;
    padding: 0 4px;
    border-radius: 4px;
}
.header .btn-link span {
    font-weight: 400;
    color: #333;
    font-size: 17px;
    line-height: 22px;
}
.header .btn-link:active {
    background-color: rgba(195, 195, 195, 0.25);
}
.body {
    padding: 10px 1rem;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    position: relative;
    height: calc(90dvh - 8px);
}
.body .text-header {
    font-weight: 600;
    font-size: 17px;
    line-height: 22px;
    letter-spacing: -0.43px;
    margin-left: 1rem;
}
.body .form-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 50px;
}
.body .form-group .label-container,
.body .button-group .top-content .label-container {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding-left: 1rem;
}
.body .form-group .label-container .label,
.body .button-group .top-content .label-container .label {
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -0.23px;
}
.body .form-group .label-container .asterisk-icon,
.body .button-group .top-content .label-container .asterisk-icon {
    position: absolute;
    top: 0;
    right: 0;
    color: #ff0000;
    font-size: 12px;
    transform: translate(6px, -3px);
}
.body .form-group .input-container .btn-link {
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -0.23px;
    color: #999999;
    display: flex;
    align-items: center;
    outline: none;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s ease;
}
.body .button-group {
    display: flex;
    flex-direction: column;
}
.body .button-group .top-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 50px;
}
.body .button-group .top-content .btn-secondary {
    color: #fff;
    outline: none;
    border: none;
    font-weight: 400;
    font-size: 11px;
    line-height: 13px;
    letter-spacing: 0.06px;
    text-decoration: none;
    background-color: #007aff;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 76px;
    height: 25px;
    border-radius: 100px;
    gap: 4px;
}
.body .button-group .top-content .btn-secondary:active {
    background-color: #0066d6;
}
.body .button-group .list-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.body .button-group #list-dokumen.list-content {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 32dvh;
}
.body .button-group #list-dokumen.list-content .list-item {
    position: relative;
    display: flex;
    align-items: center;
    box-shadow: 0px 4px 4px 0px rgba(195, 195, 195, 0.25);
    padding: 6px 1rem;
}
.body .button-group #list-dokumen.list-content .list-item .list-label {
    display: flex;
    flex-direction: column;
    flex: 1;
    margin-left: 12px;
}
/* prettier-ignore */
.body .button-group #list-dokumen.list-content .list-item .list-label .title-label {
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: -0.43px;
}
/* prettier-ignore */
.body .button-group #list-dokumen.list-content .list-item .list-label .subtitle-label {
    font-weight: 400;
    font-size: 12px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: rgba(60, 60, 67, 0.6);
}
/* prettier-ignore */
.body .button-group #list-dokumen.list-content .list-item .btn-icon {
    outline: none;
    border: none;
    background: none;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    width: 20px;
    align-self: flex-end;
}
.body .button-group #list-dokumen.list-content .list-item .progress-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    width: 100%;
    background-color: #dee1e6;
    border-radius: 100px;
    overflow: hidden;
}
/* prettier-ignore */
.body .button-group #list-dokumen.list-content .list-item .progress-bar .progress-fill {
    height: 100%;
    background-color: rgba(255, 164, 27, 1);
    border-radius: 100px;
    transition: width 0.3s ease;
}
.body .footer {
    position: absolute;
    bottom: 5dvh;
    left: 0;
    right: 0;
    width: 100%;
    height: 50px;
    padding: 0 2rem;
    z-index: 10;
}
.body .footer .btn-primary {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 164, 27, 1);
    color: #333;
    border-radius: 12px;
    border: 1px solid rgba(255, 164, 27, 1);
}
.body .footer .btn-primary:active {
    background-color: #cc7a00 !important;
    border-color: #cc7a00 !important;
}
.body .footer .btn-primary:disabled {
    background-color: #cc7a00 !important;
    border-color: #cc7a00 !important;
}
.body .button-group #list-transportasi.list-content {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 32dvh;
}
.body .button-group #list-transportasi.list-content .list-item {
    display: flex;
    width: 100%;
    height: fit-content;
    box-shadow: 0px 4px 4px 0px rgba(195, 195, 195, 0.25);
    padding: 6px 0 6px 1rem;
    gap: 8px;
}
.body .button-group #list-transportasi.list-content .list-item .item-label {
    flex: 1;
    display: flex;
    flex-direction: column;
}
/* prettier-ignore */
.body .button-group #list-transportasi.list-content .list-item .item-label .title-label {
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #000;
}
/* prettier-ignore */
.body .button-group #list-transportasi.list-content .list-item .item-label .subtitle-label {
    font-weight: 400;
    font-size: 12px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #000;
}
.body .button-group #list-transportasi.list-content .item-value {
    font-weight: 600;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #ffa41b;
}
.body .button-group #list-transportasi.list-content .item-action .btn-icon {
    outline: none;
    border: none;
    background: none;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    width: 20px;
}
.body .button-group #list-perdiem.list-content {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 32dvh;
}
.body .button-group #list-perdiem.list-content .list-item {
    display: flex;
    width: 100%;
    height: fit-content;
    box-shadow: 0px 4px 4px 0px rgba(195, 195, 195, 0.25);
    padding: 6px 0 6px 1rem;
    gap: 8px;
}
.body .button-group #list-perdiem.list-content .list-item .item-label {
    flex: 1;
    display: flex;
    flex-direction: column;
}
/* prettier-ignore */
.body .button-group #list-perdiem.list-content .list-item .item-label .title-label {
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #000;
}
/* prettier-ignore */
.body .button-group #list-perdiem.list-content .list-item .item-label .subtitle-label {
    font-weight: 400;
    font-size: 12px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #000;
}
.body .button-group #list-perdiem.list-content .item-value {
    font-weight: 600;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #ffa41b;
}
.body .button-group #list-perdiem.list-content .item-action .btn-icon {
    outline: none;
    border: none;
    background: none;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    width: 20px;
}
#form-offcanvas {
    border-radius: 30px 30px 0 0;
    min-height: 30dvh;
}
#form-offcanvas h5 {
    font-weight: 600;
    font-size: 20px;
    line-height: 25px;
    letter-spacing: -0.45px;
}
#form-offcanvas .offcanvas-body {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    overflow: hidden;
}
#form-offcanvas .offcanvas-body .form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
#form-offcanvas .offcanvas-body .form-group input {
    border: 1px solid rgba(229, 242, 255, 1);
    background-color: rgba(229, 242, 255, 1);
    font-weight: 400;
    font-size: 17px;
    line-height: 22px;
    letter-spacing: -0.43px;
    color: #333;
    padding: 20px 1rem;
}
#form-offcanvas .offcanvas-body .form-group .counter {
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0px;
    color: rgba(0, 0, 0, 0.3);
    padding-left: 0.1rem;
}
#form-offcanvas .offcanvas-body .btn-primary {
    width: 100%;
    height: 46px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 164, 27, 1);
    color: #333;
    border-radius: 6px;
    border: 1px solid rgba(255, 164, 27, 1);
    margin-top: 36px;
}
#form-offcanvas .offcanvas-body .btn-primary:active {
    background-color: #cc7a00 !important;
    border-color: #cc7a00 !important;
}
.alert-primary {
    background-color: rgba(255, 164, 27, 1);
    border-color: rgba(255, 164, 27, 1);
    position: fixed;
    transform: translateX(-25%);
    top: 60px;
    left: 30%;
    right: 0;
    z-index: 9999;
    border-radius: 10px;
}
