: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;min-height:0}.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-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:.75rem;z-index:600;display:flex;flex-direction:column;gap:.5rem;width:min(320px,calc(100vw - 180px));max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overflow:auto;overscroll-behavior:contain}.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:1rem}.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{position:relative;width:100%;height:100%;min-height:0}.map-hint{bottom:3.4rem;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;left:50%;z-index:500;transform:translateX(-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.erven-status{bottom:.75rem;display:flex;align-items:center;gap:.65rem;max-width:min(92vw,420px);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}.line-midpoint-handle,.line-vertex-handle{background:transparent!important;border:none!important}.line-vertex-handle-dot{display:block;width:14px;height:14px;border-radius:50%;background:#ffffff;border:2px solid #1d4ed8;box-shadow:0 1px 3px rgba(0,0,0,.45);cursor:-webkit-grab;cursor:grab}.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:10px;height:10px;margin:1px;border-radius:50%;background:#ffffff;border:2px solid #64748b;box-shadow:0 1px 2px rgba(0,0,0,.3);cursor:-webkit-grab;cursor:grab;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-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:200px;max-width:280px;color:#0f172a}.asset-pick-popup strong{display:block;font-size:.9rem}.asset-pick-popup>p{margin:.25rem 0 .55rem;color:#64748b;font-size:.75rem}.asset-pick-popup ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.asset-pick-popup li button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.4rem .5rem;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;cursor:pointer;text-align:left}.asset-pick-popup li button:hover{border-color:#38bdf8;background:#e0f2fe}.asset-pick-popup li button span{color:#64748b;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}.asset-pick-popup li button strong{font-size:.85rem}.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{z-index:3000}.splice-modal{display:flex;flex-direction:column;width:min(96vw,1100px);max-height:92vh;border:1px solid var(--panel-border);border-radius:14px;background:var(--panel);overflow:hidden}.splice-modal-card{width:min(96vw,480px)}.splice-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--panel-border)}.splice-header h2{margin:0 0 .35rem;font-size:1.05rem}.splice-cable-pickers{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:.75rem;gap:.75rem;align-items:end;padding:.85rem 1.25rem;border-bottom:1px solid var(--panel-border)}.splice-picker{display:flex;flex-direction:column;gap:.35rem}.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:.75rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--panel-border)}.splice-canvas{position:relative;display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr);grid-gap:3.5rem;gap:3.5rem;min-height:360px;max-height:58vh;padding:.75rem .5rem;overflow:auto;border:1px solid var(--panel-border);border-radius:10px;background:#f8fafc}.splice-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.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{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(220px,280px);grid-gap:.75rem;gap:.75rem;min-height:0;flex:1 1;padding:.65rem 1rem}.splice-splitter-panel{display:flex;flex-direction:column;gap:.65rem;min-height:0;max-height:58vh;overflow:auto;padding:.75rem;border:1px solid var(--panel-border);border-radius:10px;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;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:.85rem 1.25rem;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)}.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:.35rem;gap:.35rem}.user-access-list li{display:grid;grid-template-columns:1.1rem minmax(0,1fr);grid-gap:.45rem;gap:.45rem;align-items:start;font-size:.88rem}.user-access-list .access-allowed{color:#bbf7d0}.user-access-list .access-denied{color:#64748b}.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}.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-edit-list li label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:.45rem;gap:.45rem;align-items:center;cursor:pointer}.role-edit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1rem}@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) auto auto;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-hud{position:absolute;top:.65rem;left:.65rem;right:.65rem;z-index:650;display:flex;flex-direction:column;gap:.45rem;pointer-events:none}.field-drawing-hud-top,.field-drawing-prefs{pointer-events:auto;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{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(26rem,100%)}.field-draw-options-fields{display:flex;flex-direction:column;gap:.35rem;margin:.85rem 0 1rem}.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;justify-content:space-between;gap:.5rem .75rem;padding:.4rem .65rem .55rem;background:rgba(15,23,42,.98);border-top:1px solid var(--panel-border);flex-shrink:0}.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.5rem}.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-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;place-content:center;grid-gap:.75rem;gap:.75rem;padding:1.5rem;background:rgba(2,6,23,.88)}.site-photo-lightbox img{max-width:min(92vw,960px);max-height:78vh;max-height:78dvh;object-fit:contain;border-radius:10px}.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)}}