:root{
  --brand:#0b6e4f;
  --brand-dark:#074e38;
  --accent:#f5a524;
  --bg:#f7f9fb;
  --ink:#0f172a;
  --muted:#64748b;
}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);}
.navbar-brand{font-weight:800;letter-spacing:-.5px;color:var(--brand)!important;font-size:1.5rem;}
.navbar-brand .dot{color:var(--accent);}
.btn-brand{background:var(--brand);color:#fff;border:none;}
.btn-brand:hover{background:var(--brand-dark);color:#fff;}
.btn-outline-brand{border:1px solid var(--brand);color:var(--brand);background:transparent;}
.btn-outline-brand:hover{background:var(--brand);color:#fff;}
.text-brand{color:var(--brand);}
.bg-brand{background:var(--brand);color:#fff;}
.hero{background:linear-gradient(135deg,#0b6e4f 0%,#0a8f63 100%);color:#fff;padding:4rem 0 6rem;}
.hero h1{font-weight:800;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;}
.search-card{background:#fff;color:var(--ink);border-radius:1rem;padding:1.5rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.3);margin-top:-3rem;}
.search-card label{font-size:.75rem;text-transform:uppercase;color:var(--muted);font-weight:600;letter-spacing:.5px;}
.route-card,.feature-card{border:1px solid #e5e7eb;border-radius:.75rem;transition:transform .2s,box-shadow .2s;background:#fff;}
.route-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px -10px rgba(0,0,0,.15);}
.route-banner-img{width:100%;height:150px;object-fit:cover;display:block;background:#e2e8f0;}
.admin-route-banner{width:120px;height:56px;object-fit:cover;border-radius:.5rem;border:1px solid #e5e7eb;background:#e2e8f0;display:block;}
.route-detail-banner{width:100%;max-height:260px;object-fit:cover;border-radius:.75rem;border:1px solid #e5e7eb;background:#e2e8f0;display:block;}
.route-banner-placeholder{height:56px;border:1px dashed #cbd5e1;border-radius:.5rem;color:var(--muted);display:flex;align-items:center;justify-content:center;background:#f8fafc;}
.admin-login-plus{position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;border-radius:50%;border:1px solid #cbd5e1;color:#64748b;text-decoration:none;display:flex;align-items:center;justify-content:center;font-weight:800;line-height:1;background:#fff;}
.admin-login-plus:hover{border-color:var(--brand);color:var(--brand);background:#e6f4ee;}
.feature-icon{width:48px;height:48px;border-radius:12px;background:#e6f4ee;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:1.5rem;}
.seat-grid{display:grid;gap:.75rem;overflow-x:auto;padding-bottom:.25rem}
.seat-row{display:flex;gap:.5rem;justify-content:center;align-items:center;min-width:max-content}
.seat-row-number{width:1.75rem;text-align:center;color:var(--muted);font-size:.75rem;font-weight:700;flex:0 0 auto}
.seat-aisle{width:3.5rem;min-height:42px;border:1px dashed #cbd5e1;border-radius:999px;color:#94a3b8;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;background:#f8fafc;flex:0 0 auto}
.seat-gap{width:2rem}
.seat{width:46px;height:46px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;cursor:pointer;user-select:none;position:relative;overflow:hidden;flex:0 0 auto}
.seat input{position:absolute;opacity:0;inset:0}
.seat:hover:not(.booked):not(.blocked){border-color:var(--brand)}
.seat.selected,.seat:has(input:checked){background:var(--brand);color:#fff;border-color:var(--brand)}
.seat.booked{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}
.seat-booking-link{background:#dbeafe!important;color:#1e40af!important;border-color:#93c5fd!important;text-decoration:none;cursor:pointer!important;}
.seat-booking-link:hover{background:#1e40af!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 8px 18px -12px rgba(30,64,175,.8);}
.seat-action{flex:0 0 auto}
.seat-action .seat{border:1px solid #93c5fd}
.seat-expired{background:#fef3c7!important;color:#92400e!important;border-color:#f59e0b!important;}
.seat-expired:hover{background:#92400e!important;color:#fff!important;}
.seat-menu{width:240px;white-space:normal;box-shadow:0 16px 35px -18px rgba(15,23,42,.45);}
.seat.blocked{background:#fee2e2;color:#991b1b;cursor:not-allowed}
.seat.preview-seat{cursor:default}
.seat.vip{background:#fef3c7;color:#92400e;border-color:#f59e0b}
.seat-template-preview{max-height:360px;overflow:auto;background:#f8fafc;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem}
.legend-box{width:18px;height:18px;border-radius:4px;display:inline-block;vertical-align:middle;margin-right:6px;}
.bus-front{border:1px dashed #94a3b8;border-radius:8px 8px 30px 30px;padding:.4rem;text-align:center;color:var(--muted);font-size:.75rem;margin-bottom:1rem;}
.badge-pending{background:#fef3c7;color:#92400e;}
.badge-paid{background:#dcfce7;color:#166534;}
.badge-confirmed{background:#dbeafe;color:#1e40af;}
.badge-cancelled{background:#fee2e2;color:#991b1b;}
.badge-promo{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;}
.fare-compare{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;}
.fare-original{color:#94a3b8;text-decoration:line-through;font-size:.88rem;font-weight:700;}
/* Admin shell layout */
.admin-shell{min-height:100vh;}
.admin-shell > .row{
  min-height:100vh;
  flex-wrap:nowrap;
  align-items:stretch;
}
/* Override Bootstrap .row > * { width:100% } so sidebar + main sit side-by-side */
.admin-shell > .row > .admin-sidebar,
.admin-shell > .row > .admin-main{
  width:auto;
  max-width:none;
  padding-left:0;
  padding-right:0;
}
.admin-sidebar{
  background:#0f172a;
  color:#cbd5e1;
  width:260px;
  max-width:260px;
  min-height:100vh;
  padding:.9rem .75rem 1rem;
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  flex:0 0 260px;
  z-index:1020;
  overflow:hidden;
}
.admin-sidebar .brand{
  color:#fff;
  font-weight:800;
  font-size:1.35rem;
  letter-spacing:-.02em;
  padding:.55rem .75rem 1rem;
  margin-bottom:.35rem;
  border-bottom:1px solid rgba(148,163,184,.16);
  flex:0 0 auto;
}
.admin-sidebar .brand .dot,
.admin-mobile-brand .dot{color:var(--accent);}
.admin-nav-scroll{
  overflow-x:hidden;
  overflow-y:auto;
  flex:1 1 auto;
  min-height:0;
  padding-right:.15rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(148,163,184,.35) transparent;
}
.admin-nav-scroll::-webkit-scrollbar{width:6px;}
.admin-nav-scroll::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px;}
.admin-nav-section{margin-bottom:.35rem;}
.admin-nav-footer{
  margin-top:.65rem;
  padding-top:.65rem;
  border-top:1px solid rgba(148,163,184,.18);
}
.nav-group-label{
  color:#94a3b8;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.7rem .75rem .3rem;
  line-height:1.2;
}
.admin-nav-link{
  color:#cbd5e1!important;
  text-decoration:none!important;
  display:flex;
  align-items:center;
  gap:.65rem;
  width:100%;
  padding:.58rem .75rem;
  border-radius:.65rem;
  margin-bottom:.12rem;
  font-size:.9rem;
  font-weight:500;
  line-height:1.25;
  min-width:0;
  transition:background .15s ease,color .15s ease;
}
.admin-nav-link i{
  flex:0 0 1.15rem;
  width:1.15rem;
  font-size:1.05rem;
  line-height:1;
  text-align:center;
  opacity:.95;
}
.admin-nav-link span{
  min-width:0;
  flex:1 1 auto;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-nav-link:hover,
.admin-nav-link:focus{
  background:#1e293b;
  color:#fff!important;
}
.admin-nav-link.active{
  background:#1e293b;
  color:#fff!important;
  box-shadow:inset 3px 0 0 var(--brand);
}
.admin-nav-link.nav-link-primary{
  background:rgba(11,110,79,.28);
  color:#d1fae5!important;
  font-weight:700;
}
.admin-nav-link.nav-link-primary:hover,
.admin-nav-link.nav-link-primary:focus,
.admin-nav-link.nav-link-primary.active{
  background:rgba(11,110,79,.48);
  color:#fff!important;
}
.admin-nav-link.nav-logout{
  color:#fca5a5!important;
}
.admin-nav-link.nav-logout:hover,
.admin-nav-link.nav-logout:focus{
  background:rgba(239,68,68,.14);
  color:#fecaca!important;
}
.admin-main{
  min-width:0;
  flex:1 1 auto;
  width:auto;
  min-height:100vh;
  padding-left:1.5rem;
  padding-right:1.5rem;
}
.admin-body{min-height:100vh;}
.admin-mobile-topbar{
  background:#0f172a;
  color:#fff;
  position:sticky;
  top:0;
  z-index:1030;
  box-shadow:0 10px 24px -18px rgba(15,23,42,.9);
  min-height:56px;
  padding-top:env(safe-area-inset-top,0);
}
.admin-mobile-topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  min-height:56px;
  padding:.55rem .9rem;
}
.admin-mobile-brand{
  color:#fff!important;
  font-weight:800;
  letter-spacing:-.5px;
  font-size:1.3rem;
  text-decoration:none!important;
  line-height:1;
}
.admin-mobile-brand:hover{color:#fff!important;}
.admin-mobile-top-actions{
  display:flex;
  align-items:center;
  gap:.4rem;
}
.admin-mobile-icon-btn{
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.admin-mobile-icon-btn:hover,
.admin-mobile-icon-btn:focus{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.28);
}
.admin-mobile-status{
  max-width:7.5rem;
  padding:.28rem .55rem;
  font-size:.72rem;
}
.admin-mobile-status .admin-mobile-status-text{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:3.6rem;
}
.admin-mobile-menu{
  background:#0f172a!important;
  color:#cbd5e1;
  width:min(300px,86vw)!important;
}
.admin-mobile-menu .offcanvas-title{color:#fff;font-weight:800;}
.admin-mobile-menu .offcanvas-body{
  display:flex;
  flex-direction:column;
  padding-top:.35rem;
}
.admin-mobile-menu .admin-nav-scroll{max-height:none;flex:1 1 auto;}
.admin-pwa-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.85rem;padding:.85rem 1rem;box-shadow:0 14px 32px -28px rgba(15,23,42,.65);}
.admin-mobile-pwa-strip{
  display:flex;
  flex-direction:column;
  gap:.4rem;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:.85rem;
  padding:.65rem .75rem;
  box-shadow:0 10px 24px -24px rgba(15,23,42,.75);
  min-width:0;
}
.admin-mobile-pwa-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  min-width:0;
}
.admin-mobile-pwa-status{
  min-width:0;
  width:100%;
  line-height:1.3;
  word-break:break-word;
  overflow-wrap:anywhere;
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.admin-mobile-pwa-actions{
  display:flex;
  align-items:center;
  gap:.35rem;
  flex:0 0 auto;
}
.admin-mobile-pwa-actions .btn,
.admin-mobile-pwa-actions a.btn{
  width:34px;
  min-width:34px;
  height:34px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  flex:0 0 34px;
  white-space:nowrap;
  overflow:hidden;
}

/* Fixed mobile bottom navigation (app-like) */
.admin-bottom-nav{
  display:none;
}
@media (max-width: 991.98px){
  .admin-bottom-nav{
    display:flex;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1040;
    height:calc(64px + env(safe-area-inset-bottom,0px));
    padding:0 .2rem env(safe-area-inset-bottom,0px);
    background:rgba(15,23,42,.97);
    border-top:1px solid rgba(255,255,255,.08);
    box-shadow:0 -10px 30px -18px rgba(15,23,42,.65);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    justify-content:space-around;
    align-items:stretch;
  }
  .admin-bottom-item{
    flex:1 1 0;
    min-width:0;
    color:#94a3b8;
    text-decoration:none!important;
    background:transparent;
    border:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.12rem;
    font-size:.68rem;
    font-weight:600;
    letter-spacing:.01em;
    padding:.35rem .15rem .45rem;
    transition:color .15s ease, transform .15s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .admin-bottom-item i{
    font-size:1.2rem;
    line-height:1;
  }
  .admin-bottom-item span{
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
  }
  .admin-bottom-item:hover,
  .admin-bottom-item:focus{
    color:#e2e8f0;
  }
  .admin-bottom-item.active{
    color:#34d399;
  }
  .admin-bottom-item-primary{
    position:relative;
    color:#cbd5e1;
    margin-top:-10px;
  }
  .admin-bottom-primary-icon{
    width:46px;
    height:46px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(145deg,var(--brand),#0a8f63);
    color:#fff;
    box-shadow:0 10px 22px -10px rgba(11,110,79,.9);
    border:3px solid #0f172a;
    margin-bottom:.05rem;
  }
  .admin-bottom-item-primary i{font-size:1.15rem;color:#fff;}
  .admin-bottom-item-primary span:last-child{font-weight:700;}
  .admin-bottom-item-primary.active{
    color:#6ee7b7;
  }
  .admin-bottom-item-primary.active .admin-bottom-primary-icon{
    background:linear-gradient(145deg,#0a8f63,var(--brand-dark));
    box-shadow:0 12px 24px -10px rgba(11,110,79,1);
  }
  .admin-main{
    padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;
  }
  .admin-shell > .row{min-height:auto;}
}
.status-pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.28rem .7rem;font-size:.78rem;font-weight:800;border:1px solid transparent;}
.status-pill.online{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
.status-pill.offline{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.status-pill.manual-offline{background:#fef3c7;color:#92400e;border-color:#fde68a;}
.sync-stat-card{border:1px solid #e5e7eb;border-radius:.85rem;padding:1rem;background:#f8fafc;height:100%;}
.sync-stat-card .label{display:block;color:#64748b;font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.04em;}
.sync-stat-card .value{display:block;font-size:1.35rem;font-weight:800;margin-top:.2rem;}
.sync-stat-card .value-sm{font-size:.95rem;line-height:1.3;}
.seat-pending-offline{background:#fde68a!important;color:#92400e!important;border-color:#f59e0b!important;}
.text-brand{color:var(--brand)!important;}
.stat-card{background:#fff;border-radius:.75rem;padding:1.25rem;border:1px solid #e5e7eb;height:100%;}
.stat-card .num{font-size:1.75rem;font-weight:800;word-break:break-word;}
@media (max-width: 991.98px){
  .dashboard-stat-row .stat-card{padding:1rem;}
  .dashboard-stat-row .stat-card .num{font-size:1.35rem;}
  .dashboard-stat-row .stat-card .small{font-size:.72rem;line-height:1.25;}
}
.manifest-stat{border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;background:#f8fafc;}
.manifest-stat span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase;font-weight:800;letter-spacing:.04em;}
.manifest-stat strong{display:block;font-size:1.5rem;margin-top:.25rem;}
.manifest-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#475569;background:#f8fafc;}
.manifest-inactive{background:#f8fafc;}
.manifest-signatures div div{border-top:1px solid #111827;padding-top:.5rem;margin-top:2rem;color:#64748b;font-size:.8rem;}
.booking-trip-card{overflow:hidden;box-shadow:0 12px 30px -26px rgba(15,23,42,.55);}
.booking-trip-header{background:linear-gradient(135deg,#ffffff 0%,#f8fafc 58%,#e6f4ee 100%);}
.booking-trip-stat{border:1px solid #e2e8f0;border-radius:.75rem;padding:.85rem;background:rgba(255,255,255,.78);}
.booking-trip-stat span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;font-weight:800;letter-spacing:.04em;}
.booking-trip-stat strong{display:block;font-size:1.15rem;margin-top:.2rem;}
.booking-passenger-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#475569;background:#f8fafc;}
.booking-row-inactive{background:#f8fafc;}
.qr-scanner-frame{position:relative;width:min(100%,320px);aspect-ratio:1/1;margin-inline:auto;background:#020617;border-radius:1rem;overflow:hidden;border:1px solid #cbd5e1;box-shadow:0 18px 45px -28px rgba(15,23,42,.8);}
.qr-video{width:100%;height:100%;object-fit:cover;display:block;}
.qr-scan-box{position:absolute;inset:18%;border:3px solid rgba(245,165,36,.95);border-radius:.85rem;box-shadow:0 0 0 999px rgba(2,6,23,.28);}
.qr-scan-box::before,.qr-scan-box::after{content:"";position:absolute;width:34px;height:34px;border-color:#fff;}
.qr-scan-box::before{top:-5px;left:-5px;border-top:4px solid #fff;border-left:4px solid #fff;border-radius:.45rem 0 0 0;}
.qr-scan-box::after{right:-5px;bottom:-5px;border-right:4px solid #fff;border-bottom:4px solid #fff;border-radius:0 0 .45rem 0;}
.vehicle-edit-modal .modal-body{background:#f8fafc;}
.vehicle-edit-modal-content{max-height:calc(100vh - 2rem);}
.vehicle-edit-preview{width:100%;max-height:220px;object-fit:cover;border-radius:.75rem;border:1px solid #e5e7eb;background:#e2e8f0;display:block;}
.vehicle-edit-footer{position:sticky;bottom:0;background:#fff;z-index:2;border-top:1px solid #e5e7eb;}
.payment-method{border:2px solid #e5e7eb;border-radius:.75rem;padding:1rem;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:all .15s;}
.payment-method:hover{border-color:var(--brand);}
.payment-method.active{border-color:var(--brand);background:#e6f4ee;}
.timer-pill{background:#fef3c7;color:#92400e;padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem;}
.step{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.85rem;}
.step .num{width:28px;height:28px;border-radius:50%;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-weight:700;}
.step.active{color:var(--brand);}
.step.active .num,.step.done .num{background:var(--brand);color:#fff;}
footer{background:#0f172a;color:#94a3b8;padding:2rem 0;margin-top:4rem;}
footer a{color:#cbd5e1;text-decoration:none;}
.print-body{background:#e5e7eb;color:#111827;font-family:Inter,Arial,sans-serif;margin:0;padding:16px;}
.print-body{page:a4-ticket;}
.ticket-nav-bar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(247,249,251,.96);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid #e5e7eb;
  border-radius:.85rem;
  padding:.65rem .75rem;
  box-shadow:0 10px 24px -22px rgba(15,23,42,.7);
}
.print-actions{display:flex;gap:10px;justify-content:center;margin-bottom:18px;flex-wrap:wrap;}
.print-actions button,.print-actions a{border:1px solid #0b6e4f;background:#fff;color:#0b6e4f;border-radius:6px;padding:8px 14px;text-decoration:none;font:inherit;cursor:pointer;}
.ticket-sheet{max-width:840px;margin:0 auto;background:#fff;padding:18px;box-shadow:0 20px 50px -30px rgba(0,0,0,.35);}
.ticket-copy{border:2px solid #111827;border-radius:12px;padding:14px;margin-bottom:12px;page-break-inside:avoid;break-inside:avoid;}
.ticket-copy-label{text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-size:11px;font-weight:800;margin-bottom:8px;}
.ticket-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid #cbd5e1;padding-bottom:10px;margin-bottom:10px;}
.ticket-header h1{font-size:26px;margin:0;color:#0b6e4f;}
.ticket-header p{margin:4px 0 0;color:#64748b;font-weight:700;}
.ticket-header img{width:104px;height:104px;}
.ticket-header .ticket-logo{width:auto;height:42px;margin-bottom:6px;}
.ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.ticket-grid span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;font-weight:800;}
.ticket-grid strong{display:block;font-size:14px;margin-top:2px;}
.ticket-note{margin:10px 0 0;color:#64748b;font-size:12px;}
.signature-line{border-top:1px solid #111827;width:200px;margin-top:26px;padding-top:5px;color:#64748b;font-size:11px;}
.thermal-body{background:#e5e7eb;margin:0;padding:18px;font-family:monospace;color:#000;}
.thermal-body{page:thermal-ticket;}
.thermal-ticket{width:280px;margin:0 auto;background:#fff;padding:12px;}
.thermal-ticket h1{text-align:center;font-size:22px;margin:0 0 4px;}
.thermal-ticket p{font-size:13px;line-height:1.25;margin:6px 0;}
.thermal-ticket hr{border:0;border-top:1px dashed #000;margin:10px 0;}
.thermal-ticket img{display:block;width:150px;height:150px;margin:10px auto;}
.thermal-ticket .thermal-logo{width:auto;height:44px;margin:0 auto 6px;}
.thermal-ticket .center{text-align:center;}
.thermal-ticket .small{font-size:11px;}
.offline-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#0f172a,#0b6e4f);}
.offline-card{max-width:460px;background:#fff;border-radius:1.25rem;padding:2rem;box-shadow:0 24px 70px -30px rgba(0,0,0,.55);}
.offline-card h1{font-weight:800;letter-spacing:-.04em;margin:.75rem 0;}
.offline-card p{color:#64748b;}
.offline-card button{border:0;background:#0b6e4f;color:#fff;border-radius:.75rem;padding:.75rem 1rem;font-weight:800;}
.offline-mark{display:inline-flex;background:#fef3c7;color:#92400e;border-radius:999px;padding:.35rem .75rem;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;}
@media (max-width: 991px){
  .admin-shell > .row{min-height:auto;flex-wrap:wrap;}
  .admin-shell > .row > .admin-main{width:100%;max-width:100%;}
  .admin-main{
    padding:1rem!important;
    min-height:calc(100vh - 56px)!important;
    padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;
  }
  .table-responsive{border-radius:.75rem;}
  .modal-dialog{margin:.75rem;}
  .sticky-top{position:static!important;}
  .admin-pwa-bar{align-items:flex-start;flex-direction:column;}
  .vehicle-edit-modal{margin:0!important;}
  .vehicle-edit-modal-content{height:100vh;max-height:100vh;border:0;border-radius:0;}
  .vehicle-edit-modal .modal-body{padding:1rem;overflow-y:auto;}
  .vehicle-edit-footer{display:grid;grid-template-columns:1fr;gap:.5rem;}
  .vehicle-edit-footer .btn{width:100%;}
  .vehicle-edit-preview{max-height:180px;}
}
@media print{
  body:not(.print-body):not(.thermal-body) .admin-sidebar,
  body:not(.print-body):not(.thermal-body) .no-print,
  body:not(.print-body):not(.thermal-body) .alert,
  body:not(.print-body):not(.thermal-body) .btn{display:none!important;}
  body:not(.print-body):not(.thermal-body) .container-fluid,
  body:not(.print-body):not(.thermal-body) .row,
  body:not(.print-body):not(.thermal-body) main{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;}
  body:not(.print-body):not(.thermal-body) .trip-manifest{border:0!important;border-radius:0!important;padding:0!important;}
  body:not(.print-body):not(.thermal-body) .manifest-table{font-size:10px!important;}
  body:not(.print-body):not(.thermal-body) .manifest-table th,
  body:not(.print-body):not(.thermal-body) .manifest-table td{padding:4px!important;}
  body:not(.print-body):not(.thermal-body) .manifest-stat{padding:6px!important;}
  body:not(.print-body):not(.thermal-body) .manifest-stat strong{font-size:16px!important;}
  body.print-body{background:#fff!important;padding:0!important;margin:0!important;}
  body.print-body .print-actions{display:none!important;}
  body.print-body .ticket-sheet{box-shadow:none!important;max-width:none!important;width:100%!important;padding:0!important;margin:0!important;}
  body.print-body .ticket-copy{break-inside:avoid!important;page-break-inside:avoid!important;margin-bottom:8mm!important;}
  body.print-body .ticket-copy:last-child{margin-bottom:0!important;}
}
@page a4-ticket{size:A4;margin:10mm;}
@page thermal-ticket{size:80mm auto;margin:0;}
@media print{
  body.thermal-body{background:#fff!important;padding:0!important;margin:0!important;}
  body.thermal-body .print-actions{display:none!important;}
  body.thermal-body .thermal-ticket{width:72mm!important;padding:3mm!important;margin:0!important;}
  body.thermal-body .thermal-ticket p{font-size:11px!important;}
  body.thermal-body .thermal-ticket h1{font-size:18px!important;}
}
