@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700&display=swap";:root{color-scheme:light;font-family:DM Sans,Arial,sans-serif;color:#182022;background:#f4f6f5;font-synthesis:none;--ink: #182022;--muted: #667173;--line: #dce2e0;--paper: #ffffff;--canvas: #0a0f10;--graphite: #111819;--teal: #37c3b0;--teal-dark: #137c71;--amber: #e7aa4d;--sidebar: 248px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}button,input{font:inherit}button{cursor:pointer}.brand{display:flex;align-items:center;min-width:0}.brand-logo{display:block;width:176px;height:54px;object-fit:contain;object-position:left center}.brand.compact .brand-logo{width:150px;height:auto}.language-switch{display:flex;align-items:center;gap:9px}.language-switch button{border:0;background:none;color:#879091;padding:4px 0;font-size:12px;font-weight:700;letter-spacing:.08em}.language-switch button.active{color:var(--teal-dark)}.language-switch span{width:1px;height:14px;background:var(--line)}.login-page{min-height:100vh;background:#eef2f0}.login-header{height:80px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:#ffffffeb;border-bottom:1px solid #e1e6e4}.login-header .brand,.password-page header .brand{padding:5px 10px;background:#0e1516}.login-grid{min-height:calc(100vh - 80px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr)}.login-visual{position:relative;overflow:hidden;background:#11191a;min-height:650px}.login-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#080e0f0f,#080e0f1a 45%,#080e0fe0)}.login-visual img{width:100%;height:100%;object-fit:cover;opacity:.92;transform:scale(1.02)}.login-visual-copy{position:absolute;z-index:1;left:7vw;right:7vw;bottom:8vh;color:#fff;max-width:620px}.coordinate-readout{display:inline-block;border-left:2px solid var(--teal);padding-left:12px;color:#b7c6c4;font:600 11px/1.4 Manrope;letter-spacing:.11em}.login-visual-copy h1{margin:23px 0 12px;font:600 clamp(38px,4.8vw,72px)/1.02 "Manrope";letter-spacing:-.045em}.login-visual-copy p{margin:0;color:#ced8d6;max-width:570px;font-size:17px;line-height:1.6}.login-form-wrap{display:grid;place-items:center;padding:50px 7vw;background:#f7f9f8}.login-form{width:min(390px,100%)}.login-lock{width:48px;height:48px;display:grid;place-items:center;color:var(--teal-dark);border:1px solid #cdd9d6;margin-bottom:28px}.login-form h2{margin:0;font:600 32px/1.15 Manrope;letter-spacing:-.035em}.login-form>p{margin:12px 0 32px;color:var(--muted);line-height:1.55}.login-form label{display:grid;gap:8px;margin:0 0 18px;font-size:12px;font-weight:700;color:#4b5758}.login-form input{height:49px;border:1px solid #ccd5d3;background:#fff;padding:0 14px;outline:none;transition:border .2s,box-shadow .2s}.login-form input:focus{border-color:var(--teal-dark);box-shadow:0 0 0 3px #37c3b01f}.primary-button{width:100%;height:50px;border:0;background:#142426;color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;margin-top:8px;transition:background .2s,transform .2s}.primary-button:hover{background:#1d3738;transform:translateY(-1px)}.text-button{display:block;margin:18px auto 0;border:0;background:none;color:var(--teal-dark);font-size:13px;font-weight:700}.security-note{margin-top:38px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:8px;color:#7c8889;font-size:11px}.form-error{color:#a43f3f;font-size:12px;margin:-6px 0 12px}.form-notice{margin-top:15px;color:#4b6662;background:#eaf3f0;padding:11px;font-size:11px;line-height:1.5}.app-shell{height:100vh;min-height:0;overflow:hidden;display:grid;grid-template-columns:var(--sidebar) 1fr;background:#f3f5f4}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#101718;color:#dbe4e2;padding:28px 22px 20px;display:flex;flex-direction:column;z-index:5}.app-sidebar .brand{padding:0 8px 28px;border-bottom:1px solid #273031}.app-sidebar .brand-logo{width:174px;height:56px}.app-sidebar nav{display:grid;gap:6px;padding-top:28px}.app-sidebar button{height:43px;display:flex;align-items:center;gap:13px;padding:0 12px;color:#8f9a9a;background:transparent;border:0;text-align:left;font-size:13px;font-weight:600}.app-sidebar nav button.active,.app-sidebar nav button:hover{color:#fff;background:#1a2525;box-shadow:inset 2px 0 var(--teal)}.sidebar-bottom{margin-top:auto;border-top:1px solid #273031;padding-top:18px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:0 8px 12px}.sidebar-user>div{width:34px;height:34px;display:grid;place-items:center;border:1px solid #40504f;color:var(--teal);font-size:11px;font-weight:700}.sidebar-user span{min-width:0;display:grid;gap:3px}.sidebar-user strong{font-size:12px;color:#edf3f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#7f8c8b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-main{grid-column:2;min-width:0;height:100vh;overflow-y:auto;overflow-x:hidden}.app-topbar{height:58px;padding:0 4vw;display:flex;align-items:center;justify-content:flex-end;gap:26px;background:#ffffffd1;border-bottom:1px solid var(--line)}.topbar-security{margin-right:auto;display:flex;align-items:center;gap:7px;color:#83908f;font-size:11px}.page{max-width:1320px;margin:0 auto;padding:54px 5vw 80px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:58px}.page-heading h1{margin:0 0 9px;font:600 clamp(30px,3vw,44px)/1.1 "Manrope";letter-spacing:-.04em}.page-heading p{margin:0;color:var(--muted)}.page-heading>svg{color:#b2bfbc}.section-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:15px}.section-heading h2{margin:0;font:600 15px/1 Manrope;text-transform:uppercase;letter-spacing:.08em}.section-heading span{color:var(--teal-dark);font-size:11px;font-weight:700}.project-list{display:grid}.project-row{min-height:178px;display:grid;grid-template-columns:238px minmax(210px,1fr) minmax(390px,1.3fr) 48px;gap:28px;align-items:center;border-bottom:1px solid var(--line);padding:26px 0;cursor:pointer;transition:background .2s,padding .2s}.project-row:hover{background:#fff;padding-left:14px;padding-right:14px}.project-row>img{width:238px;height:126px;object-fit:cover;background:#142022}.project-status{color:#637271;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.project-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:8px}.project-primary h3{margin:12px 0 8px;font:600 25px/1.1 Manrope;letter-spacing:-.03em}.project-primary p{margin:0;color:var(--muted);display:flex;align-items:center;gap:6px;font-size:13px}.project-row dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0}.project-row dl div{padding:2px 20px;border-left:1px solid var(--line)}.project-row dt{color:#84908f;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.project-row dd{margin:9px 0 0;font:600 13px/1.3 Manrope}.project-row>button{width:43px;height:43px;display:grid;place-items:center;border:1px solid #cdd7d5;background:transparent;color:var(--teal-dark)}.back-button{display:flex;align-items:center;gap:5px;border:0;background:none;padding:0;color:#687474;font-size:12px;font-weight:700;margin-bottom:24px}.project-hero{height:min(52vh,520px);position:relative;overflow:hidden;background:#0d1415}.project-hero>img{width:100%;height:100%;object-fit:cover;opacity:.88}.project-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,14,15,.8),transparent 65%)}.project-hero-overlay{position:absolute;z-index:1;left:48px;bottom:48px;color:#fff}.project-hero-overlay>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#b7c6c4}.project-hero-overlay i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:8px}.project-hero-overlay h1{margin:14px 0 9px;font:600 clamp(36px,5vw,66px)/1 "Manrope";letter-spacing:-.05em}.project-hero-overlay p{margin:0;display:flex;align-items:center;gap:7px;color:#ced8d5}.viewer-button{position:absolute;z-index:2;right:34px;bottom:34px;border:0;background:var(--teal);color:#071010;height:50px;padding:0 20px;display:flex;align-items:center;gap:10px;font-weight:700}.project-detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:70px;padding:46px 20px}.project-detail-grid h2{font:600 22px/1 Manrope}.detail-list{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:30px}.detail-list>div{display:flex;gap:14px}.detail-list svg{width:19px;color:var(--teal-dark)}.detail-list span{display:grid;gap:6px;font:600 13px Manrope}.detail-list small{color:#84908f;font:700 9px DM Sans;text-transform:uppercase;letter-spacing:.09em}.project-detail-grid>aside{display:flex;align-items:flex-start;gap:16px;border-left:1px solid var(--line);padding:8px 0 8px 32px}.project-detail-grid>aside svg{color:var(--teal-dark);flex:0 0 auto}.project-detail-grid aside h3{margin:0 0 9px;font:600 15px Manrope}.project-detail-grid aside p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.simple-page{padding-top:15vh;max-width:760px}.simple-page>svg{color:var(--teal-dark)}.simple-page h1{font:600 40px Manrope;letter-spacing:-.04em;margin:25px 0 14px}.simple-page p{color:var(--muted);line-height:1.7}.simple-page a{color:var(--teal-dark);font-weight:700}.license-note{margin-top:50px;border-top:1px solid var(--line);padding-top:20px;color:#8a9594;font-size:12px}.password-page{min-height:100vh;background:#f2f5f3}.password-page header{height:76px;display:flex;align-items:center;padding:0 5vw;background:#fff;border-bottom:1px solid var(--line)}.password-page form{width:min(430px,calc(100% - 40px));margin:12vh auto 0;background:#fff;border-top:3px solid var(--teal);padding:40px;box-shadow:0 24px 70px #14242614}.password-page form>svg{color:var(--teal-dark)}.password-page h1{font:600 29px/1.2 Manrope;letter-spacing:-.035em;margin:22px 0 10px}.password-page p{color:var(--muted);line-height:1.6}.password-page label,.admin-form label,.wizard-body label{display:grid;gap:7px;margin:18px 0;color:#596666;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.password-page input,.admin-form input,.admin-form select,.admin-form textarea,.wizard-body input,.wizard-body select,.wizard-body textarea{width:100%;border:1px solid #cfd8d6;background:#fff;min-height:44px;padding:10px 12px;outline:none;color:var(--ink);font:500 13px DM Sans;text-transform:none;letter-spacing:0}.password-page input:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.wizard-body input:focus,.wizard-body select:focus,.wizard-body textarea:focus{border-color:var(--teal-dark);box-shadow:0 0 0 3px #37c3b01a}.password-page form>a{display:flex;align-items:center;gap:9px;color:var(--teal-dark);font-weight:700;text-decoration:none;margin-top:22px}.admin-page{max-width:1440px}.admin-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:32px}.admin-tabs button{height:48px;padding:0 20px;border:0;border-bottom:2px solid transparent;background:transparent;display:flex;align-items:center;gap:9px;color:#74817f;font-size:12px;font-weight:700}.admin-tabs button.active{color:var(--ink);border-bottom-color:var(--teal-dark)}.admin-tabs svg{width:17px}.admin-tabs span{color:var(--teal-dark);font-size:10px}.toast-notice{position:fixed;z-index:80;top:76px;right:28px;width:min(390px,calc(100vw - 40px));min-height:58px;display:grid;grid-template-columns:22px 1fr 28px;align-items:center;gap:11px;padding:13px 12px 13px 15px;border:1px solid #bdd8d2;border-left:3px solid var(--teal-dark);background:#f8fffd;color:#31514c;box-shadow:0 20px 55px #0d22232e;font-size:12px;line-height:1.45;animation:toast-in .22s ease-out}.toast-notice.error{border-color:#e3c8c5;border-left-color:#b3544a;background:snow;color:#7b3732}.toast-notice>svg{width:19px;color:var(--teal-dark)}.toast-notice.error>svg{color:#b3544a}.toast-notice button{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:currentColor;opacity:.65}.toast-notice button svg{width:15px}.admin-list-layout{display:grid;gap:22px}.admin-list-layout h2{margin:0;font:600 20px Manrope;letter-spacing:-.03em}.admin-actions-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:18px;background:#ffffffb8;border:1px solid #e0e7e5;box-shadow:0 16px 45px #1820220a}.admin-actions-bar p{max-width:660px;margin:6px 0 0;color:#7a8785;font-size:12px;line-height:1.6}.admin-primary-action,.secondary-button,.ghost-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cbd5d3;padding:0 15px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.admin-primary-action{border-color:#122324;background:#122324;color:#fff}.admin-primary-action svg,.secondary-button svg{width:16px}.secondary-button{background:#fff;color:#243332}.ghost-button{background:transparent;color:#667371;border-color:transparent}.admin-primary-action:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.admin-list{border-top:1px solid var(--line)}.admin-list>div{min-height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px}.admin-list span{display:grid;gap:5px;margin-right:auto}.admin-list strong{font:600 13px Manrope}.admin-list small{color:#7c8887;font-size:10px}.admin-list i{font-style:normal;color:var(--teal-dark);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.admin-list button{border:1px solid #cbd5d3;background:transparent;color:#4d5e5c;padding:7px 10px;font-size:9px;font-weight:700;text-transform:uppercase}.admin-list select{max-width:140px;height:31px;border:1px solid #cbd5d3;background:#fff;color:#53615f;font-size:10px;padding:0 7px}.admin-list button:disabled{opacity:.45;cursor:not-allowed}.admin-empty-row{color:#7a8785;font-size:12px}.admin-project-row.expanded{display:grid;gap:18px;align-items:stretch;padding:18px 0;border-bottom:1px solid var(--line)}.admin-project-row.expanded header{display:flex;align-items:center;gap:16px}.admin-project-row.expanded header span{margin-right:auto}.admin-project-row.expanded header i{font-style:normal;color:var(--teal-dark);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.project-row-actions{display:flex;align-items:center;gap:8px}.capture-mini-list{display:grid;gap:8px}.capture-mini-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;background:#f8faf9;border:1px solid #e1e8e5}.capture-mini-list p{margin:0;color:#84908f;font-size:11px}.feature-toggle-group{display:grid;gap:10px;padding:13px;background:#f8faf9;border:1px solid #e1e8e5}.feature-grid,.feature-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.feature-check,.feature-fieldset label{display:flex!important;align-items:center;gap:7px!important;margin:0!important;color:#5f6b6a!important;font-size:10px!important;text-transform:none!important;letter-spacing:0!important}.feature-check input,.feature-fieldset input{width:auto;min-height:auto;accent-color:var(--teal-dark)}.feature-toggle-group>button{justify-self:start;border:1px solid #cbd5d3;background:#fff;color:#40504e;padding:8px 11px;font-size:9px;font-weight:700;text-transform:uppercase}.feature-fieldset{border:1px solid #dce5e2;padding:14px;margin:18px 0}.feature-fieldset legend{color:#596666;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:0 6px}.member-admin-row{display:grid;grid-template-columns:minmax(140px,1fr) 145px auto;gap:8px}.member-admin-row input,.member-admin-row select{border:1px solid #cbd5d3;background:#fff;min-height:34px;padding:0 9px;color:#53615f;font-size:11px}.license-row{display:grid;gap:8px}.license-row>span{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#f8faf9;border:1px solid #e1e8e5}.license-row strong{font-size:11px}.license-row small{margin-right:auto;color:#7c8887;font-size:10px}.license-row button{border:1px solid #cbd5d3;background:#fff;color:#4d5e5c;padding:6px 8px;font-size:9px;font-weight:700}.admin-form{padding:28px;background:#fff;border-top:3px solid #152425;box-shadow:0 18px 50px #1d30310f}.admin-form h2{display:flex;align-items:center;gap:9px}.admin-form h2 svg{width:18px;color:var(--teal-dark)}.admin-form textarea{min-height:90px;resize:vertical;line-height:1.5}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wizard-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#090f1094;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.wizard-modal{width:min(880px,100%);max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#fbfdfc;border:1px solid rgba(255,255,255,.45);box-shadow:0 34px 90px #070e0f61}.wizard-modal.no-steps{grid-template-rows:auto minmax(0,1fr) auto}.wizard-modal.compact{width:min(600px,100%)}.wizard-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px 18px;background:#0f1a1b;color:#fff}.wizard-header small{color:var(--teal);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.wizard-header h2{margin:3px 0 0;font:600 26px Manrope;letter-spacing:-.04em}.wizard-header button{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);background:transparent;color:#dce7e4}.wizard-header svg{width:18px}.wizard-steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-bottom:1px solid #dde6e3;background:#fff}.wizard-steps span{min-height:58px;display:flex;align-items:center;justify-content:center;gap:8px;color:#8a9694;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-right:1px solid #edf1ef}.wizard-steps span:last-child{border-right:0}.wizard-steps b{width:22px;height:22px;display:grid;place-items:center;border:1px solid #d5dfdc;border-radius:999px;color:#8a9694;font-size:10px}.wizard-steps span.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--teal-dark)}.wizard-steps span.active b,.wizard-steps span.done b{border-color:var(--teal-dark);background:var(--teal-dark);color:#fff}.wizard-steps span.done{color:#50605d}.wizard-body{overflow:auto;padding:24px 28px 28px}.wizard-body textarea{min-height:92px;resize:vertical;line-height:1.5}.wizard-intro{margin-bottom:18px;padding:14px 16px;border-left:3px solid var(--teal-dark);background:#f2faf8}.wizard-intro.soft{margin:0 0 12px;border-left-color:#9fb0ac;background:#f7faf9}.wizard-intro strong{display:block;margin-bottom:4px;font:700 13px Manrope}.wizard-intro p{margin:0;color:#71807d;font-size:12px;line-height:1.55}.wizard-card{margin:18px 0;padding:16px;border:1px solid #dce5e2;background:#fff}.wizard-card h3{margin:0 0 13px;font:700 12px Manrope;text-transform:uppercase;letter-spacing:.08em;color:#40504e}.wizard-review{display:grid;gap:12px}.wizard-review>div{display:grid;gap:5px;padding:16px;background:#fff;border:1px solid #dde6e3}.wizard-review small{color:var(--teal-dark);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.wizard-review strong{font:700 16px Manrope;color:var(--ink)}.wizard-review span{color:#71807d;font-size:12px;line-height:1.5}.wizard-footer{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:16px 22px;border-top:1px solid #dde6e3;background:#fbfdfcf5}.wizard-footer .primary-button{min-height:42px;padding:0 18px}.edit-grid{display:grid;gap:2px}.crs-field{display:grid;gap:10px}.control-points-field{margin:18px 0;padding:16px;border:1px dashed #cbd8d5;background:#fbfdfc}.control-points-field input[type=file]{padding:11px 12px;background:#fff}.geodetic-metadata-note,.control-import-status{display:grid;gap:4px;padding:12px;border:1px solid #b9ddd7;border-radius:10px;background:#effaf8;color:#194f48}.geodetic-metadata-note span,.control-import-status span{font-size:12px}.control-import-status{grid-template-columns:1fr auto;align-items:center;margin-top:12px}.control-import-status.warning{border-color:#e9cf8b;background:#fff9e9;color:#725812}.control-import-status.error{border-color:#efb2ad;background:#fff1f0;color:#842d27}.control-import-issues{margin:8px 0;padding-left:22px;color:#7b3a32;font-size:12px}.control-import-preview{overflow-x:auto;margin:10px 0;border:1px solid #dce5e3;border-radius:10px}.control-import-preview table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.control-import-preview th,.control-import-preview td{padding:8px;border-bottom:1px solid #e8eeed;text-align:left;white-space:nowrap}.control-import-preview tr[data-status=ERROR]{background:#fff1f0}.control-import-preview tr[data-status=WARNING]{background:#fff9e9}.control-import-confirmation{display:flex!important;flex-direction:row!important;gap:10px!important;align-items:flex-start;padding:12px;border:1px solid #cbd8d6;border-radius:10px}.control-import-confirmation input{width:auto;margin-top:2px}.field-hint{margin:-4px 0 12px;color:#6f7d7a;font-size:12px;line-height:1.5}.page-loader{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:24px;background:#0c1213}.page-loader .brand-logo{width:170px}.page-loader>span{width:72px;height:1px;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:pulse 1.2s infinite}.viewer-page{position:fixed;inset:0;background:var(--canvas);color:#e8efed;overflow:hidden}.viewer-header{height:58px;display:flex;align-items:center;background:#0e1516;border-bottom:1px solid #263031;position:relative;z-index:20}.viewer-back{width:58px;align-self:stretch;border:0;border-right:1px solid #263031;background:transparent;color:#91a09e;display:grid;place-items:center}.viewer-back svg{width:19px}.viewer-brand{height:100%;width:138px;display:flex;align-items:center;padding:5px 16px;border-right:1px solid #263031}.viewer-brand img{display:block;width:105px;max-height:46px;object-fit:contain;object-position:left center}.viewer-project{display:grid;gap:2px;padding-left:22px}.viewer-project small{font-size:9px;color:#6f7d7b;text-transform:uppercase;letter-spacing:.08em}.viewer-project strong{font:600 13px Manrope}.viewer-capture-select{height:100%;min-width:250px;margin-left:24px;padding:0 14px;border-left:1px solid #263031;border-right:1px solid #263031;display:flex;align-items:center;gap:9px;color:#7d8b89}.viewer-capture-select svg{width:15px;color:var(--teal)}.viewer-capture-select select{width:100%;border:0;outline:none;background:transparent;color:#d8e2df;font:600 11px Manrope}.viewer-capture-select option{color:#172021}.viewer-header-actions{margin-left:auto;height:100%;display:flex;align-items:center}.viewer-header-actions button{height:100%;min-width:42px;border:0;border-left:1px solid #263031;background:transparent;color:#768482;font-size:10px;font-weight:700}.viewer-header-actions button.active{color:var(--teal)}.viewer-header-actions svg{width:17px}.viewer-stage{position:absolute;inset:58px 0 0}.potree-canvas{position:absolute;inset:0;background:radial-gradient(circle at center,#233034,#090e0f 70%)}.potree-canvas canvas{outline:none}.cesium-canvas{position:absolute;inset:0;background:radial-gradient(circle at center,#172729,#080d0e 72%)}.cesium-primary-canvas .cesium-viewer,.cesium-primary-canvas .cesium-viewer-cesiumWidgetContainer,.cesium-primary-canvas .cesium-widget,.cesium-primary-canvas canvas{width:100%;height:100%}.cesium-primary-canvas .cesium-viewer-bottom{left:92px;right:auto;bottom:27px}.cesium-primary-canvas .cesium-credit-logoContainer{display:none!important}.giro-canvas{overflow:hidden}.giro-canvas canvas{width:100%!important;height:100%!important;display:block;outline:none}.control-point-world-label{display:block;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#6cff00!important;font:800 18px/1 Manrope,sans-serif!important;letter-spacing:-.02em;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px #071011,0 0 4px #071011,0 0 8px rgba(7,16,17,.9)}.viewer-error-toast{position:absolute;z-index:22;top:18px;left:50%;transform:translate(-50%);min-width:320px;max-width:620px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid #8b4f4a;background:#2a1211f0;color:#ffd6d2;font-size:11px}.viewer-error-toast button{width:26px;height:26px;border:0;background:transparent;color:inherit;display:grid;place-items:center}.viewer-error-toast.resource-errors{align-items:flex-start}.viewer-error-toast.resource-errors p{margin:0 0 4px}.viewer-error-toast.resource-errors p:last-child{margin-bottom:0}.cesium-layer-list{display:grid;gap:7px;margin-top:12px}.cesium-layer-list label{min-height:38px;display:flex;align-items:center;gap:10px;padding:0 11px;border:1px solid #303b3a;color:#aab5b3;font-size:10px;font-weight:700}.cesium-layer-list label:has(input:checked){border-color:var(--teal-dark);background:#37c3b014;color:var(--teal)}.cesium-layer-list label.disabled{opacity:.38}.cesium-layer-list input{accent-color:var(--teal-dark)}.cesium-canvas .cesium-widget,.cesium-canvas .cesium-widget canvas{width:100%;height:100%;outline:none}.cesium-canvas .cesium-widget-credits{display:none!important}.cesium-credit-strip{position:absolute;z-index:3;left:98px;bottom:29px;max-width:46vw;color:#60716d;font-size:8px;letter-spacing:.02em;opacity:.78;pointer-events:auto}.cesium-credit-strip a{color:#7faea6;text-decoration:none}.cesium-credit-strip a:hover{color:var(--teal)}.canvas-loading{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#0a1011}.canvas-loading>div{width:260px;text-align:center}.canvas-loading strong{font:500 38px Manrope;color:#fff}.canvas-loading p{color:#83908e;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.canvas-loading button{min-height:38px;padding:0 15px;border:1px solid rgba(55,195,176,.45);background:#37c3b01f;color:#dce7e4;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.canvas-loading span,.viewer-loading-page>span{display:block;height:2px;background:#273232;margin-top:22px}.canvas-loading i,.viewer-loading-page i{height:100%;display:block;background:var(--teal);transition:width .4s}.tool-rail{position:absolute;z-index:12;top:22px;left:18px;width:64px;background:#0e1516f2;border:1px solid #2b3535;box-shadow:0 14px 35px #00000047}.tool-section-label{font-size:8px;font-weight:700;color:#667573;text-transform:uppercase;letter-spacing:.09em;padding:10px 4px 8px;text-align:center;border-bottom:1px solid #293333}.tool-rail button{position:relative;width:100%;height:54px;border:0;border-bottom:1px solid #242e2e;background:transparent;color:#83918f;display:grid;place-items:center}.tool-rail button:hover,.tool-rail button.active{color:var(--teal);background:#172222;box-shadow:inset 2px 0 var(--teal)}.tool-rail button svg{width:19px}.tool-rail button span{position:absolute;left:72px;top:12px;background:#142020;color:#d9e3e0;padding:7px 10px;white-space:nowrap;font-size:10px;pointer-events:none;opacity:0;transform:translate(-4px);transition:.16s;border:1px solid #2b3837}.tool-rail button:hover span{opacity:1;transform:translate(0)}.tool-divider{height:8px;background:#0b1112;border-bottom:1px solid #2b3535}.panel-toggle{position:absolute;z-index:14;top:22px;right:18px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #34403f;background:#0e1516f0;color:#8e9b99}.panel-toggle svg{width:17px}.tool-guidance{position:absolute;z-index:15;left:98px;top:22px;width:min(455px,calc(100vw - 570px));min-height:48px;display:flex;align-items:center;gap:13px;padding:9px 10px 9px 14px;border:1px solid #33413f;border-left:2px solid var(--teal);background:#0d1516f0;box-shadow:0 14px 35px #00000038}.tool-guidance>span{min-width:0;display:grid;gap:3px;color:#879491;font-size:9px;line-height:1.35}.tool-guidance strong{color:#e0e8e6;font:600 10px Manrope}.tool-guidance>button:not(.guidance-close){flex:0 0 auto;height:28px;border:1px solid #2e766d;background:#17302e;color:var(--teal);padding:0 11px;font-size:8px;font-weight:700;text-transform:uppercase}.tool-guidance .guidance-close{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:#778582}.tool-guidance .guidance-close svg{width:14px}.viewer-inspector{position:absolute;z-index:13;right:18px;top:68px;bottom:42px;width:294px;overflow:auto;background:#0e1516f5;border:1px solid #2b3635;transform:translate(calc(100% + 22px));transition:transform .24s ease;scrollbar-width:thin}.viewer-inspector.open{transform:translate(0)}.viewer-inspector section{padding:19px;border-bottom:1px solid #293333}.inspector-heading{display:flex;justify-content:space-between;align-items:center;color:#84918f;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.inspector-heading>span{display:flex;align-items:center;gap:8px}.inspector-heading svg{width:15px;color:var(--teal)}.inspector-heading i{font-style:normal;color:var(--teal);font-size:8px}.inspector-heading b{width:20px;height:20px;display:grid;place-items:center;background:#1c2828;color:var(--teal);font-size:9px}.viewer-inspector h2{margin:18px 0 5px;font:600 23px/1 Manrope;letter-spacing:-.03em}.inspector-location{margin:0 0 20px;color:#74817f;font-size:11px}.viewer-inspector dl{margin:0;display:grid;gap:9px}.viewer-inspector dl div{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #25302f;padding-top:9px}.viewer-inspector dt{color:#687573;font-size:9px}.viewer-inspector dd{margin:0;color:#d5dddb;font:600 10px Manrope;text-align:right}.attribute-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:15px}.attribute-grid button{height:34px;border:1px solid #303b3a;background:transparent;color:#778582;font-size:9px;font-weight:700}.attribute-grid button.active{background:#1a2b29;border-color:#287b70;color:var(--teal)}.attribute-grid button:disabled{opacity:.35;cursor:not-allowed}.mode-grid{grid-template-columns:1fr 1fr}.control-toggle{width:100%;min-height:38px;margin-top:10px;border:1px solid #303b3a;background:transparent;color:#94a19f;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;font-weight:700}.control-toggle svg{width:15px;color:var(--teal)}.control-toggle.active{background:#172726;border-color:#287b70;color:#d8e2df}.control-toggle strong{color:var(--teal)}.mesh-copy{margin:13px 0 0;color:#82908e;font-size:10px;line-height:1.5}.budget-control{display:grid;gap:10px;margin-top:18px}.budget-control span{display:flex;justify-content:space-between;color:#73807e;font-size:9px}.budget-control strong{color:#cdd8d5}.budget-control input{accent-color:var(--teal);width:100%}.quality-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.quality-preset-grid button{min-height:32px;border:1px solid #2f3b3a;background:#ffffff05;color:#80908d;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.quality-preset-grid button.active{border-color:var(--teal);background:#37c3b029;color:#dff8f3}.geodetic-contract{margin:13px 0 0;color:#6f7d7b;font-size:9px;line-height:1.5}.geodetic-contract strong{display:block;color:#aebbb8;font-weight:600}.geodetic-field{display:grid;gap:7px;margin-top:14px}.geodetic-field>span,.geodetic-tolerances span{color:#73807e;font-size:9px}.geodetic-field select,.geodetic-tolerances input{width:100%;min-height:34px;border:1px solid #303b3a;background:#11191a;color:#d6e0dd;padding:0 9px;font-size:10px}.geodetic-tolerances{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.geodetic-tolerances label{display:grid;gap:7px}.geodetic-pick-button{width:100%;min-height:36px;margin-top:10px;border:1px solid #2e766d;background:#17302e;color:var(--teal);display:flex;align-items:center;justify-content:center;gap:8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.geodetic-pick-button.active{border-color:#a95049;background:#301c1b;color:#ff8d84}.geodetic-pick-button svg{width:14px}.geodetic-summary{grid-template-columns:1fr 1fr;gap:0 10px!important;margin-top:14px!important}.geodetic-summary div{min-width:0}.geodetic-result-list{list-style:none;margin:13px 0 0;padding:0;display:grid;gap:7px}.geodetic-result-list li{border:1px solid #2f3b39;border-left:2px solid #a95049;background:#ffffff05;padding:8px;display:grid;gap:5px}.geodetic-result-list li[data-status=PASS]{border-left-color:var(--teal)}.geodetic-result-list span{display:flex;align-items:center;justify-content:space-between;gap:8px}.geodetic-result-list strong{color:#e5eeeb;font-size:10px}.geodetic-result-list b{color:#ff8d84;font-size:8px}.geodetic-result-list li[data-status=PASS] b{color:var(--teal)}.geodetic-result-list small{color:#7f8d8a;font-size:8px;line-height:1.4}.geodetic-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.geodetic-actions button{min-width:0;height:32px;border:1px solid #35413f;background:transparent;color:#abb6b4;display:flex;align-items:center;justify-content:center;gap:5px;font-size:8px}.geodetic-actions svg{width:12px}.geodetic-status,.geodetic-set-badge{display:inline-flex;width:fit-content;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.geodetic-status.provisional,.geodetic-set-badge.unverified{background:#4c3e1f;color:#f4d88c}.geodetic-status.verified,.geodetic-set-badge.authoritative{background:#173f39;color:#78d9ca}.geodetic-status.unconfirmed,.geodetic-set-badge.demo{background:#3d2d2b;color:#f1a49c}.geodetic-set-heading{display:flex;align-items:center;gap:8px;margin:10px 0 8px}.geodetic-set-heading small{color:#909c9a;font-size:9px}.geodetic-workflow-warning{margin:0 0 10px!important;padding:9px;border:1px solid #5b4830;background:#241e16;color:#e8c983!important}.geodetic-selected-coordinates{display:grid;gap:5px;margin:8px 0 10px}.geodetic-selected-coordinates>div{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;background:#111716;border:1px solid #283331}.geodetic-selected-coordinates span{color:#778481;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.geodetic-selected-coordinates strong{color:#d8e1df;font-size:9px}.geodetic-selected-coordinates button{height:30px;border:1px solid #40504d;background:transparent;color:#b7c5c2;display:flex;align-items:center;justify-content:center;gap:5px;font-size:8px}.geodetic-selected-coordinates button svg{width:12px}.geodetic-server-status{margin:7px 0 0!important;color:#8ea09d!important;font-size:8px!important}.geodetic-panel>p:last-child{color:#6f7d7b;font-size:9px;line-height:1.5;margin:13px 0 0}.measurement-panel>p{color:#6f7d7b;font-size:10px;line-height:1.55;margin:15px 0 0}.measurement-panel>button{width:100%;border:1px solid #35413f;background:transparent;color:#abb6b4;height:36px;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px}.measurement-panel>button svg{width:14px}.measurement-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}.measurement-list li{border:1px solid #2b3635;background:#ffffff05;padding:9px;display:grid;gap:4px}.measurement-list span{color:#7d8a88;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.measurement-list strong{color:#e6efed;font-size:11px;overflow-wrap:anywhere}.measurement-actions{display:grid;grid-template-columns:1fr 80px;gap:8px;margin-top:14px}.measurement-actions button{border:1px solid #35413f;background:transparent;color:#abb6b4;height:36px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px}.measurement-actions svg{width:14px}.mobile-notice{margin:14px;padding:12px;color:#82908e;border-left:2px solid var(--amber);background:#171f20;font-size:9px;line-height:1.5}.viewer-status{position:absolute;z-index:12;left:0;right:0;bottom:0;height:26px;background:#0b1112f5;border-top:1px solid #273130;display:flex;align-items:center;gap:0;padding-left:96px}.viewer-status span{height:100%;display:flex;align-items:center;gap:6px;padding:0 12px;border-right:1px solid #273130;color:#6f7c7a;font-size:8px;letter-spacing:.04em}.viewer-status svg{width:12px}.viewer-status .status-spacer{flex:1;border:0}.online-dot{width:6px;height:6px;border-radius:50%;background:var(--teal)}.viewer-loading-page{min-height:100vh;display:grid;place-content:center;justify-items:center;background:#0b1112;color:#9aa7a5}.viewer-loader-mark{width:50px;height:50px;border:1px solid #35504c;display:grid;place-items:center;color:var(--teal);font:600 18px Manrope}.viewer-loading-page p{font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-top:22px}.viewer-loading-page>span{width:180px}.viewer-help{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:#030809ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.viewer-help-card{position:relative;width:min(430px,calc(100vw - 32px));background:#11191a;border:1px solid #34403f;padding:32px;box-shadow:0 30px 90px #00000080}.help-close{position:absolute;top:13px;right:13px;width:34px;height:34px;border:0;background:transparent;color:#83908e}.help-close svg{width:17px}.help-icon{color:var(--teal);width:25px}.viewer-help h2{margin:18px 0 25px;font:600 24px Manrope;letter-spacing:-.03em}.shortcut-list{display:grid}.shortcut-list>div{min-height:48px;display:grid;grid-template-columns:76px 1fr;align-items:center;border-top:1px solid #293333}.shortcut-list kbd{width:fit-content;min-width:30px;border:1px solid #3b4947;background:#192222;color:#d7e1df;padding:5px 7px;text-align:center;font:600 9px DM Sans}.shortcut-list span{color:#8e9b99;font-size:11px}@keyframes pulse{50%{opacity:.3;transform:scaleX(.75)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}@media(max-width:1000px){:root{--sidebar: 82px}.app-sidebar{width:82px;padding:24px 14px}.app-sidebar .brand{justify-content:center;padding:0 0 24px}.app-sidebar .brand-logo{width:54px;height:34px;object-fit:contain;object-position:center}.app-sidebar nav button:not(.active):after,.app-sidebar nav button{font-size:0}.app-sidebar nav button{justify-content:center;padding:0}.app-sidebar nav button svg{width:19px}.sidebar-user span,.sidebar-bottom>button{display:none}.sidebar-user{justify-content:center;padding:0}.project-row{grid-template-columns:190px 1fr 48px}.project-row>img{width:190px}.project-row dl{grid-column:2}}@media(max-width:760px){.login-header{height:66px;padding:0 20px}.login-grid{min-height:calc(100vh - 66px);display:block}.login-visual{min-height:280px;height:36vh}.login-visual-copy{left:24px;bottom:24px}.login-visual-copy h1{font-size:31px;margin:14px 0 8px}.login-visual-copy p{display:none}.coordinate-readout{font-size:8px}.login-form-wrap{padding:42px 24px 55px}.login-lock{display:none}.login-form h2{font-size:26px}.app-shell{display:block;overflow:hidden}.app-sidebar{position:fixed;z-index:20;inset:auto 0 0;width:auto;height:62px;flex-direction:row;padding:0}.app-sidebar .brand,.sidebar-bottom{display:none}.app-sidebar nav{width:100%;display:flex;justify-content:space-around;padding:0}.app-sidebar nav button{height:62px;flex:1}.app-sidebar nav button.active{box-shadow:inset 0 2px var(--teal)}.app-main{height:100vh;overflow-y:auto;padding-bottom:62px}.app-topbar{padding:0 20px}.page{padding:38px 20px 70px}.page-heading{margin-bottom:42px}.project-row{grid-template-columns:116px 1fr 38px;gap:15px;min-height:135px}.project-row>img{width:116px;height:88px}.project-primary h3{font-size:19px}.project-status,.project-primary p,.project-row dl{display:none}.project-row>button{width:36px;height:36px}.project-hero{height:62vh}.project-hero-overlay{left:24px;right:24px;bottom:95px}.viewer-button{left:24px;right:24px;bottom:24px;justify-content:center}.project-detail-grid{grid-template-columns:1fr;gap:35px;padding:35px 4px}.detail-list{grid-template-columns:1fr}.project-detail-grid>aside{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.admin-actions-bar{grid-template-columns:1fr}.admin-project-row.expanded header{align-items:flex-start;flex-wrap:wrap}.project-row-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.member-admin-row,.feature-grid,.feature-fieldset{grid-template-columns:1fr}.capture-mini-list>div{grid-template-columns:1fr}.license-row>span{flex-wrap:wrap}.form-pair{grid-template-columns:1fr;gap:0}.wizard-backdrop{padding:0;align-items:stretch}.wizard-modal,.wizard-modal.compact{width:100%;max-height:100vh;min-height:100vh}.wizard-header{padding:18px 20px}.wizard-header h2{font-size:22px}.wizard-steps{grid-auto-flow:row;grid-auto-columns:auto}.wizard-steps span{min-height:42px;justify-content:flex-start;padding:0 20px;border-right:0;border-bottom:1px solid #edf1ef}.wizard-body{padding:18px 20px 24px}.wizard-footer{grid-template-columns:1fr}.wizard-footer>span{display:none}.wizard-footer button{width:100%}.viewer-project small{display:none}.viewer-brand{width:88px;padding:5px 8px}.viewer-brand img{width:72px;height:42px;object-fit:contain;object-position:center}.viewer-project{padding-left:12px;max-width:125px}.viewer-project strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-capture-select{position:absolute;left:0;right:0;top:58px;height:40px;min-width:0;margin:0;padding:0 13px;background:#0e1516f5;border-top:1px solid #263031}.viewer-stage{inset:98px 0 0}.viewer-header-actions button:first-child,.viewer-header-actions button:nth-child(2),.viewer-header-actions button:nth-child(4){display:none}.tool-rail{top:auto;left:12px;bottom:38px;width:auto;display:flex}.tool-section-label,.tool-divider,.tool-rail button:nth-of-type(n+4){display:none}.tool-rail button{width:54px;border-bottom:0;border-right:1px solid #273131}.tool-rail button span{display:none}.panel-toggle{top:12px;right:12px}.viewer-inspector{right:12px;top:56px;bottom:38px;width:calc(100vw - 24px);max-width:330px}.viewer-status{padding-left:0}.viewer-status span:nth-child(3),.viewer-status span:nth-child(5),.viewer-status span:nth-child(6){display:none}.tool-guidance{left:12px;right:58px;top:12px;width:auto;min-height:42px;padding:7px 8px 7px 11px}.tool-guidance>span{font-size:8px}.toast-notice{top:70px;right:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
