@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap");
:root{
  --ink:#080b0e;--ink2:#10161c;--sidebar:#080b0e;--sidebar2:#0d1217;
  --bg:#0b1015;--panel:#111820;--panel2:#151e27;--line:#222e38;--line2:#2b3945;
  --text:#edf4f7;--muted:#8b9aa5;--muted2:#6f7f8a;--cyan:#22c7e6;--blue:#4b8fff;--turq:#34d7bd;
  --ok:#34c98f;--warn:#e0a03c;--bad:#ed6b6b;--shadow:0 18px 50px rgba(0,0,0,.24);--shadow-sm:0 7px 26px rgba(0,0,0,.18);
  --radius:20px;--radius-sm:13px
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:"Poppins",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.grow{flex:1;min-width:0}.hidden{display:none!important}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px 14px 14px;background:linear-gradient(180deg,var(--sidebar),#0d1216);color:#fff;border-right:1px solid #171d22;z-index:30;display:flex;flex-direction:column}.brand-block{height:70px;display:flex;align-items:center;gap:12px;padding:0 10px 18px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:17px}.brand-symbol{width:36px;height:36px;border-radius:12px;background:linear-gradient(145deg,rgba(0,183,217,.22),rgba(20,119,255,.13));border:1px solid rgba(0,183,217,.38);display:grid;place-content:center;gap:4px;box-shadow:inset 0 0 20px rgba(0,183,217,.08)}.brand-symbol span{display:block;height:2px;border-radius:9px;background:linear-gradient(90deg,var(--cyan),var(--turq))}.brand-symbol span:nth-child(1){width:17px}.brand-symbol span:nth-child(2){width:23px}.brand-symbol span:nth-child(3){width:12px}.brand-name{font-family:"Poppins",Inter,sans-serif;font-weight:800;letter-spacing:.16em;font-size:15px}.brand-sub{font-size:8px;letter-spacing:.18em;color:#68747d;margin-top:4px;font-weight:700}.nav-label{font-size:8px;letter-spacing:.18em;color:#515c65;padding:13px 11px 6px;font-weight:800}.nav{display:grid;gap:3px}.nav a{height:41px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:11px;color:#8f99a1;font-size:12px;transition:.16s ease}.nav a i{font-style:normal;width:20px;text-align:center;color:#69757e;font-size:15px}.nav a:hover{color:#fff;background:rgba(255,255,255,.05)}.nav a.active{color:#fff;background:linear-gradient(90deg,rgba(0,183,217,.14),rgba(20,119,255,.06));box-shadow:inset 2px 0 0 var(--cyan)}.nav a.active i{color:#47d7ef}.sidebar-foot{margin-top:auto;padding:15px 8px 2px;border-top:1px solid rgba(255,255,255,.08)}.system-health{display:flex;align-items:center;gap:9px;margin-bottom:12px}.system-health strong{font-size:10px;display:block}.system-health small{font-size:9px;color:#626e77}.pulse-dot,.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(19,166,115,.08)}.status-dot.warn{background:var(--warn);box-shadow:0 0 0 4px rgba(217,141,21,.08)}.status-dot.bad{background:var(--bad);box-shadow:0 0 0 4px rgba(216,74,74,.08)}.status-dot.ok{background:var(--ok)}.logout{font-size:10px;color:#66727b}.workspace{min-width:0}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid rgba(13,26,36,.08);background:rgba(247,249,250,.82);backdrop-filter:blur(20px);position:sticky;top:0;z-index:20}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:11px;color:#9aa2a9}.breadcrumb strong{color:#59626a;font-weight:650}.breadcrumb b{font-weight:400;color:#c3c9ce}.top-actions{display:flex;align-items:center;gap:14px}.guide-link{font-size:10px;color:#6c757d;padding:7px 9px;border-radius:9px}.guide-link:hover{background:#fff}.environment{font-size:8px;letter-spacing:.15em;color:#8b939a;display:flex;align-items:center;gap:7px}.environment span{width:6px;height:6px;border-radius:50%;background:var(--warn)}.user-chip{display:flex;gap:8px;align-items:center}.avatar{width:31px;height:31px;border-radius:10px;background:#11161b;color:#fff;display:grid;place-items:center;font-weight:800;font-size:11px}.user-chip strong{display:block;font-size:10px}.user-chip small{display:block;font-size:8px;color:#9099a1;letter-spacing:.1em;margin-top:2px}.menu-button{display:none;background:none;border:0;color:#111;font-size:19px}.main-content{padding:32px;max-width:1720px;margin:auto}.page-head,.top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.eyebrow{font-family:"Poppins",Inter,sans-serif;font-size:8px;font-weight:800;letter-spacing:.22em;color:#0aa5c4;margin-bottom:9px}.page-head h1,.project-hero h1,.top h1{font-family:"Poppins",Inter,sans-serif;font-size:34px;line-height:1.04;margin:0;letter-spacing:-.035em;font-weight:760}.page-head p,.project-hero p,.top .muted{margin:8px 0 0;color:var(--muted);font-size:12px}.head-actions{display:flex;gap:9px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #0d1115;background:#0d1115;color:#fff;font-weight:700;font-size:10px;padding:10px 14px;border-radius:11px;cursor:pointer;box-shadow:0 7px 20px rgba(12,18,24,.12);transition:.15s}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(12,18,24,.16)}.btn.secondary{background:#fff;color:#222;border-color:#dfe4e8;box-shadow:none}.btn.mini{padding:7px 10px;font-size:9px;border-radius:9px}.btn.big{width:100%;min-height:45px;margin-top:10px}.badge,.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;border:1px solid #e0e5e9;background:#f8fafb;color:#68717a;font-size:8px;font-weight:800;letter-spacing:.08em;white-space:nowrap}.badge.ok,.status-pill.ok{color:#087955;border-color:#cceade;background:#f1fbf7}.badge.warn{color:#9a630a;border-color:#f2dfba;background:#fff9ed}.badge.bad{color:#9a3030;border-color:#f0cece;background:#fff5f5}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.kpi-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:18px 19px;min-height:118px;box-shadow:var(--shadow-sm)}.kpi-label{font-size:8px;letter-spacing:.16em;color:#929ba3;font-weight:800}.kpi-value{font-family:"Poppins",Inter,sans-serif;font-size:34px;font-weight:760;letter-spacing:-.045em;margin-top:10px}.kpi-value.small-value{font-size:27px}.kpi-meta{font-size:9px;color:#8a939b;margin-top:7px}.status-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:12px;background:#dde2e6;border:1px solid #dde2e6;border-radius:15px;overflow:hidden;box-shadow:var(--shadow-sm)}.status-strip>div{background:#fff;padding:12px 15px;display:flex;align-items:center;gap:9px}.status-strip strong{font-size:9px}.status-strip small{font-size:9px;color:#8c959d;margin-left:auto}.layout-2{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:12px;margin-bottom:12px}.layout-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #edf0f2}.panel-head h2,.card h2{font-family:"Poppins",Inter,sans-serif;font-size:10px;letter-spacing:.08em;margin:0}.panel-head small{display:block;font-size:9px;color:#98a0a7;margin-top:4px}.panel-head>a{font-size:9px;color:#68727a}.panel-body{padding:18px}.ops-map{height:300px;position:relative;overflow:hidden;background:linear-gradient(145deg,#151b20,#0c1014)}.ops-map.compact{height:260px}.ops-map.tall{height:420px}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(65,174,200,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(65,174,200,.09) 1px,transparent 1px);background-size:34px 34px;transform:perspective(700px) rotateX(48deg) scale(1.5);transform-origin:center bottom;opacity:.38}.ops-map:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 34% 43%,rgba(0,183,217,.18),transparent 14%),radial-gradient(circle at 69% 38%,rgba(22,215,191,.11),transparent 10%)}.map-orbit{position:absolute;z-index:2;width:180px;height:95px;border:1px dashed rgba(0,183,217,.28);border-radius:50%;left:27%;top:33%;transform:rotate(-17deg)}.map-node{position:absolute;z-index:3;width:9px;height:9px;border-radius:50%;background:var(--turq);box-shadow:0 0 0 5px rgba(22,215,191,.08),0 0 18px rgba(22,215,191,.45)}.map-node.a{left:31%;top:46%}.map-node.b{left:68%;top:35%;background:#3ad1f0}.map-label{position:absolute;z-index:3;font-size:8px;padding:5px 7px;background:rgba(10,15,19,.84);border:1px solid rgba(255,255,255,.11);border-radius:7px;color:#cbd6dc}.map-label.a{left:32%;top:50%}.map-label.b{left:69%;top:39%}.map-hud{position:absolute;z-index:4;left:14px;bottom:13px;display:flex;gap:6px}.map-hud div{padding:6px 8px;border-radius:8px;background:rgba(7,11,14,.78);border:1px solid rgba(255,255,255,.1);font-size:8px;color:#94a9b3}.list{display:grid}.list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 17px;border-bottom:1px solid #eff2f4}.list-row:last-child{border-bottom:0}.list-row:hover{background:#fafbfc}.list-row strong{display:block;font-size:11px}.list-row small{display:block;color:#89929a;font-size:9px;margin-top:4px}.empty{padding:30px;text-align:center;color:#949ca3;font-size:10px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.project-card{display:block;border:1px solid #e7ebee;border-radius:15px;overflow:hidden;background:#fff;transition:.16s}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.project-visual{height:86px;position:relative;background:linear-gradient(145deg,#12181d,#202a31);overflow:hidden}.project-visual>span{position:absolute;z-index:2;left:13px;top:12px;font-size:8px;letter-spacing:.12em;color:#7fabb5}.flight-line{position:absolute;width:150px;height:50px;border:1px dashed rgba(0,183,217,.28);border-radius:50%;right:-20px;bottom:0;transform:rotate(-18deg)}.project-body{padding:14px}.project-body h3{font-size:11px;margin:0 0 6px}.project-body p{font-size:9px;color:#879099;margin:0}.project-footer{display:flex;justify-content:space-between;align-items:center;margin-top:13px;padding-top:11px;border-top:1px solid #eef1f3}.project-footer>span:first-child{font-size:8px;color:#8a939a}.project-list{display:grid}.project-list-row{display:flex;align-items:center;gap:13px;padding:13px 17px;border-bottom:1px solid #eef1f3}.project-list-row:hover{background:#fafbfc}.project-list-icon{width:38px;height:38px;border-radius:12px;background:#11171b;color:#54d4e9;display:grid;place-items:center;font-size:9px;font-weight:800}.project-list-row strong{display:block;font-size:11px}.project-list-row small{display:block;font-size:9px;color:#8b949c;margin-top:4px}.chev{font-size:22px;color:#c2c8cd}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:700px}.table th{text-align:left;font-size:8px;letter-spacing:.09em;color:#949ca3;font-weight:800;padding:11px 14px;border-bottom:1px solid #e7ebee;background:#fbfcfc}.table td{font-size:10px;color:#555e66;padding:13px 14px;border-bottom:1px solid #eef1f3}.table tr:last-child td{border-bottom:0}.form-panel{margin-bottom:12px}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.formgrid.compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:6px}.field label,label.field{font-size:8px;letter-spacing:.08em;color:#8b949c;font-weight:800}.field.actions{align-content:end}.span-2{grid-column:span 2}.span-3{grid-column:span 3}input,select,textarea{width:100%;min-height:41px;padding:9px 11px;border-radius:10px;border:1px solid #dfe4e8;background:#fff;color:#1d2226;outline:none;transition:.15s}input::placeholder,textarea::placeholder{color:#b0b7bd}input:focus,select:focus,textarea:focus{border-color:rgba(0,183,217,.65);box-shadow:0 0 0 3px rgba(0,183,217,.08)}textarea{min-height:84px;resize:vertical}.inline-form{display:grid;grid-template-columns:minmax(200px,1fr) 190px auto;gap:9px;margin:16px 0}.toggle-row{display:flex;align-items:center;gap:8px;font-size:10px;color:#69727a}.toggle-row input{width:auto;min-height:0}.muted{color:var(--muted);font-size:10px}.grid{display:grid;gap:12px}
.project-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.project-hero h1{font-size:36px}.project-hero-actions{display:flex;gap:7px;align-items:center}.backlink{display:inline-block;font-size:9px;color:#7e878f;margin-bottom:16px}.project-tabs{display:flex;gap:3px;border-bottom:1px solid #dde3e7;margin-bottom:13px;overflow:auto}.project-tabs a,.project-tabs span{padding:10px 12px;font-size:9px;color:#8b949c;border-bottom:2px solid transparent;white-space:nowrap}.project-tabs .active{color:#14191d;border-color:var(--cyan);font-weight:700}.project-overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:12px}.metric-list{display:grid}.metric-list>div{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;border-bottom:1px solid #eef1f3}.metric-list>div:last-child{border-bottom:0}.metric-list span{font-size:9px;color:#8b949c}.metric-list strong{font-size:10px}.split-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:22px}.section-copy strong{font-size:12px}.section-copy p{font-size:10px;color:#828b92;line-height:1.55;max-width:650px}.order-stack{display:grid;gap:8px}.order-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #e5e9ed;border-radius:13px;background:#fafbfc}.order-card:hover{border-color:#cbd4da}.order-card strong,.dataset-card strong,.product-card strong{display:block;font-size:10px;margin:3px 0}.order-card small,.dataset-card small,.product-card small{font-size:8px;color:#939ca3}.micro-label{font-size:7px;font-weight:800;letter-spacing:.12em;color:#0b9fbd}.info-callout{padding:13px 14px;border-radius:13px;background:#f2fbfd;border:1px solid #d6f0f4}.info-callout.large{margin-bottom:12px}.info-callout strong{font-size:10px}.info-callout p{font-size:9px;color:#66747b;line-height:1.55;margin:5px 0 0}.dataset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dataset-card{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #e6eaed;border-radius:13px;background:#fff}.dataset-card:hover{background:#fafbfc}.dataset-icon{width:37px;height:37px;border-radius:11px;background:#11171b;color:#49d6eb;display:grid;place-items:center;font-size:13px}.dataset-card .chev{margin-left:auto}.reconstruction-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reconstruction-choice>div{padding:14px;border:1px solid #e5e9ed;border-radius:14px}.reconstruction-choice h3{font-size:10px;margin:9px 0 5px}.reconstruction-choice p{font-size:9px;color:#849099;line-height:1.5;margin:0}.recon-visual{height:95px;border-radius:11px;background:linear-gradient(145deg,#11171b,#233039);display:grid;place-items:center;color:#54d7ec;font-family:"Poppins",Inter,sans-serif;font-size:22px;letter-spacing:.08em;position:relative;overflow:hidden}.recon-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(73,214,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(73,214,235,.08) 1px,transparent 1px);background-size:18px 18px}.recon-visual.three-d{background:radial-gradient(circle at 55% 45%,rgba(0,183,217,.18),transparent 18%),linear-gradient(145deg,#12181d,#202c34)}.fineprint{font-size:8px;color:#97a0a8;line-height:1.55;margin:13px 0 0}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:14px}.product-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px;border:1px solid #e6eaed;border-radius:13px;background:#fbfcfc}.service-list{display:grid}.service-row{display:flex;align-items:center;gap:12px;padding:14px 17px;border-bottom:1px solid #eef1f3}.service-row:last-child{border-bottom:0}.service-row strong{font-size:10px}.service-row small{display:block;font-size:8px;color:#929aa1;margin-top:3px}.service-state{text-align:right}.integration-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.integration-card{padding:17px;min-height:170px}.integration-card h3{font-size:11px;margin:14px 0 6px}.integration-card>strong{font-size:10px}.integration-card p{font-size:9px;line-height:1.55;color:#89929a}.guide-steps{display:grid;gap:9px}.guide-step{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:15px;padding:17px 18px;background:#fff;border:1px solid #e5e9ed;border-radius:15px;box-shadow:var(--shadow-sm)}.guide-step:hover{transform:translateY(-1px)}.guide-step.done{border-left:3px solid var(--ok)}.step-no{font-family:"Poppins",Inter,sans-serif;font-size:20px;color:#b7c0c7}.guide-step strong{font-size:11px}.guide-step p{font-size:9px;color:#8b949b;line-height:1.5;margin:4px 0 0}.step-state{font-size:8px;letter-spacing:.12em;color:#758089;font-weight:800}.dataset-layout{align-items:start}.upload-zone{border:1.5px dashed #cbd4da;border-radius:16px;padding:30px 18px;text-align:center;background:#fbfcfc;transition:.15s}.upload-zone.drag{border-color:var(--cyan);background:#f1fbfd}.upload-icon{width:44px;height:44px;border-radius:14px;background:#11171b;color:#4bd6eb;display:grid;place-items:center;margin:0 auto 12px;font-size:21px}.upload-zone h3{font-size:12px;margin:0 0 6px}.upload-zone p{font-size:9px;color:#8d969e;line-height:1.5;max-width:520px;margin:0 auto}.upload-actions{display:flex;justify-content:center;gap:8px;margin-top:15px}.upload-progress{margin-top:14px;padding:13px;border:1px solid #e5e9ed;border-radius:13px}.progress-head{display:flex;justify-content:space-between;font-size:9px}.progress-track{height:5px;background:#edf1f3;border-radius:9px;margin:10px 0;overflow:hidden}.progress-track span,.check-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--turq));border-radius:9px}.upload-progress small{font-size:8px;color:#8f989f}.mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.mode-card{position:relative;padding:10px;border:1px solid #e0e5e9;border-radius:14px;cursor:pointer}.mode-card input{position:absolute;right:10px;top:10px;width:auto;min-height:0;accent-color:#0aa7c7}.mode-card:has(input:checked){border-color:#62cfe1;box-shadow:0 0 0 3px rgba(0,183,217,.08)}.mode-preview{height:92px;border-radius:10px;background:linear-gradient(145deg,#10161a,#253038);display:grid;place-items:center;color:#4ed7ed;font-family:"Poppins",Inter,sans-serif;font-size:21px}.mode-preview.three{background:radial-gradient(circle,rgba(0,183,217,.2),transparent 33%),linear-gradient(145deg,#10161a,#253038)}.mode-card strong{display:block;font-size:9px;margin-top:8px}.mode-card small{font-size:8px;color:#929ba2}.file-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px}.file-card{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e8ecef;border-radius:12px;min-width:0}.file-thumb{width:34px;height:34px;border-radius:9px;background:#edf2f4;color:#869098;display:grid;place-items:center;font-size:7px;font-weight:800}.file-card strong{font-size:9px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card small{font-size:8px;color:#949ca3}.processing-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,280px) auto;gap:15px;align-items:center;padding:14px 17px;border-bottom:1px solid #eef1f3}.processing-row strong{font-size:10px}.processing-row small{display:block;font-size:8px;color:#929aa2;margin-top:4px}.job-progress{display:flex;align-items:center;gap:9px}.job-progress>div{height:5px;background:#edf1f3;border-radius:8px;overflow:hidden;flex:1}.job-progress>div span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--turq))}.job-progress>small{width:30px}.error-banner{padding:11px 13px;border:1px solid #efcdcd;background:#fff4f4;color:#8c3333;border-radius:12px;margin-bottom:12px;font-size:9px}.check-progress{height:5px;border-radius:8px;background:#edf1f3;overflow:hidden;margin:2px 0 14px}.mobile-checklist{max-width:760px}.check-button{width:100%;border:0;border-bottom:1px solid #eef1f3;background:transparent;color:inherit;text-align:left;display:flex;align-items:center;gap:12px;padding:14px 4px;cursor:pointer}.check-button:hover{background:#fafbfc}.check-icon{width:29px;height:29px;border-radius:9px;border:1px solid #dce2e6;display:grid;place-items:center;color:#869098;flex:0 0 auto}.check-button.done{opacity:.58}.check-button.done .check-icon{border-color:#bde4d5;background:#effaf6;color:var(--ok)}.check-button strong{font-size:10px;font-weight:650}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);background:#080b0e}.login-visual{position:relative;overflow:hidden;padding:52px;display:flex;align-items:flex-end;background:radial-gradient(circle at 24% 34%,rgba(0,183,217,.14),transparent 28%),#090d10}.login-visual:before{content:"";position:absolute;inset:-10%;background-image:linear-gradient(rgba(66,175,200,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(66,175,200,.08) 1px,transparent 1px);background-size:52px 52px;transform:perspective(750px) rotateX(58deg) scale(1.4);transform-origin:center bottom}.login-radar{position:absolute;left:15%;top:18%;width:360px;height:360px;border:1px solid rgba(0,183,217,.11);border-radius:50%;box-shadow:0 0 0 70px rgba(0,183,217,.025),0 0 0 140px rgba(0,183,217,.018)}.login-copy{position:relative;max-width:650px;color:#fff}.login-copy h1{font-family:"Poppins",Inter,sans-serif;font-size:49px;line-height:1.02;letter-spacing:-.045em;margin:12px 0 15px}.login-copy p{font-size:12px;color:#75838c;line-height:1.65;max-width:520px}.login-form-wrap{border-left:1px solid rgba(255,255,255,.07);background:rgba(8,11,14,.92);display:grid;place-items:center;padding:28px}.loginbox{width:min(380px,100%);color:#fff}.loginbox h2{font-family:"Poppins",Inter,sans-serif;font-size:20px;margin:0 0 7px}.loginbox>p{font-size:9px;color:#707b83;margin:0 0 24px}.loginbox label{font-size:8px;letter-spacing:.1em;color:#75818a;display:block;margin:13px 0 6px}.loginbox input{background:#10161a;border-color:#20282e;color:#fff}.loginbox .btn{width:100%;margin-top:13px;min-height:43px;background:#fff;color:#111;border-color:#fff}.login-version{margin-top:20px!important;font-size:8px!important;letter-spacing:.1em}.error{padding:10px 11px;border:1px solid rgba(216,74,74,.26);background:rgba(216,74,74,.08);border-radius:9px;color:#ee8c8c!important}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid.three{grid-template-columns:repeat(3,1fr)}.layout-2,.project-overview-grid{grid-template-columns:1fr}.project-grid,.dataset-grid,.product-grid,.file-grid{grid-template-columns:repeat(2,1fr)}.integration-grid{grid-template-columns:repeat(2,1fr)}.split-form{grid-template-columns:1fr}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;transition:.2s ease;width:248px}.nav-open .sidebar{left:0}.nav-open .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:25}.menu-button{display:block}.topbar{padding:0 15px;height:60px}.breadcrumb{margin-right:auto;margin-left:8px}.environment,.guide-link{display:none}.main-content{padding:18px}.formgrid{grid-template-columns:1fr 1fr}.span-3{grid-column:span 2}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{border:0;min-height:100vh}.status-strip{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.processing-row{grid-template-columns:1fr auto}.processing-row .job-progress{grid-column:1/-1;grid-row:2}.mode-selector{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.main-content{padding:14px}.page-head,.project-hero,.top{align-items:flex-start;flex-direction:column}.page-head h1,.project-hero h1{font-size:29px}.top-actions .user-chip div:not(.avatar){display:none}.kpi-grid,.kpi-grid.three,.project-grid,.dataset-grid,.product-grid,.file-grid,.layout-3,.integration-grid,.reconstruction-choice,.mode-selector{grid-template-columns:1fr}.formgrid,.formgrid.compact-form{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.panel-head{padding:14px}.panel-body{padding:14px}.ops-map{height:230px}.upload-actions{flex-direction:column}.guide-step{grid-template-columns:42px minmax(0,1fr)}.step-state{grid-column:2}.project-tabs{margin-left:-14px;margin-right:-14px;padding:0 10px}.file-grid{padding:10px}.processing-row{padding:13px}.dataset-layout{display:block}}


/* v0.3.1 — Drone Visuals Dark UI / Poppins */
html,body{background:#0b1015;color:var(--text)}
body{background:radial-gradient(circle at 78% -12%,rgba(34,199,230,.08),transparent 32%),linear-gradient(180deg,#0c1218 0%,#0b1015 100%)}
.topbar{background:rgba(11,16,21,.86);border-bottom-color:#1c2730;color:var(--text)}
.breadcrumb{color:#647581}.breadcrumb strong{color:#c4d0d6}.breadcrumb b{color:#3b4b56}
.guide-link{color:#93a3ad}.guide-link:hover{background:#151e27;color:#fff}
.user-chip strong{color:#edf4f7}.user-chip small{color:#788893}.avatar{background:#17222b;border:1px solid #2b3945}
.menu-button{color:#dbe6ea}
.page-head p,.project-hero p,.top .muted{color:var(--muted)}
.btn{background:linear-gradient(135deg,#18a7c2,#22c7e6);border-color:#22c7e6;color:#041014;box-shadow:0 10px 28px rgba(34,199,230,.12)}
.btn.secondary{background:#151e27;color:#d7e2e7;border-color:#2a3945}.btn.secondary:hover{background:#1a2630}
.badge,.status-pill{border-color:#2a3945;background:#151e27;color:#94a6b1}
.badge.ok,.status-pill.ok{color:#72e0b4;border-color:rgba(52,201,143,.3);background:rgba(52,201,143,.08)}
.badge.warn{color:#f1bd65;border-color:rgba(224,160,60,.3);background:rgba(224,160,60,.08)}
.badge.bad{color:#ff9090;border-color:rgba(237,107,107,.3);background:rgba(237,107,107,.08)}
.kpi,.panel,.card,.project-card,.guide-step{background:linear-gradient(160deg,#121a22,#0f161d);border-color:#222e38;box-shadow:var(--shadow-sm)}
.kpi-label{color:#72838e}.kpi-meta{color:#71818c}.kpi-value{color:#f2f7f9}
.status-strip{background:#202b34;border-color:#202b34}.status-strip>div{background:#111820}.status-strip small{color:#778893}
.panel-head{border-bottom-color:#202b34}.panel-head h2,.card h2{color:#e9f1f4}.panel-head small{color:#71818c}.panel-head>a{color:#8ea0aa}
.list-row{border-bottom-color:#202b34}.list-row:hover{background:#151e27}.list-row strong{color:#e8f0f3}.list-row small{color:#7e8e99}.empty{color:#70818c}
.project-card{background:#111820;border-color:#222e38}.project-card:hover{border-color:#2d6370;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.project-body h3,.project-card h3{color:#eaf2f5}.project-body p,.project-footer span{color:#7d8d97}.project-footer{border-top-color:#202b34}
.table th{background:#0e151b;color:#70818b;border-bottom-color:#25313b}.table td{color:#c8d4da;border-bottom-color:#202b34}.table tr:hover td{background:#131c24}
input,select,textarea{background:#0d141a;border-color:#27343e;color:#e7eef2}input::placeholder,textarea::placeholder{color:#53646f}input:focus,select:focus,textarea:focus{border-color:rgba(34,199,230,.58);box-shadow:0 0 0 3px rgba(34,199,230,.08)}
.form-panel,.form-section{background:transparent}
.project-tabs,.tab-strip{border-bottom-color:#202b34}.project-tabs a,.tab-strip span{color:#71818b}.project-tabs a.active,.tab-strip .active{color:#d9eef4;border-color:var(--cyan)}
.reconstruction-choice>div,.product-card,.file-card,.upload-progress,.mode-card{background:#111820;border-color:#25313b}
.reconstruction-choice h3,.product-card strong,.file-card strong,.mode-card strong{color:#e2ebef}
.reconstruction-choice p,.mode-card small,.file-card small{color:#75858f}
.upload-zone{background:#0f171e;border-color:#32414c}.upload-zone.drag{background:#10222a;border-color:var(--cyan)}.upload-zone h3{color:#e8f0f4}.upload-zone p{color:#778893}
.upload-progress{background:#111820}.progress-track,.job-progress>div,.check-progress{background:#26323b}
.service-row,.processing-row{border-bottom-color:#202b34}.service-row strong,.processing-row strong{color:#e4edf1}.service-row small,.processing-row small{color:#74858f}
.integration-card{background:linear-gradient(160deg,#121a22,#0f161d)}.integration-card p{color:#788994}
.guide-step{background:#111820}.guide-step p{color:#7c8c96}.guide-step strong{color:#e7eff2}.step-no{color:#52636e}.step-state{color:#81919b}
.check-button{border-bottom-color:#202b34}.check-button:hover{background:#151e27}.check-icon{border-color:#34434e;color:#73848e}.check-button.done .check-icon{border-color:rgba(52,201,143,.35);background:rgba(52,201,143,.08);color:var(--ok)}
.error-banner{border-color:rgba(237,107,107,.28);background:rgba(237,107,107,.08);color:#f29a9a}
.login-page{background:#080b0e}.login-form-wrap{background:rgba(8,11,14,.94)}.loginbox .btn{background:linear-gradient(135deg,#18a7c2,#22c7e6);border-color:#22c7e6;color:#041014}
.sidebar{background:linear-gradient(180deg,#070a0d,#0a0f13)}
.brand-name,.eyebrow,.page-head h1,.project-hero h1,.top h1,.kpi-value,.panel-head h2,.card h2,.login-copy h1,.loginbox h2,.step-no,.recon-visual,.mode-preview{font-family:"Poppins",sans-serif}
.brand-name{font-weight:700;letter-spacing:.11em}.page-head h1,.project-hero h1,.top h1{font-weight:600;letter-spacing:-.03em}.kpi-value{font-weight:600}.panel-head h2,.card h2{font-weight:600}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0b1015}::-webkit-scrollbar-thumb{background:#26343e;border:2px solid #0b1015;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#344651}
/* Dark corrections for components that used explicit light fills */
.project-list-row{border-bottom-color:#202b34}.project-list-row:hover{background:#151e27}.project-list-row strong{color:#e6eef2}.project-list-row small{color:#788893}
.project-tabs .active{color:#e7f3f7}
.metric-list>div{border-bottom-color:#202b34}.metric-list span{color:#7c8c96}.metric-list strong{color:#e6eef2}
.section-copy strong{color:#e7eff2}.section-copy p{color:#7b8b95}
.order-card{background:#111820;border-color:#25313b}.order-card:hover{border-color:#36505d;background:#151e27}.order-card strong{color:#e7eff2}.order-card small{color:#778893}
.info-callout{background:rgba(34,199,230,.055);border-color:rgba(34,199,230,.17)}.info-callout strong{color:#ccecf3}.info-callout p{color:#81939d}
.dataset-card{background:#111820;border-color:#25313b}.dataset-card:hover{background:#151e27}.dataset-card strong{color:#e7eff2}.dataset-card small{color:#778893}
.file-thumb{background:#1a252e;color:#90a1ab}
.micro-label{color:#36c9e4}
.fineprint{color:#71818b}
.mode-card:has(input:checked){border-color:#3c9caf;background:#112028;box-shadow:0 0 0 3px rgba(34,199,230,.06)}
.integration-symbol{background:#141f27;border-color:#2b3b46}
.login-copy p{color:#81909a}.loginbox>p{color:#77858e}.loginbox label{color:#85939c}

/* v0.3.2 — GIS, performance monitoring and safe dataset deletion */
.performance-panel{margin-bottom:12px}.perf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.perf-card{padding:17px 18px;border-right:1px solid #202b34;min-height:112px}.perf-card:last-child{border-right:0}.perf-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.perf-top span{font-size:8px;letter-spacing:.16em;color:#71838e;font-weight:800}.perf-top strong{font-size:17px;font-weight:600;color:#edf4f7}.perf-top .perf-uptime{font-size:12px}.perf-track{height:6px;background:#26323b;border-radius:99px;overflow:hidden;margin-bottom:9px}.perf-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#159db8,#34d7bd)}.perf-card small{font-size:9px;color:#73848f}.perf-status-row{display:flex;align-items:center;gap:8px;color:#9aaab3;font-size:9px;margin:9px 0 8px}.perf-status-row .status-dot:nth-of-type(2){margin-left:8px}
.real-map{height:500px;background:#0c1218}.map-card{min-height:560px}.leaflet-container{font-family:"Poppins",sans-serif;background:#0c1218}.leaflet-control-zoom a{background:#111820!important;color:#dce8ec!important;border-color:#283640!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#111820;color:#dce8ec}.leaflet-popup-content{font-size:10px;line-height:1.5}.leaflet-control-attribution{background:rgba(8,12,16,.78)!important;color:#6f808b!important}.leaflet-control-attribution a{color:#8fa5b1!important}
.autocomplete-wrap{position:relative}.autocomplete-results{position:absolute;left:0;right:0;top:100%;margin-top:6px;background:#0d141a;border:1px solid #2a3944;border-radius:13px;overflow:hidden;z-index:1000;box-shadow:0 18px 50px rgba(0,0,0,.38);max-height:300px;overflow-y:auto}.autocomplete-item{width:100%;display:block;text-align:left;background:transparent;border:0;border-bottom:1px solid #202b34;color:#e7eff2;padding:11px 12px;cursor:pointer}.autocomplete-item:last-child{border-bottom:0}.autocomplete-item:hover{background:#151f27}.autocomplete-item strong{font-size:10px;font-weight:500;display:block;line-height:1.45}.autocomplete-item small{font-size:8px;color:#71838e;display:block;margin-top:4px}
.btn.danger{background:rgba(237,107,107,.08);border-color:rgba(237,107,107,.34);color:#ff9b9b;box-shadow:none}.btn.danger:hover{background:rgba(237,107,107,.15)}.icon-danger{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;border:1px solid rgba(237,107,107,.24);background:rgba(237,107,107,.06);color:#e98787;font-size:17px;cursor:pointer;line-height:1}.icon-danger:hover{background:rgba(237,107,107,.14);color:#ffaaaa}.project-hero-actions form{display:inline-flex}
@media(max-width:1180px){.perf-grid{grid-template-columns:repeat(2,1fr)}.perf-card:nth-child(2){border-right:0}.perf-card:nth-child(-n+2){border-bottom:1px solid #202b34}}
@media(max-width:900px){.site-layout{display:block}.map-card{margin-top:12px}.real-map{height:390px}.map-card{min-height:450px}}
@media(max-width:620px){.perf-grid{grid-template-columns:1fr}.perf-card{border-right:0!important;border-bottom:1px solid #202b34!important}.perf-card:last-child{border-bottom:0!important}.real-map{height:330px}.project-hero-actions{flex-wrap:wrap}}
.worker-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:13px 16px;background:#0e151b;border-top:1px solid #202b34}.worker-metrics span{font-size:8px;color:#72838e}.worker-metrics strong{display:block;color:#dce7ec;font-size:11px;margin-top:3px;font-weight:600}@media(max-width:620px){.worker-metrics{grid-template-columns:repeat(2,1fr)}}
