/* ===========================================================================
   PREPLAN EDITOR                                      (Donald + Brad, 2026-09-29)
   ===========================================================================
   Ported from the audited prototype (docs/preplans/editor/prototype/editor.css,
   v4) onto the app. APP TOKENS ONLY (frontend/shell/app.css :root): tints are
   color-mix() of a token, never a literal colour. Gloves: every control is
   at least 44 px; no text is under 12 px (DESIGN §10 test 23). The app's root
   font is 15 px, so sizes here are px. The editor is a full-screen layer
   ABOVE the library (400) and BELOW the document viewer (420), which opens
   over it. */
.ed{position:fixed;inset:0;z-index:410;background:var(--bg);color:var(--text);display:flex;flex-direction:column;padding-top:var(--sat);font-family:var(--font);-webkit-tap-highlight-color:transparent}
.ed *{box-sizing:border-box}
.ed button{font-family:var(--font);cursor:pointer}
.ed[data-truth-bad]{outline:3px solid var(--fire);outline-offset:-3px}
.ed .pp-tag,.ed .pp-jc,.ed .pp-sh-sub,.ed .pp-code{font-size:12px}
.ed .pp-sh-title{font-size:17px}
.ed .pp-x{width:44px;height:44px}
/* app.css shrinks the main map's credits to 9 px with !important; the editor keeps them legible */
.ed .leaflet-control-attribution{font:500 12px/1.3 var(--font)!important;color:var(--text)!important;background:color-mix(in srgb,var(--bg) 70%,transparent)!important;padding:2px 6px!important}
.ed .leaflet-control-attribution a{color:var(--text)!important}
.ed-map .leaflet-control-scale-line{font:700 12px/1.2 var(--font);color:var(--text);border-color:var(--text);background:color-mix(in srgb,var(--bg) 55%,transparent)}

/* frame */
.ed-top{display:flex;align-items:center;gap:10px;padding:6px 12px 10px;background:var(--bg);flex-shrink:0;min-height:58px}
.ed-back{background:var(--card);border:none;color:var(--text);min-width:44px;height:44px;border-radius:13px;font-size:26px;line-height:1;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ed-backlbl{padding:0 12px;font:700 15px/1 var(--font)}
.ed-hd{min-width:0;flex:1}
.ed-t{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-s{font:600 12px/1.3 var(--font);color:var(--muted2);letter-spacing:.03em;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-tbtn{border:none;background:var(--card);color:var(--text);min-width:44px;height:44px;border-radius:13px;padding:0 14px;font:700 14px/1 var(--font);flex-shrink:0}
.ed-tbtn.pri{background:var(--acc);color:var(--acc-ink)}
.ed-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:24px}
.ed-foot{flex-shrink:0;padding:10px 16px calc(var(--sab) + 10px);background:var(--bg);position:relative;z-index:5}
.ed-pri{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;border:none;border-radius:16px;background:var(--acc);color:var(--acc-ink);font:800 17px/1 var(--font)}
.ed-pri.sec{background:var(--card2);color:var(--text);border:1.5px solid var(--pill)}
.ed-link{display:block;width:100%;min-height:44px;margin-top:6px;border:none;background:none;color:var(--acc);font:700 15px/1 var(--font)}
.ed-link.ed-del{color:var(--fire);margin:18px 0 8px}
.ed-footnote{font:600 13px/1.4 var(--font);color:var(--muted2);padding:0 4px 8px;text-align:center}
.ed-footnote.warn{color:var(--haz)}

/* the pill */
.ed-sync{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;padding:0 11px;min-height:30px;background:var(--card);font:700 12px/1 var(--font);color:var(--muted2);flex-shrink:0;white-space:nowrap}
.ed-sync i{width:8px;height:8px;border-radius:50%;background:var(--pp-ok)}
.ed-sync.q{color:var(--haz);background:color-mix(in srgb,var(--haz) 12%,transparent)} .ed-sync.q i{background:var(--haz)}
.ed-sync.s i{background:var(--medical)}
.ed-sync.e{color:var(--fire);background:color-mix(in srgb,var(--fire) 18%,transparent)} .ed-sync.e i{background:var(--fire)}
button.ed-sync{min-height:44px}

/* overview */
.ed-hero{margin:4px 16px 0;height:176px;border-radius:18px;overflow:hidden;position:relative;background:var(--card);border:none;padding:0;display:block;width:calc(100% - 32px)}
.ed-hero .ed-map{position:absolute;inset:0;pointer-events:none}
.ed-hero-l{position:absolute;left:10px;bottom:10px;z-index:500;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--text);border-radius:999px;padding:9px 13px;font:700 12px/1 var(--font)}
.ed-status{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:12px 16px 0}
.ed-me{color:var(--text);background:var(--card2)}
.ed-openchip{border:none;min-height:44px;padding:0 14px;background:color-mix(in srgb,var(--haz) 16%,transparent);color:var(--haz)}
.ed-banner{margin:12px 16px 0;border-radius:14px;padding:12px 14px;background:color-mix(in srgb,var(--assist) 12%,transparent);color:var(--text);font-size:13px;line-height:1.45}
.ed-banner.warn{background:color-mix(in srgb,var(--haz) 12%,transparent);color:var(--haz)}
.ed-hintbar{display:flex;align-items:center;gap:10px;justify-content:space-between}
.ed-hintbar .pp-x{flex-shrink:0}
.ed-form{padding:2px 4px 4px;display:flex;flex-direction:column;gap:5px}
.ed-form .ed-inp{margin-bottom:6px}
.ed-card{margin:12px 16px 0;background:var(--card);border-radius:18px;padding:14px 16px}
.ed-card-h{display:flex;align-items:center;gap:10px}
.ed-card-t{font-weight:800;font-size:16px}
.ed-card-s{font-size:13px;color:var(--muted2);margin-top:4px;line-height:1.45}
.ed-prog{display:flex;gap:3px;margin-top:12px}
.ed-prog i{flex:1;height:6px;border-radius:3px;background:var(--pill)}
.ed-prog i.f{background:var(--pp-ok)} .ed-prog i.n{background:var(--medical)} .ed-prog i.k{background:color-mix(in srgb,var(--haz) 55%,var(--bg))}
.ed-sec{display:flex;align-items:center;justify-content:space-between;font:700 12px/1 var(--font);color:var(--muted2);letter-spacing:.06em;text-transform:uppercase;padding:22px 20px 8px}
.ed-list{margin:0 16px;background:var(--card);border-radius:18px;overflow:hidden}
.ed-row{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 6px 10px 16px}
.ed-row + .ed-row,.ed-row + .ed-exp,.ed-exp + .ed-row{border-top:1px solid var(--bdr)}
.ed-row.flash{box-shadow:inset 0 0 0 2px var(--acc)}
.ed-row-b{flex:1;min-width:0;background:none;border:none;color:inherit;text-align:left;padding:4px 0;font:inherit;min-height:44px}
.ed-row-l{display:block;font:700 12px/1.2 var(--font);color:var(--muted2);letter-spacing:.03em;text-transform:uppercase}
.ed-row-v{display:block;font-weight:700;font-size:15.5px;margin-top:5px;line-height:1.25}
.ed-row-v.unk{font-style:italic;font-weight:600;color:var(--muted2)}
.ed-row-sub{display:block;font-size:12px;color:var(--muted2);margin-top:3px;line-height:1.35}
.ed-src{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font:700 12px/1.3 var(--font);color:var(--haz)}
.ed-src i{width:7px;height:7px;border-radius:50%;background:var(--haz)}
.ed-src.ok{color:var(--assist)} .ed-src.ok i{background:var(--pp-ok)}
.ed-src.rec{color:var(--medical)} .ed-src.rec i{background:var(--medical)}
.ed-src.unk{color:var(--muted2)} .ed-src.unk i{background:none;border:1.5px dashed var(--muted2)}
.ed-chk{width:48px;height:48px;border-radius:50%;border:none;background:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}
.ed-chk span{width:30px;height:30px;border-radius:50%;border:2.5px solid var(--muted);display:flex;align-items:center;justify-content:center;color:transparent;font-size:17px;font-weight:900}
.ed-chk.on span{background:var(--pp-ok);border-color:var(--pp-ok);color:var(--bg)}
.ed-go{color:var(--muted);font-size:22px;padding-right:12px}
.ed-exp{padding:0 16px 14px}
.ed-exp .why{font-size:13px;color:var(--muted2);line-height:1.45;padding-top:2px}
.ed-inl{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ed-btn{border:none;border-radius:13px;min-height:44px;padding:0 16px;background:var(--pill);color:var(--text);font:700 14px/1 var(--font);display:inline-flex;align-items:center;justify-content:center;gap:7px}
.ed-btn:disabled{opacity:.5}
.ed-btn.pri{background:var(--acc);color:var(--acc-ink)}
.ed-btn.dng{background:color-mix(in srgb,var(--fire) 14%,transparent);color:var(--fire)}
.ed-btn.wide{flex:1}
.ed-inp{width:100%;min-height:48px;border-radius:12px;border:1.5px solid var(--pill);background:var(--bg2);color:var(--text);font:600 16px/1.3 var(--font);padding:10px 12px;outline:none}
.ed-inp:focus{border-color:var(--acc)}
.ed-docstrip{display:flex;gap:10px;overflow-x:auto;padding:0 16px}
.ed-dthumb{flex-shrink:0;width:92px;min-height:44px;border:none;background:none;padding:0;color:var(--muted2);font:600 12px/1.3 var(--font);text-align:left}
.ed-dthumb .im{width:92px;height:112px;border-radius:12px;background:var(--pill) center/cover no-repeat;display:block;margin-bottom:6px}
.ed-rv{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px 6px 8px 16px;background:none;border:none;color:inherit;text-align:left;font:inherit}
.ed-rv + .ed-rv{border-top:1px solid var(--bdr)}
.ed-rv-t{flex:1;font:600 15px/1.35 var(--font)}
.ed-rv-t.miss{color:var(--alarm)}
.ed-rv-m{font:600 12px/1.3 var(--font);color:var(--muted2);white-space:nowrap}

/* the map (walk + map screens): anchored; the card overlays it */
.ed-mapwrap{flex:1;position:relative;min-height:0;overflow:hidden}
.ed-mapwrap > .ed-map{position:absolute;inset:0}
.ed-map{background:var(--card);touch-action:none;user-select:none;-webkit-user-select:none}
.ed-ov{position:absolute;inset:0;z-index:450;pointer-events:none}
.ed-ov svg.ed-lead{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ed-ov svg.ed-lead line{stroke:var(--text);stroke-width:2}
.ed-ov svg.ed-lead circle{fill:var(--text);stroke:var(--bg);stroke-width:1.5}
.ed-mk{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:48px;height:48px}
.ed-mk svg{filter:drop-shadow(0 1px 3px color-mix(in srgb,var(--bg) 80%,transparent))}
.ed-mk.sel::before{content:'';position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 3px var(--acc);background:color-mix(in srgb,var(--acc) 18%,transparent)}
/* a lifted symbol: the box stays centred on the point that will be saved, the dot marks that
   point exactly, and the icon rides 34 px above it, enlarged, clear of the finger (what is shown is what is saved) */
.ed-mk.lifted{transform:translate(-50%,-50%);z-index:12}
.ed-mk.lifted svg{transform:translateY(-34px) scale(1.45);filter:drop-shadow(0 12px 12px color-mix(in srgb,var(--bg) 75%,transparent))}
.ed-mk.lifted::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px var(--text)}
.ed-hyd{position:absolute;transform:translate(-22px,-50%);display:flex;align-items:center;gap:3px;min-height:44px;min-width:44px;padding:8px 0 8px 8px}
.ed-hyd b{background:color-mix(in srgb,var(--bg) 86%,transparent);color:var(--text);font:700 12px/1 var(--font);padding:3px 5px;border-radius:4px;white-space:nowrap}
.ed-hyd.seen b{color:var(--assist)}
.ed-hclus{position:absolute;transform:translate(-50%,-50%);min-width:30px;height:30px;padding:0 7px;border-radius:15px;background:var(--muted);border:2px solid var(--bg);color:var(--bg);font:800 13px/26px var(--font);text-align:center}
.ed-gps{position:absolute;width:18px;height:18px;border-radius:50%;background:var(--medical);border:3px solid var(--text);transform:translate(-50%,-50%);box-shadow:0 0 0 12px color-mix(in srgb,var(--medical) 22%,transparent)}
.ed-gps b{position:absolute;left:16px;top:-6px;background:var(--medical);color:var(--text);font:700 12px/1 var(--font);padding:3px 5px;border-radius:5px;white-space:nowrap}
.ed-mapui{position:absolute;inset:0;z-index:460;pointer-events:none}
.ed-mapui > *{pointer-events:auto}
.ed-zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px}
.ed-zoom button{width:48px;height:48px;border-radius:14px;border:none;background:color-mix(in srgb,var(--bg) 92%,transparent);color:var(--text);font:500 26px/1 var(--font)}
.ed-zoom button.fit{width:64px;height:52px;margin-left:-16px;font:700 12px/1.1 var(--font)}
.ed-arm{position:absolute;left:12px;right:88px;top:12px;display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--bg) 94%,transparent);border-radius:16px;padding:6px 6px 6px 12px;font:700 13px/1.25 var(--font);z-index:470;pointer-events:auto}
.ed-arm .x{margin-left:auto}
.ed-drawbar{flex-wrap:wrap}
.ed-drawbar span{flex:1 0 100%}
.ed-drawbar .ed-btn{flex:1}
.ed-map .leaflet-control-scale{margin:74px 0 0 12px}
/* the credits: one line under the scale bar; taps go through it to the map (no control over the tappable area) */
.ed-map .leaflet-top.leaflet-left .leaflet-control-attribution{margin:4px 0 0 12px;max-width:calc(100vw - 110px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.ed-mapbar{flex-shrink:0;padding:10px 16px calc(var(--sab) + 8px);background:var(--bg);border-top:1px solid var(--bdr)}
.ed-mapbar .ed-footnote{padding:8px 4px 0}
/* Buildings mode (2026-10-09): the bar under the map, and the Adjust handles */
.ed-olrow{display:flex;gap:8px;align-items:stretch}
.ed-olrow>*{flex:1}
.ed-olrow .ed-bldg{flex:0 0 auto;width:auto;padding:0 18px}
.ed-olt{font:700 14px/1.3 var(--font);color:var(--muted);padding:2px 4px 10px}
.ed-olbar .ed-btn{min-height:48px}
.ed-ov svg.ed-lead circle.ed-vtx{fill:#fff;stroke:#0a84ff;stroke-width:3}
.ed-ov svg.ed-lead circle.ed-vtx.on{fill:#0a84ff;stroke:#fff}
.ed-ov svg.ed-lead circle.ed-vmid{fill:rgba(255,255,255,.92);stroke:#0a84ff;stroke-width:1.5}
.ed-ov svg.ed-lead polygon,.ed-ov svg.ed-lead polyline{stroke-linejoin:round}
.ed-plus{font:600 28px/1 var(--font)}

/* the walk-through: the card scrolls ABOVE its Next bar */
.ed-walk-top{padding:4px 12px 8px;background:var(--bg);flex-shrink:0}
.ed-segs{display:flex;gap:3px;width:100%;border:none;background:none;min-height:44px;align-items:center;padding:0 2px}
.ed-segs span{flex:1;display:flex} .ed-segs span i{flex:1;height:8px;border-radius:4px;background:var(--pill)}
.ed-segs span.f i{background:var(--pp-ok)} .ed-segs span.n i{background:var(--medical)} .ed-segs span.k i{background:color-mix(in srgb,var(--haz) 55%,var(--bg))} .ed-segs span.c i{background:var(--acc)}
.ed-stop{position:absolute;left:0;right:0;bottom:0;z-index:480;max-height:70%;display:flex;flex-direction:column;background:var(--bg2);border-radius:22px 22px 0 0;box-shadow:0 -10px 30px color-mix(in srgb,var(--bg) 60%,transparent)}
.ed-stop-sc{overflow-y:auto;padding:16px 16px 10px;flex:1 1 auto;min-height:0}
.ed-stop-sc:last-child{padding-bottom:calc(var(--sab) + 14px)}
.ed-stop-ft{flex-shrink:0;padding:6px 16px calc(var(--sab) + 10px);background:var(--bg2)}
.ed-stop-h{display:flex;gap:12px;align-items:center}
.ed-stop-t{font-size:20px;font-weight:800}
.ed-stop-p{font:700 12px/1 var(--font);color:var(--muted2);letter-spacing:.03em;text-transform:uppercase;margin-bottom:5px}
.ed-stop-hint{font-size:13.5px;color:var(--muted2);line-height:1.45;margin-top:8px}
.ed-do{display:flex;align-items:center;gap:8px;margin-top:12px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--acc) 10%,transparent);color:var(--acc);font:700 15px/1.3 var(--font)}
.ed-done{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 6px 10px 14px;border-radius:14px;background:color-mix(in srgb,var(--assist) 12%,transparent);color:var(--text);font:700 14px/1.3 var(--font)}
.ed-done.skip{background:color-mix(in srgb,var(--haz) 12%,transparent);color:var(--haz)}
.ed-done .ed-btn{margin-left:auto}
.ed-row3{display:flex;gap:8px;margin-top:10px}
.ed-row3 .ed-btn{flex:1;padding:0 6px;font-size:13px}
.ed-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.ed-chip{min-height:50px;border-radius:14px;border:2px solid var(--pill);background:var(--card);color:var(--text);font:700 15px/1.2 var(--font);padding:6px 10px;text-align:center}
.ed-chip.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc)}
.ed-chip small{display:block;font:600 12px/1.2 var(--font);color:var(--haz);margin-top:3px}
.ed-hz{display:flex;align-items:center;gap:8px;text-align:left;font-size:14px;padding:6px 10px}
.ed-q{font-weight:800;font-size:15px;margin-top:14px}
.ed-warn{margin-top:10px;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--haz) 14%,transparent);color:var(--haz);font:600 14px/1.4 var(--font)}
.ed-other{min-height:44px;padding:0 12px;font-size:13px;flex-shrink:0}
.ed-hlist .ed-row{padding-left:4px;min-height:56px}

/* sheets and the toast */
.ed-scrim{position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 55%,transparent);z-index:490}
.ed-sheet{position:absolute;left:0;right:0;bottom:0;z-index:491;max-height:88%;overflow-y:auto;background:var(--bg2);border-radius:22px 22px 0 0;padding:8px 0 calc(var(--sab) + 12px)}
.ed-pal-g{font:700 12px/1 var(--font);color:var(--muted2);letter-spacing:.06em;text-transform:uppercase;padding:12px 20px 6px}
.ed-pal{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px}
.ed-pal button{border:none;background:var(--card);border-radius:14px;min-height:82px;padding:8px 4px;color:var(--text);font:700 12px/1.2 var(--font);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.ed-pal button.on{box-shadow:inset 0 0 0 2.5px var(--acc)}
.ed-opt{display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:0 20px;background:none;border:none;color:var(--text);font:600 16px/1.2 var(--font);text-align:left}
.ed-opt + .ed-opt{border-top:1px solid var(--bdr)}
.ed-opt .ic{width:36px;height:36px;border-radius:10px;background:var(--pill);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ed-opt small{display:block;font-size:12px;color:var(--muted2);margin-top:4px;font-weight:500}
.ed-toast{pointer-events:none;position:absolute;left:12px;right:12px;z-index:485;display:flex;align-items:center;gap:10px;background:var(--card2);color:var(--text);border-radius:16px;padding:6px 6px 6px 16px;font:600 14px/1.35 var(--font);box-shadow:0 10px 30px color-mix(in srgb,var(--bg) 55%,transparent)}
.ed-toast .ed-btn{pointer-events:auto;margin-left:auto;background:none;color:var(--acc);font-weight:800}

/* documents */
.ed-dsec{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--font);color:var(--muted2);letter-spacing:.06em;text-transform:uppercase;padding:18px 20px 8px}
.ed-dsec.drop{color:var(--acc)}
.ed-drow{display:flex;align-items:center;gap:10px;margin:0 16px;background:var(--card);padding:8px 0 8px 10px;min-height:72px;position:relative}
.ed-drow.first{border-radius:16px 16px 0 0} .ed-drow.last{border-radius:0 0 16px 16px} .ed-drow.first.last{border-radius:16px}
.ed-drow + .ed-drow{border-top:1px solid var(--bdr)}
.ed-drow.dragging{z-index:20;box-shadow:0 12px 30px color-mix(in srgb,var(--bg) 60%,transparent);border-radius:16px;background:var(--card2)}
.ed-drow .im{width:46px;height:56px;border-radius:8px;background:var(--pill) center/cover no-repeat;flex-shrink:0}
.ed-dempty{display:block;width:calc(100% - 32px);margin:0 16px;min-height:48px;text-align:left;padding:14px 16px;border-radius:16px;border:1.5px dashed var(--pill);background:none;color:var(--muted2);font:600 14px/1 var(--font)}
.ed-handle,.ed-more{width:44px;height:52px;border:none;background:none;color:var(--muted2);font-size:22px;flex-shrink:0}
.ed-handle{touch-action:none}
.ed-dacts{margin:0 16px;background:var(--card2);padding:10px 12px;display:flex;gap:8px;flex-wrap:wrap}
.ed-dacts.last{border-radius:0 0 16px 16px}
.ed-hint{padding:16px 20px;font-size:13px;color:var(--muted2);line-height:1.45}
/* the review sheet: nothing is sent until Upload (owner ruling, Task 13) */
.ed-stg-grid{display:flex;gap:10px;overflow-x:auto;padding:4px 16px 8px}
.ed-stg-it{position:relative;flex-shrink:0;width:112px}
.ed-stg-it .im{display:flex;align-items:center;justify-content:center;width:112px;height:140px;border-radius:12px;background:var(--pill) center/cover no-repeat;color:var(--muted2);font:800 16px/1 var(--font)}
.ed-stg-it .nm{display:block;margin-top:6px;font:600 12px/1.3 var(--font);color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-stg-x{position:absolute;top:2px;right:2px;width:44px;height:44px;border:none;border-radius:50%;background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--text);font:800 17px/1 var(--font);display:flex;align-items:center;justify-content:center}
.ed-stg-secs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px}
.ed-stg-secs .ed-chip{min-height:48px;font-size:14px}
.ed-stg-cap{padding:0 16px}
.ed-stg-ft{padding:16px 16px 4px}
.ed-notes{flex:1;margin:0 16px 12px;min-height:280px;resize:none;border:none;border-radius:16px;background:var(--card);color:var(--text);padding:16px;font:500 17px/1.5 var(--font);outline:none}

/* history */
.ed-hflt{background:none}
.ed-hflt .pp-jc{min-height:44px;min-width:44px;font-size:12px}
.ed-hrow + .ed-hrow{border-top:1px solid var(--bdr)}
.ed-hbtn{display:flex;gap:12px;align-items:flex-start;width:100%;border:none;background:none;color:inherit;text-align:left;padding:12px 16px;min-height:60px;font:inherit}
.ed-hundo{margin:0 12px 10px 62px}
.ed-av{width:34px;height:34px;border-radius:50%;background:var(--pill);color:var(--muted2);display:flex;align-items:center;justify-content:center;font:800 12px/1 var(--font);flex-shrink:0}
.ed-av.pr{background:color-mix(in srgb,var(--medical) 18%,transparent);color:var(--medical)}
.ed-htx{flex:1;min-width:0;font-size:14px;line-height:1.4}
.ed-htm{font:600 12px/1 var(--font);color:var(--muted2);margin-top:5px}
.ed-hdiff{margin-top:8px;font:600 13px/1.5 var(--font);color:var(--muted2);background:var(--bg2);border-radius:10px;padding:8px 10px;white-space:pre-wrap}
.ed-rlist{margin:8px 0 4px;padding-left:18px;font:600 13px/1.45 var(--font);color:var(--text)}

/* mark-up in the viewer (preplans-viewer.js) and the library's signed-in line */
.pp-amk{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;z-index:3}
.pp-amk.sel::before{content:'';position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 3px var(--acc);background:color-mix(in srgb,var(--acc) 25%,transparent)}
.pp-amk .nt{position:absolute;left:44px;top:50%;transform:translateY(-50%);background:color-mix(in srgb,var(--bg) 90%,transparent);color:var(--text);font:700 12px/1.25 var(--font);padding:5px 8px;border-radius:7px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.pp-mk-bar{display:flex;gap:6px;overflow-x:auto;padding:10px 12px 4px;background:var(--bg)}
.pp-mk-bar button{flex-shrink:0;width:60px;min-height:66px;border:none;border-radius:13px;background:var(--card);color:var(--muted2);font:700 12px/1.1 var(--font);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 2px}
.pp-mk-bar button.on{box-shadow:inset 0 0 0 2.5px var(--acc);color:var(--text)}
.pp-mk-hint{padding:4px 16px 8px;background:var(--bg);font-size:13px;color:var(--muted2);min-height:26px}
.pp-lib-me{padding:4px 20px 10px;font:600 13px/1.3 var(--font);color:var(--muted2)}
.pp-lib-me:empty{display:none}
