/* BIMSEEK 六板块容器层 · 2026-11-01 */
.el-menu-vertical-demo.bs-boards-menu { display: flex !important; flex-direction: column; overflow-y: auto; overflow-x: hidden; padding-bottom: 16px; }
.el-menu-vertical-demo.bs-boards-menu > li.native-navigation-heading .native-navigation-group { display: none; }
.el-menu-vertical-demo.bs-boards-menu > li.native-navigation-heading { height: auto !important; min-height: 0 !important; line-height: normal !important; flex: none; overflow: visible; margin-bottom: 4px; }
.el-menu-vertical-demo.bs-boards-menu > li.bs-hidden-empty, .el-menu-vertical-demo.bs-boards-menu > li.bs-hide { display: none !important; }

.bs-board-head { list-style: none; display: flex; align-items: center; gap: 8px; margin: 10px 14px 2px; padding: 0; font: 600 10.5px/1.4 Inter, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; letter-spacing: 1.4px; color: #8792a5; text-transform: uppercase; white-space: nowrap; }
.bs-board-head .bs-board-head-line { flex: 1; height: 1px; background: #e8ebf2; }
.bs-board-head[data-collapsed="1"] { display: none; }

#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item { display: flex !important; align-items: center; gap: 9px !important; height: 34px !important; min-height: 34px !important; line-height: 34px !important; margin: 1px 12px !important; padding: 0 10px !important; border-radius: 6px; cursor: pointer; font: 400 13px/1.4 Inter, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif !important; color: #647189 !important; background: transparent !important; box-shadow: none !important; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item:hover { background: #f6f3fc !important; color: #5c3eb3 !important; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.is-active { font-weight: 600 !important; color: #5c3eb3 !important; background: #f0ebfa !important; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub { margin-left: 30px !important; height: 30px !important; min-height: 30px !important; line-height: 30px !important; font-size: 12.5px !important; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub .bs-boards-icon { display: none; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #c7bde8; flex: none; }
.bs-boards-icon { width: 18px; height: 18px; flex: none; color: #8e82a9; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.is-active .bs-boards-icon { color: #7052c8; }
.bs-boards-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.el-menu--collapse > .el-menu-item.bs-boards-item { justify-content: center; margin: 2px 8px !important; padding: 0 !important; }
.el-menu--collapse > .el-menu-item.bs-boards-item .bs-boards-label { display: none; }
.el-menu--collapse > .el-menu-item.bs-boards-item.bs-sub { margin-left: 8px !important; }
.el-menu--collapse > .el-menu-item.bs-boards-item.bs-sub::before { display: none; }
.el-menu--collapse > .el-menu-item.bs-boards-item.bs-sub .bs-boards-icon { display: block; }

#bs-boards-viewer { position: fixed; z-index: 901; background: #f4f5f9; display: flex; flex-direction: column; }
#bs-boards-viewer iframe { border: 0; flex: 1; width: 100%; min-height: 0; background: #f4f5f9; }
#bs-boards-viewer .bs-cf-host { flex: 1; display: flex; flex-direction: column; min-height: 0; }
#bs-boards-viewer .bs-cf-host iframe { height: 100%; }

.bs-home-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 0 0 14px; }
.bs-home-kpi { text-align: left; cursor: pointer; background: #fff; border: 1px solid #e3e6ee; border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; font-family: Inter, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; transition: border-color .15s, box-shadow .15s; }
.bs-home-kpi:hover { border-color: #c7bde8; box-shadow: 0 2px 10px rgba(91, 75, 196, .08); }
.bs-home-kpi-title { font-size: 11px; font-weight: 600; letter-spacing: 1px; color: #6b7488; text-transform: uppercase; }
.bs-home-kpi-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: #3d4a61; }
.bs-home-kpi-row strong { font-size: 20px; font-weight: 700; color: #1b2537; }
@media (max-width: 760px) { .bs-home-kpis { grid-template-columns: 1fr 1fr; } }

/* entries injected by other additive scripts (Carrefour workspace, MEP Plus, Site…) — match the menu look */
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) { padding: 0 !important; margin: 1px 12px !important; list-style: none; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 9px !important; width: 100% !important; min-height: 34px !important; height: 34px !important; padding: 0 10px 0 37px !important; border: 0 !important; border-radius: 6px !important; background: transparent !important; color: #647189 !important; font: 400 13px/1.4 Inter, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif !important; text-align: left !important; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button:hover { background: #f6f3fc !important; color: #5c3eb3 !important; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button[aria-pressed="true"] { background: #f0ebfa !important; color: #5c3eb3 !important; font-weight: 600 !important; }
.el-menu--collapse.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button { padding: 0 !important; justify-content: center !important; font-size: 10px !important; }

/* --- r6: tighter vendor items (same density as ours), no gaps when collapsed --- */
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu > .el-menu-item,
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item { height: 34px !important; min-height: 34px !important; line-height: 34px !important; margin: 1px 12px !important; padding: 0 10px !important; }
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item,
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-boards-item { margin: 1px 8px !important; padding: 0 !important; justify-content: center; }
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.native-navigation-heading { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.native-navigation-heading .native-brand-sub,
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.native-navigation-heading .native-context-card { display: none !important; }
.el-menu-vertical-demo.bs-boards-menu { padding-bottom: 8px; }

/* --- r6: project home — one screen: KPI strip, then Issue List + Notice + To-do, then compact Project Details + Activity + Files --- */
html .userprojectindex.bs-home-6.bs-kpi > .el-row { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(2, var(--bs-home-card-h)); grid-auto-rows: minmax(0, auto); gap: 14px; --bs-home-card-h: clamp(220px, calc((100vh - 420px) / 2), 420px); }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="work"], html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="doc"] { height: var(--bs-home-card-h) !important; min-height: 0 !important; max-height: none; display: flex; flex-direction: column; overflow: hidden; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="work"] > .el-card, html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="doc"] > .el-card { height: 100% !important; min-height: 0 !important; flex: 1 1 auto !important; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="iss"]     { grid-area: 1 / 1 / 2 / 7; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="notice"]  { grid-area: 1 / 7 / 2 / 10; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="todo"]    { grid-area: 1 / 10 / 2 / 13; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="details"] { grid-area: 2 / 1 / 3 / 7; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="work"]    { grid-area: 2 / 7 / 3 / 10; }
html .userprojectindex.bs-home-6.bs-kpi [data-bs-card="doc"]     { grid-area: 2 / 10 / 3 / 13; }
html .userprojectindex.bs-home-6.bs-kpi .el-card.box-card { height: var(--bs-home-card-h) !important; min-height: 0 !important; max-height: none; overflow: hidden !important; display: flex; flex-direction: column; }
html .userprojectindex.bs-home-6.bs-kpi { --bs-home-card-h: clamp(220px, calc((100vh - 420px) / 2), 420px); }
html .userprojectindex.bs-home-6.bs-kpi .el-card.box-card > .el-card__body { flex: 1 1 auto; min-height: 0; overflow: auto !important; padding: 14px 18px !important; }
html .userprojectindex.bs-home-6.bs-kpi .el-card__body > div:first-child { margin: 0 0 10px !important; padding-bottom: 8px; }
html .userprojectindex.bs-home-6.bs-kpi .textP.el-col-8 { flex: 0 0 120px !important; max-width: 120px !important; }
html .userprojectindex.bs-home-6.bs-kpi .textP img { aspect-ratio: 4 / 3 !important; }
html .userprojectindex.bs-home-6.bs-kpi .textP.el-col-16 .el-col-24 > .el-row { gap: 8px 16px; margin: 0 0 8px !important; }
html .userprojectindex.bs-home-6.bs-kpi .textP .el-col-6 { gap: 8px; }
html .userprojectindex.bs-home-6.bs-kpi .bs-ui-home-progress-task { padding: 14px 12px 8px !important; }
html .userprojectindex.bs-home-6.bs-kpi img[src*="img/empty."] { max-height: 90px; width: auto; margin: 6px auto; }
.userprojectindex.bs-kpi .bs-home-kpis { margin: 0 0 14px; gap: 14px; }
.userprojectindex.bs-kpi .bs-home-kpi { padding: 10px 14px; gap: 3px; }
.userprojectindex.bs-kpi .bs-home-kpi-row strong { font-size: 18px; }
html .userprojectindex.bs-kpi > .el-row { height: auto !important; }
html .userprojectindex.bs-kpi { height: auto !important; min-height: 0 !important; }
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item,
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item { height: 36px !important; min-height: 36px !important; line-height: 36px !important; margin: 1px 8px !important; padding: 0 !important; justify-content: center !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub:not(.bs-boards-item) { margin-left: 30px !important; height: 30px !important; min-height: 30px !important; line-height: 30px !important; font-size: 12.5px !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub:not(.bs-boards-item) .native-outline-icon { display: none; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub:not(.bs-boards-item)::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #c7bde8; flex: none; margin-right: 9px; }
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-sub:not(.bs-boards-item) { margin-left: 8px !important; height: 36px !important; }
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-sub:not(.bs-boards-item)::before { display: none; }
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-sub:not(.bs-boards-item) .native-outline-icon { display: block; }

/* --- r7.3: nav look per Eric's reference — lavender rounded active pill, letter-spaced group titles, no divider lines --- */
.bs-board-head { margin: 14px 18px 4px !important; font-size: 11px !important; letter-spacing: 2.2px !important; color: #7a8699 !important; font-weight: 700 !important; }
.bs-board-head .bs-board-head-line { display: none; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item,
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu > .el-menu-item,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item { border-radius: 12px !important; margin: 2px 12px !important; padding: 0 12px !important; color: #4b5569 !important; border: 0 !important; box-shadow: none !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item:hover,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item:hover { background: #f4f0fc !important; color: #5b3fb8 !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active,
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.is-active { background: #ece4ff !important; color: #5b3fb8 !important; font-weight: 600 !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active::before,
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active::after { display: none !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active .native-outline-icon,
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active .bs-boards-icon,
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active i { color: #6b46c1 !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item .native-outline-icon,
.bs-boards-icon { width: 20px !important; height: 20px !important; color: #6e7a90; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub::before { background: #d6cbf2; }
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub.is-active::before { background: #6b46c1; display: block !important; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button { border-radius: 12px !important; margin: 0 !important; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button[aria-pressed="true"] { background: #ece4ff !important; color: #5b3fb8 !important; }
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item,
.el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-boards-item { border-radius: 10px !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub.is-active::before { display: block !important; background: #6b46c1; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub { margin: 1px 12px 1px 30px !important; border-radius: 10px !important; }
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-sub,
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-boards-item.bs-sub { margin: 1px 8px !important; }

/* --- r7.9 (Eric 11-01): one lit item only, bold black board names (no numbers), folding carets, rows 20% tighter --- */
/* while a boards view is open, the vendor route item underneath must not stay lit */
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active:not(.bs-boards-item),
html.bs-boards-open #app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active:not(.bs-boards-item) { background: transparent !important; color: #4b5569 !important; font-weight: 400 !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active:not(.bs-boards-item) .native-outline-icon,
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active:not(.bs-boards-item) i { color: #6e7a90 !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub.is-active:not(.bs-boards-item)::before { background: #d6cbf2 !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.is-active:not(.bs-boards-item):hover { background: #f4f0fc !important; color: #5b3fb8 !important; }
html.bs-boards-open .el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button[aria-pressed="true"] { background: transparent !important; color: #647189 !important; font-weight: 400 !important; }

/* folded items */
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-folded, html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-hide, html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-hidden-empty { display: none !important; }

/* board names: bold, near-black, clickable to fold */
.bs-board-head { cursor: pointer; user-select: none; margin: 11px 14px 2px 18px !important; padding: 2px 0 !important; color: #1b2537 !important; font-weight: 800 !important; font-size: 11.5px !important; letter-spacing: 1.6px !important; border-radius: 6px; }
.bs-board-head:hover { color: #5b3fb8 !important; }
.bs-board-head:focus-visible { outline: 2px solid #c7bde8; outline-offset: 2px; }
.bs-fold-caret { margin-left: auto; flex: none; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; color: #8792a5; cursor: pointer; transition: transform .15s ease, background .15s; }
.bs-fold-caret svg { width: 13px; height: 13px; }
.bs-fold-caret:hover { background: #e9e3fb; color: #5b3fb8; }
.bs-board-head .bs-fold-caret { margin-right: 6px; }
.bs-board-head.bs-folded-head .bs-fold-caret,
.bs-boards-item.bs-head-item:not(.bs-fold-open) .bs-fold-caret { transform: rotate(-90deg); }
.el-menu--collapse > .el-menu-item.bs-boards-item .bs-fold-caret { display: none; }

/* rows 20% tighter: 34 -> 27 px, sub rows 30 -> 24 px, margins 2 -> 1 px */
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item,
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu > .el-menu-item,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item { height: 27px !important; min-height: 27px !important; line-height: 27px !important; margin-top: 1px !important; margin-bottom: 1px !important; border-radius: 9px !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub,
#app .el-menu-vertical-demo > .el-menu-item.bs-boards-item.bs-sub { height: 24px !important; min-height: 24px !important; line-height: 24px !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) { margin-top: 1px !important; margin-bottom: 1px !important; }
.el-menu-vertical-demo.bs-boards-menu > li:not(.el-menu-item):not(.bs-board-head):not(.native-navigation-heading) > button { height: 27px !important; min-height: 27px !important; border-radius: 9px !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item .native-outline-icon,
.bs-boards-icon { width: 18px !important; height: 18px !important; }
/* icon-only rail keeps its comfortable 36 px targets */
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item,
#app.bs-ui-native-chrome .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item,
#app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > .el-menu-item.bs-boards-item { height: 36px !important; min-height: 36px !important; line-height: 36px !important; }

/* --- r7.9c: settings + billing pinned at the bottom of the nav; vendor sub items aligned with ours --- */
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-pinned { position: sticky; z-index: 2; background-color: #fff; }
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-pinned.bs-pinned-first { margin-top: auto !important; }
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-pinned.bs-pinned-first::after { content: ""; position: absolute; left: -12px; right: -12px; top: -5px; height: 1px; background: #eceef4; }
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-pinned:not(.is-active):not(:hover) { background-color: #fff !important; }
html #app .el-menu-vertical-demo.bs-boards-menu > li.bs-pinned.bs-pinned-first { box-shadow: 0 -10px 0 0 #fff !important; }
.el-menu-vertical-demo.bs-boards-menu { padding-bottom: 0 !important; }
#app .el-menu-vertical-demo.bs-boards-menu > .el-menu-item.bs-sub:not(.bs-boards-item)::before { margin-right: 0 !important; }

/* --- r7.9d: icon rail (collapsed) - one lit item only, no empty gaps, no overlap at the bottom --- */
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item),
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item):focus { background: transparent !important; box-shadow: none !important; border-color: transparent !important; outline: 0 !important; color: #4b5569 !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item)::before,
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item)::after { box-shadow: none !important; border-color: transparent !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu:not(.el-menu--collapse) > li.is-active.bs-sub:not(.bs-boards-item)::before { background: #d6cbf2 !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.is-active:not(.bs-boards-item)::before,
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.is-active:not(.bs-boards-item)::after { display: none !important; }
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item) .native-outline-icon,
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item) svg,
html.bs-boards-open #app .el-menu-vertical-demo.bs-boards-menu > li.is-active:not(.bs-boards-item) i { color: #6e7a90 !important; }
/* rail: sub items (E1/E2, RFI, Issues ...) are reached through their parent - hide them instead of leaving blank rows */
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.bs-sub { display: none !important; }
/* rail: bottom block is not sticky (heights differ there) - just pushed to the bottom; extra foreign buttons hidden */
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.bs-pinned { position: static !important; box-shadow: none !important; }
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li.bs-pinned.bs-pinned-first::after { display: none; }
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse > li#cf-unified-enable { display: none !important; }
/* rail: while a sub item is open, its parent carries the highlight */
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse:has(> li[data-key="e1"].is-active, > li[data-key="e2"].is-active) > li[data-key="submittals"],
html #app .el-menu-vertical-demo.bs-boards-menu.el-menu--collapse:has(> li[data-key="rfi"].is-active, > li[data-key="minutes"].is-active, > li[data-key="action"].is-active) > li[data-key="tracker"] { background: #ece4ff !important; color: #5b3fb8 !important; }
/* p1 2026-11-04: docked model directory on dark viewer routes (discussions, property, location, live barcode, session).
   App.vue drops #app.bs-ui-native-chrome on these routes (dark viewer), which also dropped the grid layout -> page collapsed to a dark strip. */
#app:not(.bs-ui-native-chrome) .native-directory-layout{display:grid;grid-template-columns:var(--native-directory-width) var(--native-directory-divider) minmax(0,1fr);grid-template-rows:var(--native-directory-header) minmax(0,1fr);width:100%;height:100%!important;min-width:0;min-height:0;margin:0;overflow:hidden;background:#111820;color:#c9d3df}
#app:not(.bs-ui-native-chrome) .native-directory-layout>.native-directory-header{grid-column:1/-1;grid-row:1;display:flex;align-items:center;gap:10px;padding:0 14px;min-width:0;background:#151d27!important;border-bottom:1px solid #2a3442;box-sizing:border-box;color:#e3e9f1}
#app:not(.bs-ui-native-chrome) .native-directory-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;padding:0;border:0;border-radius:6px;background:transparent;color:#c9d3df;cursor:pointer}
#app:not(.bs-ui-native-chrome) .native-directory-toggle:hover{background:#1d2735}
#app:not(.bs-ui-native-chrome) .native-directory-toggle .native-outline-icon{width:18px;height:18px}
#app:not(.bs-ui-native-chrome) .native-directory-label{display:block;color:#e3e9f1;font:600 15px/22px Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app:not(.bs-ui-native-chrome) .native-directory-layout>.native-directory-header h2,#app:not(.bs-ui-native-chrome) .native-directory-layout>.native-directory-header h1{margin:0;color:#e3e9f1;font:600 15px/22px Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif}
#app:not(.bs-ui-native-chrome) .native-directory-panel{grid-column:1;grid-row:2;min-width:0;min-height:0;overflow:auto;padding:8px;box-sizing:border-box;background:#151d27!important;border-right:1px solid #2a3442}
#app:not(.bs-ui-native-chrome) .native-directory-panel .ztree{min-width:max-content;background:transparent!important;border:0;font-size:13px;color:#c9d3df}
#app:not(.bs-ui-native-chrome) .native-directory-panel .ztree li a{color:#c9d3df!important;font-size:13px;border-radius:4px}
#app:not(.bs-ui-native-chrome) .native-directory-panel .ztree li a.curSelectedNode,#app:not(.bs-ui-native-chrome) .native-directory-panel .ztree li a:hover{color:#fff!important;background:#2b6cb8!important;border-color:#2b6cb8!important}
#app:not(.bs-ui-native-chrome) .native-directory-resizer{grid-column:2;grid-row:2;cursor:col-resize;touch-action:none;background:transparent!important}
#app:not(.bs-ui-native-chrome) .native-directory-resizer>span{display:block;width:1px;height:100%;background:#2a3442}
#app:not(.bs-ui-native-chrome) .native-directory-resizer:hover>span{background:#2b6cb8}
#app:not(.bs-ui-native-chrome) .native-directory-stage{grid-column:3;grid-row:2;min-width:0;min-height:0;overflow:hidden;position:relative}
#app:not(.bs-ui-native-chrome) .native-directory-mini{grid-column:1;grid-row:2;background:#151d27;border-right:1px solid #2a3442;display:flex;justify-content:center}
#app:not(.bs-ui-native-chrome) .native-directory-mini button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:32px;padding:0;border:0;border-radius:4px;color:#c9d3df;background:transparent;cursor:pointer}
#app:not(.bs-ui-native-chrome) .native-business-viewer-directory .native-viewer-directory-content{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0}
#app:not(.bs-ui-native-chrome) .native-business-viewer-directory .native-viewer-directory-viewport{flex:1 1 0;width:100%;min-width:0;min-height:0;position:relative;overflow:hidden}
#app:not(.bs-ui-native-chrome) .native-business-viewer-directory .native-viewer-directory-viewport>#MyViewerDiv,#app:not(.bs-ui-native-chrome) .native-business-viewer-directory .native-session-model-host>#MyViewerDiv{position:absolute;inset:0;width:100%!important;height:100%!important}
#app:not(.bs-ui-native-chrome) .native-business-viewer-directory .native-business-viewer-pane{display:flex;flex-direction:column;height:100%;min-height:0;background:#151d27}
html.bs-viewer #app:not(.bs-ui-native-chrome)>.native-directory-layout,html.bs-viewer #app:not(.bs-ui-native-chrome)>div>.native-directory-layout{height:100vh!important}
.native-directory-stage>.bs-dir-empty{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);max-width:420px;padding:22px 26px;border:1px solid #2a3442;border-radius:12px;background:rgba(21,29,39,.94);color:#c9d3df;font:13px/1.6 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;display:flex;flex-direction:column;gap:6px;text-align:center;z-index:5}
.native-directory-stage>.bs-dir-empty b{color:#e3e9f1;font-size:15px;font-weight:600}
#app:not(.bs-ui-native-chrome) .native-directory-panel>h2,#app:not(.bs-ui-native-chrome) .native-business-viewer-pane>h2{margin:4px 6px 8px;color:#93a2b6;font:600 12px/18px Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;letter-spacing:.2px}
/* p2 2026-11-04: page header + table alignment on native pages */
.native-workspace-titlebar.bs-ph-bar{height:auto!important;min-height:0!important;align-items:flex-end!important;padding:16px 24px 12px!important;background:#fff!important;border-bottom:1px solid #e3e8f0!important;box-shadow:none!important}
.native-workspace-titlebar .bs-ph-title{display:inline-flex!important;flex-direction:column;gap:3px;font:650 22px/1.25 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif!important;color:#1b2539!important;letter-spacing:-.2px;white-space:normal!important}
.native-workspace-titlebar .bs-ph-title::before{content:attr(data-eyebrow);font:500 12px/1.4 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;color:#8a94a6;letter-spacing:0}
.native-workspace-titlebar .bs-ph-title::after{content:attr(data-desc);font:400 13px/1.45 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;color:#5e6a80;letter-spacing:0}
#app.bs-ui-native-chrome .bs-ui-workspace-main .el-table th:not(.el-table-column--selection)>.cell,#app.bs-ui-native-chrome .bs-ui-workspace-main .el-table td:not(.el-table-column--selection)>.cell{text-align:left}
#app.bs-ui-native-chrome .bs-ui-workspace-main .el-table th>.cell{font-weight:600;color:#5e6a80}
html.bs-ctx-wait .bs-ui-topbar-nav,html.bs-ctx-wait .bs-ui-topbar-context{visibility:hidden!important}
html.bs-nav-wait .el-menu-vertical-demo{visibility:hidden!important}
.bs-boards-menu>li:not([style*="order"]):not(.bs-board-head):not(.bs-boards-item){display:none!important}
/* p3 (2026-11-04): issue translations, Translate button, linked-image thumbnails */
.bs-tr-on{font-size:0!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.bs-tr-on>.bs-tr-out{font-size:var(--bs-fs,13px)}
.bs-tr-out{line-height:1.45}
.bs-tr-mt{font-style:normal;font-size:10px;line-height:14px;margin-left:6px;padding:0 4px;border:1px solid #7a63dd;color:#5b3fd0;border-radius:4px;vertical-align:1px;white-space:nowrap}
.bs-tr-orig{display:block;color:#98a0b3;font-size:.86em;line-height:1.4;margin-top:2px}
.bs-tr-dark .bs-tr-mt{color:#c7bcff;border-color:#9b87ff}
.bs-tr-dark .bs-tr-orig{color:#93a0b2}
.bs-tr-btn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;margin:0 8px;border:1px solid #dfe3ec;border-radius:6px;background:#fff;color:#3b4558;font:500 12px/1 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif;cursor:pointer;white-space:nowrap;vertical-align:middle;flex:0 0 auto}
.bs-tr-btn:hover{border-color:#b9b0e6}
.bs-tr-btn[aria-pressed="true"]{border-color:#7a63dd;color:#5b3fd0;background:#efebfc}
.bs-tr-btn:focus-visible{outline:2px solid #7a63dd;outline-offset:2px}
.bs-tr-btn.bs-tr-dark{background:transparent;border-color:#3a4555;color:#e3e9f1}
.bs-tr-btn.bs-tr-dark[aria-pressed="true"]{border-color:#9b87ff;color:#c7bcff;background:rgba(155,135,255,.14)}
.bs-iss-h .bs-tr-btn{margin-left:auto}
.bs-iss-h .bs-tr-btn+.bs-iss-all{margin-left:0!important}
.dialog-header>.bs-tr-btn{margin-left:auto;margin-right:6px}
.bs-img-th{display:block;width:168px;max-width:100%;aspect-ratio:4/3;padding:0;margin:4px 0 8px;border:1px solid #3a4555;border-radius:6px;background:#fff;overflow:hidden;cursor:zoom-in}
.bs-img-th img{width:100%;height:100%;object-fit:contain;display:block}
.bs-img-th:focus-visible{outline:2px solid #9b87ff;outline-offset:2px}
#bs-img-lb{position:fixed;inset:0;z-index:2147483000;background:rgba(8,12,18,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px}
#bs-img-lb[hidden]{display:none}
#bs-img-lb img{max-width:92vw;max-height:84vh;background:#fff;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
#bs-img-lb .bs-img-cap{color:#cfd6e0;font:12px/1.4 Inter,-apple-system,"Segoe UI","PingFang SC",Arial,sans-serif}
#bs-img-lb .bs-img-x{position:absolute;top:14px;right:22px;background:transparent;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer}
.bs-tr-on{word-break:normal!important;overflow-wrap:anywhere}
.el-table .bs-tr-on .bs-tr-orig{display:none}
.bs-lab .bs-tr-orig{display:none}
.bs-lab .bs-tr-mt{font-size:9px;line-height:12px;padding:0 3px;margin-left:4px}
