.console{min-height:100vh;max-width:100%;overflow-x:clip;background:var(--color-canvas)}
.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar-width);
  height:100vh;
  padding:var(--space-6) var(--space-4);
  background:var(--color-sidebar);
  color:var(--color-sidebar-text);
  border-right:1px solid var(--color-sidebar-border);
  overflow-y:auto;
  z-index:40;
}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-sidebar-border)}
.brand{display:flex;align-items:center;width:min(100%,192px);min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-surface)}
.brand img{display:block;width:min(100%,148px);height:40px;object-fit:cover;object-position:center}
.primary-nav{display:grid;gap:var(--space-6);margin-top:var(--space-6)}
.nav-group{display:grid;gap:var(--space-1)}
.nav-group-title{margin:0 var(--space-3) var(--space-1);color:var(--color-sidebar-muted);font-size:.68rem;font-weight:750;letter-spacing:.08em;line-height:1.4;text-transform:none}
.primary-nav a,.primary-nav span{display:flex;align-items:center;min-height:44px;padding:10px var(--space-3);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-sidebar-text);text-decoration:none;transition:background var(--motion-duration-fast) ease,border-color var(--motion-duration-fast) ease}
.primary-nav span{color:var(--color-sidebar-muted)}
.primary-nav a:hover{background:var(--color-sidebar-panel);border-color:var(--color-sidebar-border)}
.primary-nav a:focus-visible,.navigation-close:focus-visible{border-color:var(--color-sidebar-text);outline-color:var(--color-sidebar-text)}
.primary-nav a[aria-current="page"]{background:var(--color-primary);border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-sidebar-text);color:var(--color-sidebar-text);font-weight:750}
.navigation-close,.navigation-toggle{display:none}
.navigation-toggle{flex:0 0 auto;white-space:nowrap}
.navigation-backdrop{display:none;position:fixed;inset:0;border:0;background:var(--color-sidebar-backdrop);z-index:35}
.workspace{min-width:0;max-width:100%;margin-left:var(--sidebar-width);overflow-x:clip}
.topbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:var(--topbar-height);padding:var(--space-4) var(--space-7);background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.topbar-heading{display:flex;align-items:flex-start;min-width:0;gap:var(--space-3)}
.topbar-heading>div{min-width:0}
.topbar h1{margin:var(--space-1) 0 0;font-size:1.35rem;line-height:1.25;word-break:keep-all}
.topbar p{margin-bottom:0;word-break:keep-all}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}
#overview-root,#page-root{width:100%;min-width:0}

@media(max-width:1100px){
  .console{display:block}
  .workspace{width:100%;margin-left:0}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);padding:var(--space-5) var(--space-4);box-shadow:var(--shadow-raised)}
  .navigation-toggle,.navigation-close{display:inline-flex;align-items:center;justify-content:center}
  .navigation-close{border-color:var(--color-sidebar-border);background:transparent;color:var(--color-sidebar-text)}
  .navigation-close:hover{background:var(--color-sidebar-panel)}
  .navigation-backdrop:not([hidden]){display:block}
  body.navigation-open{overflow:hidden}
  .topbar{align-items:flex-start;padding:var(--space-4) var(--space-5)}
  .topbar-actions{max-width:none;flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap}
}

@media(max-width:600px){
  .topbar{position:static;flex-direction:column;gap:var(--space-3)}
  .topbar-heading{width:100%}
  .topbar-actions{width:100%;max-width:none;justify-content:flex-start}
}

@media(max-width:480px){
  .topbar{padding:var(--space-4)}
  .topbar h1{font-size:1.2rem}
  .topbar-actions .button{flex:1 1 auto}
}
