:root{--navy:#221859;--navy-2:#2e2270;--orange:#ec6303;--orange-dk:#b14b03;--ink:#1a1a18;--paper:#f4f5f8;--card:#ffffff;--line:#dfe2ea;--muted:#6b7180;--job:#ec6303;--boneyard:#221859;--shop:#0f7b6c;--none:#8a8f9c;--enroute:#d97a06;--enroute-bg:#fff3e0;--radius:12px;--shadow:0 1px 2px rgba(16,20,40,0.06),0 6px 20px rgba(16,20,40,0.06)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}.topbar{background:var(--navy);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;z-index:900;box-shadow:0 2px 10px rgba(0,0,0,.18)}.brand{display:flex;align-items:baseline;gap:10px}.brand-mark{font-weight:800;letter-spacing:.02em;font-size:19px}.brand-mark span{color:var(--orange)}.brand-sub{font-size:12px;color:#b9b6d8;text-transform:uppercase;letter-spacing:.08em}.topbar-spacer{flex:1 1}.search{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:999px;padding:8px 14px;min-width:300px;outline:none}.search::placeholder{color:#b9b6d8}.search:focus{border-color:var(--orange);background:rgba(255,255,255,.18)}.saved-pill{font-size:12px;color:#b9b6d8;white-space:nowrap}.ghost-btn{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:999px;padding:7px 14px;cursor:pointer}.ghost-btn:hover{background:rgba(255,255,255,.12)}.shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:18px;gap:18px;padding:18px;align-items:start;max-width:1680px;margin:0 auto}@media (max-width:1080px){.shell{grid-template-columns:1fr}}.map-pane{position:-webkit-sticky;position:sticky;top:78px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--line)}@media (max-width:1080px){.map-pane{position:relative;top:0}}#mn-map{height:min(72vh,760px);width:100%}@media (max-width:1080px){#mn-map{height:420px}}.map-legend{display:flex;gap:16px;padding:10px 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);flex-wrap:wrap;align-items:center}.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:-1px}.stack{display:flex;flex-direction:column;gap:14px}.loc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;scroll-margin-top:90px;transition:border-color .18s,box-shadow .18s}.loc-card.flash{border-color:var(--orange);box-shadow:0 0 0 3px rgba(236,99,3,.18)}.loc-head{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.loc-head:hover{background:#fafbfd}.kind-chip{width:10px;height:34px;border-radius:4px;flex:none}.loc-title{font-weight:700;font-size:15px}.loc-city{font-size:12.5px;color:var(--muted);margin-top:2px}.head-badges{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.enroute-badge{background:var(--enroute-bg);border:1px solid #f0c07a;color:#8a4d03;border-radius:999px;font-weight:700}.count-badge,.enroute-badge{padding:3px 11px;font-size:12.5px;white-space:nowrap}.count-badge{background:var(--paper);border:1px solid var(--line);color:var(--muted);border-radius:999px;font-weight:600}.chev{color:var(--muted);font-size:12px;width:14px;text-align:center}.loc-body{border-top:1px solid var(--line)}.empty-note{padding:16px;color:var(--muted);font-size:13.5px;font-style:italic}.eq-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #eef0f5;flex-wrap:wrap}.eq-row:last-child{border-bottom:none}.eq-row:hover{background:#fbfcfe}.eq-row.is-enroute{background:#fffaf2;box-shadow:inset 3px 0 0 var(--enroute)}.eq-row.is-enroute:hover{background:#fff6e8}.unit-badge{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;background:var(--navy);color:#fff;border-radius:8px;padding:6px 10px;font-size:13.5px;flex:none;min-width:58px;text-align:center}.eq-main{flex:1 1;min-width:160px}.eq-type{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--orange-dk);font-weight:700}.eq-model{font-size:14px;font-weight:600}.eq-nick{font-size:13px;color:var(--muted);background:transparent;border:1px dashed transparent;border-radius:6px;padding:2px 6px;margin-left:-6px;width:100%;max-width:220px}.eq-nick:hover{border-color:var(--line)}.eq-nick:focus{border-style:solid;border-color:var(--orange);outline:none}.eq-nick:focus,.move-select{background:#fff;color:var(--ink)}.move-select{border:1px solid var(--line);border-radius:8px;padding:7px 9px;max-width:220px;cursor:pointer}.move-select:focus{outline:none;border-color:var(--orange)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0 2px 2px}.chip{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}.filter-sep{width:1px;align-self:stretch;background:var(--line);margin:2px 4px}.chip-enroute.on{background:var(--enroute);border-color:var(--enroute);color:#fff}.status-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff;flex:none}.status-opt{border:none;background:transparent;color:var(--muted);padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.status-opt:hover{background:var(--paper)}.status-opt.on{color:#fff}.status-opt.on.onsite{background:var(--shop)}.status-opt.on.enroute{background:var(--enroute)}.status-opt.on:hover{filter:brightness(1.06)}.pin{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);color:#fff;font-weight:800;font-size:13px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}.pin>span{transform:rotate(45deg)}.pin.job{background:var(--job)}.pin.boneyard{background:var(--boneyard)}.pin.shop{background:var(--shop)}.pin.dim{opacity:.4}.pin.has-enroute{box-shadow:0 0 0 3px var(--enroute),0 2px 6px rgba(0,0,0,.35)}.pop-tag{display:inline-block;background:var(--enroute-bg);border:1px solid #f0c07a;color:#8a4d03;border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-left:4px;vertical-align:1px}.legend-dot-ring{background:#fff;border:3px solid var(--enroute);width:13px;height:13px}.pin-label{position:absolute;top:36px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11.5px;font-weight:700;color:var(--navy);background:rgba(255,255,255,.9);border-radius:4px;padding:1px 5px;pointer-events:none}.cluster{width:44px;height:44px;border-radius:50%;background:var(--navy);border:3px solid rgba(255,255,255,.9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;box-shadow:0 3px 10px rgba(0,0,0,.3)}.leaflet-popup-content{margin:10px 12px;font-size:13px}.pop-title{font-weight:700;margin-bottom:4px}.pop-list{margin:4px 0 0;padding-left:16px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--navy) 0,#14103a 100%);padding:20px}.login-card{background:#fff;border-radius:16px;padding:34px 30px;width:100%;max-width:380px;box-shadow:0 18px 50px rgba(0,0,0,.35);text-align:center}.login-card h1{margin:0 0 4px;font-size:22px;letter-spacing:.01em}.login-card h1 span{color:var(--orange)}.login-card p{color:var(--muted);font-size:13.5px;margin:0 0 22px}.login-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px;outline:none}.login-input:focus{border-color:var(--orange)}.primary-btn{width:100%;background:var(--orange);border:none;color:#fff;font-weight:700;border-radius:10px;padding:12px 14px;cursor:pointer}.primary-btn:hover{background:var(--orange-dk)}.primary-btn:disabled{opacity:.6;cursor:default}.err{color:#c02626;margin-top:10px;min-height:18px}.banner,.err{font-size:13px}.banner{background:#fff6e8;border:1px solid #f2c98a;color:#7a4a06;border-radius:var(--radius);padding:10px 14px}