/* Floating Glass navigation from the reference; existing routes and permissions stay authoritative. */
/* Keep year labels and their default badge inside the menu in both directions. */
.idbarah-ui-v2 .navbar .dropdown-menu.ui-session-year-menu {
  width: 20rem;
  min-width: 0;
  max-width: calc(100vw - 24px);
  text-align: start;
}
.idbarah-ui-v2 .navbar .ui-session-year-menu .change-session-year {
  gap: 12px;
  align-items: center;
}
.idbarah-ui-v2 .navbar .ui-session-year-menu .preview-thumbnail {
  flex: 0 0 auto;
}
.idbarah-ui-v2 .navbar .ui-session-year-menu .ui-session-year-content {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  margin: 0;
}
.idbarah-ui-v2 .navbar .ui-session-year-menu .ui-session-year-label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  white-space: normal;
  line-height: 1.5;
}
.idbarah-ui-v2 .navbar .ui-session-year-menu .ui-session-year-label bdi,
.idbarah-ui-v2 .navbar .ui-session-year-menu .ui-session-year-label .badge {
  flex-shrink: 0;
  white-space: nowrap;
}
/* The semester selector has the same icon-and-label layout as the year selector.
 * Explicit flex sizing avoids RTL stylesheet margins pushing its label outside
 * the narrow dropdown. */
.idbarah-ui-v2 .navbar .dropdown-menu.ui-semester-menu {
  width: 20rem;
  min-width: 0;
  max-width: calc(100vw - 24px);
  text-align: start;
}
.idbarah-ui-v2 .navbar .ui-semester-menu .change-viewing-semester {
  gap: 12px;
  align-items: center;
}
.idbarah-ui-v2 .navbar .ui-semester-menu .preview-thumbnail {
  flex: 0 0 auto;
}
.idbarah-ui-v2 .navbar .ui-semester-menu .ui-semester-content {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  margin: 0;
}
.idbarah-ui-v2 .navbar .ui-semester-menu .ui-semester-label {
  width: 100%;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.5;
}
/* Public platform/school drawers share the internal sidebar material and shape. */
.idbarah-ui-v2 .ui-public-sidebar {
  inset-block: var(--id-space-3);
  inset-inline-start: var(--id-space-3);
  inset-inline-end: auto;
  width: min(300px, calc(100vw - 24px)) !important;
  height: calc(100dvh - 24px);
  background: var(--id-glass) !important;
  border: 0;
  border-radius: var(--id-radius-surface);
  box-shadow: inset 0 1px 1px white;
  backdrop-filter: blur(22px) saturate(125%);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
  color: var(--id-text);
  overflow: hidden;
  z-index: var(--id-z-drawer);
  transform: translateX(-115%);
  transition: transform var(--id-panel-position) var(--id-soft-spring);
}
[dir=rtl] .idbarah-ui-v2 .ui-public-sidebar { transform: translateX(115%); }
.idbarah-ui-v2 .ui-public-sidebar:is(.show,.showing) { transform: none; }
.idbarah-ui-v2 .ui-public-sidebar .offcanvas-header { padding: 24px 20px 16px; flex-shrink: 0; }
.idbarah-ui-v2 .ui-public-sidebar .offcanvas-body { padding: 8px 20px 24px; background: transparent; min-height: 0; overflow-y: auto; }
.idbarah-ui-v2 .ui-public-sidebar .listItems { display: block; margin: 0; padding: 0; }
.idbarah-ui-v2 .ui-public-sidebar .listItems li { margin: 4px 0; list-style: none; }
.idbarah-ui-v2 .ui-public-sidebar .listItems > li > a {
  display: block; padding: 12px 16px; color: var(--id-nav-text);
  font-size: var(--id-type-body); font-weight: var(--id-weight-medium); text-decoration: none;
}
.idbarah-ui-v2 .ui-public-sidebar .listItems > li > a:is(:hover,:focus-visible) { background: var(--id-nav-active); color: var(--id-ink); }
.idbarah-ui-v2 .ui-public-sidebar .listItems > li > a:focus-visible { outline: none; background-image: var(--control-focus); background-size: 100% 100%; }
.idbarah-ui-v2 .ui-public-sidebar .offcanvasActions { margin-top: var(--id-space-6); }
.idbarah-ui-v2 .ui-public-menu-toggle,
.idbarah-ui-v2 .ui-public-sidebar-close { width: 44px; height: 44px; padding: 8px; border: 0; background: transparent; color: var(--id-ink); }
.idbarah-ui-v2 .ui-public-sidebar .ui-public-sidebar-close { font-size: 28px; line-height: 1; flex-shrink: 0; }
.idbarah-ui-v2:not(.idbarah-admin-shell) .offcanvas-backdrop,
.idbarah-ui-v2 .ui-public-sidebar ~ .modal-backdrop {
  background: var(--id-backdrop); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  z-index: var(--id-z-drawer-backdrop);
}
.idbarah-ui-v2:not(.idbarah-admin-shell) .offcanvas-backdrop.show,
.idbarah-ui-v2 .ui-public-sidebar ~ .modal-backdrop.show { opacity: 1; }
.idbarah-ui-v2 .content-wrapper { background: transparent !important; padding: var(--id-space-8); }
.idbarah-ui-v2 .page-body-wrapper, .idbarah-ui-v2 .main-panel { background: transparent !important; }
.idbarah-ui-v2 .main-panel { min-width: 0; }
.idbarah-ui-v2 .ui-brand { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 12px 37px; color: var(--id-ink); font-size: 31px; font-weight: 700; line-height: 1.15; text-decoration: none; flex-shrink: 0; }
.idbarah-ui-v2 .ui-brand small { display: block; font-size: 10px; font-weight: 500; letter-spacing: 4px; margin-top: 7px; text-align: center; }
.idbarah-ui-v2 .ui-brand-mark { display: flex; gap: 4px; height: 40px; align-items: center; transform: skewY(-12deg); }
.idbarah-ui-v2 .ui-brand-mark i { display: block; width: 7px; height: 34px; border: 2px solid var(--id-ink); border-radius: 3px; }
.idbarah-ui-v2 .ui-brand-mark i:nth-child(2) { height: 43px; }
.idbarah-ui-v2 .ui-brand-mark i:nth-child(3) { height: 30px; opacity: .4; }
.idbarah-ui-v2 .ui-icon--line { width: 24px; height: 24px; vertical-align: middle; }
.idbarah-ui-v2 nav.ui-sidebar { display: flex; flex-direction: column; width: var(--id-sidebar-width); padding: 32px var(--id-sidebar-inset) 20px; background: var(--id-glass) !important; border: 0; border-radius: var(--id-radius-card); clip-path: var(--control-contour); box-shadow: inset 0 1px 1px white; backdrop-filter: blur(22px) saturate(125%); min-height: 0; isolation: isolate; overflow: hidden; color: var(--id-text); }
/* Keep the year on its own row so only the school name determines icon alignment. */
.idbarah-ui-v2 .ui-sidebar-school { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; align-items: center; padding: 17px 4px 23px; border-bottom: 1px solid var(--id-divider); margin-bottom: 22px; flex-shrink: 0; }
.idbarah-ui-v2 .ui-sidebar-school > .ui-icon { grid-column: 1; grid-row: 1; color: var(--id-ink); }
.idbarah-ui-v2 .ui-sidebar-school-name { grid-column: 2; grid-row: 1; min-width: 0; font-size: var(--id-type-body); line-height: 1.7; }
.idbarah-ui-v2 .ui-sidebar-school-year { grid-column: 2; grid-row: 2; min-width: 0; display: block; font-size: 11px; color: var(--id-muted); margin-top: 3px; }
.idbarah-ui-v2 .ui-sidebar-menu { min-height: 0; overflow: auto; scrollbar-width: thin; scrollbar-color: #3b376f26 transparent; overscroll-behavior: contain; flex: 1 1 auto; }
.idbarah-ui-v2 .ui-sidebar .ui-sidebar-search { padding: 0 2px; margin: 0 0 12px; }
.idbarah-ui-v2 .ui-sidebar-search--mobile { display: none; }
.idbarah-ui-v2 .ui-sidebar .nav { padding: 0; margin: 0; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 4px; }
.idbarah-ui-v2 :is(#sidebar,.ui-sidebar--preview) .nav .nav-item { padding: 0 !important; margin: 0 !important; border: 0; width: 100% !important; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-item .nav-link { display: flex; align-items: center; gap: 12px; padding: 14px 13px !important; margin: 0; min-height: 50px; width: 100%; color: var(--id-nav-text) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; font-size: var(--id-type-body); line-height: 1.6; text-align: start; position: relative; white-space: normal; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-link .menu-title { font-size: inherit; font-weight: inherit; line-height: inherit; white-space: normal; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-link .menu-icon { margin: 0 !important; width: 22px !important; height: 22px; flex: 0 0 22px; color: inherit !important; font-size: 19px; text-align: center; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-link .menu-arrow { margin: 0 !important; color: inherit !important; flex-shrink: 0; font-size: 16px; }
.idbarah-ui-v2 :is(#sidebar,.ui-sidebar--preview) .nav .nav-link :is(.menu-icon,.menu-arrow) { margin: 0 !important; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-link[data-toggle=collapse] { gap: 8px; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-item .nav-link:hover { background: #ffffff8c !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 .ui-sidebar .nav .nav-item .nav-link.active { background: var(--id-nav-active) !important; box-shadow: var(--id-nav-shadow) !important; color: var(--id-ink) !important; font-weight: 600; }
.idbarah-ui-v2 .ui-sidebar .nav-link.active::after { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--id-ink); flex-shrink: 0; margin-inline-start: auto; }
.idbarah-ui-v2 .ui-sidebar .nav .parent-active > .nav-link:not(.active) { color: var(--id-ink) !important; font-weight: 500; }
.idbarah-ui-v2 .ui-sidebar .nav.sub-menu { background: transparent !important; padding: 0 !important; margin-inline-start: 12px; border-inline-start: 1px solid var(--id-divider); width: calc(100% - 12px); }
.idbarah-ui-v2 .ui-sidebar .sub-menu .nav-item .nav-link { padding: 10px 8px !important; min-height: 40px; font-size: var(--id-type-meta); }
.idbarah-ui-v2 .ui-sidebar .sub-menu .nav-link::before { display: none !important; }
.idbarah-ui-v2 .ui-sidebar .nav-link { clip-path: var(--control-contour); }
.idbarah-ui-v2 .ui-sidebar .nav-link:focus-visible { outline: 0; background-image: var(--control-focus) !important; background-size: 100% 100% !important; }
.idbarah-ui-v2 .ui-sidebar-bottom { flex-shrink: 0; margin-top: auto; }
.idbarah-ui-v2 .ui-sidebar-account { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--id-divider); padding-top: 20px; color: var(--id-text); text-decoration: none; }
.idbarah-ui-v2 .ui-sidebar-avatar { width: 43px; height: 43px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: var(--id-radius-image-fallback); background: var(--id-ink); color: white; font-size: 12px; font-weight: 500; }
.idbarah-ui-v2 .ui-sidebar-person { min-width: 0; }
.idbarah-ui-v2 .ui-sidebar-avatar { position: relative; overflow: hidden; }
.idbarah-ui-v2 .ui-sidebar-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.idbarah-ui-v2 .ui-sidebar-person b { display: block; font-size: 12px; }
.idbarah-ui-v2 .ui-sidebar-person small { display: block; color: var(--id-muted); font-size: 10px; }
.idbarah-ui-v2 .ui-sidebar-presence { width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: var(--id-patina); margin-inline-start: auto; }
.idbarah-ui-v2 .ui-sidebar-close, .idbarah-ui-v2 .ui-sidebar-backdrop { display: none !important; }
.idbarah-ui-v2 .ui-sidebar, .idbarah-admin-shell .navbar .navbar-menu-wrapper { font-family: var(--id-font); }
.idbarah-ui-v2 .ui-sidebar .nav .nav-item.active, .idbarah-ui-v2 .ui-sidebar .nav .nav-item.parent-active { background: transparent !important; box-shadow: none; }
.idbarah-ui-v2 .ui-sidebar--preview { height: 850px; max-height: 90dvh; max-width: 100%; position: relative; margin-inline: auto; }
.idbarah-ui-v2 .ui-sidebar-stage { padding: var(--id-space-6); background: var(--id-canvas); border-radius: var(--id-radius-card); }
/* Desktop geometry follows the reference; application commands remain in the header. */
@media(min-width:992px) {
  .idbarah-admin-shell .container-scroller { max-width: var(--id-page-max); margin-inline: auto; }
  .idbarah-admin-shell .page-body-wrapper { width: 100%; max-width: none; margin: 0; padding: 0 !important; min-height: calc(100dvh - 82px); }
  .idbarah-admin-shell #sidebar.ui-sidebar { position: fixed; top: var(--id-shell-top); bottom: var(--id-shell-top); left: auto; right: auto; inset-inline-start: max(var(--id-shell-edge),calc((100vw - var(--id-page-max))/2 + var(--id-shell-edge))); height: calc(100dvh - var(--id-shell-top)*2); z-index: var(--id-z-sidebar); width: var(--id-sidebar-width) !important; }
  body.idbarah-admin-shell .main-panel, body.idbarah-admin-shell .navbar.default-layout-navbar { width: calc(100% - var(--id-sidebar-width) - var(--id-shell-gap) - var(--id-shell-edge)*2) !important; margin-inline-end: 0 !important; margin-inline-start: calc(var(--id-sidebar-width) + var(--id-shell-gap) + var(--id-shell-edge)) !important; margin-block: 0; transition: none; }
  body.idbarah-admin-shell .navbar.default-layout-navbar { position: relative; top: auto; right: auto; left: auto; margin-block: var(--id-shell-top) 0; height: 58px; background: transparent !important; box-shadow: none; border: 0; }
  .idbarah-admin-shell .navbar .navbar-brand-wrapper { display: none !important; }
  .idbarah-admin-shell .navbar .navbar-menu-wrapper { width: 100% !important; height: 58px; padding: 0; background: transparent !important; }
  .idbarah-admin-shell .content-wrapper { padding: 24px 0; }
  .idbarah-admin-shell.sidebar-icon-only { --id-sidebar-width: var(--id-sidebar-rail); }
  .idbarah-admin-shell.sidebar-icon-only #sidebar.ui-sidebar { padding-inline: 10px; }
  .idbarah-admin-shell.sidebar-icon-only #sidebar :is(.ui-brand-name,.ui-sidebar-school,.ui-sidebar-person,.ui-sidebar-presence,.sidebar-search) { display: none !important; }
  .idbarah-admin-shell.sidebar-icon-only #sidebar .ui-brand { margin-inline: 0; }
  .idbarah-admin-shell.sidebar-icon-only #sidebar .nav-link { justify-content: center; padding-inline: 0 !important; }
  .idbarah-admin-shell.sidebar-icon-only #sidebar :is(.menu-title,.menu-arrow,.sub-menu,.collapse) { display: none !important; }
  .idbarah-admin-shell.sidebar-icon-only #sidebar .nav-link.active::after { display: none; }
  .idbarah-admin-shell.sidebar-icon-only .ui-sidebar-account { justify-content: center; }
}
/* aria-expanded is the single source for branch direction, in either writing direction. */
.idbarah-ui-v2 #sidebar .nav .nav-link i.menu-arrow { transform: none !important; }
.idbarah-ui-v2 #sidebar .nav .nav-link i.menu-arrow::before { content: '' !important; display: block; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; }
.idbarah-ui-v2 .ui-sidebar .menu-arrow::before { transform: rotate(-45deg); }
[dir=rtl] .idbarah-ui-v2 .ui-sidebar .menu-arrow::before { transform: rotate(135deg); }
.idbarah-ui-v2 .ui-sidebar [aria-expanded=true] > .menu-arrow::before { transform: rotate(45deg); }
@media(min-width:1450px) { .idbarah-admin-shell { --id-sidebar-width: 240px; --id-shell-edge: 35px; --id-shell-top: 28px; --id-shell-gap: 56px; } }
@media(min-width:992px) and (max-width:1150px) {
  .idbarah-admin-shell { --id-sidebar-width: 210px; --id-shell-edge: 18px; --id-shell-top: 18px; --id-shell-gap: 25px; --id-sidebar-inset: 10px; }
  .idbarah-admin-shell .ui-brand { font-size: 27px; }
  .idbarah-admin-shell .ui-sidebar .nav .nav-item .nav-link { font-size: 12px; gap: 9px; }
}
/* Drawer retains every permission-controlled module on small screens. */
@media(max-width:991.98px) {
  .idbarah-admin-shell .navbar.default-layout-navbar { position: relative; flex-wrap: nowrap; height: auto; min-height: 64px; background: var(--id-paper) !important; border-bottom: 1px solid var(--id-divider); }
  .idbarah-admin-shell .page-body-wrapper { padding-top: 0 !important; }
  .idbarah-admin-shell .navbar .navbar-brand-wrapper { width: 130px !important; height: 64px; flex: 0 0 130px; }
  .idbarah-admin-shell .navbar .navbar-menu-wrapper { width: calc(100% - 130px) !important; min-width: 0; height: 64px; padding-inline: 8px; }
  .idbarah-admin-shell .navbar .cache-clear { display: none !important; }
  .idbarah-admin-shell .navbar .ui-brand--header { margin: 0; gap: 6px; font: 700 23px/1.15 var(--id-font); }
  .idbarah-admin-shell .ui-brand--header small { font-size: 7px; letter-spacing: 3px; margin-top: 4px; }
  .idbarah-admin-shell .ui-brand--header .ui-brand-mark { zoom: .7; }
  .idbarah-admin-shell .navbar .navbar-menu-wrapper, .idbarah-admin-shell .navbar .navbar-brand-wrapper { background: transparent !important; }
  .idbarah-admin-shell #sidebar.ui-sidebar { position: fixed; top: 12px !important; bottom: 12px; left: auto !important; right: auto !important; inset-inline-start: 12px !important; width: min(300px,calc(100% - 24px)) !important; height: calc(100dvh - 24px) !important; max-height: none; padding-top: 28px; z-index: var(--id-z-drawer); visibility: hidden; transform: translateX(-115%); transition: transform var(--id-panel-position) var(--id-soft-spring), visibility var(--id-panel-position); }
  [dir=rtl] .idbarah-admin-shell #sidebar.ui-sidebar { transform: translateX(115%); }
  .idbarah-admin-shell #sidebar.ui-sidebar.active { visibility: visible; transform: none; }
  .idbarah-admin-shell .ui-sidebar-close { display: inline-flex !important; position: absolute; inset-block-start: 8px; inset-inline-end: 8px; padding: 8px; min-width: 36px; min-height: 36px; background: transparent; border: 0; color: var(--id-muted); }
  .idbarah-admin-shell:has(#sidebar.active) .ui-sidebar-backdrop { display: block !important; position: fixed; inset: 0; width: 100%; height: 100%; border: 0; background: var(--id-backdrop); backdrop-filter: blur(8px); z-index: var(--id-z-drawer-backdrop); clip-path: none; }
  .idbarah-admin-shell:has(#sidebar.active) { overflow: hidden; }
  .idbarah-admin-shell .ui-sidebar-search:not(.ui-sidebar-search--mobile) { display: none; }
  .idbarah-admin-shell .ui-sidebar-search--mobile { display: block; }
}
@media(max-height:780px) {
  .idbarah-admin-shell .ui-sidebar .ui-brand { margin-bottom: 16px; }
  .idbarah-admin-shell .ui-sidebar-school { padding-block: 8px 16px; margin-bottom: 14px; }
}
