:root{color-scheme:dark;--bg:#0b1220;--panel:#111827;--panel-border:#1f2937;--text:#f8fafc;--muted:#94a3b8;--accent:#38bdf8;--accent-strong:#0ea5e9;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--manhole:#f97316;--boundary:#a855f7;--service:#22c55e;--duct:#64748b;--route:#38bdf8}*{box-sizing:border-box}body,html{margin:0;min-height:100%;height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}button,input,select{font:inherit}a{color:var(--accent)}.leaflet-container{width:100%;height:100%;background:#0f172a}.leaflet-control-attribution{font-size:10px}.app-shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.compact-shell{overflow:hidden;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;grid-template-rows:auto minmax(0,1fr)}.compact-header{padding:.55rem .85rem}.header-tabs{display:flex;gap:.35rem}.header-tab{min-height:34px;padding:.35rem .75rem;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;color:var(--muted);cursor:pointer}.header-tab.active{color:var(--text);border-color:var(--accent);background:rgba(56,189,248,.12)}.fibre-builder-shell{display:flex;flex-direction:column;flex:1 1}.fibre-builder-subnav{display:flex;gap:.35rem;padding:.45rem .75rem;border-bottom:1px solid var(--panel-border);background:rgba(15,23,42,.92)}.fibre-builder-subtab{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:8px;padding:.35rem .75rem;font-size:.82rem;cursor:pointer}.fibre-builder-subtab:hover{color:#fff;border-color:var(--panel-border)}.fibre-builder-subtab.active{color:#fff;border-color:var(--accent);background:rgba(56,189,248,.12)}.fibre-builder-import-panel{flex:1 1;overflow:auto}.compact-meta{font-size:.78rem}.header-meta.compact-meta{display:flex;align-items:center;justify-content:flex-end;gap:.85rem;flex-wrap:nowrap;min-width:0;flex-shrink:0}.header-meta.compact-meta>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12rem}.base-map-selector.inline{display:flex;align-items:center;gap:.5rem;min-width:min(320px,42vw)}.base-map-selector.inline .field-label{margin:0;white-space:nowrap;font-size:.78rem;color:var(--muted)}.base-map-selector.inline .select-input{flex:1 1;min-width:160px;font-size:.78rem;padding:.35rem .5rem}.map-loading-placeholder{display:grid;place-items:center;height:100%;min-height:0;color:var(--muted);background:#0f172a}.map-workspace{position:relative;height:100%;min-height:0;overflow:hidden}.map-workspace .leaflet-container,.map-workspace .map-stage{position:absolute;inset:0;width:auto!important;height:auto!important;min-height:0}.content-panel{padding:1rem;overflow:auto;max-width:720px}.map-tool-rail{position:absolute;top:.75rem;left:.75rem;z-index:600;display:flex;flex-direction:column;gap:.35rem;width:168px;padding:.55rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(15,23,42,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-tool-rail-vetro{width:auto;min-width:48px;padding:.4rem}.map-tool-rail-icons{display:flex;flex-direction:column;gap:.3rem}.map-tool-icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:#e2e8f0;cursor:pointer}.map-tool-icon-button:hover:not(:disabled){border-color:var(--accent)}.map-tool-icon-button.active{border-color:#38bdf8;background:rgba(56,189,248,.18);color:#7dd3fc}.map-tool-icon-button:disabled{opacity:.35;cursor:not-allowed}.map-mode-rail{position:absolute;top:.75rem;right:.75rem;z-index:650;display:flex;flex-direction:column;gap:.3rem;padding:.35rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(248,250,252,.96);box-shadow:0 8px 24px rgba(0,0,0,.18)}.map-mode-button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:#0f172a;cursor:pointer}.map-mode-button:hover{background:rgba(15,23,42,.06)}.map-mode-button.locked,.map-mode-button.unlocked{color:#2563eb}.map-mode-button.active{background:rgba(37,99,235,.12);color:#1d4ed8}.map-draw-toolbar{position:absolute;top:.75rem;left:50%;transform:translateX(-50%);z-index:640;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem;max-width:min(920px,calc(100vw - 8rem));padding:.35rem .5rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(248,250,252,.96);box-shadow:0 8px 24px rgba(0,0,0,.16)}.map-draw-toolbar-label{margin:0 .25rem 0 .35rem;color:#64748b;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.map-draw-toolbar-sep{width:1px;height:1.6rem;margin:0 .2rem;background:rgba(100,116,139,.35)}.map-draw-tool-button-line.active{background:rgba(37,99,235,.16);color:#1d4ed8}.map-draw-tool-button{display:inline-flex;align-items:center;gap:.3rem;min-height:36px;padding:.25rem .55rem;border:1px solid transparent;border-radius:999px;background:transparent;color:#0f172a;cursor:pointer;font-size:.78rem}.map-draw-tool-button:hover{background:rgba(15,23,42,.06)}.map-draw-tool-button.active{border-color:rgba(37,99,235,.35);background:rgba(37,99,235,.12);color:#1d4ed8}.map-draw-tool-icon{font-size:.95rem}.map-draw-tool-name{font-weight:600}.map-view-only-badge{position:absolute;top:.85rem;left:50%;transform:translateX(-50%);z-index:620;padding:.35rem .75rem;border-radius:999px;background:rgba(15,23,42,.88);color:#e2e8f0;font-size:.78rem;font-weight:600;pointer-events:none}.floating-panel-stack-left{left:4.25rem;right:auto;width:min(380px,calc(100vw - 8rem))}.analysis-panel,.map-data-panel,.street-view-panel{width:min(100%,400px)}.map-data-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;border-bottom:1px solid var(--panel-border)}.map-data-tab{padding:.65rem .5rem;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:.8rem;font-weight:700}.map-data-tab.active{color:#38bdf8;border-bottom-color:#38bdf8}.map-data-layer-list{display:flex;flex-direction:column;gap:.35rem}.map-data-layer-row{padding:.25rem 0}.map-data-photo-subs{display:flex;flex-direction:column;gap:.2rem;margin:.15rem 0 .35rem}.map-data-project-name{display:block;margin:.25rem 0 .65rem}.map-data-projects{display:flex;flex-direction:column;gap:.55rem}.map-data-project-panel{padding:0;margin:0;border:0;background:transparent}.map-data-project-panel h2{margin:0 0 .35rem;font-size:.92rem}.map-data-project-panel .asset-list{max-height:220px;overflow:auto}.map-data-project-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.analysis-panel-body{display:flex;flex-direction:column;gap:.55rem}.analysis-tool-card{display:grid;grid-gap:.25rem;gap:.25rem;padding:.75rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(15,23,42,.55);color:var(--text);text-align:left;cursor:not-allowed;opacity:.85}.analysis-tool-card.enabled{cursor:pointer;opacity:1}.analysis-tool-card.enabled:hover{border-color:rgba(56,189,248,.55);background:rgba(15,23,42,.75)}.analysis-tool-card strong{font-size:.92rem}.analysis-tool-card span{color:var(--muted);font-size:.78rem;line-height:1.35}.analysis-tabulate-body{display:flex;flex-direction:column;gap:.65rem}.analysis-button-row{display:flex;flex-wrap:wrap;gap:.4rem}.analysis-layer-list{display:flex;flex-direction:column;gap:.3rem;max-height:160px;overflow:auto}.analysis-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.analysis-chip{border:1px solid rgba(56,189,248,.45);border-radius:999px;background:rgba(14,165,233,.12);color:var(--text);font-size:.72rem;padding:.2rem .55rem;cursor:pointer}.analysis-footer-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--panel-border)}.analysis-results-table{width:100%;border-collapse:collapse;font-size:.78rem}.analysis-results-table td,.analysis-results-table th{border-bottom:1px solid var(--panel-border);padding:.45rem .35rem;text-align:left;vertical-align:top}.analysis-results-table th{color:var(--muted);font-weight:600}.analysis-results-group td{padding-top:.65rem;border-bottom-color:rgba(148,163,184,.35)}.analysis-results-indent{padding-left:.85rem;color:var(--muted);font-size:.72rem}.layer-toggle.nested{margin-left:.85rem;font-size:.78rem}.map-zoom-buttons{position:absolute;left:max(.65rem,env(safe-area-inset-left,0px));right:auto;top:auto;bottom:max(6.25rem,calc(env(safe-area-inset-bottom, 0px) + 5.5rem));z-index:1100;display:flex;flex-direction:column;gap:.4rem;pointer-events:auto}.map-zoom-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;border:1px solid var(--panel-border);border-radius:10px;background:rgba(15,23,42,.96);color:#f8fafc;font-size:1.75rem;font-weight:600;line-height:1;overflow:visible;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 14px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-zoom-button:hover{border-color:var(--accent);background:#0f172a}.map-zoom-button:active{transform:scale(.96)}@media (min-width:900px){.map-zoom-buttons{bottom:max(1.75rem,calc(env(safe-area-inset-bottom, 0px) + 1rem))}}.map-tool-rail-group{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.3rem;gap:.3rem}.map-tool-rail-group.layers-group{display:flex;flex-direction:column;gap:.25rem}.map-tool-rail-label{color:#64748b;font-size:.65rem;letter-spacing:.04em;text-transform:uppercase}.map-tool-button{min-height:36px;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;color:var(--text);cursor:pointer;font-size:.95rem}.map-tool-button.active{border-color:var(--accent);background:rgba(56,189,248,.15)}.map-tool-button.danger-tool{width:100%;border-color:#7f1d1d;color:#fca5a5}.map-tool-rail-divider{height:1px;background:var(--panel-border)}.map-tool-rail-group.base-map-group{display:flex;flex-direction:column;gap:.25rem}.base-map-selector.compact .field-label{font-size:.68rem;margin-bottom:0}.base-map-selector.compact .select-input{width:100%;font-size:.72rem;padding:.35rem .4rem}.base-map-selector .select-input{width:100%}.layer-toggle{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.72rem;cursor:pointer}.floating-panel-stack{position:absolute;top:.75rem;right:4.25rem;z-index:600;display:flex;flex-direction:column;gap:.5rem;width:min(320px,calc(100vw - 220px));max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overflow:auto;overscroll-behavior:contain;pointer-events:none}.floating-panel-stack>*{pointer-events:auto}.network-gis-import-panel{padding:.85rem .9rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(17,24,39,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.import-export-sections{display:flex;flex-direction:column;gap:1rem;max-width:640px;padding:0 1.1rem 1.5rem}.import-export-sections .network-gis-import-panel{background:#0f172a;-webkit-backdrop-filter:none;backdrop-filter:none}.network-gis-import-panel h3{margin:0 0 .35rem;font-size:.95rem}.network-gis-import-panel p{margin:0 0 .65rem;color:var(--muted);font-size:.82rem;line-height:1.35}.file-input-button.disabled{opacity:.55;pointer-events:none}.floating-edit-panel{display:flex;flex-direction:column;gap:.65rem;padding:.75rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(17,24,39,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.floating-edit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.floating-edit-subtitle{display:block;margin-top:.15rem;color:var(--muted);font-size:.75rem}.floating-edit-actions{display:flex;justify-content:flex-end}.compact-form{gap:.4rem}.checkbox-row,.compact-copy{font-size:.78rem}.checkbox-row{gap:.45rem;color:var(--muted)}.form-error{margin:0;color:#fca5a5;font-size:.78rem}.floating-detail-panel,.floating-panel-stack .chamber-panel{width:100%;max-height:min(72vh,640px);max-height:min(72dvh,640px);border:1px solid var(--panel-border);border-radius:12px;background:rgba(17,24,39,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.floating-panel-stack .chamber-panel{border-left:1px solid var(--panel-border)}.map-workspace .map-legend{left:10.5rem}.map-workspace .map-hint{bottom:3.6rem}.tool-button[data-tool=line].active{border-color:var(--route);background:rgba(56,189,248,.12)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--panel-border);background:linear-gradient(180deg,#111827,#0b1220)}.brand{display:flex;flex-direction:column;gap:.15rem}.brand strong{font-size:1.05rem;letter-spacing:.02em}.brand span,.header-meta{color:var(--muted);font-size:.85rem}.header-meta{text-align:right}.workspace{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 68px)}.sidebar{gap:1rem;padding:1rem;border-right:1px solid var(--panel-border);background:var(--panel);overflow:auto}.panel-block,.sidebar{display:flex;flex-direction:column}.panel-block{gap:.75rem}.panel-block h2{margin:0;font-size:.95rem}.panel-block p{margin:0;color:var(--muted);font-size:.85rem;line-height:1.45}.tool-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.action-button,.tool-button{min-height:44px;padding:.65rem .75rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--text);cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease}.action-button:hover,.tool-button:hover{border-color:#334155}.tool-button.active{border-color:var(--accent);background:rgba(56,189,248,.12)}.tool-button[data-tool=manhole].active{border-color:var(--manhole);background:rgba(249,115,22,.12)}.tool-button[data-tool=boundary_box].active{border-color:var(--boundary);background:rgba(168,85,247,.12)}.tool-button[data-tool=service_location].active{border-color:var(--service);background:rgba(34,197,94,.12)}.tool-button[data-tool=duct].active,.tool-button[data-tool=route].active{border-color:var(--route);background:rgba(56,189,248,.12)}.asset-list{display:flex;flex-direction:column;gap:.5rem}.asset-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a}.asset-row strong{font-size:.9rem}.asset-row span{color:var(--muted);font-size:.78rem}.status-pill{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;background:rgba(148,163,184,.15);color:var(--muted)}.map-stage.analysis-polygon-draw .leaflet-container,.map-stage.analysis-polygon-draw .leaflet-interactive{cursor:crosshair}.map-hint{left:50%;bottom:3.4rem;transform:translateX(-50%);max-width:min(90vw,560px);padding:.75rem 1rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(15,23,42,.92);color:var(--muted);font-size:.85rem;text-align:center}.erven-status,.map-hint{position:absolute;z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.erven-status{left:.75rem;right:auto;bottom:.75rem;transform:none;display:flex;align-items:center;gap:.65rem;max-width:min(52vw,320px);padding:.35rem .7rem;border:1px solid rgba(115,223,255,.45);border-radius:999px;background:rgba(15,23,42,.88);color:#e2e8f0;font-size:.78rem;pointer-events:auto}.erven-status a{color:#73dfff;text-decoration:none;white-space:nowrap}.erven-status a:hover{text-decoration:underline}.erven-status-loading{border-color:rgba(251,191,36,.55)}.erven-popup{font-size:.85rem;line-height:1.35;min-width:140px}.erven-popup strong{display:block;margin-bottom:.25rem}.erven-popup-source{margin-top:.35rem;color:#64748b;font-size:.75rem}.map-symbol-wrap{background:transparent;border:none;touch-action:manipulation}.line-midpoint-handle,.line-vertex-handle{background:transparent!important;border:none!important;touch-action:none!important;cursor:-webkit-grab;cursor:grab}.line-midpoint-handle:active,.line-vertex-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.line-vertex-handle-dot{display:block;width:16px;height:16px;margin:10px auto 0;border-radius:50%;background:#ffffff;border:2px solid #1d4ed8;box-shadow:0 1px 3px rgba(0,0,0,.45);pointer-events:none}.line-vertex-handle-locked .line-vertex-handle-dot{background:#94a3b8;border-color:#475569;cursor:default;box-shadow:none}.line-midpoint-handle-dot{display:block;width:11px;height:11px;margin:9.5px auto 0;border-radius:50%;background:#ffffff;border:2px solid #64748b;box-shadow:0 1px 2px rgba(0,0,0,.3);pointer-events:none;opacity:.95}.line-midpoint-handle:hover .line-midpoint-handle-dot{background:#dbeafe;border-color:#1d4ed8;opacity:1}.map-symbol-host{display:grid;place-items:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.map-symbol-host svg{display:block}.map-legend{position:absolute;left:1rem;bottom:1rem;z-index:500;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;max-width:min(92vw,520px);padding:.55rem .75rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(15,23,42,.92);color:var(--muted);font-size:.72rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.legend-group-label{flex-basis:100%;margin-top:.15rem;color:#64748b;font-size:.65rem;letter-spacing:.04em;text-transform:uppercase}.legend-group-label:first-child{margin-top:0}.legend-item{display:inline-flex;align-items:center;gap:.3rem}.legend-svg{width:14px;height:14px}.legend-swatch{display:inline-block;width:12px;height:12px;border-radius:2px}.legend-live{background:#6ec6e8}.legend-build{background:#111111;border:1px solid #475569}.loading-state{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.roadmap{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.82rem;line-height:1.5}@media (max-width:900px){.workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{border-right:none;border-bottom:1px solid var(--panel-border);max-height:48vh}.map-stage{min-height:52vh}}.tab-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.35rem;gap:.35rem}.tab-button{min-height:40px;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--muted);cursor:pointer}.tab-button.active{color:var(--text);border-color:var(--accent);background:rgba(56,189,248,.12)}.section-title{margin:0;font-size:.9rem}.section-copy{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.form-grid,.form-stack{display:grid;grid-gap:.5rem;gap:.5rem}.form-grid{grid-template-columns:1fr}.select-input,.text-input{width:100%;min-height:42px;padding:.55rem .7rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--text)}.field-label{font-size:.82rem;color:var(--muted)}.action-button.primary{border-color:var(--accent);background:rgba(56,189,248,.15)}.action-button.danger{background:rgba(239,68,68,.12);color:#fca5a5}.action-button.danger:hover{border-color:#ef4444;background:rgba(239,68,68,.2)}.asset-row.clickable{display:flex;align-items:center;padding:0;overflow:hidden}.site-delete-button{flex-shrink:0;margin-right:.5rem;padding:.35rem .7rem;font-size:.78rem}.site-active-actions{display:flex;flex-wrap:wrap;gap:.5rem}.asset-row.selected{border-color:var(--accent)}.row-main{flex:1 1;display:block;width:100%;padding:.65rem .75rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer}.row-main span{display:block;margin-top:.2rem}.icon-button{min-width:40px;min-height:40px;margin:.35rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--muted);cursor:pointer}.icon-button.danger{color:#fca5a5}.material-list{display:flex;flex-direction:column;gap:.4rem}.material-row{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a}.material-row[draggable=true]{cursor:-webkit-grab;cursor:grab}.material-row.dragging{opacity:.45;cursor:-webkit-grabbing;cursor:grabbing}.material-row.drop-target{border-color:#38bdf8;box-shadow:inset 0 0 0 1px rgba(56,189,248,.35)}.material-drag-handle{flex:0 0 auto;color:#94a3b8;font-size:.7rem;letter-spacing:-.12em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.material-label{flex:1 1;font-size:.82rem}.color-swatch{width:14px;height:14px;border-radius:999px;border:1px solid rgba(255,255,255,.25)}.empty-note{margin:0;color:var(--muted);font-size:.82rem}.map-column{display:grid;grid-template-columns:1fr auto;min-height:calc(100vh - 68px)}.chamber-panel{display:flex;flex-direction:column;width:min(360px,42vw);border-left:1px solid var(--panel-border);background:var(--panel)}.chamber-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem;border-bottom:1px solid var(--panel-border)}.chamber-panel-header strong{display:block;font-size:1rem}.chamber-panel-header span{display:block;margin-top:.2rem;color:var(--muted);font-size:.82rem}.chamber-panel-body{display:flex;flex-direction:column;gap:1rem;padding:1rem;overflow:auto}.chamber-section h2{display:flex;align-items:center;gap:.5rem}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;padding:.1rem .35rem;border-radius:999px;background:rgba(148,163,184,.15);color:var(--muted);font-size:.72rem}.text-area{width:100%;min-height:84px;padding:.55rem .7rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--text);resize:vertical}@media (max-width:1100px){.map-column{grid-template-columns:1fr;grid-template-rows:1fr auto}.chamber-panel{width:100%;max-height:42vh;border-left:none;border-top:1px solid var(--panel-border)}}.material-editor-card{width:min(100%,520px)}.point-icon-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:.35rem;gap:.35rem}.point-icon-option{display:flex;align-items:center;justify-content:center;min-height:40px;padding:.25rem;border:2px solid transparent;border-radius:8px;background:rgba(15,23,42,.55);cursor:pointer}.point-icon-option.selected{border-color:var(--accent);background:rgba(59,130,246,.18)}.point-color-picker{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:.35rem;gap:.35rem}.point-color-option{width:100%;aspect-ratio:1;min-height:28px;border:2px solid transparent;border-radius:6px;cursor:pointer}.point-color-option.selected{border-color:#ffffff;box-shadow:0 0 0 1px var(--accent)}.material-point-preview{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;flex-shrink:0}.map-color-picker{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:.35rem;gap:.35rem}.map-color-option{width:100%;aspect-ratio:1;min-height:28px;border:2px solid transparent;border-radius:6px;cursor:pointer}.map-color-option.selected{border-color:#ffffff;box-shadow:0 0 0 1px var(--accent)}.fiber-color-picker{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:.35rem;gap:.35rem}.compact-color-picker{grid-template-columns:repeat(6,1fr)}.fiber-color-option{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-height:42px;padding:.25rem;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;color:var(--muted);cursor:pointer;font-size:.65rem}.fiber-color-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px rgba(56,189,248,.35)}.line-preview-row{display:flex;align-items:center;gap:.75rem}.line-style-preview{display:inline-block;height:8px;border-radius:999px;border:1px solid rgba(255,255,255,.15)}.line-style-preview.striped{background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,var(--stripe-color) 3px,var(--stripe-color) 6px)}.modal-backdrop{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:1rem;background:rgba(2,6,23,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(100%,440px);max-height:90vh;overflow:auto;padding:1.25rem;border:1px solid var(--panel-border);border-radius:14px;background:var(--panel)}.modal-card h2{margin:0 0 .5rem;font-size:1.05rem}.modal-actions{display:flex;gap:.5rem;margin-top:1rem}.modal-actions .action-button{flex:1 1}.asset-pick-popup{min-width:220px;max-width:300px;color:#f8fafc}.asset-pick-popup>strong{display:block;margin:0;color:#f8fafc;font-size:.92rem;font-weight:700;letter-spacing:.01em}.asset-pick-popup>p{margin:.3rem 0 .65rem;color:#94a3b8;font-size:.75rem;line-height:1.35}.asset-pick-popup ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.asset-pick-popup li button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.5rem .65rem;border:1px solid #334155;border-radius:8px;background:#1e293b;color:#f8fafc;cursor:pointer;text-align:left;transition:border-color .12s ease,background .12s ease}.asset-pick-popup li button:focus-visible,.asset-pick-popup li button:hover{border-color:#38bdf8;background:#0f172a;outline:none}.asset-pick-popup li button span{color:#94a3b8;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.asset-pick-popup li button strong{display:block;color:#f8fafc;font-size:.86rem;font-weight:700;line-height:1.3;word-break:break-word}.leaflet-container .leaflet-popup-content-wrapper:has(.asset-pick-popup),.leaflet-popup.leaflet-popup-asset-pick .leaflet-popup-content-wrapper{background:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:12px;box-shadow:0 12px 28px rgba(0,0,0,.45);padding:0}.leaflet-container .leaflet-popup-content:has(.asset-pick-popup),.leaflet-popup.leaflet-popup-asset-pick .leaflet-popup-content{margin:.75rem .85rem;color:#f8fafc}.leaflet-container .leaflet-popup:has(.asset-pick-popup) .leaflet-popup-tip,.leaflet-popup.leaflet-popup-asset-pick .leaflet-popup-tip{background:#0f172a;border:1px solid #334155;box-shadow:none}.leaflet-container .leaflet-popup:has(.asset-pick-popup) .leaflet-popup-close-button,.leaflet-popup.leaflet-popup-asset-pick .leaflet-popup-close-button{color:#94a3b8!important;font-size:18px;font-weight:700;top:6px;right:8px;width:24px;height:24px;padding:0}.leaflet-container .leaflet-popup:has(.asset-pick-popup) .leaflet-popup-close-button:hover,.leaflet-popup.leaflet-popup-asset-pick .leaflet-popup-close-button:hover{color:#f8fafc!important}.network-import-batches{display:flex;flex-direction:column;gap:.45rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--panel-border)}.network-import-batches>strong{font-size:.82rem}.network-import-batch-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.45rem .55rem;border:1px solid var(--panel-border);border-radius:8px;background:#0b1220}.network-import-batch-row span{display:block;font-size:.82rem}.network-import-batch-row small{display:block;margin-top:.15rem;color:var(--muted);font-size:.72rem}.network-import-bulk{display:flex;flex-direction:column;gap:.45rem;margin:.75rem 0 .35rem;padding:.65rem .7rem;border:1px solid var(--panel-border);border-radius:10px;background:#0b1220}.network-import-bulk>strong{font-size:.82rem}.network-import-bulk-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;grid-gap:.45rem;gap:.45rem;align-items:center}.network-import-bulk-row span{color:var(--muted);font-size:.78rem}.network-import-layer-list{display:flex;flex-direction:column;gap:.55rem;margin:.85rem 0;max-height:min(50vh,420px);overflow:auto}.network-import-layer-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-gap:.65rem;gap:.65rem;align-items:start;padding:.55rem .65rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a}.network-import-layer-controls{display:flex;flex-direction:column;gap:.4rem}.network-import-layer-row strong{display:block;font-size:.88rem}.network-import-layer-row span{display:block;margin-top:.15rem;color:var(--muted);font-size:.75rem}@media (max-width:640px){.network-import-layer-row{grid-template-columns:1fr}}.detail-grid{display:grid;grid-gap:.45rem;gap:.45rem}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .55rem;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;font-size:.82rem}.detail-row span{color:var(--muted)}.color-chart-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem}.color-chart-row{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--muted)}.fiber-swatch{display:inline-block;flex-shrink:0;border-radius:2px}.fiber-swatch-striped{background-image:repeating-linear-gradient(-45deg,transparent,transparent 2px,var(--stripe-color) 2px,var(--stripe-color) 4px)}.strand-table-wrap{max-height:220px;overflow:auto;border:1px solid var(--panel-border);border-radius:8px}.strand-table{width:100%;border-collapse:collapse;font-size:.72rem}.strand-table td,.strand-table th{padding:.35rem .45rem;border-bottom:1px solid var(--panel-border);text-align:left}.strand-table th{position:-webkit-sticky;position:sticky;top:0;background:#0f172a;color:var(--muted);font-weight:600}.strand-cell{display:inline-flex;align-items:center;gap:.35rem}.splice-backdrop{position:fixed;inset:0;z-index:3000;pointer-events:none;background:transparent}.splice-modal{pointer-events:auto;position:fixed;display:flex;flex-direction:column;min-width:300px;min-height:260px;max-width:96vw;max-height:92vh;border:1px solid var(--panel-border);border-radius:12px;background:var(--panel);overflow:hidden;resize:both;box-shadow:0 16px 48px rgba(2,6,23,.35)}.splice-modal:after{content:"";position:absolute;right:3px;bottom:3px;width:14px;height:14px;background:linear-gradient(135deg,transparent 0 45%,rgba(148,163,184,.95) 45% 55%,transparent 55% 70%,rgba(148,163,184,.95) 70% 80%,transparent 80%);pointer-events:none;z-index:5}.splice-modal-card{width:min(96vw,480px)}.splice-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.55rem .75rem;border-bottom:1px solid var(--panel-border);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.splice-header:active{cursor:-webkit-grabbing;cursor:grabbing}.splice-header h2{margin:0 0 .15rem;font-size:.95rem}.splice-header .compact-copy{margin:0;font-size:.72rem}.splice-cable-pickers{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:.5rem;gap:.5rem;align-items:end;padding:.55rem .75rem;border-bottom:1px solid var(--panel-border)}.splice-picker{display:flex;flex-direction:column;gap:.25rem}.splice-picker-label{display:inline-flex;align-items:center;gap:.35rem}.splice-cable-swatch{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 1px rgba(15,23,42,.25);flex-shrink:0}.splice-arrow{padding-bottom:.55rem;color:var(--muted);font-size:1.2rem;text-align:center}.splice-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .75rem;border-bottom:1px solid var(--panel-border)}.splice-toolbar .section-copy{font-size:.72rem}.splice-canvas{position:relative;display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr);grid-gap:2.5rem;gap:2.5rem;min-height:0;flex:1 1;padding:.5rem .4rem;overflow:auto;border:1px solid var(--panel-border);border-radius:8px;background:#f8fafc}.splice-lines{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.splice-side-title{margin-bottom:.5rem;color:var(--muted);font-size:.78rem;font-weight:600}.splice-tube-group{display:grid;grid-template-columns:28px 1fr;grid-gap:.35rem;gap:.35rem;margin-bottom:.65rem}.splice-tube-group-right{grid-template-columns:1fr 28px}.splice-side-left,.splice-side-right{position:relative;z-index:2;justify-items:stretch}.splice-tube-bar{display:grid;place-items:center;min-height:100%;width:100%;padding:0;border:1px solid rgba(15,23,42,.2);border-radius:4px;color:#0f172a;font-size:.62rem;font-weight:700;writing-mode:vertical-rl;transform:rotate(180deg);cursor:pointer}.splice-tube-bar:hover{box-shadow:0 0 0 2px rgba(37,99,235,.35)}.splice-tube-bar.selected{box-shadow:0 0 0 2px rgba(37,99,235,.7)}.splice-strand-list{display:flex;flex-direction:column;gap:2px}.splice-strand-row{display:grid;grid-template-columns:18px minmax(0,1fr) 28px auto;align-items:center;grid-gap:.35rem;gap:.35rem;width:100%;padding:.1rem .25rem;border:1px solid transparent;border-radius:4px;background:#ffffff;color:#0f172a;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splice-strand-row:active{cursor:-webkit-grabbing;cursor:grabbing}.splice-side-right .splice-strand-row{grid-template-columns:auto 28px minmax(0,1fr) 18px}.splice-side-right .splice-strand-num{text-align:left}.splice-strand-markers{display:inline-flex;align-items:center;justify-content:flex-end;gap:.2rem;min-height:12px;min-width:0}.splice-side-right .splice-strand-markers{justify-content:flex-start}.splice-strand-row.selected{border-color:#2563eb;box-shadow:0 0 0 1px rgba(37,99,235,.35);background:#eff6ff}.splice-strand-row.spliced{outline:1px solid rgba(15,23,42,.25)}.splice-strand-row.occupied{opacity:.92}.splice-strand-row.has-splitter{background:rgba(34,197,94,.12)}.splice-strand-row.drop-target,.splice-strand-row.link-target:hover{border-color:#2563eb;background:rgba(37,99,235,.16)}.splice-strand-bar{position:relative;display:flex;align-items:center;width:100%;min-width:0;height:16px;border-radius:2px;border:1px solid rgba(0,0,0,.25);overflow:hidden}.splice-strand-bar.has-label{height:18px;padding:0 .35rem}.splice-strand-bar.striped{background-image:repeating-linear-gradient(-45deg,transparent,transparent 2px,var(--stripe-color) 2px,var(--stripe-color) 4px)}.splice-strand-bar-label{position:relative;z-index:1;display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:700;letter-spacing:.01em;line-height:1;text-shadow:0 0 2px rgba(0,0,0,.25)}.splice-side-right .splice-strand-bar-label{text-align:right}.splice-strand-num{font-size:.72rem;text-align:right;color:var(--muted)}.splice-stub{position:relative;display:inline-block;width:16px;height:12px;flex-shrink:0}.splice-stub:before{top:50%;height:2px;transform:translateY(-50%)}.splice-stub:after,.splice-stub:before{content:"";position:absolute;background:#111111}.splice-stub:after{top:1px;bottom:1px;width:2px}.splice-stub-left:before{left:0;right:3px}.splice-stub-left:after{right:0}.splice-stub-right:before{left:3px;right:0}.splice-stub-right:after{left:0}.splice-triangle-icon,.splice-triangle-marker{display:inline-block;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:11px solid #22c55e;flex-shrink:0}.splice-swap-button{align-self:end;margin-bottom:.15rem;width:2.4rem;height:2.4rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.55);color:var(--text);font-size:1.15rem;cursor:pointer}.splice-swap-button:hover{border-color:var(--accent)}.splice-triangle-icon.large{border-left-width:8px;border-right-width:8px;border-bottom-width:14px}.splice-out-badge{font-size:.65rem;font-weight:700;color:#0f172a;background:#fde68a;border-radius:4px;padding:.05rem .3rem;white-space:nowrap}.splice-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,200px);grid-gap:.5rem;gap:.5rem;min-height:0;flex:1 1;padding:.45rem .55rem}.splice-splitter-panel{display:flex;flex-direction:column;gap:.5rem;min-height:0;max-height:none;overflow:auto;padding:.5rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.35)}.splice-splitter-panel h3{margin:0;font-size:.95rem}.splice-splitter-list{display:flex;flex-direction:column;gap:.35rem}.splice-splitter-chip{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;width:100%;padding:.45rem .55rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.55);color:inherit;text-align:left;cursor:pointer}.splice-splitter-chip.active{border-color:#f59e0b;box-shadow:0 0 0 1px rgba(245,158,11,.35)}.splice-splitter-meta{width:100%;font-size:.72rem;color:var(--muted)}.splice-splitter-detail{display:flex;flex-direction:column;gap:.4rem}.splice-splitter-detail-title{display:flex;align-items:center;gap:.45rem;font-weight:700;margin-bottom:.2rem}.splice-port-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;grid-gap:.35rem;gap:.35rem}.splice-port-badge{display:inline-flex;justify-content:center;align-items:center;min-height:1.4rem;padding:.1rem .35rem;border-radius:4px;font-size:.68rem;font-weight:700}.splice-port-badge.in{background:#f59e0b;color:#111827}.splice-port-badge.out{background:#334155;color:#e2e8f0}.splice-port-value{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.splice-port-link-btn{font-size:.75rem;padding:.25rem .45rem}.splice-context-menu{position:fixed;z-index:4000;pointer-events:auto;min-width:240px;max-width:min(92vw,320px);max-height:min(70vh,420px);overflow:auto;padding:.4rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;box-shadow:0 12px 40px rgba(0,0,0,.45)}.splice-context-title{padding:.35rem .5rem;font-size:.78rem;font-weight:700;color:#e2e8f0}.splice-context-section{display:flex;flex-direction:column;gap:.15rem;padding:.25rem 0;border-top:1px solid rgba(148,163,184,.2)}.splice-context-label{padding:.35rem .5rem .15rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.splice-context-empty{margin:0;padding:.35rem .5rem .5rem;font-size:.78rem;color:#94a3b8}.splice-context-item{display:flex;align-items:center;gap:.45rem;width:100%;padding:.45rem .55rem;border:none;border-radius:6px;background:transparent;color:#e2e8f0;text-align:left;cursor:pointer;font-size:.82rem}.splice-context-item:hover:not(:disabled){background:rgba(56,189,248,.15)}.splice-context-item:disabled{opacity:.45;cursor:not-allowed}.splice-context-item.danger{color:#fca5a5}.splice-footer{display:flex;justify-content:flex-end;padding:.45rem .75rem;border-top:1px solid var(--panel-border)}@media (max-width:980px){.splice-workspace{grid-template-columns:1fr}.splice-splitter-panel{max-height:280px}}.plans-workspace{display:grid;grid-template-columns:minmax(300px,360px) 1fr;height:100%;min-height:0;overflow:hidden}.plan-save-error{grid-column:1/-1;padding:.55rem .85rem;border-bottom:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-size:.82rem;font-weight:600}.plans-panel{overflow:auto;padding:.85rem;border-right:1px solid var(--panel-border);background:rgba(15,23,42,.65)}.plans-panel .panel-block{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--panel-border)}.plans-panel .panel-block:last-child{border-bottom:none}.plans-panel h2{margin:0 0 .5rem;font-size:.92rem}.file-input-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.45rem .85rem;border:1px dashed var(--panel-border);border-radius:8px;background:#0f172a;color:var(--text);cursor:pointer}.file-input-button input{display:none}.gis-export-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.gis-export-actions .action-button:disabled{opacity:.45;cursor:not-allowed}.plan-layer-swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.25);flex-shrink:0}.plan-layer-list{list-style:none;margin:.65rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.plan-layer-item{border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;overflow:hidden}.plan-layer-item.expanded{border-color:rgba(56,189,248,.45)}.plan-layer-row{display:flex;align-items:stretch;gap:.35rem;padding:.35rem}.plan-layer-row .compact-checkbox{display:flex;align-items:center;padding:0 .15rem}.plan-layer-summary{flex:1 1;display:flex;align-items:center;gap:.45rem;padding:.25rem .35rem;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left}.plan-layer-summary.static{cursor:default}.plan-layer-preview-line{width:28px;border-radius:2px;flex-shrink:0}.plan-layer-preview-point{display:flex;align-items:center;justify-content:center;width:18px;flex-shrink:0}.plan-layer-summary-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.plan-layer-summary-text span{color:var(--muted);font-size:.72rem}.plan-layer-settings{padding:0 .65rem .65rem;border-top:1px solid var(--panel-border)}.plan-layer-header-actions{display:flex;align-items:center;gap:.65rem}.plan-layer-features{margin-top:.35rem;padding-top:.65rem;border-top:1px solid var(--panel-border)}.plan-layer-features-title{margin-bottom:.45rem;color:var(--muted);font-size:.78rem;font-weight:600}.plan-layer-empty-features{margin:.35rem 0 0}.plan-layer-settings .plan-imported-list{margin-top:0}.plan-color-row{display:grid;grid-template-columns:44px 1fr;grid-gap:.45rem;gap:.45rem;align-items:center}.plan-color-input{width:44px;height:36px;background:#0f172a;cursor:pointer}.plan-point-symbol-wrap{background:transparent!important;border:none!important}.plans-panel .file-input-button{margin-top:.45rem}.plan-notes-input{min-height:72px;resize:vertical}.plan-section-actions{margin-bottom:.65rem}.plan-section-actions,.plan-section-list{display:flex;flex-direction:column;gap:.45rem}.plan-section-list{list-style:none;margin:0 0 .75rem;padding:0}.plan-section-item{display:grid;grid-template-columns:1fr auto;grid-gap:.35rem;gap:.35rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a}.plan-section-item.selected{border-color:var(--accent)}.plan-section-select{grid-column:1/-1;display:flex;justify-content:space-between;gap:.5rem;padding:0;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left}.plan-section-select span{color:var(--muted);font-size:.78rem}.compact-input{min-height:32px;padding:.35rem .5rem;font-size:.82rem}.danger-icon-button{color:#fca5a5}.plan-print-button{width:100%}.plan-imported-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.plan-imported-header h2{margin:0}.text-button{border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:.78rem}.danger-text{color:#fca5a5}.plan-imported-group{margin-top:.65rem}.plan-imported-group-title{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem;color:var(--muted);font-size:.78rem;font-weight:600}.plan-imported-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.plan-imported-item{display:grid;grid-template-columns:1fr auto;grid-gap:.35rem;gap:.35rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a}.plan-imported-item.selected{border-color:var(--accent)}.plan-imported-select{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:0;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left}.plan-imported-select span{color:var(--muted);font-size:.72rem}.plan-map-stage{position:relative;min-width:0;min-height:0;height:100%}.plan-map-hint{position:absolute;left:50%;bottom:1rem;z-index:500;transform:translateX(-50%);max-width:min(90vw,560px);padding:.65rem .9rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(15,23,42,.92);color:var(--muted);font-size:.82rem;text-align:center}.plan-print-overlay{position:fixed;inset:0;z-index:2000;overflow:auto;background:rgba(2,6,23,.92)}.plan-print-toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--panel-border);background:#0f172a}.plan-print-toolbar-copy{display:flex;flex-direction:column;gap:.2rem;min-width:0}.plan-print-toolbar-copy p{margin:0;color:#94a3b8;font-size:.82rem;line-height:1.35}.plan-print-toolbar-copy strong{color:#f8fafc}.plan-print-toolbar-actions{display:flex;gap:.5rem;flex-shrink:0}.plan-workflow-steps{margin:0 0 .75rem;padding-left:1.1rem;color:#94a3b8;font-size:.78rem;line-height:1.45}.plan-section-page-actions{grid-column:1/-1;display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem;padding-top:.35rem;border-top:1px dashed var(--panel-border)}.plan-copy-from-row{display:flex;flex-direction:column;gap:.25rem}.plan-copy-from-controls{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:.35rem;gap:.35rem;align-items:center}.compact-select{font-size:.78rem;padding:.3rem .4rem}.plan-print-pages{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:1.5rem}.plan-sheet{width:min(96vw,1200px);padding:6px;background:#ffffff;color:#0f172a;border:3px solid #0f172a;box-shadow:0 12px 40px rgba(0,0,0,.35);overflow:hidden}.plan-sheet-frame{display:grid;grid-template-columns:minmax(0,1fr) 88mm;height:100%;min-height:420px;border:2px solid #0f172a}.plan-sheet-map{position:relative;min-width:0;min-height:420px;background:#e2e8f0;border-right:2px solid #0f172a;overflow:hidden}.plan-flattened-map-overlay{pointer-events:none}.plan-sheet-overlays{z-index:650}.plan-sheet-arrows,.plan-sheet-overlays{position:absolute;inset:0;pointer-events:none}.plan-sheet-arrows{width:100%;height:100%;overflow:visible}.plan-arrow-target-handle{fill:#38bdf8;stroke:#ffffff;stroke-width:2;pointer-events:none}.plan-arrow-target-hit{fill:transparent;stroke:transparent;pointer-events:auto;cursor:-webkit-grab;cursor:grab}.plan-arrow-target-hit:active{cursor:-webkit-grabbing;cursor:grabbing}.plan-inset-detail{min-width:0;max-width:none;display:flex;flex-direction:column}.plan-inset-detail .plan-inset-map{flex:1 1 auto;height:auto;min-height:0}.plan-inset-detail .plan-inset-map .leaflet-container{position:absolute!important;inset:0!important;width:auto!important;height:auto!important}.plan-sheet-callout{position:absolute;z-index:660;display:flex;flex-direction:column;border:2px solid #0f172a;background:#ffffff;box-shadow:0 2px 8px rgba(15,23,42,.18);overflow:hidden;pointer-events:auto}.plan-sheet-callout-embedded{position:relative;width:100%;height:100%;z-index:auto}.plan-editable-overlay{position:absolute;box-sizing:border-box}.plan-sheet-overlays.is-editing .plan-editable-overlay.is-editable{pointer-events:auto}.plan-editable-overlay.is-editable{cursor:-webkit-grab;cursor:grab}.plan-editable-overlay.is-editable.is-selected{outline:2px solid #38bdf8;outline-offset:1px;cursor:-webkit-grab;cursor:grab}.plan-editable-overlay.is-editable:active{cursor:-webkit-grabbing;cursor:grabbing}.plan-inset-editable.is-selected,.plan-inset.is-selected{outline:2px solid #38bdf8;outline-offset:1px}.plan-overlay-drag-hint{position:absolute;top:-1.1rem;left:0;padding:.1rem .35rem;background:#0f172a;color:#f8fafc;font-size:.55rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.plan-editable-callout-wrap{pointer-events:auto}.plan-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:0;gap:0;padding:0;align-items:stretch;min-height:0;flex:1 1}.plan-layout-designer.plan-print-overlay{display:flex;flex-direction:column;min-height:0}.plan-layout-designer .plan-editor-layout{flex:1 1;min-height:0}.plan-editor-canvas{display:flex;justify-content:center;min-width:0}.plan-sheet-editor-sidebar{position:-webkit-sticky;position:sticky;top:4.5rem;max-height:calc(100vh - 5rem);overflow:auto;display:flex;flex-direction:column;gap:.75rem;padding:.75rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a}.plan-editor-panel{display:flex;flex-direction:column;gap:.45rem}.plan-editor-panel h3{margin:0;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#94a3b8}.plan-editor-button-row{display:flex;flex-wrap:wrap;gap:.35rem}.plan-layer-stack-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.plan-layer-stack-item{display:grid;grid-template-columns:1fr auto;grid-gap:.25rem;gap:.25rem;align-items:center;padding:.35rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.35)}.plan-layer-stack-item.selected{border-color:#38bdf8;background:rgba(56,189,248,.12)}.plan-layer-stack-select{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.plan-layer-stack-kind{color:#64748b;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.plan-layer-stack-actions{display:flex;gap:.15rem}.plan-layer-stack-actions .icon-button{min-width:1.6rem;padding:.15rem .25rem;font-size:.75rem}.plan-print-export-only{position:fixed;top:0;left:-10000px;display:block;visibility:visible;pointer-events:none;overflow:visible;z-index:0}.plan-print-export-only .plan-sheet-print-page{width:var(--plan-sheet-width,420mm);height:var(--plan-sheet-height,297mm);max-width:none;margin:0 0 1.5rem;padding:0;border-width:2px;box-shadow:none;overflow:hidden;box-sizing:border-box}.plan-sheet-editor.is-preparing-print .plan-editor-layout{visibility:visible}.plan-layout-canvas{min-height:0;height:100%;padding:0!important;overflow:hidden}.plan-layout-viewport{display:flex;flex-direction:column;height:100%;min-height:0;background:#1e293b}.plan-layout-view-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.45rem .65rem;border-bottom:1px solid var(--panel-border);background:#0f172a}.plan-layout-view-label{color:#e2e8f0;font-size:.78rem;font-weight:700;margin-right:.25rem}.plan-layout-zoom-select{min-width:4.5rem}.plan-layout-view-hint{flex:1 1 100%;margin:.15rem 0 0;color:#94a3b8;font-size:.72rem;line-height:1.35}.plan-layout-surface{flex:1 1;min-height:0;overflow:hidden;position:relative;background:linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 0),linear-gradient(rgba(148,163,184,.08) 1px,transparent 0),#334155;background-size:24px 24px}.plan-layout-surface.is-pan-layout{cursor:-webkit-grab;cursor:grab}.plan-layout-surface.is-pan-layout:active{cursor:-webkit-grabbing;cursor:grabbing}.plan-layout-transform{position:absolute;left:0;top:0;transform-origin:top left}.plan-sheet-layout-page{box-sizing:border-box;box-shadow:0 8px 32px rgba(0,0,0,.35)}.plan-sheet-layout-page .plan-sheet-frame{grid-template-columns:minmax(0,1fr) 88mm!important;height:100%!important;min-height:0!important}.plan-sheet-layout-page .plan-title-block{font-size:5.5pt;line-height:1.2;max-width:88mm;overflow:hidden}.plan-sheet-layout-page .plan-tb-section h3{font-size:5pt;margin-bottom:.15rem}.plan-sheet-layout-page .plan-tb-project-title{font-size:6pt}.plan-sheet-layout-page .plan-tb-legend li span,.plan-sheet-layout-page .plan-tb-meta-cell strong,.plan-sheet-layout-page .plan-tb-project-subtitle{font-size:5.5pt}.plan-sheet-layout-page .plan-tb-legend-block{padding-left:.35rem;padding-right:.35rem}.plan-sheet-layout-page .plan-tb-legend-group h4,.plan-sheet-layout-page .plan-tb-meta-cell span,.plan-sheet-layout-page .plan-tb-signoff-cell span{font-size:5pt}.plan-sheet-layout-page .plan-tb-logo-slot img{max-height:24px}.plan-sheet-layout-page .plan-tb-panel{padding:.25rem .3rem;margin:.08rem 0}.plan-sheet-layout-page .plan-tb-brand-text strong,.plan-sheet-layout-page .plan-tb-org-name{font-size:5.5pt}.plan-sheet-layout-page .plan-tb-org-line{font-size:5pt}.plan-sheet-layout-page .plan-tb-logo-spaced img{max-height:28px}.plan-sheet-layout-page .plan-tb-brand-text span{font-size:5pt}.plan-sheet-layout-page .plan-sheet-map{min-height:0!important;height:100%!important}.plan-sheet-layout-page .leaflet-container{width:100%!important;height:100%!important}.plan-sheet-layout-page .plan-tb-panel,.plan-sheet-layout-page .plan-tb-project-band{padding:.25rem .3rem}.plan-sheet-map.tool-move-map-active .plan-sheet-overlays,.plan-sheet-overlays.tool-move-map{pointer-events:none!important}.plan-placement-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem}.plan-placement-grid label{display:flex;flex-direction:column;gap:.15rem;font-size:.72rem;color:#94a3b8}.plan-sheet-map.tool-move-map{cursor:-webkit-grab;cursor:grab}.plan-sheet-map.tool-move-map:active{cursor:-webkit-grabbing;cursor:grabbing}.plan-map-move-content{cursor:-webkit-grab!important;cursor:grab!important}.plan-map-move-content:active{cursor:-webkit-grabbing!important;cursor:grabbing!important}.plan-sheet-editor.is-rendering-pdf .plan-editor-layout{pointer-events:none}.plan-render-overlay{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;background:rgba(2,6,23,.88)}.plan-render-panel{width:min(92vw,420px);padding:1.25rem 1.5rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;box-shadow:0 20px 50px rgba(0,0,0,.45)}.plan-render-panel h3{margin:0 0 .5rem;color:#f8fafc;font-size:1.05rem}.plan-render-status{margin:0 0 .35rem;color:#e2e8f0;font-size:.9rem}.plan-render-phase{margin:0 0 .85rem;color:#94a3b8;font-size:.82rem}.plan-render-error{color:#fca5a5;margin-bottom:1rem}.plan-render-bar{height:8px;border-radius:999px;background:rgba(148,163,184,.25);overflow:hidden}.plan-render-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#6366f1);transition:width .35s ease}.plan-render-cancel{margin-top:.85rem;width:100%}.plan-render-stage{position:fixed;left:0;top:0;overflow:hidden;pointer-events:none;z-index:-1;opacity:0;background:#ffffff}.plan-render-stage.plan-render-stage-capturing{opacity:1!important;z-index:9998!important}.plan-map-capture-overlays{position:absolute;inset:0;z-index:900;pointer-events:none;overflow:hidden}.plan-sheet-render-page{box-sizing:border-box;box-shadow:none;overflow:hidden}.plan-sheet-render-page .plan-sheet-frame{grid-template-columns:minmax(0,1fr) var(--plan-title-block-width,21%)!important;height:100%!important;min-height:0!important}.plan-sheet-render-page .plan-title-block{width:var(--plan-title-block-width,21%);min-width:var(--plan-title-block-width,21%);max-width:var(--plan-title-block-width,21%);height:100%!important;overflow:hidden;gap:calc(3px * var(--render-scale, 2));padding:calc(4px * var(--render-scale, 2));font-size:calc(11px * var(--render-scale, 2));line-height:1.25;border-left:none;box-sizing:border-box}.plan-sheet-render-page .plan-tb-panel{padding:calc(8px * var(--render-scale, 2)) calc(12px * var(--render-scale, 2));margin:0;border-radius:calc(6px * var(--render-scale, 2));box-sizing:border-box}.plan-sheet-render-page .plan-tb-section h3{margin-bottom:calc(6px * var(--render-scale, 2));font-size:calc(13px * var(--render-scale, 2));letter-spacing:.04em}.plan-sheet-render-page .plan-tb-project-title{font-size:calc(16px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-project-locality,.plan-sheet-render-page .plan-tb-project-subtitle{font-size:calc(12px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-meta-cell span{font-size:calc(10px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-legend li span,.plan-sheet-render-page .plan-tb-meta-cell strong,.plan-sheet-render-page .plan-tb-org-name:not(.is-placeholder),.plan-sheet-render-page .plan-tb-sheet-name{font-size:calc(12px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-org-line.is-placeholder,.plan-sheet-render-page .plan-tb-org-line:not(.is-placeholder),.plan-sheet-render-page .plan-tb-org-name.is-placeholder{font-size:calc(11px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-brand-text span,.plan-sheet-render-page .plan-tb-signoff-cell span{font-size:calc(10px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-signoff-cell strong{font-size:calc(12px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-notes-section p{font-size:calc(11px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-revision-table{font-size:calc(10px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-revision-table td,.plan-sheet-render-page .plan-tb-revision-table th{padding:calc(4px * var(--render-scale, 2)) calc(6px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-logo-slot{align-items:flex-start;flex-shrink:0}.plan-sheet-render-page .plan-tb-logo-slot img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(56px * var(--render-scale, 2));object-fit:contain;object-position:left center;flex-shrink:0}.plan-sheet-render-page .plan-tb-logo-spaced{margin-top:calc(8px * var(--render-scale, 2));padding:calc(10px * var(--render-scale, 2)) calc(8px * var(--render-scale, 2)) calc(6px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-logo-spaced img{max-height:calc(64px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-logo-placeholder{min-height:calc(40px * var(--render-scale, 2));font-size:calc(10px * var(--render-scale, 2))}.plan-sheet-render-page .plan-legend-line{width:calc(36px * var(--render-scale, 2));min-height:calc(4px * var(--render-scale, 2))}.plan-sheet-render-page .plan-legend-point{width:calc(22px * var(--render-scale, 2));height:calc(22px * var(--render-scale, 2))}.plan-sheet-render-page .plan-map-frame-label{font-size:calc(14px * var(--render-scale, 2));padding:calc(8px * var(--render-scale, 2)) calc(14px * var(--render-scale, 2));border-width:calc(1px * var(--render-scale, 2))}.plan-sheet-render-page .plan-north-arrow svg{width:calc(42px * var(--render-scale, 2));height:calc(52px * var(--render-scale, 2))}.plan-sheet-render-page .plan-scale-bar{transform:scale(var(--render-scale,2));transform-origin:bottom left}.plan-sheet-render-page .plan-grid-label span{font-size:calc(10px * var(--render-scale, 2));padding:calc(2px * var(--render-scale, 2)) calc(5px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-legend-block{padding-left:calc(6px * var(--render-scale, 2));padding-right:calc(6px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-legend-group h4{font-size:calc(11px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-legend li{gap:calc(8px * var(--render-scale, 2))}.plan-sheet-render-page .plan-tb-legend-empty{font-size:calc(11px * var(--render-scale, 2))}.plan-sheet-render-page .plan-sheet-map{min-height:0!important;height:100%!important}.plan-sheet-render-page .plan-legend-symbol-wrap{width:calc(22px * var(--render-scale, 2));min-width:calc(22px * var(--render-scale, 2))}.plan-sheet-render-page .plan-inset-map{min-height:120px!important;height:100%!important}.plan-sheet-render-page .plan-inset-detail .plan-inset-map{flex:1 1 auto;height:auto!important;min-height:0!important}.plan-sheet-render-page .plan-inset-detail .plan-inset-map .leaflet-container{position:absolute!important;inset:0!important;width:auto!important;height:auto!important}.plan-sheet-render-page .plan-inset-map .leaflet-container{width:100%!important;height:100%!important}.plan-print-hint{margin:0;color:#94a3b8;font-size:.78rem;line-height:1.35}.plan-print-hint strong{color:#e2e8f0}.plan-editor-empty{padding:2rem}.plan-section-item-count{grid-column:1/-1}.plan-sheet-overlays.tool-arrow,.plan-sheet-overlays.tool-photo,.plan-sheet-overlays.tool-text{cursor:crosshair}.plan-sheet-arrow-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.plan-sheet-overlays.is-editing .plan-sheet-arrow-lines{pointer-events:auto}.plan-sheet-arrow-line.is-selected line:nth-of-type(2){filter:drop-shadow(0 0 2px #38bdf8)}.plan-arrow-handle{fill:#ffffff;stroke:#38bdf8;stroke-width:2;pointer-events:none}.plan-arrow-handle-end{fill:#38bdf8;stroke:#0f172a}.plan-arrow-handle-hit{fill:transparent;stroke:transparent;cursor:-webkit-grab;cursor:grab}.plan-arrow-handle-hit:active{cursor:-webkit-grabbing;cursor:grabbing}.plan-editor-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.35rem;gap:.35rem}.plan-style-controls{display:flex;flex-direction:column;gap:.35rem}.plan-style-controls input[type=range]{width:100%}.plan-color-input{width:100%;height:2rem;padding:.15rem;border:1px solid var(--panel-border);border-radius:6px;background:#0b1220}.plan-style-heading{margin:.35rem 0 0;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.plan-callout-text-block p,.plan-callout-text-block strong{color:inherit}.plan-sheet-callout-photo{padding:0}.plan-callout-photo-wrap{flex:1 1 auto;min-height:0;background:#e2e8f0}.plan-callout-photo-wrap img{display:block;width:100%;height:100%;object-fit:cover}.plan-callout-text-block{padding:.35rem .45rem;color:#0f172a;font-size:.62rem;line-height:1.35}.plan-callout-text-block strong{display:block;margin-bottom:.15rem;font-size:.65rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.plan-callout-text-block p{margin:0;white-space:pre-wrap}.plan-sheet-callout-text .plan-callout-text-block{flex:1 1;background:#fef2f2;border-top:3px solid #dc2626}.plan-map-stage.arrow-target-mode{cursor:crosshair}.plan-map-frame-label{position:absolute;left:50%;top:.65rem;bottom:auto;z-index:700;transform:translateX(-50%);display:flex;flex-direction:column;gap:.15rem;padding:.35rem .55rem;border:1px solid #0f172a;background:rgba(255,255,255,.92);font-size:.68rem;font-weight:700;line-height:1.2;text-align:center;pointer-events:none}.plan-sheet-decoration-footer{position:absolute;inset:0;z-index:700;pointer-events:none}.plan-hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.plan-overlay-delete{position:absolute;top:-.55rem;right:-.55rem;z-index:5;width:1.35rem;height:1.35rem;padding:0;border:1px solid #b91c1c;border-radius:999px;background:#ef4444;color:#ffffff;font-size:1rem;font-weight:700;line-height:1;cursor:pointer;pointer-events:auto}.plan-overlay-delete:hover{background:#dc2626}.plan-callout-photo-upload{display:flex;flex:1 1;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:4rem;margin:0;padding:.5rem;border:none;border-bottom:1px dashed #94a3b8;background:#f1f5f9;color:#334155;font-size:.65rem;font-weight:700;cursor:pointer;pointer-events:auto}.plan-callout-photo-upload:hover{background:#e2e8f0;color:#0f172a}.plan-callout-photo-upload-hint{font-size:.55rem;font-weight:600;color:#64748b}.danger-button{border-color:#b91c1c!important;background:#fef2f2!important;color:#b91c1c!important}.danger-button:hover{background:#fee2e2!important}.danger-icon-button{color:#b91c1c!important}.danger-icon-button:hover{background:#fef2f2!important}.plan-scale-bar{margin:0 0 .65rem .65rem!important;padding:.35rem .45rem .3rem;border:1px solid #0f172a;background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(15,23,42,.12)}.plan-scale-bar-track{display:flex;height:10px;border:1px solid #0f172a;overflow:hidden}.plan-scale-bar-track span{display:block;height:100%;box-sizing:border-box;border-right:1px solid #0f172a}.plan-scale-bar-track span:last-child{border-right:none}.plan-scale-bar-ticks{display:flex;justify-content:space-between;margin-top:.15rem;color:#334155;font-size:.55rem;font-weight:700;line-height:1}.plan-scale-bar-label{margin-top:.2rem;color:#0f172a;font-size:.58rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.plan-north-arrow{margin:.65rem .65rem 0 0!important;padding:.25rem;border:1px solid #0f172a;background:rgba(255,255,255,.94);line-height:0}.plan-grid-label{background:transparent!important;border:none!important}.plan-grid-label-layer{position:absolute;inset:0;z-index:650;pointer-events:none;overflow:visible}.plan-grid-label span,.plan-grid-label-layer .plan-grid-label{display:inline-block;padding:.1rem .25rem;border:1px solid #64748b;background:rgba(255,255,255,.92);color:#334155;font-size:.55rem;font-weight:700;line-height:1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.12)}.plan-grid-label-layer .plan-grid-label{position:absolute}.plan-grid-label-layer .plan-grid-label-bottom{transform:translate(-50%,-100%)}.plan-grid-label-layer .plan-grid-label-left{transform:translateY(-50%)}.plan-grid-label span{display:inline-block;padding:.1rem .25rem;border:1px solid #64748b;background:rgba(255,255,255,.92);color:#334155;font-size:.55rem;font-weight:700;line-height:1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.12)}.plan-grid-label-bottom span{transform:translateY(-2px)}.plan-inset{position:absolute;z-index:600;width:min(32%,220px);min-width:130px;border:2px solid #0f172a;background:#ffffff;box-shadow:0 2px 8px rgba(15,23,42,.18);overflow:hidden}.plan-inset-bottom-left{left:.65rem;bottom:3.75rem}.plan-inset-bottom-right{right:.65rem;bottom:.65rem}.plan-inset-top-left{left:.65rem;top:.65rem}.plan-inset-top-right{right:.65rem;top:.65rem}.plan-inset-header{padding:.25rem .4rem;border-bottom:1px solid #0f172a;background:#f8fafc;color:#0f172a;font-size:.58rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.plan-inset-map{position:relative;height:110px;overflow:hidden}.plan-inset-map,.plan-inset-map .leaflet-container{background:#e2e8f0}.plan-inset-scale{padding:.2rem .4rem;border-top:1px solid #cbd5e1;color:#334155;font-size:.55rem;font-weight:700;text-align:center}.plan-tb-revision-table{width:100%;border-collapse:collapse;font-size:.5rem}.plan-tb-revision-table td,.plan-tb-revision-table th{padding:.2rem .25rem;border:1px solid #94a3b8;text-align:left;vertical-align:top;line-height:1.25}.plan-tb-revision-table th{background:#f1f5f9;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.plan-revision-list{list-style:none;margin:0 0 .65rem;padding:0;display:flex;flex-direction:column;gap:.45rem}.plan-revision-item{display:grid;grid-template-columns:52px 1fr 1fr auto;grid-gap:.35rem;gap:.35rem;align-items:center}.plan-revision-rev{text-align:center}.plan-decoration-toggles{margin:.35rem 0 0;padding:.55rem .65rem;border:1px solid var(--panel-border);border-radius:8px}.plan-decoration-toggles .checkbox-row{display:flex;align-items:center;gap:.45rem;margin-top:.35rem;font-size:.82rem}.plan-section-inset-actions{grid-column:1/-1;display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.plan-section-inset-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem;font-size:.78rem}.plan-section-inset-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.plan-section-action-row{display:flex;flex-wrap:wrap;gap:.35rem .65rem}.plan-section-subitem{flex-direction:column;align-items:stretch!important;gap:.25rem!important}.plan-section-subitem-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem}.plan-section-callout-actions{grid-column:1/-1;display:flex;flex-direction:column;gap:.25rem;margin-top:.35rem;padding-top:.35rem;border-top:1px solid var(--panel-border)}.plan-section-callout-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.plan-section-callout-item{display:flex;flex-direction:column;gap:.3rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.04)}.plan-callout-body-input{min-height:3.5rem;resize:vertical;font-size:.78rem}.plan-callout-arrow-toggle{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem}.plan-map-mode-hint{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;padding:.45rem .55rem;border:1px solid #38bdf8;border-radius:8px;background:rgba(56,189,248,.12)}.text-button.active{color:#38bdf8;font-weight:700}.plan-title-block{display:flex;flex-direction:column;gap:.12rem;min-width:0;height:100%;padding:.15rem;background:#ffffff;font-size:.58rem;overflow:hidden;color:#0f172a}.plan-tb-panel{border:1px solid #0f172a;border-radius:5px;background:#ffffff;padding:.35rem .5rem}.plan-tb-brand-row{display:flex;gap:.35rem;align-items:flex-start}.plan-tb-org-block{display:flex;flex-direction:column;gap:.25rem}.plan-tb-org-text{display:flex;flex-direction:column;gap:.1rem}.plan-tb-org-name{font-size:.54rem;font-weight:800;line-height:1.2;white-space:pre-wrap}.plan-tb-org-line{font-size:.5rem;line-height:1.25;white-space:pre-wrap}.plan-tb-org-line.is-placeholder,.plan-tb-org-name.is-placeholder{color:#94a3b8;font-style:italic;font-weight:500}.plan-tb-org-name.is-placeholder{font-weight:600}.plan-tb-logo-spaced{margin-top:.3rem;padding:.4rem .35rem .2rem;align-self:flex-start}.plan-tb-logo-spaced img{max-height:36px}.plan-tb-employer-block{margin-top:.35rem;padding-top:.35rem;border-top:1px solid #e2e8f0}.plan-tb-subheading{margin:0 0 .2rem;font-size:.48rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#475569;text-align:center}.plan-tb-brand-text{display:flex;flex-direction:column;gap:.08rem;min-width:0}.plan-tb-brand-text strong{font-size:.54rem;font-weight:700;line-height:1.2}.plan-tb-brand-text span{color:#475569;font-size:.5rem;line-height:1.15}.plan-tb-logos{display:grid;grid-template-columns:1fr 1fr;grid-gap:.25rem;gap:.25rem;padding:.35rem .4rem;border-bottom:1px solid #0f172a}.plan-tb-logo-slot{display:flex;flex-direction:column;gap:.15rem;min-width:0;align-items:flex-start}.plan-tb-logo-slot.align-end{align-items:flex-end;text-align:right}.plan-tb-logo-slot img{display:block;width:auto;height:auto;max-width:100%;max-height:28px;object-fit:contain;object-position:left center;flex-shrink:0}.plan-tb-logo-slot span:last-child{color:#475569;font-size:.5rem;font-weight:600;line-height:1.15}.plan-tb-logo-placeholder{display:flex;align-items:center;justify-content:center;min-height:24px;padding:.15rem;border:1px dashed #94a3b8;color:#94a3b8;font-size:.5rem;text-align:center}.plan-tb-project-band{padding:.35rem .4rem;border-bottom:1px solid #0f172a;background:#f8fafc}.plan-tb-section{padding:.35rem .4rem;border-bottom:1px solid #cbd5e1}.plan-tb-section.plan-tb-panel{padding:0;border-bottom:none}.plan-tb-section-tight{padding:.3rem .4rem}.plan-tb-section-legend{flex:1 1 auto;min-height:0;overflow:auto}.plan-tb-section h3{margin:0 0 .25rem;color:#334155;font-size:.5rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-align:center}.plan-tb-project-title{font-size:.62rem;font-weight:800;line-height:1.2}.plan-tb-project-subtitle{margin-top:.1rem;color:#334155;font-size:.54rem;font-weight:600;line-height:1.2}.plan-tb-project-locality{margin-top:.15rem;color:#64748b;font-size:.5rem}.plan-tb-meta-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;border:1px solid #94a3b8}.plan-tb-meta-cell{display:flex;flex-direction:column;gap:.05rem;padding:.2rem .25rem;border:1px solid #cbd5e1;background:#ffffff;min-width:0}.plan-tb-meta-cell span{color:#64748b;font-size:.48rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.plan-tb-meta-cell strong{font-size:.54rem;font-weight:700;line-height:1.15;word-break:break-word}.plan-tb-sheet-name{margin-top:.2rem;color:#475569;font-size:.5rem;font-weight:600;line-height:1.2}.plan-tb-box{display:flex;flex-direction:column;gap:.2rem;padding:.35rem;border:1px solid #94a3b8;background:#f8fafc}.plan-tb-row{display:grid;grid-template-columns:52px 1fr;grid-gap:.35rem;gap:.35rem;align-items:start}.plan-tb-row span{color:#64748b;font-weight:600}.plan-tb-row strong{font-weight:700;line-height:1.25;word-break:break-word}.plan-tb-legend-block{display:flex;flex-direction:column;gap:.35rem;padding:.15rem .45rem .1rem}.plan-tb-legend-group h4{margin:0 0 .15rem;color:#475569;font-size:.48rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.plan-tb-legend-empty{margin:0;padding:.05rem 0 .1rem;color:#94a3b8;font-size:.5rem}.plan-tb-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.18rem}.plan-tb-legend-columns{display:flex;flex-direction:column;gap:.12rem}.plan-tb-legend li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:.35rem;gap:.35rem;line-height:1.2;font-size:.52rem}.plan-tb-legend li span{text-align:left;word-break:break-word}.plan-tb-signoff{margin-top:auto;border-bottom:none}.plan-tb-signoff-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;border:1px solid #94a3b8}.plan-tb-signoff-cell{display:flex;flex-direction:column;gap:.15rem;min-height:2rem;padding:.25rem;border:1px solid #cbd5e1}.plan-tb-signoff-cell span{color:#64748b;font-size:.48rem;font-weight:600;text-transform:uppercase}.plan-tb-signoff-cell strong{font-size:.54rem}.plan-tb-signoff-wide{grid-column:1/-1}.plan-legend-symbol-wrap{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;min-width:22px}.plan-legend-line{display:inline-block;width:18px;min-height:2px;border-radius:1px;flex-shrink:0}.plan-legend-point{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.plan-legend-point svg{display:block}.plan-tb-legend i{display:inline-block;width:18px;min-height:2px;border-radius:1px;flex-shrink:0}.plan-tb-notes-section p{margin:0;white-space:pre-wrap;line-height:1.25;font-size:.5rem}.plan-sheet-map .leaflet-container{background:#e2e8f0}.plan-map-stage.section-draw-mode,.plan-map-stage.section-draw-mode .leaflet-container{cursor:crosshair}.plan-logo-field{display:flex;flex-direction:column;gap:.4rem}.compact-file-button{width:100%;margin-top:0}.plan-logo-preview-row{display:flex;align-items:center;gap:.65rem}.plan-logo-preview{max-width:120px;max-height:48px;object-fit:contain;border:1px solid var(--panel-border);border-radius:6px;background:#0f172a;padding:.25rem}@media print{body,html{width:auto;height:auto;margin:0!important;padding:0!important;overflow:visible!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-shell>.compact-header,.content-panel,.map-workspace,.no-print,.plan-map-stage,.plan-print-export-only,.plan-sheet-editor-sidebar,.plans-panel{display:none!important}.plan-editor-layout{grid-template-columns:1fr!important;gap:0!important}.plan-editor-canvas,.plan-editor-layout,.plan-print-sheet-source{display:block!important;padding:0!important;margin:0!important}.plan-editor-canvas .plan-sheet,.plan-print-sheet-source .plan-sheet{width:100vw!important;height:100vh!important;max-width:none!important;min-height:0!important;aspect-ratio:unset!important;padding:0!important;margin:0!important;border-width:2px!important;box-shadow:none!important;overflow:hidden!important;page-break-after:avoid;page-break-inside:avoid;break-inside:avoid}.app-shell,.compact-shell,.plans-workspace{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#ffffff!important}.plans-workspace{grid-template-columns:unset!important}.plan-print-overlay{position:static!important;inset:auto!important;z-index:auto!important;overflow:visible!important;background:#ffffff!important}.plan-print-export-only,.plan-print-pages{display:none!important}.plan-sheet-frame{display:grid!important;grid-template-columns:minmax(0,1fr) 88mm!important}.plan-sheet-frame,.plan-sheet-map{height:100%!important;min-height:0!important}.plan-sheet-map{min-width:0!important;overflow:hidden!important;isolation:isolate}.plan-title-block{display:flex!important;flex-direction:column!important;position:relative!important;z-index:2!important;min-width:0!important;width:auto!important;height:100%!important;overflow:visible!important;background:#ffffff!important;color:#0f172a!important;border-left:2px solid #0f172a!important}.plan-tb-box,.plan-tb-legend,.plan-tb-logos,.plan-tb-panel,.plan-tb-revision-table,.plan-tb-section,.plan-title-block{-webkit-print-color-adjust:exact;print-color-adjust:exact}.plan-inset-map .leaflet-container,.plan-sheet-map .leaflet-container{width:100%!important;height:100%!important}.leaflet-marker-icon,.leaflet-tile-pane img,.plan-grid-label span,.plan-inset,.plan-north-arrow,.plan-scale-bar,.plan-sheet-callout{-webkit-print-color-adjust:exact;print-color-adjust:exact}.leaflet-container,.leaflet-map-pane,.leaflet-marker-pane,.leaflet-overlay-pane,.leaflet-pane,.leaflet-shadow-pane,.leaflet-tile-pane{overflow:hidden!important}.leaflet-tile-pane img{display:block!important;visibility:visible!important;opacity:1!important;max-width:none!important;max-height:none!important}}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(100%,420px);background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:1.75rem;box-shadow:0 18px 50px rgba(0,0,0,.35)}.login-brand strong{display:block;font-size:1.35rem;margin-bottom:.35rem}.login-brand p{margin:0 0 1.25rem;color:var(--muted)}.login-form{display:grid;grid-gap:1rem;gap:1rem}.login-field{display:grid;grid-gap:.35rem;gap:.35rem}.login-field span{color:var(--muted);font-size:.9rem}.login-field input{width:100%;padding:.7rem .85rem;border-radius:8px;border:1px solid var(--panel-border);background:#0f172a;color:var(--text)}.login-field input:focus{outline:2px solid rgba(56,189,248,.35);border-color:var(--accent)}.login-error{margin:0;color:var(--danger);font-size:.92rem}.login-submit,.logout-button{border:0;border-radius:8px;background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:#082f49;font-weight:600;cursor:pointer}.login-submit{padding:.75rem 1rem}.logout-button{padding:.35rem .7rem;font-size:.82rem;color:#0f172a}.header-user-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.settings-button{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:8px;border:1px solid var(--panel-border);background:#0f172a;color:var(--text);font-size:.82rem;font-weight:600;text-decoration:none}.settings-button:hover{border-color:var(--accent);color:var(--accent)}.settings-shell{min-height:100vh;background:var(--bg)}.settings-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--panel-border);background:var(--panel)}.settings-back-link{display:inline-block;margin-bottom:.5rem;color:var(--muted);text-decoration:none}.settings-back-link:hover{color:var(--accent)}.settings-header h1{margin:0;font-size:1.5rem}.settings-header p{margin:.35rem 0 0;color:var(--muted)}.settings-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 110px)}.settings-nav{padding:1rem;border-right:1px solid var(--panel-border);background:#0f172a}.settings-nav-item{display:block;padding:.7rem .85rem;border-radius:8px;color:var(--muted);text-decoration:none;margin-bottom:.35rem}.settings-nav-item.active,.settings-nav-item:hover{background:var(--panel);color:var(--text)}.settings-content{padding:1.5rem}.settings-module-header h2{margin:0 0 .35rem}.settings-module-header p,.settings-muted{color:var(--muted)}.settings-form,.settings-table-wrap{margin-top:1.25rem;padding:1rem;border:1px solid var(--panel-border);border-radius:12px;background:var(--panel)}.settings-form h3,.settings-table-wrap h3{margin:0 0 1rem}.settings-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.85rem;gap:.85rem}.settings-field{display:grid;grid-gap:.35rem;gap:.35rem}.settings-field span{color:var(--muted);font-size:.9rem}.settings-field input,.settings-field select,.settings-table select{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--panel-border);background:#0b1220;color:var(--text)}.settings-danger-button,.settings-primary-button{border:0;border-radius:8px;padding:.65rem .9rem;font-weight:600;cursor:pointer}.settings-primary-button{margin-top:1rem;background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:#082f49}.settings-danger-button{background:rgba(239,68,68,.15);color:#fecaca;border:1px solid rgba(239,68,68,.35)}.settings-error{margin:1rem 0 0;color:var(--danger)}.settings-success{margin:1rem 0 0;color:var(--success)}.settings-table{width:100%;border-collapse:collapse}.settings-table td,.settings-table th{padding:.75rem .5rem;border-bottom:1px solid var(--panel-border);text-align:left;vertical-align:top}.user-access-panel{margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(2,6,23,.35);max-width:52rem}.user-access-panel h4{margin:0 0 .35rem;font-size:.95rem}.user-access-list{list-style:none;margin:.65rem 0 0;padding:0;display:grid;grid-gap:.45rem;gap:.45rem}.user-access-list li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);grid-gap:.55rem;gap:.55rem;align-items:start;font-size:.9rem;line-height:1.35}.user-access-list .access-allowed{color:#bbf7d0}.user-access-list .access-denied{color:#64748b}.user-access-list .settings-muted{display:block;margin-top:.15rem;font-size:.78rem;font-weight:400;color:#94a3b8}.user-access-summary{margin:.35rem 0 0;font-size:.78rem}.settings-link-button{border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer;font-size:.85rem;text-decoration:underline}.settings-back-row{margin:0 0 .65rem}.settings-success{margin:.75rem 0;padding:.65rem .85rem;border-radius:8px;border:1px solid rgba(74,222,128,.35);background:rgba(22,101,52,.25);color:#bbf7d0}.settings-secondary-link{color:var(--accent);text-decoration:none;font-weight:600}.settings-secondary-link:hover{text-decoration:underline}.role-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 .75rem}.role-tab{min-height:2.4rem;padding:.4rem .85rem;border-radius:999px;border:1px solid var(--panel-border);background:#0f172a;color:var(--text);cursor:pointer}.role-tab.active{border-color:var(--accent);background:rgba(56,189,248,.15)}.role-access-card{max-width:44rem;margin-top:.5rem;padding:1rem 1.1rem 1.15rem;border:1px solid var(--panel-border);border-radius:14px;background:rgba(15,23,42,.92)}.role-access-card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1.25rem;margin-bottom:.85rem;padding-bottom:.85rem;border-bottom:1px solid var(--panel-border)}.role-access-card-header h3{margin:0 0 .3rem;font-size:1.05rem}.role-access-count{margin:0;font-size:.82rem;color:var(--muted);white-space:nowrap}.role-access-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.45rem;gap:.45rem}.role-access-item{display:grid;grid-template-columns:1.35rem minmax(0,1fr);grid-gap:.7rem;gap:.7rem;align-items:start;width:100%;margin:0;padding:.7rem .75rem;border-radius:10px;border:1px solid transparent;cursor:pointer}.role-access-item.is-on{background:rgba(22,101,52,.22);border-color:rgba(74,222,128,.28)}.role-access-item.is-off{background:rgba(2,6,23,.35)}.role-access-item input{margin-top:.2rem;width:1.05rem;height:1.05rem;flex-shrink:0}.role-access-text{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.role-access-title{font-size:.95rem;font-weight:600;line-height:1.35;color:var(--text)}.role-access-item.is-off .role-access-title{color:#94a3b8}.role-access-desc{font-size:.8rem;line-height:1.4;color:var(--muted)}.role-access-lock{font-style:normal;font-weight:500;color:var(--muted);font-size:.82rem}.role-edit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.1rem;margin-top:1rem}.role-edit-actions .settings-primary-button{margin-top:0}@media (max-width:800px){.settings-layout{grid-template-columns:1fr}.settings-nav{border-right:0;border-bottom:1px solid var(--panel-border);display:flex;gap:.35rem;overflow-x:auto}.settings-nav-item{white-space:nowrap;margin-bottom:0}}.construction-shell .header-tabs{flex-wrap:wrap;gap:.35rem}.field-drawing-workspace{display:grid;grid-template-rows:minmax(0,1fr);height:100%;min-height:0;max-height:100%;overflow:hidden;background:#0b1220}.field-drawing-map{position:relative;min-height:0;height:100%;overflow:hidden}.field-drawing-map .leaflet-container,.field-drawing-map .map-stage{position:absolute;inset:0;width:auto!important;height:auto!important}.field-drawing-chrome{position:absolute;top:.65rem;left:.65rem;right:.65rem;z-index:660;display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;pointer-events:none}.field-chrome-button{pointer-events:auto;display:grid;grid-gap:.1rem;gap:.1rem;min-height:3rem;min-width:7.5rem;padding:.55rem .85rem;border-radius:12px;border:1px solid var(--panel-border);background:rgba(15,23,42,.94);color:var(--text);font-size:.95rem;font-weight:700;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 16px rgba(0,0,0,.28)}.field-chrome-button-right{text-align:right;margin-left:auto}.field-chrome-button.active{border-color:var(--accent);background:rgba(56,189,248,.2)}.field-chrome-button-sub{font-size:.72rem;font-weight:500;color:#94a3b8}.field-drawing-hud{position:absolute;top:4.15rem;left:.65rem;right:.65rem;z-index:650;display:flex;flex-direction:column;gap:.45rem;pointer-events:none}.field-draw-tools-list{display:grid;grid-gap:.45rem;gap:.45rem}.field-draw-tool-item{display:grid;grid-gap:.15rem;gap:.15rem;width:100%;min-height:3.35rem;padding:.7rem .85rem;border-radius:12px;border:1px solid var(--panel-border);background:rgba(2,6,23,.45);color:var(--text);text-align:left;touch-action:manipulation}.field-draw-tool-item.active{border-color:var(--accent);background:rgba(56,189,248,.18)}.field-draw-tool-item.danger{border-color:rgba(127,29,29,.8);color:#fca5a5}.field-draw-tool-item:disabled{opacity:.4}.field-draw-tool-label{font-size:1rem;font-weight:700}.field-draw-tool-hint{font-size:.78rem;color:#94a3b8}.field-drawing-hud-top,.field-drawing-prefs{pointer-events:none;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .7rem;border-radius:12px;background:rgba(15,23,42,.92);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.field-drawing-hud-top>*,.field-drawing-prefs>*{pointer-events:auto}.field-drawing-hud-top{justify-content:space-between}.field-options-chip{border:1px solid var(--panel-border);border-radius:999px;background:rgba(15,23,42,.96);color:var(--text);font-size:.78rem;padding:.35rem .7rem;cursor:pointer;touch-action:manipulation}.field-drawing-hint-only{padding:.4rem .65rem}.field-draw-options-card{width:min(22rem,100%);max-height:min(70dvh,520px);padding:0!important;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overscroll-behavior:none}.field-draw-options-card h2{margin:0;padding:.75rem .95rem;font-size:1.05rem;background:#334155;color:#f8fafc;border-bottom:1px solid rgba(148,163,184,.35);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.field-draw-options-fields{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:.65rem .95rem;overflow:auto;background:#0b1220;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0}.field-draw-options-card .field-submit-field{gap:.2rem;margin:.35rem 0;font-size:.82rem}.field-draw-options-card .field-submit-field select{min-height:2.35rem;font-size:.92rem;padding:.35rem .55rem}.field-draw-options-card .field-submit-actions{gap:.45rem;margin:0;padding:.65rem .95rem .85rem;background:#1e293b;border-top:1px solid rgba(148,163,184,.3);flex-shrink:0}.field-draw-options-card .field-touch-button{min-height:2.65rem;font-size:.92rem}body.field-sheet-open{overflow:hidden;overscroll-behavior:none}.field-drawing-prefs label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--muted)}.field-drawing-prefs select{min-height:2.5rem;min-width:9rem;border-radius:10px;border:1px solid var(--panel-border);background:#0f172a;color:var(--text);padding:.35rem .55rem;font-size:1rem}.field-touch-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.45rem;gap:.45rem;padding:.55rem .65rem;background:rgba(15,23,42,.98);border-top:1px solid var(--panel-border);flex-shrink:0}.field-touch-button{min-height:3.25rem;padding:.55rem .4rem;border-radius:12px;border:1px solid var(--panel-border);background:#0f172a;color:var(--text);font-size:.95rem;font-weight:600;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.field-touch-button.active{border-color:var(--accent);background:rgba(56,189,248,.18)}.field-touch-button.primary{border-color:#0ea5e9;background:#0369a1;color:#f8fafc}.field-touch-button.danger{border-color:#7f1d1d;color:#fca5a5}.field-touch-button:disabled{opacity:.4}.field-drawing-layers{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem .9rem;min-width:0;color:var(--muted);font-size:.78rem}.field-drawing-layers label{display:flex;align-items:center;gap:.3rem;white-space:nowrap}.field-drawing-site-picker{display:flex;align-items:center;gap:.35rem}.field-drawing-site-picker .select-input{min-width:9rem;max-width:14rem;padding:.25rem .4rem;font-size:.78rem}.field-drawing-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;padding:.45rem .65rem .55rem;background:rgba(15,23,42,.98);border-top:1px solid var(--panel-border);flex-shrink:0}.field-options-toggle{min-width:8.5rem}.field-options-sheet-backdrop{position:fixed;inset:0;z-index:4800;display:flex;align-items:flex-end;justify-content:center;background:rgba(2,6,23,.55);padding:.75rem;overscroll-behavior:none;touch-action:none}.field-options-sheet{width:min(100%,28rem);max-height:min(78dvh,640px);display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:16px 16px 12px 12px;border:1px solid var(--panel-border);background:#0b1220;box-shadow:0 -8px 32px rgba(0,0,0,.35);overflow:hidden;overscroll-behavior:none;touch-action:manipulation}.field-options-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid rgba(148,163,184,.35);background:#334155;color:#f8fafc;flex-shrink:0;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.field-options-sheet-header h3{margin:0;font-size:1.05rem;color:#f8fafc}.field-options-sheet-header .action-button{background:#0f172a;border-color:#64748b;color:#e2e8f0}.field-options-sheet-body{overflow:auto;padding:.85rem 1rem 1.15rem;display:grid;grid-gap:1rem;gap:1rem;background:#0b1220;overscroll-behavior:contain;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.field-options-section{display:grid;grid-gap:.55rem;gap:.55rem}.field-options-section h4{margin:0;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.field-options-note{margin:0;font-size:.78rem;line-height:1.35;color:#94a3b8}.field-options-check,.field-sheet-field{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:.55rem;gap:.55rem;align-items:center;color:var(--text);font-size:.95rem}.field-sheet-field{grid-template-columns:1fr;gap:.3rem}.field-sheet-field span{color:var(--muted);font-size:.82rem}.field-sheet-create-site .text-input,.field-sheet-field .select-input{width:100%;min-height:2.5rem}.field-sheet-site-block{display:grid;grid-gap:.55rem;gap:.55rem}.field-sheet-create-site{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.45rem;gap:.45rem}.field-drawing-footer .base-map-selector.compact{display:flex;align-items:center;gap:.35rem;margin-left:auto;max-width:11.5rem}.field-drawing-footer .base-map-selector.compact .field-label{margin:0;font-size:.65rem;letter-spacing:.02em;text-transform:uppercase;color:#64748b;white-space:nowrap}.field-drawing-footer .base-map-selector.compact .select-input{width:auto;min-width:6.5rem;max-width:8.5rem;min-height:1.75rem;font-size:.7rem;padding:.15rem .35rem;border-radius:6px}.field-drawing-message{margin:.5rem .75rem;font-size:.9rem}.field-drawing-message.error{color:#fca5a5}.field-drawing-message.success{color:#86efac}.field-submit-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:1rem;background:rgba(2,6,23,.72)}.field-submit-card{width:min(28rem,100%);padding:1.25rem;border-radius:16px;background:#0f172a;border:1px solid var(--panel-border)}.field-submit-card h2{margin:0 0 .5rem}.field-submit-field{display:flex;flex-direction:column;gap:.35rem;margin:1rem 0;color:var(--muted)}.field-submit-field input,.field-submit-field select{min-height:3rem;border-radius:12px;border:1px solid var(--panel-border);background:#020617;color:var(--text);font-size:1.05rem;padding:.5rem .75rem}.field-pull-list{display:flex;flex-direction:column;gap:.55rem;margin-top:.65rem}.field-pull-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.55rem .65rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(2,6,23,.45)}.field-pull-row>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}.field-pull-row em,.field-pull-row span{color:var(--muted);font-size:.78rem;font-style:normal}.field-floating-panels{top:4.35rem;right:.55rem;bottom:auto;left:auto;width:min(17.5rem,calc(100vw - 1.1rem));max-height:min(70dvh,calc(100dvh - 6rem))}.field-floating-panels:empty{display:none}.field-floating-panels .chamber-panel,.field-floating-panels .floating-detail-panel{width:100%;max-height:min(52dvh,380px);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none}.field-floating-panels .chamber-panel-header{padding:.5rem .65rem;gap:.4rem;background:#334155;border-bottom:1px solid rgba(148,163,184,.35);flex-shrink:0;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.field-floating-panels .chamber-panel-header strong{font-size:.9rem;color:#f8fafc}.field-floating-panels .chamber-panel-header span{font-size:.72rem;color:#cbd5e1}.field-floating-panels .chamber-panel-body{padding:.5rem .65rem .65rem;gap:.45rem;background:#0b1220;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0;flex:1 1 auto}.field-floating-panels .panel-block{margin:0;padding:0}.field-floating-panels .field-label{margin-top:.15rem;font-size:.72rem}.field-floating-panels .select-input,.field-floating-panels .text-input{min-height:2.15rem;font-size:.85rem;padding:.3rem .45rem}.field-floating-panels textarea.text-input{min-height:2.75rem;max-height:4.5rem}.field-floating-panels .action-button,.field-floating-panels .action-button.danger{min-height:2.25rem;font-size:.85rem;padding:.35rem .55rem}.action-button.danger{border-color:#7f1d1d;color:#fecaca;background:rgba(127,29,29,.35)}.field-submit-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:.55rem;gap:.55rem}.shared-sites-panel{max-width:none}.shared-sites-view{display:grid;grid-template-columns:minmax(16rem,22rem) minmax(0,1fr);grid-gap:.75rem;gap:.75rem;height:calc(100dvh - 4.5rem);min-height:20rem}.shared-sites-map{position:relative;min-height:0;border:1px solid var(--panel-border);border-radius:12px;overflow:hidden}.shared-sites-map .map-stage{height:100%}.shared-sites-map-header{position:absolute;top:.65rem;left:.65rem;right:.65rem;z-index:650;display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.5rem .7rem;border-radius:12px;background:rgba(15,23,42,.92);border:1px solid var(--panel-border)}@media (max-width:900px){.shared-sites-view{grid-template-columns:1fr;grid-template-rows:auto minmax(18rem,1fr);height:auto}.field-touch-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (pointer:coarse){.header-tab{padding:.55rem .9rem;font-size:1rem}.header-tab,.map-tool-button{min-height:2.75rem}.field-touch-button{min-height:3.5rem;font-size:1.05rem}}.infra-editor-backdrop{z-index:3200;align-items:stretch;padding:1.25rem}.infra-editor-modal{display:flex;flex-direction:column;width:min(98vw,1280px);height:min(94vh,900px);border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);overflow:hidden}.infra-editor-footer,.infra-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.9rem 1.15rem;border-bottom:1px solid var(--panel-border)}.infra-editor-footer{border-bottom:0;border-top:1px solid var(--panel-border);align-items:center;justify-content:flex-end}.infra-editor-header h2{margin:0;display:flex;align-items:center;gap:.55rem;font-size:1.15rem}.infra-editor-badge{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:rgba(14,165,233,.18);color:#7dd3fc}.infra-editor-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;padding:.65rem 1.15rem;border-bottom:1px solid var(--panel-border)}.infra-editor-body{flex:1 1;min-height:0;overflow:auto;padding:1rem 1.15rem 1.25rem}.infra-editor-error{margin:0;padding:.55rem 1.15rem;color:#fecaca;background:rgba(220,38,38,.18);border-bottom:1px solid rgba(248,113,113,.35)}.infra-editor-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.2fr);grid-gap:1rem;gap:1rem}.infra-editor-grid.racks-grid{grid-template-columns:260px minmax(0,1fr);min-height:100%}.infra-rack-sidebar{display:flex;flex-direction:column;gap:.55rem}.infra-fs-rack,.infra-rack-pick{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.65rem .75rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(15,23,42,.45);color:inherit;text-align:left;cursor:pointer}.infra-rack-pick.active{border-color:#38bdf8;box-shadow:inset 0 0 0 1px rgba(56,189,248,.35)}.infra-fs-rack{cursor:default;gap:.45rem}.infra-fs-rack-name{display:grid;grid-gap:.25rem;gap:.25rem;width:100%;font-size:.78rem;color:#94a3b8}.infra-chassis-splitter{display:grid;grid-gap:.5rem;gap:.5rem;padding:.35rem 0 .65rem;border-top:1px solid rgba(148,163,184,.15)}.infra-rack-stage{display:flex;flex-direction:column;gap:.75rem;min-height:420px}.infra-rack-stage-header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.infra-rack-visual{display:grid;flex:1 1;min-height:360px;border:1px solid var(--panel-border);border-radius:12px;overflow:hidden;background:linear-gradient(180deg,rgba(15,23,42,.2),rgba(2,6,23,.55)),repeating-linear-gradient(90deg,rgba(148,163,184,.08),rgba(148,163,184,.08) 10px,transparent 0,transparent 20px)}.infra-rack-u{display:grid;grid-template-columns:44px 1fr;align-items:center;grid-gap:.4rem;gap:.4rem;padding:0 .45rem;border-bottom:1px solid rgba(148,163,184,.12);font-size:.72rem}.infra-rack-u.occupied{background:rgba(56,189,248,.08)}.infra-rack-u.kind-olt{background:rgba(168,85,247,.22)}.infra-rack-u.kind-switch{background:rgba(34,197,94,.2)}.infra-rack-u.kind-patch_panel{background:rgba(59,130,246,.22)}.infra-rack-u.kind-splice_tray{background:rgba(245,158,11,.22)}.infra-rack-u.kind-splitter,.infra-rack-u.kind-splitter_chassis{background:rgba(236,72,153,.2)}.infra-rack-u-label{color:#94a3b8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.infra-rack-equip-label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.infra-rack-u.clickable{cursor:pointer}.infra-rack-u.clickable:hover{filter:brightness(1.15);outline:1px solid rgba(125,211,252,.45)}.infra-rack-u.selected-equip{outline:1px solid #38bdf8;box-shadow:inset 0 0 0 1px rgba(56,189,248,.35)}.infra-equip-edit-card{width:min(100%,520px);max-height:88vh;overflow:auto}.infra-equip-list-btn{display:flex;width:100%;text-align:left;background:transparent;border:0;color:inherit;cursor:pointer;padding:0}.infra-equip-list-btn:hover .material-label{color:#7dd3fc}.infra-fibre-legend{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin:.35rem 0 .65rem;font-size:.75rem;color:#94a3b8}.infra-fibre-legend span{display:inline-flex;align-items:center;gap:.35rem}.infra-fibre-swatch{display:inline-block;width:.85rem;height:.85rem;border-radius:4px;border:1px solid var(--panel-border);background:rgba(15,23,42,.55)}.infra-fibre-swatch.free{border-color:rgba(148,163,184,.45);background:rgba(51,65,85,.55)}.infra-fibre-swatch.terminated{border-color:rgba(245,158,11,.65);background:rgba(245,158,11,.35)}.infra-fibre-swatch.dest-olt,.infra-fibre-swatch.patched{border-color:rgba(56,189,248,.7);background:rgba(56,189,248,.35)}.infra-fibre-swatch.dest-splitter{border-color:rgba(34,197,94,.7);background:rgba(34,197,94,.35)}.infra-fibre-swatch.dest-switch{border-color:rgba(251,146,60,.7);background:rgba(251,146,60,.35)}.infra-fibre-swatch.dest-patch{border-color:rgba(244,114,182,.7);background:rgba(244,114,182,.35)}.infra-fibre-swatch.dest-tray{border-color:rgba(250,204,21,.7);background:rgba(250,204,21,.35)}.infra-fibre-grid{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 .75rem}.infra-fibre-chip{min-width:2.4rem;padding:.35rem .45rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.55);color:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.infra-fibre-chip.free{border-color:rgba(148,163,184,.4);background:rgba(51,65,85,.45);color:#cbd5e1}.infra-fibre-chip.terminated{border-color:rgba(245,158,11,.7);background:rgba(245,158,11,.28);color:#fde68a}.infra-fibre-chip.dest-olt,.infra-fibre-chip.patched{border-color:rgba(56,189,248,.8);background:rgba(56,189,248,.28);color:#bae6fd}.infra-fibre-chip.dest-splitter{border-color:rgba(34,197,94,.8);background:rgba(34,197,94,.28);color:#bbf7d0}.infra-fibre-chip.dest-switch{border-color:rgba(251,146,60,.8);background:rgba(251,146,60,.28);color:#fed7aa}.infra-fibre-chip.dest-patch{border-color:rgba(244,114,182,.8);background:rgba(244,114,182,.28);color:#fbcfe8}.infra-fibre-chip.dest-tray{border-color:rgba(250,204,21,.8);background:rgba(250,204,21,.28);color:#fef08a}.infra-fibre-chip.dest-cable{border-color:rgba(167,139,250,.8);background:rgba(167,139,250,.28);color:#ddd6fe}.infra-fibre-chip.selected{outline:2px solid #38bdf8;box-shadow:0 0 0 2px rgba(56,189,248,.35)}.infra-fibre-path{display:grid;grid-gap:.25rem;gap:.25rem;margin:0;font-size:.82rem;color:#cbd5e1}.infra-fibre-path p{margin:0}.infra-fibre-path strong{color:#e2e8f0}.infra-fibre-connect-box{display:grid;grid-gap:.55rem;gap:.55rem;padding:.75rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(2,6,23,.35)}.infra-fibre-connect-box h3{margin:0;font-size:.95rem}.infra-stat-list,.infra-trace-list{margin:0;padding-left:1.1rem;display:grid;grid-gap:.35rem;gap:.35rem}.infra-submodal{z-index:3300}.checkbox-row{display:flex;align-items:center;gap:.5rem}@media (max-width:900px){.infra-editor-grid,.infra-editor-grid.racks-grid{grid-template-columns:1fr}}.site-photos-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);background:#0b1220}.site-photos-map,.site-photos-workspace{height:100%;min-height:0;overflow:hidden}.site-photos-map{position:relative;min-width:0}.site-photos-map .leaflet-container,.site-photos-map .map-stage{position:absolute;inset:0;width:auto!important;height:auto!important}.site-photos-map-hud{position:absolute;top:.65rem;left:.65rem;right:.65rem;z-index:650;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;pointer-events:none}.site-photos-map-hud>*{pointer-events:auto}.site-photos-sidebar{min-height:0;overflow:auto;overscroll-behavior:contain;border-left:1px solid var(--panel-border);background:rgba(15,23,42,.92)}.site-photos-panel{display:grid;grid-gap:.75rem;gap:.75rem;padding:.85rem}.site-photos-day-count{font-weight:500;color:#94a3b8;font-size:.85em}.site-photos-group{display:grid;grid-gap:.45rem;gap:.45rem;margin-top:.55rem}.site-photos-group h4{margin:0;font-size:.82rem;color:#cbd5e1}.site-photos-grid{display:grid;grid-gap:.55rem;gap:.55rem}.site-photo-card{display:grid;grid-gap:.35rem;gap:.35rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(2,6,23,.4)}.site-photo-card.selected{border-color:#38bdf8;box-shadow:0 0 0 1px rgba(56,189,248,.35)}.site-photo-card.needs-place{border-color:rgba(245,158,11,.55)}.site-photo-thumb{display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:8px;overflow:hidden;background:rgba(51,65,85,.55);color:#94a3b8;cursor:pointer}.site-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.site-photo-thumb{position:relative}.site-photo-thumb-badge{position:absolute;left:.35rem;bottom:.35rem;padding:.12rem .35rem;border-radius:4px;background:rgba(15,23,42,.82);color:#fde68a;font-size:.65rem;font-weight:600}.site-photo-card-meta{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.75rem;color:#94a3b8}.site-photo-lightbox{position:fixed;inset:0;z-index:5000;display:grid;grid-template-rows:1fr auto;align-items:stretch;justify-items:center;grid-gap:.65rem;gap:.65rem;padding:.5rem .5rem 1rem;background:rgba(2,6,23,.94)}.site-photo-lightbox-stage{width:100%;height:100%;min-height:0;display:grid;place-items:center}.site-photo-lightbox img{max-width:100vw;max-height:calc(100vh - 5.5rem);max-height:calc(100dvh - 5.5rem);width:auto;height:auto;border-radius:0}.site-photo-lightbox-status{margin:0;color:#e2e8f0;font-size:1rem}.site-photo-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:3rem;height:3.5rem;border:0;border-radius:.5rem;background:rgba(15,23,42,.72);color:#f8fafc;font-size:2.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}.site-photo-lightbox-nav:focus-visible,.site-photo-lightbox-nav:hover{background:rgba(30,41,59,.92);outline:2px solid #38bdf8}.site-photo-lightbox-nav.prev{left:.4rem}.site-photo-lightbox-nav.next{right:.4rem}.site-photo-lightbox-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem;width:100%;padding:0 3.5rem}.site-photo-lightbox-meta{color:#cbd5e1;font-size:.9rem;margin-right:.35rem}.site-photo-lightbox-delete{min-height:2.75rem;min-width:8.5rem;font-size:1rem}@media (max-width:700px){.site-photo-lightbox-nav{width:2.6rem;height:3rem;font-size:1.9rem}.site-photo-lightbox-actions{padding:0 .5rem}}.site-photo-pin{width:100%;height:100%;display:grid;place-items:center;border-radius:999px;border:2px solid #0f172a;background:var(--pin-color,#22c55e);color:#0f172a;font-weight:800;font-size:.72rem;box-shadow:0 2px 8px rgba(0,0,0,.35)}.site-photo-pin.selected{outline:2px solid #38bdf8;outline-offset:1px}@media (max-width:900px){.site-photos-workspace{grid-template-columns:1fr;grid-template-rows:minmax(240px,45vh) minmax(0,1fr);grid-template-rows:minmax(240px,45dvh) minmax(0,1fr)}.site-photos-sidebar{border-left:0;border-top:1px solid var(--panel-border)}}.otdr-test-panel .panel-block-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.otdr-test-panel .panel-block-header-row h2{margin:0}.otdr-net-distance{display:grid;grid-gap:.2rem;gap:.2rem;padding:.55rem .7rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.35)}.otdr-net-distance small{color:var(--muted)}.otdr-fault-list{margin-top:1rem}.otdr-fault-list ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.otdr-fault-list li{display:grid;grid-template-columns:1fr auto;grid-gap:.45rem;gap:.45rem;align-items:start}.otdr-fault-item{display:grid;grid-gap:.15rem;gap:.15rem;text-align:left;padding:.55rem .65rem;border:1px solid var(--panel-border);border-radius:8px;background:rgba(15,23,42,.4);color:inherit;cursor:pointer}.otdr-fault-item.selected{border-color:#facc15;box-shadow:0 0 0 1px rgba(250,204,21,.35)}.otdr-fault-item span{color:var(--muted);font-size:.82rem}.otdr-fault-note{color:#e2e8f0!important}.floating-panel-stack .otdr-test-panel{background:#0f172a;color:#e2e8f0}.floating-panel-stack .otdr-test-panel .field-label,.floating-panel-stack .otdr-test-panel .panel-block h2,.floating-panel-stack .otdr-test-panel .panel-block p,.floating-panel-stack .otdr-test-panel .section-copy{color:#cbd5e1}.floating-panel-stack .otdr-test-panel .field-label{display:grid;grid-gap:.35rem;gap:.35rem}.floating-panel-stack .otdr-test-panel .otdr-net-distance{background:#1e293b;border-color:#334155;color:#f8fafc}.floating-panel-stack .otdr-test-panel .otdr-net-distance small{color:#94a3b8}.floating-panel-stack .otdr-test-panel .otdr-fault-item{background:#1e293b;border-color:#334155;color:#f8fafc}.floating-panel-stack .otdr-test-panel .otdr-fault-item span{color:#94a3b8}.map-text-label-wrap,.map-text-label-wrap.leaflet-marker-icon{background:transparent!important;border:none!important;pointer-events:none!important}.map-text-label{display:inline-block;transform:translate(12px,-6px);max-width:180px;padding:.12rem .35rem;border-radius:3px;border:1px solid rgba(15,23,42,.35);background:rgba(255,255,255,.94);color:#0f172a;font-size:11px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px rgba(15,23,42,.18);pointer-events:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.map-text-label-cable{transform:translate(-50%,6px);font-weight:700}.map-text-label-duct{transform:translate(-50%,4px);font-size:10px;font-weight:600;color:#1e293b;background:rgba(248,250,252,.92)}.map-text-label-fibre{transform:translate(12px,14px);font-size:12px;font-weight:800;letter-spacing:.02em;color:#422006;background:#fde68a;border-color:#ca8a04}.map-text-label.emphasized{border-color:#ca8a04;background:#fef08a;color:#422006;box-shadow:0 0 0 1px rgba(250,204,21,.45)}.fibre-path-endpoint-wrap,.fibre-path-endpoint-wrap.leaflet-marker-icon{background:transparent!important;border:none!important}.fibre-path-endpoint{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;border:3px solid #fff;box-shadow:0 2px 10px rgba(15,23,42,.45);color:#fff;font-size:.85rem;font-weight:800;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fibre-path-endpoint:active{cursor:-webkit-grabbing;cursor:grabbing}.fibre-manager-panel{width:min(100%,380px);max-height:min(88vh,720px)}.fibre-manager-body{display:flex;flex-direction:column;gap:.75rem}.fibre-manager-points{display:flex;flex-direction:column;gap:.65rem}.fibre-manager-point{display:grid;grid-template-columns:28px 1fr;grid-gap:.55rem;gap:.55rem;align-items:start}.fibre-manager-az{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;font-size:.78rem;font-weight:800;color:#fff}.fibre-manager-a{background:#0ea5e9}.fibre-manager-z{background:#2563eb}.fibre-manager-hops{margin:0;padding:0;list-style:none}.fibre-manager-hops>li{margin:0 0 .35rem}.fibre-manager-hop-node{font-weight:700;font-size:.88rem}.fibre-manager-hop-cable{display:flex;justify-content:space-between;gap:.5rem;margin:.2rem 0 .45rem .65rem;padding:.35rem .5rem;border-left:3px solid #4ade80;background:rgba(74,222,128,.08);border-radius:0 6px 6px 0;font-size:.78rem}.fibre-manager-sld{display:flex;flex-direction:column;margin:.15rem 0 .35rem;padding:.35rem .25rem .15rem .1rem;border:1px solid var(--panel-border);border-radius:10px;background:color-mix(in srgb,var(--panel) 88%,#000 12%)}.fibre-manager-sld-row{display:grid;grid-template-columns:22px minmax(0,1fr);grid-gap:.55rem;gap:.55rem;min-height:1.6rem}.fibre-manager-sld-rail{position:relative;display:flex;flex-direction:column;align-items:center}.fibre-manager-sld-node{z-index:1;display:grid;place-items:center;width:18px;height:18px;border-radius:999px;border:2px solid #94a3b8;background:#0f172a;color:#e2e8f0;font-size:.58rem;font-weight:800;line-height:1}.fibre-manager-sld-node.start{border-color:#0ea5e9;background:#0ea5e9;color:#fff}.fibre-manager-sld-node.end{border-color:#2563eb;background:#2563eb;color:#fff}.fibre-manager-sld-span{flex:1 1 auto;width:3px;min-height:28px;margin:2px 0;border-radius:2px;opacity:.95;-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 10px,transparent 10px 16px);mask-image:repeating-linear-gradient(180deg,#000 0 10px,transparent 10px 16px)}.fibre-manager-sld-content{min-width:0;padding-bottom:.45rem}.fibre-manager-sld-site{font-weight:700;font-size:.86rem;line-height:1.2;padding-top:.1rem}.fibre-manager-sld-cable{display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-gap:.4rem;gap:.4rem;align-items:center;margin-top:.35rem;margin-bottom:.15rem;padding:.3rem .45rem;border-radius:6px;background:rgba(148,163,184,.1);font-size:.74rem}.fibre-manager-sld-swatch{width:10px;height:10px;border-radius:2px}.fibre-manager-sld-cable-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.fibre-manager-sld-cable-meta{color:var(--muted);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fibre-manager-total{margin-top:.35rem}.fibre-manager-hop-count{color:var(--muted)}.fibre-manager-count{color:var(--muted);font-weight:500;font-size:.85rem}.fibre-manager-strands{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));grid-gap:.35rem;gap:.35rem;max-height:220px;overflow:auto}.fibre-manager-strand{display:grid;grid-template-columns:14px 1fr auto;grid-gap:.25rem;gap:.25rem;align-items:center;padding:.25rem .35rem;border-radius:6px;border:1px solid var(--panel-border);font-size:.72rem}.fibre-manager-strand.available{border-color:rgba(34,197,94,.55);background:rgba(34,197,94,.12)}.fibre-manager-strand.unavailable{opacity:.55}.fibre-manager-strand-status{color:var(--muted);font-weight:700}.fibre-manager-actions{display:flex;gap:.5rem;margin-top:.25rem}.fibre-manager-actions .action-button{flex:1 1}.map-text-label-erf{transform:translate(-50%,-50%);max-width:72px;padding:0 .22rem;font-size:10px;font-weight:800;letter-spacing:.01em;color:#e0f7ff;background:rgba(8,47,73,.78);border-color:rgba(115,223,255,.55);box-shadow:none}.gis-import-list-panel{position:absolute;inset:0;z-index:1200;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:#0b1220;color:#e2e8f0}.map-workspace:has(.gis-import-list-panel) .map-zoom-buttons{display:none}.gis-import-list-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.85rem;padding:.95rem 1.1rem;border-bottom:1px solid rgba(148,163,184,.2);background:rgba(15,23,42,.98)}.gis-import-list-kicker{margin:0;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#7dd3fc}.gis-import-list-header h2{margin:.15rem 0 .2rem;font-size:1.25rem;color:#f8fafc}.gis-import-list-file{margin:0;max-width:min(520px,70vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:#94a3b8}.gis-import-list-header-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.gis-import-list-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.7rem 1.1rem;border-bottom:1px solid rgba(148,163,184,.14);background:#111827}.gis-import-list-table-wrap{min-height:0;overflow:auto}.gis-import-list-table{width:100%;border-collapse:collapse;font-size:.86rem}.gis-import-list-table td,.gis-import-list-table th{padding:.55rem .7rem;border-bottom:1px solid rgba(148,163,184,.14);text-align:left;vertical-align:middle}.gis-import-list-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:#111827;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.gis-import-list-table tbody tr.gis-import-list-row{cursor:pointer}.gis-import-list-table tbody tr:hover{background:rgba(56,189,248,.05)}.gis-import-list-row-focus{outline:1px solid rgba(56,189,248,.55);background:rgba(56,189,248,.1)}.gis-import-list-row-auto td{box-shadow:inset 3px 0 0 #22c55e}.gis-import-list-row-unmatched{background:rgba(245,158,11,.14)}.gis-import-list-row-unmatched td{box-shadow:inset 3px 0 0 #f59e0b}.gis-import-list-col-num{width:5.2rem;color:#94a3b8}.gis-import-list-num-cell{display:flex;align-items:center;gap:.35rem}.gis-import-list-map-btn{padding:.15rem .4rem;font-size:.68rem;letter-spacing:.02em;text-transform:uppercase}.gis-import-list-material-cell{display:grid;grid-gap:.28rem;gap:.28rem}.gis-import-list-unmatched-tag{display:inline-block;width:-moz-fit-content;width:fit-content;padding:.08rem .4rem;border-radius:999px;background:rgba(245,158,11,.22);color:#fde68a;font-size:.68rem;font-weight:700}.gis-import-list-unmatched-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;padding:.7rem 1.1rem;border-bottom:1px solid rgba(245,158,11,.35);background:rgba(120,53,15,.45);color:#fde68a}.gis-import-review-dock{background:rgba(15,23,42,.96);box-shadow:0 18px 44px rgba(0,0,0,.42)}.material-lock-note{margin:0 0 .75rem;padding:.55rem .7rem;border-radius:8px;border:1px solid rgba(245,158,11,.4);background:rgba(120,53,15,.4);color:#fde68a;font-size:.8rem;line-height:1.35}.material-category-chip:disabled{opacity:.45;cursor:not-allowed}.map-stage.analysis-polygon-draw .leaflet-container.polygon-draw-no-pan{cursor:crosshair}.map-stage.analysis-polygon-draw .leaflet-container.polygon-draw-space-pan{cursor:-webkit-grab;cursor:grab}.field-label:has(input[type=checkbox]){display:flex;align-items:center;gap:.45rem;text-transform:none;letter-spacing:0;font-weight:500}.map-symbol-wrap.leaflet-marker-draggable{touch-action:none;cursor:-webkit-grab;cursor:grab}.map-symbol-wrap.leaflet-marker-draggable:active{cursor:-webkit-grabbing;cursor:grabbing}.polygon-edit-bulk-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.85rem;padding:.7rem 1.1rem;border-bottom:1px solid rgba(148,163,184,.2);background:rgba(15,23,42,.96);color:#e2e8f0}.polygon-edit-bulk-bar .select-input{min-width:220px}.gis-import-list-toolbar .select-input{min-width:12rem}.polygon-edit-col-check{width:2.2rem;text-align:center}.polygon-edit-col-check input{width:1rem;height:1rem;cursor:pointer}.gis-import-list-table tbody tr.polygon-edit-row-selected{background:rgba(56,189,248,.16)}.gis-import-list-table tbody tr.polygon-edit-row-selected:hover{background:rgba(56,189,248,.22)}.gis-import-list-table tbody tr.polygon-edit-row-changed{background:rgba(34,197,94,.16)}.gis-import-list-table tbody tr.polygon-edit-row-selected.polygon-edit-row-changed{background:rgba(34,197,94,.2)}.gis-import-list-table tbody tr.polygon-edit-row-selected.polygon-edit-row-changed:hover{background:rgba(34,197,94,.28)}.gis-import-list-table tbody tr.polygon-edit-row-changed:hover{background:rgba(34,197,94,.24)}.polygon-edit-row-changed td{box-shadow:inset 4px 0 0 #22c55e}.polygon-edit-field-changed{border-color:#22c55e!important;background:rgba(34,197,94,.22)!important;color:#ecfdf5}.polygon-edit-type-cell{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.polygon-edit-changed-tag{display:inline-flex;align-items:center;padding:.08rem .4rem;border-radius:999px;background:rgba(34,197,94,.22);color:#86efac;font-size:.68rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.map-data-panel{width:min(100%,420px);max-height:min(78vh,720px);max-height:min(78dvh,720px)}.map-data-panel .chamber-panel-body{min-height:0;flex:1 1 auto}.map-data-create-row{display:flex;align-items:stretch;gap:.45rem}.map-data-create-row .text-input{flex:1 1 auto;min-width:0}.map-data-create-row .action-button{flex:0 0 auto;min-height:2.4rem;padding:.4rem .7rem;white-space:nowrap}.map-data-project-list{display:flex;flex-direction:column;gap:.5rem;max-height:min(46vh,380px);overflow:auto;padding:.1rem .15rem .15rem 0}.map-data-project-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:.55rem;gap:.55rem;min-height:3.4rem;padding:.55rem .6rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a}.map-data-project-card.selected{border-color:var(--accent);background:rgba(56,189,248,.1)}.map-data-project-select{display:flex;flex-direction:column;align-items:flex-start;gap:.22rem;min-width:0;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.map-data-project-title{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;line-height:1.3;word-break:break-word}.map-data-project-badge{display:inline-flex;align-items:center;padding:.08rem .42rem;border-radius:999px;background:rgba(56,189,248,.22);color:#7dd3fc;font-size:.62rem;font-style:normal;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.map-data-project-meta{display:block;color:var(--muted);font-size:.75rem;line-height:1.35}.map-data-project-delete{min-height:2rem;padding:.28rem .6rem;font-size:.75rem}.map-data-footer-actions{display:flex;flex-direction:column;gap:.45rem;margin-top:.15rem}.map-data-footer-actions .action-button{width:100%}.asset-row-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem}.asset-row-copy strong{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;line-height:1.3}.active-project-badge{display:inline-flex;font-style:normal;color:#7dd3fc}.active-project-badge,.map-mode-button-undo{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.map-mode-button-undo{width:auto;min-width:44px;height:auto;padding:.3rem .4rem .28rem;display:flex;flex-direction:column;gap:.05rem}.map-mode-button:disabled{opacity:.35;cursor:not-allowed}.undo-action-button:disabled{opacity:.4;cursor:not-allowed}.map-draw-toolbar .undo-action-button{min-height:2.1rem;padding:.28rem .8rem;border-radius:999px;font-size:.78rem;font-weight:700}.chamber-panel-header-actions .undo-action-button,.gis-import-list-header-actions .undo-action-button{min-height:2.2rem;padding:.35rem .7rem}.gis-io-actions{display:flex;flex-direction:column;gap:.85rem;margin:.85rem 0 .35rem}.gis-io-action-group{display:flex;flex-direction:column;gap:.4rem;padding:.75rem .8rem;border:1px solid #334155;border-radius:12px;background:#111827}.gis-io-action-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.network-gis-import-panel .file-input-button.gis-io-button,.network-gis-import-panel .gis-io-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.7rem 1.1rem;border-width:2px;border-style:solid;border-radius:12px;font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.25)}.network-gis-import-panel .gis-io-button-import{width:100%;border-color:#22c55e;background:rgba(34,197,94,.18);color:#dcfce7}.network-gis-import-panel .gis-io-button-import:hover{border-color:#4ade80;background:rgba(34,197,94,.28)}.network-gis-import-panel .gis-io-button-export{border-color:#38bdf8;background:rgba(56,189,248,.16);color:#e0f2fe}.network-gis-import-panel .gis-io-button-export:hover{border-color:#7dd3fc;background:rgba(56,189,248,.28)}.network-gis-import-panel .gis-export-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:0}.network-gis-import-panel .file-input-button.disabled,.network-gis-import-panel .gis-export-actions .action-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.gis-import-area-block{margin:.35rem 0 .25rem;padding:.75rem .8rem;border:1px solid #334155;border-radius:12px;background:#111827}.gis-import-area-status{margin:.15rem 0 .45rem}.gis-import-review-dock{position:absolute;left:50%;bottom:.85rem;z-index:950;width:min(560px,calc(100% - 1.5rem));transform:translateX(-50%);padding:0;overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(15,23,42,.94));box-shadow:0 18px 44px rgba(0,0,0,.42),0 0 0 1px rgba(56,189,248,.08);color:#e2e8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gis-import-review-progress{height:3px;background:rgba(148,163,184,.18)}.gis-import-review-progress>span{display:block;height:100%;background:linear-gradient(90deg,#38bdf8,#7dd3fc);transition:width .2s ease}.gis-import-review-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem .95rem .6rem;border-bottom:1px solid rgba(148,163,184,.14)}.gis-import-review-heading{min-width:0}.gis-import-review-kicker{margin:0;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#7dd3fc}.gis-import-review-top h3{margin:.12rem 0 .15rem;font-size:1.05rem;font-weight:650;color:#f8fafc}.gis-import-review-file{margin:0;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;color:#94a3b8}.gis-import-review-stats{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.4rem;font-size:.76rem;color:#cbd5e1}.gis-import-review-pill{display:inline-flex;align-items:center;padding:.22rem .5rem;border-radius:999px;background:rgba(51,65,85,.7);color:#cbd5e1;white-space:nowrap}.gis-import-review-pill.ok{background:rgba(34,197,94,.16);color:#86efac}.gis-import-review-main{display:grid;grid-gap:.65rem;gap:.65rem;padding:.75rem .95rem .9rem;max-height:min(38vh,360px);overflow:auto}.gis-import-review-done-copy{margin:0;font-size:.9rem;color:#cbd5e1}.gis-import-review-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.4rem;gap:.4rem}.gis-import-review-meta>div{display:grid;grid-gap:.12rem;gap:.12rem;min-width:0;padding:.42rem .5rem;border-radius:10px;background:rgba(30,41,59,.9)}.gis-import-review-meta span{font-size:.66rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.gis-import-review-meta strong{font-size:.82rem;font-weight:600;color:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gis-import-review-source{padding:.45rem .55rem;border-radius:10px;background:rgba(56,189,248,.07);border:1px solid rgba(56,189,248,.18)}.gis-import-review-source>summary{cursor:pointer;list-style:none;font-size:.76rem;color:#7dd3fc;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gis-import-review-source>summary::-webkit-details-marker{display:none}.gis-import-review-source[open]>summary{margin-bottom:.4rem}.gis-import-review-source dl{margin:0;display:grid;grid-gap:.3rem;gap:.3rem}.gis-import-review-source dl>div{display:grid;grid-template-columns:minmax(90px,34%) 1fr;grid-gap:.35rem;gap:.35rem;font-size:.78rem}.gis-import-review-source dt{margin:0;color:#94a3b8}.gis-import-review-source dd{margin:0;color:#f1f5f9;overflow-wrap:anywhere}.gis-import-review-fields{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:.55rem;gap:.55rem}.gis-import-review-fields label{display:grid;grid-gap:.28rem;gap:.28rem;font-size:.76rem;color:#cbd5e1}.gis-import-review-name-row{display:flex;flex-wrap:wrap;gap:.35rem}.gis-import-review-name-row .text-input{flex:1 1 120px;min-width:0}.gis-import-review-actions{display:grid;grid-template-columns:1.2fr .7fr 1.3fr;grid-gap:.4rem;gap:.4rem}.gis-import-review-actions .action-button{width:100%;justify-content:center;white-space:nowrap}.gis-import-review-actions .action-button.ghost{background:transparent;border-color:rgba(148,163,184,.35);color:#cbd5e1}.gis-import-review-unmatched{margin:0;padding:.45rem .55rem;border-radius:8px;background:rgba(120,53,15,.55);color:#fde68a;font-size:.8rem}.gis-review-label-wrap{background:transparent!important;border:none!important}.gis-review-label{display:inline-block;transform:translateX(-50%);padding:.2rem .45rem;border-radius:999px;background:#0f172a;border:1px solid #38bdf8;color:#f8fafc;font-size:.72rem;font-weight:700;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.35)}.gis-review-halo{pointer-events:none;animation:gis-review-pulse 1.4s ease-out infinite}@keyframes gis-review-pulse{0%{opacity:.9}70%{opacity:.25}to{opacity:.9}}@media (max-width:720px){.gis-import-review-dock{left:.4rem;right:.4rem;bottom:.4rem;width:auto;transform:none}.gis-import-review-actions,.gis-import-review-fields,.gis-import-review-meta,.gis-import-review-source dl>div{grid-template-columns:1fr}}.gis-import-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.gis-import-page-header>div{min-width:0;flex:1 1 16rem}.gis-import-undo-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:.35rem 0 .85rem;padding:.7rem .8rem;border:1px solid rgba(239,68,68,.4);border-radius:12px;background:rgba(127,29,29,.28)}.gis-import-undo-banner strong{display:block;font-size:.86rem;color:#fecaca}.gis-import-undo-banner .section-copy{margin-top:.15rem;color:#fca5a5}html.layout-compact,html.layout-compact body{overscroll-behavior:none;-webkit-text-size-adjust:100%}.layout-compact .app-header{flex-wrap:wrap;gap:.4rem .55rem;padding:.4rem .55rem .45rem}.layout-compact .brand{flex:1 1 8rem;min-width:0}.layout-compact .brand>strong{font-size:.95rem}.layout-compact .header-project-chip{max-width:100%}.layout-compact .header-project-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-compact .header-meta.compact-meta{gap:.45rem;min-width:0}.layout-compact .header-meta.compact-meta>span{display:none}.layout-compact .base-map-selector.inline{min-width:0}.layout-compact .base-map-selector.inline .field-label{display:none}.layout-compact .base-map-selector.inline .select-input{min-width:6.5rem}.layout-compact .header-tabs{order:3;flex:1 0 100%;gap:.3rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.layout-compact .header-tabs::-webkit-scrollbar{display:none}.layout-compact .header-tab{flex:0 0 auto;white-space:nowrap}.layout-short .app-header{padding-top:.3rem;padding-bottom:.3rem}.layout-short .brand>span{display:none}.layout-tight .app-header{flex-wrap:nowrap;align-items:center;gap:.3rem .45rem;padding:.18rem .45rem}.layout-tight .brand>strong,.layout-tight .header-project-kicker{display:none}.layout-tight .header-project-chip{padding:.15rem .45rem}.layout-tight .header-project-name{font-size:.82rem}.layout-tight .header-tabs{order:0;flex:1 1 auto;min-width:0}.layout-tight .header-tab{min-height:28px;padding:.18rem .5rem;font-size:.78rem}.layout-tight .header-meta.compact-meta{gap:.3rem}.layout-tight .base-map-selector.inline .select-input{min-width:5.5rem;min-height:28px;padding:.15rem .35rem;font-size:.75rem}.layout-tight .header-user-actions{gap:.25rem}.layout-tight .logout-button,.layout-tight .settings-button{min-height:28px;padding:.15rem .45rem;font-size:.75rem}.header-fullscreen-button{min-width:36px;min-height:36px;margin:0;padding:0;display:grid;place-items:center}.header-fullscreen-button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.layout-tight .header-fullscreen-button{min-width:30px;min-height:30px}.layout-tight .map-tool-rail{top:.3rem;left:.3rem;padding:.2rem}.layout-tight .map-mode-rail{top:.3rem;right:.3rem;padding:.2rem}.layout-tight .map-tool-icon-button{width:34px;height:34px}.layout-compact .content-panel{max-width:none;padding:.75rem .7rem 1.5rem}.layout-compact .import-export-sections{max-width:none;padding:0 .7rem 1.5rem}.layout-medium .content-panel{max-width:none}.layout-compact .map-tool-rail{top:.45rem;left:.45rem;right:6.6rem;flex-direction:row;width:auto;min-width:0;gap:.3rem;padding:.3rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.layout-compact .map-tool-rail::-webkit-scrollbar{display:none}.layout-compact .map-tool-rail-icons{flex-direction:row}.layout-compact .map-tool-icon-button{flex:0 0 auto;width:40px;height:40px}.layout-compact .map-mode-rail{top:.45rem;right:.45rem;flex-direction:row;gap:.25rem;padding:.25rem}.layout-compact .map-draw-toolbar{top:3.55rem;bottom:auto;left:max(.45rem,env(safe-area-inset-left,0px));right:max(.45rem,env(safe-area-inset-right,0px));transform:none;max-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:.25rem;padding:.3rem .35rem;border-radius:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;z-index:1200}.layout-compact .map-draw-toolbar::-webkit-scrollbar{display:none}.layout-compact .map-draw-tool-button,.layout-compact .map-draw-toolbar .undo-action-button{flex:0 0 auto;min-height:40px}.layout-compact .floating-panel-stack:not(.field-floating-panels){top:auto;bottom:3.85rem;left:max(.45rem,env(safe-area-inset-left,0px));right:max(.45rem,env(safe-area-inset-right,0px));width:auto;max-width:none;max-height:min(58dvh,calc(100dvh - 11rem));gap:.4rem}.layout-compact .floating-panel-stack:not(.field-floating-panels) .analysis-panel,.layout-compact .floating-panel-stack:not(.field-floating-panels) .chamber-panel,.layout-compact .floating-panel-stack:not(.field-floating-panels) .floating-detail-panel,.layout-compact .floating-panel-stack:not(.field-floating-panels) .map-data-panel,.layout-compact .floating-panel-stack:not(.field-floating-panels) .street-view-panel{width:100%;max-height:min(58dvh,calc(100dvh - 11rem))}.layout-short .floating-panel-stack:not(.field-floating-panels),.layout-short .floating-panel-stack:not(.field-floating-panels) .chamber-panel,.layout-short .floating-panel-stack:not(.field-floating-panels) .floating-detail-panel{max-height:min(72dvh,calc(100dvh - 7.5rem))}.map-detail-sheet{display:contents}.map-detail-sheet.is-hidden>.chamber-panel{display:none}.map-move-button{border-color:rgba(56,189,248,.5);background:rgba(56,189,248,.08)}.map-move-banner{position:absolute;left:50%;bottom:4rem;transform:translateX(-50%);z-index:660;display:flex;align-items:center;gap:.75rem;max-width:min(92vw,30rem);padding:.45rem .5rem .45rem .9rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(15,23,42,.96);box-shadow:0 10px 30px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-move-banner-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.map-move-banner strong{font-size:.85rem}.map-move-banner span{color:var(--muted);font-size:.76rem}.map-move-banner .action-button{flex-shrink:0;min-height:2.3rem;padding:.35rem .9rem}.layout-compact .map-move-banner{left:max(.45rem,env(safe-area-inset-left,0px));right:max(.45rem,env(safe-area-inset-right,0px));bottom:4.2rem;transform:none;max-width:none;border-radius:14px}.layout-touch .map-move-banner .action-button{min-height:2.9rem}.layout-compact .map-workspace:has(.map-detail-sheet:not(.is-hidden) .chamber-panel,.floating-panel-stack:not(.floating-panel-stack-left) .floating-edit-panel) .floating-panel-stack-left{display:none}.layout-compact .field-floating-panels{left:max(.45rem,env(safe-area-inset-left,0px));right:max(.45rem,env(safe-area-inset-right,0px));width:auto}.layout-medium .floating-panel-stack-left{width:min(340px,calc(100vw - 6.5rem))}.layout-compact .map-legend,.layout-compact .map-workspace .map-legend{display:none}.layout-compact .map-view-only-badge{top:3.7rem;bottom:auto;font-size:.72rem}.layout-compact .map-zoom-buttons{top:3.9rem;bottom:auto;left:max(.45rem,env(safe-area-inset-left,0px))}.layout-compact .map-workspace:has(.map-draw-toolbar) .map-zoom-buttons{top:6.7rem}.layout-compact .map-workspace:has(.floating-panel-stack .floating-edit-panel) .map-zoom-buttons,.layout-compact .map-workspace:has(.floating-panel-stack-left .chamber-panel) .map-zoom-buttons,.layout-compact .map-workspace:has(.map-detail-sheet:not(.is-hidden) .chamber-panel) .map-zoom-buttons{display:none}.layout-compact .gis-import-review-dock{left:max(.45rem,env(safe-area-inset-left,0px));right:max(.45rem,env(safe-area-inset-right,0px));bottom:3.9rem;width:auto;transform:none}.layout-compact .gis-import-list-header,.layout-compact .gis-import-list-toolbar{padding:.6rem .7rem}.layout-compact .modal-backdrop{padding:.6rem;place-items:end stretch}.layout-compact .modal-card{width:100%;max-width:none;max-height:88dvh;padding:.9rem}.layout-compact .modal-actions{flex-wrap:wrap}.layout-compact .loading-state,.layout-compact .login-page{min-height:100dvh}.layout-compact .login-page{padding:1rem .85rem}.layout-compact .login-card{padding:1.15rem}.layout-touch .action-button,.layout-touch .tool-button{min-height:46px}.layout-touch .icon-button{min-width:44px;min-height:44px}.layout-touch .select-input,.layout-touch .text-input,.layout-touch textarea.text-input{font-size:16px}.layout-touch .base-map-selector.inline .select-input,.layout-touch .gis-import-list-map-btn,.layout-touch .map-draw-toolbar .undo-action-button{font-size:.85rem}.layout-touch .checkbox-row,.layout-touch .field-label:has(input[type=checkbox]),.layout-touch .layer-toggle{min-height:2.5rem}.layout-touch input[type=checkbox],.layout-touch input[type=radio]{width:1.15rem;height:1.15rem}.layout-compact .network-asset-sheet-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.layout-compact .gis-import-list-table,.layout-compact .network-asset-sheet-table{min-width:44rem}.choice-chip-list{display:flex;flex-wrap:wrap;gap:.35rem;max-height:min(40vh,12.5rem);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.1rem}.layout-compact .choice-chip-list,.layout-touch .choice-chip-list{max-height:min(46vh,22rem)}.asset-material-select{display:flex;flex-direction:column;gap:.4rem}.material-choice-list{display:flex;flex-direction:column;gap:.15rem;max-height:min(42vh,18rem);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.2rem;border:1px solid var(--panel-border);border-radius:10px;background:#0b1220}.layout-compact .material-choice-list,.layout-touch .material-choice-list{max-height:min(36vh,16rem)}.asset-material-native-select{min-height:44px;font-size:16px}.material-choice-group{display:flex;flex-direction:column;gap:.15rem}.material-choice-group-label{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding:.35rem .45rem .2rem;background:#0b1220;color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.material-choice-row{display:flex;align-items:center;gap:.55rem;width:100%;min-height:2.55rem;padding:.35rem .55rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.material-choice-row:focus-visible,.material-choice-row:hover{background:rgba(148,163,184,.1)}.material-choice-row.active{border-color:var(--accent);background:rgba(56,189,248,.16)}.material-choice-row.is-current{color:var(--muted)}.material-choice-label{min-width:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-touch .material-choice-row{min-height:2.85rem}.choice-chip{flex:0 0 auto;min-height:2.4rem;padding:.3rem .7rem;border:1px solid var(--panel-border);border-radius:999px;background:#0f172a;color:var(--text);cursor:pointer;font-size:.85rem}.choice-chip.active{border-color:var(--accent);background:rgba(56,189,248,.16)}.layout-touch .choice-chip{min-height:2.75rem;font-size:.95rem}.map-google-error{position:absolute;left:50%;top:4.5rem;z-index:700;transform:translateX(-50%);max-width:min(32rem,calc(100% - 2rem));padding:.55rem .85rem;border:1px solid var(--panel-border);border-radius:10px;background:rgba(15,23,42,.94);color:var(--text);font-size:.82rem;text-align:center;pointer-events:none}.material-photo-thumb{width:2.1rem;height:2.1rem;border-radius:6px;object-fit:cover;border:1px solid var(--panel-border);flex-shrink:0;background:#0f172a}.material-photo-preview-row{display:flex;align-items:flex-end;gap:.65rem}.material-photo-preview{width:12rem;height:12rem;object-fit:cover;background:#0f172a}.chamber-material-photo,.material-photo-preview{border-radius:10px;border:1px solid var(--panel-border)}.chamber-material-photo{width:100%;max-height:22rem;object-fit:contain;background:#0b1220}.chamber-photo-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.chamber-camera-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.5rem 1rem;border:1px solid #16a34a;border-radius:8px;background:#22c55e;color:#052e16;font-weight:600;cursor:pointer}.chamber-camera-button:focus-within,.chamber-camera-button:hover{background:#16a34a}.layout-touch .chamber-camera-button{min-height:3rem}.chamber-camera-button input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.chamber-photo-quality-hint{margin-left:.35rem;color:var(--muted);font-size:.75rem}.chamber-photo-preview-meta{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.chamber-photo-open{position:relative;display:block;width:min(100%,28rem);padding:0;border:0;background:transparent;cursor:zoom-in;text-align:left}.chamber-photo-open .chamber-material-photo{display:block;width:100%}.chamber-photo-open-hint{position:absolute;left:.45rem;bottom:.45rem;padding:.15rem .45rem;border-radius:999px;background:rgba(15,23,42,.82);color:#e2e8f0;font-size:.72rem;font-weight:700;pointer-events:none}.point-photo-lightbox .site-photo-lightbox-stage{width:min(96vw,1400px);height:min(82dvh,900px);display:grid;place-items:center}.point-photo-lightbox .site-photo-lightbox-stage img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;border-radius:8px}.material-label-block{display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;min-width:0;flex:1 1}.material-label{font-weight:650;line-height:1.25}.material-meta{color:var(--muted);font-size:.82rem;line-height:1.25}.form-stack>.field-options-check{display:flex;align-items:center;gap:.5rem;margin-top:.35rem;font-weight:600}.material-editor-backdrop{position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;padding:max(.6rem,env(safe-area-inset-top)) .75rem max(.6rem,env(safe-area-inset-bottom));background:rgba(2,8,23,.72);overflow:hidden}.material-editor-backdrop .material-editor-modal,.material-editor-backdrop .material-editor-screen{width:min(44rem,calc(100vw - 1.2rem));max-height:min(88dvh,42rem);margin:0;display:flex;flex-direction:column;overflow:hidden;background:#0f172a;border:1px solid #334155;border-radius:16px;box-shadow:0 28px 70px rgba(0,0,0,.5)}.material-editor-backdrop .material-editor-header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;justify-content:space-between;gap:.75rem;flex:0 0 auto;padding:.95rem 1.1rem .8rem;border-bottom:1px solid #1e293b}.material-editor-heading{min-width:0}.material-editor-backdrop .material-editor-kicker{margin:0;color:#7dd3fc;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.material-editor-backdrop .material-editor-header h2{margin:.18rem 0 0;font-size:1.2rem;font-weight:750;line-height:1.2}.material-editor-close{flex:0 0 auto;width:2.25rem;height:2.25rem;margin-left:auto}.material-editor-backdrop .material-editor-body{flex:1 1 auto;min-height:0;overflow:auto;padding:.9rem 1.1rem 1rem;-webkit-overflow-scrolling:touch}.material-editor-backdrop .material-lock-note{margin:0 0 .85rem;padding:.45rem .7rem;border-radius:8px;border:1px solid rgba(56,189,248,.28);background:rgba(14,116,144,.18);color:#bae6fd;font-size:.78rem;line-height:1.35}.material-editor-backdrop .material-editor-identity{margin-bottom:.85rem}.material-editor-backdrop .material-editor-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(12.5rem,.8fr);grid-gap:1rem 1.15rem;gap:1rem 1.15rem;align-items:start}.material-editor-backdrop .material-editor-column h3{margin:0 0 .55rem;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.material-editor-triad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.65rem;gap:.65rem}.material-editor-meta-row{display:grid;grid-template-columns:minmax(8rem,.7fr) minmax(0,1.3fr);grid-gap:.65rem;gap:.65rem;margin-top:.7rem}.material-toggle-card{display:flex;align-items:flex-start;gap:.7rem;margin-top:.15rem;padding:.7rem .8rem;border:1px solid #334155;border-radius:10px;background:#0b1220}.material-toggle-card input{margin-top:.2rem;width:1.05rem;height:1.05rem;flex:0 0 auto}.material-toggle-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0}.material-toggle-copy strong{font-size:.92rem}.material-toggle-copy span{color:#94a3b8;font-size:.78rem;line-height:1.35}.material-editor-backdrop .material-editor-preview-card{display:flex;flex-direction:column;gap:.45rem;padding:.85rem;border:1px solid #334155;border-radius:12px;background:#0b1220}.material-editor-backdrop .material-editor-footer{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;gap:.55rem;flex:0 0 auto;padding:.75rem 1.1rem .9rem;border-top:1px solid #1e293b;background:#111827}.layout-compact .material-editor-backdrop .material-editor-modal,.layout-compact .material-editor-backdrop .material-editor-screen,.layout-touch .material-editor-backdrop .material-editor-modal,.layout-touch .material-editor-backdrop .material-editor-screen{width:min(42rem,calc(100vw - .9rem));max-height:calc(100dvh - 1.1rem)}@media (max-width:720px){.material-editor-backdrop .material-editor-grid,.material-editor-meta-row,.material-editor-triad{grid-template-columns:1fr}}.material-reorder{display:flex;align-items:center;gap:.15rem;flex:0 0 auto}.material-drag-handle{touch-action:none;cursor:-webkit-grab;cursor:grab;min-width:2.4rem;min-height:2.6rem;padding:0;border:1px solid var(--panel-border);border-radius:8px;background:#0f172a;color:var(--muted);font-size:1rem;line-height:1}.material-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.material-reorder-buttons{display:flex;flex-direction:column;gap:.12rem}.material-reorder-step{min-width:2.1rem;min-height:1.35rem;padding:0;border:1px solid var(--panel-border);border-radius:6px;background:#0f172a;color:var(--text);font-size:.65rem;line-height:1}.material-reorder-step:disabled{opacity:.35}.material-row.drop-target{outline:2px solid var(--accent)}.layout-compact .material-editor-backdrop .material-editor-screen,.layout-touch .material-editor-backdrop .material-editor-screen{width:min(40rem,calc(100vw - .75rem));max-height:calc(100dvh - 1.25rem)}.app-shell>.fibre-builder-shell,.app-shell>.field-drawing-workspace,.fibre-builder-shell{min-height:0;height:100%;overflow:hidden}.fibre-builder-shell>.map-workspace{flex:1 1 auto;min-height:0;height:auto}.layout-compact .fibre-builder-subnav{flex-shrink:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.layout-compact .fibre-builder-subnav::-webkit-scrollbar{display:none}.layout-compact .map-draw-toolbar,html.layout-portrait.layout-touch .map-draw-toolbar{z-index:1200}.layout-compact .field-drawing-chrome,html.layout-portrait.layout-touch .field-drawing-chrome{z-index:1200;top:max(.45rem,env(safe-area-inset-top,0px))}.tablet-chrome-trigger{display:none}.layout-compact .app-header{flex-wrap:nowrap;align-items:center;gap:.35rem .45rem;padding:.28rem .45rem}.layout-compact .brand,.layout-compact .header-meta .base-map-selector,.layout-compact .header-meta>span,.layout-compact .header-project-chip,.layout-compact .header-tabs,.layout-compact .header-user-actions{display:none!important}.layout-compact .tablet-chrome-trigger{display:flex;flex:1 1 auto;align-items:center;gap:.55rem;min-width:0;min-height:2.6rem;padding:.25rem .7rem .25rem .55rem;border:1px solid var(--panel-border);border-radius:10px;background:#0f172a;color:var(--text);text-align:left;touch-action:manipulation}.layout-compact .tablet-chrome-trigger.open{border-color:var(--accent)}.tablet-chrome-trigger-icon{flex:0 0 auto;font-size:1.15rem;line-height:1;color:#94a3b8}.tablet-chrome-trigger-copy{display:grid;min-width:0;grid-gap:.02rem;gap:.02rem}.tablet-chrome-trigger-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}.tablet-chrome-trigger-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a3b8;font-size:.72rem;font-weight:500}.layout-compact .header-meta.compact-meta{margin-left:0;flex:0 0 auto;gap:.3rem}.layout-compact .fibre-builder-subnav,.layout-compact .map-workspace .map-hint{display:none}.layout-compact .floating-panel-stack:not(.field-floating-panels){bottom:max(.5rem,env(safe-area-inset-bottom,0px))}.tablet-chrome-overlay{position:fixed;inset:0;z-index:5200;display:flex;flex-direction:column;justify-content:flex-start}.tablet-chrome-backdrop{position:absolute;inset:0;border:0;background:rgba(2,6,23,.55)}.tablet-chrome-panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(28rem,calc(100vw - .7rem));max-height:min(82dvh,40rem);margin:.4rem auto 0;border:1px solid var(--panel-border);border-radius:14px;background:#0b1220;box-shadow:0 16px 40px rgba(0,0,0,.45);overflow:hidden}.tablet-chrome-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;background:#1e293b;border-bottom:1px solid rgba(148,163,184,.28)}.tablet-chrome-panel-head h2{margin:0;font-size:1.05rem}.tablet-chrome-panel-body{overflow:auto;padding:.75rem .85rem 1rem;-webkit-overflow-scrolling:touch}.tablet-chrome-section+.tablet-chrome-section{margin-top:.95rem;padding-top:.85rem;border-top:1px solid rgba(51,65,85,.9)}.tablet-chrome-kicker{margin:0 0 .4rem;color:#94a3b8;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.tablet-chrome-row{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;min-height:2.8rem;padding:.5rem .7rem;border:1px solid var(--panel-border);border-radius:10px;background:#111827;color:var(--text);text-align:left;font-weight:700}.tablet-chrome-row span{color:#94a3b8;font-size:.75rem;font-weight:500}.tablet-chrome-choices{display:flex;flex-wrap:wrap;gap:.4rem}.tablet-chrome-choice{min-height:2.45rem;padding:.4rem .75rem;border:1px solid var(--panel-border);border-radius:999px;background:#111827;color:var(--text);font-weight:600}.tablet-chrome-choice.active{border-color:var(--accent);background:rgba(56,189,248,.16);color:#e0f2fe}.tablet-chrome-account .header-user-actions{display:flex;flex-wrap:wrap;gap:.45rem}.tablet-chrome-account .logout-button,.tablet-chrome-account .settings-button{min-height:2.45rem}.map-draw-palette{position:absolute;right:max(.55rem,env(safe-area-inset-right,0px));bottom:max(.55rem,calc(env(safe-area-inset-bottom, 0px) + .4rem));z-index:1200;display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;pointer-events:none}.map-draw-palette>*{pointer-events:auto}.map-draw-palette-card{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem;width:min(19.5rem,calc(100vw - 1.4rem));padding:.45rem;border:1px solid var(--panel-border);border-radius:14px;background:rgba(15,23,42,.96);box-shadow:0 10px 28px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-draw-palette-card .map-draw-tool-button{justify-content:flex-start;min-height:2.7rem;padding:.4rem .55rem;border-radius:10px;border:1px solid transparent;color:#e2e8f0}.map-draw-palette-card .map-draw-tool-button.active{border-color:rgba(56,189,248,.45);background:rgba(56,189,248,.16);color:#e0f2fe}.map-draw-palette-fab{display:flex;align-items:center;gap:.45rem;min-height:3rem;padding:.4rem .85rem .4rem .55rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(15,23,42,.96);color:#f8fafc;font-weight:700;box-shadow:0 8px 22px rgba(0,0,0,.38);touch-action:manipulation}.map-draw-palette-fab.active{border-color:var(--accent);background:#0c4a6e}.map-draw-palette-fab-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(15,23,42,.55);font-size:1rem}.map-draw-palette-fab-label{font-size:.92rem}html.layout-compact .leaflet-container .map-zoom-buttons,html.layout-compact .map-zoom-buttons{top:3.9rem;bottom:auto!important}html.layout-compact .map-workspace:has(.map-draw-toolbar) .map-zoom-buttons{top:6.7rem}.field-draw-materials-note{margin:0 0 .55rem;color:#94a3b8;font-size:.78rem;line-height:1.35}.field-draw-options-card{max-height:min(82dvh,640px)}.field-type-list{display:grid;grid-gap:.4rem;gap:.4rem;max-height:min(42dvh,22rem);overflow:auto;padding:.15rem 0 .25rem;-webkit-overflow-scrolling:touch}.field-type-option{display:grid;grid-gap:.12rem;gap:.12rem;width:100%;min-height:2.85rem;padding:.55rem .7rem;border:1px solid var(--panel-border);border-radius:10px;background:#0b1220;color:var(--text);text-align:left;touch-action:manipulation}.field-type-option strong{font-size:.95rem}.field-type-option span{color:#94a3b8;font-size:.75rem}.field-type-option.active{border-color:var(--accent);background:rgba(56,189,248,.16)}.plan-new-page-setup{margin:.35rem 0 .75rem}.plan-section-item .base-map-selector{grid-column:1/-1}.plan-section-item .base-map-selector .field-label{margin-bottom:.2rem}.plan-layout-transform{transform-origin:0 0;zoom:normal}.plan-inset-map-stack,.plan-sheet-map{position:relative}.plan-inset-map-stack{width:100%;height:100%}.plan-sheet-google-wrap{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}.plan-sheet-google-frame{border:0;display:block;width:100%;height:100%;pointer-events:none}.plan-inset-map-stack>.leaflet-container,.plan-sheet-map>.leaflet-container{position:relative;z-index:1;background:transparent!important}.plan-sheet-overlays{z-index:2}.plan-layout-surface.is-pdf-export{overflow:visible}[data-plan-pdf-clone]{color-scheme:light;background:#ffffff;color:#0f172a}.site-photos-unplaced{border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.08);border-radius:12px}.site-photo-card.is-next-place{outline:2px solid var(--accent);outline-offset:2px}.site-photo-card.is-next-place .site-photo-thumb-badge{background:var(--accent);color:#0b1220}.site-photo-manager{position:fixed;inset:0;z-index:4500;display:grid;place-items:center;padding:max(.6rem,env(safe-area-inset-top)) .75rem max(.6rem,env(safe-area-inset-bottom));background:rgba(2,8,23,.78)}.site-photo-manager-panel{display:flex;flex-direction:column;width:min(96vw,1200px);height:min(92dvh,900px);overflow:hidden;border:1px solid #334155;border-radius:16px;background:#0f172a;box-shadow:0 28px 70px rgba(0,0,0,.55)}.site-photo-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex:0 0 auto;padding:1rem 1.1rem .85rem;border-bottom:1px solid #1e293b}.site-photo-manager-header h2{margin:0 0 .25rem}.site-photo-manager-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;flex:0 0 auto;padding:.7rem 1.1rem;border-bottom:1px solid #1e293b;background:#0f172a}.site-photo-select-all{display:inline-flex;align-items:center;gap:.45rem;min-height:2.4rem;padding:.25rem .55rem .25rem .35rem;border:1px solid var(--panel-border);border-radius:8px;background:#111827;color:var(--text);font-weight:650;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.site-photo-select-all input{width:1.15rem;height:1.15rem;accent-color:#0ea5e9;cursor:pointer}.site-photo-manager-tabs{border-bottom:1px solid #1e293b}.site-photo-manager-filter{min-width:10rem}.site-photo-manager-error{margin:0 1.1rem .5rem}.site-photo-manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem;flex:1 1 auto;min-height:0;overflow:auto;padding:.85rem 1.1rem 1.1rem}.site-photo-manager-card{position:relative;display:grid;grid-gap:.4rem;gap:.4rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:12px;background:rgba(2,6,23,.45)}.site-photo-manager-card.checked{border-color:#38bdf8;box-shadow:0 0 0 1px rgba(56,189,248,.4)}.site-photo-manager-preview{display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;border-radius:8px;overflow:hidden;background:#0b1220;cursor:zoom-in}.site-photo-manager-preview img{width:100%;height:100%;object-fit:cover;display:block}.site-photo-manager-card-meta{display:grid;grid-gap:.15rem;gap:.15rem;min-width:0;font-size:.78rem;color:#94a3b8}.site-photo-manager-card-meta strong{color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-photo-check{position:absolute;top:.65rem;left:.65rem;z-index:1;width:1.7rem;height:1.7rem;display:grid;place-items:center;border:1px solid #64748b;border-radius:6px;background:rgba(15,23,42,.88);color:#f8fafc;font-weight:700;cursor:pointer}.site-photo-check.on{border-color:#38bdf8;background:#0369a1}.site-photo-manager-days{color:#fde68a}.site-photo-lightbox-stage{width:min(96vw,1600px);height:min(88dvh,920px)}.site-photo-lightbox img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}@media (max-width:700px){.site-photo-manager-panel{width:100%;height:100%;border-radius:0}.site-photo-manager-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.map-zoom-buttons-extra{display:flex;flex-direction:column;gap:inherit}.map-zoom-buttons-extra:empty{display:none}.map-locate-button{color:#93c5fd}.map-locate-button.is-active{color:#38bdf8}.map-locate-button.is-error{color:#f87171}.map-locate-button:disabled{opacity:.55}.device-location-marker{background:transparent;border:none}.device-location-dot{border-radius:50%;background:#2563eb;border:2.5px solid #fff;box-shadow:0 0 0 1px rgba(15,23,42,.35),0 1px 4px rgba(15,23,42,.45)}.device-location-dot,.device-location-pulse{position:absolute;top:50%;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px}.device-location-pulse{border-radius:50%;background:rgba(59,130,246,.35);animation:device-location-pulse 2.2s ease-out infinite}.device-location-heading{position:absolute;top:50%;left:50%;width:0;height:0;margin:-16px 0 0 -6px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #2563eb;transform-origin:6px 16px;filter:drop-shadow(0 0 1px #fff)}@keyframes device-location-pulse{0%{transform:scale(1);opacity:.55}to{transform:scale(3.2);opacity:0}}.analysis-layer-group{display:flex;flex-direction:column;gap:.15rem}.analysis-material-count{margin-left:.4rem;color:var(--muted);font-size:.78rem}.analysis-material-subs{display:flex;flex-direction:column;gap:.12rem;max-height:11.5rem;overflow:auto;margin:.1rem 0 .55rem 1.15rem;padding:.15rem .2rem .2rem 0}.analysis-material-subs .layer-toggle.nested{font-size:.86rem;color:#cbd5e1}.materials-filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0 .15rem}.materials-list-pane .panel-block .materials-filter-bar+.action-button,.materials-list-pane .panel-block .materials-filter-bar+.gis-export-actions{margin-top:.65rem}