:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#17243a;background:#f3f6fa}*{box-sizing:border-box}body{margin:0}.top{height:68px;background:#071a31;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:20px}.brand img{width:38px;height:38px;object-fit:contain}.account{display:flex;gap:18px;align-items:center;font-size:14px}.account form{margin:0}.linkbtn{background:none;border:0;color:#ffc83d;cursor:pointer;padding:0;font:inherit}.shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 68px)}aside{background:#0c223d;padding:22px 14px;display:flex;flex-direction:column;justify-content:space-between}aside nav{display:grid;gap:7px}aside nav a,.scan-link{padding:11px 13px;border-radius:10px;color:#c7d5e6;text-decoration:none}aside nav a:hover,aside nav a.active{background:#173858;color:#fff}.scan-link{color:#ffc83d;border:1px solid #385674;text-align:center}.content{padding:30px;max-width:1400px;width:100%;margin:0 auto}h1{margin:0 0 6px}.sub{color:#66748a;margin:0 0 24px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.card{background:#fff;border:1px solid #dde5ee;border-radius:14px;padding:20px;box-shadow:0 2px 10px rgba(13,35,61,.04)}.metric{font-size:32px;font-weight:800;margin-top:6px}.muted{color:#748197}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:18px 0}.btn{display:inline-block;border:0;border-radius:9px;background:#0d5eaa;color:#fff;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer}.btn.secondary{background:#e8eef5;color:#23364c}.btn.danger{background:#b52e3a}.btn.gold{background:#f0b420;color:#17243a}.tablewrap{overflow:auto;background:#fff;border:1px solid #dde5ee;border-radius:14px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #e7edf3;white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#68778b;background:#f8fafc}tr:last-child td{border-bottom:0}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800}.dot{width:8px;height:8px;border-radius:50%;background:#8a97a7}.status.online .dot{background:#25a45a}.status.offline .dot{background:#9aa6b5}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.formcard{max-width:760px}.field{display:grid;gap:6px;margin-bottom:15px}.field label{font-weight:700;font-size:14px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid #cdd8e4;border-radius:9px;background:#fff;font:inherit}.check{display:flex;align-items:center;gap:9px;margin:12px 0}.check input{width:18px;height:18px}.flash{padding:12px 14px;border-radius:10px;margin:0 0 18px}.flash.ok{background:#e5f6eb;color:#176536}.flash.error{background:#fde9eb;color:#922633}.codebox{font-size:34px;letter-spacing:.12em;font-weight:900;padding:20px;background:#071a31;color:#ffc83d;border-radius:12px;text-align:center}.loginbody{min-height:100vh;background:#071a31;display:grid;place-items:center;padding:20px}.login{width:min(430px,100%);background:#fff;border-radius:18px;padding:30px}.loginbrand{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-size:24px;font-weight:900}.loginbrand img{width:58px;height:58px}.err{background:#fde9eb;color:#922633;padding:10px;border-radius:8px;margin-bottom:15px}@media(max-width:800px){.shell{grid-template-columns:1fr}aside{display:none}.content{padding:18px}.cards,.grid2{grid-template-columns:1fr}.account span{display:none}}

.global{background:#101010}.admin-pill{background:#f0b420;color:#17243a;text-decoration:none;padding:7px 10px;border-radius:8px;font-weight:800}
.cards6{grid-template-columns:repeat(6,minmax(0,1fr))}.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#eef2f6;font-size:12px;font-weight:800}.badge.good{background:#e3f6e9;color:#176536}.badge.bad{background:#fde9eb;color:#922633}
.small{padding:6px 9px;font-size:12px}.compact{min-width:280px;margin-bottom:0}.toolbar select{padding:10px 12px;border:1px solid #cdd8e4;border-radius:9px;background:#fff}.tokenbox{margin-top:10px;padding:10px;background:#071a31;color:#ffc83d;border-radius:8px;word-break:break-all;font-family:monospace}.tokenrow{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e6ebf1;padding:10px 0}.biginput{font-size:24px!important;font-weight:700}.barcode-list{margin:0;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;min-width:220px}.field textarea{width:100%;min-height:100px;padding:11px 12px;border:1px solid #cdd8e4;border-radius:9px;font:inherit}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#eef2f6;padding:2px 5px;border-radius:5px}
@media(max-width:1200px){.cards6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.cards6{grid-template-columns:1fr 1fr}}

.badge.warn{background:#fff1c9;color:#7a5200}.attention-card{border-color:#f0b420!important;background:#fffaf0!important}.warning-box{background:#fff5d8;border:1px solid #f0b420;color:#5d4300}.barcode-preview{background:#fff;padding:8px;border:1px solid #dbe3ec;border-radius:8px;width:max-content;max-width:360px}.barcode-preview svg{display:block;max-width:330px;height:auto}.barcode-caption{text-align:center;color:#111;font-weight:800;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;margin-top:3px;letter-spacing:.08em}.location-code{font-size:16px;font-weight:800}.result.warn{border:1px solid #d9a631}


/* v5 customer + delivery UX */
a.card{color:inherit}
.card-link{
    text-decoration:none;
    transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease
}
.card-link:hover{
    transform:translateY(-2px);
    border-color:#b8cee2;
    box-shadow:0 8px 24px rgba(13,35,61,.10)
}
.complete-card{
    border-color:#8ccfa8!important;
    background:#f4fbf6!important
}
.clickable-row{cursor:pointer}
.clickable-row:hover td{background:#f7fbff}
.count-pill{
    display:inline-flex;
    min-width:28px;
    height:28px;
    padding:0 8px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#e7f0fa;
    color:#0d5eaa;
    font-weight:800
}
.wide-form{max-width:980px}
.form-grid-3{
    display:grid;
    grid-template-columns:.7fr 1.2fr 1.2fr;
    gap:16px
}
.diary-heading{justify-content:space-between}
.calendar-nav{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:12px;
    margin:20px 0
}
.calendar-nav h2{margin:0;text-align:center}
.calendar-nav .btn:last-child{justify-self:end}
.delivery-calendar{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px
}
.calendar-weekday{
    padding:8px 10px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#68778b;
    text-align:center
}
.calendar-day{
    min-height:120px;
    padding:12px;
    border:1px solid #dde5ee;
    border-radius:12px;
    background:#fff;
    color:#17243a;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    gap:8px;
    transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease
}
.calendar-day:not(.empty):hover{
    border-color:#9dbddb;
    box-shadow:0 7px 20px rgba(13,35,61,.08);
    transform:translateY(-1px)
}
.calendar-day.empty{
    background:transparent;
    border-color:transparent
}
.calendar-day.today{
    border:2px solid #f0b420
}
.calendar-day.has-deliveries{
    background:#f7fbff
}
.calendar-date{
    font-size:18px;
    font-weight:900
}
.calendar-count{
    margin-top:auto;
    font-weight:800;
    color:#0d5eaa
}
.calendar-add{
    margin-top:auto;
    color:#8290a3;
    font-size:13px
}
.delivery-cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px
}
.delivery-card,
.day-delivery-card{
    background:#fff;
    border:1px solid #dde5ee;
    border-radius:12px;
    padding:15px;
    color:#17243a;
    text-decoration:none
}
.delivery-card{
    display:flex;
    flex-direction:column;
    gap:5px
}
.day-delivery-card{
    display:grid;
    grid-template-columns:1.2fr 2fr auto;
    align-items:center;
    gap:18px
}
.day-delivery-card:hover,
.delivery-card:hover{
    border-color:#9dbddb;
    box-shadow:0 6px 18px rgba(13,35,61,.07)
}
.delivery-day-list{
    display:grid;
    gap:12px
}
.delivery-progress-mini{
    display:flex;
    gap:8px;
    flex-wrap:wrap
}
.delivery-progress-mini span{
    padding:7px 10px;
    border-radius:999px;
    background:#fff1c9;
    color:#755000;
    font-size:12px;
    font-weight:800
}
.delivery-progress-mini span.done{
    background:#e3f6e9;
    color:#176536
}
.delivery-status-cards{
    grid-template-columns:repeat(4,minmax(0,1fr))
}
.add-job-card{margin:20px 0}
.available-jobs{
    display:grid;
    gap:8px
}
.available-job{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border:1px solid #e1e8f0;
    border-radius:10px;
    padding:11px 12px
}
.available-job>a{
    display:flex;
    flex-direction:column;
    gap:3px;
    color:#17243a;
    text-decoration:none;
    flex:1
}
.available-job>a:hover strong{color:#0d5eaa}
.filter-links{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 12px
}
.filter-links a{
    padding:8px 11px;
    border-radius:999px;
    background:#e8eef5;
    color:#23364c;
    text-decoration:none;
    font-weight:700;
    font-size:13px
}
.filter-links a.active{
    background:#0d5eaa;
    color:#fff
}
.inline-form{display:inline}
.link-action{
    border:0;
    background:none;
    color:#0d5eaa;
    padding:0;
    text-decoration:underline;
    cursor:pointer;
    font:inherit
}
.empty-state{text-align:center;padding:40px}

@media(max-width:1050px){
    .delivery-calendar{grid-template-columns:repeat(7,minmax(90px,1fr));overflow:auto}
    .delivery-status-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
    .delivery-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
    .form-grid-3{grid-template-columns:1fr}
    .delivery-calendar{display:flex;overflow:auto;padding-bottom:8px}
    .calendar-weekday,.calendar-day.empty{display:none}
    .calendar-day{min-width:150px}
    .delivery-status-cards{grid-template-columns:1fr 1fr}
    .delivery-cards{grid-template-columns:1fr}
    .day-delivery-card{grid-template-columns:1fr}
}


/* v6 weights */
.weight-metric{font-size:28px!important;white-space:nowrap}
.delivery-card-end{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
@media(max-width:800px){.delivery-card-end{align-items:flex-start}}


/* v7 vehicles */
.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.row-actions form{margin:0}
.vehicle-summary{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #e2e8ef;
    line-height:1.65
}


/* v7.2 scheduling + exceptions */
.available-job.job-warning{
    border-color:#e9b94f;
    background:#fffaf0
}
.schedule-warning-text{
    color:#8a5a00!important;
    font-weight:700
}
.scheduled-toggle{
    align-self:end;
    margin-bottom:9px
}
.exception-banner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin:16px 0 24px;
    padding:14px 16px;
    border:1px solid #e4aa35;
    border-radius:12px;
    background:#fff8e9;
    color:#5d4100;
    text-decoration:none
}
.exception-banner:hover{
    border-color:#cb8d11;
    box-shadow:0 6px 18px rgba(93,65,0,.08)
}
.exception-days{
    color:#a33a25;
    font-weight:700
}
.exception-row td{
    vertical-align:middle
}


/* v7.3.1 advisory-only vehicle limits */
.capacity-advisory{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:0 0 20px;
    padding:13px 15px;
    border:1px solid #e1aa32;
    border-radius:11px;
    background:#fff8e8;
    color:#624500
}
.capacity-advisory strong{
    flex:0 0 auto
}
.capacity-pill{
    display:inline-flex;
    margin-left:8px;
    padding:3px 7px;
    border-radius:999px;
    background:#fff0c3;
    color:#7b5700;
    font-size:11px;
    font-weight:800;
    vertical-align:middle
}


/* v7.4 vehicle scanner config */
.vehicle-scanner-settings .check{
    align-items:flex-start
}
.vehicle-scanner-settings p{
    margin:8px 0 14px
}


/* v7.5 customer labels */
.label-setup-required{max-width:850px}
.label-config-value{font-size:21px;font-weight:800;margin-top:8px}
.label-job-mode{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.choice-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #dbe4ed;border-radius:12px;padding:14px;cursor:pointer;background:#fff}
.choice-card:has(input:checked){border-color:#0d5eaa;background:#f5faff}
.choice-card span{display:flex;flex-direction:column;gap:3px}
.choice-card small{color:#64748b}
.notice{padding:11px 13px;border-radius:10px;margin:10px 0 14px;border:1px solid #d6dee8}
.notice.neutral{background:#f6f8fb;color:#34455a}
.notice.ok{background:#edf9f1;border-color:#9ad0aa;color:#1f6336}
.notice.warn{background:#fff7e5;border-color:#e5b74a;color:#704d00}
.label-paper-preview{position:relative;width:min(100%,800px);aspect-ratio:100/37;border:1px solid #c9d4df;background:#fff;padding:10px;overflow:hidden;font-family:Arial,sans-serif;color:#000}
.label-preview-job{font-size:24px;font-weight:900;margin-bottom:5px}
.label-paper-preview>div:not(.label-preview-barcode):not(.label-preview-type):not(.label-preview-desc){font-size:14px;line-height:1.35}
.label-preview-type{position:absolute;left:40%;top:12%;font-weight:800;font-size:14px}
.label-preview-desc{position:absolute;left:40%;top:28%;font-size:13px;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.label-preview-barcode{position:absolute;left:2.5%;bottom:5%;display:flex;align-items:flex-end;gap:8px;max-width:92%}
.label-preview-barcode svg{height:44px;width:auto;max-width:76%}
.label-preview-barcode strong{font-size:12px;white-space:nowrap}
.zpl-box{width:100%;min-height:260px;font-family:Consolas,monospace;font-size:12px}
.vehicle-scanner-settings hr,.card hr{border:0;border-top:1px solid #e2e8ef;margin:18px 0}
@media(max-width:800px){.label-job-mode{grid-template-columns:1fr}.label-preview-type,.label-preview-desc{display:none}}


/* v7.5.1 label quantities */
.label-print-summary{
    margin:-2px 0 18px;
    padding:10px 12px;
    border-radius:10px;
    background:#f3f7fb;
    color:#38516b;
    font-weight:800
}
.label-preview-item-id{
    position:absolute;
    left:46%;
    top:39%;
    font-size:13px;
    font-weight:900;
    letter-spacing:.02em
}
.label-batch-print-card{
    display:grid;
    grid-template-columns:1fr minmax(280px,1fr);
    gap:20px;
    align-items:center;
    margin-bottom:18px
}
.label-batch-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
}
.label-batch-item .label-paper-preview{
    width:100%
}
@media(max-width:950px){
    .label-batch-grid{grid-template-columns:1fr}
    .label-batch-print-card{grid-template-columns:1fr}
}
@media(max-width:800px){
    .label-preview-item-id{display:none}
}


/* v7.6 frame packing details */
.packing-parts ul{margin:0;padding-left:18px}
.packing-parts li{margin:0 0 5px}
.packing-parts li:last-child{margin-bottom:0}
.packing-parts small{color:#6b7b8f}


/* v7.8 dashboard + navigation */
.dashboard-summary-cards{
    grid-template-columns:repeat(5,minmax(0,1fr))
}
.onwards-delivery-card{
    display:flex;
    flex-direction:column;
    gap:8px
}
.onwards-delivery-today{
    display:block;
    color:inherit;
    text-decoration:none
}
.onwards-delivery-today:hover .metric{
    color:#0d5eaa
}
.delivery-overdue-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:auto;
    padding:9px 10px;
    border:1px solid #e4aa35;
    border-radius:9px;
    background:#fff8e9;
    color:#6a4700;
    text-decoration:none;
    font-size:12px
}
.delivery-overdue-box:hover{
    border-color:#cb8d11
}
.delivery-overdue-box.clear{
    border-color:#b8ddc4;
    background:#f3fbf5;
    color:#176536
}
.outstanding-banner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin:16px 0 24px;
    padding:14px 16px;
    border:1px solid #e4aa35;
    border-radius:12px;
    background:#fff8e9;
    color:#5d4100;
    text-decoration:none
}
.outstanding-banner:hover{
    border-color:#cb8d11
}
.nav-toggle-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 18px;
    margin-bottom:18px
}
.nav-toggle{
    min-height:34px
}
@media(max-width:1200px){
    .dashboard-summary-cards{
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
}
@media(max-width:800px){
    .dashboard-summary-cards,
    .nav-toggle-grid{
        grid-template-columns:1fr
    }
    .outstanding-banner{
        align-items:flex-start;
        flex-direction:column
    }
}
