/* BeeCore shared SidebarShell — shell geometry only.
   Content, ordering, labels, state and business behavior remain owned by each sidebar. */
:root {
  --bc-sidebar-width: 220px;
  --bc-sidebar-bg: #fff;
  --bc-sidebar-shell-border: #eaeaea;
  --bc-sidebar-shell-pad-x: 12px;
  --bc-sidebar-shell-pad-top: 16px;
  --bc-sidebar-item-font-size: 13.5px;
  --bc-sidebar-section-font-size: 11px;
  --bc-sidebar-icon-size: 18px;
}

/* Shared desktop shell geometry. */
aside.bc-sidebar,
aside.mc-filters,
aside.ocr-side {
  box-sizing: border-box;
  width: var(--bc-sidebar-width) !important;
  min-width: var(--bc-sidebar-width);
  max-width: var(--bc-sidebar-width);
  background: var(--bc-sidebar-bg);
  border: 0;
  border-right: 1px solid var(--bc-sidebar-shell-border);
  border-radius: 0;
}

/* Dashboard remains the reference shell. */
:root { --bc-sidebar-w: var(--bc-sidebar-width) !important; }
.bc-sidebar .bc-sidebar-nav { padding-top: var(--bc-sidebar-shell-pad-top) !important; }
.bc-sidebar .bc-nav-item { font-size: var(--bc-sidebar-item-font-size); }
.bc-sidebar .bc-nav-group-title { font-size: var(--bc-sidebar-section-font-size); }
.bc-sidebar .bc-nav-icon,
.bc-sidebar .bc-nav-icon svg { width: var(--bc-sidebar-icon-size); height: var(--bc-sidebar-icon-size); }
.bc-sidebar ~ .bc-main { min-width: 0; margin-left: var(--bc-sidebar-width); }

/* Models keeps its current filter content and fixed behavior. */
body.bc-route-models .mc-filters {
  top: var(--bc-topnav-h);
  bottom: 0;
  height: auto;
  padding: var(--bc-sidebar-shell-pad-top) var(--bc-sidebar-shell-pad-x) 28px;
  overflow-x: hidden;
  overflow-y: auto;
}
body.bc-route-models .model-catalog,
body.bc-route-models .db-page.model-catalog {
  box-sizing: border-box;
  width: calc(100% - var(--bc-sidebar-width)) !important;
  margin-left: var(--bc-sidebar-width) !important;
}
.mc-fg-head { font-size: var(--bc-sidebar-item-font-size); }
.mc-fg-ic,
.mc-fg-ic svg { width: 16px; height: 16px; }

/* Chat keeps conversation history and balance content; only its shell is normalized. */
body.bc-route-chat .ocr-side {
  position: fixed;
  top: var(--bc-topnav-h);
  bottom: 0;
  left: 0;
  height: auto;
  z-index: 90;
  overflow: hidden;
}
body.bc-route-chat .ocr-main { margin-left: var(--bc-sidebar-width); }
.ocr-side-head { padding: var(--bc-sidebar-shell-pad-top) var(--bc-sidebar-shell-pad-x) 12px !important; }
.ocr-side-search { padding-left: var(--bc-sidebar-shell-pad-x); padding-right: var(--bc-sidebar-shell-pad-x); }
.ocr-side-list { padding-left: 8px; padding-right: 8px; }
.ocr-side-balance { padding-left: var(--bc-sidebar-shell-pad-x); padding-right: var(--bc-sidebar-shell-pad-x); }
.ocr-conv-item-title { font-size: var(--bc-sidebar-item-font-size); }
.ocr-conv-item-main,
.ocr-conv-item-title,
.ocr-conv-item-model { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ocr-chat,
.ocr-main { min-width: 0; }

/* All three use the existing application drawer breakpoint and the same drawer width. */
@media (max-width: 1024px) {
  aside.bc-sidebar,
  aside.mc-filters,
  aside.ocr-side {
    width: var(--bc-sidebar-width) !important;
    min-width: var(--bc-sidebar-width);
    max-width: var(--bc-sidebar-width);
  }
  .bc-sidebar ~ .bc-main,
  .bc-sidebar.bc-sidebar-collapsed ~ .bc-main { margin-left: 0; }
  body.bc-route-models .model-catalog,
  body.bc-route-models .db-page.model-catalog {
    width: auto !important;
    margin-left: 0 !important;
  }
  body.bc-route-chat .ocr-side { position: static; height: 100%; }
  body.bc-route-chat .ocr-main { margin-left: 0; }
}
