/* One Planning design system: regular material for controls, opaque data surface.
   Navigation axes remain canvas content; material never blurs engineering data. */
#planning-workspace{
 --pw-ink:#344b62;--pw-muted:#64798d;--pw-accent:#1674d1;--pw-edge:#dfe7f0;
 --pw-radius:18px;--pw-control:32px;
 --pw-glass:linear-gradient(155deg,#ffffffdb,#f1f6fca6 52%,#ffffffbf);
 --pw-glass-edge:#ffffffef;
 --pw-glass-shadow:0 4px 14px #23395412,0 1px 3px #2339540a,inset 0 1px 0 #fff,inset 0 -1px 0 #9ab4d322;
 position:absolute;inset:34px 0 0;padding-bottom:61px;box-sizing:border-box;z-index:12;
 display:flex;flex-direction:column;min-height:0;min-width:0;
 background:linear-gradient(135deg,#f1f5fa,#f8fafc 60%,#eff4fa);color:var(--pw-ink);font:12px system-ui;
 border-top:1px solid var(--pw-edge);
}
#planning-workspace[hidden]{display:none}
.planning-active :is(#mode-note,#empty-workspace,#quick-look,#depth-range,#quick-look-toggle,#follow,#reference-position,#edit-selected,#design-tools,#table,#fit){display:none!important}
.planning-active #toolbar-context{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#planning-workspace button{
 height:var(--pw-control);border:1px solid #dce6f0b3;border-radius:var(--pw-radius);background:#ffffffa6;
 padding:0 11px;color:var(--pw-ink);white-space:nowrap;font:inherit;cursor:pointer;
 box-shadow:inset 0 1px 0 #fff;transition:background .15s,border-color .15s,box-shadow .15s;
}
#planning-workspace button:hover:enabled{background:#ffffffe6;border-color:#b8cee6;box-shadow:inset 0 1px 0 #fff,0 2px 7px #23588a0c}
#planning-workspace button:active:enabled{background:#e7f0fb;box-shadow:inset 0 1px 3px #396a9a15}
#planning-workspace button:disabled{opacity:.45;cursor:default;box-shadow:none}
#planning-workspace :focus-visible{outline:2px solid var(--pw-accent);outline-offset:2px}
#planning-workspace [aria-invalid=true]{border-color:#ce435c!important;background:#fff0f2!important}
#planning-workspace :is(input,select,textarea){
 min-width:0;max-width:100%;box-sizing:border-box;background:#ffffffd9;border:1px solid var(--pw-edge);
 color:var(--pw-ink);border-radius:11px;padding:6px 8px;font:inherit;
}
#planning-workspace :is(input,select){min-height:var(--pw-control)}
#planning-workspace input[type=number]{font-variant-numeric:tabular-nums}
#planning-workspace input[type=checkbox]{width:15px;height:15px;min-height:0;padding:0;accent-color:var(--pw-accent);flex-shrink:0}
#planning-workspace :is(button,select,summary,.pw-waypoint-title){user-select:none;-webkit-user-select:none}
/* One optical material on the parent control group; no nested backdrop filters. */
#planning-workspace :is(.pw-tabs,.pw-object-tools,.pw-plot-tools,.pw-actions){
 background:var(--pw-glass);border:1px solid var(--pw-glass-edge);border-radius:24px;
 box-shadow:var(--pw-glass-shadow);backdrop-filter:blur(18px) saturate(135%);-webkit-backdrop-filter:blur(18px) saturate(135%);
 box-sizing:border-box;
}
.pw-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;flex:none}
.pw-tabs{display:grid;grid-template-columns:1fr 1fr;position:relative;isolation:isolate;padding:4px;flex:none}
#planning-workspace .pw-tabs button{position:relative;z-index:1;background:transparent;border-color:transparent;box-shadow:none;min-width:122px}
#planning-workspace .pw-tabs .active{color:var(--pw-accent);font-weight:650}
.pw-segment-drop{position:absolute;z-index:0;pointer-events:none;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/2);
 border-radius:20px;box-sizing:border-box;border:1px solid #fffffff5;background:linear-gradient(150deg,#fff,#eaf3ffd9);
 box-shadow:0 2px 8px #264d7d1a,inset 0 1px 0 #fff,inset 0 -1px 0 #b5d0e83b;transform:translateX(calc(var(--pw-segment)*100%));}
.pw-switch-forward .pw-segment-drop{animation:pw-drop-forward .32s cubic-bezier(.22,.8,.28,1)}
.pw-switch-back .pw-segment-drop{animation:pw-drop-back .32s cubic-bezier(.22,.8,.28,1)}
@keyframes pw-drop-forward{0%{transform:translateX(0) scaleX(1)}45%{transform:translateX(55%) scaleX(1.08)}100%{transform:translateX(100%) scaleX(1)}}
@keyframes pw-drop-back{0%{transform:translateX(100%) scaleX(1)}45%{transform:translateX(45%) scaleX(1.08)}100%{transform:translateX(0) scaleX(1)}}
.pw-object-tools{display:flex;align-items:center;flex-wrap:wrap;gap:3px;padding:4px;min-width:0;max-width:100%;flex:1}
#planning-workspace .pw-object-tools #pw-object{flex:1;min-width:110px;width:auto;border-radius:18px;background:#ffffff85}
#planning-workspace .pw-object-tools button{flex-shrink:0;background:transparent;border-color:transparent;box-shadow:none}
.pw-coordinate{margin-left:auto;color:var(--pw-muted);font-size:11px;white-space:nowrap}
.pw-content{display:grid;grid-template-columns:260px minmax(0,1fr);gap:10px;padding:0 10px 8px;flex:1;min-height:0;min-width:0}
.pw-content.pw-properties-hidden,.pw-content.pw-focused{grid-template-columns:minmax(0,1fr)}
.pw-properties-hidden #pw-properties-panel,.pw-focused #pw-properties-panel{display:none}
#pw-properties-panel{min-height:0;overflow:auto;scrollbar-width:thin;padding:12px;border:1px solid #e2e9f1;border-radius:var(--pw-radius);
 background:linear-gradient(165deg,#ffffffef,#f3f7fbe8);box-shadow:inset 0 1px 0 #fff}
#pw-properties-panel h3{font-size:13px;margin:0 0 10px}
#planning-workspace #pw-properties-panel label{display:block;font-size:12px;color:#4c6175;margin:8px 0}
#planning-workspace #pw-properties-panel :is(input:not([type=checkbox]),select){width:100%;min-width:0;margin-top:4px}
#pw-properties-panel p{line-height:1.5}#pw-properties-panel code{font-size:11px;overflow-wrap:anywhere}
#pw-properties-panel details{margin:10px 0;padding-top:5px}
#pw-properties-panel summary{font-size:12px;color:#3e5871;padding:4px 0;line-height:1.4;cursor:pointer}
#pw-properties-panel details[open]>summary{margin-bottom:8px}
#pw-properties-panel summary small,.pw-advanced h3 small{float:right;color:var(--pw-muted);font-size:11px;font-weight:400;margin-left:5px}
#pw-properties-panel textarea{width:100%;margin:7px 0;resize:vertical}
#planning-workspace .pw-check{display:flex;align-items:center;flex-direction:row;gap:6px;line-height:1.4}
.pw-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pw-field-pair label{min-width:0}.pw-field-pair input{width:100%}
.pw-field-pair label:has(input[data-advanced-field$=".position.2"]){grid-column:1/-1}
.pw-plan-pair{display:grid;grid-template-columns:52px minmax(0,1fr);gap:9px}
#planning-workspace .pw-plan-pair input[type=color]{width:100%;padding:4px;height:33px}
.pw-meta,.pw-inspector-scope,.pw-inspector-notice{font-size:11px;line-height:1.45;color:var(--pw-muted)}
.pw-inspector-scope,.pw-inspector-notice{margin:9px 2px}.pw-inspector-notice{color:var(--pw-muted)}
.pw-inspector-group{margin:0 0 12px;border:1px solid var(--pw-glass-edge);border-radius:var(--pw-radius);padding:12px;
 background:var(--pw-glass);box-shadow:var(--pw-glass-shadow),0 0 0 1px #dce5ee80}
.pw-inspector-group h3{margin:0 0 9px}
.pw-algorithm-tag{float:right;font-size:11px;font-weight:400;color:var(--pw-muted)}
.pw-editor-method{border-top:1px solid var(--pw-edge);padding-top:10px}
.pw-source-tag{display:inline-block;font-size:11px;border-radius:12px;background:#edf4fc;color:#496d91;padding:4px 8px}
.pw-source-summary{margin:14px 0 16px;font-size:12px;line-height:1.5}
.pw-source-summary dt{color:var(--pw-muted);margin-top:9px;font-size:11px}
.pw-source-summary dd{margin:2px 0;color:var(--pw-ink);font-variant-numeric:tabular-nums}
.pw-tie-context .pw-source-summary dd{overflow-wrap:anywhere}
.pw-source-technical pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}
/* Canvas/table stay white and stable. Floating tools use the same capsule. */
.pw-work{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff;border:1px solid var(--pw-edge);border-radius:var(--pw-radius);overflow-x:hidden;overflow-y:auto}
.pw-plot-tools{display:flex;flex-wrap:wrap;gap:3px;align-items:center;margin:8px 9px 5px;padding:4px;align-self:flex-start;max-width:calc(100% - 18px);flex:none}
#planning-workspace .pw-plot-tools select{max-width:205px;border-radius:18px;background:#ffffff85}
#planning-workspace .pw-plot-tools button{background:transparent;border-color:transparent;box-shadow:none}
#planning-workspace button[aria-pressed=true]:not(.pw-tabs button){color:var(--pw-accent);background:#e7f1ff;border-color:#c6daf3}
.pw-plot-tools{position:relative;z-index:5}
.pw-legend{position:relative;display:flex;align-items:center;flex:none;margin-left:auto;padding:0;color:var(--pw-ink);font-size:12px;z-index:8}
.pw-legend:empty{display:none}
.pw-legend-details{position:relative;border:0;flex:none;margin:0}
.pw-legend-details>summary{display:grid;place-items:center;width:32px;height:32px;padding:0;list-style:none;cursor:pointer;border:1px solid #ffffffdc;border-radius:18px;background:linear-gradient(145deg,#ffffffec,#f4f7fbd9);box-shadow:inset 0 1px 0 #fff,0 2px 5px #1736500a;font-size:15px;font-weight:500;color:#52677d;user-select:none}
.pw-legend-details>summary::-webkit-details-marker{display:none}
.pw-legend-details>summary:focus-visible{outline:2px solid #2683c6;outline-offset:2px}
.pw-legend-details[open]>summary{color:#1674d1;background:#edf5ffee}
.pw-legend-panel{position:absolute;top:calc(100% + 9px);right:0;display:flex;flex-direction:column;gap:11px;width:300px;max-width:calc(100vw - 32px);max-height:min(280px,55vh);overflow:auto;padding:15px;border:1px solid #ffffffed;border-radius:18px;background:linear-gradient(135deg,#ffffffed,#f5f8fbed);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%);box-shadow:inset 0 1px 0 #fff,0 8px 26px #2039521f;line-height:1.45}
.pw-legend-details:not([open])>.pw-legend-panel{display:none}
.pw-legend-title{font-size:12px;font-weight:600}
.pw-legend-panel span{position:relative;padding-left:28px;max-width:none;white-space:normal;overflow-wrap:anywhere}
.pw-legend-panel span:before{content:'';position:absolute;left:0;top:.65em;width:18px;height:2px;background:var(--c)}
.pw-legend-panel .pw-dashed:before{background:repeating-linear-gradient(to right,var(--c) 0 5px,transparent 5px 8px)}
.pw-legend-panel .pw-dot-dash:before{background:repeating-linear-gradient(to right,var(--c) 0 8px,transparent 8px 10px,var(--c) 10px 12px,transparent 12px 14px)}
.pw-legend-panel .pw-dotted:before{background:repeating-linear-gradient(to right,var(--c) 0 3px,transparent 3px 6px)}
.pw-legend-panel p,.pw-legend-panel small{margin:0;font-size:11px;color:var(--pw-muted)}
.pw-legend-panel .pw-coordinate-warning{color:#8a682a}
.pw-help{flex:none;padding:3px 10px;font-size:11px;color:#496982}.pw-help summary{cursor:pointer}
.pw-guide{font-size:12px;line-height:1.45;color:#466582;padding:6px 0;margin:0}
.pw-guide[hidden]{display:none}
.pw-canvas-wrap{flex:1;min-height:160px;min-width:0;position:relative}
#pw-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;background:#fff}
.pw-readout{position:relative;padding:7px 98px 7px 10px;background:linear-gradient(#f8fbff,#f2f7fd);border-top:1px solid #e4ecf4;
 font-size:12px;line-height:1.4;font-variant-numeric:tabular-nums;min-height:38px;max-height:112px;overflow:auto;box-sizing:border-box;flex:none;color:#466582}
#pw-readout-primary{display:flex;flex-wrap:wrap;align-items:center;gap:5px 13px;min-height:25px}
#planning-workspace #pw-readout-toggle{position:absolute;right:6px;top:5px;height:28px;min-height:28px;font-size:11px}
.pw-selection-details{margin-top:5px;padding-top:5px;border-top:1px solid var(--pw-edge)}
.pw-station-tag{border-radius:12px;padding:4px 9px;background:#e4effc;color:#2168aa;font-size:11px;font-weight:650;white-space:nowrap}
.pw-measure{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;font-size:12px}
.pw-measure-name,.pw-measure small{font-size:10px;color:#566d81;font-weight:400}.pw-measure b{font-weight:550;color:var(--pw-ink)}
.pw-quality-note{font-size:11px;color:#916121}
.pw-table-panel{height:var(--pw-table-height,200px);max-height:42%;min-height:120px;display:flex;flex-direction:column;border-top:1px solid var(--pw-edge);flex:none}
/* Area controls have content-dependent height: keep a real scroll row between
   wrapped stick actions and vertices; the outer work pane handles short views. */
.pw-table-panel:has(> .pw-vertices){height:auto;min-height:var(--pw-table-height,200px);max-height:none}
.pw-table-panel:has(> .pw-vertices) > .pw-table-scroll{flex:1 0 96px}
.pw-table-panel.pw-table-hidden{display:none}
#pw-table-resize{height:7px;cursor:ns-resize;flex:none;background:linear-gradient(#e5edf5,#f8fbfd);touch-action:none}
#pw-table-resize:focus-visible{outline-offset:-2px}
.pw-table-tools{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px 8px;flex:none}
.pw-table-tools span{margin-left:auto;font-size:11px;color:var(--pw-muted)}
#planning-workspace #pw-station-search{width:150px;min-width:110px;flex:0 1 150px}
.pw-table-scroll{overflow:auto;min-height:0;flex:1;scrollbar-width:thin}
.planning-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.planning-table :is(td,th){padding:5px 7px;border-bottom:1px solid #eaf0f6;text-align:right;white-space:nowrap}
.planning-table th{position:sticky;top:0;background:#f3f7fb;z-index:1;font-weight:500;color:#52677d}
.planning-table input{width:84px;height:30px}.planning-table tr.selected,.planning-table tr.pw-tie.selected{background:#e7f2ff}
.planning-table tr.violation{background:#fff0f2;color:#b62c47}.planning-table tr.pw-tie{background:#f1f6fb}.planning-table tr.pw-removed{background:#f8f8fa}
.planning-table [readonly]{background:#f0f4f8!important;color:#52677d!important;border-color:transparent!important}
#planning-workspace .pw-empty-row{text-align:left;white-space:normal;color:#52677d;padding:12px}
.pw-vertices{display:flex;gap:5px;align-items:center;padding:7px;overflow-x:auto;border-top:1px solid var(--pw-edge);flex:none}
.pw-vertices > label{display:flex;align-items:center;gap:5px;flex:none}
.pw-vertices > span{flex:none;white-space:nowrap}
.pw-vertices input{width:82px;flex:none}
.pw-bottom{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:46px;padding:5px 10px;flex:none}
#pw-status{flex:1;font-size:12px;line-height:1.4;max-height:48px;overflow:auto;scrollbar-width:thin}
#pw-status[data-type=error]{color:#b6384f}#pw-status[data-type=stale]{color:var(--pw-muted)}
.pw-actions{display:flex;flex-wrap:wrap;gap:3px;flex-shrink:0;padding:4px;max-width:100%}
#planning-workspace #pw-save{background:linear-gradient(150deg,#f7fbffdd,#dfedffc4);border-color:#bcd5f4;color:var(--pw-accent)}
#planning-workspace #pw-remove{margin-left:8px;border-color:#efced4;color:#a4394a}
#planning-workspace #pw-pointer{max-width:220px;flex-shrink:0}
.pw-candidate-summary{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0}
@media(max-width:1450px){.pw-coordinate{display:none}.pw-content{grid-template-columns:240px minmax(0,1fr);gap:8px}.pw-plot-tools select{max-width:170px}.pw-readout{max-height:92px}}
@media(max-width:1200px){.pw-object-tools{flex-wrap:wrap}.pw-object-tools #pw-object{flex-basis:180px}}
@media(max-width:1050px){.pw-content{grid-template-columns:220px minmax(0,1fr)}.pw-bottom{gap:5px}.pw-actions{margin-left:auto}.planning-table :is(td,th){padding:4px}.planning-table input{width:72px}}
@media(max-height:750px){.pw-table-panel{max-height:32%}}
/* Zoomed short viewports keep mandatory controls reachable with internal scroll. */
@media(max-height:650px){.pw-work{overflow-y:auto;overflow-x:hidden}.pw-canvas-wrap{flex:0 0 160px}.pw-table-panel{flex-shrink:0;max-height:none;min-height:120px}}
@media(max-width:650px){#planning-workspace{top:40px;bottom:48px}.pw-content{grid-template-columns:minmax(0,1fr);position:relative}#pw-properties-panel{position:absolute;z-index:3;left:7px;top:7px;bottom:7px;width:210px;box-shadow:3px 0 12px #233c5422}.pw-head{padding:5px;gap:5px}.pw-bottom{flex-direction:column;align-items:stretch}.pw-actions{justify-content:flex-end}.pw-tabs{width:100%}.pw-object-tools{flex-basis:100%}.pw-canvas-wrap{min-height:140px}}
@media(prefers-reduced-transparency:reduce){#planning-workspace :is(.pw-tabs,.pw-object-tools,.pw-plot-tools,.pw-actions){backdrop-filter:none;-webkit-backdrop-filter:none;background:#f8fbff}}
@media(prefers-reduced-motion:reduce){#planning-workspace button{transition:none}.pw-segment-drop{animation:none!important}}

/* Saved-source actions share the existing Planning control material. */
.pw-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}
.pw-plan-source,.pw-plan-protected{font-size:11px;color:var(--pw-muted);white-space:nowrap}
.pw-plan-actions button{min-height:30px;padding:4px 10px}
.pw-plan-protected{padding:4px 7px}

.source-plan-row button{padding:0 4px;min-height:24px;border:0;border-radius:6px;background:transparent;box-shadow:none;font:inherit;text-align:left;color:inherit}
.source-plan-row button:hover{background:#dce9f855}

.pw-inspector-limits{margin:9px 2px;font-size:11px;color:var(--pw-muted)}.pw-inspector-limits summary{cursor:pointer}.pw-inspector-limits p{margin:6px 0}
