:root { --ink:#071b2b; --muted:#526874; --teal:#0c6875; --aqua:#32b8b0; --mist:#eff7f5; --line:#d7e7e3; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-height:100vh; color:var(--ink); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--mist); }
.site-header { height:84px; display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:auto; padding:0 32px; }
.brand img { display:block; width:142px; height:auto; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:0 22px; border-radius:999px; text-decoration:none; border:0; font:700 14px/1 inherit; cursor:pointer; }
.button-primary { color:white; background:var(--teal); box-shadow:0 12px 30px rgba(12,104,117,.2); }
.button-primary:hover { background:#084f59; }
.button-quiet { color:var(--teal); border:1px solid var(--line); background:rgba(255,255,255,.65); }
.hero { min-height:650px; max-width:1240px; margin:auto; padding:72px 32px 96px; display:grid; grid-template-columns:1.08fr .92fr; gap:80px; align-items:center; }
.eyebrow { color:var(--teal); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin:0 0 18px; }
h1 { margin:0; max-width:760px; font-size:clamp(44px,6vw,78px); line-height:.98; letter-spacing:-.055em; }
.lead { max-width:650px; margin:28px 0; color:var(--muted); font-size:19px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:25px; }
.text-link { color:var(--teal); font-weight:700; text-decoration:none; font-size:14px; }
.signal-card { min-height:470px; padding:22px; border-radius:32px; background:#dcefeb; box-shadow:0 30px 80px rgba(16,65,72,.16); transform:rotate(1.5deg); }
.signal-map { height:340px; position:relative; overflow:hidden; border-radius:22px; background:linear-gradient(135deg,#0b3944,#116876); }
.signal-map:before,.signal-map:after { content:""; position:absolute; inset:-20%; background:repeating-linear-gradient(30deg,transparent 0 58px,rgba(255,255,255,.06) 59px 61px); }
.signal-map:after { transform:rotate(90deg); }
.route { position:absolute; border:3px solid var(--aqua); border-color:var(--aqua) transparent transparent var(--aqua); border-radius:50%; z-index:2; }
.route-one { width:360px; height:220px; left:45px; top:105px; transform:rotate(-20deg); }
.route-two { width:240px; height:310px; right:-20px; top:-65px; transform:rotate(40deg); opacity:.55; }
.vehicle-dot { position:absolute; width:18px; height:18px; left:52%; top:46%; z-index:3; border:5px solid white; border-radius:50%; background:var(--aqua); box-shadow:0 0 0 9px rgba(50,184,176,.25); }
.signal-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:20px 5px 0; }
.signal-stats strong,.signal-stats span { display:block; }.signal-stats strong { font-size:17px; }.signal-stats span { margin-top:5px; color:var(--muted); font-size:11px; }
.capabilities { background:var(--white); padding:90px max(32px,calc((100vw - 1176px)/2)); display:grid; grid-template-columns:repeat(3,1fr); gap:55px; }
.capabilities article>span { color:var(--aqua); font-weight:800; font-size:12px; }.capabilities h2 { font-size:24px; letter-spacing:-.025em; }.capabilities p { color:var(--muted); line-height:1.65; }
footer { display:flex; justify-content:space-between; padding:32px max(32px,calc((100vw - 1176px)/2)); color:var(--muted); font-size:12px; }
.login-layout { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.login-context { padding:58px clamp(32px,7vw,110px); color:white; display:flex; flex-direction:column; justify-content:space-between; background:radial-gradient(circle at 75% 20%,rgba(50,184,176,.35),transparent 32%),linear-gradient(150deg,#062b35,#0b5965); }
.login-context .brand img { filter:brightness(0) invert(1); }.login-context h1 { max-width:560px; font-size:clamp(44px,6vw,72px); }.login-context>div>p:last-child { max-width:520px; color:#c1dddc; font-size:18px; line-height:1.65; }.login-context .eyebrow { color:#72d7d0; }.security-note { color:#a8cecc; font-size:13px; }
.login-panel { display:flex; align-items:center; justify-content:center; padding:38px; background:white; }
.login-form { width:min(100%,420px); display:grid; gap:24px; }.login-form h2 { margin:0; font-size:36px; letter-spacing:-.04em; }.form-intro,.support-copy { color:var(--muted); line-height:1.5; }.support-copy { text-align:center; font-size:12px; }
.login-form label { display:grid; gap:9px; color:#28434d; font-weight:700; font-size:13px; }.login-form input { width:100%; height:52px; padding:0 16px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fbfdfd; font-size:16px; outline:none; }.login-form input:focus { border-color:var(--teal); box-shadow:0 0 0 4px rgba(12,104,117,.1); }.button-full { width:100%; }.form-error { margin:0; padding:12px 14px; color:#8f2832; background:#fff0f1; border-radius:10px; font-size:13px; }
@media(max-width:800px){.hero,.login-layout{grid-template-columns:1fr}.hero{padding-top:40px;gap:45px}.signal-card{min-height:390px}.signal-map{height:280px}.capabilities{grid-template-columns:1fr;gap:28px}.login-context{min-height:360px;gap:55px}.login-panel{padding:60px 24px}.hero-actions{align-items:flex-start;flex-direction:column}.site-header{padding:0 20px}}
