/* Courier Management - application styles (no build step required) */
@font-face { font-family: 'Hind Siliguri'; font-weight: 400; font-display: swap; src: url('../vendor/fonts/hind-siliguri-bengali-400-normal.woff2') format('woff2'); unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1; }
@font-face { font-family: 'Hind Siliguri'; font-weight: 500; font-display: swap; src: url('../vendor/fonts/hind-siliguri-bengali-500-normal.woff2') format('woff2'); unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+200C-200D,U+25CC; }
@font-face { font-family: 'Hind Siliguri'; font-weight: 600; font-display: swap; src: url('../vendor/fonts/hind-siliguri-bengali-600-normal.woff2') format('woff2'); unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+200C-200D,U+25CC; }
@font-face { font-family: 'Hind Siliguri'; font-weight: 700; font-display: swap; src: url('../vendor/fonts/hind-siliguri-bengali-700-normal.woff2') format('woff2'); unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+200C-200D,U+25CC; }
@font-face { font-family: 'Inter'; font-weight: 400; font-display: swap; src: url('../vendor/fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 500; font-display: swap; src: url('../vendor/fonts/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 600; font-display: swap; src: url('../vendor/fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 700; font-display: swap; src: url('../vendor/fonts/inter-latin-700-normal.woff2') format('woff2'); }

:root {
  --brand: #0f766e;
  --accent: #f59e0b;
  --ink: #0f172a;
  --muted: #64748b;
  --line: #e2e8f0;
  --canvas: #f4f6f8;
  --sidebar: #0b1f1d;
  --bs-body-font-family: 'Inter', 'Hind Siliguri', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-body-color: var(--ink);
  --bs-border-color: var(--line);
}
html[lang="bn"] { --bs-body-font-family: 'Hind Siliguri', 'Inter', system-ui, sans-serif; }
html[lang="bn"] body { font-size: 1.02rem; line-height: 1.6; }
body { background: var(--canvas); }
a { color: var(--brand); }
.btn-brand { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-color: #fff; --bs-btn-hover-bg: color-mix(in srgb, var(--brand) 85%, #000); --bs-btn-hover-border-color: color-mix(in srgb, var(--brand) 85%, #000); --bs-btn-hover-color: #fff; --bs-btn-active-bg: color-mix(in srgb, var(--brand) 75%, #000); --bs-btn-disabled-bg: var(--brand); --bs-btn-disabled-border-color: var(--brand); }
.btn-outline-brand { --bs-btn-color: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-hover-color: #fff; }
.text-brand { color: var(--brand) !important; }
.bg-brand { background: var(--brand) !important; color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--brand); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand) 20%, transparent); }

/* App shell */
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { width: 252px; flex-shrink: 0; background: var(--sidebar); color: #cbd5e1; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.app-sidebar .brand { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.2rem; color: #fff; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.07); }
.app-sidebar .brand img { height: 30px; }
.app-sidebar .brand .mark { width: 30px; height: 30px; border-radius: 8px; background: var(--brand); display: grid; place-items: center; color: #fff; }
.app-sidebar .nav-section { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: #64748b; padding: 1rem 1.2rem .35rem; }
.app-sidebar .nav-link { color: #cbd5e1; padding: .42rem 1.2rem; display: flex; gap: .65rem; align-items: center; font-size: .92rem; border-left: 3px solid transparent; }
.app-sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.04); }
.app-sidebar .nav-link.active { color: #fff; background: rgba(255,255,255,.07); border-left-color: var(--accent); }
.app-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.app-topbar { background: #fff; border-bottom: 1px solid var(--line); padding: .6rem 1.25rem; display: flex; align-items: center; gap: .75rem; position: sticky; top: 0; z-index: 1020; }
.app-content { padding: 1.25rem; flex: 1; }
.page-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.page-head h1 { font-size: 1.35rem; font-weight: 700; margin: 0; }
.card { border-color: var(--line); border-radius: .7rem; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.card-header { background: #fff; font-weight: 600; border-bottom-color: var(--line); }
.stat { padding: 1rem 1.1rem; }
.stat .label { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.stat .value { font-size: 1.55rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.table { --bs-table-bg: transparent; }
.table > :not(caption) > * > * { padding: .6rem .75rem; vertical-align: middle; }
.table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 600; background: #f8fafc; white-space: nowrap; }
.num { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.status-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .18rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600; background: color-mix(in srgb, var(--c) 14%, #fff); color: color-mix(in srgb, var(--c) 80%, #000); white-space: nowrap; }
.status-pill::before { content: ''; width: .45rem; height: .45rem; border-radius: 50%; background: var(--c); }
.timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.timeline li { position: relative; padding: 0 0 1rem 1.6rem; }
.timeline li::before { content: ''; position: absolute; left: .32rem; top: .35rem; bottom: -.35rem; width: 2px; background: var(--line); }
.timeline li:last-child::before { display: none; }
.timeline li .dot { position: absolute; left: 0; top: .2rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--c, var(--brand)); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); }
.filters .form-control, .filters .form-select { min-width: 140px; }
.empty-state { text-align: center; color: var(--muted); padding: 2.5rem 1rem; }
.empty-state i { font-size: 2rem; display: block; margin-bottom: .5rem; }
.required::after { content: ' *'; color: #dc2626; }
.btn[data-loading] .spinner-border { display: none; }
.btn.is-loading .spinner-border { display: inline-block; }
.is-loading { pointer-events: none; opacity: .75; }

/* Public site */
.public-nav { background: #fff; border-bottom: 1px solid var(--line); }
.hero { background: radial-gradient(1200px 400px at 85% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent), linear-gradient(135deg, var(--sidebar), color-mix(in srgb, var(--brand) 70%, var(--sidebar))); color: #fff; padding: 4.5rem 0 4rem; }
.hero h1 { font-weight: 800; font-size: clamp(2rem, 4vw, 3.1rem); letter-spacing: -.02em; }
.hero .track-box { background: #fff; border-radius: .9rem; padding: .5rem; box-shadow: 0 20px 40px rgba(0,0,0,.2); }
.feature i { font-size: 1.6rem; color: var(--brand); }
.public-footer { background: var(--sidebar); color: #94a3b8; }
.public-footer a { color: #cbd5e1; text-decoration: none; }

/* Rider (mobile first) */
.rider-body { max-width: 640px; margin: 0 auto; padding-bottom: 5rem; }
.rider-tabbar { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; border-top: 1px solid var(--line); display: flex; z-index: 1030; }
.rider-tabbar a { flex: 1; text-align: center; padding: .55rem 0; color: var(--muted); font-size: .75rem; text-decoration: none; }
.rider-tabbar a.active { color: var(--brand); font-weight: 600; }
.rider-tabbar i { display: block; font-size: 1.25rem; }
.task-card { border-left: 4px solid var(--c, var(--brand)); }

/* Labels / print */
.label-sheet { display: flex; flex-wrap: wrap; gap: 8px; }
.ship-label { width: 100mm; min-height: 70mm; border: 1px dashed #333; padding: 4mm; background: #fff; font-size: 11px; page-break-inside: avoid; }
.ship-label .barcode svg { width: 100%; height: 42px; }
@media print {
  .no-print, .app-sidebar, .app-topbar { display: none !important; }
  body, .app-content { background: #fff; padding: 0; }
  .ship-label { border: 1px solid #000; }
}

@media (max-width: 991.98px) {
  .app-sidebar { position: fixed; left: -260px; z-index: 1040; transition: left .2s; }
  .app-sidebar.open { left: 0; }
  .app-content { padding: 1rem; }
}
