/* AngelDesk v3.8 — detachable lead windows (public/js/ui/windows.js) + resizable drawer + lead notes panel.
   Colours come from the theme tokens (tokens.css) and, under the executive look, from the same lacquer/gold rules the drawer
   uses (executive.css lists .lw next to .drawer; skin-graphite.css likewise). Nothing here hard-codes a theme colour. */

/* ---- drawer: width is a variable so the left-edge handle can resize it (remembered per user) ---- */
.drawer{width:min(var(--drawer-w,620px),100vw)}
.drawer-rz{position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:3;touch-action:none}
.drawer-rz::after{content:"";position:absolute;left:3px;top:50%;width:2px;height:44px;margin-top:-22px;border-radius:2px;background:var(--border-2);opacity:0;transition:opacity var(--dur-fast)}
.drawer:hover .drawer-rz::after,.drawer.resizing .drawer-rz::after{opacity:1}
.drawer.resizing{transition:none;user-select:none}
.drawer .dctl [data-detach]{font-size:14px}
@media (max-width:899px){.drawer{width:100vw}.drawer-rz{display:none}}

/* ---- the window layer: above the board, below the drawer's scrim (70) / drawer (80) / dialogs ---- */
.lw-layer{position:fixed;inset:0;z-index:60;pointer-events:none}
.lw{position:absolute;pointer-events:auto;display:flex;flex-direction:column;min-width:360px;min-height:320px;background:var(--surface);color:var(--text);border:1px solid var(--border-2);border-radius:var(--r-md);box-shadow:var(--elev-3);overflow:hidden;outline:none;transition:box-shadow var(--dur),filter var(--dur),opacity var(--dur)}
.lw.focused{border-color:var(--accent);box-shadow:var(--elev-3),0 0 0 1px var(--accent),0 0 26px var(--accent-shadow)}
.lw.dim{filter:saturate(.8) brightness(.93)}
.lw.dim:hover{filter:none}
.lw.min{display:none}
.lw.max,.lw.snapped{border-radius:0}
.lw.dragging,.lw.resizing{transition:none;user-select:none}
.lw.dragging{cursor:grabbing}
.lw-body{flex:1;min-height:0;display:flex;flex-direction:column;container-type:inline-size;container-name:lw}
.lw-body>.dh{flex:none;padding:12px 16px 0}
.lw-body>.dh .t[data-lw-drag]{cursor:grab;touch-action:none}
.lw-body>.dh h2{font-size:17px}
.lw-body>.db{flex:1;min-height:0;overflow:auto;overflow-x:hidden;padding:16px}
.lw-body>.db>*{overflow-x:clip} /* the executive cards' glow pseudo-elements poke a few px past the edge; clip them so a narrow window never scrolls sideways */
.lw-body>.df{flex:none;padding:8px 16px}
.lw-ctl{display:inline-flex;gap:2px;margin-left:4px;padding-left:6px;border-left:1px solid var(--border)}
.lw-ctl .btn{min-width:26px;justify-content:center}
.lw .dctl{flex-wrap:wrap;justify-content:flex-end}
.lw .dh .t{flex-wrap:wrap}
.lw .dh .dh-id{min-width:0;flex:1 1 180px}
/* resize handles: four edges + four corners */
.lw-rz{position:absolute;z-index:5;touch-action:none}
.lw-rz-n,.lw-rz-s{left:10px;right:10px;height:7px;cursor:ns-resize}.lw-rz-n{top:-3px}.lw-rz-s{bottom:-3px}
.lw-rz-e,.lw-rz-w{top:10px;bottom:10px;width:7px;cursor:ew-resize}.lw-rz-e{right:-3px}.lw-rz-w{left:-3px}
.lw-rz-ne,.lw-rz-nw,.lw-rz-se,.lw-rz-sw{width:14px;height:14px}
.lw-rz-ne{top:-3px;right:-3px;cursor:nesw-resize}.lw-rz-sw{bottom:-3px;left:-3px;cursor:nesw-resize}
.lw-rz-nw{top:-3px;left:-3px;cursor:nwse-resize}.lw-rz-se{bottom:-3px;right:-3px;cursor:nwse-resize}
.lw.max .lw-rz,.lw.snapped .lw-rz-n{display:none}
.lw-snap-preview{position:absolute;pointer-events:none;border:2px solid var(--accent);background:var(--accent-soft);border-radius:var(--r-md);transition:all var(--dur-fast)}

/* reflow inside narrow windows: the research grid, the BBB form, tabs and button rows wrap — no sideways scroll */
.lw-body .dtabs{flex-wrap:wrap;overflow-x:visible}
.lw-body :is(.acts-row,.mp-consent-form,.gapchips,.rec-links,.rec-signals){flex-wrap:wrap}
.lw-body .mp-consent-form{display:flex;gap:6px}
.lw-body .mp-consent-form>*{min-width:0;max-width:100%;flex:1 1 160px}
.lw-body :is(img,iframe,table,pre,select,input,textarea){max-width:100%}
.lw-body .ee-body-wrap{gap:12px}
.lw-body .ee-main{flex-basis:300px}
@container lw (max-width:560px){
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv dt{margin-top:8px}
  .ee-side{display:none}
  .lw-body>.df{gap:6px}
  .person .ch-r{flex-wrap:wrap}
}

/* ---- dock: minimized windows + arrange tools, along the bottom ---- */
.lw-dock{position:fixed;left:0;right:0;bottom:0;height:44px;z-index:61;display:none;align-items:center;gap:8px;padding:0 84px 0 10px;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--elev-2)}
.lw-dock.on{display:flex}
.lw-dock-items{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}
.lw-chip{display:inline-flex;align-items:center;gap:6px;height:30px;max-width:240px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-size:12.5px;white-space:nowrap;flex:none}
.lw-chip .lw-chip-t{overflow:hidden;text-overflow:ellipsis;font-weight:600}
.lw-chip.is-focus{border-color:var(--accent);color:var(--text);box-shadow:0 0 12px var(--accent-shadow)}
.lw-chip.is-min{opacity:.8;border-style:dashed}
.lw-chip .chip{height:18px;font-size:10.5px}
.lw-dock-tools{display:flex;gap:2px;flex:none}
body:has(.lw-dock.on) #app{padding-bottom:44px}
@media (max-width:899px){.lw-layer,.lw-dock{display:none!important}body:has(.lw-dock.on) #app{padding-bottom:0}}
html.xd-on .lw-dock{background:var(--xd-solid);border-top-color:color-mix(in srgb,var(--xd-gold) 30%,transparent)}
html.xd-on .lw.focused{border-color:color-mix(in srgb,var(--xd-gold) 75%,transparent);box-shadow:var(--elev-3),0 0 0 1px color-mix(in srgb,var(--xd-gold) 55%,transparent),0 0 30px color-mix(in srgb,var(--xd-gold) 32%,transparent)}
html.xd-on .lw-chip{background:rgba(255,255,255,.04);border-color:color-mix(in srgb,var(--xd-gold) 22%,transparent)}

/* ---- lead notes panel (screens/notes-panel.js) ---- */
.notes-panel{display:flex;flex-direction:column;gap:16px;min-width:0}
.np-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.np-l{font-weight:600;font-size:13px}
.np-t{margin:0;font-size:14px}
.np-status{margin-left:auto}
.np-readonly{border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;min-height:60px}
.np-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.np-filters .inp{width:auto;flex:1 1 140px;min-width:0;height:32px;font-size:13px}
.np-filters .np-q{flex:2 1 200px}
.np-composer{margin-bottom:10px}
.np-ce{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:var(--r-md);padding:10px}
.np-ce-f .inp{width:auto;height:32px;font-size:13px}
.np-list{display:flex;flex-direction:column;gap:10px}
.np-entry{border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;background:var(--surface-2);min-width:0}
.np-entry.pinned{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.np-eh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.np-who{display:flex;flex-direction:column;min-width:0}
.np-who b{font-size:13px}
.np-tag{white-space:nowrap}
.note-body{font-size:13.5px;line-height:1.55;overflow-wrap:anywhere;min-width:0;max-width:100%}
.note-body img.loading{min-height:40px;background:var(--surface-3)}
.np-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.np-thumb{max-width:180px;max-height:120px;border-radius:6px;border:1px solid var(--border)}
.np-empty{padding:6px 2px}
.np-hist{display:flex;flex-direction:column;gap:12px;max-height:60vh;overflow:auto}
.np-hv{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px}
.np-view{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}
html.xd-on .np-entry{background:rgba(255,255,255,.03);border-color:color-mix(in srgb,var(--xd-gold) 18%,transparent)}
html.xd-on .np-entry.pinned{border-color:color-mix(in srgb,var(--xd-gold) 60%,transparent);box-shadow:inset 3px 0 0 var(--xd-gold)}
