/* Single visual contract for every authenticated role; navigation permissions stay local. */
:root {
  --ceo-sidebar-expanded:240px; --ceo-sidebar-collapsed:74px;
  --ceo-sidebar-pad:22px; --ceo-sidebar-top:44px; --ceo-sidebar-bottom:36px;
  --ceo-sidebar-brand-gap:42px; --ceo-sidebar-nav-height:58px; --ceo-sidebar-nav-gap:13px;
}
@media(max-height:800px){:root{--ceo-sidebar-top:18px;--ceo-sidebar-bottom:18px;--ceo-sidebar-brand-gap:16px;--ceo-sidebar-nav-height:42px;--ceo-sidebar-nav-gap:4px}}
:is(#app > .sidebar,#portalSidebar){background:#29384A!important;color:#D7E1EB!important;font-family:system-ui,sans-serif!important}
:is(#sidebarToggle,#portalMenuToggle){position:absolute!important;top:22px!important;right:-15px!important;display:grid!important;place-items:center!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;border:2px solid #F5F8FB!important;background:#fff!important;color:#29384A!important;box-shadow:0 2px 0 #BECBD7,0 5px 14px rgba(41,56,74,.16)!important;cursor:pointer}
:is(#sidebarToggle,#portalMenuToggle) span{display:grid;place-items:center;transform:none!important}
:is(#sidebarToggle,#portalMenuToggle){font:900 22px/1 system-ui,sans-serif!important;gap:0!important}
:is(#sidebarToggle,#portalMenuToggle) .ceo-icon{width:18px!important;height:18px!important}
:is(#sidebarToggle,#portalMenuToggle):hover{background:#EDF2F7!important;color:#496682!important}
:is(#sidebarToggle,#portalMenuToggle):active{transform:translateY(2px)!important;box-shadow:none!important}
:is(#sidebarToggle,#portalMenuToggle):focus-visible{outline:3px solid #61768B!important;outline-offset:2px}
@media(min-width:601px){
  #app{--ceo-sidebar-width:var(--ceo-sidebar-expanded)}
  #app.sidebar-collapsed{--ceo-sidebar-width:var(--ceo-sidebar-collapsed)}
  body.portal-active{--portal-sidebar-width:var(--ceo-sidebar-collapsed)!important}
  body.portal-active.portal-menu-expanded{--portal-sidebar-width:var(--ceo-sidebar-expanded)!important}
  :is(#app > .sidebar,#portalSidebar){position:fixed;inset:0 auto 0 0;height:100dvh!important;display:flex;flex-direction:column;gap:0!important;padding:var(--ceo-sidebar-top) var(--ceo-sidebar-pad) var(--ceo-sidebar-bottom)!important;z-index:25}
  #app > .sidebar{width:var(--ceo-sidebar-width)!important}
  #portalSidebar{width:var(--portal-sidebar-width)!important}
  #app > main{margin-left:var(--ceo-sidebar-width)!important;max-width:calc(100% - var(--ceo-sidebar-width))!important}
  :is(#app > .sidebar .brand,#portalSidebar .portal-brand){display:flex;align-items:center;justify-content:flex-start;min-height:24px;flex:0 0 auto;padding:0 10px var(--ceo-sidebar-brand-gap)!important;font-size:20px!important;line-height:24px;gap:10px}
  :is(#app > .sidebar .brand b,#portalSidebar .portal-brand strong){color:#fff!important;font-size:20px!important;font-weight:700;letter-spacing:.03em}
  :is(#app > .sidebar nav,#portalSidebar nav){display:grid;grid-auto-rows:var(--ceo-sidebar-nav-height);align-content:start;gap:var(--ceo-sidebar-nav-gap)!important;min-height:0;overflow:visible auto;flex:1 1 auto!important;scrollbar-width:thin;scrollbar-color:#61768B transparent}
  :is(#app > .sidebar .nav,#portalSidebar .portal-nav-item){box-sizing:border-box;display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px!important;width:100%;min-width:0;min-height:var(--ceo-sidebar-nav-height)!important;height:var(--ceo-sidebar-nav-height)!important;padding:8px 14px!important;border:1px solid transparent!important;background:transparent!important;color:#D7E1EB!important;font:400 17px/1.4 system-ui,sans-serif!important;white-space:nowrap;text-align:left;box-shadow:none!important;cursor:pointer}
  .ceo-sidebar .ceo-sidebar-label{font:inherit}
  /* Legacy <=900px portal rules must never change the shared desktop layout. */
  :is(#app > .sidebar .nav,#portalSidebar .portal-nav-item){flex-direction:row!important;flex-wrap:nowrap!important}
  .ceo-sidebar .ceo-sidebar-brand-text{display:block!important;white-space:nowrap;color:#fff!important;font:700 20px/24px system-ui,sans-serif!important;letter-spacing:.03em}
  /* Size the title against the actual actions, not the removed logout button. */
  body.portal-active .portal-session-heading{flex:1 1 auto;max-width:none}
  body.portal-active .portal-session-heading :is(h1,.portal-eyebrow){white-space:nowrap}
  :is(#app > .sidebar .nav.active,#portalSidebar .portal-nav-item.is-active),:is(#app > .sidebar .nav,#portalSidebar .portal-nav-item):hover{background:#3A4C5F!important;border-color:#61768B!important;color:#D7E1EB!important;box-shadow:0 2px 0 rgba(13,25,37,.48)!important}
  :is(#app > .sidebar .nav,#portalSidebar .portal-nav-item):focus-visible{outline:2px solid #AEBECB;outline-offset:-3px}
  :is(#app > .sidebar .nav-icon,#portalSidebar .portal-nav-icon){display:inline-grid!important;place-items:center;width:20px!important;min-width:20px!important;height:20px!important;flex:0 0 20px!important;margin:0!important}
  :is(#app > .sidebar .nav-icon,#portalSidebar .portal-nav-icon) .ceo-icon{display:block;width:20px!important;height:20px!important}
  .ceo-sidebar :is(.nav-icon,.nav-icon .ceo-icon){font:400 18px/1 system-ui,sans-serif!important}
  .ceo-sidebar .ceo-sidebar-logout{gap:0!important}
  :is(#app > .sidebar,#portalSidebar) .ceo-sidebar-logout{display:flex!important;padding:8px 14px!important;justify-content:center!important;text-align:center!important}
  :is(#app > .sidebar,#portalSidebar).ceo-sidebar-collapsed .ceo-sidebar-logout{padding-inline:0!important}
  #app.sidebar-collapsed > .sidebar,body.portal-active:not(.portal-menu-expanded) #portalSidebar{padding-inline:10px!important}
  #app.sidebar-collapsed .sidebar .nav,body.portal-active:not(.portal-menu-expanded) #portalSidebar .portal-nav-item{justify-content:center!important;padding-inline:0!important;gap:0!important}
  /* Keep the existing compact utility controls available on narrow desktops too. */
  #app.sidebar-collapsed .sidebar > :is(.settings-button,.backup-button){display:inline-flex!important;width:54px!important;min-width:54px!important;max-width:54px!important;height:44px!important;min-height:44px!important;max-height:44px!important;margin-inline:auto!important;padding:0!important;align-items:center!important;justify-content:center!important;gap:0!important;overflow:visible!important}
  #app.sidebar-collapsed .sidebar > .settings-button{margin-top:auto!important;font-size:0!important}
  #app.sidebar-collapsed .sidebar > .backup-button{margin-top:4px!important;line-height:1!important}
  #app.sidebar-collapsed .sidebar > :is(.settings-button,.backup-button) .ceo-icon{width:20px!important;height:20px!important;flex-basis:20px!important;margin:0 auto!important}
  #app.sidebar-collapsed :is(#backupButtonLabel,.sidebar-compact-save-time,.sidebar-focus-label,.sidebar-focus-time){display:none!important}
  #app.sidebar-collapsed .sidebar-focus-status{display:grid!important;width:54px;min-width:54px;margin:8px auto 0!important;padding:10px 0 0!important;place-items:center;border-top:1px solid rgba(255,255,255,.18)!important}
  #app.sidebar-collapsed .sidebar-focus-compact{display:grid;grid-template-columns:1fr;place-items:center;width:54px;color:#AEBECB;font:650 9px/1 system-ui,sans-serif;text-align:center}
  #app.sidebar-collapsed .sidebar-focus-compact b{display:none}
  .ceo-sidebar:not(.ceo-sidebar-collapsed) .ceo-sidebar-label{display:inline!important;width:auto;opacity:1;visibility:visible;white-space:nowrap}
  .ceo-sidebar.ceo-sidebar-collapsed :is(.ceo-sidebar-brand-text,.ceo-sidebar-label){display:none!important}
  .ceo-sidebar .ceo-sidebar-compact-logout{display:none!important}
  .ceo-sidebar.ceo-sidebar-collapsed .ceo-sidebar-compact-logout{display:inline!important}
  .ceo-sidebar .ceo-sidebar-logout{display:flex!important;align-items:center;justify-content:center;flex:0 0 40px;width:100%!important;height:40px!important;min-height:40px!important;margin-top:18px!important;padding:8px 14px!important;border:1px solid rgba(255,255,255,.18)!important;background:transparent!important;color:#D7E1EB!important;box-shadow:0 2px 0 rgba(13,25,37,.34)!important;font:650 14px/1.4 system-ui,sans-serif!important;white-space:nowrap;cursor:pointer}
  .ceo-sidebar .ceo-sidebar-logout:hover{background:#3A4C5F!important;border-color:#61768B!important}
  .ceo-sidebar .ceo-sidebar-logout:focus-visible{outline:2px solid #AEBECB;outline-offset:2px}
  .ceo-sidebar .ceo-sidebar-logout:active{transform:translateY(2px);box-shadow:none!important}
  .ceo-sidebar.ceo-sidebar-collapsed .ceo-sidebar-logout{padding-inline:0!important}
  .ceo-sidebar .ceo-sidebar-item:disabled,.ceo-sidebar .ceo-sidebar-logout:disabled{opacity:.5;cursor:not-allowed}
  body.general-affairs-active > main{width:auto;max-width:none;margin:28px 34px 40px calc(var(--portal-sidebar-width) + 34px);padding:0;min-width:0}
}
