/* Bookmarks bar */
.bookmarks-bar{grid-column:1/-1;display:flex;align-items:center;gap:4px;padding:4px 12px;background:rgba(10,14,26,0.85);border-bottom:1px solid var(--pb-border);min-height:28px;overflow-x:auto;overflow-y:hidden}
.bookmarks-bar::-webkit-scrollbar{height:0}
.bm-item{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:5px;font-size:10px;color:var(--pb-text-muted);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);cursor:pointer;white-space:nowrap;transition:all .15s;position:relative;font-family:inherit;font-weight:500}
.bm-item:hover{background:rgba(42,147,193,0.1);border-color:rgba(42,147,193,0.3);color:var(--pb-text)}
.bm-item svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.bm-item .bm-remove{display:none;position:absolute;top:-4px;right:-4px;width:13px;height:13px;border-radius:50%;background:var(--pb-red);color:#fff;font-size:8px;line-height:13px;text-align:center;cursor:pointer;font-weight:700}
.bm-item:hover .bm-remove{display:block}
.bm-add{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;border:1px dashed rgba(255,255,255,0.15);color:var(--pb-text-dim);cursor:pointer;font-size:14px;transition:all .15s;flex-shrink:0}
.bm-add:hover{border-color:var(--pb-blue);color:var(--pb-blue);background:rgba(42,147,193,0.06)}
.bm-modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);align-items:center;justify-content:center}
.bm-modal-overlay.open{display:flex}
.bm-modal{background:#0c1622;border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:20px;width:320px}
.bm-modal h3{font-family:'Oswald',sans-serif;font-size:14px;color:var(--pb-text);margin:0 0 14px;letter-spacing:0.04em}
.bm-modal label{font-size:10px;color:var(--pb-text-dim);display:block;margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em}
.bm-modal input,.bm-modal select{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--pb-border);background:rgba(0,0,0,0.3);color:var(--pb-text);font-size:12px;font-family:inherit;margin-bottom:12px;outline:none}
.bm-modal input:focus,.bm-modal select:focus{border-color:var(--pb-blue)}
.bm-modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
.bm-modal-btns button{padding:6px 14px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;border:none;font-family:inherit}
.bm-modal-btns .bm-cancel{background:rgba(255,255,255,0.06);color:var(--pb-text-muted)}
.bm-modal-btns .bm-save{background:var(--pb-blue);color:#fff}
[data-theme="light"] .bookmarks-bar{background:rgba(232,238,244,0.9)}
[data-theme="light"] .bm-item{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.08);color:#4a5568}
[data-theme="light"] .bm-modal{background:#fff;border-color:rgba(0,0,0,0.1)}
[data-theme="light"] .bm-modal input,[data-theme="light"] .bm-modal select{background:#f7fafc;border-color:rgba(0,0,0,0.1);color:#1a202c}
[data-theme="girly"] .bookmarks-bar{background:rgba(255,241,242,0.9);border-bottom-color:rgba(225,29,72,0.1)}
[data-theme="girly"] .bm-item{background:rgba(225,29,72,0.04);border-color:rgba(225,29,72,0.1);color:#6b4a68}
[data-theme="girly"] .bm-item:hover{background:rgba(225,29,72,0.1);border-color:rgba(225,29,72,0.3);color:#be123c}

/* TOP NAV */
.topnav{grid-column:1/-1;background:rgba(10,14,26,0.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--pb-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:150}
.topnav-left{display:flex;align-items:center;gap:12px}
.topnav-orb{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--pb-orange),var(--pb-blue));box-shadow:0 0 10px rgba(42,147,193,0.3)}
.topnav-brand{font-family:'Oswald',sans-serif;font-size:15px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.topnav-brand .blue{color:var(--pb-blue)}
.topnav-brand .orange{color:var(--pb-orange)}
.topnav-divider{width:1px;height:18px;background:var(--pb-border)}
.topnav-page{font-family:'Oswald',sans-serif;font-size:12px;font-weight:500;color:var(--pb-text-muted);letter-spacing:0.06em;text-transform:uppercase}
.topnav-right{display:flex;align-items:center;gap:8px}
.ctx-pill{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--pb-text-dim);cursor:pointer !important;transition:var(--transition)}
.ctx-pill *{cursor:pointer !important}
.ctx-pill:hover{color:var(--pb-text)}
.ctx-modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:rgba(0,0,0,0.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ctx-modal-overlay.open{display:block}
.ctx-modal{background:#0c1622;border:1px solid rgba(255,255,255,0.08);border-radius:16px;width:90%;max-width:460px;padding:28px 26px;overflow-y:auto;max-height:85vh;box-shadow:0 24px 80px rgba(0,0,0,0.8);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000}
.ctx-modal h2{font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;color:#fff;margin-bottom:14px;letter-spacing:0.03em}
.ctx-modal>p{font-size:13px;color:var(--pb-text-muted);line-height:1.6;margin-bottom:16px}
.ctx-modal>p strong{color:#fff}
.ctx-bar-visual{display:flex;height:26px;border-radius:5px;overflow:hidden;margin-bottom:18px;font-size:10px;font-weight:700}
.ctx-bar-visual div{display:flex;align-items:center;justify-content:center;color:#fff;white-space:nowrap;padding:0 4px}
.ctx-bar-green{background:#22c55e;flex:5}
.ctx-bar-yellow{background:#f59e0b;flex:2.5}
.ctx-bar-red{background:#ef4444;flex:2}
.ctx-bar-critical{background:#7f1d1d;flex:2;font-size:10px}
.ctx-level{margin-bottom:12px;font-size:13px;color:var(--pb-text-muted);line-height:1.55}
.ctx-level strong{color:#fff}
.ctx-tips{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.06)}
.ctx-tip{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--pb-text-muted);margin-bottom:8px;line-height:1.5}
.ctx-tip::before{content:'\2713';color:var(--pb-green);font-weight:700;flex-shrink:0}
.ctx-got-it{display:block;width:100%;margin-top:20px;padding:14px;border:none;border-radius:10px;background:#2a93c1;color:#fff;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--transition)}
.ctx-got-it:hover{background:#3db8f5}
/* Google Drive */
.gdrive-connect-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:40px}
.gdrive-connect-icon{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#4285f4,#34a853,#fbbc05,#ea4335);display:flex;align-items:center;justify-content:center}
.gdrive-connect-icon svg{width:32px;height:32px;fill:#fff}
.gdrive-connect-title{font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;color:var(--pb-text)}
.gdrive-connect-desc{font-size:13px;color:var(--pb-text-muted);text-align:center;max-width:320px;line-height:1.5}
.gdrive-connect-btn{padding:12px 28px;border:none;border-radius:10px;background:#4285f4;color:#fff;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:8px}
.gdrive-connect-btn:hover{background:#3367d6}
.gdrive-breadcrumb{display:flex;align-items:center;gap:4px;padding:10px 16px;font-size:12px;color:var(--pb-text-muted);border-bottom:1px solid var(--pb-border);flex-wrap:wrap}
.gdrive-breadcrumb span{cursor:pointer;transition:color .15s}
.gdrive-breadcrumb span:hover{color:var(--pb-blue)}
.gdrive-breadcrumb span.active{color:var(--pb-text);cursor:default}
.gdrive-breadcrumb .bc-sep{color:var(--pb-text-dim);cursor:default}
.gdrive-toolbar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--pb-border)}
.gdrive-toolbar-btn{padding:5px 12px;border-radius:6px;border:1px solid var(--pb-border);background:transparent;color:var(--pb-text-muted);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:5px;transition:var(--transition)}
.gdrive-toolbar-btn:hover{border-color:var(--pb-blue);color:var(--pb-blue)}
.gdrive-toolbar-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.gdrive-toolbar-btn.primary{background:rgba(66,133,244,0.12);border-color:rgba(66,133,244,0.3);color:#4285f4}
.gdrive-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--pb-text-muted);font-size:13px;gap:8px}
.gdrive-spinner{width:16px;height:16px;border:2px solid var(--pb-border);border-top-color:var(--pb-blue);border-radius:50%;animation:gdspin .6s linear infinite}
@keyframes gdspin{to{transform:rotate(360deg)}}
.gdrive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;padding:14px 16px}
.gdrive-file{background:var(--pb-surface);border:1px solid var(--pb-border);border-radius:10px;padding:14px 10px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:border-color .15s,background .15s}
.gdrive-file:hover{border-color:var(--pb-blue);background:var(--pb-surface-2)}
.gdrive-file-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px}
.gdrive-file-icon.folder{background:rgba(251,188,5,0.15);color:#fbbc05}
.gdrive-file-icon.doc{background:rgba(66,133,244,0.15);color:#4285f4}
.gdrive-file-icon.sheet{background:rgba(52,168,83,0.15);color:#34a853}
.gdrive-file-icon.slide{background:rgba(234,67,53,0.15);color:#ea4335}
.gdrive-file-icon.pdf{background:rgba(234,67,53,0.15);color:#ea4335}
.gdrive-file-icon.image{background:rgba(66,133,244,0.15);color:#4285f4}
.gdrive-file-icon.other{background:rgba(125,143,163,0.15);color:var(--pb-text-muted)}
.gdrive-file-icon svg{width:20px;height:20px;fill:currentColor}
.gdrive-file-name{font-size:11px;color:var(--pb-text);text-align:center;word-break:break-word;line-height:1.3;max-height:2.6em;overflow:hidden;width:100%}
.gdrive-file-meta{font-size:9px;color:var(--pb-text-dim)}
.gdrive-empty{display:flex;flex-direction:column;align-items:center;padding:40px;color:var(--pb-text-muted);font-size:13px;gap:8px}
.gdrive-disconnect{margin-left:auto}
.ctx-track{width:60px;height:3px;border-radius:2px;background:rgba(255,255,255,0.08);overflow:hidden}
.ctx-fill{height:100%;width:14%;background:var(--pb-blue);border-radius:2px}
.online-pill{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--pb-green);font-weight:600}
.online-dot{width:6px;height:6px;border-radius:50%;background:var(--pb-green);box-shadow:0 0 6px rgba(34,197,94,0.5)}
.tn-btn{padding:4px 10px;border-radius:5px;border:1px solid var(--pb-border);background:transparent;color:var(--pb-text-muted);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit;transition:var(--transition);display:flex;align-items:center;gap:4px}
.tn-btn:hover{border-color:var(--pb-blue);color:var(--pb-blue)}
.tn-btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.tn-icon{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--pb-text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}
.tn-icon:hover{color:var(--pb-text);background:rgba(255,255,255,0.04)}
.tn-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.tn-logout{font-size:11px;color:var(--pb-text-dim);cursor:pointer;padding:4px 8px;border:none;background:none;font-family:inherit;transition:var(--transition)}
.tn-logout:hover{color:var(--pb-orange)}

/* SIDEBAR */
/* padding-top:0 so the sticky collapse-toggle sits flush at the very top edge (FIX 2 — no gap above hamburger) */
.sidebar{background:rgba(8,11,20,0.95);border-right:1px solid var(--pb-border);display:flex;flex-direction:column;overflow-y:auto;padding:0 0 10px;min-height:0}
/* padding-top:6px restores the breathing room between the toggle and first nav item (previously came from .sidebar padding-top:10px) */
.sidebar-group{padding:6px 0 6px}

.sidebar-group.collapsed .sidebar-item{display:none}
.sidebar-group-label{font-family:'Oswald',sans-serif;font-size:9px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--pb-text-dim);padding:10px 14px 4px}
.sidebar-toggle{cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
.sidebar-toggle:hover{color:var(--pb-text)}
.sidebar-chevron{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 0.2s ease;flex-shrink:0}
.sidebar-group.collapsed .sidebar-chevron{transform:rotate(-90deg)}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:13px;font-weight:500;color:var(--pb-text-muted);cursor:pointer;transition:all .15s;text-decoration:none;border-left:3px solid transparent;margin-bottom:1px}
.sidebar-item:hover{color:var(--pb-text);background:rgba(255,255,255,0.03)}
.sidebar-item.active{color:var(--pb-blue-light);background:rgba(42,147,193,0.08);border-left-color:var(--pb-blue)}
.sidebar-item svg{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-item .badge{margin-left:auto;font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;background:rgba(42,147,193,0.15);color:var(--pb-blue-light)}
.sidebar-spacer{flex:1}
.sidebar-version{padding:8px 14px;font-size:10px;color:var(--pb-text-dim)}
/* Settings sub-group */
.sidebar-sub-group{display:none;padding:0 8px 8px 20px;animation:subSlide .2s ease}
.sidebar-sub-group.open{display:block}
@keyframes subSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.sidebar-sub-item{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:12px;font-weight:500;color:var(--pb-text-dim);cursor:pointer;transition:all .15s;border-radius:6px;text-decoration:none;margin-bottom:1px}
.sidebar-sub-item:hover{color:var(--pb-text-muted);background:rgba(255,255,255,0.03)}
.sidebar-sub-item svg{width:14px;height:14px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.agent-hub-toggle{display:flex;align-items:center;gap:8px;width:calc(100% - 16px);margin:4px 8px;padding:8px 10px;border-radius:8px;border:1px solid var(--pb-border);background:rgba(42,147,193,0.04);color:var(--pb-text-muted);cursor:pointer;font-family:inherit;font-size:12px;transition:var(--transition)}
.agent-hub-toggle:hover{border-color:var(--pb-blue);background:rgba(42,147,193,0.08);color:var(--pb-blue-light)}
.agent-hub-toggle svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8}
.agent-hub-label{font-weight:600}
.agent-hub-count{margin-left:auto;font-size:10px;color:var(--pb-blue-light);opacity:0.7}

/* MAIN CONTENT */
.sidebar{grid-column:1}
.main-col{grid-column:2;display:flex;flex-direction:column;overflow:hidden;position:relative;min-height:0}

/* BRAIN CANVAS — full background behind chat */
#brain-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0.4}

/* ===== SIDEBAR COLLAPSE ===== */
/* Collapsed state: icon-rail at 48px.
   Enumerated coverage — every child of <nav class="sidebar"> must have a defined collapsed behavior:
   .sidebar-group-label    → display:none (line below)
   .sidebar-group          → small symmetric padding (4px) + border-top on non-first for icon rail dividers (lines below)
   .sidebar-item           → centered, no gap, no border-left (line below)
   .sidebar-item span      → display:none — label text (line below)
   .sidebar-item .badge    → display:none — count badges (line below)
   .sidebar-item svg       → 18px, shown centered (line below)
   .sidebar-item.active    → border-left:3px blue, padding-left:0 (line below)
   .sidebar-sub-group      → display:none (line below)
   .sidebar-version        → display:none (line below)
   .sidebar-spacer         → display:none (line below)
   .nav-item[data-panel]   → icon-only (font-size:0 hides bare text, .nav-icon restored) — custom panel items (line below)
   Belt-and-suspenders: overflow:hidden on .sidebar-item clips any edge-case text bleed */
.app.sidebar-collapsed{grid-template-columns:48px 1fr;--sidebar-w:48px}
.app.sidebar-collapsed .sidebar{overflow:hidden;width:48px;padding:0 0 10px}
.app.sidebar-collapsed .sidebar-group-label{display:none}
.app.sidebar-collapsed .sidebar-group{padding:4px 0;border-top:none}
.app.sidebar-collapsed .sidebar-group ~ .sidebar-group{border-top:1px solid rgba(255,255,255,0.10);padding-top:4px}
.app.sidebar-collapsed .sidebar-item{padding:10px 0;justify-content:center;border-left:none;gap:0;overflow:hidden}
.app.sidebar-collapsed .sidebar-item span,.app.sidebar-collapsed .sidebar-item .badge{display:none}
.app.sidebar-collapsed .sidebar-sub-group{display:none !important}
.app.sidebar-collapsed .sidebar-version{display:none}
.app.sidebar-collapsed .sidebar-spacer{display:none}
.app.sidebar-collapsed .sidebar-item svg{width:18px;height:18px}
/* Custom panel items (dynamic .nav-item[data-panel] injected by portal_server.py) */
/* Collapsed: hide bare text label (font-size:0) and show icon centered.
   nav-icon is a text/emoji glyph, so we must explicitly restore its font-size. */
.app.sidebar-collapsed .sidebar .nav-item[data-panel]{display:flex;font-size:0;justify-content:center;padding:10px 0;border-left:none;gap:0}
.app.sidebar-collapsed .sidebar .nav-item[data-panel] .nav-icon{font-size:16px;width:auto}
/* Active indicator in icon-rail: left border back on icon */
.app.sidebar-collapsed .sidebar-item.active{border-left:3px solid var(--pb-blue);padding-left:0}

/* ── Collapsed sidebar: hover tooltips ──────────────────────────────────────
   When collapsed, hovering an icon shows a small floating pill label to the
   right of the 48px rail.

   Overflow fix: the sidebar has overflow:hidden in collapsed state to prevent
   text bleed.  We override it here to overflow:visible so the ::after pill can
   escape the rail; width is already constrained to 48px by the grid column so
   the sidebar box doesn't widen.  The ::before clip-shield (not needed here)
   and existing span{display:none} rule handle text bleed.

   No JS required — pure CSS.  Only active under .app.sidebar-collapsed so the
   tooltip never shows when the sidebar is expanded (labels are already visible).
*/
.app.sidebar-collapsed .sidebar{overflow:visible}
/* Each item needs a positioning context for the absolute pill;
   overflow:visible overrides the overflow:hidden set at line 173 so the
   ::after pill can escape the 48px item box.  Safe: span labels are already
   display:none (line 174) so no text bleeds from the item even when visible. */
.app.sidebar-collapsed .sidebar-item{position:relative;overflow:visible}
/* Tooltip-bearing items specifically need overflow:visible to let the pill escape */
.app.sidebar-collapsed .sidebar-item[data-tooltip],
.app.sidebar-collapsed .sidebar .nav-item[data-panel][data-tooltip]{overflow:visible;position:relative}
/* The pill: absolute-positioned to the right of the 48px rail.
   Main-nav .sidebar-item reads its short label from attr(data-tooltip).
   Mod .nav-item[data-panel] reads its short label from attr(data-tip-label),
   which mods-tip-label.js sets on page init — data-tooltip still holds the
   long description used by the mods-panel-card widget.
   font-size:12px is explicit here to override the font-size:0 set on
   .nav-item[data-panel] in collapsed state — without it pill text is invisible.
   white-space:nowrap keeps short labels on one line. */
.app.sidebar-collapsed .sidebar-item[data-tooltip]::after{
  content:attr(data-tooltip);
  position:absolute;
  left:calc(100% + 8px);
  top:50%;
  transform:translateY(-50%);
  max-width:240px;
  white-space:nowrap;
  padding:4px 10px;
  border-radius:6px;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
  background:var(--pb-surface-2,#1a2030);
  color:var(--pb-text,#e2e8f0);
  border:1px solid var(--pb-border,rgba(255,255,255,0.08));
  box-shadow:0 4px 12px rgba(0,0,0,0.3);
  z-index:200;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease;
}
/* Mods pill reads the SHORT label from data-tip-label (set by mods-tip-label.js) */
.app.sidebar-collapsed .sidebar .nav-item[data-panel][data-tip-label]::after{
  content:attr(data-tip-label);
  position:absolute;
  left:calc(100% + 8px);
  top:50%;
  transform:translateY(-50%);
  max-width:240px;
  white-space:nowrap;
  padding:4px 10px;
  border-radius:6px;
  font-size:12px;  /* explicit: overrides font-size:0 on .nav-item[data-panel] */
  font-weight:500;
  line-height:1.4;
  background:var(--pb-surface-2,#1a2030);
  color:var(--pb-text,#e2e8f0);
  border:1px solid var(--pb-border,rgba(255,255,255,0.08));
  box-shadow:0 4px 12px rgba(0,0,0,0.3);
  z-index:200;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease;
}
.app.sidebar-collapsed .sidebar-item[data-tooltip]:hover::after,
.app.sidebar-collapsed .sidebar .nav-item[data-panel][data-tip-label]:hover::after{opacity:1}
.sidebar{transition:width .2s ease}
.app{transition:grid-template-columns .2s ease}

/* Sidebar collapse toggle — pinned at top of sidebar, visible in both states */
/* background:#080b14 is the sidebar hue at alpha 1.0 — fully opaque so nav items don't bleed through on scroll (FIX 1) */
/* top:0 + sidebar padding-top:0 = toggle flush to sidebar top edge with zero gap (FIX 2) */
.sidebar-collapse-toggle{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:flex-start;padding:0 0 0 14px;width:100%;height:40px;background:#080b14;border:none;border-bottom:1px solid rgba(255,255,255,0.04);color:var(--pb-text-dim);cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}
/* FIX: solid opaque hover for dark theme — #14171f is a touch lighter than #080b14, zero transparency */
.sidebar-collapse-toggle:hover{background:#14171f;color:var(--pb-text)}
.sidebar-collapse-toggle svg{width:18px;height:18px}
/* Collapsed state: button re-centers in 48px rail */
.app.sidebar-collapsed .sidebar-collapse-toggle{width:48px;justify-content:center;padding-left:0}
