/* ---- merged from fixes.css (shell/core remainder) ---- */
.pmenu-ctx{ display: none !important; }
.pmenu .pmenu-lb,.pmenu .pmenu-item,.pmenu .pmenu-acc-hd,.pmenu .pmenu-id-name{ font-size: 13px !important; }
.pmenu-head{ border-bottom: 1px solid rgba(10,10,10,0.14) !important; border-radius: 0 !important; }
.pmenu-bottom{ border-top: 1px solid rgba(10,10,10,0.14) !important; }
body.menu-dark .pmenu-head{ border-bottom-color: rgba(255,255,255,0.14) !important; }
body.menu-dark .pmenu-bottom{ border-top-color: rgba(255,255,255,0.14) !important; }
body.pm-collapsed .pmenu-head{ border-radius: 0 !important; overflow: visible !important; }
body.pm-collapsed .pmenu-mark-img.pm-min,body.pm-collapsed .pmenu-mark.pm-min{
  width: 28px !important; height: 28px !important;
  object-fit: contain !important; border-radius: 0 !important; overflow: visible !important;
}
.pmore{
  width: fit-content !important;
  max-width: calc(100vw - 40px) !important;
  max-height: calc(var(--vh100) - 24px) !important;
  padding: 22px 32px 30px 26px !important;
}
/* Chrome draws a classic scrollbar INSIDE the panel and eats the right
   padding; Safari overlays one. Hiding the webkit bar makes both read the
   same 32px. Wheel/trackpad scrolling is untouched. */
.pmore::-webkit-scrollbar{width:0;height:0}
.pmore-cols{ gap: 10px 44px !important; }
.pmore .pmenu-lb,.pmore .pm-app{ font-size: 14px !important; }
.pm-recent b{ font-size: 12.5px !important; }
.pmore-sec-hd{ font-size: 10.5px !important; }
.pmore-title{ font-size: 15px !important; }
.pm-app-ic svg,.pmore .pmenu-ic svg,.pm-recent .pmenu-ic svg{ width: 17px !important; height: 17px !important; }
.pmenu-logo{ width: 52.5% !important; }
.pmore{ width: fit-content !important; max-width: calc(100vw - 40px) !important; overflow-y: auto !important; }
.pmore-cols{ grid-template-columns: repeat(2, max-content) !important; justify-content: start !important; }
@media (min-width: 900px){.pmore-cols{ grid-template-columns: repeat(3, max-content) !important; }}
@media (min-width: 1240px){.pmore-cols{ grid-template-columns: repeat(5, max-content) !important; }}
.pmore-hd{ align-items: flex-start !important; gap: 16px; }
.pmore-search-wrap{ position: relative; display: flex; align-items: center; margin-left: auto; flex: 0 1 300px; min-width: 180px; }
.pmore-search-ic{ position: absolute; left: 11px; width: 15px; height: 15px; color: #8A8A8A; pointer-events: none; }
.pmore-search{
  width: 100%; padding: 9px 12px 9px 33px; border-radius: 9px;
  border: 1px solid rgba(10,10,10,0.14); background: #FFFFFF;
  font-family: 'Inter', system-ui, sans-serif; font-size: 13px; color: #0A0A0A; outline: none;
  transition: border-color 0.15s ease;
}
.pmore-search:focus{ border-color: rgba(10,10,10,0.42); }
body.menu-dark .pmore-search{ background: #141414; border-color: rgba(255,255,255,0.16); color: #fff; }
body.menu-dark .pmore-search-ic{ color: #9A9A9A; }
.pmore-sec.pm-hidden,.pmore .pm-app.pm-hidden,.pmore .pmenu-item.pm-hidden{ display: none !important; }
.ai-pop-btn{ position: relative; }
.ai-pop-notif-dot{
  position: absolute; top: 5px; right: 5px; width: 6px; height: 6px; border-radius: 50%;
  background: #DF6662; border: 1.5px solid var(--bg-raised, #fff); pointer-events: none;
}
.ai-pop-notif-panel{
  position: absolute; inset: 0; z-index: 8; border-radius: inherit; overflow: hidden;
  background: var(--bg-raised, #fff); display: flex; flex-direction: column;
}
.ai-pop-notif-panel[hidden]{ display: none; }
.ai-pop-notif-hd{
  display: flex; align-items: center; gap: 10px; padding: 14px 14px 12px;
  border-bottom: 1px solid var(--hr, rgba(10,10,10,0.08)); flex: 0 0 auto;
}
.ai-pop-notif-back{
  width: 28px; height: 28px; border: 0; background: transparent; border-radius: 7px; cursor: pointer;
  display: grid; place-items: center; color: var(--ink-mid, #555);
}
.ai-pop-notif-back:hover{ background: var(--bg-1, rgba(10,10,10,0.05)); color: var(--ink-hi, #0A0A0A); }
.ai-pop-notif-back svg{ width: 14px; height: 14px; }
.ai-pop-notif-title{ font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: var(--ink-hi, #0A0A0A); flex: 1; }
.ai-pop-notif-clear{ border: 0; background: transparent; color: var(--ink-low, #8A8A8A); font: 500 11.5px 'Inter', sans-serif; cursor: pointer; }
.ai-pop-notif-clear:hover{ color: var(--ink-hi, #0A0A0A); }
.ai-pop-notif-list{ flex: 1; overflow-y: auto; padding: 6px; }
.ai-pop-notif-item{
  display: grid; grid-template-columns: 30px 1fr auto; gap: 11px; align-items: start;
  width: 100%; text-align: left; border: 0; background: transparent; padding: 10px 9px 11px;
  border-radius: 10px; cursor: pointer; position: relative; transition: background 0.14s ease;
}
.ai-pop-notif-item:hover{ background: var(--bg-1, rgba(10,10,10,0.04)); }
.ai-pop-notif-item.unread::before{
  content: ''; position: absolute; left: 1px; top: 13px; width: 3px; height: 20px; border-radius: 2px; background: #DF6662;
}
.ai-pop-notif-ic{ width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; color: #fff; flex: 0 0 auto; }
.ai-pop-notif-item[data-tone="green"] .ai-pop-notif-ic{ background: #36AA75; }
.ai-pop-notif-item[data-tone="gold"]  .ai-pop-notif-ic{ background: #DF6662; }
.ai-pop-notif-item[data-tone="coral"] .ai-pop-notif-ic{ background: #DF6662; }
.ai-pop-notif-item[data-tone="slate"] .ai-pop-notif-ic{ background: #98A6CF; }
.ai-pop-notif-ic svg{ width: 15px; height: 15px; }
.ai-pop-notif-tx{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ai-pop-notif-tx b{ font: 600 12.5px 'Inter', sans-serif; color: var(--ink-hi, #0A0A0A); }
.ai-pop-notif-tx span{ font: 400 11.5px 'Inter', sans-serif; color: var(--ink-mid, #666); line-height: 1.35; }
.ai-pop-notif-time{ font: 500 10px 'JetBrains Mono', monospace; color: var(--ink-low, #999); }body.menu-dark .pmenu .pmenu-item:not(.active) .pmenu-lb,
body.menu-dark.topbar-mode .pmenu .pmenu-item:not(.active) .pmenu-lb {
  color: rgba(255,255,255,0.92) !important;
}
body.menu-dark .pmenu .pmenu-item:not(.active):hover .pmenu-lb,
body.menu-dark.topbar-mode .pmenu .pmenu-item:not(.active):hover .pmenu-lb {
  color: #FFFFFF !important;
}
body.menu-dark .pmenu .pmenu-item:not(.active) .pmenu-ic svg {
  color: rgba(255,255,255,0.82) !important; opacity: 1 !important;
}
body.menu-dark .pmenu .pmenu-sec-label {
  color: rgba(255,255,255,0.5) !important;
}
.ai-pop-grip{ left: -10px !important; width: 22px !important; border-radius: 0 !important; }
.ai-pop-grip-top{ top: -10px !important; height: 22px !important; left: 14px !important; right: 14px !important; border-radius: 0 !important; }
.ai-pop-grip:hover,.ai-pop-grip-top:hover{ background: rgba(54,170,117,0.16) !important; }
.ai-pop-corner{
  position: absolute; top: -4px; left: -4px; width: 30px; height: 30px; z-index: 6;
  cursor: nwse-resize; display: flex; align-items: flex-start; justify-content: flex-start; padding: 6px;
}
.ai-pop-corner::before{
  content: ''; width: 11px; height: 11px;
  /* invisible: the nwse cursor is the affordance — the drawn bracket read
     as a rendering artifact against the rounded corner */
  border-top: 2px solid transparent; border-left: 2px solid transparent; border-radius: 3px 0 0 0;
  transition: border-color 0.18s ease;
}
.ai-pop-corner:hover::before{ border-color: rgba(54,170,117,0.55); }.pmore-hd{ flex-direction: column !important; align-items: stretch !important; gap: 16px !important; padding-bottom: 4px; }
.pmore-search-wrap{ margin: 0 auto !important; flex: none !important; width: min(560px, 100%) !important; order: -1; }
.pmore-search{ padding: 13px 16px 13px 44px !important; font-size: 15px !important; border-radius: 12px !important; }
.pmore-search-ic{ left: 16px !important; width: 17px !important; height: 17px !important; }
.pmore-title{ font-size: 13px !important; font-weight: 600 !important; }
.pmore-recents{ gap: 10px !important; margin-top: 6px; }
body.ai-resizing .ai-pop{ transition: none !important; }
.ai-pop-grip,.ai-pop-grip-top,.ai-pop-corner{ touch-action: none; }
body.ai-resizing .ai-pop{ will-change: width, height; }
body.menu-dark .pmenu-sec-label,body.menu-dark .pmenu-ver,body.menu-dark .pmenu-acc-count,body.menu-dark .pmenu-bal{ color: #CDC8BA; }
body.menu-dark .pmenu-collapse,body.menu-dark .pmore-sub,body.menu-dark .pmore-sec-hd{ color: #DAD5C8; }
:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --mobile-topbar-h: 58px;
}
@media (max-width: 900px), (hover: none) and (pointer: coarse){.mobile-topbar{
    height: calc(var(--mobile-topbar-h) + var(--safe-top)) !important;
    padding: var(--safe-top) calc(66px + var(--safe-right)) 0 calc(18px + var(--safe-left)) !important;
    box-sizing: border-box !important;
  }
.mobile-hamburger{
    top: calc(10px + var(--safe-top)) !important;
    right: calc(12px + var(--safe-right)) !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }
.mobile-menu-panel{
    top: calc(var(--mobile-topbar-h) + var(--safe-top)) !important;
    right: calc(12px + var(--safe-right)) !important;
    left: calc(12px + var(--safe-left)) !important;
    width: auto !important;
    max-height: calc(100dvh - var(--mobile-topbar-h) - var(--safe-top) - var(--safe-bottom) - 16px) !important;
    border-radius: 20px !important;
  }
.mmp-inner{ padding-bottom: calc(16px + var(--safe-bottom)) !important; }
.mmp-item{ min-height: 48px !important; }
.mobile-menu-backdrop{ inset: 0 !important; }
.ai-fab{ bottom: calc(150px + var(--safe-bottom)) !important; }}
@media (min-width:769px){.node-split-handle{
    position:absolute;
    top:16px;
    bottom:16px;
    width:14px;
    z-index:50;
    cursor:col-resize;
    touch-action:none;
  }
.node-split-handle::after{
    content:"";
    position:absolute;
    top:8px;
    bottom:8px;
    left:6px;
    width:2px;
    border-radius:999px;
    background:rgba(10,10,10,.12);
    opacity:.36;
    transition:opacity .14s ease,background .14s ease;
  }
.node-split-handle:hover::after,body.node-splitting .node-split-handle::after{opacity:.9;background:rgba(10,10,10,.28)}.node-split-handle-agents{left:calc(var(--agents-sidebar-w,352px) - 10px)}
.node-split-handle-friends{right:-7px;top:calc(var(--bar-h,54px) + var(--bar-gap,12px));bottom:18px}
body.node-splitting{cursor:col-resize !important;user-select:none !important}
body.node-splitting *{cursor:col-resize !important;user-select:none !important}}
@media (max-width:768px){.node-split-handle{display:none!important}}

/* ---------------------------------------------------------------------------
   2 · Agents — chat (left) ⇄ sidebar (right), resizable + narrower default.
   The earlier flip rule hardcoded `1fr 352px`; re-assert it with the live
   width variable so the drag handle actually moves the seam.
   ------------------------------------------------------------------------- */
/* tuck the chat column closer to the (collapsed) menu — desktop only */
@media (min-width:769px){:root{ --agents-sidebar-w:238px; }

/* drag handle sits on the LEFT edge of the right-hand sidebar */
.node-split-handle-agents{
    left:auto !important;
    right:calc(var(--agents-sidebar-w,268px) - 5px) !important;
  }}

/* ---- main menu (.pmenu) — frosted glass, minimal edge, strong frost ---- */
.pmenu{
  background:
    linear-gradient(158deg,
      rgba(255,255,255,0.68) 0%,
      rgba(255,255,255,0.44) 46%,
      rgba(255,255,255,0.55) 100%) !important;
  -webkit-backdrop-filter: blur(56px) saturate(190%);
  backdrop-filter: blur(56px) saturate(190%);
  /* Own compositing layer: renders the blur as one surface so a neighbouring
     repaint (e.g. resizing the AI popup) can't expose a backdrop tile seam. */
  transform: translateZ(0);
  border: 1px solid rgba(255,255,255,0.09) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.26),
    inset 0 0 0 1px rgba(255,255,255,0.02),
    0 1px 2px rgba(10,10,10,0.05),
    0 14px 34px -16px rgba(10,10,10,0.28),
    0 34px 64px -32px rgba(10,10,10,0.40) !important;
}
.pmenu-head{ border-bottom-color: rgba(10,10,10,0.08) !important; }
.pmenu-bottom{ border-top-color: rgba(10,10,10,0.08) !important; }
/* darker charcoal glass in dark mode (a touch deeper, ~12% lightness) */
body.menu-dark .pmenu {
  background:
    linear-gradient(158deg,
      rgba(22,22,24,0.93) 0%,
      rgba(17,17,19,0.87) 46%,
      rgba(20,20,22,0.91) 100%) !important;
  -webkit-backdrop-filter: blur(46px) saturate(155%);
  backdrop-filter: blur(46px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.075) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 1px 2px rgba(0,0,0,0.35),
    0 16px 42px -18px rgba(0,0,0,0.72) !important;
}
body.menu-dark .pmenu-head { border-bottom-color: rgba(255,255,255,0.10) !important; }
body.menu-dark .pmenu-bottom { border-top-color: rgba(255,255,255,0.10) !important; }
/* ---- submenu (Stages + more panel) — same frosted glass ---- */
.pmore{
  background:
    linear-gradient(158deg,
      rgba(255,255,255,0.70) 0%,
      rgba(255,255,255,0.46) 46%,
      rgba(255,255,255,0.57) 100%) !important;
  -webkit-backdrop-filter: blur(56px) saturate(190%);
  backdrop-filter: blur(56px) saturate(190%);
  transform: translateZ(0);
  border: 1px solid rgba(255,255,255,0.20) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.42),
    0 1px 2px rgba(10,10,10,0.05),
    0 18px 44px -20px rgba(10,10,10,0.32),
    0 40px 74px -36px rgba(10,10,10,0.44) !important;
}
.pmore-hd{ border-bottom-color: rgba(10,10,10,0.08) !important; }
body.menu-dark .pmore {
  background:
    linear-gradient(158deg,
      rgba(21,21,23,0.94) 0%,
      rgba(16,16,18,0.87) 46%,
      rgba(19,19,21,0.91) 100%) !important;
  -webkit-backdrop-filter: blur(46px) saturate(155%);
  backdrop-filter: blur(46px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.075) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 1px 2px rgba(0,0,0,0.4),
    0 20px 48px -20px rgba(0,0,0,0.75) !important;
}
/* apps flyout matches */
.pmenu-flyout{
  background:
    linear-gradient(158deg,
      rgba(255,255,255,0.70) 0%,
      rgba(255,255,255,0.46) 46%,
      rgba(255,255,255,0.57) 100%) !important;
  -webkit-backdrop-filter: blur(56px) saturate(190%);
  backdrop-filter: blur(56px) saturate(190%);
  transform: translateZ(0);
  border: 1px solid rgba(255,255,255,0.20) !important;
}
/* ---- submenu search — translucent, cooler shade so it reads as glass ---- */
.pmore-search{
  background: rgba(28,32,40,0.10) !important;
  border: 1px solid rgba(10,10,10,0.10) !important;
  -webkit-backdrop-filter: blur(13px) saturate(155%);
  backdrop-filter: blur(13px) saturate(155%);
}
.pmore-search:focus{ border-color: rgba(10,10,10,0.28) !important; background: rgba(28,32,40,0.06) !important; }
.pmore-search::placeholder{ color: #6E6E6E; }
body.menu-dark .pmore-search {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  color: #fff !important;
}
body.menu-dark .pmore-search::placeholder { color: #9C9C9C; }
/* ---- Ask AI tab (.ai-fab) — soft red frosted glass ---- */
.ai-fab{
  background:
    linear-gradient(158deg,
      rgba(221,84,78,0.74) 0%,
      rgba(202,60,56,0.64) 100%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(185%);
  backdrop-filter: blur(30px) saturate(185%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.30),
    inset 0 0 0 1px rgba(255,255,255,0.10),
    0 20px 44px -20px rgba(120,30,28,0.5) !important;
}
.ai-fab:hover{
  background:
    linear-gradient(158deg,
      rgba(224,90,84,0.84) 0%,
      rgba(206,64,60,0.74) 100%) !important;
}

/* ============================================================================
   Dark-adaptive glass. Stages flagged menuDark in the catalog (all-black
   backgrounds like Network) flip the menu, submenu and search to a dark
   frost with light type. The transition keeps the flip feeling intentional.
   ============================================================================ */
.pmenu,.pmore,.pmenu-item,.pmenu-lb,.pm-app,.pmore-search,.pmenu-ic{
  transition: background 0.4s var(--ease-out, ease), color 0.4s var(--ease-out, ease),
              border-color 0.4s var(--ease-out, ease), box-shadow 0.4s var(--ease-out, ease);
}
body.menu-dark .pmenu{
  background:
    linear-gradient(158deg,
      rgba(21,21,23,0.93) 0%,
      rgba(17,17,19,0.85) 46%,
      rgba(20,20,22,0.90) 100%) !important;
  -webkit-backdrop-filter: blur(46px) saturate(160%);
  backdrop-filter: blur(46px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.12) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 14px 34px -16px rgba(0,0,0,0.6) !important;
}
body.menu-dark .pmenu .pmenu-item,body.menu-dark .pmenu .pmenu-lb{ color: #FFFFFF; }
body.menu-dark .pmenu .pmenu-item:hover{ background: rgba(255,255,255,0.09) !important; }
body.menu-dark .pmenu .pmenu-item:hover .pmenu-lb{ color: #FFFFFF; }
body.menu-dark .pmenu .pmenu-item.active{ background: rgba(255,255,255,0.96) !important; color: #0A0A0A !important; }
body.menu-dark .pmenu .pmenu-item.active .pmenu-lb{ color: #0A0A0A; }
body.menu-dark .pmenu .node-mark{ filter: invert(1) brightness(1.6); }body.menu-dark .pmore{
  background:
    linear-gradient(158deg,
      rgba(21,21,23,0.94) 0%,
      rgba(17,17,19,0.87) 100%) !important;
  -webkit-backdrop-filter: blur(46px) saturate(160%);
  backdrop-filter: blur(46px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.12) !important;
}
body.menu-dark .pmore .pmenu-item,body.menu-dark .pmore .pm-app,body.menu-dark .pmore .pmenu-lb,body.menu-dark .pmore-title{ color: #FFFFFF !important; }
/* the active item sits on a white pill — its label stays ink, and must beat
   the blanket white !important above */
body.menu-dark .pmore .pmenu-item.active,body.menu-dark .pmore .pm-app.active,body.menu-dark .pmore .pmenu-item.active .pmenu-lb,body.menu-dark .pmore .pm-app.active .pmenu-lb,body.menu-dark .pmore .pm-app.active .pm-app-nm{ color: #0A0A0A !important; }
body.menu-dark .pmore .pmenu-item:not(.active):hover,body.menu-dark .pmore .pm-app:not(.active):hover{ background: rgba(255,255,255,0.09) !important; }
body.menu-dark .pmore-search{ background: rgba(255,255,255,0.10) !important; color: #FFFFFF !important; }
body.menu-dark .pmore-search::placeholder{ color: #9C9C9C; }
body.menu-dark .pmore-tagline{ color: #FFFFFF; }
body.menu-dark .pmore-tagline em{ color: #E58B86; }
/* ============================================================================
   Brand marks adapt to the surface: black ink on light backgrounds, inverted
   to white over dark ones (dark theme, and always-black stages).
   ============================================================================ */
.mobile-topbar .mt-logo-img{ mix-blend-mode:normal; filter:none; }/* ============================================================================
   Submenu refinements — readable section headers + Recent as glass tiles.
   Final authority for these selectors: keep changes here, not upstream. */

/* Section headers: real ink, heavier weight, gradient hairline, item count. */
.pmore-sec-hd{ font-size:10px !important; font-weight:700 !important; letter-spacing:0.18em !important; color:rgba(10,10,10,0.82) !important; gap:8px; }
.pmore-sec-hd::after{ background:linear-gradient(90deg, rgba(10,10,10,0.16), rgba(10,10,10,0.02)); }
.pmore-chip{ width:9px; height:9px; border-radius:3px; box-shadow:0 0 0 3px color-mix(in srgb, var(--sec, var(--ink-hi)) 16%, transparent); }
.pmore-sec-n{ font-family:"JetBrains Mono",monospace; font-size:8.5px; font-weight:600; letter-spacing:0.08em; color:rgba(10,10,10,0.40); }
body.menu-dark .pmore-sec-hd{ color:rgba(255,255,255,0.92) !important; }
body.menu-dark .pmore-sec-hd::after{ background:linear-gradient(90deg, rgba(255,255,255,0.18), rgba(255,255,255,0.02)); }
body.menu-dark .pmore-sec-n{ color:rgba(255,255,255,0.42); }

/* No hairline under the logo row either — over the glass it read as a
   stray line cutting the menu (visible against saturated rooms). */
.pmenu-head{ border-bottom: 0 !important; }

/* No rule under the Recent block — the tiles carry their own weight. */
.pmore-hd{ border-bottom: 0 !important; padding-bottom: 6px !important; }

/* "Recent" title joins the header vocabulary — mono eyebrow, not a lone bold word. */
.pmore-title{ font-family:"JetBrains Mono",monospace !important; font-size:10px !important; font-weight:700 !important; letter-spacing:0.18em !important; text-transform:uppercase; color:rgba(10,10,10,0.82) !important; margin-bottom:8px; }
body.menu-dark .pmore-title{ color:rgba(255,255,255,0.92) !important; }

/* Recent tiles: glass cards — icon in a tinted squircle, label + kind. */
.pmore-recents{ gap:8px !important; margin-top:0 !important; }
.pm-recent{ background:rgba(255,255,255,0.55) !important; border:1px solid rgba(10,10,10,0.08) !important; border-radius:12px !important; padding:8px 11px 8px 8px !important; gap:9px !important; box-shadow:0 1px 1px rgba(10,10,10,0.04), inset 0 1px 0 rgba(255,255,255,0.65); transition:background 0.16s var(--ease-out), border-color 0.16s var(--ease-out), transform 0.16s var(--ease-out), box-shadow 0.16s var(--ease-out); }
.pm-recent:hover{ background:rgba(255,255,255,0.92) !important; border-color:rgba(10,10,10,0.16) !important; transform:translateY(-1px); box-shadow:0 10px 24px -12px rgba(10,10,10,0.28), inset 0 1px 0 rgba(255,255,255,0.8); }
.pm-recent .pmenu-ic{ width:28px !important; height:28px !important; border-radius:9px; background:rgba(10,10,10,0.055); display:grid !important; place-items:center; }
.pm-recent b{ font-size:11.5px !important; letter-spacing:-0.005em; line-height:1.15; }
body.menu-dark .pm-recent{ background:rgba(255,255,255,0.08) !important; border-color:rgba(255,255,255,0.12) !important; box-shadow:0 1px 1px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.08); }
body.menu-dark .pm-recent:hover{ background:rgba(255,255,255,0.14) !important; border-color:rgba(255,255,255,0.22) !important; box-shadow:0 10px 24px -12px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.10); }
body.menu-dark .pm-recent .pmenu-ic{ background:rgba(255,255,255,0.09); }

/* App entries (Memory, Databases, …) wear the same pill as every other
   menu button — one radius for the whole catalog. */
.pmore .pm-app{ border-radius: 18px !important; }

/* At fractional browser zooms the first glyph can clip against the label's
   overflow box (the "W" in Workspace). A hair of lead-in absorbs it. */
.pmore .pmenu-lb{ padding-left: 1.5px; }

/* Menu labels: solid ink, same as the identity row — no washed grey. */
.pmenu-item .pmenu-lb{ color:var(--ink-hi) !important; }
.pmenu-item.active .pmenu-lb{ color:var(--c-white) !important; }
body.menu-dark .pmenu-item .pmenu-lb{ color:var(--ink-on-dark) !important; }
body.menu-dark .pmenu-item.active .pmenu-lb{ color:var(--ink-hi) !important; }

/* Submenu sections: equal tracks that reflow — four on wide panels, fewer
   as the window narrows, so labels never crush into ellipses. */
.pmore-cols{ grid-template-columns: repeat(4, minmax(0, 1fr)) !important; column-gap: 28px; row-gap: 26px; width: 100%; }
@media (max-width: 1100px){ .pmore-cols{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 840px){ .pmore-cols{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 520px){ .pmore-cols{ grid-template-columns: minmax(0, 1fr) !important; } }
/* The manifesto is decorative — it yields before the catalog does. */
@media (max-width: 980px){ .pmore-brand{ display: none !important; } }

/* The panel never bleeds off-screen: right inset mirrors the menu's left. */
/* The right gap is anchored, not computed: left + right + width:auto makes
   every engine end the panel exactly 22px from the window — Chrome included. */
.pmore{ right: 22px !important; width: auto !important; max-width: min(1100px, calc(100vw - (var(--pm-w) + var(--pm-gap) * 2 + 15px) - 22px)) !important; }

/* Deterministic menu footprint: intrinsic sizing would let engine font
   rastering nudge the pill's width — pin it. Labels already ellipsize. */
body:not(.topbar-mode):not(.pm-collapsed) .pmenu{ width: 173px; }
/* ---- browser-zoom pill ---- */
.zoom-pill{position:fixed;left:50%;bottom:18px;transform:translate(-50%,10px);z-index:97;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 15px;border-radius:999px;background:rgba(28,27,25,0.86);color:rgba(242,239,231,0.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 36px -18px rgba(10,10,10,0.6);opacity:0;pointer-events:none;transition:opacity 0.24s var(--ease-out),transform 0.24s var(--ease-out)}
.zoom-pill.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.zoom-pill-tx{font-family:"Inter",sans-serif;font-size:12px;font-weight:500;letter-spacing:0.01em}
.zoom-pill-tx kbd{display:inline-block;min-width:16px;padding:1.5px 5px;margin:0 1.5px;border-radius:5px;background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.2);font-family:"JetBrains Mono",monospace;font-size:10.5px;text-align:center}
.zoom-pill-x{width:24px;height:24px;border-radius:50%;border:none;background:rgba(255,255,255,0.12);color:rgba(242,239,231,0.85);display:grid;place-items:center;cursor:pointer;transition:background 0.16s ease}
.zoom-pill-x:hover{background:rgba(255,255,255,0.22)}
.zoom-pill-x svg{width:11px;height:11px}