@font-face{font-family:Manrope;src:url('/panel/assets/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{color-scheme:light;--paper:#f6f5f1;--white:#fff;--ink:#101d30;--muted:#475568;--night:#101c2e;--navy:#152640;--coral:#ffa382;--line:#dadfe2;--accent:#863d29;--gutter:clamp(19px,5vw,72px);--wrap:1320px;font-family:Manrope,system-ui,sans-serif;background:var(--paper);color:var(--ink)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-size:1rem;line-height:1.62}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #2a62a9;outline-offset:4px}
.hero a:focus-visible,.contact a:focus-visible,.contact button:focus-visible,.contact input:focus-visible,.contact textarea:focus-visible,.detail-hero a:focus-visible,.footer a:focus-visible{outline-color:#ffae91}
img{display:block;max-width:100%}
button,input,textarea{font:inherit}
figure,h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:800;line-height:1.07;letter-spacing:-.047em;text-wrap:balance}
h2{font-size:clamp(2.05rem,4.2vw,4rem)}
h3{font-size:1.35rem;letter-spacing:-.034em}
p{max-width:70ch}
[id]{scroll-margin-top:22px}
.wrap{width:min(calc(100% - var(--gutter)*2),var(--wrap));margin-inline:auto}
.section{padding-block:clamp(60px,8vw,114px)}
.skip,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{clip-path:none;width:auto;height:auto;top:8px;left:12px;z-index:9;background:white;padding:10px 16px}
.icon{flex:none;display:inline-block;vertical-align:middle}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 17px;border:1px solid transparent;border-radius:8px;font-size:.89rem;font-weight:800;line-height:1.25;cursor:pointer;text-align:center}
.button .icon,.text-link .icon{width:17px;height:17px}
.primary{background:var(--coral);color:#221a22}
.primary:hover{background:#ffb79d}
.secondary{color:#162743;background:#fff;border-color:#cbd3dd}
.secondary:hover{background:#eef3fa}
.ghost{color:#f9f9fa;border-color:#647185;background:#17263c}
.ghost:hover{background:#22354f}
.kicker{font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:13px}

.top{background:#fcfbf8;border-bottom:1px solid #dbe0e2}
.top-inner{min-height:76px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px}
.brand{width:max-content;display:inline-flex;align-items:center;gap:9px;font-size:1.55rem;font-weight:800;letter-spacing:-.075em;line-height:1}
.brand-mark{display:block;position:relative;flex:none;width:44px;height:39px;overflow:hidden;border-radius:6px;background:#ebe9e1}
.brand-mark img{width:100%;height:100%;object-fit:cover}
.top nav{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.3vw,35px);font-size:.87rem;font-weight:800}
.top nav a,.top-demo{padding-block:12px}
.top nav a:hover,.top-demo:hover,.footer a:hover{text-decoration:underline;text-underline-offset:5px}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:17px;font-size:.86rem;font-weight:800;white-space:nowrap}
.login{border-color:#26354a;color:var(--ink);min-height:42px;padding-inline:13px}
.login:hover{color:white;background:var(--night)}
.top-call{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:7px;color:#1b416b;font-size:.97rem;font-weight:800;white-space:nowrap}
.top-call:hover{text-decoration:underline;text-underline-offset:4px}
.top-call .icon{width:17px;height:17px}
.call-mobile{display:none}

.hero{background:radial-gradient(ellipse at 65% 99%,#263b5b 0%,#17263d 34%,#101c2e 70%);color:#f9fafc;overflow:hidden;border-bottom:1px solid #293b55}
.hero-inner{position:relative;padding-top:clamp(48px,5.7vw,84px)}
.hero-copy{position:relative;z-index:2;max-width:1140px}
.hero-kicker{color:#ffad91}
.hero h1{font-size:clamp(2.8rem,5.8vw,6.15rem);letter-spacing:-.075em;line-height:1.01;text-wrap:initial}
.hero h1 span{color:#ffad91}
.hero-lead{margin-top:22px;color:#d4deec;max-width:560px;font-size:clamp(1rem,1.75vw,1.21rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:26px}
.hero-visual{position:relative;width:min(100%,1120px);margin:clamp(28px,3.25vw,44px) auto 0;isolation:isolate;padding:0 5% 38px 0}
.hero-orbit{position:absolute;z-index:-1;inset:-160px -170px -40%;transform:rotate(-9deg);border:1px solid #48617e66;border-radius:48%;background:repeating-radial-gradient(ellipse at 52% 68%,transparent 0 51px,#6683a126 52px 53px,transparent 54px 86px);mask-image:linear-gradient(transparent 7%,black 37%,black 72%,transparent)}
.hero-desktop{width:89%;margin-left:2%;position:relative;filter:drop-shadow(0 26px 30px #070e1b99)}
.laptop-screen,.monitor-frame{padding:clamp(5px,1vw,12px);background:#111a28;border:1px solid #6a7c91;border-radius:clamp(8px,1.45vw,18px)}
.laptop-screen{box-shadow:inset 0 0 0 2px #32445b;overflow:hidden}
.laptop-screen img,.monitor-frame img{width:100%;height:auto;border-radius:clamp(4px,.7vw,8px)}
.laptop-base{height:clamp(10px,1.7vw,22px);margin-inline:-4.2%;background:linear-gradient(#7b8796 0 14%,#43566c 16% 55%,#25374d 80%);clip-path:polygon(0 0,100% 0,98% 64%,93% 100%,7% 100%,2% 64%);position:relative}
.laptop-base::after{content:"";position:absolute;top:0;left:43%;width:14%;height:42%;background:#26384b;border-radius:0 0 10px 10px}
.phone-frame{border:1px solid #708196;background:#111b2a;border-radius:clamp(14px,2vw,27px);padding:5px;overflow:hidden;box-shadow:0 16px 34px #101b3035}
.phone-frame img{width:100%;height:auto;border-radius:clamp(9px,1.6vw,21px)}
.hero-phone{width:19%;max-width:210px;position:absolute;right:2%;bottom:31px;transform:rotate(4deg);border-color:#768eab;box-shadow:-12px 20px 32px #0b1327b8}
.hero-caption{position:relative;display:block;margin:13px 0 0 2%;font-size:.72rem;color:#c2cfdf}
.product-strip{background:#17263b;color:white;border-bottom:1px solid #334860}
.strip-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.strip-inner a{min-height:88px;display:flex;align-items:center;gap:12px;padding:14px clamp(8px,2.5vw,32px);border-right:1px solid #3b4d65;font-weight:800;font-size:.94rem}
.strip-inner a:first-child{border-left:1px solid #3b4d65}
.strip-inner a:hover{background:#233951}
.strip-inner .icon{color:#ffac91}
.strip-inner small{display:block;color:#c8d4e2;font-size:.75rem;font-weight:600}

.split-title{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:clamp(25px,6vw,88px);align-items:end;margin-bottom:34px}
.split-title>p{color:var(--muted);max-width:42ch}
.gps-showcase{background:#e9eef4}
.gps-showcase .split-title{margin-bottom:29px}
.gps-pair{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:16px;align-items:start}
.gps-card{display:grid;gap:10px;padding:clamp(14px,2.2vw,27px);background:#fcfdff;border:1px solid #cfd9e5;border-radius:14px}
.gps-card h3{font-size:clamp(1.35rem,2.2vw,2.05rem)}
.gps-card>p{color:var(--muted);font-size:.91rem}
.gps-figure{min-width:0}
.gps-screen{display:block}
.gps-screen picture{display:block}
.gps-screen:hover{border-color:#274e7f}
.gps-figure figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:3px 11px;padding-top:7px;color:#475a73}
.gps-figure figcaption .text-link{margin-left:auto}
.gps-crews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.gps-crews>div{background:#eaf0f7;border-radius:8px;padding:9px 10px;font-size:.77rem;color:#2b435f}
.gps-crews dt{font-weight:800}
.gps-crews dd{margin:2px 0 0}
.gps-history{background:#edf1f6}
.showcase{background:#fff}
.gallery{background:#edf0f3;border:1px solid #d9e0e8;border-radius:16px;overflow:hidden}
.gallery-links{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:11px clamp(9px,2vw,22px);border-bottom:1px solid #d7dee7}
.gallery-links a{display:inline-flex;align-items:center;min-height:42px;padding:7px 12px;border-radius:7px;color:#435469;font-size:.85rem;font-weight:800}
.gallery-links a:hover{background:#dfe8f1}
.gallery-links a[aria-current]{background:#192c48;color:#fff}
.gallery-frame{padding:clamp(8px,2.1vw,26px)}
.gallery-frame .monitor-frame{max-width:1120px;margin-inline:auto;min-height:100px}
.gallery-frame figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;max-width:1120px;margin:13px auto 0;font-size:.8rem;color:#40536b}
.gallery-frame figcaption a{font-weight:800;padding:4px 0}
.gallery-frame figcaption .icon{width:15px;height:15px}
.gallery-frame figcaption a:hover{text-decoration:underline}
.map-credit{text-decoration:underline;text-underline-offset:3px;font-size:.76rem}.detail-visual .map-credit{margin-left:8px}
.demo-label{color:#506178;font-size:.76rem}
#gallery-caption{font-weight:800}

.module-section{background:#f5f3ef}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #d5dce3;border-width:1px 0 0 1px}
.module{display:flex;flex-direction:column;min-height:212px;align-items:flex-start;padding:clamp(18px,2.7vw,34px);border:1px solid #d5dce3;border-width:0 1px 1px 0;background:#fcfbf8}
.module-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#e7edf3;color:#203f67}
.module h3{margin-top:13px}
.module p,.detail-grid p{margin-top:9px;color:var(--muted);font-size:.92rem}
.text-link{display:inline-flex;align-items:center;gap:5px;min-height:35px;font-size:.83rem;font-weight:800;color:#284e7f}
a.text-link:hover,.industry-card:hover .text-link{text-decoration:underline;text-underline-offset:4px}
.module .text-link{margin-top:auto;padding-top:6px}

.apps{background:#e9edf1}
.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.app-card{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:10px;padding:clamp(18px,3vw,35px);border-radius:15px;overflow:hidden;min-height:365px}
.manager-card{background:#fbfcfe;border:1px solid #d8e0e7}
.worker-card{background:#142239;color:#f5f8fc;border:1px solid #263a55}
.app-card .kicker{display:flex;align-items:center;gap:7px;font-size:.67rem}
.app-card .kicker .icon{width:17px;height:17px}
.worker-card .kicker{color:#ffac91}
.app-copy h3{font-size:clamp(1.45rem,2.85vw,2.55rem);text-wrap:initial}
.app-copy p{margin:13px 0 16px;color:var(--muted);font-size:.93rem}
.worker-card p{color:#d5e0ee}
.worker-card .text-link{color:#ffd3c4}
.app-screen{justify-self:center;align-self:end;margin-bottom:calc(clamp(18px,3vw,35px) * -1 - 24px);width:min(100%,176px);transform:rotate(4deg)}
.worker-card .app-screen{transform:rotate(-4deg)}
.install{margin-top:21px;padding:24px clamp(16px,3vw,34px);border-radius:12px;border:1px solid #ced8e3;background:#f9fbfd}
.install>p{margin:9px 0 16px;color:var(--muted);font-size:.9rem}
.install-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.install details{background:white;border:1px solid #d2dce7;border-radius:7px;padding-inline:11px;font-size:.87rem}
.install summary{font-weight:800;cursor:pointer;padding-block:11px}
.install details p{padding:0 0 13px;color:var(--muted)}

.industries{background:#fff}
.industry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.industry-card{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(16px,2.1vw,28px);border:1px solid #d8dde3;border-radius:13px;background:#faf8f4}
a.industry-card:hover{border-color:#a1acb8;background:#f2f5f7}
.industry-card h3{margin-top:14px;font-size:clamp(1.22rem,1.9vw,1.63rem);text-wrap:initial}
.industry-card p{margin:9px 0;color:var(--muted);font-size:.91rem}
.industry-card .text-link{margin-top:auto}
.industry-other{background:#ecf1f7}
.contact{background:#16253c;color:#f5f8fc}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,7vw,100px)}
.contact .kicker{color:#ffab8f}
.contact-intro>p:not(.kicker){margin-top:17px;color:#d1deef;max-width:43ch}
.contact address{margin-top:28px;font-style:normal;display:grid;gap:7px;font-size:.94rem;color:#d1deef}
.contact address strong{color:#fff;font-size:1.08rem}
.contact address a{width:max-content;margin-top:5px;font-weight:800;color:#ffb49b}
.contact address .icon{width:18px}
.contact address .contact-call{display:inline-flex;align-items:center;gap:11px;width:fit-content;max-width:100%;min-height:48px;padding:7px 12px;border:1px solid #6b819e;border-radius:8px;background:#223650;color:#fff;font-size:clamp(1.38rem,3vw,2.15rem);letter-spacing:.015em}
.contact address .contact-call:hover{background:#304965}
.contact address .contact-call .icon{width:23px;height:23px;color:#ffb49b}
.contact-form{display:grid;align-content:start;gap:14px;background:#1d2d46;padding:clamp(16px,3vw,31px);border:1px solid #465a74;border-radius:12px}
.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.contact-form label{display:grid;gap:5px;font-size:.86rem;font-weight:800}
.contact-form label span{font-weight:500;color:#ced9e8}
.contact-form input:not([type="hidden"]),.contact-form textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #788ba3;border-radius:6px;background:#132239;color:white;font-size:.93rem;font-weight:550}
.contact-form textarea{resize:vertical}
.contact-form textarea::placeholder{color:#b5c4d6}
.form-note,.form-preview{color:#d0dbea;font-size:.8rem}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.contact-form button{justify-self:start}
.contact-form button:disabled{opacity:.75;cursor:wait}
.form-notice{padding:10px 12px;background:#ddf5e6;color:#193d2a;border-radius:6px;font-weight:800}
.form-error{background:#ffe8e2;color:#681f0d}
.contact-response{padding-block:26px}
.contact-response h1{font-size:clamp(1.8rem,4vw,2.75rem)}

.footer{color:#d3deeb;background:#101c2e;padding:37px 0 22px;font-size:.85rem}
.footer-top{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.footer .brand{color:white}
.footer nav{display:flex;gap:8px 20px;flex-wrap:wrap;margin:20px 0}
.footer nav a{padding-block:6px}
.footer-bottom{border-top:1px solid #425269;display:flex;gap:10px 20px;justify-content:space-between;flex-wrap:wrap;padding-top:17px}

.detail-hero{background:linear-gradient(120deg,#111e33,#263b5b);color:#fff;padding:clamp(38px,7vw,85px) 0}
.detail-hero-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(20px,5vw,70px)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;color:#e5eaf2;font-size:.8rem;margin-bottom:21px}
.breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.detail-hero h1,.plain h1{font-size:clamp(2.2rem,5vw,4.9rem);text-wrap:initial}
.detail-hero p{margin:16px 0 22px;color:#d7e0ed;font-size:1.03rem}
.detail-visual figcaption{margin-top:8px}
.detail-visual .demo-label{color:#d2dfef}
.detail-phone{width:min(57%,215px);justify-self:center}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:27px}
.detail-grid article{padding:clamp(15px,3vw,32px);background:#fff;border:1px solid #d6dde5;border-radius:9px}
.detail-grid h3{margin-top:15px}
.detail-related{background:#e8edf3}
.related-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.plain{max-width:780px}
.plain h2{margin-top:29px;font-size:clamp(1.3rem,3vw,1.85rem)}
.plain p{margin-top:12px}
.plain a{text-decoration:underline}

@media(max-width:1050px){
  .top-inner{gap:14px}.top-demo{display:none}
  .industry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-card{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);min-height:310px}
}
@media(max-width:880px){
  .top-inner{grid-template-columns:1fr auto;gap:0 10px;padding-top:9px;min-height:0}
  .top nav{grid-row:2;grid-column:1/-1;gap:clamp(14px,5vw,33px);border-top:1px solid #e0e3e8;margin-top:8px;min-height:42px}
  .top nav a{padding-block:8px}.brand{font-size:1.35rem}.brand-mark{width:39px;height:34px}
  .top-actions{gap:8px}
  .top-call{border:1px solid #a5bed7;background:#e8f0f7;border-radius:8px;padding-inline:10px;font-size:.86rem}
  .top-call:hover{background:#dce9f4}
  .call-number{display:none}.call-mobile{display:inline}
  .login{min-height:44px}
}
@media(max-width:760px){
  .gps-pair{grid-template-columns:1fr}
  .hero-inner{padding-top:42px}.hero h1{font-size:clamp(2.65rem,8.5vw,4.6rem)}
  .hero-visual{padding-bottom:24px}.hero-phone{bottom:43px;right:0;width:21%;padding:3px}.hero-caption{max-width:76%}
  .hero-lead{margin-top:16px}.hero-actions{margin-top:20px}
  .split-title,.contact-grid,.detail-hero-inner{grid-template-columns:1fr;gap:13px}.split-title{margin-bottom:23px}
  .module-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module{min-height:0}
  .app-grid{grid-template-columns:1fr}.app-card{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:280px}
  .app-screen{width:min(100%,156px)}.install-grid{grid-template-columns:1fr}
  .detail-visual:not(.detail-phone){margin-top:10px}
}
@media(max-width:460px){
  .top .brand{font-size:1.2rem;gap:6px}
  .top-actions{gap:6px}
  .top-call{gap:5px;padding-inline:7px;font-size:.82rem}
  .top-call .icon{width:14px;height:14px}
  .top .login .icon{display:none}
  .top .login{padding-inline:7px;font-size:.82rem}
  .gps-figure figcaption .text-link{margin-left:0}
  .gps-crews{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero h1{font-size:clamp(2.2rem,10.1vw,3.2rem)}.hero-copy .button{font-size:.78rem;min-height:43px;padding-inline:10px;gap:5px}
  .strip-inner a{display:grid;align-content:start;gap:5px;padding:10px 7px;font-size:.75rem;line-height:1.25;min-height:77px}.strip-inner small{font-size:.65rem;margin-top:3px}
  .strip-inner .icon{width:18px;height:18px}
  .module{padding:13px}.module h3{font-size:1.09rem}.module p{font-size:.83rem}.module .text-link{font-size:.75rem}
  .industry-grid,.detail-grid,.form-fields{grid-template-columns:1fr}
  .app-card{gap:6px;padding-inline:15px;min-height:265px}
  .app-copy p{font-size:.84rem}.app-copy .button{font-size:.72rem;min-height:40px;padding:7px}
  .app-copy .button .icon{display:none}
  .gallery-links{gap:2px}.gallery-links a{font-size:.73rem;min-height:37px;padding-inline:7px}
  #gallery-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@media(max-width:368px){.top .brand>span:last-child{display:none}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
