:root{--bg-dark: #0f172a;--bg-panel: rgba(30, 41, 59, .85);--text-main: #f8fafc;--text-muted: #94a3b8;--accent: #3b82f6;--accent-hover: #60a5fa;--border-color: rgba(255, 255, 255, .1);--input-bg: rgba(15, 23, 42, .6);--success: #10b981;--danger: #ef4444;--shadow-main: 0 4px 30px rgba(0, 0, 0, .25);--font-body: "Inter", sans-serif;--bp-tablet: 1024px;--bp-narrow: 768px;--hit-min: 44px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-body);background:linear-gradient(135deg,#0f172a,#1e1b4b);color:var(--text-main)}a{color:var(--accent-hover);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit}.app-shell{display:flex;flex-direction:column;min-height:100vh}.page{display:flex;flex-direction:column;min-height:100vh;padding:0 1.5rem}.topbar{display:flex;flex-direction:column;gap:.2rem;margin:0 -1.5rem .25rem;padding:.3rem 1.5rem;position:sticky;top:0;z-index:100;background:#0f172aeb;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-compact h1{font-size:.95rem}.topbarSession{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.sessionField{display:flex;flex-direction:column;gap:0;min-width:0}.sessionLabel{font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);line-height:1.1}.layout-error-banner{margin:0 0 .5rem}.offline-session-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:0 1rem .75rem;padding:.65rem .85rem;border:1px solid var(--accent-border, #3d5a80);border-radius:6px;background:#3d5a801f}.offline-session-banner p{margin:0;font-size:.9rem}.offline-session-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.survey-editor-load-error{margin:1rem;padding:1rem;max-width:40rem}.survey-editor-load-error-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.topbarRow{display:flex;align-items:center;gap:.5rem;min-width:0}.topbarRowPrimary{justify-content:space-between;position:relative;z-index:1}.topbarBrand{display:flex;align-items:center;gap:.5rem;min-width:0}.topbar-brand-logo.brand-logo{width:min(28vw,120px);flex-shrink:0}.topbarRowSecondary{justify-content:flex-start;position:relative;z-index:2}.topbar h1{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(to right,#60a5fa,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sessionUser{color:var(--text-muted);font-size:.9rem;font-weight:600}.sessionRole{font-size:.75rem;color:#93c5fd;border:1px solid var(--border-color);border-radius:999px;padding:.15rem .55rem}.topbarSession button{background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);padding:.2rem .55rem;cursor:pointer;font-weight:600;font-size:.8rem}.topbarSession button:hover{color:var(--text-main);border-color:var(--accent)}.menuBar{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.menu{position:relative}.menu summary,.menu-trigger{list-style:none;background:#334155e6;color:var(--text-main);border:1px solid var(--border-color);border-radius:6px;padding:.28rem .65rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:.72rem;letter-spacing:.04em}.menu-trigger{display:inline-flex;align-items:center;font-family:inherit}.menu summary::-webkit-details-marker{display:none}.menu[open] summary,.menu-trigger[aria-expanded=true],.menu summary.activeTab,.menu-trigger.activeTab{border-color:var(--accent);color:var(--accent-hover)}.menuList{position:absolute;top:100%;left:0;min-width:200px;padding:.5rem;margin-top:0;padding-top:calc(.5rem + 6px);border:1px solid var(--border-color);border-radius:10px;background:#111827fa;display:flex;flex-direction:column;gap:.35rem;z-index:200;box-shadow:var(--shadow-main)}.menuList button,.menuList a{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-main);padding:.5rem .65rem;cursor:pointer;text-decoration:none;font-weight:500;font-size:.9rem}.menuList button:hover,.menuList a:hover{background:#3b82f61f;border-color:#3b82f640}.menuList button[aria-disabled=true]{cursor:default;opacity:.65}.menuList button[aria-disabled=true]:hover{background:transparent;border-color:transparent}.menuList .activeTab{background:#3b82f62e;border-color:var(--accent);color:var(--accent-hover)}.topbarLink{color:var(--text-muted);font-weight:600;font-size:.875rem;text-decoration:none;padding:.45rem .65rem;border-radius:8px}.topbarLink:hover,.topbarLink.active{color:var(--accent-hover);background:#3b82f61a}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.page-header-compact{margin-bottom:.5rem}.page-header-compact .page-subtitle{margin-top:.2rem;font-size:.85rem}.pagination-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem}.pagination-summary{font-size:.85rem}.pagination-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.pagination-page-size{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-muted)}.pagination-page-size select{padding:.25rem .4rem;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main)}.page-title{margin:0}.page-subtitle{margin:.35rem 0 0}.page-header-actions{display:flex;gap:.5rem;flex-shrink:0}.survey-card-desc{margin:.35rem 0 0;max-width:52rem}.error-panel pre,.error-pre{margin:.75rem 0 0;padding:.75rem;border-radius:8px;background:#0f172a99;border:1px solid var(--border-color);overflow-x:auto;font-size:.85rem}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-panel);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header h1{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(to right,#60a5fa,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-nav{display:flex;gap:1rem}.app-nav a{color:var(--text-muted);font-weight:500;text-decoration:none}.app-nav a.active,.app-nav a:hover{color:var(--accent-hover)}.app-user{display:flex;align-items:center;gap:.75rem;margin-left:auto}.app-username{color:var(--text-muted);font-size:.9rem}.auth-loading{display:grid;place-items:center;min-height:100vh;color:var(--text-muted)}.login-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1rem 4.5rem;overflow:hidden}.login-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(59,130,246,.18),transparent 45%),radial-gradient(circle at 80% 70%,rgba(99,102,241,.2),transparent 40%);pointer-events:none}.login-card{position:relative;width:min(100%,420px);padding:1.5rem}.login-brand{display:flex;flex-direction:column;gap:.85rem;align-items:flex-start;margin-bottom:1.25rem}.login-brand-image.brand-logo{width:min(100%,320px)}.brand-logo{display:block;width:min(100%,220px);height:auto;object-fit:contain}.brand-logo-compact{width:40px;height:40px;border-radius:8px}.topbar-brand-logo.brand-logo-compact{width:28px;height:28px}.login-brand h1{margin:0;font-size:1.35rem}.login-brand p{margin:.2rem 0 0}.login-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem;font-size:.9rem;color:var(--text-muted)}.login-field input{background:var(--input-bg);border:1px solid var(--border-color);border-radius:8px;padding:.55rem .65rem;color:var(--text-main)}.login-field input:focus{outline:none;border-color:var(--accent)}.login-password-wrap{position:relative;display:block}.login-password-wrap input{width:100%;padding-right:2.25rem;box-sizing:border-box}.login-password-toggle{position:absolute;top:50%;right:.35rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.login-password-toggle:hover:not(:disabled){color:var(--text-main);background:#94a3b81f}.login-password-toggle:disabled{opacity:.5;cursor:default}.login-error{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fecaca;padding:.65rem .75rem;border-radius:8px;margin-bottom:.85rem;font-size:.9rem}.login-submit{width:100%;margin-top:.25rem}.download-page-authenticated{max-width:40rem}.page-back-btn{margin:0 0 .65rem;padding-left:0}.download-card-authenticated{padding:1.25rem 1.35rem}.download-primary{display:inline-flex;margin:.75rem 0 1rem}.download-list{margin:0 0 1rem;padding-left:1.25rem}.download-list a{color:var(--accent-hover)}.download-footnote{margin:0;font-size:.85rem;line-height:1.45}.clearance-steps-charts{margin:.75rem 0;padding:.65rem;background:#0f172a8c;border:1px solid rgba(51,65,85,.65);border-radius:8px}.clearance-chart{display:block;max-width:100%;margin-bottom:.35rem}.clearance-chart-legend{margin:.35rem 0 0;font-size:.75rem;line-height:1.4}.admin-panel ul{margin:.75rem 0 1rem;padding-left:1.25rem}.admin-page h2{margin-top:0}.admin-backup-intro{max-width:72ch;margin-bottom:1rem}.admin-backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.admin-backup-card h3{margin-top:0}.admin-backup-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.equipment-admin-fields{display:flex;flex-direction:column;gap:.75rem}.equipment-admin-page{display:flex;flex-direction:column;min-height:0;flex:1}.equipment-admin-header{margin-bottom:.75rem}.equipment-admin-header h2{margin-bottom:.35rem}.admin-master-detail-layout{display:grid;grid-template-columns:360px 1fr;gap:.75rem;flex:1;min-height:0}.admin-list-panel{display:flex;flex-direction:column;min-height:0;padding:.75rem}.admin-editor-panel{display:flex;flex-direction:column;min-height:0;overflow:auto}.admin-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem}.admin-list-toolbar h3{margin:0}.admin-list-scroll{flex:1;min-height:0;overflow-y:auto;margin-top:.5rem}.admin-list-filters{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.admin-list-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.admin-list-filters input,.admin-list-filters select{font-size:.85rem;padding:.35rem .5rem;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main)}.admin-list-row{margin-top:.6rem;border:1px solid var(--border-color);border-radius:8px;padding:.5rem .6rem;background:#0f172a59}.admin-list-row.active{border-color:var(--accent);box-shadow:0 0 0 1px #3b82f659}.admin-row-top,.admin-row-actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.admin-row-top{min-width:0}.asset-row-identity{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.asset-edit-crumbs{display:flex;flex-wrap:wrap;gap:.15rem;margin-bottom:.35rem;color:var(--text-muted);font-size:.85rem}.asset-edit-crumbs a{color:var(--accent-hover);text-decoration:none}.asset-edit-crumbs a:hover{text-decoration:underline}.asset-subassets{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.asset-subassets h3{margin:0 0 .25rem}.asset-subassets-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.asset-subassets-header .btn{flex:0 0 auto}.asset-edit-back{display:inline-block;margin-bottom:.35rem;font-size:.85rem;color:var(--accent-hover);text-decoration:none}.asset-edit-back:hover{text-decoration:underline}.assets-admin-list{flex:1}.assets-admin-list .admin-row-top>.btn{flex-shrink:0}.asset-edit-page .admin-editor-actions .btn-danger{margin-left:auto}.admin-row-meta{margin-top:.25rem;font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-row-actions{margin-top:.5rem}.btn-link{background:transparent;border:0;color:var(--accent-hover);text-align:left;padding:0;font-weight:600;font-size:.9rem;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-link:hover{color:#93c5fd;text-decoration:underline}.admin-chip{flex-shrink:0;padding:.1rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;background:#3b82f633;color:#93c5fd;border:1px solid rgba(59,130,246,.35)}.admin-chip-warn{background:#f59e0b2e;color:#fbbf24;border-color:#f59e0b66}.equipment-inactive-toggle{display:block;margin:.35rem 0 .75rem}.equipment-inactive-check{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:500}.equipment-inactive-check input{width:auto;margin:0}.btn-block{width:100%;margin-top:.5rem}.admin-editor-actions{display:flex;gap:.5rem;margin-top:.25rem}@media(max-width:1024px){.admin-master-detail-layout{grid-template-columns:1fr}.admin-list-panel{max-height:320px}.assets-admin-page .admin-list-panel{max-height:none}}.admin-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1rem;margin-top:1rem}.admin-form{display:flex;flex-direction:column;gap:.75rem}.admin-form label,.metadata-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.role-fieldset{border:1px solid var(--border-color);border-radius:8px;padding:.75rem;margin:0}.role-fieldset legend{padding:0 .35rem;color:var(--text-muted)}.checkbox-label{display:flex;flex-direction:row!important;align-items:center;gap:.5rem}.user-table-wrap{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;font-size:.9rem}.user-table th,.user-table td{padding:.6rem .5rem;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}.user-actions{display:flex;gap:.35rem;white-space:nowrap}.user-status{display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.02em}.user-status-active{color:#1a7f4b}.user-status-disabled{color:#a33b2c}.user-table tr.is-editing td{background:#38bdf814}.admin-form-actions{display:flex;gap:.5rem}.admin-form input:read-only{opacity:.85;cursor:default}.small{font-size:.85rem}.survey-metadata-panel{margin-bottom:1rem}.panel-header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.panel-header-row h3{margin:0}.panel-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.panel-footer-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.panel-action-btn{min-width:6rem;width:6rem;box-sizing:border-box;padding-left:.5rem;padding-right:.5rem}.metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.metadata-span-2{grid-column:span 2}.survey-card-meta{margin-top:.25rem}.basemap-switcher{display:flex;gap:.25rem;padding:.25rem}.basemap-btn.active{border-color:var(--accent);color:var(--accent-hover)}.gap-list{margin:0;padding-left:1.1rem}.gap-item{margin-bottom:.5rem}.gap-high{color:#fca5a5}.gap-medium{color:#fcd34d}.gap-info{color:var(--text-muted)}.los-result{border-left:3px solid #fbbf24}.app-main{flex:1;padding:1rem 1.5rem 1.5rem;min-height:0;display:flex;flex-direction:column}.app-main:has(.survey-editor-page){padding:0}.page-editor{padding-left:.75rem;padding-right:.75rem}.page-editor .topbar{margin-left:-.75rem;margin-right:-.75rem;margin-bottom:0;padding:.2rem .75rem;gap:.15rem}.page-editor .survey-editor-banner{margin:.35rem .75rem 0}.panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;padding:1rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-main)}.panel h2,.panel h3{margin:0 0 .75rem;font-size:1rem;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1rem;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:.875rem;cursor:pointer;transition:background .15s,border-color .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:transparent;border-color:var(--border-color);color:var(--text-main)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent-hover)}.btn-ghost{background:transparent;border:1px solid var(--border-color);color:var(--text-muted)}.btn-ghost:hover{color:var(--text-main);border-color:var(--accent)}.btn-danger{background:transparent;border-color:#ef444466;color:#fca5a5}.btn-danger:hover{background:#ef444426}.btn:disabled{opacity:.5;cursor:not-allowed}.form-row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.form-row-checkbox{flex-direction:row;align-items:flex-start;gap:.55rem;cursor:pointer}.form-row-checkbox input[type=checkbox]{margin-top:.2rem;flex-shrink:0}.form-row label{font-size:.8rem;color:var(--text-muted);font-weight:500}.form-row input,.form-row select,.form-row textarea{background:var(--input-bg);border:1px solid var(--border-color);border-radius:8px;padding:.5rem .65rem;color:var(--text-main)}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.muted{color:var(--text-muted);font-size:.875rem}.error-banner{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fecaca;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.survey-grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.survey-grid-summary{margin:0}.data-grid-wrap{padding:0;overflow:hidden}.data-grid-wrap .data-grid{margin:0}.data-grid-wrap{overflow-x:auto}.data-grid{width:100%;min-width:960px;border-collapse:collapse;font-size:.88rem}.data-grid th,.data-grid td{padding:.55rem .65rem;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}.data-grid thead th{background:#0f172a8c;font-weight:600;white-space:nowrap}.data-grid-filter-row th{background:#0f172a59;padding-top:.3rem;padding-bottom:.4rem;vertical-align:bottom}.data-grid-filter-row input,.data-grid-filter-row select{width:100%;min-width:0;padding:.35rem .45rem;font-size:.8rem;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main)}.data-grid-date-filter{position:relative;min-width:7.5rem}.data-grid-date-toggle{display:flex;align-items:center;justify-content:space-between;gap:.35rem;width:100%;min-width:0;padding:.35rem .45rem;font-size:.8rem;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main);cursor:pointer;text-align:left}.data-grid-date-filter.is-active .data-grid-date-toggle{border-color:#3b82f68c;background:#3b82f61f}.data-grid-date-toggle-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.data-grid-date-toggle-caret{flex-shrink:0;opacity:.7;font-size:.7rem}.data-grid-date-popover{position:absolute;top:calc(100% + .25rem);left:0;z-index:40;display:flex;flex-direction:column;gap:.4rem;min-width:11.5rem;padding:.55rem;border-radius:8px;border:1px solid var(--border-color);background:#111827fa;box-shadow:var(--shadow-main)}.data-grid-date-field{display:flex;flex-direction:column;gap:.15rem}.data-grid-date-label{font-size:.68rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.data-grid-date-popover input[type=date]{width:100%;min-width:0;padding:.3rem .4rem;font-size:.8rem;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main)}.data-grid-date-popover-actions{display:flex;justify-content:flex-end;gap:.35rem;margin-top:.15rem}.data-grid-sort.is-filter-open{color:var(--accent-hover)}.data-grid-sort{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:none;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer}.data-grid-sort:hover{color:var(--accent-hover)}.data-grid-sort-icon{font-size:.7rem;opacity:.7}.data-grid-link{font-weight:600;color:var(--accent-hover);text-decoration:none}.data-grid-link:hover{text-decoration:underline}.data-grid-sub{margin-top:.2rem;max-width:28rem}.data-grid-actions{display:flex;gap:.35rem;flex-wrap:wrap;white-space:nowrap}.dialog-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#020617b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-server-dialog{width:min(440px,100%)}.settings-server-dialog .server-connect-panel{margin:0;width:100%}.dialog{width:min(560px,100%);max-height:min(85vh,720px);display:flex;flex-direction:column;gap:.75rem}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.dialog-header h3{margin:0}.dialog-intro{margin:0;font-size:.9rem}.dialog-field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.dialog-list{flex:1;min-height:180px;max-height:320px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;padding:.35rem;background:#0f172a73}.dialog-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.55rem .65rem;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-main);cursor:pointer}.dialog-list-item:hover{background:#3b82f614}.dialog-list-item.active{border-color:var(--accent);background:#3b82f61f}.dialog-empty{margin:.75rem}.dialog-actions{display:flex;flex-wrap:wrap;gap:.5rem}.confirm-dialog-backdrop{z-index:400}.confirm-dialog{width:min(440px,100%)}.confirm-dialog-message{margin:0;white-space:pre-wrap;line-height:1.45}.confirm-dialog .dialog-actions{justify-content:flex-end}.offline-download-backdrop{z-index:350}.offline-download-dialog{max-width:28rem}.offline-download-spinner{margin:.75rem 0 0;font-style:italic}.data-grid-empty{text-align:center;padding:2rem 1rem!important}.data-grid tbody tr:hover{background:#3b82f60f}.data-grid tbody tr.data-grid-row-open{cursor:pointer;user-select:none;-webkit-user-select:none}.survey-list{display:grid;gap:.75rem}.survey-card{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;transition:border-color .15s}.survey-card:hover{border-color:var(--accent)}.survey-card h3{margin:0 0 .25rem;font-size:1.05rem}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;background:#3b82f633;color:#93c5fd}.map-container{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);min-height:0;height:100%;display:flex;flex-direction:column}.map-view-wrap{position:relative;width:100%;flex:1;min-height:0;z-index:1}.map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#0f172aa6;pointer-events:none;z-index:5;padding:1rem;text-align:center}.map-loading-error{background:#7f1d1dbf;color:#fecaca}.map-view{width:100%;height:100%}.cesium-map,.cesium-map .cesium-widget,.cesium-map .cesium-widget canvas,.sensor-fpv-preview-canvas,.sensor-fpv-preview-canvas .cesium-widget,.sensor-fpv-preview-canvas .cesium-widget canvas{touch-action:none;-ms-touch-action:none}.cesium-map .cesium-viewer-bottom{display:none}.cesium-SelectionIndicator,.cesium-SelectionIndicator-wrapper,.cesium-viewer-selectionIndicatorContainer{display:none!important}.arcgis-map,.arcgis-map .esri-view{width:100%;height:100%}.arcgis-map .esri-ui-top-left,.arcgis-map .esri-ui-top-right{display:none}.map-toolbar{position:absolute;top:12px;left:12px;z-index:10;display:flex;flex-wrap:wrap;gap:.5rem}.survey-editor-page{flex:1;display:flex;flex-direction:column;min-height:0;height:100%;max-height:100%;overflow:hidden;position:relative}.survey-editor-page--map-busy,.survey-editor-page--map-busy *,.survey-editor-page--computing-viewshed,.survey-editor-page--computing-viewshed *{cursor:wait!important}.survey-editor-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;overflow:hidden;min-height:1.85rem;padding:.25rem .75rem;border-bottom:1px solid var(--border-color);background:#0f172a99}.survey-editor-nav-back{flex-shrink:0;white-space:nowrap}button.survey-editor-nav-back{background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:none}button.survey-editor-nav-back:hover{text-decoration:underline}.survey-editor-nav-title{margin:0;font-weight:600;font-size:.88rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto;max-width:min(36vw,360px)}.survey-editor-nav-meta{margin-left:auto;display:flex;align-items:center;gap:.75rem;flex-shrink:1;min-width:0;overflow:hidden}.survey-editor-nav-viewshed{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.survey-editor-banner{margin:.5rem 1rem 0}.unsaved-placement-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .75rem;border-color:#fbbf2473;background:#fbbf2414}.unsaved-placement-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.unsaved-dialog-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#020617b8}.unsaved-dialog{width:min(100%,420px);padding:1.25rem}.unsaved-dialog h3{margin:0 0 .5rem;font-size:1.05rem}.unsaved-dialog p{margin:0 0 1rem;color:var(--text-muted)}.unsaved-dialog-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.map-container-full{flex:1;min-height:0;border-radius:0;border:none;border-top:1px solid var(--border-color);overflow:hidden}.map-editor-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;padding:.28rem .6rem;background:#0f172aeb;border-bottom:1px solid var(--border-color);position:relative;z-index:30;overflow:visible;flex-shrink:0;min-height:2rem}.map-editor-toolbar.has-open-menu{z-index:260}.map-editor-toolbar-menus{flex:0 1 auto;min-width:0;overflow:visible;position:relative;z-index:2}.map-editor-toolbar .menuBar{flex-wrap:wrap;overflow:visible}.map-editor-toolbar .menu.is-open{z-index:40}.map-editor-toolbar .menuList{z-index:50}.map-editor-toolbar-trailing{display:flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;justify-content:flex-end;overflow:hidden;position:relative;z-index:1}.map-editor-toolbar-status{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;overflow:hidden;justify-content:flex-end}.map-editor-survey-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.map-editor-cursor-coords{flex:0 0 auto;font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:.35rem}.map-editor-cursor-label{font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.75}.map-editor-cursor-sep{margin:0 .35rem;opacity:.5}.map-editor-status-field,.map-editor-status-readonly{display:inline-flex;align-items:center;gap:.4rem}.map-editor-status-label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.map-editor-status-select{padding:.12rem .35rem;border-radius:5px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-main);font-size:.75rem;font-weight:600}.map-editor-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .45rem;border-radius:999px;border:1px solid var(--border-color);background:#3b82f626;color:var(--text-main);font-size:.75rem;cursor:pointer}.map-editor-chip.active{border-color:var(--accent);background:#3b82f640}.chip-dismiss{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;line-height:1;font-size:.85rem}.chip-dismiss:hover{color:var(--text-main)}.map-editor-hint{font-size:.8rem;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1024px){.survey-editor-nav-title{max-width:min(36vw,220px)}.map-editor-cursor-label{display:none}.map-editor-cursor-sep{margin:0 .25rem}.map-editor-hint{display:none}.map-editor-chip{max-width:9rem;overflow:hidden;text-overflow:ellipsis}.survey-editor-nav-viewshed{display:none}}@media(max-width:768px){.survey-editor-nav-meta .map-editor-status-label{display:none}.survey-editor-nav-title{max-width:8rem}.map-editor-toolbar-status-desktop,.map-editor-cursor-coords{display:none}}.map-placement-status-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.25rem;padding:.45rem .85rem;background:#0f172af5;border-top:1px solid var(--border-color);z-index:20;min-height:2.35rem;font-size:.8rem;flex-shrink:0}.map-placement-status-clearance{flex:1 1 100%;margin:0;padding:.35rem .5rem;border-radius:.35rem;border:1px solid transparent;line-height:1.4}.map-placement-status-clearance--blocked{color:#fde68a;background:#fbbf241a;border-color:#fbbf2459}.map-placement-status-clearance--clear{color:#bbf7d0;background:#22c55e14;border-color:#22c55e47}.map-placement-status-clearance strong{font-weight:600}.map-placement-status-empty{font-size:.82rem}.map-placement-status-primary{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.map-placement-status-name{font-size:.88rem;color:var(--text-main)}.map-placement-status-badge{padding:.1rem .45rem;border-radius:999px;background:#38bdf833;border:1px solid rgba(56,189,248,.45);color:#7dd3fc;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.map-placement-status-fields{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin:0;flex:1;min-width:0}.map-placement-status-field{display:flex;align-items:baseline;gap:.35rem;min-width:0}.map-placement-status-field dt{margin:0;color:var(--text-muted);font-weight:500;white-space:nowrap}.map-placement-status-field dt:after{content:":"}.map-placement-status-field dd{margin:0;color:var(--text-main);font-weight:600;white-space:nowrap}.map-placement-status-field:last-child dd{max-width:220px;overflow:hidden;text-overflow:ellipsis}.menuList-wide{min-width:280px}.menuList-scroll{max-height:360px;overflow-x:hidden;overflow-y:auto}.menuList-search{position:sticky;top:0;z-index:2;margin:-.15rem 0 .15rem;padding-bottom:.35rem;background:#111827fa}.menuList-search input{width:100%;padding:.45rem .6rem;border:1px solid var(--border-color);border-radius:8px;background:var(--input-bg, rgba(15, 23, 42, .9));color:var(--text-main);font-size:.9rem}.menuList-cascade,.menuList-cascade .menuList-submenu,.menu.is-open{overflow:visible}.menuList-muted{padding:.5rem .65rem;color:var(--text-muted);font-size:.85rem}.menuList-divider{height:1px;margin:.35rem .5rem;background:var(--border)}.menuList-title{display:block;font-weight:600}.menuList-sub{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.menuList-slider{display:flex;flex-direction:column;gap:.35rem;padding:.55rem .75rem .75rem;min-width:220px}.menuList-slider input[type=range]{width:100%;accent-color:var(--accent, #38bdf8);cursor:pointer}.menuList-submenu{position:relative}.menuList-submenu-trigger{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.menuList-submenu-trigger:after{content:"▸";color:var(--text-muted);font-size:.75rem}.menuList-submenu-trigger .menuList-row{flex:1;min-width:0;width:auto}.menuList-flyout{position:absolute;left:calc(100% + 2px);top:-.35rem;min-width:220px;max-width:min(320px,70vw);padding:.5rem;border:1px solid var(--border-color);border-radius:10px;background:#111827fa;display:flex;flex-direction:column;gap:.35rem;z-index:220;box-shadow:var(--shadow-main);overflow:visible}.menuList-flyout .menuList-flyout{left:calc(100% + 2px);top:-.25rem;z-index:221}@media(max-width:900px){.menuList-flyout{left:0;right:auto;top:calc(100% + .25rem);width:max-content;min-width:min(260px,calc(100vw - 2rem));max-width:min(320px,calc(100vw - 2rem))}.menuList-flyout .menuList-flyout{left:.75rem;top:calc(100% + .25rem)}}.menuList-row{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left}.menuList-text{min-width:0;flex:1}.equipment-thumb{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;overflow:hidden;background:#0f172a8c;border:1px solid rgba(148,163,184,.35)}.equipment-thumb img{width:100%;height:100%;object-fit:cover;display:block}.equipment-thumb-fallback{font-size:.65rem;font-weight:700;letter-spacing:.02em;color:var(--text-muted);line-height:1}.equipment-item-row{display:flex;align-items:flex-start;gap:.65rem}.equipment-item-body{min-width:0;flex:1}.equipment-admin-thumb-preview{margin:.35rem 0 .75rem}.equipment-admin-thumb-preview img{width:120px;height:120px;object-fit:contain;border-radius:8px;border:1px solid var(--border-color);background:#0f172a73}.equipment-product-photo{margin:0 0 .85rem;text-align:center}.equipment-product-photo img{display:block;width:100%;max-width:280px;max-height:220px;margin:0 auto;object-fit:contain;border-radius:10px;background:#0f172a8c;border:1px solid var(--border-color)}.equipment-product-caption{margin-top:.35rem;font-size:.8rem}.menuList-link{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-main);padding:.5rem .65rem;text-decoration:none;font-weight:500;font-size:.9rem}.menuList-link:hover{background:#3b82f61f;border-color:#3b82f640}.map-context-menu{position:fixed;z-index:1000;min-width:200px;max-width:320px;max-height:70vh;overflow-y:auto;padding:.35rem;border:1px solid var(--border-color);border-radius:10px;background:#111827fa;box-shadow:var(--shadow-main)}.map-context-menu-item{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-main);padding:.45rem .65rem;cursor:pointer;font-size:.875rem}.map-context-menu-item-label{display:block}.map-context-menu-item-hint{display:block;margin-top:.15rem;font-size:.75rem;color:var(--text-muted);line-height:1.3}.map-context-menu-separator{height:1px;margin:.35rem .4rem;background:var(--border-color);opacity:.85}.map-context-menu-item:hover:not(:disabled){background:#3b82f61f;border-color:#3b82f640}.map-context-menu-item.danger{color:#fca5a5}.map-context-menu-item:disabled{opacity:.45;cursor:default}.editor-drawer-backdrop{position:fixed;inset:0;z-index:500;background:#00000073;display:flex;justify-content:flex-end}.editor-drawer{width:min(340px,100vw);height:100%;background:#111827fa;border-left:1px solid var(--border-color);display:flex;flex-direction:column;box-shadow:-8px 0 30px #00000059}.editor-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .65rem;border-bottom:1px solid var(--border-color)}.editor-drawer-title{display:flex;flex-direction:row;align-items:center;gap:.4rem;min-width:0}.editor-drawer-header h3{margin:0;font-size:.9rem}.editor-drawer-body{flex:1;overflow-y:auto;padding:.55rem .65rem .75rem}.editor-drawer-body .panel{background:transparent;border:none;box-shadow:none;padding:0}.editor-drawer-body .panel>h3{margin:0 0 .4rem;font-size:.95rem}.editor-drawer-body .panel>h3+.muted,.editor-drawer-body .panel>h3+p{margin-top:0}.editor-drawer-body .form-row{gap:.15rem;margin-bottom:.4rem}.editor-drawer-body .form-row label{font-size:.72rem;line-height:1.15}.editor-drawer-body .form-row input,.editor-drawer-body .form-row select,.editor-drawer-body .form-row textarea{border-radius:6px;padding:.3rem .45rem;font-size:.85rem}.editor-drawer-body .grid-2{gap:.4rem}.editor-drawer-body .btn{padding:.35rem .55rem;font-size:.8rem}.editor-drawer-body .equipment-product-photo{margin-bottom:.45rem}.editor-drawer-body .equipment-product-photo img{max-height:96px;object-fit:contain}.editor-drawer-body .equipment-product-caption{margin-top:.2rem;font-size:.75rem}.editor-drawer-body .edit-mode-banner,.editor-drawer .edit-mode-banner{margin:0 0 .45rem;padding:.35rem .5rem;font-size:.75rem;line-height:1.3}.editor-drawer-body .terrain-clearance-panel{padding:.45rem .5rem!important;margin-bottom:.45rem!important}.editor-drawer-body .terrain-clearance-panel h4{margin:0 0 .25rem;font-size:.85rem}.editor-drawer-body .terrain-clearance-panel p{margin:0 0 .35rem;font-size:.75rem;line-height:1.3}.editor-drawer-body .clearance-steps-charts{gap:.4rem;margin:.35rem 0}.editor-drawer-title .brand-logo-compact{width:22px;height:22px}.editor-drawer-body .panel>h3[style]{margin-top:.55rem!important;margin-bottom:.25rem;font-size:.88rem}.editor-drawer-body button.btn[style*=marginBottom],.editor-drawer-body .btn+.btn{margin-bottom:.4rem!important}.map-floating-hint{position:absolute;bottom:12px;left:12px;z-index:10;padding:.5rem .75rem;border-radius:8px;background:#0f172ae6;border:1px solid var(--border-color);font-size:.85rem}.map-overlay-tooltip{position:fixed;z-index:25;pointer-events:none;max-width:320px;padding:.55rem .7rem;border-radius:8px;background:#0f172af0;border:1px solid var(--border-color);box-shadow:0 8px 24px #00000059;font-size:.8rem;line-height:1.35}.map-overlay-tooltip--above{transform:translate(-50%,calc(-100% - 44px))}.map-overlay-tooltip--aside{transform:translate(48px,-50%)}.map-overlay-tooltip--follow{transform:translate(28px,22px)}.map-overlay-tooltip strong{display:block;margin-bottom:.35rem}.map-overlay-tooltip p{margin:.15rem 0 0;color:var(--text-muted)}.map-overlay-tooltip--geometric{border-color:#38bdf88c}.map-overlay-tooltip--asset{border-color:#60a5faa6}.map-overlay-tooltip--asset strong{color:#93c5fd}.map-overlay-tooltip--geometric strong{color:#7dd3fc}.map-overlay-tooltip--terrain{border-color:#34d3998c}.map-overlay-tooltip--terrain strong{color:#6ee7b7}.map-overlay-tooltip--arcgis{border-color:#34d39980}.map-overlay-tooltip--arcgis strong{color:#6ee7b7}.map-overlay-tooltip--blockage{border-color:#f8717173}.map-overlay-tooltip--blockage strong{color:#fca5a5}.map-overlay-tooltip--out-of-vertical-fov{border-color:#f59e0b80}.map-overlay-tooltip--out-of-vertical-fov strong{color:#fcd34d}.map-overlay-tooltip--clearance-profile{border-color:#f59e0b8c}.map-overlay-tooltip--clearance-profile strong{color:#fcd34d}.map-overlay-tooltip--fov-guide{border-color:#c084fc80}.map-overlay-tooltip--fov-guide strong{color:#e9d5ff}.map-blockage-tooltip{position:fixed;z-index:25;pointer-events:none;max-width:300px;padding:.55rem .7rem;border-radius:8px;background:#0f172af0;border:1px solid rgba(248,113,113,.45);box-shadow:0 8px 24px #00000059;font-size:.8rem;line-height:1.35}.map-blockage-tooltip strong{display:block;margin-bottom:.35rem;color:#fca5a5}.map-blockage-tooltip p{margin:.15rem 0 0;color:var(--text-muted)}.arcgis-viewshed-preview{position:absolute;right:12px;bottom:12px;z-index:15;width:min(480px,46vw);height:min(380px,46vh);min-width:300px;min-height:260px;display:flex;flex-direction:column;border-radius:10px;border:1px solid var(--border-color);background:#0f172af0;box-shadow:0 12px 40px #00000073;overflow:hidden}.arcgis-viewshed-preview-loading{place-items:center;padding:1rem}.arcgis-viewshed-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.5rem .65rem;border-bottom:1px solid var(--border-color);font-size:.85rem}.arcgis-viewshed-preview-sub{margin:.15rem 0 0;font-size:.75rem;line-height:1.3}.arcgis-viewshed-preview-map-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:0;gap:0;overflow:hidden}.arcgis-viewshed-preview-map-wrap .map-loading{position:static;inset:auto;background:transparent;text-align:center;font-size:.82rem;line-height:1.45;padding:1.5rem .5rem}.sensor-fpv-preview{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.sensor-fpv-preview-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .75rem;padding:.35rem .55rem;border-bottom:1px solid var(--border-color);font-size:.72rem}.sensor-fpv-preview-modes{display:flex;gap:.25rem}.sensor-fpv-preview-meta{font-variant-numeric:tabular-nums}.sensor-fpv-preview-canvas-wrap{position:relative;flex:1;min-height:0}.sensor-fpv-preview-canvas{position:absolute;inset:0;width:100%;height:100%}.sensor-fpv-preview-canvas .cesium-viewer,.sensor-fpv-preview-canvas .cesium-viewer-cesiumWidgetContainer,.sensor-fpv-preview-canvas .cesium-widget,.sensor-fpv-preview-canvas .cesium-widget canvas{width:100%!important;height:100%!important}.sensor-fpv-preview-canvas .cesium-viewer-bottom,.sensor-fpv-preview-canvas .cesium-viewer-toolbar{display:none!important}.sensor-fpv-preview-overlay{position:absolute!important;inset:0;display:grid;place-items:center;background:#0f172ab8;z-index:2}.sensor-fpv-preview-badge{position:absolute;left:8px;right:8px;bottom:8px;z-index:2;margin:0;padding:.35rem .5rem;border-radius:6px;background:#0f172ad1;border:1px solid var(--border-color);font-size:.68rem;line-height:1.3;pointer-events:none}.live-footprint-preview{display:flex;flex-direction:column;gap:.65rem}.live-footprint-preview-svg{width:100%;height:auto;max-height:220px;border-radius:var(--radius-sm);background:#0f172a59;border:1px solid var(--border-color)}.live-footprint-preview-stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;margin:0;font-size:.72rem}.live-footprint-preview-stats dt{margin:0;color:var(--text-muted);font-weight:500}.live-footprint-preview-stats dd{margin:.1rem 0 0;font-weight:600}.live-footprint-preview-warn{margin:0;font-size:.7rem;line-height:1.4;color:var(--warning, #fbbf24)}.arcgis-viewshed-preview-status{display:flex;align-items:center;justify-content:center;padding:1rem;min-height:5rem}.arcgis-viewshed-preview-status .map-loading{position:static;inset:auto;background:transparent;text-align:center;font-size:.82rem;line-height:1.45}.arcgis-viewshed-preview-foot{margin:0;padding:.35rem .65rem;font-size:.68rem;line-height:1.35;border-top:1px solid var(--border-color)}.arcgis-preview-reopen{position:absolute;right:12px;bottom:12px;z-index:14;font-size:.8rem}.btn-sm{padding:.2rem .45rem;font-size:.85rem}.edit-mode-banner{margin:0 0 1rem;padding:.5rem .75rem;border-radius:8px;border:1px solid rgba(232,121,249,.35);background:#a855f71f;font-size:.85rem}.placement-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.placement-item{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border-color);cursor:pointer;background:#0f172a66}.placement-item.selected{border-color:var(--accent);background:#3b82f61f}.placement-item h4{margin:0 0 .2rem;font-size:.9rem}.equipment-list{display:flex;flex-direction:column;gap:.5rem;max-height:280px;overflow-y:auto}.equipment-item{padding:.65rem;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;background:#0f172a59}.equipment-item.selected{border-color:var(--accent)}.equipment-item h4{margin:0 0 .15rem;font-size:.875rem}.bom-table{width:100%;border-collapse:collapse;font-size:.875rem}.bom-table th,.bom-table td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.bom-table th{color:var(--text-muted);font-weight:600}.dialog-wide{width:min(920px,100%);max-height:min(90vh,860px)}.dialog-tabs{display:flex;gap:.35rem;margin-bottom:.25rem}.dialog-tabs button{padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-main);cursor:pointer}.dialog-tabs button.activeTab{border-color:var(--accent);background:#3b82f61f;color:var(--text-main)}.dialog-coord-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.dialog-coord-hint{margin:0}.offline-bounds-picker-map{height:320px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color)}.offline-bounds-picker-hint{margin:0 0 .5rem;font-size:.85rem}.offline-bounds-picker-actions{display:flex;gap:.5rem;margin-top:.5rem}.offline-map-area-summary{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:flex-end}.offline-map-area-zoom{display:flex;gap:.75rem}.offline-map-area-zoom label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.offline-map-area-zoom input{width:4.5rem}.offline-surveys-panel{margin-top:1.5rem}.offline-survey-howto{padding:.15rem .1rem .35rem}.offline-survey-howto-steps{margin:.5rem 0 .75rem 1.25rem;padding:0;line-height:1.55}.offline-survey-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.offline-survey-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;border:1px solid var(--border-color);border-radius:8px}.offline-survey-item-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.offline-survey-link{font-weight:600}.login-server-box{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;margin-bottom:1rem;padding:.65rem .75rem}.login-server-origin{margin:.15rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;word-break:break-all;line-height:1.35}.login-server-box .btn{align-self:stretch}.login-success{margin:.5rem 0;padding:.55rem .7rem;border-radius:8px;background:#22c55e1f;border:1px solid rgba(34,197,94,.35);color:#86efac;font-size:.9rem}.login-server-hint{margin:0 0 .75rem;font-size:.85rem}.login-server-hint code{font-size:.8rem}.connection-status-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:0 -1.5rem;padding:.4rem 1.5rem;border-top:1px solid var(--border-color);background:#0f172af0;font-size:.8rem;z-index:90}.login-page .connection-status-footer{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:110}.connection-status-footer-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}button.connection-status-change-btn{margin:0;padding:.15rem .35rem;border:1px solid transparent;border-radius:6px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}button.connection-status-change-btn:hover,button.connection-status-change-btn:focus-visible{border-color:#94a3b873;background:#94a3b81f;outline:none}.connection-status-footer-actions{display:flex;gap:.35rem;flex-shrink:0}.connection-status-dot{width:.55rem;height:.55rem;border-radius:50%;background:#64748b;flex-shrink:0}.connection-status-footer--connected .connection-status-dot{background:#22c55e}.connection-status-footer--disconnected .connection-status-dot{background:#ef4444}.connection-status-footer--checking .connection-status-dot{background:#eab308}.connection-status-footer--unconfigured .connection-status-dot{background:#94a3b8}.connection-status-label{font-weight:600}.connection-status-origin{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28rem}.connection-status-error{max-width:20rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.about-dialog{width:min(100%,26rem)}.survey-report-preview-backdrop{z-index:420}.survey-report-preview-backdrop--busy,.survey-report-preview-dialog--busy,.survey-report-preview-dialog--busy *{cursor:wait}.survey-report-preview-dialog--busy .btn:disabled{cursor:wait}.survey-report-preview-dialog--busy .survey-report-preview-close,.survey-report-preview-dialog--busy .survey-report-preview-close *{cursor:pointer}.survey-report-preview-progress{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.65rem;min-height:8rem;padding:1.5rem .5rem}.survey-report-preview-progress-track{height:12px;border-radius:999px;background:#94a3b847;overflow:hidden}.survey-report-preview-progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .2s ease}.survey-report-preview-progress-label{margin:0;font-size:1rem;font-weight:600;text-align:center}.survey-report-preview-dialog{width:min(1280px,98vw);height:min(92vh,920px);display:flex;flex-direction:column;gap:.75rem}.survey-report-preview-frame{flex:1;width:100%;min-height:0;border:1px solid var(--border-color);border-radius:8px;background:#c5d0dc}.survey-report-preview-actions{justify-content:flex-end}.about-dialog-brand{display:flex;justify-content:center;padding:.25rem 0 .35rem}.about-dialog-logo.brand-logo{width:min(100%,280px)}.about-dialog-body{display:flex;flex-direction:column;gap:.75rem}.about-dialog-product{margin:0;font-size:1.15rem;font-weight:700}.about-dialog-actions{justify-content:flex-end}.about-dialog-meta{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}.about-dialog-meta>div{display:contents}.about-dialog-meta dt{color:var(--text-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.about-dialog-meta dd{margin:0;font-variant-numeric:tabular-nums}.feedback-dialog{width:min(100%,34rem)}.feedback-form{display:flex;flex-direction:column;gap:.75rem}.feedback-include-options{display:flex;flex-direction:column;gap:.45rem}.feedback-include-logs{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.feedback-include-logs-disabled{opacity:.55;cursor:not-allowed}.feedback-screenshot-hint{margin:0;padding-left:1.5rem;font-size:.8rem}.feedback-success{margin:0;color:var(--success)}.topbar-overflow-menu,.map-editor-status-overflow,.survey-card-list,.survey-card-search{display:none}.survey-grid-toolbar-actions{display:flex;gap:.5rem;align-items:center}.editor-drawer-handle{display:none}.selection-action-bar{position:relative;left:auto;bottom:auto;transform:none;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;max-width:none;flex-shrink:0;padding:.2rem .55rem;min-height:0;border-radius:0;border:none;border-top:1px solid var(--border-color);background:#0f172af5;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.selection-action-bar-label{font-size:.72rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(12rem,40vw);line-height:1.2}.selection-action-bar-mode{font-weight:500}.selection-action-bar-actions{display:flex;flex-wrap:nowrap;gap:.25rem;justify-content:flex-end}.selection-action-bar .btn-sm{padding:.15rem .45rem;font-size:.72rem;line-height:1.15;min-height:0}.map-placement-status-clearance-btn{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}.map-placement-status-expand-hint{margin-left:.5rem;font-size:.75rem}.map-placement-status-clearance-extra{display:block;margin-top:.25rem}.topbar-overflow-section-label{padding:.35rem .75rem .15rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.topbar-overflow-session{display:flex;flex-direction:column;gap:.15rem;padding:.35rem .75rem}html.pointer-coarse .btn,html.pointer-coarse .menu summary,html.pointer-coarse .menu-trigger,html.pointer-coarse .topbarLink,html.pointer-coarse .topbarSession button,html.pointer-coarse .map-context-menu-item,html.pointer-coarse .map-editor-chip,html.pointer-coarse .map-editor-status-select{min-height:var(--hit-min);padding-top:.55rem;padding-bottom:.55rem}html.pointer-coarse .btn-sm{min-height:var(--hit-min);padding:.45rem .75rem}html.pointer-coarse .chip-dismiss,html.pointer-coarse .login-password-toggle,html.pointer-coarse .data-grid-sort{min-width:var(--hit-min);min-height:var(--hit-min)}html.pointer-coarse .map-overlay-tooltip{display:none}html.pointer-fine .map-placement-status-fields{display:flex}@media(max-width:1024px){.page{padding:0 .75rem}.topbar{margin:0 -.75rem .2rem;padding:.25rem .75rem}.topbarRowSecondary,.topbarSession-desktop{display:none}.topbar-overflow-menu{display:block;margin-left:auto}.topbar-overflow-trigger{list-style:none}.topbar-overflow-list{right:0;left:auto;min-width:min(20rem,calc(100vw - 1.5rem))}.page-editor .connection-status-footer--editor{padding:.2rem .75rem;font-size:.72rem}.page-editor .connection-status-origin,.page-editor .connection-status-footer-actions{display:none}.survey-editor-nav{padding:.2rem .5rem;gap:.35rem;min-height:1.7rem}.map-editor-status-overflow{display:block}.map-editor-toolbar-status-desktop,.map-editor-cursor-coords,.survey-grid-table{display:none}.survey-card-list{display:flex;flex-direction:column;gap:.65rem}.survey-card-search{display:block;min-width:10rem;flex:1 1 12rem}.survey-grid-toolbar{flex-wrap:wrap}.survey-grid-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;width:100%}.survey-card{display:flex;flex-direction:column;gap:.75rem;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border-color);background:#1e293bbf;cursor:pointer}.survey-card:hover,.survey-card:focus-visible{border-color:var(--accent);outline:none}.survey-card-title{margin:0 0 .25rem;font-size:1rem}.survey-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .75rem;margin:.5rem 0 0}.survey-card-meta dt{font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.survey-card-meta dd{margin:.1rem 0 0;font-size:.85rem}.survey-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.survey-card-empty{margin:0;padding:1rem}.editor-drawer-backdrop{align-items:flex-end;justify-content:stretch}.editor-drawer{width:100%;height:auto;max-height:62vh;border-left:none;border-top:1px solid var(--border-color);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #00000059}.editor-drawer-handle{display:block;width:2.5rem;height:.3rem;margin:.45rem auto 0;border-radius:999px;background:#94a3b873}.editor-drawer-body{overflow-y:auto;max-height:calc(62vh - 3.25rem)}.metadata-grid,.grid-2,.admin-grid{grid-template-columns:1fr}.arcgis-viewshed-preview{width:min(100%,100vw - 1rem);max-width:none;height:min(42vh,320px);min-width:0;left:.5rem;right:.5rem;bottom:.5rem;top:auto}.selection-action-bar{flex-wrap:wrap;justify-content:space-between;row-gap:.2rem}.login-card{width:min(100%,28rem);margin:1rem;padding:1.5rem}.map-placement-status-fields{display:none}.map-placement-status-bar.is-expanded .map-placement-status-fields,.map-placement-status-fields.is-visible{display:flex}}@media(max-width:768px){.page{padding:0 .5rem}.topbarBrand h1{font-size:.95rem;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-action-bar-label{max-width:100%;flex:1 1 100%;text-align:center}.map-editor-toolbar{padding:.35rem .5rem}.map-editor-toolbar .menuBar{gap:.35rem}.map-editor-toolbar .menu summary,.map-editor-toolbar .menu-trigger{padding:.4rem .55rem;font-size:.72rem}}
