.app-shell{
  display:flex;
  min-height:100vh;
}

.sidebar{
  width:280px;
  background:var(--panel);
  border-right:1px solid var(--border);
  padding:16px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  transition: width .18s ease;
}

.sidebar.collapsed{
  width:88px;
}

.main{
  flex:1;
  display:flex;
  flex-direction:column;
  min-width:0;
}

.topbar{
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.9);
  backdrop-filter: blur(8px);
  position:sticky;
  top:0;
  z-index:10;
}

.topbar-left{
  display:flex;
  gap:12px;
  align-items:center;
  min-width:0;
}
.title{ min-width:0; }
.brand{ font-weight:700; letter-spacing:.2px; }
.crumbs{
  font-size:12px;
  color:var(--muted);
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.topbar-right{
  display:flex;
  align-items:center;
  gap:10px;
}

.content{
  padding:18px;
}

.page{
  max-width:1200px;
  margin:0 auto;
}

.footer{
  padding:12px 18px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:space-between;
  background:#fff;
  font-size:12px;
}
.main{
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100vh;   /* ✅ add this */
}
.content{
  padding: 18px;
  flex: 1;             /* ✅ add this */
}
.footer{
  margin-top: auto;    /* ✅ add this */
  padding: 12px 18px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  background: #fff;
  font-size: 13px;     /* slightly bigger */
}
.page{
  width: 100%;
  max-width: none;   /* ✅ remove cap */
  margin: 0;         /* ✅ no centering */
}
.crumbs{
  font-size: 14px;   /* was 12px */
}

