@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-50.otf) format("opentype");font-weight:50;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-100.otf) format("opentype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-150.otf) format("opentype");font-weight:150;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-200.otf) format("opentype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-250.otf) format("opentype");font-weight:250;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-300.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-350.otf) format("opentype");font-weight:350;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-400.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-450.otf) format("opentype");font-weight:450;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-500.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-550.otf) format("opentype");font-weight:550;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-600.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-650.otf) format("opentype");font-weight:650;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-700.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-750.otf) format("opentype");font-weight:750;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-800.otf) format("opentype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-850.otf) format("opentype");font-weight:850;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-900.otf) format("opentype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-950.otf) format("opentype");font-weight:950;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-1000.otf) format("opentype");font-weight:1000;font-style:normal;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-50Italic.otf) format("opentype");font-weight:50;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-100Italic.otf) format("opentype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-200Italic.otf) format("opentype");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-300Italic.otf) format("opentype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-400Italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-500Italic.otf) format("opentype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-600Italic.otf) format("opentype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-700Italic.otf) format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-800Italic.otf) format("opentype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-900Italic.otf) format("opentype");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:TWK Lausanne;src:url(/fonts/TWKLausanne-1000Italic.otf) format("opentype");font-weight:1000;font-style:italic;font-display:swap}:root{--ax-black:#0a0a0a;--ax-white:#fff;--ax-violet:#7c3aed;--ax-slate:#64748b;--ax-violet-950:#2e1065;--ax-violet-900:#3b0764;--ax-violet-800:#4c1d95;--ax-violet-700:#5b21b6;--ax-violet-600:#6d28d9;--ax-violet-500:#7c3aed;--ax-violet-400:#8b5cf6;--ax-violet-300:#a78bfa;--ax-violet-200:#c4b5fd;--ax-violet-100:#ddd6fe;--ax-violet-50:#ede9fe;--ax-slate-900:#0f172a;--ax-slate-800:#1e293b;--ax-slate-700:#334155;--ax-slate-600:#475569;--ax-slate-500:#64748b;--ax-slate-400:#94a3b8;--ax-slate-300:#cbd5e1;--ax-slate-200:#e2e8f0;--ax-slate-100:#f1f5f9;--ax-slate-50:#f8fafc;--ax-navy-900:#091c34;--ax-navy-700:#1a3d68;--ax-navy-500:#284156;--ax-navy-300:#6e9fc2;--ax-success:#10b981;--ax-warning:#f59e0b;--ax-error:#ef4444;--ax-info:#7c3aed;--bg-primary:#0a0a0a;--bg-secondary:#111118;--bg-surface:#1a1a24;--bg-card:rgba(26,26,36,.9);--bg-brand:var(--ax-violet-500);--fg-primary:#fff;--fg-secondary:var(--ax-slate-400);--fg-muted:var(--ax-slate-500);--fg-brand:var(--ax-violet-400);--border-subtle:hsla(0,0%,100%,.07);--border-default:hsla(0,0%,100%,.12);--border-brand:var(--ax-violet-500);--interactive-primary:var(--ax-violet-500);--interactive-primary-hover:var(--ax-violet-400);--os-bg:#f1f5f9;--os-surface:#fff;--os-surface-alt:#f8fafc;--os-border:#e2e8f0;--os-border-strong:#cbd5e1;--os-fg:#0a0a0a;--os-fg-secondary:#64748b;--os-fg-muted:#94a3b8;--os-accent:#7c3aed;--os-accent-hover:#6d28d9;--os-accent-light:#ede9fe;--os-accent-mid:#c4b5fd;--font-display:"TWK Lausanne",sans-serif;--font-sans:"TWK Lausanne",sans-serif;--font-mono:"JetBrains Mono","Courier New",monospace;--weight-hairline:50;--weight-thin:100;--weight-extralight:200;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-3xl:2.25rem;--text-4xl:3rem;--leading-none:1;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-0.02em;--tracking-normal:0em;--tracking-wide:0.05em;--tracking-widest:0.15em;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.35),0 2px 4px rgba(0,0,0,.2);--shadow-lg:0 10px 32px rgba(0,0,0,.45),0 4px 8px rgba(0,0,0,.2);--ease-default:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0,0,0.2,1);--duration-fast:150ms;--duration-base:250ms;--safe-bg:#f6f5f1;--safe-bg-2:#efede7;--safe-panel:#fff;--safe-panel-2:#faf9f5;--safe-line:#e7e4dc;--safe-line-2:#d8d4c8;--safe-text:#1a1f1d;--safe-text-2:#5b6360;--safe-text-3:#8d938f;--safe-pine-900:#0f3d2e;--safe-pine-700:#1f6b4f;--safe-pine-600:#2a8765;--safe-pine-500:#3aa97f;--safe-pine-50:#e6f1ec;--safe-pine-bd:#b8d6c8;--safe-emerald-700:#1f6b4f;--safe-emerald-500:#2a8765;--safe-emerald-50:#e6f1ec;--safe-emerald-bd:#b8d6c8;--safe-amber-700:#92580c;--safe-amber-500:#c47e1f;--safe-amber-50:#fbf1df;--safe-amber-bd:#ecd6a6;--safe-rose-700:#9b2742;--safe-rose-500:#c43a59;--safe-rose-50:#fbe9ee;--safe-rose-bd:#ecbecb;--safe-slate-50:#eeece5;--safe-slate-bd:#d8d4c8}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--safe-bg);color:var(--safe-text);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shell-card,.surface-elev{background:var(--safe-panel);border:1px solid var(--safe-line);border-radius:10px;box-shadow:none}.hairline{border-color:var(--safe-line)}.hairline-strong{border-color:var(--safe-line-2)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:500;letter-spacing:0;border:1px solid transparent;white-space:nowrap}.pill-emerald{background:var(--safe-emerald-50);color:var(--safe-emerald-700);border-color:var(--safe-emerald-bd)}.pill-amber{background:var(--safe-amber-50);color:var(--safe-amber-700);border-color:var(--safe-amber-bd)}.pill-rose{background:var(--safe-rose-50);color:var(--safe-rose-700);border-color:var(--safe-rose-bd)}.pill-slate{background:var(--safe-slate-50);color:var(--safe-text-2);border-color:var(--safe-slate-bd)}.pill-violet{background:#ece8de;color:#5b6360;border-color:#d8d4c8}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;font-weight:500;font-size:13px;border:1px solid transparent;cursor:pointer;transition:background .15s var(--ease-default),border-color .15s var(--ease-default),color .15s var(--ease-default);white-space:nowrap;font-family:var(--font-sans);text-decoration:none}.btn-primary{background:var(--safe-pine-700);color:#fff;border-color:var(--safe-pine-700)}.btn-primary:hover{background:var(--safe-pine-900);border-color:var(--safe-pine-900)}.btn-ghost{background:var(--safe-panel);color:var(--safe-text);border-color:var(--safe-line-2)}.btn-ghost:hover{background:var(--safe-panel-2);border-color:var(--safe-text-3)}.btn-success{background:var(--safe-pine-700);color:#fff;border-color:var(--safe-pine-700)}.btn-danger{background:var(--safe-rose-50);color:var(--safe-rose-700);border-color:var(--safe-rose-bd)}.btn-danger:hover{background:#f7d9e1}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.tbl thead th{text-align:left;padding:11px 16px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--safe-text-3);background:var(--safe-panel-2)}.tbl tbody td,.tbl thead th{border-bottom:1px solid var(--safe-line)}.tbl tbody td{padding:13px 16px;color:var(--safe-text);vertical-align:middle}.tbl tbody tr:hover td{background:var(--safe-panel-2)}.tbl tbody tr.is-selected td{background:var(--safe-pine-50)}.tbl tbody tr:last-child td{border-bottom:none}.mono{font-family:var(--font-mono)}.mono,.num,.tnum{font-feature-settings:"tnum"}.num{font-variant-numeric:tabular-nums}.dot{width:6px;height:6px;border-radius:9999px;display:inline-block}.field{display:block;width:100%;background:var(--safe-panel);border:1px solid var(--safe-line-2);color:var(--safe-text);border-radius:8px;padding:10px 12px;font-size:13.5px;font-family:var(--font-sans);outline:none;transition:border-color .15s,box-shadow .15s}.field::placeholder{color:var(--safe-text-3)}.field:focus{border-color:var(--safe-pine-500);box-shadow:0 0 0 3px var(--safe-pine-50)}.field-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--safe-text-3);font-weight:600;margin-bottom:6px;display:block}.avatar{width:32px;height:32px;border-radius:9999px;display:inline-flex;justify-content:center;font-size:12px;font-weight:600;color:#fff;background:var(--safe-pine-700);border:1px solid var(--safe-pine-900);flex-shrink:0}.avatar,.nav-item{align-items:center}.nav-item{display:flex;gap:10px;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--safe-text-2);cursor:pointer;border:1px solid transparent;font-weight:500;text-decoration:none}.nav-item:hover{background:var(--safe-panel-2);color:var(--safe-text)}.nav-item.is-active{background:var(--safe-pine-50);color:var(--safe-pine-900);border-color:var(--safe-pine-bd)}.nav-section-label{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--safe-text-3);padding:14px 12px 6px}.tenant-pill{gap:8px;padding:5px 11px;background:var(--safe-bg-2);font-size:11.5px;color:var(--safe-text)}.chip,.tenant-pill{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid var(--safe-line-2)}.chip{gap:6px;padding:6px 12px;font-size:12px;font-weight:500;background:var(--safe-panel);color:var(--safe-text-2);cursor:pointer;transition:background .12s,border-color .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip:hover{background:var(--safe-panel-2)}.chip.is-active{color:#fff;background:var(--safe-pine-700);border-color:var(--safe-pine-700)}.dropzone{border:1.5px dashed var(--safe-line-2);background:var(--safe-panel-2);border-radius:12px;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--safe-pine-500);background:var(--safe-pine-50)}.dropzone.is-error{border-color:var(--safe-rose-bd);background:var(--safe-rose-50)}.map{position:relative;overflow:hidden;border-radius:10px;border:1px solid var(--safe-line);background:radial-gradient(circle at 32% 38%,rgba(42,135,101,.18),transparent 40%),radial-gradient(circle at 72% 62%,rgba(196,126,31,.14),transparent 36%),repeating-linear-gradient(0deg,rgba(15,61,46,.05) 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,rgba(15,61,46,.05) 0 1px,transparent 1px 44px),#f1efe9}.wizard-step{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:9999px;font-size:12px;color:var(--safe-text-2);background:var(--safe-panel);border:1px solid var(--safe-line-2)}.wizard-step.is-active{color:var(--safe-pine-900)}.wizard-step.is-active,.wizard-step.is-done{background:var(--safe-pine-50);border-color:var(--safe-pine-bd)}.wizard-step.is-done{color:var(--safe-pine-700)}.safe-logo{display:inline-flex;align-items:center;gap:10px}.safe-logo .word{font-weight:600;letter-spacing:.18em;color:var(--safe-text);font-size:14px;text-transform:uppercase}.bar{background:var(--safe-pine-700)}.bar,.bar-em{border-radius:2px}.bar-em{background:var(--safe-pine-500)}.placeholder{position:relative;background:repeating-linear-gradient(135deg,rgba(15,61,46,.03) 0 1px,transparent 1px 16px),var(--safe-panel-2);border:1px dashed var(--safe-line-2);border-radius:10px;color:var(--safe-text-3);display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d8d4c8;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.mapboxgl-map{border-radius:0}.mapboxgl-ctrl-attrib{font-size:10px!important}.kpi-grid-4{grid-template-columns:repeat(4,1fr);grid-gap:14px}.kpi-grid-3,.kpi-grid-4{display:grid;gap:14px;margin-bottom:20px}.kpi-grid-3{grid-template-columns:repeat(3,1fr);grid-gap:14px}@media (max-width:1024px){.kpi-grid-3,.kpi-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.kpi-grid-3,.kpi-grid-4{grid-template-columns:1fr}}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:16px;gap:16px}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}.polygon-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-gap:18px;gap:18px}@media (max-width:1024px){.polygon-grid{grid-template-columns:1fr}}.form-grid-2{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:18px;gap:18px}@media (max-width:1024px){.form-grid-2{grid-template-columns:1fr}}.page-pad{padding:22px 28px}@media (max-width:640px){.page-pad{padding:16px}}.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl-scroll .tbl td:first-child,.tbl-scroll .tbl th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--safe-panel);box-shadow:2px 0 5px -1px rgba(0,0,0,.07)}.tbl-scroll .tbl tbody tr:hover td:first-child,.tbl-scroll .tbl thead th:first-child{background:var(--safe-panel-2)}.tbl-scroll .tbl tbody tr.is-selected td:first-child{background:var(--safe-pine-50)}@media (max-width:1024px){.tbl-card thead{display:none}.tbl-card{display:block}.tbl-card tbody{display:block;padding:8px}.tbl-card tr{display:block;border:1px solid var(--safe-line);border-radius:10px;margin-bottom:8px;overflow:hidden;background:var(--safe-panel)}.tbl-card tbody tr:hover{background:var(--safe-panel-2)}.tbl-card td{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--safe-line);background:transparent!important}.tbl-card td:last-child{border-bottom:none}.tbl-card td:before{content:attr(data-label);color:var(--safe-text-3);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-right:16px;flex-shrink:0}.tbl-card td[data-label=""]{justify-content:flex-end}.tbl-card td[data-label=""]:before{display:none}}.polygon-map-viewport{height:460px;position:relative;background:var(--safe-bg);overflow:hidden}@media (max-width:640px){.polygon-map-viewport{height:300px}.btn-row-mobile-stack{flex-direction:column!important;gap:8px!important}.btn-row-mobile-stack .btn{width:100%;justify-content:center}}