*{box-sizing:border-box}

body{
    margin:0;
    font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    background:#eef3fb;
    color:#002b6c;
    overflow-x:hidden;
    font-size:14px;
    letter-spacing:-0.1px;
}

.app{
    display:block;
    min-height:100vh;
}

.side{
    width:300px;
    background:#fff;
    padding:18px 18px 220px 18px;
    box-shadow:2px 0 10px #d9e2f2;
    position:fixed !important;
    top:0;
    left:0;
    height:100vh;
    height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
    transform:translateX(-110%);
    transition:.25s ease;
    z-index:99999;
}

.side.show,
.menu-panel.show{
    transform:translateX(0);
}

.main{
    margin-left:0 !important;
    width:100%;
    flex:1;
}

.brand{
    display:flex;
    gap:10px;
    align-items:center;
    font-size:25px;
    font-weight:800;
    margin-bottom:10px;
    color:#00327a;
}

.brand-logo{
    width:42px;
    height:42px;
    object-fit:cover;
    border-radius:8px;
    background:#fff;
}

.side a{
    display:block;
    padding:12px 14px;
    color:#00358a;
    text-decoration:none;
    border-radius:8px;
    font-weight:700;
    margin:4px 0;
}

.side a:hover{
    background:#eef3ff;
}

.side hr{
    border:0;
    border-top:1px solid #e1e8f5;
}

.top{
    min-height:64px;
    background:#fff;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    padding:10px 25px;
    box-shadow:0 2px 8px #dce4f2;
    position:sticky;
    top:0;
    z-index:1000;
}

.top strong{
    font-size:20px;
    font-weight:800;
    letter-spacing:-0.4px;
    color:#0f172a;
}

.content{
    padding:24px;
}

.grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:18px;
}

.grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.card,.form{
    background:#fff;
    border-radius:12px;
    padding:20px;
    box-shadow:0 4px 14px rgba(15,47,107,.08);
    margin-bottom:18px;
    color:#0f172a;
}

.card h3,
.form h3{
    font-size:18px;
    font-weight:800;
    letter-spacing:-0.3px;
    color:#0f172a;
}

.dashboard-main .card div:first-child,
.card > div:first-child{
    font-weight:700;
    color:#475569;
}

.metric{
    font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    font-size:30px;
    font-weight:900;
    letter-spacing:-0.8px;
    color:#0f2f6b;
}

.muted{
    color:#6b7da6;
    font-size:13px;
}

.cols{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

label{
    display:block;
    margin:10px 0 6px;
    font-weight:700;
    font-size:13px;
}

input,select,textarea{
    width:100%;
    padding:10px;
    border:1px solid #cbd5e1;
    border-radius:6px;
    background:#fff;
    font-family:inherit;
}

textarea{
    min-height:80px;
}

.btn{
    display:inline-block;
    border:0;
    background:#1267f1;
    color:white;
    padding:9px 14px;
    border-radius:6px;
    text-decoration:none;
    cursor:pointer;
    font-weight:800;
    font-family:inherit;
}

.btn.green{background:#0b8f55}
.btn.red{background:#d11f37}
.btn.cyan{background:#06b6d4}
.btn.gray{background:#64748b}
.btn.small{padding:6px 9px;font-size:12px}

.table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}

.table th,.table td{
    border:1px solid #e2e8f0;
    padding:10px;
    font-size:13px;
    text-align:left;
    vertical-align:top;
}

.table th{
    background:#f8fafc;
    font-weight:800;
    color:#0f172a;
}

.table td{
    color:#334155;
}

.badge{
    padding:4px 8px;
    border-radius:20px;
    background:#94a3b8;
    color:white;
    font-size:12px;
}

.badge.validated,.badge.active,.badge.delivered,.badge.credited{background:#059669}
.badge.pending{background:#64748b}
.badge.processing,.badge.shipped{background:#2563eb}
.badge.rejected,.badge.cancelled{background:#dc2626}

.alert{
    background:#dcfce7;
    border:1px solid #86efac;
    padding:12px;
    border-radius:6px;
    margin-bottom:15px;
    color:#166534;
}

.alert.error,
.alert-error{
    background:#fee2e2 !important;
    border:1px solid #ef4444 !important;
    color:#991b1b !important;
    padding:12px !important;
    border-radius:6px !important;
    margin-bottom:15px !important;
    font-weight:700 !important;
}

.login{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100vh;
}

.login-card{
    background:#fff;
    width:380px;
    padding:30px;
    border-radius:10px;
    box-shadow:0 8px 30px #c6d3e8;
}

.login-card h1{
    text-align:center;
}

.login-logo{
    display:block;
    width:110px;
    height:110px;
    object-fit:cover;
    margin:0 auto 12px;
    border-radius:14px;
}

.filter{
    display:flex;
    gap:10px;
    align-items:end;
    flex-wrap:wrap;
    background:#e0f2fe;
    padding:15px;
    border-radius:6px;
    margin-bottom:15px;
}

.filter input{
    padding:9px;
    border:1px solid #d8e1ec;
    border-radius:8px;
}

.pagination{
    margin:18px 0;
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}

.pagination a{
    padding:7px 11px;
    border:1px solid #ddd;
    border-radius:8px;
    text-decoration:none;
    color:#222;
}

.pagination a.active{
    background:#111;
    color:white;
    font-weight:800;
}

.top-right{
    display:flex;
    align-items:center;
    gap:15px;
}

.notif{
    text-decoration:none;
    color:#002b6b;
    font-weight:700;
}

.top-date{
    color:#002b6b;
    font-weight:600;
}

.top-profile{
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
}

.profile-name{
    font-weight:700;
    color:#002b6b;
}

.top-profile button{
    border:none;
    background:none;
    cursor:pointer;
    font-size:12px;
    color:#002b6b;
}

.profile-dropdown{
    display:none;
    position:absolute;
    right:0;
    top:35px;
    min-width:250px;
    background:#fff;
    border-radius:10px;
    border:1px solid #ddd;
    box-shadow:0 5px 20px rgba(0,0,0,.15);
    overflow:hidden;
    z-index:9999;
}

.profile-dropdown.show{
    display:block;
}

.profile-dropdown a{
    display:block;
    padding:12px 15px;
    text-decoration:none;
    color:#002b6b;
}

.profile-dropdown a:hover{
    background:#f5f7ff;
}

.profile-dropdown hr{
    margin:0;
    border:none;
    border-top:1px solid #eee;
}

.menu-group{
    margin-bottom:8px;
}

.menu-header{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px;
}

.menu-title{
    flex:1 !important;
    display:block;
    padding:12px 14px;
    color:#00358a !important;
    text-decoration:none !important;
    font-weight:800 !important;
    border-radius:8px;
    letter-spacing:-0.2px;
}

.menu-title:hover{
    background:#eef3ff;
}

.menu-arrow{
    cursor:pointer !important;
    padding:8px 10px !important;
    font-size:13px !important;
    font-weight:bold;
    color:#00358a;
    user-select:none;
}

.submenu{
    display:none !important;
    background:#ffffff;
    border-left:4px solid #1e63ff;
    margin:5px 0 10px 15px;
    padding:5px;
    border-radius:6px;
}

.submenu.open{
    display:block !important;
}

.submenu a{
    display:block !important;
    color:#000000 !important;
    font-weight:700 !important;
    padding:8px 10px !important;
    text-decoration:none !important;
    border-radius:6px;
    font-size:14px;
}

.submenu a:hover{
    background:#e9eefc !important;
    color:#000000 !important;
}

.form-group{
    margin-bottom:15px;
}

.form-group label{
    display:block;
    margin-bottom:5px;
    font-weight:600;
}

.form-group input{
    width:100%;
    padding:10px;
    border:1px solid #ccc;
    border-radius:6px;
}

.welcome-marquee{
    margin-top:20px;
    width:100%;
    overflow:hidden;
    border:2px solid #19a974;
    border-radius:12px;
    background:#f8fffb;
    padding:10px 0;
    white-space:nowrap;
}

.welcome-marquee span{
    display:inline-block;
    color:#008f5a;
    font-weight:700;
    font-size:15px;
    padding-left:100%;
    animation:defilement 18s linear infinite;
}

@keyframes defilement{
    0%{transform:translateX(0)}
    100%{transform:translateX(-100%)}
}

.promo-bar{
    display:flex;
    align-items:center;
    margin-bottom:18px;
    height:42px;
    background:#ffffff;
    border-radius:6px;
    overflow:hidden;
    box-shadow:0 2px 8px #dce4f2;
    border-left:6px solid #f59e0b;
}

.promo-label{
    background:#f59e0b;
    color:#fff;
    font-weight:800;
    padding:0 18px;
    height:100%;
    display:flex;
    align-items:center;
    z-index:2;
}

.promo-text{
    flex:1;
    overflow:hidden;
    white-space:nowrap;
    position:relative;
}

.promo-text marquee{
    font-weight:800;
    color:#002b6c;
    font-size:15px;
}

.menu-toggle{
    border:0;
    background:#eef3ff;
    color:#002b6c;
    padding:9px 14px;
    border-radius:10px;
    font-weight:800;
    cursor:pointer;
    font-family:inherit;
}

.menu-close{
    position:sticky;
    top:8px;
    float:right;
    border:0;
    background:#eef3ff;
    color:#002b6c;
    font-size:20px;
    border-radius:8px;
    padding:5px 10px;
    cursor:pointer;
    z-index:100000;
    font-family:inherit;
}

.menu-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.35);
    z-index:99998;
}

.menu-overlay.show{
    display:block;
}

.mobile-brand,
.mobile-top-brand{
    display:none !important;
}

.side::-webkit-scrollbar{
    width:7px;
}

.side::-webkit-scrollbar-thumb{
    background:#c7d2fe;
    border-radius:20px;
}

.side{
    scrollbar-width:thin;
}

@media(max-width:900px){
    .app{
        display:block !important;
    }

    .main{
        margin-left:0 !important;
        width:100% !important;
    }

    .side,
    .side.menu-panel{
        position:fixed !important;
        top:0 !important;
        left:0 !important;
        bottom:auto !important;
        width:300px !important;

        height:100vh !important;
        height:100dvh !important;
        max-height:100vh !important;
        max-height:100dvh !important;

        overflow-y:scroll !important;
        overflow-x:hidden !important;
        -webkit-overflow-scrolling:touch;

        padding:15px 15px 260px 15px !important;

        transform:translateX(-110%) !important;
        z-index:99999 !important;
        margin-top:0 !important;
    }

    .side.show,
    .side.menu-panel.show{
        transform:translateX(0) !important;
    }

    .top{
        position:sticky !important;
        top:0 !important;
        min-height:64px !important;
        height:auto !important;
        padding:10px !important;
        flex-wrap:wrap !important;
        gap:8px !important;
        z-index:1000 !important;
    }

    .top strong{
        font-size:18px;
    }

    .top-right{
        width:100% !important;
        display:flex !important;
        justify-content:space-between !important;
        align-items:center !important;
        flex-wrap:wrap !important;
    }

    .content{
        padding:12px !important;
    }

    .grid,
    .cols,
    .grid.two{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }

    .card,
    .form{
        width:100% !important;
        padding:14px !important;
        margin-bottom:12px !important;
    }

    .metric{
        font-size:22px !important;
    }

    .table{
        display:block !important;
        width:100% !important;
        overflow-x:auto !important;
        white-space:nowrap !important;
    }

    .promo-bar{
        width:100% !important;
        margin-bottom:12px !important;
    }

    .promo-label{
        font-size:12px !important;
        padding:0 10px !important;
    }

    .promo-text marquee{
        font-size:13px !important;
    }

    .brand{
        font-size:20px !important;
        padding-right:40px;
    }

    .brand-logo{
        width:35px;
        height:35px;
    }
}