/* Interpreter sidebar (2026-10-26): on screens wider than a phone the interpreter
   menu (.portal-nav) becomes the same dark left sidebar the admin pages use
   (.sidenav in style.css). Phones keep the slide-in drawer. Used by base.html and
   by the standalone assessment.html (/training); both mark <body class="terp-shell">. */
.terp-side-brand,.terp-side-foot{display:none;}
@media (min-width:701px){
  body.terp-shell{padding-left:236px;}
  body.terp-shell .portal-nav{position:fixed;top:0;bottom:0;left:0;width:236px;z-index:900;margin:0;
    display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:2px;
    padding:18px 12px 14px;overflow-y:auto;background:var(--sidenav-bg);color:var(--sidenav-text);
    border:0;border-right:1px solid var(--sidenav-line);box-shadow:none;transform:none;}
  body.terp-shell .nav-row{margin:0;padding:0;max-width:none;}
  body.terp-shell .drawer-head,body.terp-shell .drawer-logout,body.terp-shell .nav-overlay,body.terp-shell .nav-burger{display:none !important;}
  /* brand + foot, same as the admin sidebar */
  body.terp-shell .portal-nav a.terp-side-brand,body.terp-shell .portal-nav a.terp-side-brand:hover{display:flex;background:none;border-radius:0;box-shadow:none;flex-direction:column;gap:4px;padding:2px 10px 14px;margin-bottom:6px;border-bottom:1px solid var(--sidenav-line);text-decoration:none;}
  body.terp-shell .portal-nav a.terp-side-brand img{height:26px;width:auto;align-self:flex-start;filter:brightness(0) invert(1);}
  body.terp-shell .portal-nav a.terp-side-brand span{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--sidenav-muted);}
  body.terp-shell .terp-side-foot{display:flex;margin-top:auto;padding:12px 10px 2px;border-top:1px solid var(--sidenav-line);align-items:center;justify-content:space-between;gap:8px;}
  body.terp-shell .terp-side-foot span{font-size:13px;font-weight:600;color:#fff;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  body.terp-shell .portal-nav .terp-side-foot a{flex:none;font-size:12px;font-weight:600;color:var(--sidenav-text);text-decoration:none;padding:5px 11px;border-radius:999px;
    border:1px solid var(--sidenav-line);background:rgba(255,255,255,.08);box-shadow:none;}
  body.terp-shell .portal-nav .terp-side-foot a:hover{background:rgba(255,255,255,.14);color:#fff;}
  /* links */
  body.terp-shell .portal-nav a{display:block;padding:8px 12px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--sidenav-text);
    text-decoration:none;background:none;box-shadow:none;white-space:normal;}
  body.terp-shell .portal-nav a:hover{background:rgba(255,255,255,.07);color:#fff;}
  body.terp-shell .portal-nav a.current{background:linear-gradient(135deg,#F0665A,#D63225);color:#fff;
    box-shadow:0 4px 14px -2px rgba(235,76,60,.5),inset 0 1px 0 rgba(255,255,255,.25);}
  /* groups are always open, their toggle becomes the group label */
  body.terp-shell .nav-group{display:block;position:static;}
  body.terp-shell .nav-group-toggle{display:block;width:100%;margin:12px 0 4px;padding:0 12px;border:0;background:none !important;box-shadow:none !important;
    font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--sidenav-muted) !important;text-align:left;pointer-events:none;}
  body.terp-shell .nav-group-toggle .nav-caret{display:none;}
  body.terp-shell .nav-group-menu{display:flex !important;flex-direction:column;gap:2px;position:static;margin:0;padding:0;min-width:0;
    background:none;border:0;box-shadow:none;opacity:1;visibility:visible;transform:none;}
  /* top bar sits over the content only; the sidebar carries the brand and log out */
  body.terp-shell .topbar .brand,body.terp-shell header .brand{display:none;}
  body.terp-shell .topbar .logout-link,body.terp-shell header .logout-link{display:none;}
  body.terp-shell .topbar .header-inner{justify-content:flex-end;}
  body.terp-shell header{justify-content:flex-end;}
}
