/*
|--------------------------------------------------------------------------
| RESET
|--------------------------------------------------------------------------
*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    font-size:16px;

    scroll-behavior:smooth;

}

body.sbto-mobile{

    background:#f5f6f8;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

    color:#222;

    line-height:1.4;

}

/*
|--------------------------------------------------------------------------
| CONTAINER
|--------------------------------------------------------------------------
*/

.sbto-container{

    max-width:520px;

    margin:auto;

    padding:15px;

}

/*
|--------------------------------------------------------------------------
| HEADER
|--------------------------------------------------------------------------
*/

.sbto-header{

    background:#fff;

    border-radius:18px;

    padding:20px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:15px;

    box-shadow:
        0 4px 15px rgba(0,0,0,.05);

}

.sbto-order-no{

    font-size:22px;

    font-weight:700;

}

.sbto-order-status{

    margin-top:6px;

    color:#6b7280;

    font-size:15px;

}

.sbto-share{

    width:46px;

    height:46px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#7c3aed;

    color:#fff;

    text-decoration:none;

    font-size:22px;

}

/*
|--------------------------------------------------------------------------
| CARD
|--------------------------------------------------------------------------
*/

.sbto-card{

    background:#fff;

    border-radius:18px;

    padding:18px;

    margin-bottom:15px;

    box-shadow:

        0 3px 12px rgba(0,0,0,.04);

}

.sbto-card-title{

    font-size:18px;

    font-weight:700;

    margin-bottom:15px;

}

/*
|--------------------------------------------------------------------------
| SUMMARY
|--------------------------------------------------------------------------
*/

.sbto-summary{

    display:grid;

    grid-template-columns:

        repeat(3,1fr);

    gap:10px;

    margin-bottom:15px;

}

.sbto-summary>div{

    background:#fff;

    border-radius:16px;

    text-align:center;

    padding:16px;

    box-shadow:

        0 3px 12px rgba(0,0,0,.05);

}

.sbto-summary strong{

    display:block;

    font-size:24px;

    margin-bottom:5px;

}

/*
|--------------------------------------------------------------------------
| PROGRESS
|--------------------------------------------------------------------------
*/

.sbto-progress-title{

    font-size:15px;

    margin-bottom:8px;

}

.sbto-progress-number{

    font-size:26px;

    font-weight:bold;

    margin-bottom:12px;

}

.sbto-progress{

    width:100%;

    height:14px;

    border-radius:30px;

    overflow:hidden;

    background:#ececec;

}

.sbto-progress-fill{

    height:100%;

    border-radius:30px;

    background:#7c3aed;

    transition:.3s;

}

/*
|--------------------------------------------------------------------------
| CUSTOMER
|--------------------------------------------------------------------------
*/

.sbto-customer-name{

    font-size:20px;

    font-weight:700;

    margin-bottom:10px;

}

.sbto-phone{

    margin-bottom:8px;

    color:#444;

    font-size:15px;

}

.sbto-address{

    color:#666;

    line-height:1.6;

    font-size:14px;

}

/*
|--------------------------------------------------------------------------
| ITEM CARD
|--------------------------------------------------------------------------
*/

.sbto-card-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:15px;

}

.sbto-item{

    display:flex;

    align-items:center;

    gap:15px;

    padding:16px 0;

    border-bottom:1px solid #ececec;

    transition:.25s;

}

.sbto-item:last-child{

    border-bottom:none;

}

.sbto-item:hover{

    background:#fafafa;

}

.sbto-item.picked{

    background:#ecfdf5;

}

/*
|--------------------------------------------------------------------------
| IMAGE
|--------------------------------------------------------------------------
*/

.sbto-item-image{

    width:78px;

    flex-shrink:0;

}

.sbto-item-image img{

    width:78px;

    height:78px;

    object-fit:cover;

    border-radius:12px;

    border:1px solid #eee;

}

/*
|--------------------------------------------------------------------------
| ITEM INFO
|--------------------------------------------------------------------------
*/

.sbto-item-info{

    flex:1;

}

.sbto-item-name{

    font-size:17px;

    font-weight:700;

    margin-bottom:8px;

}

.sbto-item-sku,

.sbto-item-qty,

.sbto-item-location{

    color:#666;

    font-size:14px;

    margin-bottom:5px;

}

/*
|--------------------------------------------------------------------------
| BADGE
|--------------------------------------------------------------------------
*/

.sbto-badge{

    display:inline-block;

    margin-top:8px;

    padding:5px 12px;

    border-radius:30px;

    font-size:12px;

    font-weight:700;

}

.sbto-badge.success{

    background:#dcfce7;

    color:#15803d;

}

.sbto-badge.warning{

    background:#fef3c7;

    color:#b45309;

}

.sbto-badge.error{

    background:#fee2e2;

    color:#dc2626;

}

/*
|--------------------------------------------------------------------------
| CHECKBOX
|--------------------------------------------------------------------------
*/

.sbto-check{

    width:48px;

    display:flex;

    justify-content:center;

    align-items:center;

}

.sbto-item-check{

    width:28px;

    height:28px;

    cursor:pointer;

}

/*
|--------------------------------------------------------------------------
| HISTORY
|--------------------------------------------------------------------------
*/

.sbto-history{

    padding:12px 0;

    border-bottom:1px solid #eee;

}

.sbto-history:last-child{

    border-bottom:none;

}

.sbto-history-time{

    font-size:13px;

    color:#999;

    margin-bottom:5px;

}

.sbto-history-message{

    font-size:15px;

    font-weight:600;

}

.sbto-empty{

    color:#999;

    text-align:center;

    padding:25px 0;

}

/*
|--------------------------------------------------------------------------
| CUSTOMER
|--------------------------------------------------------------------------
*/

.sbto-customer-name{

    font-size:20px;

    font-weight:700;

    margin-bottom:10px;

}

.sbto-phone{

    margin-bottom:8px;

    color:#444;

    font-size:15px;

}

.sbto-address{

    color:#666;

    line-height:1.6;

    font-size:14px;

}

/*
|--------------------------------------------------------------------------
| ITEM CARD
|--------------------------------------------------------------------------
*/

.sbto-card-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:15px;

}

.sbto-item{

    display:flex;

    align-items:center;

    gap:15px;

    padding:16px 0;

    border-bottom:1px solid #ececec;

    transition:.25s;

}

.sbto-item:last-child{

    border-bottom:none;

}

.sbto-item:hover{

    background:#fafafa;

}

.sbto-item.picked{

    background:#ecfdf5;

}

/*
|--------------------------------------------------------------------------
| IMAGE
|--------------------------------------------------------------------------
*/

.sbto-item-image{

    width:78px;

    flex-shrink:0;

}

.sbto-item-image img{

    width:78px;

    height:78px;

    object-fit:cover;

    border-radius:12px;

    border:1px solid #eee;

}

/*
|--------------------------------------------------------------------------
| ITEM INFO
|--------------------------------------------------------------------------
*/

.sbto-item-info{

    flex:1;

}

.sbto-item-name{

    font-size:17px;

    font-weight:700;

    margin-bottom:8px;

}

.sbto-item-sku,

.sbto-item-qty,

.sbto-item-location{

    color:#666;

    font-size:14px;

    margin-bottom:5px;

}

/*
|--------------------------------------------------------------------------
| BADGE
|--------------------------------------------------------------------------
*/

.sbto-badge{

    display:inline-block;

    margin-top:8px;

    padding:5px 12px;

    border-radius:30px;

    font-size:12px;

    font-weight:700;

}

.sbto-badge.success{

    background:#dcfce7;

    color:#15803d;

}

.sbto-badge.warning{

    background:#fef3c7;

    color:#b45309;

}

.sbto-badge.error{

    background:#fee2e2;

    color:#dc2626;

}

/*
|--------------------------------------------------------------------------
| CHECKBOX
|--------------------------------------------------------------------------
*/

.sbto-check{

    width:48px;

    display:flex;

    justify-content:center;

    align-items:center;

}

.sbto-item-check{

    width:28px;

    height:28px;

    cursor:pointer;

}

/*
|--------------------------------------------------------------------------
| HISTORY
|--------------------------------------------------------------------------
*/

.sbto-history{

    padding:12px 0;

    border-bottom:1px solid #eee;

}

.sbto-history:last-child{

    border-bottom:none;

}

.sbto-history-time{

    font-size:13px;

    color:#999;

    margin-bottom:5px;

}

.sbto-history-message{

    font-size:15px;

    font-weight:600;

}

.sbto-empty{

    color:#999;

    text-align:center;

    padding:25px 0;

}

/*
|--------------------------------------------------------------------------
| MOBILE
|--------------------------------------------------------------------------
*/

@media (max-width:768px){

    .sbto-container{

        padding:12px;

    }

    .sbto-header{

        padding:16px;

    }

    .sbto-order-no{

        font-size:20px;

    }

    .sbto-summary{

        grid-template-columns:1fr;

    }

    .sbto-item{

        gap:12px;

    }

    .sbto-item-image{

        width:64px;

    }

    .sbto-item-image img{

        width:64px;

        height:64px;

    }

    .sbto-item-name{

        font-size:16px;

    }

}

/*
|--------------------------------------------------------------------------
| PICK BUTTON
|--------------------------------------------------------------------------
*/

.sbto-pick-btn{

    width:100%;

    height:44px;

    border:none;

    border-radius:12px;

    margin-top:10px;

    background:#f59e0b;

    color:#fff;

    font-size:15px;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

.sbto-pick-btn:hover{

    opacity:.9;

}

.sbto-item.picked .sbto-pick-btn{

    background:#16a34a;

}

/*
|--------------------------------------------------------------------------
| HOVER
|--------------------------------------------------------------------------
*/

.sbto-btn:hover{

    opacity:.9;

}

.sbto-btn:active{

    transform:scale(.96);

}

.sbto-item{

    transition:

        background .25s,

        transform .25s;

}

.sbto-item:hover{

    transform:translateY(-2px);

}

/*
|--------------------------------------------------------------------------
| PRINT
|--------------------------------------------------------------------------
*/

@media print{

    body{

        background:#fff;

    }

    .sbto-footer,

    .sbto-share,

    .sbto-modal,

    #sbto-toast,

    #sbto-loading{

        display:none !important;

    }

    .sbto-card{

        box-shadow:none;

        border:1px solid #ddd;

    }

    .sbto-container{

        max-width:100%;

        padding:0;

    }

}

/*
|--------------------------------------------------------------------------
| SCROLLBAR
|--------------------------------------------------------------------------
*/

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-thumb{

    background:#bbb;

    border-radius:20px;

}

::-webkit-scrollbar-track{

    background:#eee;

}

/*
|--------------------------------------------------------------------------
| DARK MODE
|--------------------------------------------------------------------------
*/

@media (prefers-color-scheme:dark){

    body.sbto-mobile{

        background:#0f172a;

        color:#fff;

    }

    .sbto-card,

    .sbto-summary>div,

    .sbto-header,

    .sbto-footer,

    .sbto-modal-box{

        background:#1e293b;

        color:#fff;

    }

    .sbto-item{

        border-bottom:1px solid #334155;

    }

    .sbto-progress{

        background:#334155;

    }

}

/*
|--------------------------------------------------------------------------
| ANIMATION
|--------------------------------------------------------------------------
*/

@keyframes sbtoFade{

    from{

        opacity:0;

        transform:translateY(10px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

.sbto-card{

    animation:sbtoFade .35s ease;

}

.sbto-item{

    animation:sbtoFade .25s ease;

}

/*
|--------------------------------------------------------------------------
| UTILITIES
|--------------------------------------------------------------------------
*/

.text-center{

    text-align:center;

}

.hidden{

    display:none !important;

}

.w-100{

    width:100%;

}

.mt-10{

    margin-top:10px;

}

.mb-10{

    margin-bottom:10px;

}

/*
|--------------------------------------------------------------------------
| END
|--------------------------------------------------------------------------
*/

.sbto-track-row{

display:flex;

gap:14px;

padding:18px 0;

border-bottom:1px solid #ececec;

align-items:flex-start;

}

.sbto-track-row:last-child{

border-bottom:none;

}

.sbto-track-icon{

font-size:18px;

width:24px;

margin-top:2px;

}

.sbto-track-content{

flex:1;

}

.sbto-track-title{

font-size:16px;

font-weight:600;

color:#111827;

}

.sbto-track-desc{

margin-top:4px;

font-size:13px;

color:#6b7280;

}

.sbto-track-row.completed .sbto-track-title{

color:#16a34a;

}

.sbto-track-row.current .sbto-track-title{

color:#7c3aed;

font-weight:700;

}

.sbto-next{

display:block;

width:100%;

height:48px;

margin-top:18px;

border:none;

border-radius:12px;

background:#111827;

color:#fff;

font-weight:700;

cursor:pointer;

}

/*----------------------------------
Action Card
-----------------------------------*/

.sbto-action-card{

margin-top:24px;

padding:22px;

background:#F0FDF4;

border:1px solid #BBF7D0;

border-radius:18px;

display:flex;

flex-direction:column;

gap:18px;

}

.sbto-action-icon{

width:56px;

height:56px;

border-radius:50%;

background:#DCFCE7;

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

}

.sbto-action-title{

font-size:20px;

font-weight:700;

color:#166534;

}

.sbto-action-desc{

font-size:15px;

line-height:1.6;

color:#374151;

}

.sbto-next{

width:100%;

height:50px;

border:none;

border-radius:12px;

background:#16A34A;

color:#fff;

font-size:15px;

font-weight:700;

cursor:pointer;

transition:.25s;

}

.sbto-next:hover{

background:#15803D;

transform:translateY(-1px);

box-shadow:0 8px 20px rgba(22,163,74,.25);

}

.sbto-barcode{

color:#2563eb;

font-weight:700;

font-family:monospace;

margin:4px 0;

}

.barcode-block{

    margin:8px 0;

}

.barcode{

    width:180px;

    height:34px;

    display:block;

}

.barcode-text{

    margin-top:4px;

    font-size:12px;

    font-family:monospace;

    letter-spacing:1px;

    color:#555;

}

.sbto-items-toolbar{
    display:flex;
    justify-content:flex-end;
    margin-bottom:16px;
}

.sbto-check-all{
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    font-weight:600;
    color:#333;
}

.sbto-check-all input{
    width:18px;
    height:18px;
}