
:root{--navy:#0b1f3a;--navy2:#132d52;--ink:#0f172a;--mute:#5b6b82;--line:#e3e8f0;--bg:#f6f8fb;--teal:#12b886;--teal2:#22d3a6;--amber:#f59f00;--red:#e03131;--blue:#1c7ed6;--card:#fff;--r:14px;--sh:0 1px 2px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06)}
*{box-sizing:border-box}html,body{margin:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.nav{position:sticky;top:0;z-index:1000;background:rgba(11,31,58,.97);backdrop-filter:blur(8px);color:#fff}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:19px;letter-spacing:-.02em}
.brand img{width:32px;height:32px}.brand b{color:var(--teal2)}
.nav nav{display:flex;gap:6px;align-items:center}
.nav nav a{color:#cfd8e6;text-decoration:none;font-size:14px;font-weight:600;padding:8px 10px;border-radius:8px}
.nav nav a:hover,.nav nav a.on{color:#fff;background:rgba(255,255,255,.08)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:12px 18px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;font-family:inherit;line-height:1.1}
.btn-p{background:var(--teal);color:#fff}.btn-p:hover{background:#0ca678}
.btn-o{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn-l{background:#fff;color:var(--navy);border:1.5px solid var(--line)}
.btn-sm{padding:8px 12px;font-size:13px;border-radius:8px}
.nav .btn{padding:9px 14px;font-size:14px}
@media(max-width:720px){.nav nav a.hide-m{display:none}}
/* hero */
.hero{background:radial-gradient(1200px 500px at 80% -10%,#1b4a7a 0,transparent 60%),linear-gradient(180deg,var(--navy),#0e2748);color:#fff;padding:56px 0 64px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:13px;font-weight:700;color:var(--teal2);background:rgba(34,211,166,.1);border:1px solid rgba(34,211,166,.3);padding:5px 10px;border-radius:99px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--teal2);box-shadow:0 0 0 0 rgba(34,211,166,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,211,166,.6)}70%{box-shadow:0 0 0 10px rgba(34,211,166,0)}100%{box-shadow:0 0 0 0 rgba(34,211,166,0)}}
h1{font-size:clamp(34px,5.4vw,56px);line-height:1.04;letter-spacing:-.035em;margin:16px 0 14px}
.hero p.lead{font-size:18px;color:#c7d3e3;max-width:520px;margin:0 0 24px}
.cta{display:flex;gap:10px;flex-wrap:wrap}
.trackbox{display:flex;gap:8px;background:#fff;border-radius:12px;padding:6px;max-width:460px;margin-top:22px}
.trackbox input{flex:1;min-width:0;border:0;font-size:16px;padding:10px 12px;font-family:inherit;outline:none;color:var(--ink);background:transparent}
.hint{font-size:13px;color:#9fb0c8;margin-top:8px}.hint a{color:var(--teal2);font-weight:700;text-decoration:none;cursor:pointer}
.heromap{height:380px;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);position:relative;background:#dfe7ef}
.heromap .livebox{position:absolute;z-index:500;left:12px;top:12px;background:#fff;color:var(--ink);border-radius:10px;padding:8px 12px;font-size:13px;box-shadow:var(--sh);max-width:80%}
.heromap .livebox b{display:block;font-size:14px}
@media(max-width:860px){.hero{padding:36px 0 40px}.hero .wrap{grid-template-columns:1fr;gap:28px}.heromap{height:300px}}
section{padding:64px 0}
.sec-h{max-width:640px;margin:0 0 32px}
.sec-h h2{font-size:clamp(26px,3.6vw,38px);letter-spacing:-.03em;line-height:1.1;margin:0 0 10px}
.sec-h p{color:var(--mute);font-size:17px;margin:0}
.kicker{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:860px){.grid3,.grid2{grid-template-columns:1fr}section{padding:44px 0}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}
.step .n{width:36px;height:36px;border-radius:10px;background:var(--navy);color:var(--teal2);display:grid;place-items:center;font-weight:800;margin-bottom:12px}
.card h3{margin:0 0 6px;font-size:19px;letter-spacing:-.01em}.card p{margin:0;color:var(--mute)}
.ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e6fcf5;color:var(--teal);margin-bottom:12px}
.ic svg{width:22px;height:22px}
.band{background:var(--navy);color:#fff}.band .sec-h p{color:#b7c5d9}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:var(--navy2);border-radius:var(--r);padding:20px}.stat b{font-size:30px;letter-spacing:-.03em;display:block;color:var(--teal2)}.stat span{color:#b7c5d9;font-size:14px}
@media(max-width:720px){.stats{grid-template-columns:repeat(2,1fr)}}
.price{border:2px solid var(--teal);position:relative}
.price .amt{font-size:44px;font-weight:800;letter-spacing:-.04em}.price .amt small{font-size:16px;color:var(--mute);font-weight:600}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:99px;background:#fff4e6;color:#d9480f}
ul.ticks{list-style:none;padding:0;margin:14px 0 0}ul.ticks li{padding:6px 0 6px 28px;position:relative;color:#334155}
ul.ticks li:before{content:"";position:absolute;left:0;top:9px;width:18px;height:18px;border-radius:50%;background:#e6fcf5 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M5 10.5l3 3 7-7" fill="none" stroke="%2312b886" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/14px no-repeat}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:600px){form .row{grid-template-columns:1fr}}
label{display:block;font-size:13px;font-weight:700;color:#334155;margin:0 0 6px}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(18,184,134,.15)}
.field{margin-bottom:12px}
footer{background:#081629;color:#8ea0b8;padding:32px 0;font-size:14px}footer a{color:#cfd8e6;text-decoration:none}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
/* tracking */
.page-h{background:var(--navy);color:#fff;padding:28px 0 72px}
.page-h h1{font-size:clamp(26px,4vw,38px);margin:0 0 6px}.page-h p{color:#b7c5d9;margin:0}
.lift{margin-top:-52px}
.search{display:flex;gap:8px;background:#fff;border-radius:14px;padding:8px;box-shadow:var(--sh);border:1px solid var(--line)}
.search input{border:0;box-shadow:none!important;font-size:17px;text-transform:uppercase}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0;align-items:center;font-size:13px;color:var(--mute)}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer;color:var(--navy);font-family:inherit}
.chip:hover{border-color:var(--teal)}
.tgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin-top:18px}
@media(max-width:900px){.tgrid{grid-template-columns:1fr}}
.map{height:460px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#e5ebf2}
@media(max-width:600px){.map{height:340px}}
.status-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:5px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.b-transit{background:#e7f5ff;color:#1864ab}.b-delivered{background:#e6fcf5;color:#087f5b}.b-alert{background:#fff5f5;color:#c92a2a}.b-pending{background:#f1f3f5;color:#495057}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:16px 0}.kv div span{display:block;font-size:12px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kv div b{font-size:15px}
.prog{height:8px;background:#edf1f6;border-radius:99px;overflow:hidden;margin:6px 0 4px}.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--teal2));border-radius:99px}
.od{display:flex;justify-content:space-between;font-size:13px;color:var(--mute);gap:8px}
.alert{background:#fff5f5;border:1px solid #ffc9c9;color:#a61e1e;border-radius:10px;padding:10px 12px;font-size:14px;margin:10px 0;font-weight:600}
.tl{list-style:none;margin:0;padding:0}
.tl li{position:relative;padding:0 0 18px 26px}
.tl li:before{content:"";position:absolute;left:6px;top:8px;bottom:-8px;width:2px;background:var(--line)}
.tl li:last-child:before{display:none}
.tl li:after{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--teal)}
.tl li.future:after{border-color:#ced4da}.tl li.future{color:#98a2b3}
.tl li.warn:after{border-color:var(--red)}
.tl b{display:block;font-size:15px}.tl small{color:var(--mute)}
.muted{color:var(--mute)}.small{font-size:13px}
.empty{text-align:center;padding:40px 20px;color:var(--mute)}
.share{display:flex;gap:8px;margin-top:12px}.share input{font-size:13px}
/* leaflet markers */
.pin{width:22px;height:22px;border-radius:50%;background:var(--teal);border:3px solid #fff;box-shadow:0 0 0 2px rgba(18,184,134,.4),0 2px 8px rgba(0,0,0,.3)}
.pin{position:relative}.pin.live:after{content:"";position:absolute;left:-5px;top:-5px;width:26px;height:26px;border-radius:50%;border:2px solid rgba(18,184,134,.7);animation:ring 2s ease-out infinite}@keyframes ring{from{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}
@keyframes pulse2{0%{box-shadow:0 0 0 0 rgba(18,184,134,.7),0 2px 8px rgba(0,0,0,.3)}70%{box-shadow:0 0 0 16px rgba(18,184,134,0),0 2px 8px rgba(0,0,0,.3)}100%{box-shadow:0 0 0 0 rgba(18,184,134,0)}}
.pin.alert{background:var(--red)}.pin.delivered{background:#087f5b}.pin.pending{background:#868e96}
.endpt{width:14px;height:14px;border-radius:4px;background:var(--navy);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.ping{width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid var(--blue)}
.leaflet-popup-content{font-family:inherit;font-size:13px;margin:10px 12px}
.leaflet-container{font-family:inherit}
/* dashboard */
.app{display:grid;grid-template-columns:380px 1fr;height:calc(100vh - 60px);height:calc(100dvh - 60px)}
.side{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.side-h{padding:14px 16px;border-bottom:1px solid var(--line)}
.side-h h2{margin:0;font-size:18px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.kpi{background:var(--bg);border-radius:10px;padding:8px;text-align:center;cursor:pointer;border:1.5px solid transparent}.kpi.on{border-color:var(--teal)}
.kpi b{display:block;font-size:20px}.kpi span{font-size:11px;color:var(--mute);font-weight:700;text-transform:uppercase}
.list{overflow:auto;flex:1;min-height:0}
.item{padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer;display:block}
.item:hover,.item.sel{background:#f3faf7}
.item .t{display:flex;justify-content:space-between;align-items:center;gap:8px}
.item .t b{font-size:15px}.item .r{font-size:13px;color:#334155;margin:3px 0 4px}.item .m{font-size:12px;color:var(--mute)}
.mapwrap{position:relative;min-height:0}
.mapwrap .map{height:100%;border-radius:0;border:0}
.detail{position:absolute;z-index:600;right:14px;top:14px;width:360px;max-height:calc(100% - 28px);overflow:auto;background:#fff;border-radius:var(--r);box-shadow:0 10px 40px rgba(15,23,42,.18);padding:16px;display:none}
.detail.open{display:block}
.x{border:0;background:var(--bg);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:18px;line-height:1}
.tabs{display:none}
@media(max-width:860px){
 .app{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100dvh - 60px)}
 .tabs{display:flex;gap:6px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:60px;z-index:900}
 .tabs button{flex:1}
 .side{border-right:0}.list{overflow:visible}
 .app.show-map .side{display:none}.app:not(.show-map) .mapwrap{display:none}
 .mapwrap{height:calc(100dvh - 116px)}
 .detail{left:10px;right:10px;width:auto;top:auto;bottom:10px;max-height:62%}
}
.modal{position:fixed;inset:0;background:rgba(8,22,41,.55);z-index:2000;display:none;align-items:flex-end;justify-content:center}
.modal.open{display:flex}
.sheet{background:#fff;width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:20px;max-height:92vh;overflow:auto}
@media(min-width:700px){.modal{align-items:center}.sheet{border-radius:18px}}
.sheet h3{margin:0 0 4px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;z-index:3000;display:none;box-shadow:var(--sh)}
.demo-bar{background:#fff4e6;color:#8a3c00;font-size:13px;text-align:center;padding:6px 12px;font-weight:600}
.login{max-width:420px;margin:48px auto;padding:0 20px}
.b-gps{background:#0b1f3a;color:#22d3a6}.b-label{background:#f1f3f5;color:#495057}
.tl .tls{font-size:14px;color:#475467}
@media(min-width:901px){.tgrid>div:first-child{position:sticky;top:76px;align-self:start}}

/* ---- order / checkout ---- */
.checkout{display:grid;grid-template-columns:1fr 360px;gap:18px;margin-top:18px;align-items:start}
.co-main{display:grid;gap:18px;min-width:0}
.co-side{position:sticky;top:76px}
@media(max-width:900px){.checkout{grid-template-columns:1fr}.co-side{position:static}}
.co-h{display:flex;align-items:center;gap:10px;font-size:19px;margin:0 0 12px;letter-spacing:-.01em}
.co-h .n{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.co-sub{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:16px 0 8px}
.prod{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}
.prod.on{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset;background:#f3fcf8}
.prod .pi{display:flex;flex-direction:column;min-width:0}.prod .pi b{font-size:15px}
.prod .pp{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.stepper button{width:38px;height:40px;border:0;background:#f1f5f9;font-size:20px;font-weight:700;cursor:pointer;color:var(--navy);font-family:inherit}
.stepper button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.stepper input{width:48px;height:40px;border:0;text-align:center;font-size:16px;font-weight:700;padding:0;-moz-appearance:textfield;border-radius:0}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:600px){.prod{grid-template-columns:1fr auto;}.prod .pi{grid-column:1/-1}.prod .pp{align-items:flex-start;flex-direction:row;gap:6px;align-items:baseline}}
form .row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}@media(max-width:600px){form .row3{grid-template-columns:1fr 1fr}form .row3 .field:first-child{grid-column:1/-1}}
.field.bad input{border-color:var(--red);background:#fff5f5}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.payopt{display:flex;gap:12px;align-items:flex-start;padding:14px;border:2px solid var(--teal);border-radius:12px;background:#f3fcf8;cursor:pointer}
.payopt input{margin-top:4px;width:18px;height:18px;accent-color:var(--teal)}
.sum .sl{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.sum .sl.sub{color:var(--mute);font-size:13px;border-bottom:0;padding:2px 0 2px 12px}
.sum-tot{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 4px;font-size:16px}.sum-tot b{font-size:26px;letter-spacing:-.02em}
.err{color:var(--red);font-weight:600;font-size:14px;min-height:0;margin:6px 0}
.err:empty{display:none}
.confirm{max-width:640px;margin:18px auto 0}
.ok-ic{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;font-size:28px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.onum{font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--navy);margin-bottom:8px}
.items{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px}.items td{padding:7px 0;border-bottom:1px solid var(--line)}.items td:last-child{text-align:right;white-space:nowrap;padding-left:12px}
.items .tot td{font-weight:800;border-bottom:0;font-size:15px}
.o-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:14px;margin:8px 0}.o-grid span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);font-weight:700}
@media(max-width:600px){.o-grid{grid-template-columns:1fr}}
.next{padding-left:20px;margin:6px 0;font-size:14px}.next li{margin:4px 0}
/* ---- not started ---- */
.b-notstarted{background:#fff4e6;color:#a14f00}
.notstarted{display:flex;gap:12px;align-items:flex-start;background:#fff9f0;border:1px solid #ffd8a8;border-radius:12px;padding:14px;margin:14px 0}
.notstarted .ns-ic{font-size:26px;line-height:1}.notstarted b{font-size:16px;color:#7a3a00}.notstarted p{margin:6px 0 0;font-size:14px;color:#5b4a3a}
.tgrid1{max-width:640px;margin:0 auto}
/* ---- owner view ---- */
.demo-bar.owner{background:#e6fcf5;color:#087f5b}
.otabs{display:flex;gap:4px;background:#fff;border-bottom:1px solid var(--line);padding:0 12px;overflow-x:auto;position:sticky;top:60px;z-index:950}
.otabs button{border:0;background:none;padding:12px 14px;font-weight:700;font-size:14px;color:var(--mute);cursor:pointer;border-bottom:3px solid transparent;font-family:inherit;white-space:nowrap}
.otabs button.on{color:var(--navy);border-bottom-color:var(--teal)}
.otabs .cnt:not(:empty){background:var(--red);color:#fff;border-radius:99px;font-size:11px;padding:1px 7px;margin-left:4px}
.opanel{padding:18px 0 48px}
.op-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.op-h h2{margin:0}
.order,.pack{margin-bottom:14px}
.o-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.o-id{font-size:18px;letter-spacing:-.01em}
.o-h select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);font-family:inherit;font-weight:600}
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:12px}
.qcell{display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;font-family:inherit}
.qcell:hover{border-color:var(--teal)}.qcell b{font-size:13px}.qcell span{font-size:11px;color:var(--mute)}
.qbox{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0;text-align:center}
/* ---- printable QR sheet ---- */
.sheetpage{max-width:900px;margin:0 auto;padding:20px}
.sheet-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.qsheet{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#fff}
@media(max-width:600px){.qsheet{grid-template-columns:repeat(2,1fr)}}
.qc{display:flex;flex-direction:column;align-items:center;padding:14px 8px;border:1px dashed #ccc;break-inside:avoid;page-break-inside:avoid;text-align:center}
.qc svg{width:150px;height:150px}.qc b{font-size:18px;margin-top:4px;letter-spacing:.02em}.qc span{font-size:11px;color:#555}
@media print{.nav,footer,.noprint{display:none!important}body{background:#fff}.sheetpage{padding:0;max-width:none}.qsheet{grid-template-columns:repeat(3,1fr)}.qc{border-color:#bbb}}

@media(max-width:430px){.nav .wrap{padding:0 12px;gap:6px}.brand{font-size:17px;gap:7px}.brand img{width:28px;height:28px}.nav nav{gap:2px}.nav nav a{padding:8px 7px;font-size:13.5px}.nav .btn{padding:8px 10px;font-size:13.5px}}
@media(max-width:360px){.brand span{display:none}}
@media(max-width:430px){.nav nav a{padding:8px 6px}.nav .btn{padding:8px 9px}}

/* Smart Label showcase */
.label-sec{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.label-show{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:center}
.label-fig,.steps-fig{margin:0}
.label-fig img,.steps-fig img{display:block;width:100%;height:auto;border-radius:var(--r);box-shadow:var(--sh);background:#eef2f7}
.label-fig figcaption,.steps-fig figcaption{margin-top:10px;font-weight:700;color:var(--navy);font-size:15px;text-align:center}
.steps-fig{margin-top:32px}.steps-fig figcaption{color:var(--mute);font-weight:600}
.label-facts .ticks{margin:0}.label-facts .ticks li{margin-bottom:8px}
.label-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
@media(max-width:860px){.label-show{grid-template-columns:1fr;gap:20px}.label-cta .btn{flex:1}}
.co-label{display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:center;margin:4px 0 12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.co-label img{display:block;width:100%;height:auto;border-radius:10px}
.co-label p{margin:0;font-size:14px;color:var(--mute)}.co-label p b{display:block;color:var(--navy);font-size:15px;margin-bottom:2px}
@media(max-width:600px){.co-label{grid-template-columns:1fr}}
.a2hs{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#e6fcf5;color:var(--navy);font-size:14px}.a2hs[hidden]{display:none}.a2hs svg{vertical-align:-3px}.a2hs button{border:0;background:transparent;font-size:16px;cursor:pointer;color:var(--mute);padding:4px 6px}
.vid-sec{padding:36px 0 8px}.vid-wrap{max-width:980px;margin:0 auto;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);background:var(--navy);aspect-ratio:16/9}.vid{display:block;width:100%;height:100%;object-fit:cover}.vid-cap{text-align:center;color:var(--mute);margin:12px 0 0;font-size:15px}.vid-cap b{color:var(--navy)}@media(max-width:860px){.vid-sec{padding:24px 0 0}}

.ckpt{width:24px;height:24px;border-radius:50%;background:#1c3d6e;color:#fff;font:700 12px/20px Inter,system-ui,sans-serif;text-align:center;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}.ckpt.last{background:#12b886}
.map,.heromap{isolation:isolate}

/* Oct 13: coming-soon tag + FAQ */
.tag.soon{background:var(--navy);color:#fff}
.faq-sec{background:#fff;border-top:1px solid var(--line)}
.faq{max-width:820px;display:grid;gap:10px}
.faq details{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.faq summary{font-weight:700;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:22px;line-height:1;font-weight:800;color:var(--teal);flex:none}
.faq details[open] summary:after{content:"\2013"}
.faq summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:6px}
.faq p{margin:10px 0 0;color:var(--mute);line-height:1.55}

/* Our story (Oct 13) */
.story-sec{background:var(--bg)}
.story{margin:0;max-width:720px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:var(--r);box-shadow:var(--sh);padding:28px 30px}
.story blockquote{margin:0}
.story blockquote p{font-size:18px;line-height:1.6;color:var(--ink);margin:0 0 14px}
.story .story-promise{font-weight:800;color:var(--navy);font-size:19px;margin:6px 0 0}
.story figcaption{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px;font-size:15px}
.story figcaption span{color:var(--mute);font-size:14px}
@media(max-width:560px){.story{padding:20px 18px}.story blockquote p{font-size:16.5px}.story .story-promise{font-size:17.5px}}

/* Carrier-number linking (Oct 13) */
.steps6 .step h3{font-size:18px}
.track-hint{margin:10px 2px 0}
.linked-via{display:inline-block;background:#e6fcf5;color:#087f5b;border:1px solid #96f2d7;border-radius:999px;padding:5px 12px;font-size:13.5px;font-weight:700;margin:0 0 12px;max-width:100%;overflow-wrap:anywhere}
.link-main{display:grid;gap:18px;max-width:640px}
.link-card .lk-id{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}
.lk-l{display:block;font-weight:700;margin:6px 0 8px}
.lk-in{width:100%;font:inherit;font-size:18px;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;letter-spacing:.02em;min-width:0}
.lk-in:focus{outline:3px solid rgba(18,184,134,.35);border-color:var(--teal)}
.lk-row{display:flex;gap:8px}.lk-row .btn{flex:none}
.lk-tip{margin:8px 0 0}
.lk-err{color:var(--red);font-weight:600;min-height:1.2em;margin:10px 0}
.lk-go{width:100%;padding:14px;font-size:17px}
.lk-ok{font-size:28px;font-weight:800;color:#087f5b}
.lk-pair{font-size:17px;overflow-wrap:anywhere}
#cam video{width:100%;border-radius:10px;margin:10px 0 8px;background:#000}
.link-steps ol{margin:8px 0 0;padding-left:22px;line-height:1.6}.link-steps li{margin:4px 0}
@media(max-width:430px){.lk-row{flex-direction:column}.chips{overflow-wrap:anywhere}}

/* PingTrak Oct 16 */
.gps-fig{max-width:980px;margin:0 auto}.gps-fig img{display:block;width:100%;height:auto;border-radius:var(--r);box-shadow:var(--sh);background:#eef2f7}
.products .ptprod h3{font-size:22px}
#alerts .tag.soon{margin-right:6px}

/* Oct 16 pass 3: phone fixes */
.price .amt small{letter-spacing:0;margin-left:4px}
@media(max-width:720px){.stat b{font-size:22px}}

/* stop fraud + my trackers (Oct 18) */
.fraud-note{max-width:820px;margin:18px 0 0}
.sync{display:flex;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:5px;margin-top:12px}
.sync span{flex:1;display:flex;align-items:center;justify-content:center;line-height:1.2;text-align:center;font-size:14px;font-weight:700;padding:9px 4px;border-radius:9px;color:var(--mute)}
.sync span.on{background:var(--navy);color:#fff}
