@import"https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght@400";@import"./workspace-tokens.css?v=20260520";@import"./workspace-primitives.css?v=20260520e";@import"./workspace-layouts.css?v=20260520";.workspace-page .panel-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-button-size);min-width:var(--icon-button-size);height:var(--icon-button-size);min-height:var(--icon-button-size);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--ws-control-text);box-shadow:var(--shadow-panel);line-height:1}.workspace-page .panel-icon-btn:hover:not(:disabled),.workspace-page .panel-icon-btn:focus-visible{border-color:var(--color-primary);background:var(--ws-control-hover-bg);color:var(--color-primary)}.workspace-page .panel-icon-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.workspace-page .panel-icon-btn--add,.workspace-page .panel-icon-btn-add{border-color:var(--ui-btn-success-border, #86efac);background:var(--ui-btn-success-bg, #f0fdf4);color:var(--ui-btn-success-text, #15803d)}.workspace-page .panel-icon-btn--danger{border-color:var(--ui-btn-danger-border, #d79a9a);background:var(--ui-btn-danger-bg, #fff3f3);color:var(--ui-btn-danger-text, #9f2525)}.workspace-page .panel-icon-btn .material-symbols-outlined{color:currentColor;font-size:var(--ui-icon-size, 18px);pointer-events:none}.workspace-page .app-layout button,.workspace-page .app-layout select,.workspace-page .app-layout input:not([type=checkbox]):not([type=radio]){font-family:"Source Sans 3",Source Sans Pro,Segoe UI,Arial,sans-serif;font-size:12px}.workspace-page .app-layout button{min-height:34px;height:34px;line-height:1.1;font-weight:400;padding:0 12px;display:inline-flex;align-items:center;justify-content:center}.workspace-page .app-layout select,.workspace-page .app-layout input:not([type=checkbox]):not([type=radio]){min-height:34px;height:34px;line-height:1.1;padding-top:0;padding-bottom:0}.workspace-page .app-layout textarea{font-family:"Source Sans 3",Source Sans Pro,Segoe UI,Arial,sans-serif;font-size:12px}.workspace-page .workspace-inline-control,.workspace-page .workspace-checkbox-row{display:flex;align-items:center;gap:8px}.workspace-page .workspace-inline-control input[type=checkbox],.workspace-page .workspace-inline-control input[type=radio],.workspace-page .workspace-checkbox-row input[type=checkbox],.workspace-page .workspace-checkbox-row input[type=radio]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;flex:0 0 16px;float:none;width:16px;height:16px;min-height:16px;margin:0;opacity:1;position:static;z-index:auto}.workspace-page .app-layout select{padding-right:34px!important;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.25L10 12.25l5-5' fill='none' stroke='rgba(17,24,39,0.78)' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 8px center!important;background-size:16px 16px!important}.workspace-page .app-layout select.primary-highlight{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.25L10 12.25l5-5' fill='none' stroke='rgba(255,255,255,0.98)' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.workspace-page .app-layout .btn-sm{min-height:34px;height:34px;padding:0 12px}.workspace-page .app-layout .maplibregl-ctrl-group{border:1px solid #c9c9c9!important;border-radius:6px!important;overflow:hidden;box-shadow:0 1px 3px #0003;background:#fff}.workspace-page .app-layout .maplibregl-ctrl-group button{display:block;width:var(--ui-icon-button-size);height:var(--ui-icon-button-size);min-height:0;line-height:1;padding:0;border:0;border-radius:0;box-shadow:none;background:#fff;color:var(--ui-icon-color)!important}.workspace-page .app-layout .maplibregl-ctrl-group button+button{border-top:1px solid #c9c9c9}.workspace-page .app-layout .maplibregl-ctrl-group button:hover{background:#eef5ff;color:var(--ui-icon-hover-color)!important}.workspace-page .app-layout .maplibregl-ctrl button .maplibregl-ctrl-icon{display:block;width:100%;height:100%}.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:none!important;display:grid;place-items:center}.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon:before,.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon:before{font-size:var(--ui-icon-size);font-weight:var(--ui-icon-weight);line-height:1;color:var(--ui-icon-color)}.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon:before{content:"+"}.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon:before{content:"−"}.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-in:hover .maplibregl-ctrl-icon:before,.workspace-page .app-layout .maplibregl-ctrl button.maplibregl-ctrl-zoom-out:hover .maplibregl-ctrl-icon:before{color:var(--ui-icon-hover-color)}.workspace-page .app-layout .profile-control-btn,.workspace-page .app-layout .profile-mini-toggle,.workspace-page .app-layout .profile-copy-btn{min-height:var(--ui-icon-button-size);height:var(--ui-icon-button-size);padding:0;display:grid;place-items:center}.workspace-page .app-layout .profile-zoom-controls .profile-control-btn-lg{font-size:var(--ui-icon-size)!important;font-weight:500!important;line-height:1!important}:root{--primary-color: #003399;--panel-border: rgba(0, 0, 0, .2);--panel-bg: #ffffff;--panel-muted-bg: #f8f9fb;--error-color: #b3261e;--ui-icon-size: 18px;--ui-icon-weight: 500;--ui-icon-color: #28466e;--ui-icon-hover-color: #1f56c8;--ui-icon-button-size: 32px;--workflow-switch-width: 236px;--ui-frame-border: #cfe0ff;--ui-frame-bg: #f7faff;--ui-frame-radius: 10px;--ui-btn-border: #cfd8e6;--ui-btn-bg: #ffffff;--ui-btn-text: #28466e;--ui-btn-hover-border: #1f56c8;--ui-btn-hover-bg: #eef5ff;--ui-btn-hover-text: #1f56c8;--ui-btn-active-border: #1b49a8;--ui-btn-active-bg: #e6efff;--ui-btn-disabled-border: #d9e1ec;--ui-btn-disabled-bg: #f3f6fa;--ui-btn-disabled-text: #9aa5b3;--ui-btn-primary-border: #1f56c8;--ui-btn-primary-bg: #1f56c8;--ui-btn-primary-hover-border: #194aaf;--ui-btn-primary-hover-bg: #194aaf;--ui-btn-danger-border: #d79a9a;--ui-btn-danger-bg: #fff3f3;--ui-btn-danger-text: #9f2525;--ui-btn-danger-hover-border: #c87f7f;--ui-btn-danger-hover-bg: #ffecec;--ui-btn-danger-hover-text: #8b1e1e;--ui-btn-success-border: #86efac;--ui-btn-success-bg: #f0fdf4;--ui-btn-success-text: #15803d;--ui-btn-success-hover-border: #4ade80;--ui-btn-success-hover-bg: #dcfce7;--ui-btn-success-hover-text: #166534}html,body{height:100%;margin:0;padding:0;font-family:"Source Sans 3",Source Sans Pro,Segoe UI,Arial,sans-serif;overflow:hidden;padding-top:0!important}body:before{content:none!important}body.workspace-page{overflow:hidden!important}body.workspace-page .site-main-container{height:calc(100dvh - 134px);min-height:0;overflow:hidden}body.workspace-page .site-main-container>main{height:100%!important;min-height:0!important;overflow:hidden}#root{height:100%;min-height:100%;overflow:hidden}*{user-select:none;-webkit-user-select:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text}.small{font-size:12px;opacity:.85}.small.primary-highlight{color:#fff;background:var(--primary-color);opacity:1;font-weight:700;padding:0 8px;border-radius:4px;display:flex;align-items:center;min-height:32px;box-sizing:border-box}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}button,select,input{font:inherit}button{font-size:13px;line-height:1.2}select.primary-highlight{border:1px solid var(--primary-color);box-shadow:inset 0 0 0 1px var(--primary-color);background:var(--primary-color);color:#fff;font-weight:600;box-sizing:border-box}select.primary-highlight option{background:#fff;color:#111827}.workspace-page .app-layout.infradesign-workspace{--layout-left-pane-width: 280px;--layout-left-pane-width-selection: 280px;--layout-left-pane-width-editor: 280px;--layout-right-pane-width: 340px;--layout-profile-min-height: 160px;--layout-profile-max-height: 160px}.workspace-page .app-layout.infradesign-workspace .app-main,.workspace-page .app-layout.infradesign-workspace .app-main.has-profile-editor:not(.is-compact),.workspace-page .app-layout.infradesign-workspace .app-main.is-editor-phase.has-profile-editor:not(.is-compact){grid-template-rows:minmax(0,1fr) 210px}.workspace-page .app-layout.infradesign-workspace .app-main.is-profile-collapsed{grid-template-rows:minmax(0,1fr) 42px}.workspace-page .app-layout.infradesign-workspace .app-main.is-profile-dock{grid-template-rows:minmax(0,1fr) 176px}.workspace-page .app-layout.infradesign-workspace .app-main.is-profile-large{grid-template-rows:minmax(0,1fr) 280px}.workspace-page .app-layout.infradesign-workspace .app-map-pane{background:#a9c3b4}.infradesign-cross-section-dock,.workspace-page .app-layout.infradesign-workspace .app-profile-pane{height:auto;background:#f8fafc}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-large,.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock{display:grid;grid-template-rows:auto minmax(0,1fr)}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-collapsed{display:grid;grid-template-rows:42px}.cross-section-dock-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:5px 12px;border-bottom:1px solid #d7e2ee;background:#eef4fb}.cross-section-dock-toolbar__title{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;min-width:0}.cross-section-dock-toolbar__title .material-symbols-outlined{color:#1f56c8;font-size:19px}.cross-section-dock-toolbar__title strong,.cross-section-dock-toolbar__title span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross-section-dock-toolbar__title strong{color:#10233c;font-size:13px}.cross-section-dock-toolbar__title span{color:#526b88;font-size:12px}.cross-section-dock-toolbar__actions{display:inline-flex;gap:5px}.cross-section-dock-toolbar__actions .btn-sm{min-height:30px;padding-inline:10px}.cross-section-dock-body{min-height:0;overflow:auto}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor{gap:4px;padding-block:6px}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor__footer{min-height:32px}.workspace-page .app-layout.infradesign-workspace .app-main.is-compact .app-profile-pane{display:block;height:0}.infradesign-controller-head{display:grid;gap:8px;padding:2px 0 10px;border-bottom:1px solid #d7e0eb;margin-bottom:10px}.infradesign-controller-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:4px;border:1px solid #d5e2f4;border-radius:8px;background:#e8eef6}.infradesign-controller-tab{min-width:0;min-height:30px;height:30px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#294766;font-weight:700;cursor:pointer}.infradesign-controller-tab:hover,.infradesign-controller-tab:focus-visible{background:#fff}.infradesign-controller-tab.is-active{background:#1f56c8;color:#fff;box-shadow:0 1px 4px #0f244429}.infradesign-cross-section-placeholder{display:grid;grid-template-columns:.7fr .9fr 1.1fr 2.2fr 1.1fr .9fr;align-items:stretch;height:42px;margin-top:10px;overflow:hidden;border:1px solid #cbd5e1;border-radius:7px;background:#e5e7eb}.infradesign-cross-section-placeholder span{display:grid;place-items:end center;padding:0 4px 5px;border-right:1px solid rgba(15,23,42,.18);color:#1f2937;font-size:10px;line-height:1;white-space:nowrap}.infradesign-cross-section-placeholder span:last-child{border-right:0}.infradesign-cross-section-placeholder .is-berm{background:#b9cfb4}.infradesign-cross-section-placeholder .is-sidewalk{background:#d6d3cd}.infradesign-cross-section-placeholder .is-cycle{background:#9a615b;color:#fff}.infradesign-cross-section-placeholder .is-lane{background:#c4ccd6}.cross-section-editor{position:relative;display:grid;grid-template-rows:auto minmax(54px,1fr) auto auto;gap:5px;height:100%;padding:7px 10px;color:#18324f}.cross-section-editor__header{display:grid;grid-template-columns:minmax(170px,.9fr) auto minmax(300px,1.35fr);align-items:center;gap:10px;min-width:0}.cross-section-editor__footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:32px}.cross-section-editor__title,.cross-section-editor__header-actions{min-width:0}.cross-section-editor__title-line{display:flex;align-items:center;gap:7px}.cross-section-editor__mode-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;background:#e9f2ff;color:#174aa8;font-size:11px;font-weight:850}.cross-section-editor__header-actions{display:flex;justify-content:flex-end;gap:6px}.cross-section-editor__edge{display:flex;align-items:baseline;gap:8px;min-width:0}.cross-section-editor__edge strong{font-size:14px;color:#10233c}.cross-section-editor__edge span,.cross-section-editor__status-row,.cross-section-editor__validation{color:#526b88;font-size:12px}.cross-section-editor__source-lines{display:grid;gap:2px;margin-top:6px}.cross-section-editor__source-lines span{min-width:0;overflow:hidden;color:#496886;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.28;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__diagnostics{display:grid;gap:8px;margin-top:8px;padding:8px;border:1px solid #d7e1f1;border-radius:8px;background:#f8fbff}.cross-section-editor__diagnostics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.cross-section-editor__diagnostic-value,.cross-section-editor__diagnostics-warnings,.cross-section-editor__diagnostics-elements{min-width:0}.cross-section-editor__diagnostic-value{display:grid;gap:2px;padding:6px 7px;border:1px solid #e1e8f4;border-radius:6px;background:#fff}.cross-section-editor__diagnostic-value strong,.cross-section-editor__diagnostics-warnings strong,.cross-section-editor__diagnostics-elements .is-head span{color:#27415f;font-size:11px;font-weight:850}.cross-section-editor__diagnostic-value span,.cross-section-editor__diagnostics-warnings,.cross-section-editor__diagnostics-elements span,.cross-section-editor__diagnostics-empty{color:#526b88;font-size:11px;line-height:1.25}.cross-section-editor__diagnostics-warnings{display:grid;gap:4px}.cross-section-editor__diagnostics-warnings ul{display:grid;gap:2px;margin:0;padding-left:17px}.cross-section-editor__diagnostics-elements{display:grid;overflow:hidden;border:1px solid #dfe7f3;border-radius:7px;background:#fff}.cross-section-editor__diagnostics-elements>div{display:grid;grid-template-columns:minmax(90px,1.2fr) repeat(4,minmax(56px,.8fr));gap:6px;align-items:center;min-width:0;padding:5px 7px;border-bottom:1px solid #edf2f8}.cross-section-editor__diagnostics-elements>div:last-child{border-bottom:0}.cross-section-editor__diagnostics-elements .is-head{background:#eef4fb}.cross-section-editor__diagnostics-elements span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__status-row{display:flex;align-items:center;gap:6px;justify-content:center;white-space:nowrap}.cross-section-editor__status-row span{min-height:24px;padding:0 8px;border:1px solid #d6e2f2;border-radius:999px;background:#fff;color:#526b88;font-size:12px;font-weight:700}.cross-section-editor__status-row .is-unsaved{border-color:#fed7aa;background:#fff7ed;color:#9a3412;font-weight:800}.cross-section-editor__status-row .is-saved{border-color:#bbf7d0;background:#f0fdf4;color:#166534;font-weight:700}.cross-section-editor__status-row .is-readonly{border-color:#cbd5e1;background:#f8fafc;color:#334155}.cross-section-editor__mode-toggle{display:inline-grid;grid-template-columns:repeat(3,minmax(0,94px));justify-content:start;gap:4px;padding:3px;border:1px solid #d7e1f1;border-radius:8px;background:#eef3fb}.cross-section-editor__mode-toggle button{min-height:26px;border:0;border-radius:6px;background:transparent;color:#385478;font-size:12px;font-weight:800;cursor:pointer}.cross-section-editor__mode-toggle button.is-active{background:#fff;color:#0b3ea9;box-shadow:0 1px 4px #0f24441f}.cross-section-editor__view-toggle{display:inline-grid;grid-template-columns:repeat(3,minmax(0,86px));justify-content:start;gap:3px;width:fit-content;padding:3px;border:1px solid #d7e1f1;border-radius:8px;background:#ffffffeb;box-shadow:0 1px 4px #0f244414}.cross-section-editor__view-toggle button{min-height:24px;border:0;border-radius:6px;background:transparent;color:#385478;font-size:11px;font-weight:850;cursor:pointer}.cross-section-editor__view-toggle button.is-active{background:#0f4fc7;color:#fff}.cross-section-editor__strip{display:flex;min-width:0;min-height:58px;height:100%;overflow:hidden;border:1px solid #9fb0c4;border-radius:6px;background:#cbd3df;box-shadow:inset 0 0 0 1px #0f172a0d}.cross-section-editor__strip.is-readonly{background:#e6edf5}.cross-section-editor__strip.is-compare{min-height:34px}.cross-section-editor__schema{display:grid;gap:4px;min-width:0;min-height:0}.cross-section-editor__schema-label{color:#526b88;font-size:10px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}.cross-section-editor__block{position:relative;display:grid;grid-template-rows:14px minmax(0,1fr) 12px;place-items:center;min-width:34px;height:100%;padding:4px 4px 3px;border:0;border-right:1px solid rgba(248,250,252,.72);box-shadow:inset -1px 0 #0f172a3d;color:#172033;cursor:pointer;overflow:hidden}.cross-section-editor__block:last-child{border-right:0}.cross-section-editor__block:hover,.cross-section-editor__block:focus-visible{z-index:2;outline:2px solid rgba(14,165,233,.8);outline-offset:-2px}.cross-section-editor__block.is-readonly{cursor:default;opacity:.92}.cross-section-editor__block.is-selected{z-index:3;box-shadow:inset 0 0 0 2px #0ea5e9,inset 0 -4px #0ea5e959,0 0 0 1px #0ea5e947}.cross-section-editor__block.is-compare-added{outline:2px solid rgba(37,99,235,.75);outline-offset:-2px}.cross-section-editor__block.is-compare-removed{opacity:.48;background-image:repeating-linear-gradient(135deg,#ffffff2e 0,#ffffff2e 5px,#0f172a29 5px,#0f172a29 9px)}.cross-section-editor__block.is-compare-changed{box-shadow:inset 0 0 0 2px #f59e0bd9,inset 0 -3px #f59e0b59}.cross-section-editor__block .material-symbols-outlined{font-size:14px}.cross-section-editor__block strong{max-width:100%;overflow:hidden;font-size:11px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__block span:not(.material-symbols-outlined),.cross-section-editor__block em{font-size:10px;font-style:normal;line-height:1}.cross-section-editor__block.is-narrow strong{font-size:9px}.cross-section-editor__block.is-narrow .material-symbols-outlined{display:none}.cross-section-editor__block.is-green{background:#88ae7f}.cross-section-editor__block.is-sidewalk{background:#d7d0c2}.cross-section-editor__block.is-cycle{background:#92564f;color:#fff}.cross-section-editor__block.is-lane{background:#343a42;color:#fff}.cross-section-editor__block.is-bus{background:#7d5c4d;color:#fff}.cross-section-editor__block.is-parking{background:#8e949c;color:#fff}.cross-section-editor__block.is-separator{background:#c8ccd1;min-width:34px}.cross-section-editor__block.is-median{background:#879484;color:#fff}.cross-section-editor__block.is-water{background:#8ab6cf;color:#fff}.cross-section-editor__block.is-unknown{background:#606b78;color:#fff}.cross-section-editor__compare{display:grid;grid-template-rows:auto minmax(0,1fr);gap:7px;min-height:48px}.cross-section-editor__compare-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.cross-section-editor__compare-summary>div{display:grid;gap:3px;align-content:center;min-width:0;padding:7px 9px;border:1px solid #d7e1f1;border-radius:7px;background:#fff}.cross-section-editor__compare strong,.cross-section-editor__compare span,.cross-section-editor__compare-summary strong,.cross-section-editor__compare-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__compare strong{color:#173557;font-size:12px}.cross-section-editor__compare span{color:#526b88;font-size:12px}.cross-section-editor__compare .is-wider{border-color:#fed7aa;background:#fff7ed}.cross-section-editor__compare .is-narrower{border-color:#bfdbfe;background:#eff6ff}.cross-section-editor__compare-strips{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;min-width:0}.cross-section-editor__inline-editor,.cross-section-editor__actions{display:flex;align-items:center;gap:6px;min-width:0}.cross-section-editor__actions{justify-content:end}.cross-section-editor__validation{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__details{min-height:0;color:#526b88;font-size:12px}.cross-section-editor__details summary{width:fit-content;cursor:pointer;font-weight:800}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor__details,.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor__edge span,.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor__footer{display:none}.workspace-page .app-layout.infradesign-workspace .app-profile-pane.is-dock .cross-section-editor__header{grid-template-columns:minmax(150px,.7fr) auto minmax(260px,1fr)}.cross-section-editor__selected-label{min-width:76px;color:#10233c;font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__width-field{display:flex;align-items:center;height:32px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;overflow:hidden}.cross-section-editor__width-field input{width:74px;border:0;padding:0 7px;background:transparent;color:#10233c;font-weight:800}.cross-section-editor__width-field span{padding-right:8px;color:#526b88;font-size:12px}.cross-section-editor__empty{display:grid;place-items:center;min-height:48px;border:1px dashed #b7c5d5;border-radius:8px;color:#526b88;font-size:13px}.cross-section-editor__validation.is-error{color:#b91c1c;font-weight:800}.cross-section-editor__validation.is-warning{color:#b45309;font-weight:800}.cross-section-editor__validation.is-info{color:#2563eb;font-weight:700}.profile-landscape-view{min-width:0;min-height:48px;overflow:hidden;border:1px solid #c6d3e2;border-radius:8px;background:#f8fafc}.profile-landscape-view svg{display:block;width:100%;height:100%;min-height:112px}.profile-landscape-view__element{cursor:pointer}.profile-landscape-view__element text{pointer-events:none}.profile-landscape-view__label{fill:#173557;font-size:12px;font-weight:850}.profile-landscape-view__label.is-narrow{font-size:10px}.profile-landscape-view__width,.profile-landscape-view__total,.profile-landscape-view__empty{fill:#526b88;font-size:11px;font-weight:750}.profile-landscape-view__section-title{fill:#173557;font-size:14px;font-weight:900}.profile-landscape-view__constraint{cursor:pointer}.cross-section-editor__technical{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;min-height:48px;overflow:auto;padding-right:2px}.cross-section-editor__technical:has(.cross-section-editor__technical-table+.cross-section-editor__technical-table){grid-template-columns:repeat(2,minmax(0,1fr))}.cross-section-editor__technical-table{display:grid;align-content:start;gap:4px;min-width:0}.cross-section-editor__technical-row{display:grid;grid-template-columns:minmax(90px,1fr) 74px minmax(70px,.7fr) minmax(58px,.55fr);align-items:center;gap:6px;min-height:28px;padding:4px 7px;border:1px solid #d7e1f1;border-radius:6px;background:#fff;color:#18324f;text-align:left;cursor:pointer}.cross-section-editor__technical-row.is-selected{border-color:#0ea5e9;box-shadow:inset 0 0 0 1px #0ea5e9}.cross-section-editor__technical-row.is-readonly{background:#f8fafc}.cross-section-editor__technical-row strong,.cross-section-editor__technical-row span,.cross-section-editor__technical-row em{min-width:0;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.cross-section-editor__technical-row em{color:#64748b;font-style:normal}.map-pane-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.map-pane-topview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:13;pointer-events:none}.map-pane-topview-band{paint-order:stroke;shape-rendering:geometricPrecision;filter:drop-shadow(0 1px 1px rgba(15,23,42,.16))}.map-pane-topview-band.is-selected{filter:drop-shadow(0 1px 3px rgba(15,23,42,.22))}.map-pane-topview-band--lane-generated-motor-vehicle,.map-pane-topview-band--lane-generated-rijstrook{fill-opacity:.68}.map-pane-topview-band--lane-incomplete-motor-vehicle,.map-pane-topview-band--lane-incomplete-rijstrook,.map-pane-topview-band--lane-conflict-motor-vehicle,.map-pane-topview-band--lane-conflict-rijstrook{stroke:#f97316;stroke-width:2}.map-pane-topview-band--existing-corridor{fill-opacity:.16;stroke:#7c3aed;stroke-dasharray:12 8;stroke-opacity:.36}.map-pane-lane-annotation{pointer-events:none;filter:drop-shadow(0 1px 2px rgba(15,23,42,.35))}.map-pane-lane-arrow line{stroke:#e0f2fe;stroke-width:2.4;stroke-linecap:round}.map-pane-lane-arrow path{fill:#e0f2fe;stroke:#1e3a8a;stroke-width:.7}.map-pane-lane-annotation.is-generated .map-pane-lane-arrow line{stroke:#67e8f9}.map-pane-lane-annotation.is-incomplete .map-pane-lane-arrow line,.map-pane-lane-annotation.is-incomplete .map-pane-lane-arrow path{stroke:#f59e0b}.map-pane-lane-annotation.is-conflict .map-pane-lane-arrow line,.map-pane-lane-annotation.is-conflict .map-pane-lane-arrow path{stroke:#ef4444}.map-pane-lane-label,.map-pane-lane-status{paint-order:stroke;stroke:#0f172ad1;stroke-width:3;fill:#f8fafc;font-size:11px;font-weight:800}.map-pane-lane-status{fill:#bfdbfe;font-size:9px;letter-spacing:0;text-transform:uppercase}.map-pane-lane-annotation.is-incomplete .map-pane-lane-status{fill:#fde68a}.map-pane-lane-annotation.is-conflict .map-pane-lane-status{fill:#fecaca}.map-pane-lane-notice{pointer-events:none;filter:drop-shadow(0 4px 12px rgba(15,23,42,.22))}.map-pane-lane-notice rect{fill:#fff7edf5;stroke:#fb923c;stroke-width:1.6}.map-pane-lane-notice text{fill:#9a3412;font-size:12px;font-weight:800}.map-pane-lane-connection{pointer-events:none}.map-pane-lane-connection text{fill:#9a3412;font-size:10px;font-weight:900;paint-order:stroke;stroke:#ffffffeb;stroke-width:3}.map-pane-lane-node{pointer-events:none}.map-pane-lane-node circle{fill:#fff;stroke:#0f766e;stroke-width:2;vector-effect:non-scaling-stroke}.map-pane-lane-node.is-exchange circle{fill:#fff7ed;stroke:#f97316}.map-pane-lane-node.is-selected circle{stroke-width:2.8}.map-pane-lane-node text{fill:#0f172a;font-size:9px;font-weight:900;paint-order:stroke;stroke:#ffffffeb;stroke-width:3}.map-pane-junction-design-symbol{pointer-events:none}.map-pane-junction-design-symbol text{fill:#0b1f35;font-size:11px;font-weight:900;letter-spacing:0}.map-pane-junction-movement{pointer-events:none;filter:drop-shadow(0 2px 4px rgba(15,23,42,.24))}.map-pane-junction-movement text{fill:#fff;font-size:12px;font-weight:900;paint-order:stroke;stroke:#0f172acc;stroke-width:3px}.map-pane-junction-movement.is-missingLaneData{filter:none}.map-pane-design-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:14;pointer-events:none}.map-pane-project-edge__base,.map-pane-project-edge__glow,.map-pane-project-edge__hover,.map-pane-project-edge__profile-accent,.map-pane-project-edge__warning-accent,.map-pane-edge-selection-overlay path{fill:none;stroke-linecap:round;stroke-linejoin:round}.map-pane-project-edge__base{stroke:#2563ebd1;stroke-width:5}.map-pane-project-edge.no-profile .map-pane-project-edge__base{stroke:#475569c7;stroke-width:4}.map-pane-project-edge.has-profile .map-pane-project-edge__base{stroke:#1d4ed8eb;stroke-width:5.5}.map-pane-project-edge.is-design-neutral .map-pane-project-edge__base{stroke:#64748bd1}.map-pane-project-edge.is-design-blue .map-pane-project-edge__base{stroke:#2563ebe6}.map-pane-project-edge.is-design-green .map-pane-project-edge__base{stroke:#16a34af2}.map-pane-project-edge.is-design-orange .map-pane-project-edge__base{stroke:#f97316f2}.map-pane-project-edge.is-design-red .map-pane-project-edge__base{stroke:#64748bd1}.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.has-profile .map-pane-project-edge__base{stroke:#0f172a3d;stroke-width:1.4}.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.has-profile.is-selected .map-pane-project-edge__base{stroke:#0f172a47;stroke-width:1.6}.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.is-design-green .map-pane-project-edge__base,.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.is-design-orange .map-pane-project-edge__base,.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.is-design-red .map-pane-project-edge__base,.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.is-design-blue .map-pane-project-edge__base,.map-pane-design-canvas.is-profile-topview .map-pane-project-edge.is-design-neutral .map-pane-project-edge__base{stroke:#0f172a3d}.map-pane-project-edge.is-hovered .map-pane-project-edge__base{stroke:#0ea5e98c;stroke-width:2.4}.map-pane-project-edge.is-selected .map-pane-project-edge__base{stroke-width:2.2;stroke-opacity:.34}.map-pane-project-edge__glow{stroke:#0f172a33;stroke-width:8;opacity:.24}.map-pane-project-edge__hover{stroke:#7dd3fceb;stroke-width:7;opacity:.22}.map-pane-project-edge__profile-accent{stroke:#f97316;stroke-width:2.6;stroke-dasharray:14 12;opacity:.92}.map-pane-design-canvas.is-profile-topview .map-pane-project-edge__profile-accent{opacity:0;stroke-width:0}.map-pane-project-edge__warning-accent{stroke:#f59e0b;stroke-width:2.2;stroke-dasharray:4 8;opacity:.95}.map-pane-design-canvas.is-profile-topview .map-pane-project-edge__warning-accent,.map-pane-design-canvas.is-profile-topview .map-pane-project-edge__glow{opacity:0}.map-pane-project-edge__hit{fill:none;stroke:transparent;stroke-width:30;pointer-events:stroke;cursor:pointer}.map-pane-design-canvas.is-apply-profile .map-pane-project-edge__hit{cursor:copy}.map-pane-edge-selection-overlay{pointer-events:none}.map-pane-edge-selection-overlay path{stroke:#22d3ee94;stroke-width:1.2;stroke-dasharray:5 9}.map-pane-edge-selection-overlay circle{fill:#0ea5e9eb;stroke:#fff;stroke-width:2.4;filter:drop-shadow(0 2px 5px rgba(15,23,42,.34))}.map-pane-project-node circle{fill:#64748b;stroke:#fff;stroke-width:2.5;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 2px 4px rgba(15,23,42,.28))}.map-pane-project-node.is-treated circle{fill:#16a34a}.map-pane-project-node.is-warning circle{fill:#f97316}.map-pane-project-node.is-selected circle{fill:#1d4ed8;stroke:#bfdbfe;stroke-width:4}.map-pane-project-node__check,.map-pane-node-controller-check{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.map-pane-project-node__warning{fill:none;stroke:#fff;stroke-width:1.6;stroke-linejoin:round;pointer-events:none}.map-pane-edge-status{pointer-events:none}.map-pane-edge-status circle{fill:#f59e0bf5;stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 4px rgba(15,23,42,.28))}.map-pane-edge-status path{fill:#7c2d12}.map-pane-edge-status.is-active circle{fill:#f97316}.map-pane-edge-status.is-red circle{fill:#dc2626}.map-pane-edge-status line{stroke:#fff;stroke-width:2.1;stroke-linecap:round}.map-pane-node-controller-label{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;fill:#0f172a;font-size:11px;font-weight:700}.map-pane-controls{position:absolute;top:10px;left:10px;z-index:20;display:grid;gap:6px}.map-pane-autosketch-status{position:absolute;left:10px;bottom:10px;z-index:20;max-width:min(560px,calc(100% - 20px));background:#111827db;color:#f9fafb;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.35;box-shadow:0 8px 20px #00000040;pointer-events:none}.map-pane-autosketch-status.is-ready{background:#064e3be0;border-color:#a7f3d073}.map-road-controller-prompt{position:absolute;left:50%;bottom:18px;z-index:24;transform:translate(-50%);min-width:min(360px,calc(100% - 36px));max-width:min(520px,calc(100% - 36px));padding:9px 14px;border:1px solid rgba(61,114,221,.38);border-radius:var(--ui-frame-radius);background:#fffffff0;color:#15345f;box-shadow:0 10px 24px #0f24442e;pointer-events:none;text-align:center}.map-road-controller-prompt__title{font-size:13px;font-weight:800}.map-design-hud{position:absolute;left:12px;top:76px;z-index:23;display:grid;gap:6px;width:min(410px,calc(100% - 24px));padding:8px;border:1px solid rgba(61,114,221,.32);border-radius:var(--ui-frame-radius);background:#f8fbfff0;color:#14365f;box-shadow:0 12px 28px #0f244429;pointer-events:none}.map-design-hud__header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.map-design-hud__header .material-symbols-outlined{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #9bbcff;border-radius:var(--ui-frame-radius);background:#eef4ff;color:#1d4ed8}.map-design-hud__header strong,.map-design-hud__header span,.map-design-hud__selected span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-design-hud__header strong{font-size:13px}.map-design-hud__header span{font-size:12px;color:#486581}.map-design-hud__metrics{display:flex;flex-wrap:wrap;gap:5px}.map-design-hud__metrics span,.app-design-health-grid span{display:inline-flex;align-items:center;min-height:22px;padding:0 6px;border:1px solid #d5e2f4;border-radius:7px;background:#fff;color:#294766;font-size:12px;line-height:1}.map-design-hud__metrics span.is-ok,.app-design-health-grid span.is-ok{border-color:#86efac;background:#f0fdf4;color:#166534}.map-design-hud__metrics span.is-warn,.app-design-health-grid span.is-warn{border-color:#fbbf24;background:#fffbeb;color:#92400e}.map-design-hud__view-toggle{grid-template-columns:repeat(3,minmax(0,1fr));pointer-events:auto}.map-design-hud__selected{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center;padding-top:0;color:#122c4a;font-size:12px}.map-design-hud__selected .material-symbols-outlined{font-size:18px;color:#1d4ed8}.road-axis-node-marker{width:14px;height:14px;border-radius:50%;background:#f97316;border:2px solid #ffffff;box-shadow:0 0 0 1px #11182740}.map-pane-mode-toggle{display:grid;grid-template-columns:44px 44px 44px;gap:6px}.map-pane-mode-btn{width:44px;height:44px;border:1px solid #d0d7de;border-radius:8px;background:#fff;color:#1f2937;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px #0000001f}.map-pane-mode-btn:hover{border-color:#8fb0ff}.map-pane-mode-btn.is-active{background:#0b3ea9;border-color:#0b3ea9;color:#fff}.map-pane-measure-control-btn.is-active{background:#0b3ea9!important;border-color:#0b3ea9!important;color:#fff!important}.maplibregl-ctrl-group>button.map-pane-measure-control-btn.is-active{background:#0b3ea9!important;border-color:#0b3ea9!important;color:#fff!important}.map-pane-mode-icon{font-family:Material Symbols Outlined;font-weight:var(--ui-icon-weight);font-style:normal;font-size:var(--ui-icon-size);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" var(--ui-icon-weight),"GRAD" 0,"opsz" 24;pointer-events:none}.map-pane-options-panel{width:240px;background:#fff;border:1px solid #d0d7de;border-radius:8px;padding:8px;box-shadow:0 2px 12px #00000026}.map-pane-measure-readout{background:#fffffff2;border:1px solid #d0d7de;border-radius:8px;padding:6px 8px;max-width:220px}.map-pane-measure-readout--loading{border-color:#bfd7ff;background:#eff6fff5;color:#0b3ea9}.map-pane-measure-readout--error{border-color:#fecaca;background:#fef2f2f7;color:#991b1b}.map-pane-measure-debug{background:#111827f2;color:#f9fafb;border:1px solid rgba(148,163,184,.5);border-radius:8px;padding:8px;width:min(520px,calc(100vw - 24px));max-height:260px;overflow:auto}.map-pane-measure-debug-title{font-weight:700;margin-bottom:4px}.map-pane-measure-debug-log{margin-top:6px;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.3;opacity:.95}.map-pane-options-label{margin-bottom:6px}.map-pane-manager-select{width:100%;padding:6px}.map-pane-bgt-toggle{margin-top:8px;display:flex;align-items:center;gap:6px}.segment-list{display:grid;gap:6px;margin-top:6px}.segment-list-item{text-align:left;border:1px solid #ddd;background:#fff;cursor:pointer}.segment-list-item.is-active{background:#f0f6ff}.segment-list-item-label{font-weight:600}.segment-list-divider{margin:12px 0}.band-preview-card,.nwb-selected-card{border:1px solid #ddd;border-radius:8px;background:#fff;padding:10px}.band-preview-card{border-color:#d4d4d8;background:#fafafa;padding:8px}.nwb-selected-card{margin-top:8px;padding:8px}.nwb-selected-title{font-weight:600}.map-selection-overlay{position:absolute;top:14px;left:14px;z-index:9;max-width:260px;min-width:160px;padding:10px;border:1px solid #dbe4f3;border-radius:10px;background:#fffffff0;box-shadow:0 8px 18px #0f172a1f;pointer-events:auto}.map-selection-overlay__title{font-weight:700;color:#0f172a;line-height:1.25;word-break:break-word}.map-selection-batchbar{position:absolute;left:14px;bottom:14px;z-index:9;max-width:360px;padding:10px;border:1px solid #dbe4f3;border-radius:10px;background:#fffffff0;box-shadow:0 8px 18px #0f172a1f}.panel-inline-meta{color:#5d6b82;margin-top:4px}.app-section-label{margin-top:10px}.button-row{display:flex;gap:6px}.app-profile-checklist{display:grid;gap:6px}.app-profile-checklist__item{display:inline-flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:0 10px;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:#28466e;text-align:left}.app-profile-checklist__box{width:16px;min-width:16px;height:16px;border-radius:4px;border:1px solid #9fb1cd;background:#fff;color:#1f56c8;display:inline-grid;place-items:center;font-size:12px;line-height:1}.app-profile-checklist__item.is-done{border-color:#9ad3ab;background:#eefaf1;color:#166534}.app-profile-checklist__item.is-done .app-profile-checklist__box{border-color:#59b47b;background:#d7f3df;color:#166534}.app-profile-apply-panel{display:grid;gap:8px}.app-design-studio-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #dbe4f3;background:#f8fbff}.app-design-studio-title{font-size:15px;font-weight:700;color:#0f172a;line-height:1.2}.app-design-studio-panels{display:grid;grid-template-columns:minmax(280px,1.25fr) minmax(220px,.9fr) minmax(260px,1fr);gap:8px;padding:8px 10px;overflow:auto;border-bottom:1px solid #dbe4f3;background:#fff}.app-design-empty-state{margin:10px;padding:12px}.app-profile-template-panel{margin:0}.app-road-controller-panel{display:grid;gap:10px;margin:0}.app-road-controller-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.app-road-controller-head .material-symbols-outlined{width:34px;height:34px;border:1px solid #b9cdf7;border-radius:var(--ui-frame-radius);background:#eef4ff;color:#2358bf;display:inline-flex;align-items:center;justify-content:center}.app-road-controller-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#eef3fb}.app-road-controller-tab{min-height:32px;border:0;border-radius:calc(var(--ui-frame-radius) - 2px);background:transparent;color:#385478;font-weight:700;cursor:pointer}.app-road-controller-tab.is-active{background:#fff;color:#0b3ea9;box-shadow:0 1px 4px #0f24441f}.app-road-controller-body{display:grid;gap:9px}.app-road-controller-target{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:1px dashed #bfd0ed;border-radius:var(--ui-frame-radius);background:#f8fbff;color:#234467}.app-road-controller-target.is-ready{border-style:solid;border-color:#95b7ff;background:#eef4ff}.app-road-controller-target .material-symbols-outlined{font-size:24px;color:#2358bf}.app-road-controller-search{height:34px}.design-controller{display:grid;gap:12px;min-height:100%;color:#18324f}.design-controller__header{display:grid;gap:10px;padding:12px;border:1px solid #d6e2f2;border-radius:var(--ui-frame-radius);background:linear-gradient(180deg,#f8fbff,#eef4fb)}.design-controller__header h2{margin:3px 0 2px;color:#102946;font-size:18px;line-height:1.15}.design-controller__header p{margin:0;color:#58708f;font-size:13px;line-height:1.35}.design-controller__edge-card{display:grid;gap:7px;margin-top:6px;padding:9px;border:1px solid #bfd3f5;border-radius:var(--ui-frame-radius);background:#ffffffd1}.design-controller__edge-card strong,.design-controller__edge-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-controller__edge-card strong{color:#143257;font-size:14px;font-weight:900}.design-controller__edge-card span{color:#5b7390;font-size:12px}.design-controller__edge-badges{display:flex;flex-wrap:wrap;gap:5px}.design-controller__edge-badges span{min-height:22px;padding:0 7px;border:1px solid #d7e1f1;border-radius:999px;background:#fff;color:#315273;font-weight:800;line-height:20px}.design-controller__edge-badges .is-saved{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.design-controller__edge-badges .is-unsaved{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.design-controller__details summary{width:fit-content;cursor:pointer;color:#315273;font-size:12px;font-weight:850}.existing-condition-panel__details{display:grid;gap:6px;padding:8px;border:1px dashed #cdd9ea;border-radius:var(--ui-frame-radius);background:#f8fbff}.existing-condition-panel__details summary{cursor:pointer;color:#315273;font-size:12px;font-weight:850}.design-controller__stats{display:flex;flex-wrap:wrap;gap:6px}.design-controller__stats span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #d1dceb;border-radius:var(--ui-frame-radius);background:#fff;color:#365678;font-size:12px;font-weight:700}.design-controller__stats .is-ok{border-color:#a9d8bb;color:#16703b}.design-controller__stats .is-warn{border-color:#f0c36d;color:#8b5e00}.design-controller__tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:4px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#eaf1fb}.design-controller__tab{display:grid;justify-items:center;gap:2px;min-height:50px;padding:6px 3px;border:0;border-radius:calc(var(--ui-frame-radius) - 2px);background:transparent;color:#48617f;cursor:pointer}.design-controller__tab .material-symbols-outlined{font-size:19px}.design-controller__tab span:last-child{max-width:100%;overflow:hidden;font-size:10px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.design-controller__tab:hover,.design-controller__tab:focus-visible,.design-controller__tab.is-active{background:#fff;color:#0b4cc4;box-shadow:0 1px 5px #10294624}.design-controller__panel{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid #d6e2f2;border-radius:var(--ui-frame-radius);background:#fffffff0}.design-controller__error{padding:9px 10px;border:1px solid #fecaca;border-radius:var(--ui-frame-radius);background:#fef2f2;color:#b91c1c;font-size:12px;font-weight:800;line-height:1.35}.design-controller__target,.lane-controller__summary,.junction-measure-palette__status{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;padding:9px;border:1px dashed #b9cbe2;border-radius:var(--ui-frame-radius);background:#f7faff}.design-controller__target.is-ready{border-style:solid;border-color:#78a5ff;background:#edf4ff}.design-controller__target .material-symbols-outlined{color:#1e58c7}.design-controller__target strong,.lane-controller__summary strong,.junction-measure-palette__status strong{display:block;overflow:hidden;color:#173557;text-overflow:ellipsis;white-space:nowrap}.design-controller__target span,.lane-controller__summary span,.junction-measure-palette__status span{display:block;color:#5b7390;font-size:12px;line-height:1.35}.design-controller__source-lines{display:grid;gap:2px;margin-top:5px}.design-controller__source-lines span{min-width:0;overflow:hidden;color:#496886;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10.5px;line-height:1.28;text-overflow:ellipsis;white-space:nowrap}.design-controller__search{height:36px}.design-controller__primary{min-height:38px}.design-controller__primary:disabled{cursor:not-allowed;opacity:.62}.design-controller__empty,.design-controller__hint{padding:9px;border:1px dashed #d4dfed;border-radius:var(--ui-frame-radius);background:#f8fbff;color:#607893;font-size:12px;line-height:1.4}.road-profile-library__list,.profile-element-palette__grid,.junction-measure-palette__grid,.lane-controller__list,.validation-panel__rows,.validation-panel__messages,.existing-condition-panel__rows,.existing-condition-panel__actions,.existing-condition-panel__manual,.existing-condition-panel__form,.existing-condition-panel__constraint-list,.existing-condition-panel__conflicts{display:grid;gap:7px}.existing-condition-panel__row,.existing-condition-panel__conflict{display:grid;gap:3px;min-width:0;padding:8px 9px;border:1px solid #dce6f2;border-radius:var(--ui-frame-radius);background:#fbfdff}.existing-condition-panel__row strong,.existing-condition-panel__row span,.existing-condition-panel__conflict strong,.existing-condition-panel__conflict span{overflow:hidden;text-overflow:ellipsis}.existing-condition-panel__row strong,.existing-condition-panel__conflict strong{color:#173557;font-size:12px}.existing-condition-panel__row span,.existing-condition-panel__conflict span{color:#5b7390;font-size:12px;line-height:1.35}.existing-condition-panel__row.is-debug-source span{white-space:normal;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px}.existing-condition-panel__row.is-ready{border-color:#bbf7d0;background:#f0fdf4}.existing-condition-panel__row.is-missing,.existing-condition-panel__row.is-confidence-unknown,.existing-condition-panel__row.is-confidence-low{border-color:#fed7aa;background:#fff7ed}.existing-condition-panel__row.is-confidence-medium{border-color:#fde68a;background:#fefce8}.existing-condition-panel__actions{grid-template-columns:1fr 1fr}.existing-condition-panel__actions button:disabled{cursor:not-allowed;opacity:.58}.existing-condition-panel__save-state{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border:1px solid #dbe7f4;border-radius:var(--ui-frame-radius);background:#fff;color:#536b87;font-size:11px}.existing-condition-panel__save-state.is-unsaved{border-color:#fed7aa;background:#fff7ed;color:#9a5b12}.existing-condition-panel__save-state span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.existing-condition-panel__form{padding:8px;border:1px solid #dce6f2;border-radius:var(--ui-frame-radius);background:#f8fbff}.existing-condition-panel__form label{display:grid;gap:4px;min-width:0;color:#496886;font-size:11px;font-weight:700}.existing-condition-panel__form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.existing-condition-panel__constraint{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px 8px;align-items:center;padding:7px 8px;border:1px solid #dbe7f4;border-radius:var(--ui-frame-radius);background:#fff;color:#1f3c62;text-align:left}.existing-condition-panel__constraint:hover,.existing-condition-panel__constraint.is-selected{border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee29}.existing-condition-panel__constraint .material-symbols-outlined{grid-row:span 2;color:#2563eb}.existing-condition-panel__constraint strong,.existing-condition-panel__constraint em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.existing-condition-panel__constraint strong{font-size:12px}.existing-condition-panel__constraint em{color:#64748b;font-size:11px;font-style:normal}.existing-condition-panel__conflict.is-warning,.existing-condition-panel__conflict.is-error{border-color:#fed7aa;background:#fff7ed}.existing-condition-panel__conflict.is-error strong{color:#b91c1c}.map-pane-manual-constraint{cursor:pointer}.road-profile-library__card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:9px;align-items:stretch;min-height:72px;padding:7px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fff;color:#1f3c62;text-align:left;cursor:grab}.road-profile-library__card:hover,.road-profile-library__card:focus-visible,.road-profile-library__card.is-selected{border-color:#578bff;background:#f1f6ff;box-shadow:0 6px 14px #153b7c1f}.road-profile-library__card.is-selected{border-color:#1f56c8;box-shadow:inset 0 0 0 2px #1f56c838,0 6px 14px #153b7c1f}.road-profile-library__preview{display:grid;grid-template-columns:18px 1fr 1fr 18px;overflow:hidden;border:1px solid #c9d6e7;border-radius:calc(var(--ui-frame-radius) - 2px);background:#e8edf2}.road-profile-library__preview span:nth-child(1){background:#8db585}.road-profile-library__preview span:nth-child(2){background:#965a52}.road-profile-library__preview span:nth-child(3){background:#3c444e}.road-profile-library__preview span:nth-child(4){background:#d6d0c4}.road-profile-library__body{display:grid;gap:3px;min-width:0}.road-profile-library__body strong,.road-profile-library__body span,.road-profile-library__body em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.road-profile-library__body span{color:#48617f;font-size:12px}.road-profile-library__body em{color:#7690aa;font-size:11px;font-style:normal}.profile-element-palette__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-element-palette__item,.junction-measure-palette__item{display:grid;gap:4px;min-height:74px;padding:9px;border:1px solid #d8e2ef;border-radius:var(--ui-frame-radius);background:#fff;color:#173557;text-align:left;cursor:pointer}.profile-element-palette__item:disabled{cursor:not-allowed;opacity:.56}.profile-element-palette__item:hover:not(:disabled),.profile-element-palette__item:focus-visible,.junction-measure-palette__item:hover,.junction-measure-palette__item:focus-visible,.junction-measure-palette__item.is-selected{border-color:#6d9cff;background:#f3f7ff}.profile-element-palette__item .material-symbols-outlined,.junction-measure-palette__item .material-symbols-outlined{color:#1e58c7;font-size:20px}.profile-element-palette__item strong,.junction-measure-palette__item span:last-child{overflow:hidden;text-overflow:ellipsis}.profile-element-palette__item em{color:#647f9b;font-size:11px;font-style:normal}.junction-controller__context{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #d8e2ef;border-radius:var(--ui-frame-radius);background:#f8fbff}.junction-controller__context strong,.junction-controller__context span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.junction-controller__context strong{color:#173557;font-size:14px}.junction-controller__context span{color:#607893;font-size:11px}.junction-controller__context em{min-width:104px;padding:5px 8px;border:1px solid #d1dceb;border-radius:var(--ui-frame-radius);background:#fff;color:#64748b;font-size:11px;font-style:normal;font-weight:800;text-align:center}.junction-controller__context.is-treated em{border-color:#9fd4b3;color:#16703b}.junction-controller__details{display:grid;gap:10px}.junction-controller__edge-list{display:grid;gap:6px;margin-top:5px}.junction-controller__edge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:32px;padding:6px 8px;border:1px solid #d8e2ef;border-radius:var(--ui-frame-radius);background:#fff;color:#173557;text-align:left;cursor:pointer}.junction-controller__edge span,.junction-controller__edge em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.junction-controller__edge em{color:#7890aa;font-size:11px;font-style:normal}.junction-controller__analysis{padding:8px;border:1px dashed #d4dfed;border-radius:var(--ui-frame-radius);background:#fbfdff}.junction-controller__analysis p{margin:5px 0 0;color:#607893;font-size:12px;line-height:1.4}.junction-controller__parameters,.junction-controller__warnings,.junction-controller__approaches,.junction-controller__movements{display:grid;gap:7px}.junction-controller__parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.junction-controller__parameter-grid label{display:grid;gap:4px;min-width:0;color:#496886;font-size:11px;font-weight:800}.junction-controller__parameter-grid input{width:100%}.junction-controller__approach,.junction-controller__movement{display:grid;gap:5px;padding:8px;border:1px solid #d8e2ef;border-radius:var(--ui-frame-radius);background:#fff}.junction-controller__approach{grid-template-columns:minmax(0,1fr) auto}.junction-controller__approach strong,.junction-controller__approach span,.junction-controller__movement strong,.junction-controller__movement span,.junction-controller__movement em,.junction-controller__movement small{overflow:hidden;text-overflow:ellipsis}.junction-controller__approach strong,.junction-controller__movement strong{color:#173557;font-size:12px}.junction-controller__approach span,.junction-controller__movement span,.junction-controller__movement small{color:#607893;font-size:11px}.junction-controller__approach em,.junction-controller__movement em{align-self:start;padding:4px 6px;border-radius:6px;background:#f1f5f9;color:#475569;font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}.junction-controller__approach em.is-ok,.junction-controller__movement.is-available em{background:#e9f8ee;color:#16703b}.junction-controller__approach em.is-derived,.junction-controller__movement.is-missingLaneData em{background:#fff7ed;color:#c2410c}.junction-controller__approach em.is-missing,.junction-controller__movement.is-blocked em,.junction-controller__movement.is-conflict em{background:#fef2f2;color:#b91c1c}.junction-controller__approach-lanes{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px}.junction-controller__approach-lanes span{max-width:100%;padding:3px 6px;border:1px solid #d8e2ef;border-radius:6px;background:#f8fbff;color:#496886;font-size:10px;font-weight:700}.junction-controller__approach-lanes span.is-derivedFromProfile{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.junction-controller__approach-lanes span.is-missing{border-color:#fecaca;background:#fef2f2;color:#991b1b}.junction-controller__movement-list{display:grid;gap:5px;max-height:220px;overflow:auto}.junction-controller__movement{grid-template-columns:84px minmax(0,1fr) auto}.junction-controller__movement small{grid-column:1 / -1}.lane-controller__summary,.junction-measure-palette__status{grid-template-columns:minmax(0,1fr)}.design-controller__view-toggle{display:grid;grid-template-columns:1fr 1fr;gap:7px}.lane-controller__row,.validation-panel__row,.validation-panel__message{display:grid;gap:4px;padding:8px;border:1px solid #dce6f2;border-radius:var(--ui-frame-radius);background:#fbfdff;font-size:12px}.lane-controller__row{grid-template-columns:minmax(0,1fr) 62px 52px 74px minmax(0,1fr);align-items:center}.lane-controller__row strong,.lane-controller__row span,.lane-controller__row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-controller__row em,.validation-panel__row em{color:#647f9b;font-style:normal}.validation-panel__row{grid-template-columns:auto 84px minmax(0,1fr);align-items:center}.validation-panel__row .material-symbols-outlined{font-size:19px}.validation-panel__row.is-ok .material-symbols-outlined{color:#16703b}.validation-panel__row.is-warn .material-symbols-outlined{color:#c47b00}.app-road-profile-tile-grid{display:grid;gap:7px}.app-road-profile-tile{display:grid;grid-template-columns:auto 60px minmax(0,1fr);gap:8px;align-items:center;min-height:54px;padding:6px 8px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fff;color:#1f3c62;text-align:left;cursor:grab}.app-road-profile-tile:hover,.app-road-profile-tile.is-active{border-color:#6ea1ff;background:#f3f7ff}.app-road-profile-tile__drag{color:#64748b}.app-road-profile-tile__preview{display:grid;grid-template-columns:1fr 1fr 1fr;height:30px;overflow:hidden;border:1px solid #c8d7ea;border-radius:calc(var(--ui-frame-radius) - 2px)}.app-road-profile-tile__preview span:nth-child(1){background:#c9d4df}.app-road-profile-tile__preview span:nth-child(2){background:#8795a3}.app-road-profile-tile__preview span:nth-child(3){background:#9bc4a4}.app-road-profile-tile__text{display:grid;min-width:0;gap:2px}.app-road-profile-tile__text strong,.app-road-profile-tile__text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-road-profile-tile__text span{color:#5f7696;font-size:12px}.app-road-template-save{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.app-road-element-tile{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;min-height:40px;padding:0;overflow:hidden;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fff;color:#2358bf;text-align:left;cursor:grab}.app-road-element-tile>span:last-child{padding:0 8px;overflow:hidden;text-overflow:ellipsis}.app-profile-template-targets{display:flex;flex-wrap:wrap;gap:6px}.app-profile-template-target{display:inline-grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;min-height:30px;max-width:220px;padding:4px 8px;border:1px solid #dbe4f3;border-radius:var(--ui-frame-radius);background:#fff;color:#18324f;line-height:1.2}.app-profile-template-target input{width:15px;height:15px;margin:0}.app-profile-template-target span:not(.material-symbols-outlined){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-profile-template-target .material-symbols-outlined{font-size:16px;color:#16703b}.app-profile-template-target.is-active{border-color:#8fb0ff;background:#eef4ff}.app-profile-template-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.app-profile-template-actions:last-of-type{grid-template-columns:minmax(0,1fr) auto}.app-profile-template-list,.app-junction-treatment-palette{display:flex;flex-wrap:wrap;gap:6px}.app-profile-template-chip,.app-junction-treatment-chip{display:inline-flex;align-items:center;gap:4px;min-height:28px;max-width:220px;padding:0 8px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fff;color:#28466e}.app-profile-template-chip span:last-child,.app-junction-treatment-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-lane-entity-list,.app-node-target-list{display:grid;gap:5px}.app-lane-entity-row{display:grid;grid-template-columns:minmax(70px,1fr) minmax(58px,.8fr) 54px 74px minmax(64px,.9fr);gap:6px;align-items:center;min-height:28px;padding:4px 6px;border:1px solid #e2eaf6;border-radius:var(--ui-frame-radius);background:#fbfdff;font-size:12px}.app-lane-entity-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-design-health-panel,.app-junction-editor-panel{display:grid;gap:8px}.app-design-health-grid{display:flex;flex-wrap:wrap;gap:5px}.app-design-health-selected{display:grid;gap:2px;padding:8px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fbfdff;color:#28466e}.app-design-health-selected strong,.app-design-health-selected span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-design-health-selected strong{color:#0f172a}.traffic-pressure-panel{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid #d7e1f1;border-radius:var(--ui-frame-radius);background:#fbfdff}.traffic-pressure-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.traffic-pressure-panel__head .material-symbols-outlined{color:#2358bf}.traffic-pressure-panel__rows,.traffic-pressure-panel__usage{display:grid;gap:5px}.traffic-pressure-row{display:grid;grid-template-columns:minmax(72px,.9fr) minmax(58px,.75fr) minmax(86px,.8fr) minmax(78px,.8fr) minmax(86px,.8fr) minmax(62px,.6fr);gap:6px;align-items:center;min-height:34px;padding:5px 6px;border:1px solid #e0e8f5;border-radius:var(--ui-frame-radius);background:#fff;font-size:12px}.traffic-pressure-row.is-missing{background:snow}.traffic-pressure-row>span,.traffic-pressure-row>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.traffic-pressure-source{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 7px;border-radius:6px;background:#e0f2fe;color:#075985;font-weight:700}.traffic-pressure-source.is-useredited{background:#fef3c7;color:#92400e}.traffic-pressure-source.is-measured{background:#dcfce7;color:#166534}.traffic-pressure-source.is-missing,.traffic-pressure-source.is-unknown{background:#fee2e2;color:#991b1b}.traffic-pressure-panel__usage{padding-top:4px;color:#52637a;font-size:12px}.app-node-target-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:30px;padding:4px 8px;border:1px solid #dbe4f3;border-radius:var(--ui-frame-radius);background:#fff;color:#18324f;text-align:left}.app-node-target-row.is-active{border-color:#8fb0ff;background:#eef4ff}.app-element-library{--app-element-library-color-col: 62px;display:grid;gap:6px;width:100%;max-height:48vh;overflow:auto;box-sizing:border-box;border:1px solid #d7e6ff;border-radius:var(--ui-frame-radius);background:#fbfdff;padding:8px}.app-element-library__row{--app-element-library-swatch-color: #cbd5e1;position:relative;display:block;width:100%;text-align:left;min-height:46px;padding:0;border:1px solid #d7e1f1;border-radius:10px;overflow:hidden;background:linear-gradient(to right,var(--app-element-library-swatch-color) 0,var(--app-element-library-swatch-color) var(--app-element-library-color-col),#ffffff var(--app-element-library-color-col),#ffffff 100%);color:#0f172a;cursor:grab;box-shadow:none;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.app-element-library__row:active{cursor:grabbing}.app-element-library__row:hover,.app-element-library__row:focus-visible{border-color:#9bbcff;background:linear-gradient(to right,var(--app-element-library-swatch-color) 0,var(--app-element-library-swatch-color) var(--app-element-library-color-col),#f5f9ff var(--app-element-library-color-col),#f5f9ff 100%);box-shadow:0 0 0 1px #9bbcff33;outline:none}.app-element-library__swatch-wrap{display:block;position:absolute;left:0;top:0;bottom:0;width:var(--app-element-library-color-col);border-right:1px solid #cfdcf2;border-radius:9px 0 0 9px;background:transparent}.app-element-library__row--band{--app-element-library-swatch-color: #b0b0b0}.app-element-library__row--stoep{--app-element-library-swatch-color: #d9d2c7}.app-element-library__row--fietspad{--app-element-library-swatch-color: #7a1f1f}.app-element-library__row--fietsstrook{--app-element-library-swatch-color: #8e2a2a}.app-element-library__row--rijbaan{--app-element-library-swatch-color: #cfd3d7}.app-element-library__row--berm{--app-element-library-swatch-color: #b7d3a8}.app-element-library__row--parkeren{--app-element-library-swatch-color: #e5e0d9}.app-element-library__row--boomvak{--app-element-library-swatch-color: #8ccf7a}.app-element-library__row--groen{--app-element-library-swatch-color: #b7d3a8}.app-element-library__row--tree{--app-element-library-swatch-color: #9fc4a6}.app-element-library__row--traffic{--app-element-library-swatch-color: #d7e0eb}.app-element-library__row--planting{--app-element-library-swatch-color: #c3d9b8}.app-element-library__row--ovl{--app-element-library-swatch-color: #f1d595}.app-element-library__row--default{--app-element-library-swatch-color: #cbd5e1}.app-element-library__row--fietspad .app-element-library__label,.app-element-library__row--fietsstrook .app-element-library__label{color:#17365c}.app-asset-row__meta{color:#5b6f89;font-size:12px;white-space:nowrap}.app-element-library__row--tree .app-element-library__label,.app-element-library__row--traffic .app-element-library__label,.app-element-library__row--ovl .app-element-library__label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px}.app-asset-row__name{min-width:0;overflow:visible;text-overflow:clip;white-space:normal}.app-element-library__row--tree .app-element-library__label{grid-template-columns:1fr;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;padding-top:6px;padding-bottom:6px}.app-element-library__label{display:flex;align-items:center;justify-content:flex-start;height:100%;min-height:46px;padding:0 10px 0 calc(var(--app-element-library-color-col) + 10px);min-width:0;font-size:14px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-error{color:var(--error-color)}.account-subscription-block{border:0;border-radius:0;background:transparent;padding:0}.subscription-panel{padding:12px}.subscription-panel .panel-header-row{margin-bottom:8px}.account-subscription-actions .btn-sm{min-height:30px;height:30px;padding:0 10px;box-shadow:none}.btn-link{border:0;background:transparent;color:#0b3ea9;padding:0;cursor:pointer;font-size:12px;text-decoration:underline}.panel-gap-top{margin-top:6px}.panel-gap-top-sm{margin-top:4px}.panel-gap-bottom{margin-bottom:10px}.app-shell-pricing-table-wrap{width:100%;overflow-x:auto;border:1px solid #d5dfed;border-radius:12px;background:#fff;box-shadow:0 8px 24px #0c244a14}.app-shell-pricing-table{width:100%;border-collapse:collapse;min-width:860px;table-layout:fixed}.app-shell-pricing-table th,.app-shell-pricing-table td{border:1px solid #cdd8e6;padding:8px 10px;vertical-align:top;font-size:12px}.app-shell-pricing-table th{background:linear-gradient(180deg,#edf4ff,#e5eefc);font-weight:700}.app-shell-pricing-table tbody tr:nth-child(2n) td{background:#f9fbff}.app-shell-main.is-pricing{overflow:hidden}.app-shell-pricing-page{height:100%;border:1px solid #cfdae8;border-radius:10px;background:radial-gradient(circle at 0% 0%,rgba(16,112,202,.08),transparent 40%),#fff;padding:12px;overflow:hidden}.app-shell-pricing-hero h1{margin:0;color:#0b1c38;font-size:30px}.app-shell-pricing-hero p{margin:8px 0 0;color:#334155;font-size:14px}.app-shell-pricing-plan-row{margin-top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.app-shell-plan-card{display:flex;flex-direction:column;border:1px solid #d9e2ee;border-radius:10px;background:#f8fbff;padding:12px;min-height:150px}.app-shell-plan-card.is-highlight{border-color:#17a88f;background:#edfdf8}.app-shell-plan-card h2{margin:0;font-size:16px;color:#0b1c38}.app-shell-plan-price{margin:auto 0 0;font-size:18px;font-weight:700;color:#0b3ea9}.app-title{margin:6px 0 2px;color:var(--primary-color);font-weight:700;letter-spacing:.02em;text-transform:uppercase}.app-subtitle{margin:0 0 10px;color:#3556a5;font-size:12px}.panel-divider{margin:12px 0}.panel-draw-btn{min-width:52px;width:52px;gap:2px}.panel-draw-plus{color:#22c55e;font-weight:700;font-size:16px;line-height:1}.app-profile-toolbar{margin:10px 10px 0;display:grid;gap:8px}.app-profile-toolbar__title{font-weight:700;color:#0f172a}.app-empty-profile{padding:12px}.app-right-pane-actions{flex-wrap:wrap}.app-elements-panel{display:grid;gap:8px}.app-elements-panel__title{margin-bottom:0}.app-assets-panel{border-color:#d7e6ff;background:#f7faff}.panel-card-title-no-margin{margin-bottom:0}.panel-form-grid{display:grid;grid-template-columns:1fr;gap:6px}.app-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:24px;background:#0f172a52}.app-dialog-card{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;border:1px solid #d7dee7;border-radius:8px;background:#fff;box-shadow:0 18px 48px #0f172a3d}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 18px 12px;border-bottom:1px solid #e4eaf2}.app-dialog-header h2{margin:0;font-size:18px;line-height:1.2}.app-dialog-header p{margin:4px 0 0;color:#52637a;font-size:13px}.app-dialog-form{display:grid;gap:8px;padding:16px 18px}.app-dialog-form label{display:grid;gap:6px;color:#26384f;font-size:12px;font-weight:600}.app-dialog-form textarea.panel-input{min-height:86px;resize:vertical;line-height:1.35}.app-dialog-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 18px;border-top:1px solid #e4eaf2}@media(max-width:560px){.app-dialog-backdrop{padding:12px}.app-dialog-two-col{grid-template-columns:1fr}.app-dialog-actions{justify-content:stretch}.app-dialog-actions .btn-sm{flex:1}}.panel-note{opacity:.75}.panel-subordinate-section{margin-top:12px;padding:10px;border:1px solid #dde3ea;border-radius:10px;background:#f7f9fc}.panel-subordinate-section.is-locked{opacity:.68;background:#f3f5f8;border-color:#e3e8ef}.panel-select-subordinate{background:#fdfefe;border:1px solid #d7dee7}.panel-subordinate-btn:not(.primary){opacity:.82}.participant-grid{display:flex;flex-wrap:wrap;gap:10px}.participant-item{display:flex;align-items:center;gap:4px}.btn-danger{background:#fff3f3;border:1px solid #e3b5b5}.btn-danger .material-symbols-outlined{color:#b3261e!important}.btn-danger:disabled .material-symbols-outlined{color:#9aa5b3!important}.inline-check-input{margin-right:6px}.panel-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.palette-grid{display:grid;gap:8px}.palette-item-btn{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #c9c9c9;border-radius:6px;padding:10px;background:#fff;box-shadow:0 1px 3px #0003;cursor:grab;width:100%;justify-content:flex-start}.palette-item-btn:hover{border-color:#039}.palette-tree-dot{width:14px;height:14px;border-radius:7px;background:#3f7a35;border:1px solid #2e6b3b}.palette-color-swatch{flex:0 0 auto}.palette-item-label{flex:1}.profile-pane-root{padding:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box}.profile-pane-title{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:22;pointer-events:none;padding:2px 10px;border-radius:999px;background:#ffffffe6;border:1px solid rgba(207,216,230,.9);font-weight:600;color:#18324f;line-height:1.2;white-space:nowrap;max-width:min(72%,560px);overflow:hidden;text-overflow:ellipsis}.profile-pane-grid{display:grid;grid-template-columns:var(--layout-left-pane-width-editor) 1fr;gap:0;align-items:stretch;height:100%;min-height:0;overflow:hidden;box-sizing:border-box}.profile-pane-sidebar{display:grid;gap:8px;position:sticky;top:0;align-self:start;background:#fff;padding:10px;border-right:1px solid #ddd;z-index:1;max-height:100%;overflow:auto}.profile-pane-actions{display:flex;flex-wrap:wrap;gap:6px}.profile-pane-group{display:grid;gap:8px;border:1px solid var(--ui-frame-border);border-radius:var(--ui-frame-radius);background:var(--ui-frame-bg);padding:10px}.profile-pane-row{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}.profile-pane-row-scenario{grid-template-columns:1fr}.profile-pane-row>label{margin:0}.profile-pane-select{width:100%;min-height:32px;height:32px;padding:0 34px 0 8px}.profile-pane-scenario-select-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center}select.primary-highlight.profile-pane-select{background:var(--primary-color) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.25L10 12.25l5-5' fill='none' stroke='rgba(255,255,255,0.98)' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 8px center!important;background-size:16px 16px!important}.profile-pane-select-secondary{width:100%;min-height:32px;height:32px;padding:0 34px 0 8px;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 7.5L10 12l4.5-4.5' fill='none' stroke='rgba(17,24,39,0.75)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:14px 14px}.profile-pane-copy{display:grid;justify-items:center;align-items:center;gap:4px}.profile-copy-arrow{color:#2f5fbb}.profile-copy-btn{width:32px;height:32px;border-radius:0;border:1px solid #cbd5e1;background:#fff;color:#0f172a;display:grid;place-items:center;padding:0}.profile-copy-btn:disabled{cursor:not-allowed;opacity:.45}.profile-copy-divider{width:2px;height:8px;background:#86a7e8}.profile-pane-divider{margin:6px 0}.profile-pane-canvas-wrap{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);gap:2px;height:100%;min-height:0;overflow:hidden;box-sizing:border-box}.profile-pane-empty{padding:10px;border:1px dashed #bbb;border-radius:8px}.profile-dropzone{position:relative;display:grid;grid-template-rows:minmax(0,1fr);padding:2px;border:1px dashed #cfd8dc;border-radius:8px;background:transparent;overflow:hidden;height:100%;min-height:0}.profile-dropzone.is-active{border-color:#2d6cdf;background:#f7fbff}.profile-zoom-controls{position:absolute;top:10px;right:10px;z-index:20;display:grid;gap:0;border:1px solid #c9c9c9;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0003;background:#fff}.profile-control-btn{width:32px;height:32px;border:1px solid #c9c9c9;border-radius:6px;background:#fff;box-shadow:0 1px 3px #0003;cursor:pointer;color:#111827;display:grid;place-items:center;line-height:1;padding:0;text-align:center}.profile-zoom-controls .profile-control-btn{border:0;border-radius:0;box-shadow:none}.profile-zoom-controls .profile-control-btn+.profile-control-btn{border-top:1px solid #c9c9c9}.profile-zoom-controls .profile-control-btn:hover{background:#eef5ff;color:#039!important}.profile-control-btn-lg{font-size:var(--ui-icon-size)!important;font-weight:var(--ui-icon-weight)!important;line-height:1!important}.profile-control-btn-zoom-in,.profile-control-btn-zoom-out{font-size:0!important}.profile-control-btn-zoom-in:before,.profile-control-btn-zoom-out:before{font-size:var(--ui-icon-size);font-weight:var(--ui-icon-weight);line-height:1;color:var(--ui-icon-color)}.profile-control-btn-zoom-in:before{content:"+"}.profile-control-btn-zoom-out:before{content:"−"}.profile-control-btn-zoom-in:hover:before,.profile-control-btn-zoom-out:hover:before{color:var(--ui-icon-hover-color)}.profile-control-btn-fit{font-size:11px;font-weight:400;letter-spacing:.4px}.profile-width-status{position:absolute;top:10px;left:10px;z-index:21;border:1px solid #c9c9c9;border-radius:6px;background:#fff;color:#111827;box-shadow:0 1px 3px #0003;padding:4px 8px;font-size:11px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.profile-width-status.is-mismatch{border-color:#b45309;background:#f59e0b;color:#fff!important}.profile-width-status.is-mismatch:hover{border-color:#92400e;background:#d97706;color:#fff!important}.profile-width-alert{width:16px;height:16px;border-radius:999px;background:#dc2626;color:#fff;font-weight:700;display:inline-grid;place-items:center;font-size:12px}.profile-width-status.is-mismatch .profile-width-alert{background:#ffffff38;color:#fff}.profile-width-metric{display:inline-flex;align-items:center;gap:3px}.profile-width-divider{opacity:.55;font-size:11px}.profile-width-symbol{font-family:Material Symbols Outlined;font-weight:var(--ui-icon-weight);font-style:normal;font-size:var(--ui-icon-size);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" var(--ui-icon-weight),"GRAD" 0,"opsz" 24}.profile-overlay-toggles{position:absolute;top:48px;left:10px;z-index:21;display:flex;gap:6px}.profile-compare-popover{position:absolute;top:90px;left:10px;z-index:22;width:min(260px,calc(100% - 20px));display:grid;gap:8px;padding:10px;border:1px solid #cfd8e6;border-radius:10px;background:#fffffffa;box-shadow:0 8px 20px #0f172a1f}.profile-mini-toggle{width:32px;height:32px;border:1px solid #c9c9c9;border-radius:6px;background:#fff;color:#111827;box-shadow:0 1px 3px #0003;cursor:pointer;font-size:10px;font-weight:400;line-height:1;padding:0;text-align:center;display:grid;place-items:center}.profile-mini-toggle:disabled{cursor:not-allowed;opacity:.45}.profile-mini-toggle-cmp.is-active,.profile-mini-toggle-new.is-active{background:#039;color:#fff!important}.profile-trash-zone{position:absolute;top:10px;left:50%;transform:translate(-50%);width:56%;max-width:720px;border:2px dashed #d1a7a7;border-radius:10px;padding:8px 10px;text-align:center;color:#7f1d1d;background:#fff7f7;font-size:12px;opacity:0;pointer-events:none;transition:opacity .12s ease,background .12s ease,border-color .12s ease}.profile-trash-zone.is-visible{opacity:1;pointer-events:auto}.profile-trash-zone.is-over{border-style:solid;border-color:#b91c1c;color:#991b1b;background:#fee2e2}.profile-drag-preview{position:fixed;left:var(--profile-drag-x, 0);top:var(--profile-drag-y, 0);z-index:1200;pointer-events:none;padding:4px 8px;border-radius:999px;border:1px solid #94a3b8;background:#f8fafc;color:#0f172a;font-size:12px;box-shadow:0 4px 16px #00000029}.profile-drag-preview.is-over-trash{border-color:#b91c1c;background:#fee2e2}.profile-svg{display:block;width:100%;height:100%;border:1px solid #ddd;border-radius:8px;background:#fff}.profile-svg.is-editable{cursor:grab}.profile-svg.is-drop-active{background:#f7fbff}.profile-canvas-stage{height:100%;min-height:0;opacity:0;pointer-events:none}.profile-canvas-stage.is-ready{opacity:1;pointer-events:auto}.svg-noevents{-webkit-user-select:none;user-select:none;pointer-events:none}.profile-tree-icon{filter:none}.profile-tree-hit{cursor:grab}.profile-tree-hit.is-static,.profile-element-hit{cursor:default}.profile-resize-hit{cursor:ew-resize}.profile-btn-icon{display:block;width:16px;height:16px;pointer-events:none}.profile-btn-symbol{font-family:Material Symbols Outlined;font-weight:var(--ui-icon-weight);font-style:normal;font-size:var(--ui-icon-size);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" var(--ui-icon-weight),"GRAD" 0,"opsz" 24;pointer-events:none}.profile-control-btn-fit .profile-btn-icon,.profile-mini-toggle-new .profile-btn-icon{width:18px;height:18px}.profile-mini-toggle-new .profile-btn-symbol{font-size:var(--ui-icon-size)}.segment-list-item,.profile-pane-actions .btn-sm,.button-row .btn-sm{align-items:center}.ui-chip-btn,.profile-control-btn,.profile-mini-toggle,.profile-copy-btn,.palette-item-btn{border:1px solid #c9c9c9;border-radius:6px;background:#fff;box-shadow:0 1px 3px #0003;color:#111827!important;font-weight:400}.ui-chip-btn:hover,.profile-control-btn:hover,.profile-mini-toggle:hover,.profile-copy-btn:hover,.palette-item-btn:hover{border-color:#039;color:#039!important}.profile-mini-toggle-cmp.is-active:hover,.profile-mini-toggle-new.is-active:hover{background:#039;border-color:#039;color:#fff!important}.ui-chip-btn.btn-danger{border-color:#d79a9a;background:#fff3f3;color:#9f2525!important}.app-profile-editor-layout{display:grid;grid-template-rows:minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.app-profile-editor-body{min-height:0;overflow:hidden}.app-design-start-btn{width:100%}.app-design-flow{margin-top:10px;display:flex;align-items:center;gap:10px;min-height:40px;padding:10px 12px;border-radius:8px;font-size:.92rem}.app-design-flow.is-compact{min-height:0;padding:8px 10px;font-size:.85rem}.app-design-flow--preparing,.app-design-flow--generating{background:#eef4ff;border:1px solid #c9dafd;color:#1d4f9c}.app-design-flow--ready{background:#edf9f0;border:1px solid #c7e7ce;color:#1f6b35}.app-design-flow--error{background:#fff2f2;border:1px solid #efc1c1;color:#9f2525}.app-design-flow__spinner{width:16px;height:16px;border-radius:999px;border:2px solid rgba(29,79,156,.2);border-top-color:#1d4f9c;animation:infradesign-spin .9s linear infinite;flex:0 0 auto}@keyframes infradesign-spin{to{transform:rotate(360deg)}}.route-planner-launcher{position:fixed;right:20px;bottom:20px;z-index:80;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(27,49,72,.18);border-radius:999px;color:#fff;background:#0f766e;box-shadow:0 16px 34px #0f233738;cursor:pointer}.route-planner-launcher:hover{background:#0b625c}.route-planner-demo{display:grid;grid-template-columns:minmax(300px,372px) minmax(0,1fr);width:100vw;height:100vh;min-height:0;overflow:hidden;background:#f4f7f8;color:#182331}.route-planner-panel{display:flex;flex-direction:column;gap:16px;min-height:0;padding:18px;background:#fff;border-right:1px solid #d8e0e5;box-shadow:10px 0 24px #202d3a14;overflow:auto;z-index:2}.route-planner-panel__header{display:flex;align-items:center;gap:12px}.route-planner-panel__header h1{margin:0;font-size:1.35rem;line-height:1.12;letter-spacing:0}.route-planner-panel__header p{margin:3px 0 0;color:#657386;font-size:.9rem}.route-planner-section{display:grid;gap:10px}.route-planner-segmented{width:100%}.route-planner-segmented .material-symbols-outlined{font-size:20px}.route-planner-ab{display:grid;grid-template-columns:1fr 1fr}.route-planner-field{display:grid;gap:7px;color:#536377;font-size:.9rem}.route-planner-field select{width:100%;min-height:40px;border:1px solid #d5dee6;border-radius:8px;padding:0 10px;color:#182331;background:#fff;font:inherit}.route-planner-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.route-planner-status{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;border:1px solid #d7e1e7;border-radius:8px;color:#43556b;background:#f8fbfc;font-size:.86rem}.route-planner-status .material-symbols-outlined{font-size:20px}.route-planner-status.is-ready{color:#0b514d;border-color:#b6ddd5;background:#eef8f6}.route-planner-status.is-error,.route-planner-status.is-unauthorized{color:#8a1f17;border-color:#efc1c1;background:#fff2f2}.route-planner-metric{min-width:0;display:grid;gap:4px;padding:10px;border:1px solid #dbe4ea;border-radius:8px;background:#f9fbfc}.route-planner-metric span,.route-planner-metric small{min-width:0;overflow-wrap:anywhere;color:#627286;font-size:.76rem}.route-planner-metric strong{color:#182331;font-size:1.05rem;line-height:1.1}.route-planner-impact{display:grid;gap:10px;padding:12px;border:1px solid #cfdde6;border-radius:8px;background:#f6faf9}.route-planner-impact__head{display:inline-flex;align-items:center;gap:8px;color:#0b514d}.route-planner-impact__head .material-symbols-outlined{font-size:21px}.route-planner-range{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.route-planner-range span{display:grid;place-items:center;min-height:34px;border-radius:7px;color:#0b514d;background:#e1f2ef;font-weight:700}.route-planner-impact p,.route-planner-impact small{margin:0;color:#536377;line-height:1.35}.route-planner-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;color:#536377;font-size:.84rem}.route-planner-legend span{display:inline-flex;align-items:center;gap:6px}.route-planner-legend i{width:22px;height:4px;border-radius:999px}.route-planner-legend .is-baseline{background:#1264b0}.route-planner-legend .is-scenario{background:#d97706}.route-planner-legend .is-closed{background:#b42318}.route-planner-map-wrap{position:relative;min-width:0;min-height:0}.route-planner-map{position:absolute;top:0;right:0;bottom:0;left:0}@media(max-width:760px){.route-planner-demo{grid-template-columns:1fr;grid-template-rows:minmax(292px,42vh) minmax(0,1fr)}.route-planner-panel{order:2;border-top:1px solid #d8e0e5;border-right:0}.route-planner-map-wrap{order:1}}.junction-standalone-shell{min-height:calc(100vh - 72px);padding:24px;background:#f5f7fb;color:#12263f}.junction-standalone-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1360px;margin:0 auto 18px;padding:8px 0 18px;border-bottom:1px solid #d8e1ee}.junction-standalone-hero h1{margin:0;font-size:34px;line-height:1.1}.junction-standalone-hero p{max-width:760px;margin:10px 0 0;color:#53657c}.junction-standalone-status{display:grid;gap:4px;min-width:220px;padding:14px 16px;border:1px solid #d8e1ee;border-radius:8px;background:#fff}.junction-standalone-status span{color:#6b7c91;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.junction-standalone-workspace,.junction-standalone-results{max-width:1360px;margin:0 auto 18px}@media(max-width:760px){.junction-standalone-shell{padding:14px}.junction-standalone-hero{align-items:stretch;flex-direction:column}.junction-standalone-status{min-width:0}}.infradesign-release-scope{position:fixed;z-index:30;top:.65rem;left:50%;display:flex;max-width:min(46rem,calc(100vw - 10rem));padding:.45rem .7rem;gap:.55rem;align-items:baseline;border:1px solid color-mix(in srgb,var(--color-warning, #d97706) 38%,transparent);border-radius:.55rem;background:color-mix(in srgb,var(--surface-raised, #fff) 94%,transparent);box-shadow:0 .25rem .9rem #0f172a1a;color:var(--text-primary, #172033);font-size:.78rem;transform:translate(-50%)}.infradesign-release-scope span{color:var(--text-secondary, #526071)}@media(max-width:760px){.infradesign-release-scope{position:relative;top:auto;left:auto;max-width:none;margin:.5rem;align-items:flex-start;flex-direction:column;transform:none}}
