/* ============================================================================
   MUVA OS - My Day (desktop). Built on the SAME shell as the Jobs screen:
   .jl-head + .grid-wrap + table.grid, reusing the shared design tokens so both
   pages feel like one system. The task detail / notes panel is a CONTAINED flex
   child of the screen (never fixed, never overflows the viewport). Desktop-only;
   new elements are hidden by default so nothing leaks onto mobile.
   ============================================================================ */
#mydTools,#mydActive,#mydPanel,.myd-vpanel,.myd-keep,.myd-bulk{display:none}
@media (max-width:760px){ .myd-pop{display:none!important} }

/* Custom dark tooltip (matches the Reports-nav pill) for all icon-only My Day controls - replaces native browser title tooltips. JS positions it below/above the control, clamped to the viewport. */
/* THE TOOLTIP MOVED OUT OF MY DAY. `.myd-tip` was the body's tooltip, defined
   here because My Day happened to be the screen that first needed one - and
   then every other module called into it. It is `src/shared/tooltip.js` and
   `.muva-tip` now, shared with the rail and the tab strip, which had their own
   CSS one. Two systems doing one job could not be fixed independently. */

@media (min-width:761px){
  /* the screen is a flex column: head (auto) + table (flex:1, scrolls) + panel (auto) */
  #screen-myday{display:none;flex-direction:column;min-height:0}
  #screen-myday.active{display:flex}
  #screen-myday #mdSeg,#screen-myday #mdSortBtn{display:none}   /* mobile controls hidden on desktop */
  #screen-myday .jl-titlerow{margin-bottom:14px}
  #screen-myday #mydGridWrap{flex:1 1 auto;min-height:0}
  #screen-myday #mdBody{display:block}
  #screen-myday #mdMobileList{display:none}

  /* ---------------- active-filter chip row (compact, low contrast) ---------------- */
  #mydActive{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px}
  #mydActive:empty{display:none}
  .myd-fchip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 6px 0 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);font-size:11.5px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit}
  .myd-fchip:hover{border-color:var(--line-2);color:var(--ink)}
  .myd-fchip svg{width:13px;height:13px;color:var(--ink-3)}
  .myd-fchip:hover svg{color:var(--ink)}
  .myd-fclear{height:26px;padding:0 8px;border:none;background:none;font-size:11.5px;font-weight:700;color:var(--ink-2);cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px}
  .myd-fclear:hover{color:var(--ink)}

  /* ---------------- header toolbar ---------------- */
  #mydTools{display:flex;align-items:center;gap:var(--ctl-sp);flex:0 0 auto}
  /* MY TASKS + USERS: two clean, separate compact toolbar controls (no shared
     segmented background) - and, since 31 August 2026, THE body control. The
     owner named this pair as the reference for every other control in the
     product, so its measurements were lifted out of here and into the chrome
     tier in 03-desktop-theme.css: 36px, pill, 14px of padding, a 7px gap,
     12.5px/600, a 15px icon and a 1px --line hairline. Nothing about how it
     looks changed. What changed is that it is now the definition rather than
     one more control with private numbers, and it is deliberately NOT a
     `.seg`: a segmented container is one control with n positions, and these
     are two independent controls that happen to sit together. */
  #mydSeg{display:inline-flex;align-items:center;gap:var(--ctl-sp)}
  /* The two buttons ARE `.btn` now (the class is on them in the markup), so
     this pair no longer declares a height, a radius, a padding, a type size
     or an icon size anywhere: it defines them, in 03-desktop-theme.css, for
     the whole product. What is left here is only what is true of these two
     specifically. */
  #mydSeg button{cursor:pointer;font-family:inherit}
  /* THE SELECTED SCOPE. --accs/--accb/--acc resolve to --surface-2/--line-2/
     --ink unbranded, which is exactly the appearance this pair already had;
     reading the tokens is what lets company branding tint it like every other
     selected control. The weight does NOT change: at 700 the label grew wider
     than at 600 and the pill moved under the pointer as it was clicked. */
  #mydSeg button.active{background:var(--accs,var(--surface-2));border-color:var(--accb,var(--line-2));color:var(--acc,var(--ink));font-weight:var(--ctl-fw)}
  /* the attention status beside My tasks: one small semantic pill, never a
     card above the grid (the owner, 25 August); its words come from the
     list's own rows (shared/myday-attention.js) */
  /* A TOOLBAR STATUS, so it is `.bar-status` (01-app.css): the same 36px
     outer height, pill and baseline as every control in this row, and no
     border, so it still reads as a fact rather than as a button. It declares
     no geometry of its own - only which of the three states it is in. */
  .myd-attn[data-kind="overdue"]{background:var(--red-soft,#FBEAE7);color:var(--red,#b42318)}
  .myd-attn[data-kind="attention"]{background:#FDF0E3;color:#9F5E00}
  .myd-attn[data-kind="clear"]{background:var(--green-soft,#E6F4EC);color:var(--green,#0F7A41)}
  /* "On track" is not the all-clear. Open work exists and none of it is
     urgent, so it reads calm and blue rather than the finished green - the
     green is reserved for a scope that genuinely holds no actionable task. */
  .myd-attn[data-kind="ontrack"]{background:var(--blue-soft,#E8EFFD);color:#1D4ED8}
  .myd-userwrap{position:relative}
  .myd-userwrap[hidden]{display:none}
  .myd-userbtn{display:flex;align-items:center;gap:var(--ctl-gap);height:var(--ctl-h);padding:0 var(--ctl-px) 0 5px;border-radius:var(--ctl-rs);border:1px solid var(--line);background:var(--surface);cursor:pointer;font-family:inherit;color:var(--ink);transition:.14s var(--ease)}
  .myd-userbtn:hover{border-color:var(--line-2);box-shadow:var(--sh-sm)}
  .myd-userbtn .av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:9.5px;font-weight:700;flex:0 0 auto}
  .myd-userbtn .nm{font-size:var(--ctl-fz);font-weight:var(--ctl-fw);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
  .myd-userbtn .ct{font-size:11px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:0 6px;min-width:18px;text-align:center}
  .myd-userbtn .cv{width:var(--ctl-i);height:var(--ctl-i);color:var(--ink-3);flex:0 0 auto}
  .myd-userbtn .clr{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--ink-3);flex:0 0 auto}
  .myd-userbtn .clr:hover{background:var(--surface-2);color:var(--ink)}
  .myd-userpop{position:absolute;z-index:70;top:calc(100% + 4px);right:0;width:264px;background:var(--surface);border:1px solid var(--menu-border,var(--line));border-radius:var(--pop-r,12px);box-shadow:var(--sh-pop);padding:var(--menu-pad,6px);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s var(--ease),transform .16s var(--ease);max-height:60vh;overflow-y:auto}
  .myd-userpop.show{opacity:1;transform:none;pointer-events:auto}
  .myd-uh{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);padding:8px 10px 6px}
  .myd-uitem{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 10px;border-radius:10px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;color:var(--ink-2);transition:background .12s var(--ease),color .12s var(--ease)}
  .myd-uitem:hover{background:var(--surface-2);color:var(--ink)}
  .myd-uitem.active{background:var(--black);color:#fff}
  .myd-uitem .av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:0 0 auto}
  .myd-uitem.all .av{background:var(--slate-soft);color:var(--ink-2);border:1px solid var(--line)}
  .myd-uitem.active.all .av{background:rgba(255,255,255,.16);color:#fff;border:none}
  .myd-uitem .un{flex:1;min-width:0;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-uitem .uc{font-size:11px;font-weight:700;color:var(--ink-3)}
  .myd-uitem.active .uc{color:rgba(255,255,255,.6)}
  .myd-usep{height:1px;background:var(--line);margin:4px 6px}
  .myd-viewbtn{position:relative}
  .myd-viewbtn svg{width:var(--ctl-i);height:var(--ctl-i)}
  .myd-viewbtn.on{background:var(--accs,var(--surface-2));border-color:var(--accb,var(--line-2));color:var(--acc,var(--ink))}
  .myd-vbadge{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:99px;background:var(--ink);color:#fff;font-size:9.5px;font-weight:700;margin-left:1px}
  .myd-vbadge[hidden]{display:none}
  /* Filter reduced to an icon-only circular control (matches the Jobs #filterBtn); count badge floats at the corner */
  .myd-filterbtn{position:relative}
  .myd-filterbtn.on{background:var(--accs,var(--surface-2));border-color:var(--accb,var(--line-2));color:var(--acc,var(--ink))}
  .myd-filterbtn .myd-vbadge{position:absolute;top:-5px;right:-5px;margin-left:0;min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface,#fff)}
  #mydAddTask svg{width:var(--ctl-i);height:var(--ctl-i)}

  /* ---------------- work table (reuses .grid - Jobs visual system; fixed layout for resizable cols) ---------------- */
  /* E20 correction: the table is sized to the exact pixel sum of its columns (set inline by
     the engine). NO min-width:100% - that would stretch a short table to the container and
     redistribute freed width across columns. width:max-content is the CSS fallback. */
  table.myd-grid{table-layout:fixed;width:max-content}
  .myd-grid tbody td{padding:0 10px;overflow:hidden;text-overflow:ellipsis;cursor:default}
  /* NAVIGATION IS THE ARROW (2 September, every register): hovering or
     selecting a cell is choosing, not typing, so the shared grid keeps the
     pointer; the I-beam belongs to the editor control that opens inside a
     cell, which carries it natively. */
  /* Header cell = normal table cell (table-layout:fixed keeps header aligned with body). Label uses the full width; the sort arrow + hover controls are ABSOLUTE overlays that reserve no width, sit inside their own cell (clipped by overflow), and stay clear of the resize boundary. */
  .myd-grid thead th{padding:9px 10px;position:relative;overflow:hidden}
  .myd-grid thead th .th-lbl{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-grid thead th:not(.sortable){cursor:default}
  .myd-grid thead th:not(.sortable):hover{color:var(--ink-3)}
  /* active sort indicator: right edge of the sorted column only; hidden while hovering (controls take its place) */
  /* active sort arrow: same muted colour as the header label (never darker/more prominent), Lucide 1.75 stroke, a touch larger than the 10.5px heading so it reads clearly */
  .myd-grid thead th .th-ind{position:absolute;top:50%;right:11px;transform:translateY(-50%);display:inline-flex;align-items:center;line-height:0;color:var(--ink-3);background:var(--surface,#fff);padding-left:4px;opacity:0;visibility:hidden;pointer-events:none}
  .myd-grid thead th .th-ind svg{width:14px;height:14px}
  .myd-grid thead th.sorted .th-ind{opacity:1;visibility:visible}
  .myd-grid thead th.sorted:hover .th-ind,.myd-grid thead th.sorted:focus-within .th-ind{opacity:0;visibility:hidden}
  /* hover / focus controls: absolute overlay, positioned LEFT of the resize handle; hidden state reserves NO width */
  .myd-grid thead th .th-ctrls{position:absolute;top:50%;right:10px;transform:translateY(-50%);display:inline-flex;align-items:center;gap:1px;padding-left:10px;background:linear-gradient(90deg,transparent,var(--surface,#fff) 40%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s var(--ease);z-index:2}
  .myd-grid thead th:hover .th-ctrls,.myd-grid thead th:focus-within .th-ctrls{opacity:1;visibility:visible;pointer-events:auto}
  /* the buttons themselves stay focusable while the container is hidden
     (children may override an ancestor's visibility; the container's
     opacity:0 keeps them invisible until hover or focus-within reveals) -
     without this, keyboard focus could never enter the header controls */
  .myd-grid thead th .th-ctrls .th-sortbtn,.myd-grid thead th .th-ctrls .myd-thmenu{visibility:visible}
  .th-sortbtn,.myd-thmenu{width:18px;height:18px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;border-radius:5px;transition:background .12s}
  .th-sortbtn:hover,.myd-thmenu:hover{background:rgba(0,0,0,.06);color:var(--ink)}
  .th-sortbtn svg{width:13px;height:13px}
  .myd-grid thead th.dragging{opacity:.5}
  .myd-grid thead th.dragover{box-shadow:inset 2px 0 0 var(--ink-2)}
  /* resize handle: narrow invisible hit area on the column boundary (right edge), clear of the controls; subtle line on hover */
  .myd-colrz{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;z-index:5}
  .myd-colrz::after{content:"";position:absolute;top:8px;bottom:8px;right:3px;width:1px;background:transparent;transition:background .12s}
  .myd-colrz:hover::after{background:var(--line-2)}
  /* left-edge grip for the right-frozen Actions column */
  .myd-colrz.myd-colrz-l{right:auto;left:0}
  .myd-colrz.myd-colrz-l::after{right:auto;left:3px}
  /* checkbox column */
  .myd-grid .c-chk{width:34px;text-align:center;padding:0;overflow:visible;position:relative}
  .myd-rowcbx,.myd-selall{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--line-2);display:inline-grid;place-items:center;background:var(--surface);cursor:pointer;opacity:0;transition:opacity .1s var(--ease),background .1s,border-color .1s;vertical-align:middle}
  .myd-rowcbx svg,.myd-selall svg{width:11px;height:11px;color:#fff;opacity:0;stroke-width:3}
  .myd-grid tbody tr.myd-taskrow:hover .myd-rowcbx,.myd-grid.selmode .myd-rowcbx,.myd-grid thead:hover .myd-selall,.myd-selall.on{opacity:1}
  .myd-rowcbx.on,.myd-selall.on{opacity:1;background:var(--ink-2);border-color:var(--ink-2)}
  /* SOME, NOT ALL. A dash rather than a tick, because "four of sixty" is not
     "all sixty" and a header that showed a tick for both would be lying about
     what the next click does. */
  .myd-selall.some{opacity:1;border-color:var(--ink-2);background:#fff;position:relative}
  .myd-selall.some svg{opacity:0}
  .myd-selall.some::after{content:'';position:absolute;left:3px;right:3px;height:2px;
    border-radius:1px;background:var(--ink-2)}
  .myd-rowcbx.on svg,.myd-selall.on svg{opacity:1}
  /* E20 editor mode - structural drag-handle column + reorder affordances (opt-in via cfg.dragHandle) */
  .myd-grid .c-drag{text-align:center;padding:0;overflow:visible}
  .mdt-drag{display:inline-grid;place-items:center;width:20px;height:24px;color:var(--ink-3);cursor:grab;opacity:0;transition:opacity .12s var(--ease),color .12s}
  .myd-grid tbody tr.myd-taskrow:hover .mdt-drag{opacity:.65}
  .mdt-drag:hover{opacity:1;color:var(--ink)}
  .mdt-drag:active{cursor:grabbing}
  .mdt-drag.disabled{cursor:not-allowed;opacity:.28}
  .myd-grid tbody tr.myd-taskrow:hover .mdt-drag.disabled{opacity:.28}
  .myd-grid tbody tr.mdt-dragging{opacity:.45}
  .myd-grid tbody tr.mdt-drop-before td{box-shadow:inset 0 2px 0 0 var(--black,#111)}
  .myd-grid tbody tr.mdt-drop-after td{box-shadow:inset 0 -2px 0 0 var(--black,#111)}
  /* NAVIGATION IS THE ARROW even over an editable cell (the owner, 1 September):
     hovering or selecting is choosing, not typing. The I-beam belongs only to an
     OPEN editor, whose input element carries it natively - this rule outranked
     the tbody-level default by specificity and kept the old I-beam everywhere. */
  .myd-grid td.mdt-editable{cursor:default}
  /* rows - NEUTRAL selection (green reserved for workflow/success) */
  .myd-grid tbody tr.myd-taskrow{cursor:pointer;outline:none}
  .myd-grid tbody tr.myd-taskrow:hover td{background:var(--row-hover,#F8F8F9)}
  .myd-grid tbody tr.myd-taskrow.sel td{background:var(--row-sel,#F1F2F4)}
  .myd-grid tbody tr.myd-taskrow.sel:hover td{background:var(--row-sel-hover,#ECEEF1)}
  .myd-grid tbody tr.myd-taskrow.sel td:first-child{box-shadow:inset 3px 0 0 var(--row-sel-bar,#AEB1B9)}
  .myd-grid tbody tr.myd-taskrow.focus td:first-child{box-shadow:inset 3px 0 0 var(--row-sel-bar,#8A8D96)}
  .myd-grid tbody tr.myd-taskrow:focus-visible td{background:var(--row-sel,#F1F2F4)}
  .myd-grid tbody tr.myd-taskrow:focus-visible td:first-child{box-shadow:inset 0 0 0 2px var(--accb,#D2D4DA), inset 3px 0 0 var(--row-sel-bar,#8A8D96)}
  /* ONE CURSOR PER GRID. A row that holds the keyboard shows a ring, and a <tr>
     cannot wear one, so it is drawn on the first cell. In a list grid that IS
     the cursor and it is right. In a SPREADSHEET grid (.mdt-cellcur - BOQ,
     Order Sets) the consumer draws its own cell cursor, so this ring became a
     second box sitting permanently on the Code column while the estimator was
     editing a cell three columns away. The row keeps its edge; the box goes. */
  .myd-grid.mdt-cellcur tbody tr.myd-taskrow:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--row-sel-bar,#8A8D96)}
  .myd-grid tbody tr.done td{opacity:.62}
  .myd-grid .c-acts{overflow:visible}
  /* group header row */
  tr.myd-grouprow td{background:var(--surface-2);border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding:0}
  tr.myd-grouprow:first-child td{border-top:none}
  .myd-gh{display:flex;align-items:center;gap:9px;height:32px;padding:0 12px;cursor:pointer}
  .myd-gh .cv{width:15px;height:15px;color:var(--ink-3);transition:transform .18s var(--ease)}
  .myd-grouprow.collapsed .myd-gh .cv{transform:rotate(-90deg)}
  .myd-gh b{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-2)}
  .myd-gh .jl-count{margin-left:1px}
  .myd-gh .gdot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
  .myd-gh.g-overdue .gdot{background:#B3261E}.myd-gh.g-today .gdot{background:#1B5CB8}.myd-gh.g-week .gdot{background:var(--ink-3)}.myd-gh.g-later .gdot{background:var(--line-2)}
  .myd-gh.g-job .gdot,.myd-gh.g-user .gdot,.myd-gh.g-ws .gdot{display:none}
  .myd-gh.g-job b,.myd-gh.g-user b{text-transform:none;letter-spacing:.1px;font-size:12.5px;font-weight:700;color:var(--ink)}
  .myd-gav{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:8.5px;font-weight:700;flex:0 0 auto}
  /* cells */
  .myd-c-due{font-weight:700;font-variant-numeric:tabular-nums;min-width:96px}
  .myd-c-due.late{color:#B3261E}
  .myd-jlink{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;text-decoration:none;border-bottom:1px solid transparent}
  .myd-jlink:hover{border-bottom-color:var(--line-2)}
  .myd-nlink{color:var(--ink);font-weight:600;text-decoration:none;max-width:150px;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
  .myd-nlink:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
  .myd-c-desc{white-space:normal}
  .myd-desc-t{font-weight:600;color:var(--ink);font-size:12.5px;line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Site address: one line, truncated, full address in the custom tooltip */
  .myd-grid .c-addr .myd-addr{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);font-size:12.5px}
  .myd-nlink{max-width:100%}
  /* interactive assignee cell */
  .myd-userchip{display:inline-flex;align-items:center;gap:8px;max-width:100%;height:28px;padding:0 6px 0 4px;margin:0 -4px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;font-family:inherit;color:var(--ink);transition:background .12s var(--ease),border-color .12s var(--ease)}
  .myd-userchip:hover{background:#fff;border-color:var(--line-2)}
  .myd-userchip .av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:9.5px;font-weight:700;flex:0 0 auto}
  .myd-userchip .av.un-av{background:var(--surface-2);border:1px dashed var(--line-2);color:var(--ink-3)}
  .myd-userchip .av.un-av svg{width:13px;height:13px}
  .myd-userchip .un{font-weight:600;font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-userchip:hover .un{color:var(--ink)}
  .myd-userchip.unassigned .un{color:var(--ink-3);font-style:italic}
  .myd-userchip .pen{width:13px;height:13px;color:var(--ink-3);opacity:0;flex:0 0 auto;transition:opacity .12s}
  .myd-userchip .pen svg{width:13px;height:13px}
  .myd-userchip:hover .pen{opacity:1}
  .myd-formchip{display:inline-flex;align-items:center;height:17px;margin-left:6px;padding:0 7px;border-radius:99px;
    font-size:9.5px;font-weight:700;letter-spacing:.2px;white-space:nowrap;border:1px solid transparent;vertical-align:middle}
  .myd-formchip.req{background:var(--amber-soft);color:#8a5a10;border-color:#f0dcb8}
  .myd-formchip.draft,.myd-formchip.opt{background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}
  .myd-formchip.done{background:var(--green-soft);color:#0f7a41}
  .myd-type{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:99px;font-size:11px;font-weight:700;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
  /* optional columns: Job stage, Provider, Cost centre */
  /* Job Status pill: a coloured dot (config colour) + the configured Job Status name */
  .myd-jstatus{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .myd-jstatus .jsdot,.myd-gh .jsdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;display:inline-block}
  .myd-jstatus.err{color:#c0392b;font-weight:700}
  .myd-gh .jsdot{margin-right:4px;vertical-align:middle}
  /* ---------------- My Day Board (Kanban): one column per configured active Job Status ---------------- */
  .myd-board-wrap{flex:1 1 auto;min-height:0;overflow:auto;margin-bottom:10px}
  .myd-board{display:flex;gap:12px;align-items:flex-start;height:100%;padding:4px 2px 8px;min-width:min-content}
  .myd-bcol{flex:0 0 286px;width:286px;display:flex;flex-direction:column;max-height:100%;background:var(--surface-2,#f6f6f5);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .myd-bcol-h{display:flex;align-items:center;gap:8px;padding:10px 12px;font-weight:700;font-size:12.5px;border-bottom:1px solid var(--line);background:#fff}
  .myd-bcol-h .myd-bcol-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-bcol-h .jl-count{color:var(--ink-3);font-weight:700}
  .myd-bcol-body{flex:1 1 auto;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:44px}
  .myd-bempty{color:var(--ink-3);font-size:12px;text-align:center;padding:16px 6px}
  .myd-bcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 11px;cursor:pointer;transition:box-shadow .12s var(--ease),border-color .12s var(--ease);box-shadow:var(--sh-sm)}
  .myd-bcard:hover{border-color:var(--line-2);box-shadow:0 2px 8px rgba(0,0,0,.08)}
  .myd-bcard.sel{border-color:var(--ink-2);box-shadow:0 0 0 2px rgba(20,20,22,.14)}
  .myd-bcard.overdue{border-left:3px solid #c0392b}
  .myd-bcard-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px}
  .myd-bcard-job{font-weight:700;font-size:12px;letter-spacing:-.2px}
  .myd-bcard-pri{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#c0392b;background:#fbeaea;border-radius:5px;padding:1px 5px}
  .myd-bcard-client{font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-bcard-desc{font-size:12px;color:var(--ink-2);margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}
  .myd-bcard-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}
  .myd-bcard-due{font-size:11px;font-weight:700;color:var(--ink-2)}
  .myd-bcard-due.late{color:#c0392b}
  .myd-bcard-prov{font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}
  .myd-bcard-foot{display:flex;align-items:center;gap:8px}
  .myd-bcard-av{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:9px;font-weight:700}
  .myd-bcard-notes{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--ink-3)}
  .myd-bcard-notes svg{width:13px;height:13px}
  .myd-bcard-unr{width:7px;height:7px;border-radius:50%;background:var(--blue,#2f74d0);margin-left:auto}
  .myd-listboard .active svg{color:var(--ink)}
  .myd-prov{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .myd-prov.none{color:var(--ink-3)}
  .myd-prov .mc{font-size:10.5px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:99px;padding:1px 6px;flex:0 0 auto}
  .myd-cc{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .myd-cc b{color:var(--ink);font-weight:700;letter-spacing:.2px}
  .myd-ws{display:inline-flex;align-items:center;height:23px;padding:0 10px;border-radius:99px;font-size:10.5px;font-weight:700;white-space:nowrap}
  .myd-ws.w-open{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
  .myd-ws.w-progress{background:#E8F0FB;color:#1B5CB8}
  .myd-ws.w-waiting{background:#FBF3E2;color:#8A6116}
  .myd-ws.w-capproval{background:#F4EEFB;color:#6D28D9}
  .myd-ws.w-presponse{background:#EAF3EE;color:#1E7A46}
  .myd-ws.w-ready{background:#E7F3EC;color:#1E7A46}
  .myd-ws.w-completed{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
  .myd-wait{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
  .myd-wait svg{width:15px;height:15px;color:var(--ink-3);flex:0 0 auto}
  .myd-wait.none{color:var(--ink-3)}
  .myd-pri{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;white-space:nowrap}
  .myd-pri .d{width:6px;height:6px;border-radius:50%;flex:0 0 auto}
  .myd-pri.p-high{color:#B3261E}.myd-pri.p-high .d{background:#B3261E}
  .myd-pri.p-med{color:#8A6116}.myd-pri.p-med .d{background:#C08A1E}
  .myd-pri.p-normal{color:var(--ink-2)}.myd-pri.p-normal .d{background:var(--line-2)}
  .myd-notescell{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:none;border:none;font-family:inherit;padding:2px 4px;margin:0 -4px;border-radius:6px;transition:.12s var(--ease)}
  .myd-notescell svg{width:15px;height:15px;color:var(--ink-3)}
  .myd-notescell:hover{color:var(--ink);background:var(--surface-2)}
  .myd-notescell.zero{color:var(--ink-3)}
  .myd-notescell .unr{width:7px;height:7px;border-radius:50%;background:#B3261E;margin-left:-2px}
  .myd-attcell{display:inline-flex;align-items:center;background:none;border:none;cursor:pointer;color:var(--ink-3);padding:3px;margin-left:4px;border-radius:6px;transition:.12s var(--ease)}
  .myd-attcell svg{width:14px;height:14px}
  .myd-attcell:hover{color:var(--ink);background:var(--surface-2)}
  .myd-c-upd{color:var(--ink-3);font-size:12px;white-space:nowrap}
  /* row actions: matched to the Jobs list .rowact treatment (26px circular chips, muted default, surface-2 hover + soft shadow) for one shared MUVA action language */
  .myd-rowacts{display:flex;align-items:center;gap:4px;justify-content:flex-start}
  /* fixed basis + aspect-ratio: resizing the Actions column changes spacing only - a circle can never stretch into an oval */
  .myd-ra{flex:0 0 var(--grid-act,26px);width:var(--grid-act,26px);height:var(--grid-act,26px);aspect-ratio:1/1;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:.12s var(--ease)}
  .myd-ra:hover{background:var(--surface-2);color:var(--ink);box-shadow:var(--sh-sm)}
  .myd-ra.done:hover{background:#E7F3EC;color:#1E7A46}
  .myd-ra.na:hover{background:var(--surface-2);color:#8A6116}
  .myd-ra svg{width:14px;height:14px;stroke-width:1.75}
  /* .myd-empty is gone: every register, My Day included, renders its empty
     state through MuvaEmpty (.mes in src/styles/01-app.css). Its icon was the
     one pinned to the left edge by svg{display:block}. */

  /* ---------------- popovers (add task, user, more) ---------------- */
  .myd-pop{position:fixed;z-index:98;background:var(--surface);border:1px solid var(--line);border-radius:var(--pop-r,14px);box-shadow:var(--sh-pop);padding:12px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s var(--ease),transform .16s var(--ease)}
  .myd-pop.show{opacity:1;transform:none;pointer-events:auto}
  .myd-pop.p-more,.myd-pop.p-ctx{padding:6px;width:224px}
  /* A context menu answers the secondary click in the same frame. It is a
     familiar command surface, not a decorative popover entrance. */
  .myd-pop.p-ctx.mdt-ctx{transition:none;transform:none}
  .myd-pop.p-nfilter{padding:6px;width:212px}
  .myd-pop.p-add{width:320px}
  .myd-fld{margin-bottom:11px}.myd-fld:last-child{margin-bottom:0}
  .myd-fld label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-3);margin-bottom:5px}
  .myd-fld select,.myd-fld input,.myd-fld textarea{width:100%;min-height:34px;border:1px solid var(--line-2);border-radius:9px;background-color:var(--surface);padding:8px 11px;font-family:inherit;font-size:12.5px;color:var(--ink);outline:none}
  .myd-fld select{height:34px;padding:0 30px 0 11px;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:var(--chev);background-repeat:no-repeat;background-position:right 10px center;background-size:15px}
  .myd-fld select:focus,.myd-fld input:focus,.myd-fld textarea:focus{border-color:var(--ink-3);box-shadow:0 0 0 3px rgba(20,20,22,.05)}
  .myd-frow{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .myd-pfoot{display:flex;gap:8px;margin-top:13px}
  .myd-pfoot .btn{flex:1;height:34px;justify-content:center;font-size:12px}
  .myd-mitem{display:flex;align-items:center;gap:9px;width:100%;height:var(--menu-row-h,33px);padding:0 10px;border-radius:var(--menu-row-r,7px);background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left;transition:background .12s var(--ease),color .12s var(--ease)}
  .myd-mlabel{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-mshortcut{margin-left:auto;padding-left:14px;color:var(--ink-3);font-size:10.5px;font-weight:500;white-space:nowrap}
  .myd-mitem:hover{background:var(--menu-hover,var(--surface-2));color:var(--ink)}
  .myd-mitem svg{width:15px;height:15px;color:var(--ink-3);flex:0 0 auto}
  .myd-mitem.on{color:var(--ink);font-weight:700}
  .myd-mitem .ck{margin-left:auto;color:var(--ink)}
  .myd-mitem .cbx{margin-left:auto;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--line-2);display:grid;place-items:center}
  .myd-mitem.on .cbx{background:var(--green);border-color:var(--green);color:#fff}
  .myd-mitem .cbx svg{width:11px;height:11px;color:#fff;opacity:0}
  .myd-mitem.on .cbx svg{opacity:1}
  .myd-mitem.locked{cursor:default}
  /* frozen-column marker in the Show-columns list (replaces the removed table divider lines as the freeze indicator) */
  .myd-mitem .myd-mfreeze{margin-left:auto;display:inline-flex;align-items:center;color:var(--ink-3)}
  .myd-mitem .myd-mfreeze svg{width:12px;height:12px}
  .myd-mitem .myd-mfreeze+.cbx{margin-left:6px}
  /* nested submenu trigger (Show columns) + keyboard focus */
  .myd-msub-chev{margin-left:auto;display:inline-flex;align-items:center;color:var(--ink-3)}
  .myd-msub-chev svg{width:14px;height:14px}
  .myd-mitem.hassub[aria-expanded="true"]{background:var(--surface-2);color:var(--ink)}
  .myd-mitem:focus{outline:none;background:var(--surface-2);color:var(--ink)}
  .myd-mitem.locked .cbx{opacity:.5}
  .myd-mitem.del{color:#B3261E}
  .myd-mitem.del svg{color:#B3261E}
  .myd-mitem.del:hover{background:#FBEAEA;color:#B3261E}

  /* ---------------- Team multi-select dropdown + saved presets ---------------- */
  #mydTeamBtn .mtb-cv{width:13px;height:13px;margin-left:1px;opacity:.55}
  .myd-pop.p-team{padding:6px;width:274px}
  /* A SUSPENDED MEMBER IS STILL IN THIS LIST, and says so. Their work has to
     stay reachable; what must not happen is somebody reading the row as a
     current colleague. Dimmed, with the reason beside the name. */
  .myd-teamopt.is-off .av{opacity:.55}
  .myd-teamopt .uoff{margin-left:6px;font-size:10px;font-weight:700;letter-spacing:.02em;
    text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);
    border-radius:999px;padding:1px 6px;vertical-align:1px}
  .myd-pop.p-presetsub{padding:6px;width:232px}
  .myd-pop.p-presetmenu{padding:6px;width:214px}
  .myd-team-search{display:flex;align-items:center;gap:8px;height:32px;padding:0 11px;margin:2px 2px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
  .myd-team-search:focus-within{border-color:var(--ink-3);background:var(--surface)}
  .myd-team-search svg{width:14px;height:14px;color:var(--ink-3);flex:0 0 auto}
  .myd-team-search input{flex:1;border:none;outline:none;background:none;font-family:inherit;font-size:12.5px;color:var(--ink);min-width:0}
  .myd-team-sep{height:1px;background:var(--line);margin:5px 6px}
  .myd-team-list{max-height:246px;overflow:auto}
  .myd-team-empty{padding:12px 10px;text-align:center;font-size:12px;color:var(--ink-3)}
  /* THE COLUMN THE NUMBERS ARE IN, NAMED (the owner, 30 August). Unlabelled,
     "Ben Kelly 5" beside a board reading "4 things need attention" invited the
     reading that nine things were in play. */
  .myd-team-colhead{display:flex;justify-content:space-between;align-items:center;
    padding:6px 9px 2px;font-size:10px;line-height:14px;font-weight:600;
    letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
  .myd-teamopt{display:flex;align-items:center;gap:9px;width:100%;height:36px;padding:0 9px;border-radius:9px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left;transition:background .12s var(--ease),color .12s var(--ease)}
  .myd-teamopt:hover{background:var(--surface-2);color:var(--ink)}
  .myd-teamopt .cbx{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto;transition:.12s var(--ease)}
  .myd-teamopt .cbx svg{width:11px;height:11px;color:#fff;opacity:0}
  .myd-teamopt.on .cbx{background:var(--green);border-color:var(--green)}
  .myd-teamopt.on .cbx svg{opacity:1}
  .myd-teamopt .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:9.5px;font-weight:700;flex:0 0 auto}
  .myd-teamopt .un{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-teamopt .uc{color:var(--ink-3);font-size:11px;font-weight:700;flex:0 0 auto}
  .myd-teamopt.selall{font-weight:700;color:var(--ink)}
  .myd-teamopt.selall .cbx{margin-left:1px}
  .myd-presethd{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);padding:6px 8px 5px}
  .myd-presetrow{display:flex;align-items:center;gap:7px;width:100%;height:34px;padding:0 6px 0 8px;border-radius:9px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ink-2);transition:background .12s var(--ease),color .12s var(--ease)}
  .myd-presetrow:hover{background:var(--surface-2);color:var(--ink)}
  .myd-presetrow.on{color:var(--ink)}
  .myd-presetrow .pck{width:14px;flex:0 0 auto;display:grid;place-items:center;color:var(--green)}
  .myd-presetrow .pck svg{width:14px;height:14px}
  .myd-presetrow .pn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-presetrow .pmore{width:24px;height:24px;border-radius:6px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;opacity:0;flex:0 0 auto;transition:.12s var(--ease)}
  .myd-presetrow:hover .pmore,.myd-presetrow:focus-within .pmore{opacity:1}
  .myd-presetrow .pmore:hover{background:rgba(0,0,0,.06);color:var(--ink)}
  .myd-presetrow .pmore svg{width:14px;height:14px}
  .myd-presetrow.renaming{padding:0 6px}
  .myd-preset-rn{width:100%;height:28px;border:1px solid var(--ink-3);border-radius:7px;padding:0 8px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(20,20,22,.05)}

  /* ---------------- consolidated View panel (Filters / Sort / Group / Columns) ---------------- */
  .myd-vpanel{position:fixed;z-index:99;width:326px;background:var(--surface);border:1px solid var(--line);border-radius:var(--pop-r,14px);box-shadow:var(--sh-pop);flex-direction:column;max-height:min(74vh,640px);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s var(--ease),transform .16s var(--ease)}
  .myd-vpanel.show{display:flex;opacity:1;transform:none;pointer-events:auto}
  .myd-vscroll{overflow-y:auto;padding:6px;min-height:0}
  .myd-vsec{border-bottom:1px solid var(--line)}
  .myd-vsec:last-child{border-bottom:none}
  .myd-vsec-h{display:flex;align-items:center;gap:9px;width:100%;height:42px;padding:0 8px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--ink);text-align:left}
  .myd-vsec-h .cv{width:15px;height:15px;color:var(--ink-3);transition:transform .18s var(--ease);margin-left:auto}
  .myd-vsec.open .myd-vsec-h .cv{transform:rotate(180deg)}
  .myd-vsec-h .vc{font-size:10px;font-weight:700;color:#fff;background:var(--ink);border-radius:99px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center}
  .myd-vsec-h .vsel{font-size:11.5px;font-weight:600;color:var(--ink-3);margin-left:auto}
  .myd-vsec-h .vsel+.cv{margin-left:8px}
  .myd-vsec-body{display:none;padding:0 4px 10px}
  .myd-vsec.open .myd-vsec-body{display:block}
  .myd-vgrp{margin-bottom:10px}
  .myd-vgrp:last-child{margin-bottom:0}
  .myd-vglabel{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);padding:0 6px;margin:2px 0 3px}
  .myd-fopt{display:flex;align-items:center;gap:9px;width:100%;height:32px;padding:0 8px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left;transition:background .12s var(--ease),color .12s var(--ease)}
  .myd-fopt:hover{background:var(--surface-2);color:var(--ink)}
  .myd-fopt.on{color:var(--ink)}
  .myd-fopt .cbx{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto}
  .myd-fopt.radio .cbx{border-radius:50%}
  .myd-fopt.on .cbx{background:var(--green);border-color:var(--green)}
  .myd-fopt .cbx svg{width:11px;height:11px;color:#fff;opacity:0}
  .myd-fopt.on .cbx svg{opacity:1}
  .myd-fopt .sdir{margin-left:auto;font-size:11px;font-weight:700;color:var(--ink-3)}
  .myd-vfoot{display:flex;align-items:center;gap:8px;padding:9px 10px;border-top:1px solid var(--line);flex:0 0 auto}
  .myd-vfoot .btn{flex:0 0 auto;height:30px;justify-content:center;font-size:12px}
  .myd-vfoot-n{flex:1;font-size:11.5px;font-weight:700;color:var(--ink-3)}
  /* sort & group panel */
  .myd-pop.p-sg{padding:0;width:256px}
  .myd-sg-h{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);padding:10px 10px 5px}
  .myd-sg-cur{font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ink)}
  .myd-pop.p-sg .myd-vscroll{padding:0 6px 8px}
  .myd-sg-sep{height:1px;background:var(--line);margin:6px 6px 0}
  .myd-thmenu svg{width:13px;height:13px}
  /* column options menu */
  .myd-pop.p-colmenu{padding:6px;width:232px}
  .myd-colmsep{height:1px;background:var(--line);margin:5px 6px}
  .myd-mitem.back{color:var(--ink-3);font-weight:700}
  .myd-mitem.back svg{transform:rotate(90deg)}
  .myd-mitem.locked{opacity:.5;pointer-events:none}
  /* frozen columns */
  /* Frozen cells share the row's background exactly (so the row reads as one record) and carry NO permanent border/shadow. */
  .myd-grid td.frozen-col{background:var(--surface,#fff)}
  .myd-grid tbody tr.myd-taskrow:hover td.frozen-col{background:var(--row-hover,#F8F8F9)}
  .myd-grid tbody tr.myd-taskrow.sel td.frozen-col{background:var(--row-sel,#F1F2F4)}
  .myd-grid thead th.frozen-col{background:#fff}
  .myd-grid td.frozen-right{background:var(--surface,#fff)}
  .myd-grid tbody tr.myd-taskrow:hover td.frozen-right{background:var(--row-hover,#F8F8F9)}
  .myd-grid tbody tr.myd-taskrow.sel td.frozen-right{background:var(--row-sel,#F1F2F4)}
  .myd-grid thead th.frozen-right{background:#fff}
  /* Soft, low-contrast edge shadow - ONLY once middle content has scrolled under that frozen section (none at the default scroll position). */
  #mydGridWrap.scx-l .myd-grid .frozen-last{box-shadow:7px 0 8px -8px rgba(20,20,22,.16)}
  #mydGridWrap.scx-r .myd-grid .frozen-right{box-shadow:-7px 0 8px -8px rgba(20,20,22,.16)}
  /* Planned start - compact inline date edit */
  .myd-plan{border:none;background:none;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;padding:2px 6px;margin:0 -6px;border-radius:6px;transition:background .12s}
  .myd-plan:hover{background:var(--surface-2)}
  .myd-planinput{font-family:inherit;font-size:12px;border:1.5px solid var(--slate,#3b6fd4);border-radius:6px;padding:2px 5px;max-width:130px;width:calc(100% - 6px);background:#fff}
  /* My Day table scroll uses the shared .muva-gridscroll token (added to #mydGridWrap markup) - no page override */
  #screen-myday #mydGridWrap{margin-bottom:10px}

  /* ---------------- contained task detail / notes panel (flex child) ---------------- */
  /* THE FALLBACK IS A USABLE HEIGHT (30 August). The script sets
     --myd-panel-h from the container; this is what applies before it runs, and
     320px is a pane somebody can read - not the 46px collapse floor, which is
     what `min-height` here is for and is why the two must not be confused.
     `min-height` stays 46 SO THE COLLAPSED STATE CAN REACH IT; the usable
     minimum (280) is enforced where the height is chosen, in applyPanelH. */
  #mydPanel{--myd-panel-h:320px;flex:0 0 auto;flex-direction:column;height:var(--myd-panel-h);max-height:72vh;min-height:46px;background:var(--surface,#fff);border-top:1px solid var(--line);position:relative}
  #mydPanel.open{display:flex}
  #mydPanel.collapsed{height:auto!important}
  /* Divider resize strip: full-width invisible hit area straddling the panel's top border line. Drag anywhere here (except the centred handle) to resize vertically. */
  .myd-presize{position:absolute;top:-7px;left:0;right:0;height:15px;cursor:row-resize;z-index:3;touch-action:none;-webkit-user-select:none;user-select:none}
  /* Centred handle: click-only expand/collapse. Normal pointer, sits above the resize strip so it never starts a resize. */
  .myd-phandle{position:absolute;top:0;left:50%;transform:translateX(-50%);width:130px;height:20px;padding:0;margin:0;border:none;background:none;cursor:pointer;z-index:4;display:flex;align-items:flex-start;justify-content:center;touch-action:manipulation}
  .myd-phandle::after{content:"";margin-top:3px;width:96px;height:5px;border-radius:99px;background:var(--line-2);opacity:.7;transition:opacity .12s,background .12s,transform .12s;transform:scaleX(1)}
  #mydPanel:hover .myd-phandle::after{opacity:1;background:var(--ink-3)}
  .myd-phandle:hover::after{background:var(--ink-2);transform:scaleX(1.1);opacity:1}
  .myd-ph{display:flex;align-items:center;gap:14px;min-height:54px;padding:6px 14px;flex:0 0 auto;border-bottom:1px solid var(--line)}
  #mydPanel.collapsed .myd-ph{border-bottom:none}
  .myd-ph-l{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:1px}
  .myd-ph-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3)}
  .myd-ph-sub{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-ph-sub a{color:var(--ink);text-decoration:none}
  /* Step 2 (E1-F2): availability line in Task details - the shared mapper's wording.
     Separate from Waiting On (the party), which keeps its own column/field. */
  .myd-ph-avail{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-ph-avail .bd{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--amber,#e8a13a)}
  .myd-ph-avail .more{flex:0 0 auto;font-size:10.5px;color:var(--ink-3)}
  .myd-ph-sub a:hover{text-decoration:underline;text-underline-offset:2px}
  .myd-ph-sub .pd{color:var(--ink-2);font-weight:600}
  .myd-ph-r{display:flex;align-items:center;gap:6px;flex:0 0 auto}
  .myd-ptabs{display:flex;gap:2px;flex:0 0 auto}
  .myd-ph-div{width:1px;height:20px;background:var(--line);margin:0 4px;flex:0 0 auto}
  #mydPanel.collapsed .myd-ph-div{display:none}
  .myd-pfilter{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--pill);border:1px solid var(--line);background:#fff;color:var(--ink-2);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.12s var(--ease)}
  .myd-pfilter:hover{border-color:var(--line-2);color:var(--ink)}
  .myd-pfilter>svg:first-child{width:15px;height:15px;color:var(--ink-3)}
  .myd-pfilter>svg:last-child{width:14px;height:14px;color:var(--ink-3)}
  .myd-pfilter .lbl{white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
  #mydPanel.collapsed .myd-ptabs,#mydPanel.collapsed .myd-pfilter{display:none}
  .myd-ptab{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:99px;font-size:12px;font-weight:700;color:var(--ink-3);background:none;border:none;cursor:pointer;font-family:inherit;white-space:nowrap}
  .myd-ptab svg{width:14px;height:14px}
  .myd-ptab .cnt{font-size:10px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:99px;padding:0 5px;min-width:15px;text-align:center}
  .myd-ptab:hover{color:var(--ink-2)}
  .myd-ptab.active{background:var(--surface-2);color:var(--ink)}
  .myd-ptab.active .cnt{background:var(--slate-soft)}
  #mydPanel.collapsed .myd-pbody,#mydPanel.collapsed .myd-psub{display:none}
  .myd-psub{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}
  .myd-jnf{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--pill);padding:2px}
  .myd-jnf button{height:24px;padding:0 10px;border-radius:99px;font-size:11px;font-weight:700;color:var(--ink-3);background:none;border:none;cursor:pointer;font-family:inherit}
  .myd-jnf button.active{background:#fff;color:var(--ink);box-shadow:var(--sh-sm)}
  .myd-addbtn{margin-left:auto;height:30px;padding:0 12px;border-radius:var(--pill);border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit}
  .myd-addbtn:hover{border-color:var(--line-2);color:var(--ink)}
  .myd-addbtn svg{width:14px;height:14px}
  .myd-pbody{flex:1 1 auto;overflow-y:auto;overflow-x:auto;padding:2px 14px 14px;min-height:0}
  /* E20: the Task Details feed is the shared grid - flush (no wrap padding) so the engine's width
     math is exact and header/row lines run full width; the table cells provide their own spacing. */
  #mydFeedWrap{padding:0}
  #mydFeedWrap .myd-grid{width:max-content;min-width:0}
  #mydFeedWrap .myd-nt-type{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:600;font-size:11.5px}
  #mydFeedWrap .myd-nt-type svg{width:13px;height:13px}
  #mydFeedWrap .myd-nt-av{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;flex:0 0 auto;margin-right:7px;vertical-align:middle}
  #mydFeedWrap .myd-nt-name{vertical-align:middle}
  #mydFeedWrap .myd-nt-clip{margin-left:6px;color:var(--ink-3);vertical-align:middle}
  #mydFeedWrap .myd-nt-muted{color:var(--ink-3)}
  /* every inline icon in the Task Details DATA cells is a standard 14px Lucide-size glyph and
     never inflates the row height (action-column icons keep their own .myd-ra svg sizing). */
  #mydFeedWrap td:not(.c-acts) svg{width:14px;height:14px;flex:0 0 auto;vertical-align:middle}
  #mydFeedWrap .mdt-rel{display:inline-flex;align-items:center;gap:5px;max-width:100%;overflow:hidden;color:var(--ink-2)}
  #mydFeedWrap .mdt-rel svg{color:var(--ink-3)}
  #mydFeedWrap .mdt-rel-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Attachments column: paperclip + count on one line, centre-aligned; dash when none */
  #mydFeedWrap td.c-att,#mydFeedWrap th.c-att{text-align:center}
  #mydFeedWrap .myd-attcol{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border:none;background:none;border-radius:7px;color:var(--ink-2);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease);vertical-align:middle}
  #mydFeedWrap .myd-attcol svg{color:var(--ink-3)}
  #mydFeedWrap button.myd-attcol:hover{background:var(--surface-2);color:var(--ink)}
  #mydFeedWrap button.myd-attcol:hover svg{color:var(--ink)}
  #mydFeedWrap .myd-attcol.zero{color:var(--ink-3);cursor:default;font-weight:500}
  /* the detail pane's selection placeholder is MuvaEmpty's `select` size now;
     this slot only has to fill the pane so the state can centre inside it */
  .myd-pslot{display:flex;height:100%;min-height:0}
  .myd-pslot>.mes{align-self:stretch}

  /* feed items (activity + job notes share this) */
  .myd-fitem{display:flex;gap:11px;padding:12px 2px;border-bottom:1px solid var(--line)}
  .myd-fitem:last-child{border-bottom:none}
  .myd-fav{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:0 0 auto;margin-top:1px}
  .myd-fav.sys{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line)}
  .myd-fav.sys svg{width:14px;height:14px}
  .myd-fmain{flex:1;min-width:0}
  .myd-fhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
  .myd-fby{font-size:12.5px;font-weight:700;color:var(--ink)}
  .myd-fby a{color:inherit;text-decoration:none}.myd-fby a:hover{text-decoration:underline;text-underline-offset:2px}
  .myd-fwhen{font-size:11px;color:var(--ink-3);font-weight:500;margin-left:auto;white-space:nowrap}
  .myd-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 7px;border-radius:99px;display:inline-flex;align-items:center;gap:4px}
  .myd-lbl svg{width:10px;height:10px}
  .myd-lbl.note{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
  .myd-lbl.activity{background:#EAF1FC;color:#1B5CB8}
  .myd-lbl.job{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
  .myd-lbl.alert{background:#FBEAEA;color:#B3261E}
  .myd-lbl.action{background:#E7F3EC;color:#1E7A46}
  .myd-lbl.system{background:transparent;color:var(--ink-3);border:1px solid var(--line)}
  .myd-ftext{font-size:12.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;word-break:break-word}
  .myd-fmeta{margin-top:6px;display:flex;flex-direction:column;gap:3px}
  .myd-frel{font-size:11.5px;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
  .myd-frel b{color:var(--ink-2);font-weight:600}
  .myd-frel a{color:var(--ink-2);font-weight:600;text-decoration:none;cursor:pointer}
  .myd-frel a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
  .myd-frel svg{width:12px;height:12px;color:var(--ink-3);flex:0 0 auto}
  .myd-fasg{display:inline-flex;align-items:center;gap:4px}
  .myd-fasg .av{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:7.5px;font-weight:700}
  .myd-fack{margin-top:7px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:#8A6116;background:#FBF3E2;border:1px solid #EBD9A8;border-radius:8px;padding:4px 9px}
  .myd-fack svg{width:12px;height:12px}
  .myd-fackbtn{height:22px;padding:0 9px;border-radius:99px;border:1px solid #E0C67E;background:#fff;font-size:10.5px;font-weight:700;color:#8A6116;cursor:pointer;font-family:inherit}
  .myd-fdelta{font-size:11.5px;color:var(--ink-3);margin-top:2px}
  .myd-fdelta .old{text-decoration:line-through}
  .myd-fdelta .new{color:var(--ink-2);font-weight:600}
  .myd-fattach{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:4px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:11.5px;font-weight:600;color:var(--ink-2)}
  .myd-fattach svg{width:12px;height:12px;color:var(--ink-3)}

  /* messages + attachments rows */
  .myd-mrow{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid var(--line)}
  .myd-mrow:last-child{border-bottom:none}
  .myd-mic{width:30px;height:30px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);flex:0 0 auto}
  .myd-mic svg{width:15px;height:15px}
  .myd-mmain{flex:1;min-width:0}
  .myd-msubj{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-mrow svg,.myd-msubj svg{width:13px;height:13px;flex:0 0 auto;vertical-align:middle}
  .myd-mprev{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
  .myd-mmeta{font-size:11px;color:var(--ink-3);text-align:right;white-space:nowrap;flex:0 0 auto}
  .myd-mopen{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink-2);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
  .myd-mopen:hover{color:var(--ink);border-color:var(--line-2)}
  .myd-mopen svg{width:15px;height:15px}
  .myd-arow{display:flex;align-items:center;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line)}
  .myd-arow:last-child{border-bottom:none}
  .myd-aic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto}
  .myd-aic svg{width:15px;height:15px}
  .myd-amain{flex:1;min-width:0}
  .myd-aname{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-ameta{font-size:11px;color:var(--ink-3);margin-top:1px}
  .myd-adl{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink-2);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
  .myd-adl:hover{color:var(--ink);border-color:var(--line-2)}
  .myd-adl svg{width:15px;height:15px}

  /* ---------- note viewer: full-width table-style rows with inline expand ---------- */
  .myd-nfilter{display:inline-flex;flex-wrap:wrap;gap:1px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--pill);padding:2px}
  .myd-nfilter button{height:24px;padding:0 10px;border-radius:99px;font-size:11px;font-weight:700;color:var(--ink-3);background:none;border:none;cursor:pointer;font-family:inherit;white-space:nowrap}
  .myd-nfilter button:hover{color:var(--ink-2)}
  .myd-nfilter button.active{background:#fff;color:var(--ink);box-shadow:var(--sh-sm)}
  /* ---- Task-details notes: scannable column table (full-width rows, light dividers, not cards) ---- */
  .myd-nt{display:flex;flex-direction:column;min-width:1140px}
  /* Compact single-line register: From · Type · Subject · Note (widest) · Related · Assigned · Date · Actions. Column widths are drag-resizable CSS vars (persisted). Note is the flexible remainder so it consumes the centre space. */
  .myd-nt-row{display:grid;grid-template-columns:var(--fw-from,124px) var(--fw-type,118px) var(--fw-subj,152px) minmax(210px,1.7fr) var(--fw-rel,150px) var(--fw-asg,128px) var(--fw-date,100px) 88px;align-items:center;gap:10px;padding:5px 6px;border-bottom:1px solid var(--line)}
  .myd-nt-row:last-child{border-bottom:none}
  /* flat, uncluttered header matching the Jobs screen: one clean horizontal divider below, no vertical dividers, no boxed cells */
  .myd-nt-head{position:sticky;top:0;z-index:2;background:var(--surface,#fff);border-bottom:1px solid var(--line);padding-top:9px;padding-bottom:9px;align-items:center}
  /* header cells win over the per-column data-cell rules so every heading is identical (Jobs style: 10.5px/700/uppercase) */
  .myd-nt-row.myd-nt-head .myd-nt-c{position:relative;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);white-space:nowrap;overflow:visible}
  /* resize handles stay draggable but show NO visible vertical divider (only a faint hint on hover of that edge) */
  .myd-nt-rz{position:absolute;top:-8px;right:-6px;width:12px;height:30px;cursor:col-resize;z-index:3}
  .myd-nt-rz::after{content:"";position:absolute;left:5px;top:8px;width:1px;height:14px;background:transparent;transition:background .12s}
  .myd-nt-rz:hover::after{background:var(--line-2)}
  .myd-nt-row:not(.myd-nt-head):hover{background:var(--row-hover,#F8F8F9)}
  .myd-nt-c{min-width:0;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-nt-c.from{display:flex;align-items:center;gap:8px}
  .myd-nt-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:0 0 auto}
  .myd-nt-name{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-nt-c.subj{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-nt-muted{color:var(--ink-3);font-weight:600}
  /* Type column - one chip per row, single line, in its own column (never stacked above the subject) */
  .myd-nt-c.type{display:flex;align-items:center;overflow:hidden}
  .myd-nt-type{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 7px;border-radius:99px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap;line-height:1.6;max-width:100%;overflow:hidden}
  .myd-nt-type svg{width:9px;height:9px}
  .myd-nt-type.activity{background:#EAF1FC;color:#1B5CB8}
  .myd-nt-type.job{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
  .myd-nt-type.alert{background:#FBEAEA;color:#B3261E}
  .myd-nt-type.action{background:#E7F3EC;color:#1E7A46}
  .myd-nt-type.message{background:#EDEEFC;color:#4348C9}
  .myd-nt-type.sysmsg{background:#E6F5F1;color:#0F7A66}
  .myd-nt-type.attachment{background:#F3ECFB;color:#6D3BB5}
  .myd-nt-type.system{background:transparent;color:var(--ink-3);border:1px solid var(--line)}
  .myd-nt-c.note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:12px;font-weight:400}
  /* message paperclip + attachment count, inline in the Note cell */
  .myd-nt-clip{display:inline-flex;align-items:center;gap:2px;margin-left:8px;border:none;background:none;color:var(--ink-3);font-size:11px;font-weight:700;font-family:inherit;cursor:pointer;padding:0;vertical-align:-2px}
  .myd-nt-clip:hover{color:var(--ink)}
  .myd-nt-clip svg{width:13px;height:13px}
  /* clickable message row + inline expanded detail (no drawer / no separate panel). Namespaced class so it never collides with the app's global .msg{display:flex} */
  .myd-nt-row.mmsg{cursor:pointer}
  .myd-nt-row.mmsg.open{background:#F4F5F6}
  .myd-msg-detail{padding:11px 14px 13px 40px;background:#FAFAFB;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
  .myd-msg-syscap{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#0F7A66;background:#E6F5F1;border-radius:7px;padding:4px 9px;width:fit-content}
  .myd-msg-syscap svg{width:12px;height:12px}
  .myd-msg-full{font-size:13px;line-height:1.55;color:var(--ink);white-space:pre-wrap}
  .myd-msg-meta{display:flex;flex-wrap:wrap;gap:8px 28px}
  .myd-msg-meta>div{display:flex;flex-direction:column;gap:1px}
  .myd-msg-meta .k{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
  .myd-msg-meta .v{font-size:12.5px;font-weight:600;color:var(--ink)}
  .myd-msg-files{display:flex;flex-direction:column;gap:6px;padding-top:2px}
  .myd-msg-files-h{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
  .myd-msg-files-h svg{width:12px;height:12px}
  .myd-msg-file{display:inline-flex;align-items:center;gap:9px;width:fit-content;max-width:440px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface,#fff);cursor:pointer;font-family:inherit;text-align:left;transition:.12s var(--ease)}
  .myd-msg-file:hover{border-color:var(--line-2);background:var(--row-hover,#F8F8F9)}
  .myd-msg-file .fi{display:grid;place-items:center;color:var(--ink-3);flex:0 0 auto}
  .myd-msg-file .fi svg{width:15px;height:15px}
  .myd-msg-file .fn{font-size:12.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-msg-file .ft{font-size:10.5px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:5px;padding:1px 6px;flex:0 0 auto}
  .myd-msg-file>svg:last-child{width:13px;height:13px;color:var(--ink-3);flex:0 0 auto}
  .myd-msg-files-note{font-size:11px;color:var(--ink-3);font-style:italic;padding-top:1px}
  .myd-msg-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
  .myd-msg-actions button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);color:var(--ink-2);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:.12s var(--ease)}
  .myd-msg-actions button:hover{border-color:var(--line-2);color:var(--ink);background:var(--row-hover,#F8F8F9)}
  .myd-msg-actions button svg{width:14px;height:14px;color:var(--ink-3)}
  /* compact system-history popover (View history) - filtered to the selected job + activity */
  .myd-hist-h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px 8px;border-bottom:1px solid var(--line)}
  .myd-hist-title{font-size:12px;font-weight:700;color:var(--ink)}
  .myd-hist-sub{font-size:11px;color:var(--ink-3);margin-top:1px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-hist-list{max-height:300px;overflow-y:auto;padding:2px 0}
  .myd-hist-row{display:flex;align-items:flex-start;gap:9px;padding:7px 12px}
  .myd-hist-row+.myd-hist-row{border-top:1px solid var(--line)}
  .myd-hist-ic{width:22px;height:22px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .myd-hist-ic svg{width:12px;height:12px}
  .myd-hist-main{flex:1;min-width:0}
  .myd-hist-act{font-size:12px;font-weight:700;color:var(--ink)}
  .myd-hist-meta{font-size:11px;color:var(--ink-3);line-height:1.4}
  .myd-hist-meta .old{text-decoration:line-through}
  .myd-hist-meta .new{color:var(--ink-2);font-weight:600}
  .myd-hist-when{font-size:10.5px;color:var(--ink-3);white-space:nowrap;flex:0 0 auto;font-variant-numeric:tabular-nums}
  .myd-hist-empty{padding:16px 12px;font-size:12px;color:var(--ink-3);text-align:center}
  /* floating record viewer (message / note) */
  .myd-recv{position:fixed;z-index:9990;width:520px;max-height:calc(100vh - 40px);background:var(--surface,#fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px -12px rgba(20,20,22,.34),0 4px 12px rgba(20,20,22,.12);display:none;flex-direction:column;overflow:hidden}
  .myd-recv.show{display:flex}
  .myd-recv.min{height:auto!important;max-height:none}
  .myd-recv.min .myd-recv-body,.myd-recv.min .myd-recv-foot,.myd-recv.min .myd-recv-grip{display:none}
  .myd-recv-head{display:flex;align-items:center;gap:10px;padding:11px 12px 11px 15px;border-bottom:1px solid var(--line);cursor:move;user-select:none;flex:0 0 auto}
  .myd-recv-ttl{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 auto}
  .myd-recv-ttl b{font-size:13.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-recv-hbtns{display:flex;align-items:center;gap:2px;flex:0 0 auto}
  .myd-recv-hbtns button{width:28px;height:28px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;border-radius:7px;cursor:pointer;transition:.12s var(--ease)}
  .myd-recv-hbtns button:hover{background:var(--surface-2);color:var(--ink)}
  .myd-recv-hbtns button svg{width:16px;height:16px}
  .myd-recv-body{flex:1 1 auto;overflow-y:auto;padding:14px 15px;display:flex;flex-direction:column;gap:12px}
  .myd-recv-full{font-size:13.5px;line-height:1.6;color:var(--ink);white-space:pre-wrap}
  .myd-recv-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}
  .myd-recv-m{display:flex;flex-direction:column;gap:1px;min-width:0}
  .myd-recv-m .k{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
  .myd-recv-m .v{font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
  .myd-recv-sec{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
  .myd-recv-sec svg{width:12px;height:12px}
  .myd-recv-files{display:flex;flex-direction:column;gap:6px}
  .myd-recv-file{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
  .myd-recv-file .fi{color:var(--ink-3);display:grid;place-items:center}.myd-recv-file .fi svg{width:15px;height:15px}
  .myd-recv-file .fn{flex:1 1 auto;font-size:12.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-recv-file .ft{font-size:10.5px;font-weight:700;color:var(--ink-3);background:#fff;border-radius:5px;padding:1px 6px;flex:0 0 auto}
  .myd-recv-fbtn{width:26px;height:26px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;border-radius:6px;cursor:pointer;flex:0 0 auto}
  .myd-recv-fbtn:hover{background:#fff;color:var(--ink)}.myd-recv-fbtn svg{width:14px;height:14px}
  .myd-recv-fnote{font-size:11px;color:var(--ink-3);font-style:italic}
  .myd-recv-hist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .myd-recv-hrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;border:none;background:none;cursor:pointer;font-family:inherit;text-align:left;border-bottom:1px solid var(--line)}
  .myd-recv-hrow:last-child{border-bottom:none}
  .myd-recv-hrow:hover{background:var(--surface-2)}
  .myd-recv-hrow.cur{background:var(--surface-2)}
  .myd-recv-hrow .hs{font-size:12px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-recv-hrow .hd{font-size:11px;color:var(--ink-3);flex:0 0 auto}
  /* footer: one row of compact, pill-shaped buttons with identical height / radius / icon size / spacing / hover */
  .myd-recv-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:11px 15px 13px;border-top:1px solid var(--line);flex:0 0 auto}
  .myd-recv-foot button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border:1px solid var(--line);border-radius:var(--pill,999px);background:var(--surface,#fff);color:var(--ink-2);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:.12s var(--ease)}
  .myd-recv-foot button:hover{border-color:var(--line-2);color:var(--ink);background:var(--row-hover,#F8F8F9)}
  .myd-recv-foot button svg{width:14px;height:14px;color:var(--ink-3)}
  .myd-recv-foot button.del:hover{color:#B3261E;border-color:#F0C6C2;background:#FBEAEA}
  .myd-recv-foot .myd-nt-ic{width:32px;height:32px;border:1px solid var(--line);border-radius:var(--pill,999px)}
  /* resize affordance: soft curved corner following the viewer's 16px radius, subtle, large invisible hit area, clear of the footer buttons */
  .myd-recv-grip{position:absolute;right:0;bottom:0;width:24px;height:24px;cursor:nwse-resize;z-index:3}
  .myd-recv-grip::after{content:"";position:absolute;right:5px;bottom:5px;width:11px;height:11px;border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-bottom-right-radius:12px;opacity:.65;transition:.12s var(--ease)}
  .myd-recv:hover .myd-recv-grip::after{border-color:var(--ink-3);opacity:1}
  .myd-nt-c.rel{display:flex;align-items:center;gap:5px;color:var(--ink-3);font-weight:600;white-space:nowrap;overflow:hidden}
  .myd-nt-c.rel svg{width:12px;height:12px;flex:0 0 auto}
  .myd-nt-c.rel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-nt-c.asg{color:var(--ink-2);font-weight:600;font-size:12px}
  .myd-nt-c.date{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}
  .myd-nt-c.acts{display:flex;align-items:center;justify-content:flex-end;gap:2px;overflow:visible}
  .myd-nt-head .myd-nt-c.acts{justify-content:flex-end;text-align:right}
  .myd-nt-ic{width:26px;height:26px;border-radius:7px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;opacity:.6;transition:.12s var(--ease)}
  .myd-nt-row:hover .myd-nt-ic{opacity:1}
  .myd-nt-ic:hover{background:rgba(0,0,0,.06);color:var(--ink)}
  .myd-nt-ic svg{width:14px;height:14px}
  .myd-nt-ic.pin.on{opacity:1;color:#C08A1E;background:#FBF3E0}
  .myd-nt-ic.pin.on svg{fill:currentColor}
  .myd-nt-ic.del{opacity:.35}
  .myd-nt-row:hover .myd-nt-ic.del{opacity:.7}
  .myd-nt-ic.del:hover{opacity:1;color:#B3261E;background:#FBEAEA}
  .myd-nt-sec{display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);padding:5px 6px 3px;background:var(--surface-2);border-bottom:1px solid var(--line)}
  .myd-nt-sec svg{width:12px;height:12px;color:#C08A1E}
  .myd-nt-sec.plain svg{display:none}
  /* system-change delta shown inside the Note column */
  .myd-sys-delta .old{text-decoration:line-through;color:var(--ink-3)}
  .myd-sys-delta .new{color:var(--ink-2);font-weight:700}
  /* one combined feed → the top controls are simple segmented filters (no separate views, no duplicate dropdown) */
  /* THE PANEL'S FEED FILTER IS A SEGMENTED CONTROL, so it is the shared one
     (`.seg` is on the element). It used to be a fourth private tray with its
     own 28px positions and a shadowed white thumb. What is left here is the
     one thing that is genuinely this row's: it lives in a 392px panel, so it
     scrolls rather than wrapping, and its positions carry a count. */
  .myd-ffilters{flex:0 1 auto;max-width:100%}
  .myd-ffilter .cnt{font-size:10px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:99px;padding:0 5px;min-width:15px;text-align:center}
  .myd-ffilter.active .cnt{background:color-mix(in srgb, var(--acc,var(--ink)) 14%, transparent);color:var(--acc,var(--ink))}
  #mydPanel.collapsed .myd-ffilters{display:none}
  /* simpler system-activity feed rows (don't need every note column) */
  .myd-nt-sysfeed{display:flex;flex-direction:column}
  .myd-sysrow{display:flex;align-items:center;gap:10px;padding:7px 6px;border-bottom:1px solid var(--line)}
  .myd-sysrow:last-child{border-bottom:none}
  .myd-sys-ic{width:24px;height:24px;border-radius:50%;background:var(--surface-2);color:var(--ink-3);display:grid;place-items:center;flex:0 0 auto}
  .myd-sys-ic svg{width:13px;height:13px}
  .myd-sys-main{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
  .myd-sys-act{font-size:12px;font-weight:700;color:var(--ink-2)}
  .myd-sys-by{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-sys-by .old{text-decoration:line-through}
  .myd-sys-by .new{color:var(--ink-2);font-weight:600}
  .myd-sys-when{font-size:11px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;flex:0 0 auto}
  /* delete-confirm popover extras */
  .myd-cf-sub{font-size:12.5px;color:var(--ink-2);padding:2px 2px 6px;line-height:1.4}
  .myd-cf-del{background:#B3261E;color:#fff}
  .myd-cf-del:hover{background:#9d2019}
  .myd-fatt{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11.5px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit;max-width:100%}
  .myd-fatt:hover{border-color:var(--line-2);color:var(--ink)}
  .myd-fatt svg{width:13px;height:13px;color:var(--ink-3);flex:0 0 auto}
  .myd-fatt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* ---------- Google-Keep-style floating note composer ---------- */
  .myd-keep{position:fixed;z-index:120;display:none;flex-direction:column;width:512px;max-height:86vh;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 12px 34px -8px rgba(20,20,22,.24),0 3px 10px -4px rgba(20,20,22,.12);padding:12px 12px 14px}
  .myd-keep.show{display:flex}
  .myd-keep:not(.sized){overflow-y:auto}
  .myd-keep.sized{overflow:hidden}
  .myd-keep-top{display:flex;align-items:center;gap:8px;margin-bottom:9px;flex:0 0 auto}
  .myd-keep-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--pill);padding:2px;gap:2px}
  .myd-keep-toggle button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:99px;font-size:11.5px;font-weight:700;color:var(--ink-3);background:none;border:none;cursor:pointer;font-family:inherit}
  .myd-keep-toggle button svg{width:13px;height:13px}
  .myd-keep-toggle button.active{background:#fff;color:var(--ink);box-shadow:var(--sh-sm)}
  .myd-keep-topr{display:flex;align-items:center;gap:1px;margin-left:auto}
  .myd-keep-ic{width:30px;height:30px;border-radius:8px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;position:relative;transition:.12s var(--ease)}
  .myd-keep-ic:hover{background:rgba(0,0,0,.055);color:var(--ink)}
  .myd-keep-ic.on{color:#C08A1E}
  .myd-keep-ic.bm.on svg{fill:currentColor}
  .myd-keep-ic svg{width:16px;height:16px}
  /* fixed context - not an editable field */
  .myd-keep-ctx{margin-bottom:9px;flex:0 0 auto}
  .myd-keep-ctxfix{display:flex;align-items:center;gap:9px;padding:7px 11px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px}
  .myd-keep-ctxfix>svg{width:15px;height:15px;color:var(--ink-3);flex:0 0 auto}
  .myd-keep-ctxfix .cfx{min-width:0;flex:1}
  /* Activity context: single clean baseline row - description primary, job number muted secondary, no icon */
  .myd-keep-ctxfix .cfx-inline{display:flex;align-items:baseline;gap:6px}
  .myd-keep-ctxfix .cfx-inline .cfx-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-keep-ctxfix .cfx-inline .cfx-s{margin-top:0;flex:0 0 auto;white-space:nowrap}
  .myd-keep-ctxfix .cfx-t{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-keep-ctxfix .cfx-s{font-size:11px;font-weight:600;color:var(--ink-3);margin-top:1px}
  .myd-keep-change{height:24px;padding:0 9px;border:1px solid var(--line-2);border-radius:99px;background:#fff;font-family:inherit;font-size:11px;font-weight:700;color:var(--ink-2);cursor:pointer;flex:0 0 auto}
  .myd-keep-change:hover{color:var(--ink);border-color:var(--ink-3)}
  .myd-keep-rel{margin-top:7px;height:32px;width:100%;border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:0 26px 0 10px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:var(--chev);background-repeat:no-repeat;background-position:right 8px center;background-size:14px}
  .myd-keep-purpose{display:inline-flex;gap:5px;margin-bottom:9px;flex:0 0 auto}
  .myd-keep-purpose button{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 12px;border-radius:99px;font-size:11.5px;font-weight:700;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;font-family:inherit}
  .myd-keep-purpose button svg{width:12px;height:12px}
  .myd-keep-purpose button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
  .myd-keep-purpose button[data-kp="alert"].active{background:#B3261E;border-color:#B3261E}
  .myd-keep-purpose button[data-kp="action"].active{background:#1E7A46;border-color:#1E7A46}
  .myd-keep-content{display:flex;flex-direction:column;min-height:0}
  .myd-keep.sized .myd-keep-content{flex:1 1 auto;overflow-y:auto}
  .myd-keep-title{border:none;background:none;font-family:inherit;font-size:15px;font-weight:700;color:var(--ink);outline:none;padding:2px 2px 4px;flex:0 0 auto}
  .myd-keep-title::placeholder{color:var(--ink-3);font-weight:700}
  .myd-keep-body{border:none;background:none;font-family:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);outline:none;resize:none;padding:2px;min-height:118px;max-height:260px;overflow-y:auto;flex:0 0 auto}
  .myd-keep.sized .myd-keep-body{flex:1 1 auto;max-height:none}
  .myd-keep-body::placeholder{color:var(--ink-3)}
  .myd-keep-cond{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}
  .myd-keep-ci{color:var(--ink-3);display:grid;place-items:center}.myd-keep-ci svg{width:15px;height:15px}
  /* Action due date: click-to-open calendar trigger (read-only button - no free-form typing) + inline clear */
  .myd-keep-duewrap{flex:1;min-width:150px;display:flex;align-items:center;gap:4px}
  .myd-keep-due{flex:1;min-width:0;height:34px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:0 11px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;transition:.12s var(--ease)}
  .myd-keep-due:hover{border-color:var(--ink-3)}
  .myd-keep-due svg{width:15px;height:15px;color:var(--ink-3);flex:0 0 auto}
  .myd-keep-due .ddv{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .myd-keep-due.empty .ddv{color:var(--ink-3);font-weight:600}
  .myd-keep-duex{width:30px;height:30px;flex:0 0 auto;border:none;background:none;border-radius:7px;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:.12s var(--ease)}
  .myd-keep-duex:hover{background:var(--surface-2);color:var(--ink)}
  .myd-keep-duex svg{width:14px;height:14px}
  .myd-keep-pri{height:32px;border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:0 26px 0 10px;font-family:inherit;font-size:12px;color:var(--ink);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:var(--chev);background-repeat:no-repeat;background-position:right 8px center;background-size:14px}
  .myd-keep-asgrow{display:flex;align-items:center;gap:5px;margin-top:9px}
  .myd-keep-asgrow .lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-3);margin-right:2px}
  .myd-keep-asg .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:8.5px;font-weight:700}
  .myd-keep-swatches{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding:8px;background:rgba(0,0,0,.02);border-radius:10px}
  .myd-swatch{width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);cursor:pointer;display:grid;place-items:center;color:var(--ink-2)}
  .myd-swatch.on{border-color:var(--ink)}
  .myd-swatch svg{width:13px;height:13px}
  .myd-keep-asglist{max-height:180px;overflow-y:auto;margin-top:10px;padding:5px;background:rgba(0,0,0,.02);border-radius:10px}
  .myd-keep-asgitem{display:flex;align-items:center;gap:9px;width:100%;height:34px;padding:0 8px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left}
  .myd-keep-asgitem:hover{background:rgba(0,0,0,.04);color:var(--ink)}
  .myd-keep-asgitem .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:8.5px;font-weight:700;flex:0 0 auto}
  .myd-keep-asgitem .ck{margin-left:auto;color:var(--green);opacity:0}.myd-keep-asgitem .ck svg{width:15px;height:15px}
  .myd-keep-asgitem.on{color:var(--ink)}.myd-keep-asgitem.on .ck{opacity:1}
  .myd-keep-morelist{margin-top:10px;padding:5px;background:rgba(0,0,0,.02);border-radius:10px}
  .myd-keep-morelist button{display:flex;align-items:center;gap:9px;width:100%;height:34px;padding:0 8px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);text-align:left}
  .myd-keep-morelist button:hover{background:rgba(0,0,0,.04);color:var(--ink)}
  .myd-keep-morelist button svg{width:15px;height:15px;color:var(--ink-3)}
  .myd-keep-bar{display:flex;align-items:center;gap:1px;margin-top:11px;flex:0 0 auto}
  .myd-keep-save{margin-left:auto;height:30px;padding:0 14px;font-size:12.5px;font-weight:700;border-radius:8px;gap:5px}
  .myd-keep-attname{margin-top:8px;font-size:11.5px;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}
  .myd-keep-attname svg{width:12px;height:12px;color:var(--ink-3)}
  /* bottom-right resize grip */
  /* resize affordance: soft curved corner following the card radius, subtle by default, large invisible hit area, clear of the Add note button */
  .myd-keep-grip{position:absolute;right:0;bottom:0;width:26px;height:26px;cursor:nwse-resize;z-index:6}
  .myd-keep-grip::after{content:"";position:absolute;right:5px;bottom:5px;width:11px;height:11px;border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-bottom-right-radius:11px;opacity:.7;transition:.12s var(--ease)}
  .myd-keep:hover .myd-keep-grip::after{border-color:var(--ink-3);opacity:1}
  .myd-keep-save{position:relative;z-index:8}
  /* dirty-close confirmation strip (inline, keeps everything inside the composer) */
  .myd-keep-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:8px 10px;background:#FBEFEF;border:1px solid #F3D9D9;border-radius:9px;flex:0 0 auto}
  .myd-keep-confirm .kc-t{font-size:12px;font-weight:700;color:#8A2A24}
  .myd-keep-confirm .kc-btns{display:flex;gap:6px;flex:0 0 auto}
  .myd-keep-confirm button{height:28px;padding:0 11px;border-radius:7px;font-family:inherit;font-size:11.5px;font-weight:700;cursor:pointer;border:1px solid transparent}
  .myd-keep-confirm .kc-keep{background:#fff;border-color:var(--line-2);color:var(--ink-2)}
  .myd-keep-confirm .kc-keep:hover{color:var(--ink);border-color:var(--ink-3)}
  .myd-keep-confirm .kc-discard{background:#B3261E;color:#fff}
  .myd-keep-confirm .kc-discard:hover{background:#9d2019}
  /* MUVA date picker popover (composer Action due date) */
  .myd-pop.p-cal{width:262px;padding:10px;z-index:132}
  .mcal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .mcal-title{font-size:12.5px;font-weight:700;color:var(--ink)}
  .mcal-nav{width:28px;height:28px;border-radius:8px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:.12s var(--ease)}
  .mcal-nav:hover{background:var(--surface-2);color:var(--ink)}
  .mcal-nav svg{width:16px;height:16px}
  .mcal-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3px}
  .mcal-wd span{text-align:center;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-3);padding:2px 0}
  .mcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .mcal-e{height:30px}
  .mcal-d{height:30px;border:none;background:none;border-radius:8px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.1s var(--ease)}
  .mcal-d:hover{background:var(--surface-2);color:var(--ink)}
  .mcal-d.today{color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 1px var(--line-2)}
  .mcal-d.sel{background:var(--ink);color:#fff;font-weight:700;box-shadow:none}
  .mcal-d.sel:hover{background:var(--ink);color:#fff}
  .mcal-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
  .mcal-clear,.mcal-todaybtn{height:28px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:.12s var(--ease)}
  .mcal-clear:hover,.mcal-todaybtn:hover{background:var(--surface-2);color:var(--ink)}
  /* read-only note detail */
  .myd-keep.view .myd-keep-top{margin-bottom:8px}
  .myd-keep-vhead{display:flex;align-items:center;gap:9px;margin-bottom:8px}
  .myd-keep-vhead .av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700}
  .myd-keep-vhead .vby{font-size:12.5px;font-weight:700;color:var(--ink)}
  .myd-keep-vhead .vwhen{font-size:11px;color:var(--ink-3)}
  .myd-keep-vtitle{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px}
  .myd-keep-vtext{font-size:13.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;word-break:break-word}
  .myd-keep-vmeta{margin-top:10px;display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--ink-3)}
  .myd-keep-vmeta>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .myd-keep-vmeta b{color:var(--ink-2)}
  .myd-keep-vmeta a{color:var(--ink-2);font-weight:600;text-decoration:none;cursor:pointer}
  .myd-keep-vmeta a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
  .myd-keep-vmeta svg{width:12px;height:12px;color:var(--ink-3);flex:0 0 auto}

  /* ---------- View panel column-reset row ---------- */
  .myd-vresets{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
  .myd-vreset{flex:1;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:inherit;font-size:11px;font-weight:700;color:var(--ink-2);cursor:pointer}
  .myd-vreset:hover{border-color:var(--line-2);color:var(--ink)}

  /* ---------- bulk-action bar ---------- */
  #mydTools.bulk-hidden{display:none}
  .myd-bulk{position:fixed;z-index:95;display:none;align-items:center;gap:6px;height:40px;padding:0 6px 0 14px;background:var(--ink,#141416);color:#fff;border-radius:999px;box-shadow:0 8px 24px -8px rgba(20,20,22,.4)}
  .myd-bulk.show{display:flex}
  .myd-bulk-n{font-size:12.5px;font-weight:700;white-space:nowrap;padding-right:4px;border-right:1px solid rgba(255,255,255,.16);margin-right:2px}
  /* the split layout: what is selected and how to stop on the left, what would
     happen to it on the far right */
  .myd-bulk.split{padding:0 6px 0 14px;min-width:340px}
  .myd-bulk.split .myd-bulk-n{border-right:0;padding-right:0;margin-right:8px}
  .myd-bulk-clear{background:none;border:0;color:rgba(255,255,255,.72);font:inherit;font-size:12px;
    font-weight:600;padding:4px 6px;border-radius:7px;cursor:pointer}
  .myd-bulk-clear:hover{color:#fff;background:rgba(255,255,255,.12)}
  .myd-bulk-clear:focus-visible{outline:none;color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.5)}
  .myd-bulk-gap{flex:1 1 auto;min-width:24px}
  .myd-bulk-acts{display:flex;align-items:center;gap:2px}
  .myd-bulk-acts button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:8px;background:none;border:none;color:rgba(255,255,255,.86);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s}
  .myd-bulk-acts button:hover{background:rgba(255,255,255,.12);color:#fff}
  .myd-bulk-acts button svg{width:14px;height:14px}
  .myd-bulk-acts button.ic{padding:0;width:32px;justify-content:center}
  .myd-bulk-x{width:30px;height:30px;border-radius:8px;border:none;background:none;color:rgba(255,255,255,.7);display:grid;place-items:center;cursor:pointer;margin-left:2px}
  .myd-bulk-x:hover{background:rgba(255,255,255,.12);color:#fff}
  .myd-bulk-x svg{width:15px;height:15px}
  /* compact confirmation popover (complete / N/A) */
  .myd-pop.p-confirm{width:288px;padding:14px}
  .myd-cf-h{display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:700;color:var(--ink);line-height:1.4}
  .myd-cf-h svg{width:17px;height:17px;color:var(--ink-3);flex:0 0 auto;margin-top:1px}
  .myd-cf-field{margin-top:11px}
  .myd-cf-field label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-3);margin-bottom:5px}
  .myd-cf-field textarea{width:100%;min-height:58px;max-height:130px;border:1px solid var(--line-2);border-radius:9px;background:#fff;padding:8px 11px;font-family:inherit;font-size:12.5px;color:var(--ink);outline:none;resize:vertical;line-height:1.45}
  .myd-cf-field textarea:focus{border-color:var(--ink-3);box-shadow:0 0 0 3px rgba(20,20,22,.05)}
  .myd-cf-foot{display:flex;gap:8px;margin-top:13px}
  .myd-cf-foot .btn{flex:1;height:34px;justify-content:center;font-size:12px}

  /* ---------- assignee popover ---------- */
  .myd-pop.p-assign{width:300px;padding:0}
  .myd-asg-h{display:flex;align-items:center;gap:8px;height:42px;padding:0 8px 0 14px;border-bottom:1px solid var(--line);font-size:12.5px;font-weight:700;color:var(--ink)}
  .myd-asg-h>span{flex:1}
  .myd-asg-back,.myd-asg-x{width:28px;height:28px;border-radius:7px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
  .myd-asg-back{transform:rotate(90deg)}
  .myd-asg-back:hover,.myd-asg-x:hover{background:var(--surface-2);color:var(--ink)}
  .myd-asg-back svg,.myd-asg-x svg{width:16px;height:16px}
  .myd-asg-search{display:flex;align-items:center;gap:8px;margin:8px;padding:0 10px;height:34px;border:1px solid var(--line-2);border-radius:9px}
  .myd-asg-search svg{width:15px;height:15px;color:var(--ink-3);flex:0 0 auto}
  .myd-asg-search input{flex:1;border:none;outline:none;background:none;font-family:inherit;font-size:12.5px;color:var(--ink)}
  .myd-asg-scroll{max-height:min(52vh,340px);overflow-y:auto;padding:0 6px 8px}
  .myd-asg-sec{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);padding:8px 8px 3px}
  .myd-asgrow{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 8px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;color:var(--ink);transition:background .1s}
  .myd-asgrow:hover{background:var(--surface-2)}
  .myd-asgrow .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:9.5px;font-weight:700;flex:0 0 auto}
  .myd-asgrow .av.un-av{background:var(--surface-2);border:1px dashed var(--line-2);color:var(--ink-3)}
  .myd-asgrow .av.un-av svg{width:14px;height:14px}
  .myd-asgrow .nm{flex:1;min-width:0;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-asgrow.scope{height:44px}
  .myd-asgrow .ct{font-size:11px;font-weight:700;color:var(--ink-3);background:var(--surface-2);border-radius:99px;padding:0 8px;min-width:22px;text-align:center}
  .myd-asg-sep{height:1px;background:var(--line);margin:5px 8px}
  .myd-asg-empty{font-size:12px;color:var(--ink-3);padding:10px 8px}
  .myd-asg-confirm{padding:14px;font-size:13px;line-height:1.5;color:var(--ink-2)}
  .myd-asg-confirm b{color:var(--ink);font-weight:700}
  .myd-asg-foot{display:flex;gap:8px;padding:0 12px 12px}
  .myd-asg-foot .btn{flex:1;height:34px;justify-content:center;font-size:12px}

  /* ---------- change providers popover ---------- */
  .myd-pop.p-prov{width:308px;padding:0}
  .myd-prov-cursec{padding:6px 6px 2px;max-height:150px;overflow-y:auto}
  .myd-prov-cur{display:flex;align-items:center;gap:9px;padding:6px 6px 6px 8px;border-radius:8px}
  .myd-prov-cur:hover{background:var(--surface-2)}
  .myd-prov-ic{width:26px;height:26px;border-radius:7px;background:#EAF3EE;color:#1E7A46;display:grid;place-items:center;flex:0 0 auto}
  .myd-prov-ic svg{width:14px;height:14px}
  .myd-prov-ic.sm{width:24px;height:24px}
  .myd-prov-nm{flex:1;min-width:0}
  .myd-prov-nm b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .myd-prov-nm span{font-size:11px;color:var(--ink-3)}
  .myd-prov-swap,.myd-prov-rm{width:26px;height:26px;border-radius:7px;border:none;background:none;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
  .myd-prov-swap:hover,.myd-prov-rm:hover{background:rgba(0,0,0,.06);color:var(--ink)}
  .myd-prov-swap.on{background:var(--ink);color:#fff}
  .myd-prov-swap svg,.myd-prov-rm svg{width:14px;height:14px}
  .myd-prov-cancel{height:20px;padding:0 8px;border:1px solid var(--line-2);border-radius:99px;background:#fff;font-family:inherit;font-size:10px;font-weight:700;color:var(--ink-2);cursor:pointer;margin-left:6px;text-transform:none;letter-spacing:0}
  .myd-asg-scroll.prov .myd-asgrow .nm .sub{color:var(--ink-3);font-weight:500}

  /* ---------- quick previews (notes / attachments) ---------- */
  .myd-pop.p-noteprev,.myd-pop.p-attprev{width:340px;padding:0}
  .myd-prev-h{display:flex;align-items:center;height:38px;padding:0 8px 0 14px;border-bottom:1px solid var(--line);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
  .myd-prev-h .myd-asg-x{margin-left:auto}
  .myd-prev-list{max-height:min(46vh,300px);overflow-y:auto;padding:5px}
  .myd-prev-note{display:flex;gap:9px;width:100%;padding:8px;border-radius:9px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s}
  .myd-prev-note:hover{background:var(--surface-2)}
  .myd-prev-note .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:9.5px;font-weight:700;flex:0 0 auto}
  .myd-prev-note .pv{min-width:0;flex:1}
  .myd-prev-note .pv-top{display:flex;align-items:center;gap:6px;margin-bottom:2px}
  .myd-prev-note .pv-top>b{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap}
  .myd-prev-note .pv-when{margin-left:auto;font-size:10.5px;color:var(--ink-3);white-space:nowrap}
  .myd-prev-pin{color:#C08A1E;display:inline-flex}.myd-prev-pin svg{width:11px;height:11px}
  .myd-prev-note .pv-text{font-size:12px;color:var(--ink-2);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .myd-prev-note .pv-text b{color:var(--ink);font-weight:700}
  .myd-prev-note .pv-sub{font-size:11px;color:var(--ink-3)}
  .myd-prev-aic{width:30px;height:30px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);flex:0 0 auto}
  .myd-prev-aic svg{width:15px;height:15px}
  .myd-prev-foot{border-top:1px solid var(--line);padding:6px}
  .myd-prev-all{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:32px;border-radius:8px;border:none;background:none;font-family:inherit;font-size:12px;font-weight:700;color:var(--ink-2);cursor:pointer}
  .myd-prev-all:hover{background:var(--surface-2);color:var(--ink)}
  .myd-prev-all svg{width:14px;height:14px;transform:rotate(-90deg)}
  /* note highlight flash when opened from a preview */
  .myd-nt-row.hl{animation:mydHl 1.6s var(--ease)}
  @keyframes mydHl{0%,30%{background:#FFF6DC}100%{background:transparent}}

  /* ---------- messages context labels ---------- */
  .myd-mctxrow{margin-top:4px}
  .myd-mctx{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--ink-3)}
  .myd-mctx svg{width:12px;height:12px}
  .myd-mctx.job{color:var(--ink-3)}
  .myd-mctx.act a{color:var(--ink-2);font-weight:600;text-decoration:none;cursor:pointer}
  .myd-mctx.act a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}

  /* ---------- detail-panel empty state + splitter ---------- */

}
