@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
.route-name-label{display:block;margin:0 0 13px;color:#81948a;font:8px var(--mono);letter-spacing:1px}.route-name-input{display:block;width:100%;max-width:330px;margin-top:5px;border:1px solid #365248;background:#102428;color:var(--ink);padding:7px 8px;font:11px Manrope;outline:none}.route-name-input:focus{border-color:var(--lime)}
:root{--ink:#edf4ef;--muted:#99aaa2;--deep:#071319;--panel:#0d1d22;--panel2:#10262a;--line:#294139;--lime:#caff5a;--orange:#ffad72;--mono:'DM Mono',monospace}*{box-sizing:border-box}html{background:var(--deep)}body{margin:0;background:radial-gradient(70rem 35rem at 92% -12%,#235048 0%,transparent 58%),var(--deep);color:var(--ink);font-family:Manrope,Arial,sans-serif}.shell{max-width:1200px;margin:auto;padding:0 32px 80px}.topbar{height:86px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--muted);text-decoration:none;font-size:10px;letter-spacing:1.7px;line-height:1.15}.brand b{font-size:13px;color:var(--ink);font-weight:800}.brand-mark{font-size:31px;line-height:0;color:var(--lime)}.status{display:flex;align-items:center;gap:8px;color:#aabbb3;font:11px var(--mono)}.status>span:first-child,.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime)}.hero{min-height:340px;padding:80px 4px 60px;display:flex;align-items:center;justify-content:space-between}.eyebrow{margin:0 0 11px;font:10px var(--mono);color:var(--lime);letter-spacing:1.7px}h1{margin:0;font-size:clamp(41px,5.8vw,68px);letter-spacing:-3.9px;line-height:1.02}h1 i{color:#a9c6b5;font-weight:400}.lead{max-width:530px;margin:22px 0 0;color:var(--muted);font-size:15px;line-height:1.7}.hero-orb{position:relative;width:172px;height:172px;display:grid;place-items:center;border:1px solid #496c5d;border-radius:50%;background:radial-gradient(circle,#285145 0,transparent 65%)}.hero-orb:before,.hero-orb:after{content:"";position:absolute;border:1px solid #3e6556;border-radius:50%;inset:22px}.hero-orb:after{inset:47px}.drone{color:var(--lime);font-size:35px;transform:rotate(45deg)}.hero-orb span{position:absolute;bottom:-24px;color:var(--muted);font:9px var(--mono);white-space:nowrap}.upload-card{min-height:286px;padding:49px 20px;text-align:center;cursor:pointer;border:1px dashed #5a7868;background:linear-gradient(115deg,#112827,#0b1b21);transition:.2s}.upload-card:hover,.upload-card.drag{border-color:var(--lime);background:#13302d;transform:translateY(-1px)}.upload-icon{color:var(--lime);font-size:39px;line-height:1}.upload-card h2{margin:15px 0 6px;font-size:21px;letter-spacing:-.7px}.upload-card p{margin:0 auto 24px;max-width:440px;color:var(--muted);font-size:12px;line-height:1.55}.primary,.export{border:0;background:var(--lime);color:#102016;padding:12px 16px;font:700 11px Manrope;cursor:pointer;transition:.16s}.primary:hover,.export:hover{filter:brightness(1.07);transform:translateY(-1px)}.primary span,.export span{margin-left:7px;font-size:15px}.workflow{display:flex;align-items:center;gap:12px;margin:43px 0 19px;color:#667871}.workflow>div:not(:nth-child(even)){display:flex;align-items:center;gap:8px;font:11px var(--mono);white-space:nowrap}.workflow b{display:grid;place-items:center;width:22px;height:22px;border:1px solid #52665e;border-radius:50%;font-size:9px;font-weight:400}.workflow>div:nth-child(even){height:1px;flex:1;background:#2a4139}.workflow .active{color:var(--ink)}.workflow .active b{border-color:var(--lime);color:var(--lime)}.hidden{display:none}.section-heading,.route-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:44px 0 16px}.section-heading h2,.route-heading h2{margin:0;font-size:24px;letter-spacing:-1.2px}.section-heading h2 span{margin-left:5px;vertical-align:middle;color:var(--lime);font:13px var(--mono)}.text-button{border:0;background:transparent;color:var(--muted);font:12px Manrope;text-decoration:underline;cursor:pointer}.notice{display:flex;gap:12px;margin-bottom:16px;padding:13px 15px;border-left:2px solid var(--lime);background:#172e2d;color:#bccbc3;font-size:12px;line-height:1.55}.notice span{font-weight:800;color:var(--lime)}.mission-view{display:grid;grid-template-columns:minmax(0,1fr) 286px;margin-bottom:16px;border:1px solid var(--line);background:var(--panel)}.map-card{position:relative;min-height:272px;overflow:hidden;background:radial-gradient(circle at 80% 16%,#275246,transparent 36%),linear-gradient(145deg,#142d2c,#0c1b21)}.map-card:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,#000,transparent)}#mapPreview{position:relative;width:100%;height:100%}.map-label,.map-scale{position:absolute;z-index:1;padding:8px 10px;background:#071319dc;color:#bbccc2;font:9px var(--mono);letter-spacing:1px}.map-label{top:13px;left:13px}.map-label .pulse{width:6px;height:6px;margin-right:6px}.map-scale{right:13px;bottom:13px;color:#80978c}.mission-stats{display:grid;align-content:start;gap:17px;padding:25px 22px;border-left:1px solid var(--line)}.mission-stats .eyebrow{margin:0}.mission-stats div{display:flex;flex-direction:column;gap:3px}.mission-stats b{font-size:20px;letter-spacing:-1px}.mission-stats span{color:var(--muted);font-size:10px}.camera-breakdown{margin-top:3px;padding-top:12px;border-top:1px solid var(--line);color:var(--lime);font:10px var(--mono);line-height:1.55}.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--panel)}table{width:100%;min-width:860px;border-collapse:collapse}th{padding:13px 16px;background:#102226;color:#81938c;text-align:left;font:9px var(--mono);letter-spacing:1px}td{padding:15px 16px;border-top:1px solid var(--line);color:#c4d0ca;font-size:12px;vertical-align:top}td:first-child{max-width:195px;overflow:hidden;color:var(--ink);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.data{color:#aab9b1;font:11px var(--mono)}.missing{color:var(--orange)}.camera{display:inline-block;padding:4px 7px;background:#1a3834;color:#c7f4d2;font:10px var(--mono)}.zoom-input{width:60px;padding:6px 6px;border:1px solid #3a554b;background:#14272a;color:var(--lime);font:11px var(--mono);outline:none}.zoom-input:focus{border-color:var(--lime)}.zoom-note{display:block;margin-top:5px;color:#82968b;font:9px var(--mono);white-space:nowrap}.route-heading{margin-top:62px}.route-heading>span{color:var(--muted);font:11px var(--mono);text-align:right}.routes{display:grid;grid-template-columns:1fr 1fr;gap:13px}.route-card{position:relative;display:flex;gap:16px;min-height:218px;padding:22px;border:1px solid var(--line);background:var(--panel);transition:.18s}.route-card:hover{border-color:#607d6e;background:#102126}.route-number{padding-top:1px;color:var(--lime);font:13px var(--mono)}.route-copy h3{margin:0 0 9px;font-size:17px;letter-spacing:-.7px}.route-copy .eyebrow{margin-bottom:7px;font-size:8px}.description{max-width:370px;margin:0 0 15px;color:var(--muted);font-size:12px;line-height:1.55}.route-tags{display:flex;flex-wrap:wrap;gap:5px}.route-tags span{padding:4px 6px;border:1px solid #365248;color:#a8bbb1;font:9px var(--mono)}.export-actions{position:absolute;right:20px;bottom:20px;display:flex;gap:8px}.export-actions .export{position:static;padding:10px 11px;font-size:10px}.earth-export{border:1px solid #516c60;background:transparent;color:#c5d4ca}footer{padding:25px 32px;border-top:1px solid var(--line);color:#687972;text-align:center;font:9px var(--mono);letter-spacing:1px}footer span{padding:0 8px;color:var(--lime)}@media(max-width:720px){.shell{padding:0 18px 48px}.topbar{height:74px}.hero{min-height:0;padding:54px 0 46px}.hero-orb{display:none}.mission-view{grid-template-columns:1fr}.map-card{min-height:210px}.mission-stats{grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:0;padding:18px}.mission-stats .eyebrow,.camera-breakdown{grid-column:1/-1}.routes{grid-template-columns:1fr}.workflow span{display:none}.workflow{gap:8px}.workflow>div:nth-child(even){min-width:16px}.route-card{min-height:202px}.section-heading,.route-heading{align-items:flex-start}.route-heading>span{padding-top:20px}.export-actions{right:16px;bottom:16px}.upload-card{min-height:260px}}
