:root{
  --paper:#F5F5F1; --card:#fff; --ink:#22272B; --ink-soft:#5B6167;
  --line:#E4E4DE; --highway:#0E6B45; --highway-deep:#0A5436;
  --workzone:#E8842C; --workzone-soft:#FDF1E4; --paid-soft:#E7F2EC;
  --draft-soft:#EEEEEA; --blue-sign:#1B4F91; --neg:#B4432F;
  --radius:12px; --shadow:0 1px 2px rgba(34,39,43,.06),0 4px 14px rgba(34,39,43,.05);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Barlow',sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;}
.cond{font-family:'Barlow Condensed',sans-serif;}
a{color:var(--highway-deep);}

/* ===== top bar ===== */
.topbar{background:var(--ink);color:#fff;position:sticky;top:0;z-index:40;}
.topbar-in{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:10px 18px;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;}
.brand-mark{background:var(--highway);border:2px solid #fff;border-radius:6px;font-family:'Barlow Condensed';font-weight:700;font-size:14px;padding:3px 7px;letter-spacing:.05em;}
.brand-img{height:34px;width:auto;max-width:130px;object-fit:contain;display:block;background:transparent;border-radius:0;}
.brand-nm{font-family:'Barlow Condensed';font-weight:700;font-size:19px;letter-spacing:.03em;white-space:nowrap;}
.mainnav{display:flex;gap:4px;margin-left:auto;align-items:center;}
.mainnav a{color:rgba(255,255,255,.75);text-decoration:none;font-size:14px;font-weight:500;padding:7px 13px;border-radius:99px;}
.mainnav a.on{background:#fff;color:var(--ink);font-weight:600;}
.mainnav a:hover:not(.on){color:#fff;}
.mainnav .logout{opacity:.6;font-size:13px;}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:18px;border-radius:8px;padding:4px 12px;cursor:pointer;}

/* ===== layout ===== */
.wrap{max-width:1100px;margin:0 auto;padding:24px 18px 70px;}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.pagehead h1{font-family:'Barlow Condensed';font-weight:700;font-size:29px;}
.pagehead p{color:var(--ink-soft);font-size:14px;margin-top:2px;}
.actions{display:flex;gap:10px;flex-wrap:wrap;}

.btn{display:inline-block;font-family:'Barlow',sans-serif;font-weight:600;font-size:14px;border:none;border-radius:9px;padding:10px 17px;cursor:pointer;text-decoration:none;text-align:center;transition:background .15s;}
.btn.primary{background:var(--highway);color:#fff;}
.btn.primary:hover{background:var(--highway-deep);}
.btn.ghost{background:var(--card);border:1px solid var(--line);color:var(--ink);}
.btn.ghost:hover{border-color:var(--ink-soft);}
.btn.danger{background:#fff;border:1px solid var(--neg);color:var(--neg);}
.btn.sm{padding:6px 12px;font-size:13px;}

.shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-bottom:18px;}
.cut{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-decoration:none;color:var(--ink);font-size:13px;font-weight:600;box-shadow:var(--shadow);transition:border-color .15s, transform .1s;text-align:center;}
.cut:hover{border-color:var(--highway);}
.cut:active{transform:scale(.97);}
.cut .ic{font-size:21px;line-height:1;}
.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow);}
.stat .lbl{font-size:12.5px;color:var(--ink-soft);font-weight:500;margin-bottom:5px;}
.stat .val{font-family:'Barlow Condensed';font-weight:700;font-size:28px;line-height:1;}
.stat .sub{font-size:12px;color:var(--highway-deep);font-weight:600;margin-top:5px;}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px;}
.cardhead{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;}
.cardhead h2{font-family:'Barlow Condensed';font-weight:600;font-size:19px;}
.cardhead .hint{font-size:12.5px;color:var(--ink-soft);}
.cardbody{padding:18px;}

/* ===== tables (responsive: scroll on phone) ===== */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px;}
th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:10px 16px;border-bottom:1px solid var(--line);background:#FBFBF9;white-space:nowrap;}
td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
.money{font-family:'Barlow Condensed';font-weight:700;font-size:17px;white-space:nowrap;}
.muted{color:var(--ink-soft);font-size:13px;}
.neg{color:var(--neg);}
.right{text-align:right;}

/* ===== highway sign lane chip ===== */
.lane{display:inline-flex;align-items:stretch;border-radius:7px;overflow:hidden;border:1.5px solid #fff;box-shadow:0 0 0 1.5px var(--highway-deep),0 1px 3px rgba(0,0,0,.15);font-family:'Barlow Condensed';line-height:1;}
.lane .cities{background:var(--highway);color:#fff;padding:6px 11px 5px;font-weight:600;font-size:14.5px;letter-spacing:.03em;display:flex;align-items:center;gap:7px;white-space:nowrap;}
.lane .arr{opacity:.75;font-weight:500;}
.lane .mi{background:var(--highway-deep);color:#fff;padding:6px 9px 5px;font-weight:700;font-size:14.5px;display:flex;align-items:center;white-space:nowrap;}
.lane .mi small{font-size:10.5px;font-weight:500;margin-left:3px;opacity:.8;}
.lane.dead .cities{background:#6B7178;}
.lane.dead .mi{background:#565C63;}
.lane.dead{box-shadow:0 0 0 1.5px #565C63,0 1px 3px rgba(0,0,0,.15);}

/* ===== status chips ===== */
.status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:4px 11px;border-radius:99px;white-space:nowrap;}
.status .dot{width:7px;height:7px;border-radius:99px;}
.status.paid{background:var(--paid-soft);color:var(--highway-deep);}      .status.paid .dot{background:var(--highway);}
.status.processing{background:var(--workzone-soft);color:#A85B14;}       .status.processing .dot{background:var(--workzone);}
.status.sent{background:#E8EEF6;color:var(--blue-sign);}                 .status.sent .dot{background:var(--blue-sign);}
.status.draft{background:var(--draft-soft);color:var(--ink-soft);}       .status.draft .dot{background:#9AA0A6;}
.status.active{background:var(--paid-soft);color:var(--highway-deep);}   .status.active .dot{background:var(--highway);}
.status.terminated{background:var(--draft-soft);color:var(--ink-soft);}  .status.terminated .dot{background:#9AA0A6;}

.paytype{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:5px;white-space:nowrap;}
.paytype.mile{background:#E8EEF6;color:var(--blue-sign);}
.paytype.percent{background:#F3EAF8;color:#7B3FA0;}
.paytype.flat{background:var(--draft-soft);color:var(--ink-soft);}
.pay-summary{display:flex;align-items:center;gap:8px;background:#FBFBF9;border:1px solid var(--line);border-radius:9px;padding:10px 13px;font-size:13.5px;font-weight:500;min-height:41px;}
.pay-summary .lock{font-size:11px;color:var(--ink-soft);}

/* ===== forms ===== */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fld{display:flex;flex-direction:column;gap:5px;}
.fld.full{grid-column:1 / -1;}
.fld label{font-size:12.5px;font-weight:600;color:var(--ink-soft);}
.fld input,.fld select,.fld textarea{font-family:'Barlow',sans-serif;font-size:15px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;width:100%;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--highway);border-color:transparent;}
.formfoot{display:flex;justify-content:flex-end;gap:10px;padding-top:16px;}
.inline-note{font-size:12.5px;color:var(--ink-soft);}

/* ===== flash toast ===== */
.flash{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:13.5px;font-weight:500;padding:11px 20px;border-radius:99px;z-index:99;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:opacity .4s;}
.flash.gone{opacity:0;pointer-events:none;}

/* ===== login ===== */
.login-stage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:34px 30px;width:100%;max-width:400px;}
.login-card h1{font-family:'Barlow Condensed';font-weight:700;font-size:26px;margin:14px 0 4px;}
.login-card .sub{color:var(--ink-soft);font-size:14px;margin-bottom:22px;}
.login-card .fld{margin-bottom:14px;}
.login-card .btn{width:100%;padding:12px;}

/* ===== statement sheet ===== */
.sheet{background:#fff;border-radius:6px;box-shadow:0 2px 6px rgba(34,39,43,.08),0 18px 50px rgba(34,39,43,.13);padding:14mm;max-width:216mm;min-height:279mm;margin:0 auto;}
.route-cell{font-weight:500;font-size:14px;}
.route-arr{color:var(--ink-soft);padding:0 2px;}
.dh-tag{font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--ink-soft);background:var(--draft-soft);border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:1px;}
.extra-tag{display:inline-block;font-size:11.5px;font-weight:600;color:var(--highway-deep);background:var(--paid-soft);border-radius:4px;padding:2px 7px;margin-left:6px;}
.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:20px;border-bottom:3px solid var(--ink);gap:16px;flex-wrap:wrap;}
.sheet-co{display:flex;gap:14px;align-items:center;}
.sheet-logo{min-width:52px;height:52px;border-radius:10px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed';font-weight:700;font-size:20px;padding:0 14px;}
.sheet-logo.has-img{background:transparent;border-radius:0;padding:0;min-width:0;}
.sheet-logo.has-img img{height:52px;width:auto;max-width:160px;object-fit:contain;display:block;}
.sheet-co h3{font-family:'Barlow Condensed';font-weight:700;font-size:23px;}
.sheet-co p{font-size:12.5px;color:var(--ink-soft);line-height:1.5;}
.sheet-title{text-align:right;}
.sheet-title .t{font-family:'Barlow Condensed';font-weight:700;font-size:25px;letter-spacing:.05em;color:var(--highway-deep);}
.sheet-title .n{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.sheet-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line);}
.sheet-meta .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:600;margin-bottom:3px;}
.sheet-meta .v{font-size:14px;font-weight:600;}
.sheet h4{font-size:11.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);font-weight:700;margin:22px 0 8px;}
.sheet table{min-width:0;}
.sheet td,.sheet th{padding:8px 8px;}
.sheet th{background:transparent;}
.sheet td:last-child,.sheet th:last-child{text-align:right;}
.totline{display:flex;justify-content:flex-end;gap:36px;padding:8px;font-size:14px;}
.totline b{min-width:110px;text-align:right;font-family:'Barlow Condensed';font-size:16px;}
.totline.sub{color:var(--ink-soft);}
.netblock{margin-top:20px;border-radius:10px;overflow:hidden;border:2px solid #fff;box-shadow:0 0 0 2px var(--highway-deep);display:flex;}
.netblock .l{background:var(--highway);color:#fff;flex:1;padding:15px 18px;font-family:'Barlow Condensed';font-weight:600;font-size:17px;letter-spacing:.05em;display:flex;align-items:center;}
.netblock .r{background:var(--highway-deep);color:#fff;padding:15px 24px;font-family:'Barlow Condensed';font-weight:700;font-size:28px;display:flex;align-items:center;white-space:nowrap;}
.sheet-foot{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);flex-wrap:wrap;gap:6px;}

/* ===== driver portal ===== */
.drv-head{background:var(--ink);color:#fff;padding:18px 18px 22px;}
.drv-head-in{max-width:560px;margin:0 auto;}
.drv-head .hi{font-size:13px;opacity:.7;}
.drv-head .nm{font-family:'Barlow Condensed';font-weight:700;font-size:25px;margin-top:2px;}
.ytd{margin-top:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;gap:8px;}
.ytd .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;opacity:.65;font-weight:600;}
.ytd .v{font-family:'Barlow Condensed';font-weight:700;font-size:20px;margin-top:2px;}
.drv-body{max-width:560px;margin:0 auto;padding:16px 16px 60px;}
.drv-body h5{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700;margin:8px 4px 10px;}
.stmt-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow);}
.stmt-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.stmt-card .per{font-weight:600;font-size:14px;}
.stmt-card .amt{font-family:'Barlow Condensed';font-weight:700;font-size:23px;text-align:right;}
.stmt-card .subtxt{font-size:12.5px;color:var(--ink-soft);}
.stmt-card .row2{display:flex;justify-content:space-between;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);gap:8px;flex-wrap:wrap;}

/* ===== print ===== */
@media print{
  @page{size:letter;margin:12mm;}
  body{background:#fff;}
  .topbar,.actions,.flash,.no-print{display:none !important;}
  .wrap{padding:0;max-width:none;}
  .sheet{box-shadow:none;border-radius:0;padding:0;max-width:none;min-height:0;}
  .lane{box-shadow:none;border:1px solid var(--highway-deep);-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .netblock{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* ===== responsive ===== */
@media (max-width:840px){
  .shortcuts{grid-template-columns:repeat(3,1fr);}
  .statrow{grid-template-columns:1fr 1fr;}
  .menu-btn{display:block;}
  .mainnav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink);flex-direction:column;align-items:stretch;padding:8px 14px 16px;gap:2px;border-top:1px solid rgba(255,255,255,.12);}
  body.nav-open .mainnav{display:flex;}
  .mainnav a{padding:12px 14px;font-size:15px;border-radius:10px;}
  .sheet{padding:20px 14px;min-height:0;}
  .sheet-meta{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
  .pagehead h1{font-size:25px;}
}
@media (max-width:480px){
  .statrow{grid-template-columns:1fr 1fr;gap:10px;}
  .stat .val{font-size:23px;}
  .wrap{padding:16px 12px 60px;}
  .btn{padding:10px 14px;}
}
