:root{--bg:#050d18;--panel:#0b1524;--panel-2:#0f1d31;--text:#e9f1f7;--muted:#93a9ba;--muted-2:#6c8395;--line:#7897b224;--success:#69d7b1;--warning:#eec56a;--danger:#f07273;--accent:#48bb9b;--heading:"IBM Plex Sans", "Segoe UI", Tahoma, sans-serif;--body:"IBM Plex Sans", "Segoe UI", Tahoma, sans-serif;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;color:var(--text);background:var(--bg);font-family:var(--body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg)}button,input,select,textarea{font:inherit}button{appearance:none}h1,h2,h3,h4{font-family:var(--heading);letter-spacing:-.02em;color:var(--text);margin:0;font-weight:600}h1{font-size:clamp(28px,4vw,40px)}h2{font-size:21px}h3{font-size:18px}h4{font-size:15px}p{margin:0}a{color:inherit}code{font-family:var(--mono);color:var(--text);background:#7897b21a;padding:2px 6px}.eyebrow{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;font-size:11px}.app-shell{background:linear-gradient(#081321,#060f1b);grid-template-columns:272px 1fr;min-height:100vh;display:grid}.login-shell{background:radial-gradient(circle at 100% 0,#48bb9b2e,#0000 30%),radial-gradient(circle at 0 100%,#eec56a24,#0000 36%),linear-gradient(#07111f,#040b15);place-items:center;min-height:100vh;padding:32px;display:grid}.login-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#08111ec7;border:1px solid #7897b22e;grid-template-columns:1.1fr .9fr;gap:28px;width:min(980px,100%);padding:36px;display:grid;box-shadow:0 28px 90px #00000059}.login-brand{background:linear-gradient(160deg,#0e2034e0,#0a121edb),linear-gradient(#0000 23px,#45688714 24px);border:1px solid #7897b224;padding:28px}.login-brand .lead{max-width:42ch;font-size:16px}.login-form{background:#0a131fc2;border:1px solid #7897b224;gap:14px;padding:28px;display:grid}.login-form button{margin-top:12px}.helper{color:var(--muted-2);font-size:13px}.form-error{color:var(--danger);margin:0}.nav-rail{background:linear-gradient(#07101cfa,#060e19f5);border-right:1px solid #7897b224;flex-direction:column;gap:14px;padding:20px 14px 14px;display:flex}.nav-brand h2{margin:6px 0 12px}.nav-section{gap:10px;display:grid}.module-switch{grid-template-columns:1fr;gap:6px;max-height:260px;padding-right:4px;display:grid;overflow-y:auto}.module-button{color:var(--muted);text-align:left;background:#0a121ec2;border:1px solid #7897b224;padding:8px 10px;font-size:12px}.module-button.active{color:var(--warning);background:#3128138f;border-color:#eec56a4d}.nav-item{text-align:left;color:var(--muted);background:#0b1422b3;border:1px solid #7897b21f;gap:6px;padding:10px 12px;transition:border-color .16s,transform .16s,background .16s;display:grid}.nav-item strong{color:var(--text);font-size:14px}.nav-item span{font-size:12px;line-height:1.45}.nav-item:hover,.nav-item.active{background:#0d1e2bdb;border-color:#48bb9b5c;transform:translate(4px)}.nav-footer{color:var(--muted-2);background:#0a121ec2;border:1px solid #7897b21f;margin-top:auto;padding:14px;font-size:12px;line-height:1.5}.workspace{grid-template-rows:auto auto 1fr auto;min-width:0;display:grid}.top-bar,.context-header,.status-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#060e1985;border-bottom:1px solid #7897b21f;justify-content:space-between;gap:18px;padding:18px 24px;display:flex}.top-bar-actions{align-items:flex-start;gap:14px;display:flex}.user-chip{background:#0a131fc2;border:1px solid #7897b224;gap:4px;min-width:220px;padding:10px 12px;display:grid}.search-field{min-width:320px}.context-header{align-items:center}.context-copy{max-width:56ch;color:var(--muted)}.context-badges{flex-wrap:wrap;gap:10px;display:flex}.workspace-grid{grid-template-columns:minmax(0,1fr) 380px;gap:18px;min-height:0;padding:14px 16px;display:grid}.content-pane,.inspector-pane{min-width:0}.section-stack{gap:18px;display:grid}.panel,.inspector-card{background:linear-gradient(#09121fe6,#070e19e0),linear-gradient(#0000 23px,#4867820f 24px);border:1px solid #7897b21f;box-shadow:0 14px 40px #0000002e}.panel{padding:14px}.inspector-card{padding:18px;position:sticky;top:18px}.metric-grid,.panel-grid{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.panel-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{background:#091320b8;border:1px solid #7897b21f;gap:8px;padding:18px;display:grid}.metric-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:12px}.metric-card strong{color:var(--text);font-size:32px}.metric-card.positive{border-color:#48bb9b42}.metric-card.warning{border-color:#eec56a47}.metric-card.neutral{border-color:#7897b22e}.panel-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-header h3,.panel-header h4{margin:0 0 4px}.panel-header p{color:var(--muted);max-width:52ch;margin:0}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.toolbar-chip{color:var(--muted);background:#0b1422c7;border:1px solid #7897b224;padding:7px 12px}.toolbar-chip.active{color:var(--text);background:#11252fd1;border-color:#48bb9b47}.filter-bar{gap:14px;display:grid}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.filter-actions{flex-wrap:wrap;gap:10px;display:flex}.filter-checkbox{align-items:center;gap:10px;padding-top:24px;display:flex}.filter-checkbox span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.table-shell{border:1px solid #7897b21a;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}thead{background:#0d1827f0}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #7897b214;padding:12px 14px}th{color:var(--muted-2);text-transform:uppercase;letter-spacing:.12em;font-size:12px}td strong,.dense-row strong,.timeline-item strong{color:var(--text);font-size:14px;display:block}td span,.dense-row span,.timeline-item span{color:var(--muted);font-size:12px}tbody tr{cursor:pointer;transition:background .14s}tbody tr:hover,.selected-row{background:#0f2230b8}.dense-list,.timeline,.permission-editor,.member-list{gap:12px;display:grid}.dense-row,.timeline-item,.member-card{background:#0a121eb8;border:1px solid #7897b21a;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.dense-row.selected{background:#0d1f2be6;border-color:#48bb9b4d}.dense-row em,.timeline-item em{color:var(--muted-2);white-space:nowrap;font-style:normal}.action-stack{gap:8px;display:grid}.compact-form,.field-grid{gap:12px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.span-2{grid-column:1/-1}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.detail-card{background:#0a121eb8;border:1px solid #7897b21f;gap:8px;padding:14px;display:grid}.detail-card span{color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.detail-card strong{color:var(--text);font-size:20px}.row-actions,.action-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid.four-columns{grid-template-columns:repeat(4,minmax(0,1fr))}label{color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;gap:8px;font-size:12px;display:grid}input,select,textarea,button{box-sizing:border-box;width:100%;color:var(--text);font:inherit;background:#08101be0;border:1px solid #7897b229;border-radius:0;padding:10px 12px}button{cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;transition:border-color .14s,background .14s}button:hover{background:#0f202ae6;border-color:#48bb9b52}button:disabled{opacity:.56;cursor:not-allowed}.ghost-button{width:auto;padding-inline:14px}.switch-field{text-transform:none;letter-spacing:normal;grid-template-columns:auto 1fr;align-items:center}.switch-field input{width:16px;height:16px;padding:0}.checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.check-card{text-transform:none;letter-spacing:normal;background:#0a121fc2;border:1px solid #7897b21f;gap:10px;padding:10px 12px;display:flex}.check-card input{width:16px;height:16px;margin-top:2px;padding:0}.check-card.active,.member-card.active{background:#11232cd1;border-color:#48bb9b47}.permission-group{gap:10px;display:grid}.permission-group h4{margin:0}.member-card{flex-direction:column}.member-toggle{text-transform:none;letter-spacing:normal;gap:10px;display:flex}.member-toggle input{width:16px;height:16px;margin-top:2px;padding:0}.badge,.status-pill{text-transform:uppercase;letter-spacing:.12em;width:fit-content;color:var(--muted-2);border:1px solid #7897b224;align-items:center;padding:5px 9px;font-size:11px;display:inline-flex}.badge.positive{color:var(--success);border-color:#48bb9b4d}.badge.warning{color:var(--warning);border-color:#eec56a47}.badge.neutral{color:var(--muted);border-color:#7897b22e}.badge.danger{color:var(--danger);border-color:#f0727342}.delta-positive{color:var(--success);font-weight:600}.delta-negative{color:var(--danger);font-weight:600}.delta-neutral{color:var(--muted)}.decision-card{border:1px solid #7897b21f;padding:14px}.decision-card.allow{background:#0a221f94;border-color:#48bb9b57}.decision-card.deny{background:#2a0f1294;border-color:#f0727347}.decision-card ul{color:var(--muted);margin:12px 0 0;padding-left:18px}.matrix-grid{gap:16px;display:grid}.matrix-module{background:#0a121eb8;border:1px solid #7897b21a;padding:14px}.matrix-module header{justify-content:space-between;margin-bottom:12px;display:flex}.matrix-module h4{margin:0}.matrix-table{gap:10px;display:grid}.matrix-role-card{background:#09121fc2;border:1px solid #7897b214;gap:8px;padding:12px;display:grid}.matrix-flags{flex-wrap:wrap;gap:8px;display:flex}.matrix-flag{color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;border:1px solid #7897b214;padding:4px 8px;font-size:11px}.matrix-flag.enabled{color:var(--success);border-color:#48bb9b3d}.status-bar{color:var(--muted-2);text-transform:uppercase;letter-spacing:.12em;border-top:1px solid #7897b21f;border-bottom:none;font-size:12px}.gis-shell{background:radial-gradient(circle at 15% 20%,#3d87ff2e,#0000 30%),radial-gradient(circle at 88% 12%,#ff96421f,#0000 28%),radial-gradient(circle at 70% 80%,#48bb9b1f,#0000 26%),linear-gradient(#070e19fa,#050a12)}.gis-nav{background:linear-gradient(#08111ffa,#060c17f5),linear-gradient(#0000 31px,#56799a0d 32px)}.gis-top-actions{align-items:stretch}.master-shell{background:radial-gradient(circle at 10% 15%,#eec56a2e,#0000 30%),radial-gradient(circle at 85% 15%,#48bb9b24,#0000 30%),radial-gradient(circle at 70% 85%,#3d87ff1f,#0000 25%),linear-gradient(#080f1bfa,#060b14)}.master-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.master-top-actions{align-items:stretch}.planning-shell{background:radial-gradient(circle at 12% 18%,#48bb9b33,#0000 32%),radial-gradient(circle at 82% 16%,#eec56a29,#0000 34%),radial-gradient(circle at 70% 82%,#3d87ff1f,#0000 28%),linear-gradient(#070f1bfa,#050a12)}.planning-nav{background:linear-gradient(#081220fa,#060c18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.planning-top-actions{align-items:stretch}.planning-map-shell{background:radial-gradient(circle,#0e1e2de6,#050b12),linear-gradient(#0000 35px,#7897b208 36px);border:1px solid #7897b21f;overflow:hidden}.planning-map{width:100%;min-height:520px;display:block}.planning-frame{fill:#070e1829;stroke:#7897b224;stroke-width:1.5px}.planning-map-feature{cursor:pointer;transition:opacity .14s}.planning-map-feature:hover{opacity:.88}.planning-map-label{fill:#e9f1f7e0;font-size:12px;font-family:var(--mono)}.survey-shell{background:radial-gradient(circle at 18% 22%,#3d87ff29,#0000 32%),radial-gradient(circle at 84% 20%,#eec56a2e,#0000 34%),radial-gradient(circle at 70% 80%,#48bb9b1f,#0000 28%),linear-gradient(#070f1bfa,#050a12)}.survey-nav{background:linear-gradient(#091220fa,#060c18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.survey-top-actions{align-items:stretch}.survey-map-shell{background:radial-gradient(circle,#0c1c2ce6,#050b12),linear-gradient(#0000 35px,#7897b208 36px);border:1px solid #7897b21f;overflow:hidden}.survey-map{width:100%;min-height:520px;display:block}.survey-frame{fill:#070e1829;stroke:#7897b224;stroke-width:1.5px}.survey-map-feature{cursor:pointer;transition:opacity .14s}.survey-map-feature:hover{opacity:.88}.survey-map-label{fill:#e9f1f7e0;font-size:12px;font-family:var(--mono)}.recon-shell{background:radial-gradient(circle at 15% 18%,#f28b8229,#0000 32%),radial-gradient(circle at 84% 18%,#48bb9b29,#0000 34%),radial-gradient(circle at 68% 82%,#3d87ff1f,#0000 28%),linear-gradient(#070f1bfa,#050a12)}.recon-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.recon-top-actions{align-items:stretch}.recon-map-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.recon-map-shell{background:radial-gradient(circle,#0c1c2ce6,#050b12),linear-gradient(#0000 35px,#7897b208 36px);border:1px solid #7897b21f;gap:12px;padding:14px;display:grid}.recon-map-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.recon-map-title strong{color:var(--text);font-size:13px}.recon-map{width:100%;min-height:420px;display:block}.recon-frame{fill:#070e1829;stroke:#7897b224;stroke-width:1.5px}.recon-map-feature{cursor:pointer;transition:opacity .14s}.recon-map-feature:hover{opacity:.88}.recon-map-label{fill:#e9f1f7e0;font-size:11px;font-family:var(--mono)}.commercial-shell{background:radial-gradient(circle at 16% 20%,#eec56a2e,#0000 32%),radial-gradient(circle at 82% 18%,#f28b8229,#0000 34%),radial-gradient(circle at 70% 82%,#48bb9b24,#0000 30%),linear-gradient(#070f1bfa,#050a12)}.commercial-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.commercial-top-actions{align-items:stretch}.deployment-shell{background:radial-gradient(circle at 14% 18%,#48bb9b2e,#0000 32%),radial-gradient(circle at 82% 20%,#3d87ff24,#0000 34%),radial-gradient(circle at 70% 82%,#eec56a29,#0000 30%),linear-gradient(#070f1bfa,#050a12)}.deployment-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.deployment-top-actions{align-items:stretch}.documents-shell{background:radial-gradient(circle at 18% 16%,#3d87ff29,#0000 32%),radial-gradient(circle at 82% 18%,#eec56a29,#0000 34%),radial-gradient(circle at 70% 82%,#48bb9b24,#0000 30%),linear-gradient(#070f1bfa,#050a12)}.documents-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.documents-top-actions{align-items:stretch}.reports-shell{background:radial-gradient(circle at 14% 18%,#44a0ff2e,#0000 32%),radial-gradient(circle at 82% 18%,#eec56a29,#0000 34%),radial-gradient(circle at 74% 82%,#48bb9b24,#0000 30%),linear-gradient(#070f1bfa,#050a12)}.reports-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.reports-top-actions{align-items:stretch}.tasks-shell{background:radial-gradient(circle at 16% 18%,#48bb9b2e,#0000 32%),radial-gradient(circle at 84% 18%,#f28b8224,#0000 34%),radial-gradient(circle at 70% 82%,#3d87ff24,#0000 30%),linear-gradient(#070f1bfa,#050a12)}.tasks-nav{background:linear-gradient(#0a131ffa,#070d18f5),linear-gradient(#0000 31px,#56799a0d 32px)}.tasks-top-actions{align-items:stretch}.report-export-preview{gap:14px;margin-top:16px;display:grid}.report-export-preview pre{color:var(--muted);white-space:pre-wrap;word-break:break-word;background:#08101ce0;border:1px solid #7897b21f;margin:0;padding:14px;overflow:auto}.toast-rail{z-index:1000;gap:12px;width:min(360px,100vw - 36px);display:grid;position:fixed;top:18px;right:18px}.toast-card{background:#0a131ff0;border:1px solid #7897b224;gap:10px;padding:14px;display:grid;box-shadow:0 22px 48px #00000047}.toast-card p{color:var(--text);margin:0}.toast-card.positive{border-color:#48bb9b4d}.toast-card.warning{border-color:#eec56a47}.toast-card.danger{border-color:#f0727347}.media-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.media-card{text-align:left;cursor:pointer;background:#09121fe6;border:1px solid #7897b21f;gap:12px;padding:14px;transition:transform .15s,border-color .15s,background .15s;display:grid}.media-card:hover,.media-card.selected{background:#0c1c2aeb;border-color:#48bb9b52;transform:translateY(-2px)}.media-preview{background:linear-gradient(130deg,#0f1e30e0,#08101ae6),linear-gradient(#0000 28px,#7897b20d 29px);border:1px solid #7897b21f;justify-content:flex-end;align-items:flex-start;min-height:100px;padding:10px;display:flex}.media-meta{gap:6px;display:grid}.map-evidence{gap:12px;display:grid}.checkbox-row{text-transform:none;letter-spacing:.02em;align-items:center;gap:10px;display:flex}.checkbox-row span{text-transform:none;letter-spacing:.02em;color:var(--muted-2);font-size:12px}.legend-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.legend-card,.gist-note,.validation-block{background:#09111dbd;border:1px solid #7897b21f}.legend-card{align-items:center;gap:14px;padding:14px;display:flex}.legend-card strong,.gist-note strong{display:block}.legend-card span,.gist-note span{color:var(--muted);font-size:12px}.legend-swatch{background:linear-gradient(135deg, color-mix(in srgb, var(--swatch-color) 55%, transparent), transparent), var(--swatch-color);border:1px solid #7897b22e;width:42px;height:42px;box-shadow:inset 0 0 0 1px #ffffff14}.gist-note{gap:4px;padding:14px;display:grid}.gis-viewport-controls{grid-template-columns:repeat(4,minmax(0,1fr));align-content:end;gap:8px;display:grid}.gis-map-shell{background:radial-gradient(circle,#0d1f2fe6,#050b12),linear-gradient(#0000 35px,#7897b208 36px);border:1px solid #7897b21f;margin-top:12px;overflow:hidden}.gis-map{width:100%;min-height:520px;display:block}.google-map-shell{background:#08101ce6;border:1px solid #7897b229;margin-top:12px}.google-map-head{color:var(--muted);border-bottom:1px solid #7897b21f;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:flex}.google-map-frame{border:0;width:100%;height:300px;display:block}.gis-frame{fill:#070e1829;stroke:#7897b224;stroke-width:1.5px}.gis-map-feature{cursor:pointer;transition:opacity .14s}.gis-map-feature:hover{opacity:.88}.gis-map-label,.gis-map-cluster-label{fill:#e9f1f7e0;font-size:13px;font-family:var(--mono)}.gis-map-cluster-label{font-size:12px;font-weight:700}.revision-timeline{gap:14px}.revision-card{align-items:center}.revision-card p{color:var(--muted);margin-top:6px;font-size:13px}.revision-actions{justify-items:end;gap:10px;display:grid}.validation-block{gap:12px;margin-top:14px;padding:14px;display:grid}.validation-block h4{margin:0}@media (width<=1360px){.workspace-grid{grid-template-columns:1fr}.inspector-card{position:static}}@media (width<=1160px){.app-shell{grid-template-columns:1fr}.nav-rail{border-bottom:1px solid #7897b224;border-right:none}.metric-grid,.panel-grid.two-up,.detail-grid,.form-grid,.filter-grid,.field-grid.two-columns,.field-grid.three-columns,.field-grid.four-columns,.checkbox-grid,.legend-grid,.gis-viewport-controls,.login-panel{grid-template-columns:1fr}}@media (width<=820px){.top-bar,.context-header,.status-bar{flex-direction:column}.top-bar-actions{flex-direction:column;align-items:stretch}.search-field{min-width:0}.workspace-grid{padding-inline:14px}}
