:root{
  --bg:#f3faf8;--bg2:#eef5f4;--card:#ffffff;--text:#0f172a;--muted:#64748b;--line:#dce7e4;
  --primary:#0f766e;--primary-dark:#07534d;--primary2:#14b8a6;--danger:#dc2626;--warn:#ca8a04;--ok:#16a34a;
  --shadow:0 18px 50px rgba(15,23,42,.10);--shadow-soft:0 10px 30px rgba(15,118,110,.10);--radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Noto Sans Bengali,Noto Sans,sans-serif;background:linear-gradient(135deg,#effcf8 0,#f8fafc 42%,#f3f6fb 100%);color:var(--text);min-height:100vh;overflow-x:hidden}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.muted{color:var(--muted)}
.app-shell{display:flex;min-height:100vh;width:100%}.sidebar{width:292px;background:linear-gradient(180deg,#083f3a 0%,#062f2c 100%);color:#ecfffb;padding:18px;position:fixed;inset:0 auto 0 0;overflow:auto;z-index:2200;box-shadow:16px 0 40px rgba(15,23,42,.16)}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-logo{width:52px;height:52px;border-radius:18px;background:#fff;display:grid;place-items:center;flex:0 0 auto;box-shadow:0 12px 28px rgba(0,0,0,.15);overflow:hidden}.brand-logo-img img{width:100%;height:100%;object-fit:contain;padding:5px;background:#fff}.brand strong{display:block;letter-spacing:.04em;font-size:15px;line-height:1.12}.brand small,.topbar small{display:block;color:#a7fff2;margin-top:4px;font-size:12px}.side-close{display:none;width:38px;height:38px;border:0;border-radius:13px;background:rgba(255,255,255,.10);color:#fff;font-size:22px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:10px;padding:12px 13px;border-radius:15px;color:#e7fffb;background:transparent;border:1px solid transparent;font-weight:700}.nav a:hover,.nav a.active{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.12);box-shadow:inset 3px 0 0 #5eead4}.nav a.logout-link{color:#ffd6d6}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.46);z-index:2100;backdrop-filter:blur(2px)}
.main{margin-left:292px;width:calc(100% - 292px);min-height:100vh}.topbar{position:sticky;top:0;z-index:900;min-height:74px;background:rgba(255,255,255,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,231,228,.86);display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 24px}.topbar-title{min-width:0}.topbar-title strong{font-size:22px;line-height:1.1}.topbar small{color:#5f756f}.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #c8f5eb;background:#ecfffb;color:var(--primary-dark);border-radius:15px;font-size:22px;font-weight:900}.top-actions{display:flex;align-items:center;gap:10px}.content{padding:24px;max-width:1340px;margin:0 auto;width:100%}
.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{background:rgba(255,255,255,.96);border:1px solid rgba(220,231,228,.92);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px}.card h2{margin:0 0 14px;font-size:20px}.card h3{margin:0}.stat{position:relative;overflow:hidden;min-height:128px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stat:after{content:"";position:absolute;right:-36px;bottom:-48px;width:120px;height:120px;border-radius:50%;background:rgba(20,184,166,.10)}.stat h3{margin:8px 0 0;font-size:clamp(25px,3.5vw,36px);letter-spacing:-.03em}.stat p{margin:0;color:var(--muted);font-weight:800}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.section-title h2{margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:11px 16px;border-radius:15px;border:0;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-weight:900;cursor:pointer;box-shadow:0 12px 24px rgba(15,118,110,.18);font-size:14px}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--primary-dark);border:1px solid #beece4;box-shadow:none}.btn.danger{background:linear-gradient(135deg,#dc2626,#ef4444)}.btn.warn{background:linear-gradient(135deg,#ca8a04,#f59e0b)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:999px;background:#ecfffb;color:#07534d;border:1px solid #baf7ec;font-weight:900;white-space:nowrap}.badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:900;background:#eef2ff;color:#3730a3;white-space:nowrap}.badge-green{background:#dcfce7;color:#166534}.badge-yellow{background:#fef9c3;color:#854d0e}.badge-red{background:#fee2e2;color:#991b1b}.alert{padding:14px 16px;border-radius:16px;margin:0 0 16px;border:1px solid transparent}.alert-success{background:#dcfce7;color:#166534;border-color:#bbf7d0}.alert-error{background:#fee2e2;color:#991b1b;border-color:#fecaca}.alert-info{background:#e0f2fe;color:#075985;border-color:#bae6fd}
.table-wrap{overflow:auto;border-radius:18px;border:1px solid var(--line);background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:#475467;background:#f8fafc;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:0}.form{display:grid;gap:14px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-weight:900;margin-bottom:7px;color:#1f2a37}.field small{display:block;color:var(--muted);margin-top:5px}input,select,textarea{width:100%;padding:12px 13px;border-radius:15px;border:1px solid #ccd8d6;background:#fff;font:inherit;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 4px rgba(20,184,166,.12)}textarea{min-height:100px}.risk-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px}.risk-green{background:var(--ok)}.risk-yellow{background:var(--warn)}.risk-red{background:var(--danger)}.print-only{display:none}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 10% 10%,#bff7ec 0,transparent 28%),radial-gradient(circle at 90% 0,#e2f7ff 0,transparent 30%),linear-gradient(135deg,#f8fafc,#ecfeff)}.auth-card{width:min(980px,100%);background:#fff;border:1px solid var(--line);border-radius:30px;box-shadow:0 28px 70px rgba(15,23,42,.14);overflow:hidden;padding:0}.auth-card-branded{display:grid;grid-template-columns:1.08fr .92fr;text-align:left}.auth-hero-panel{position:relative;min-height:520px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#e8fff9,#ffffff);overflow:hidden}.auth-hero-panel:before{content:"";position:absolute;inset:auto -70px -70px auto;width:240px;height:240px;border-radius:50%;background:rgba(20,184,166,.14)}.auth-hero-panel:after{content:"";position:absolute;inset:-90px auto auto -90px;width:230px;height:230px;border-radius:50%;background:rgba(15,118,110,.10)}.login-brand-logo{position:relative;z-index:1;width:178px;height:178px;border-radius:34px;background:#fff;display:grid;place-items:center;border:1px solid var(--line);box-shadow:0 18px 45px rgba(15,118,110,.16);overflow:hidden}.login-brand-logo img{width:100%;height:100%;object-fit:contain;padding:10px}.auth-hero-copy{position:relative;z-index:1}.auth-hero-copy h1{margin:0;font-size:clamp(32px,5vw,48px);line-height:1.02;letter-spacing:-.04em;color:#073f3b}.auth-hero-copy p{font-size:17px;line-height:1.65;color:#40625d;margin:14px 0 0}.auth-form-panel{padding:42px;display:flex;flex-direction:column;justify-content:center}.auth-form-panel h2{margin:0 0 8px;font-size:28px}.auth-form-panel .muted{margin:0 0 20px}.auth-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.auth-badges span{background:#fff;border:1px solid #cbf4ec;color:#07534d;border-radius:999px;padding:9px 12px;font-weight:900;font-size:13px}
@media(max-width:1180px){.sidebar{transform:translateX(-105%);transition:.22s ease}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block}.side-close{display:inline-flex;align-items:center;justify-content:center}.main{margin-left:0;width:100%}.menu-btn{display:inline-flex}.content{padding:18px}.topbar{padding:10px 14px}.topbar-title strong{font-size:20px}.grid-4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}}
@media(max-width:760px){body{background:#f6fbfa}.auth-wrap{padding:14px;place-items:start center}.auth-card-branded{grid-template-columns:1fr}.auth-hero-panel{min-height:auto;padding:24px;text-align:center;align-items:center;gap:20px}.auth-hero-copy h1{font-size:30px}.auth-hero-copy p{font-size:15px}.login-brand-logo{width:132px;height:132px;border-radius:28px}.auth-form-panel{padding:24px}.content{padding:14px 12px 22px}.topbar{min-height:64px}.topbar .pill{display:none}.topbar small{font-size:11px}.grid-2,.grid-3,.grid-4,.row{grid-template-columns:1fr}.card{padding:17px;border-radius:19px}.stat{min-height:106px}.section-title{display:block}.section-title .actions{margin-top:10px}.actions .btn,.actions input{width:100%}.btn{width:100%}.table-wrap{border-radius:16px}table{min-width:680px}.sidebar{width:min(86vw,310px);padding:16px}.brand-logo{width:48px;height:48px}.nav a{padding:12px}.auth-badges{justify-content:center}}
@media(max-width:420px){.auth-form-panel h2{font-size:24px}.auth-hero-copy h1{font-size:27px}.login-brand-logo{width:116px;height:116px}.topbar-title strong{font-size:18px}.card{padding:15px}input,select,textarea{font-size:16px}.stat h3{font-size:26px}}
@media print{.sidebar,.topbar,.actions,.btn,.sidebar-backdrop{display:none!important}.main{margin:0;width:100%}.content{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}body{background:#fff}}

/* Field semi-live tracking */
.tracking-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:2600;display:none;max-width:min(92vw,620px);padding:12px 16px;border-radius:16px;border:1px solid #bae6fd;background:#e0f2fe;color:#075985;box-shadow:0 16px 40px rgba(15,23,42,.16);font-weight:800;text-align:center}.tracking-banner.warn{background:#fef3c7;border-color:#fde68a;color:#92400e}.tracking-banner.ok{background:#dcfce7;border-color:#bbf7d0;color:#166534}.map-shell{overflow:hidden;border-radius:24px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft)}#fieldMap{height:560px;min-height:70vh;width:100%}.map-popup{font-size:13px;line-height:1.45}.map-popup b{display:block;margin-bottom:4px}.tracking-status{display:inline-flex;align-items:center;gap:7px}.tracking-status:before{content:"";width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.12)}.tracking-status.stale:before{background:#ca8a04;box-shadow:0 0 0 5px rgba(202,138,4,.14)}.tracking-status.offline:before{background:#dc2626;box-shadow:0 0 0 5px rgba(220,38,38,.12)}.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.filter-bar .btn{width:100%}.route-note{font-size:13px;line-height:1.55;color:var(--muted)}
@media(max-width:900px){.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}#fieldMap{height:520px;min-height:62vh}}
@media(max-width:560px){.filter-bar{grid-template-columns:1fr}.tracking-banner{bottom:10px;font-size:13px;padding:10px 12px}#fieldMap{height:460px;min-height:58vh}}


/* Leaflet staff name label/tag */
.leaflet-tooltip.staff-map-label{background:#ffffff;color:#0f172a;border:0;border-radius:999px;padding:6px 12px;font-weight:900;font-size:14px;box-shadow:0 10px 26px rgba(15,23,42,.22);letter-spacing:.01em;white-space:nowrap}
.leaflet-tooltip.staff-map-label:before{border-top-color:#ffffff}
.leaflet-tooltip.staff-map-label.online{background:#ecfdf5;color:#065f46}
.leaflet-tooltip.staff-map-label.stale{background:#fffbeb;color:#92400e}
.leaflet-tooltip.staff-map-label.offline{background:#fef2f2;color:#991b1b}
.leaflet-tooltip.staff-map-label.history-label{font-size:12px;padding:4px 9px;opacity:.95}
@media(max-width:560px){.leaflet-tooltip.staff-map-label{font-size:13px;padding:5px 10px;max-width:190px;overflow:hidden;text-overflow:ellipsis}}


/* Map/sidebar stacking fix + field map live refresh polish */
.map-shell{position:relative;z-index:1}
.leaflet-container{z-index:1}
.leaflet-pane,.leaflet-top,.leaflet-bottom{z-index:1}
.leaflet-control{z-index:5}
.sidebar-open .sidebar{z-index:2200}
.sidebar-open .sidebar-backdrop{z-index:2100}
.field-map-refresh-note{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#0f766e;background:#ecfffb;border:1px solid #baf7ec;border-radius:999px;padding:8px 12px}
@media(max-width:1180px){.sidebar{z-index:2200}.sidebar-backdrop{z-index:2100}.topbar{z-index:900}}
