@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#14201c;--muted:#64736b;--line:#d8e1d9;--paper:#f5f7f1;--lime:#c9e86b;--orange:#ef805a;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk',sans-serif}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(20,32,28,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(20,32,28,.05) 1px,transparent 1px);background-size:48px 48px}.shell{max-width:1240px;margin:auto;padding:28px 5vw 80px}.masthead{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:22px}.kicker,.eyebrow,output{font:500 11px 'DM Mono',monospace;letter-spacing:0;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:18px;margin-top:7px}.status{font:500 12px 'DM Mono',monospace;color:var(--muted);display:flex;gap:9px;align-items:center}.status i{width:8px;height:8px;background:#78b847;border-radius:50%;display:inline-block}.intro{max-width:700px;padding:90px 0 65px}.eyebrow{color:var(--orange);text-transform:uppercase;margin-bottom:16px}.intro h2{font-size:clamp(40px,6vw,76px);line-height:.98;letter-spacing:-2px}.intro em{font-style:normal;color:#71847a}.lede{font-size:16px;color:var(--muted);line-height:1.6;max-width:480px;margin-top:25px}.workspace{display:grid;grid-template-columns:minmax(280px,390px) 1fr;gap:22px}.panel{background:var(--white);border:1px solid var(--line);padding:28px}.panel-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}.panel-heading>span{font:500 11px 'DM Mono',monospace;color:var(--orange)}h3{font-size:17px}output{margin-left:auto}.form-panel label{display:block;font-size:12px;font-weight:600;margin:19px 0;color:var(--muted)}input,select,textarea{display:block;width:100%;font:14px 'Space Grotesk',sans-serif;color:var(--ink);border:1px solid var(--line);background:#fbfcf9;padding:12px;margin-top:8px;border-radius:0}textarea{resize:vertical;min-height:75px}button{width:100%;border:0;background:var(--ink);color:white;padding:15px;font:600 13px 'Space Grotesk',sans-serif;text-align:left;margin-top:11px;cursor:pointer}button span{float:right;font-size:18px;line-height:12px}.results{min-height:290px}.empty{height:290px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--muted);gap:9px}.empty strong{color:var(--ink);font-size:15px}.recommendation{border-bottom:1px solid var(--line);padding:15px 0}.recommendation:first-child{padding-top:0}.rec-top{display:flex;justify-content:space-between}.rec-top strong{font-size:17px}.score{font:500 12px 'DM Mono',monospace;color:#77962e;background:#eff8cf;padding:5px 8px}.rec-meta,.rec-reasons{font-size:12px;color:var(--muted);margin-top:8px}.rec-reasons{color:var(--ink);line-height:1.5}.catalog-section{margin-top:86px}.section-title{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px}.section-title h2{font-size:32px}.catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:20px}.uav{background:var(--white);padding:22px;min-height:145px}.uav small{font:11px 'DM Mono',monospace;color:var(--orange)}.uav h3{margin:12px 0 18px}.specs{display:flex;gap:18px;font:11px 'DM Mono',monospace;color:var(--muted)}@media(max-width:760px){.shell{padding:20px 20px 55px}.intro{padding:60px 0 42px}.workspace{grid-template-columns:1fr}.catalog{grid-template-columns:1fr}.masthead{gap:20px}.status{font-size:10px}.section-title{display:block}.section-title h2{margin-top:10px}}
.map-screen{position:relative;width:calc(100% + 10vw);height:calc(100vh - 105px);min-height:620px;margin:-47px -5vw -80px;overflow:hidden;background:#101b20}.ecosystem-map{position:absolute;inset:0;width:100%;height:100%}.maplibregl-canvas{outline:none}.map-overlay{position:absolute;z-index:3;color:#fff}.map-copy{top:42px;left:42px;pointer-events:none;text-shadow:0 2px 18px #101b20}.map-copy h1{font-size:clamp(38px,5vw,72px);line-height:.94;letter-spacing:-3px}.map-copy p:last-child{color:#a8bab7;margin-top:20px}.map-controls{right:28px;top:28px;width:225px;padding:18px;background:rgba(16,27,32,.88);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px)}.map-controls strong{display:block;font:11px 'DM Mono';text-transform:uppercase;color:#c9e86b;margin-bottom:14px}.map-controls label{display:flex;align-items:center;gap:8px;color:#d8e5e1;font:11px 'DM Mono';padding:7px 0;border-top:1px solid rgba(255,255,255,.1);text-transform:capitalize}.map-controls label i{width:8px;height:8px;border-radius:50%;display:inline-block}.map-controls input{accent-color:#c9e86b}.map-detail{position:absolute;z-index:4;right:28px;bottom:28px;width:300px;padding:24px;background:rgba(16,27,32,.94);color:#fff;border-left:3px solid #c9e86b;box-shadow:0 12px 40px rgba(0,0,0,.3)}.map-detail h2{font-size:23px;margin:7px 0}.map-detail p:not(.eyebrow){color:#b2c1bf;font-size:13px;line-height:1.5}.map-detail small{display:block;color:#c9e86b;font:10px 'DM Mono';margin-top:16px}.detail-close{position:absolute;right:12px;top:8px;background:none;border:0;color:#fff;font-size:22px;cursor:pointer}.map-hover-detail{opacity:.94}.maplibregl-ctrl-group{background:#142127;border:1px solid rgba(255,255,255,.2)}.maplibregl-ctrl-group button{filter:invert(1)}
.map-node-fallback{position:absolute;inset:0;z-index:2;pointer-events:none}.fallback-node{position:absolute;left:var(--x);top:var(--y);width:12px;height:12px;padding:0;border:2px solid rgba(255,255,255,.85);border-radius:50%;background:var(--node-color);box-shadow:0 0 8px 3px var(--node-color),0 0 20px 6px color-mix(in srgb,var(--node-color),transparent 70%);transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer}.fallback-node:hover{width:18px;height:18px;z-index:3}.fallback-node.is-hidden{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.platform{display:block;min-height:100vh;background:#101b20}.main{min-width:0}.site-header{position:relative;z-index:10;height:92px;display:flex;align-items:center;gap:28px;padding:0 24px;background:linear-gradient(90deg,#111f50 0%,#29204c 45%,#743787 100%);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.28)}.header-brand{width:230px;color:#fff;text-decoration:none;display:flex;align-items:center;gap:14px}.header-brand strong{font-size:31px;letter-spacing:-2px;color:#e79b29}.header-brand span{font:9px 'DM Mono';line-height:1.35;color:#d9e5ed;border-left:1px solid rgba(255,255,255,.4);padding-left:12px}.ecosystem-search{height:58px;width:365px;display:flex;align-items:center;gap:12px;padding:0 18px;border-radius:15px;background:#16162b;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 8px 20px rgba(0,0,0,.2)}.ecosystem-search span{font-size:28px;color:#fff}.ecosystem-search input{width:100%;border:0;outline:0;background:transparent;color:#fff;font:600 11px 'DM Mono';text-transform:uppercase}.ecosystem-search input::placeholder{color:#ffae20;opacity:1}.header-nav{height:100%;display:flex;align-items:center;gap:4px;flex:1}.header-nav .nav-item{height:100%;width:auto;min-width:83px;display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center;border:0;border-bottom:3px solid transparent;background:transparent;color:#c9c5d4;padding:0 10px;text-align:center;font-size:24px;cursor:pointer}.header-nav .nav-item span{font:11px 'DM Mono';text-transform:uppercase}.header-nav .nav-item:hover,.header-nav .nav-item.active{color:#ffae20}.header-nav .nav-item.active{border-bottom-color:#ffae20;background:rgba(255,255,255,.05)}.header-nav .nav-item.locked{opacity:.5;cursor:not-allowed}.header-account{display:flex;align-items:center;gap:12px;padding-left:18px;border-left:1px solid rgba(255,255,255,.18);font:10px 'DM Mono';white-space:nowrap}.header-account button{border:0;background:transparent;color:#fff;cursor:pointer;font:11px 'DM Mono'}.header-account #refresh{font-size:22px}.header-account .role-badge{color:#c9e86b;border-color:rgba(201,232,107,.7)}.view{padding:0;max-width:none}.map-screen{width:100%;height:calc(100vh - 92px);min-height:620px;margin:0}.map-copy{top:42px;left:42px}.page-intro,.activity-list,.directory-list,.filters{margin-left:5vw;margin-right:5vw}.page-intro{padding-top:47px}
@media(max-width:1100px){.site-header{gap:12px;padding:0 14px}.header-brand{width:190px}.header-brand strong{font-size:25px}.header-brand span{display:none}.ecosystem-search{width:240px}.header-nav .nav-item{min-width:65px}.header-nav .nav-item span{font-size:9px}.header-account{gap:6px;padding-left:8px}.header-account #account-label{display:none}}
@media(max-width:760px){.site-header{height:auto;min-height:78px;flex-wrap:wrap;padding:12px}.header-brand{width:auto}.ecosystem-search{order:3;width:100%;height:42px}.header-nav{order:2;height:54px;overflow:auto}.header-nav .nav-item{min-width:74px}.header-account{margin-left:auto}.map-screen{height:calc(100vh - 132px);min-height:540px}.map-controls{right:12px;top:12px;width:190px}.map-copy{top:20px;left:20px}.map-detail{right:12px;bottom:12px;width:calc(100% - 24px)}}
/* Stage one platform shell */
.hidden{display:none!important}.login-view{min-height:100vh;display:grid;grid-template-columns:1fr 460px;gap:10vw;align-items:center;padding:7vw 10vw;background:linear-gradient(135deg,#eaf1ee,#faf8f1)}.login-mark{align-self:start;padding-top:10px;display:flex;flex-direction:column;gap:10px;font:500 11px 'DM Mono',monospace;color:var(--muted)}.login-mark span{font:700 88px 'Space Grotesk';letter-spacing:-7px;color:var(--ink)}.login-card{background:var(--white);padding:48px;border:1px solid var(--line);box-shadow:16px 16px 0 rgba(18,27,32,.06)}.login-card h1{font-size:43px;line-height:.99;letter-spacing:-2px}.login-card em,.welcome em{font-style:normal;color:#7770d8}.login-copy{color:var(--muted);line-height:1.55;margin:24px 0 34px}.login-card label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:15px 0}.login-card input,.filters input,.filters select{width:100%;border:1px solid var(--line);background:#fbfcfa;padding:13px;margin-top:7px}.login-card button{width:100%;background:var(--ink);color:#fff;border:0;padding:15px;text-align:left;cursor:pointer}.login-card button span{float:right;font-size:19px}.error{color:#c5564a;font-size:12px;margin-top:10px;min-height:15px}.demo-hint{font:10px 'DM Mono',monospace;color:var(--muted);line-height:1.7;margin-top:28px}.platform{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:#142127;color:#dce8e7;padding:30px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:baseline;gap:9px;padding:0 14px 56px}.brand strong{font-size:29px;letter-spacing:-2px}.brand span{font:10px 'DM Mono';color:#8da09e}.nav-item{width:100%;display:flex;gap:12px;align-items:center;border:0;background:transparent;color:#aabbbb;padding:13px 14px;text-align:left;cursor:pointer;font-size:13px}.nav-item b{font:10px 'DM Mono';color:#687d7d}.nav-item:hover,.nav-item.active{background:#23363b;color:#fff}.nav-item.active{border-left:3px solid #c9e86b}.nav-item.locked{opacity:.42;cursor:not-allowed}.nav-item small{font:8px 'DM Mono';margin-left:auto;color:#9eaaa8}.nav-divider{border-top:1px solid #304247;margin:23px 14px}.sidebar-foot{margin-top:auto;border-top:1px solid #304247;padding:18px 14px 0;display:flex;gap:8px;align-items:center;font:10px 'DM Mono';color:#9fb1b0}.live-dot{width:7px;height:7px;background:#b6e35e;border-radius:50%}.sidebar-foot #logout{margin-left:auto;background:transparent;border:0;color:#aabbbb;font:10px 'DM Mono';cursor:pointer}.main{min-width:0}.topbar{height:105px;padding:30px 5vw 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;background:rgba(255,255,255,.35)}.topbar h2{font-size:19px;margin-top:8px}.top-actions{display:flex;gap:12px;align-items:center}.role-badge{font:10px 'DM Mono';color:#7770d8;border:1px solid #bbb8ed;padding:7px 10px}.icon-button{border:1px solid var(--line);background:var(--white);width:34px;height:34px;cursor:pointer}.view{padding:47px 5vw 80px;max-width:1300px}.welcome{display:flex;justify-content:space-between;align-items:end;padding-bottom:48px}.welcome h1{font-size:clamp(42px,5vw,68px);line-height:.97;letter-spacing:-3px}.welcome p:last-child,.page-intro>p{color:var(--muted);line-height:1.55;max-width:400px;margin-top:23px}.welcome-mark{font-size:15vw;line-height:.6;color:#d9e2dd;font-weight:700;letter-spacing:-12px}.welcome-mark span{font:12px 'DM Mono';color:var(--orange);vertical-align:top;letter-spacing:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:25px}.stat-grid article{background:var(--white);padding:20px;display:flex;flex-direction:column;gap:8px}.stat-grid small{font:10px 'DM Mono';color:var(--muted)}.stat-grid strong{font-size:38px;letter-spacing:-2px}.stat-grid span{font-size:11px;color:var(--muted)}.stat-accent{background:#c9e86b!important}.home-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:25px}.panel{background:var(--white);border:1px solid var(--line);padding:25px}.panel-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.panel-head h3{font-size:17px;margin-top:8px}.text-button{border:0;background:transparent;color:#7770d8;font-size:12px;cursor:pointer}.mini-map,.full-map{position:relative;background:#e1ebe5;overflow:hidden;background-image:linear-gradient(130deg,transparent 48%,rgba(119,112,216,.12) 49%,transparent 50%),linear-gradient(35deg,transparent 48%,rgba(244,134,92,.11) 49%,transparent 50%)}.mini-map{height:245px}.mini-map:before,.full-map:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#b4c8bd 1px,transparent 1px);background-size:18px 18px}.map-label{position:absolute;bottom:15px;left:16px;font:10px 'DM Mono';color:#83988d}.map-node{position:absolute;border:0;border-radius:50%;width:12px;height:12px;background:#7770d8;box-shadow:0 0 0 5px rgba(119,112,216,.14);z-index:1;cursor:pointer}.mini-map .map-node:nth-child(1){left:15%;top:22%}.mini-map .map-node:nth-child(2){left:35%;top:52%}.mini-map .map-node:nth-child(3){left:59%;top:30%}.mini-map .map-node:nth-child(4){left:73%;top:65%}.mini-map .map-node:nth-child(5){left:45%;top:18%}.mini-map .map-node:nth-child(6){left:24%;top:75%}.map-node span{display:none}.activity-row{display:grid;grid-template-columns:54px 1fr 20px;gap:13px;align-items:center;border-top:1px solid var(--line);padding:16px 0}.activity-row>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.activity-row strong{font-size:13px}.activity-row span{font-size:11px;color:var(--muted)}.activity-date{border-right:1px solid var(--line);display:flex;flex-direction:column}.activity-date strong{font-size:23px}.activity-date span{font:10px 'DM Mono';color:var(--orange)}.arrow{color:#7770d8;font-size:18px}.page-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:36px}.page-intro h1{font-size:55px;letter-spacing:-3px}.filters{display:grid;grid-template-columns:1fr 210px;gap:12px;margin-bottom:18px}.directory-list,.activity-list{display:flex;flex-direction:column;gap:1px;background:var(--line)}.directory-card{display:flex;align-items:center;gap:18px;background:var(--white);padding:18px 22px}.directory-symbol{width:42px;height:42px;display:grid;place-items:center;background:#c9e86b;font-weight:600}.directory-main{flex:1}.directory-title{display:flex;align-items:center;gap:12px}.directory-title h3{font-size:15px}.directory-main>p{font-size:11px;color:var(--muted);margin:5px 0 10px}.verified{font:9px 'DM Mono';color:#668f4e}.tags{display:flex;gap:6px}.tags span{font:9px 'DM Mono';background:#edf1f0;padding:4px 6px;color:var(--muted)}.activity-list .activity-row{background:var(--white);padding:24px}.map-shell{background:var(--white);border:1px solid var(--line)}.map-toolbar{display:flex;align-items:center;gap:22px;padding:15px 20px;border-bottom:1px solid var(--line);font-size:12px}.map-toolbar label{color:var(--muted);font-size:11px}.full-map{height:560px}.full-map .map-node{left:var(--x);top:var(--y)}.full-map .map-node span{position:absolute;display:block;white-space:nowrap;top:17px;left:0;font:10px 'DM Mono';color:var(--ink);background:rgba(255,255,255,.75);padding:3px 5px}.map-compass{position:absolute;right:20px;bottom:20px;text-align:center;font:11px 'DM Mono';color:var(--muted)}.map-compass span{display:inline-block;border:1px solid var(--line);padding:8px;background:white;font-size:18px}.empty-state{background:var(--white);padding:30px;color:var(--muted)}@media(max-width:850px){.login-view{grid-template-columns:1fr;padding:35px 20px}.login-mark{padding:0}.login-mark span{font-size:55px}.login-card{padding:30px}.platform{display:block}.sidebar{padding:17px 12px}.brand{padding:0 10px 18px}.sidebar nav{display:flex;overflow:auto;gap:3px}.nav-item{width:auto;white-space:nowrap}.nav-item b,.nav-divider,.nav-item.locked{display:none}.sidebar-foot{display:none}.topbar{height:88px;padding:22px 20px}.view{padding:30px 20px}.welcome{display:block}.welcome-mark{display:none}.stat-grid,.home-grid{grid-template-columns:repeat(2,1fr)}.page-intro{display:block}.page-intro h1{font-size:42px}.full-map{height:430px}.welcome h1{font-size:48px}}@media(max-width:480px){.stat-grid{grid-template-columns:1fr 1fr}.stat-grid strong{font-size:30px}.panel{padding:18px}.activity-row{grid-template-columns:48px 1fr 14px}}
